Exemplo n.º 1
0
        private void AddColorsToMarkers(GeoJsonLayer layer)
        {
            // Iterate over all the features stored in the layer
            foreach (GeoJsonFeature feature in layer.Features.ToEnumerable())
            {
                // Check if the magnitude property exists
                if (feature.GetProperty("mag") != null && feature.HasProperty("place"))
                {
                    double magnitude = Double.Parse(feature.GetProperty("mag"));

                    // Get the icon for the feature
                    BitmapDescriptor pointIcon = BitmapDescriptorFactory.DefaultMarker(MagnitudeToColor(magnitude));

                    // Create a new point style
                    GeoJsonPointStyle pointStyle = new GeoJsonPointStyle();

                    // Set options for the point style
                    pointStyle.Icon    = pointIcon;
                    pointStyle.Title   = "Magnitude of " + magnitude;
                    pointStyle.Snippet = "Earthquake occured " + feature.GetProperty("place");

                    // Assign the point style to the feature
                    feature.PointStyle = pointStyle;
                }
            }
        }
Exemplo n.º 2
0
 private void addGeoJsonLayerToMap(GeoJsonLayer layer)
 {
     addColorsToMarkers(layer);
     layer.AddLayerToMap();
     // Demonstrate receiving features via GeoJsonLayer clicks.
     layer.SetOnFeatureClickListener(this);
 }
Exemplo n.º 3
0
 private void AddGeoJsonLayerToMap(GeoJsonLayer layer)
 {
     AddColorsToMarkers(layer);
     layer.AddLayerToMap();
     googleMap.MoveCamera(CameraUpdateFactory.NewLatLng(new LatLng(31.4118, -103.5355)));
     // Demonstrate receiving features via GeoJsonLayer clicks.
     layer.SetOnFeatureClickListener(this);
 }
Exemplo n.º 4
0
 private void RetrieveFileFromResource()
 {
     try
     {
         GeoJsonLayer layer = new GeoJsonLayer(googleMap, Resource.Raw.earthquakes_with_usa, this);
         AddGeoJsonLayerToMap(layer);
     }
     catch (Exception)
     {
         Console.WriteLine("GeoJSON file could not be read");
     }
 }
Exemplo n.º 5
0
 private void retrieveFileFromResource()
 {
     try
     {
         GeoJsonLayer layer = new GeoJsonLayer(getMap(), Resource.Raw.earthquakes_with_usa, this);
         addGeoJsonLayerToMap(layer);
     }
     catch (IOException)
     {
         Log.Error(mLogTag, "GeoJSON file could not be read");
     }
     catch (JSONException)
     {
         Log.Error(mLogTag, "GeoJSON file could not be converted to a JSONObject");
     }
 }
Exemplo n.º 6
0
 private async void DownloadGeoJsonFile(string url)
 {
     await Task.Factory.StartNew(() =>
     {
         using (var Client = new HttpClient())
         {
             var response = Client.GetAsync(url).Result;
             if (response.IsSuccessStatusCode)
             {
                 var layer = new GeoJsonLayer(googleMap, new JSONObject(response.Content.ReadAsStringAsync().Result));
                 this.RunOnUiThread(() =>
                 {
                     AddGeoJsonLayerToMap(layer);
                 });
             }
         }
     }).ConfigureAwait(false);
 }
Exemplo n.º 7
0
        protected override void startDemo(bool isRestore)
        {
            if (!isRestore)
            {
                getMap().MoveCamera(CameraUpdateFactory.NewLatLngZoom(new LatLng(51.403186, -0.126446), 10));
            }

            // Shared object managers - used to support multiple layer types on the map simultaneously
            // [START maps_multilayer_demo_init1]
            MarkerManager markerManager = new MarkerManager(getMap());
            //GroundOverlayManager groundOverlayManager = new GroundOverlayManager(getMap());
            //PolygonManager polygonManager = new PolygonManager(getMap());
            //PolylineManager polylineManager = new PolylineManager(getMap());
            // [END maps_multilayer_demo_init1]

            // Add clustering
            // [START maps_multilayer_demo_init2]
            ClusterManager clusterManager = new ClusterManager(this, getMap(), markerManager);

            // [END maps_multilayer_demo_init2]
            getMap().SetOnCameraIdleListener(clusterManager);
            addClusterItems(clusterManager);

            // Add GeoJSON from resource
            try
            {
                var geoJsonOnFeatureClickListener = new GeoJsonOnFeatureClickListener(this);
                // GeoJSON polyline
                // [START maps_multilayer_demo_init3]
                GeoJsonLayer geoJsonLineLayer = new GeoJsonLayer(getMap(), Resource.Raw.south_london_line_geojson, this);//, markerManager, polygonManager, polylineManager, groundOverlayManager);
                // [END maps_multilayer_demo_init3]
                // Make the line red
                GeoJsonLineStringStyle geoJsonLineStringStyle = new GeoJsonLineStringStyle();
                geoJsonLineStringStyle.Color = Color.Red;
                foreach (GeoJsonFeature f in geoJsonLineLayer.Features.ToEnumerable())
                {
                    f.LineStringStyle = geoJsonLineStringStyle;
                }
                geoJsonLineLayer.AddLayerToMap();
                geoJsonLineLayer.SetOnFeatureClickListener(geoJsonOnFeatureClickListener);

                // GeoJSON polygon
                GeoJsonLayer geoJsonPolygonLayer = new GeoJsonLayer(getMap(), Resource.Raw.south_london_square_geojson, this);//, markerManager, polygonManager, polylineManager, groundOverlayManager);
                // Fill it with red
                GeoJsonPolygonStyle geoJsonPolygonStyle = new GeoJsonPolygonStyle();
                geoJsonPolygonStyle.FillColor = Color.Red;
                foreach (GeoJsonFeature f in geoJsonPolygonLayer.Features.ToEnumerable())
                {
                    f.PolygonStyle = geoJsonPolygonStyle;
                }
                geoJsonPolygonLayer.AddLayerToMap();
                geoJsonPolygonLayer.SetOnFeatureClickListener(geoJsonOnFeatureClickListener);
            }
            catch (Java.IO.IOException e)
            {
                Log.Error(TAG, "GeoJSON file could not be read");
            }
            catch (JSONException e)
            {
                Log.Error(TAG, "GeoJSON file could not be converted to a JSONObject");
            }

            // Add KMLs from resources
            try
            {
                var kmlLayerOnFeatureClickListener = new KmlLayerOnFeatureClickListener(this);
                // KML Polyline
                // [START maps_multilayer_demo_init4]
                KmlLayer kmlPolylineLayer = new KmlLayer(getMap(), Resource.Raw.south_london_line_kml, this);//, markerManager, polygonManager, polylineManager, groundOverlayManager, null);
                // [END maps_multilayer_demo_init4]
                // [START maps_multilayer_demo_init6]
                kmlPolylineLayer.AddLayerToMap();
                kmlPolylineLayer.SetOnFeatureClickListener(kmlLayerOnFeatureClickListener);
                // [END maps_multilayer_demo_init6]

                // KML Polygon
                KmlLayer kmlPolygonLayer = new KmlLayer(getMap(), Resource.Raw.south_london_square_kml, this);//, markerManager, polygonManager, polylineManager, groundOverlayManager, null);
                kmlPolygonLayer.AddLayerToMap();
                kmlPolygonLayer.SetOnFeatureClickListener(kmlLayerOnFeatureClickListener);
            }
            catch (XmlPullParserException e)
            {
                e.PrintStackTrace();
            }
            catch (Java.IO.IOException e)
            {
                e.PrintStackTrace();
            }

            // Unclustered marker - instead of adding to the map directly, use the MarkerManager
            // [START maps_multilayer_demo_init5]
            MarkerManager.Collection markerCollection = markerManager.NewCollection();
            markerCollection.AddMarker(new MarkerOptions()
                                       .SetPosition(new LatLng(51.150000, -0.150032))
                                       .SetIcon(BitmapDescriptorFactory.DefaultMarker(BitmapDescriptorFactory.HueAzure))
                                       .SetTitle("Unclustered marker"));
            // [END maps_multilayer_demo_init5]
            // [START maps_multilayer_demo_init7]
            markerCollection.SetOnMarkerClickListener(this);
            // [END maps_multilayer_demo_init7]
        }
 public void AddKML()
 {
     GeoJsonLayer layer = new GeoJsonLayer(gmap, Resource.Raw.jsonFile, Android.App.Application.Context);
     layer.AddLayerToMap();
 }