private void Form_Load(object sender, EventArgs e) { // It is important to set the map unit first to either feet, meters or decimal degrees. mapView.MapUnit = GeographyUnit.Meter; // Create the background world maps using vector tiles requested from the ThinkGeo Cloud Service and add it to the map. ThinkGeoCloudVectorMapsOverlay thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("itZGOI8oafZwmtxP-XGiMvfWJPPc-dX35DmESmLlQIU~", "bcaCzPpmOG6le2pUz5EAaEKYI-KSMny_WxEAe7gMNQgGeN9sqL12OA~~", ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); // Create a new overlay that will hold our new layer and add it to the map. LayerOverlay gpxOverlay = new LayerOverlay(); mapView.Overlays.Add(gpxOverlay); // Create the new layer and set the projection as the data is in srid 4326 and our background is srid 3857 (spherical mercator). GpxFeatureLayer gpxLayer = new GpxFeatureLayer(@"../../../Data/Gpx/Hike_Bike.gpx"); gpxLayer.FeatureSource.ProjectionConverter = new ProjectionConverter(4326, 3857); // Add the layer to the overlay we created earlier. gpxOverlay.Layers.Add("Hike Bike Trails", gpxLayer); // Create an Area style on zoom level 1 and then apply it to all zoom levels up to 20. gpxLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(GeoPens.Black); gpxLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Open the layer and set the map view current extent to the bounding box of the layer. gpxLayer.Open(); mapView.CurrentExtent = gpxLayer.GetBoundingBox(); // Refresh the map. mapView.Refresh(); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.DisplayASimpleMap); ValueStyle pointStyle = new ValueStyle(); pointStyle.ColumnName = "IsWayPoint"; pointStyle.ValueItems.Add(new ValueItem("0", PointStyles.CreateSimplePointStyle(PointSymbolType.Circle, GeoColor.SimpleColors.Red, 4))); pointStyle.ValueItems.Add(new ValueItem("1", PointStyles.CreateSimplePointStyle(PointSymbolType.Circle, GeoColor.SimpleColors.Green, 8))); LineStyle roadstyle = LineStyles.CreateSimpleLineStyle(GeoColor.SimpleColors.Black, 1, true); TextStyle labelStyle = TextStyles.CreateSimpleTextStyle("name", "Arial", 8, DrawingFontStyles.Bold, GeoColor.SimpleColors.Black); labelStyle.PointPlacement = PointPlacement.UpperCenter; labelStyle.OverlappingRule = LabelOverlappingRule.NoOverlapping; labelStyle.YOffsetInPixel = 8; GpxFeatureLayer gpxFeatureLayer = new GpxFeatureLayer(SampleHelper.GetDataPath(@"Gpx/afoxboro.gpx")); gpxFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(pointStyle); gpxFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(roadstyle); gpxFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; gpxFeatureLayer.Open(); GpxFeatureLayer gpxTextLayer = new GpxFeatureLayer(SampleHelper.GetDataPath(@"Gpx/afoxboro.gpx")); gpxTextLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(labelStyle); gpxTextLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(gpxFeatureLayer); layerOverlay.Layers.Add(gpxTextLayer); WorldMapKitOverlay worldMapKitOverlay = new WorldMapKitOverlay(); androidMap = FindViewById <MapView>(Resource.Id.androidmap); androidMap.Overlays.Add(worldMapKitOverlay); androidMap.Overlays.Add(layerOverlay); androidMap.CurrentExtent = gpxFeatureLayer.GetBoundingBox(); androidMap.MapUnit = GeographyUnit.DecimalDegree; SampleViewHelper.InitializeInstruction(this, FindViewById <RelativeLayout>(Resource.Id.MainLayout), GetType()); }
private void sampleFileListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { GpxFeatureLayer shapeLayer = new GpxFeatureLayer(SampleHelper.Get(sampleFileListBox.SelectedItem.ToString())); shapeLayer.FeatureSource.ProjectionConverter = projectionConverter; ValueStyle pointStyle = new ValueStyle(); pointStyle.ColumnName = "IsWayPoint"; pointStyle.ValueItems.Add(new ValueItem("0", PointStyle.CreateSimplePointStyle(PointSymbolType.Circle, GeoColors.Red, 4))); pointStyle.ValueItems.Add(new ValueItem("1", PointStyle.CreateSimplePointStyle(PointSymbolType.Circle, GeoColors.Green, 8))); LineStyle roadstyle = LineStyle.CreateSimpleLineStyle(GeoColors.Black, 1, true); shapeLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(pointStyle); shapeLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(roadstyle); shapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; GpxFeatureLayer textLayer = new GpxFeatureLayer(SampleHelper.Get(sampleFileListBox.SelectedItem.ToString())); textLayer.FeatureSource.ProjectionConverter = projectionConverter; TextStyle labelStyle = TextStyle.CreateSimpleTextStyle("name", "Arial", 8, DrawingFontStyles.Bold, GeoColors.Black); labelStyle.TextPlacement = TextPlacement.Upper; labelStyle.OverlappingRule = LabelOverlappingRule.NoOverlapping; labelStyle.YOffsetInPixel = 8; textLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(labelStyle); textLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; shapeLayer.Open(); mapView.CurrentExtent = (shapeLayer.GetBoundingBox()); var gpsOverlay = (LayerOverlay)mapView.Overlays["GPSOverlay"]; gpsOverlay.Layers.Clear(); gpsOverlay.Layers.Add(shapeLayer); gpsOverlay.Layers.Add(textLayer); mapView.Refresh(); }
/// <summary> /// Setup the map with the ThinkGeo Cloud Maps overlay. Also, add the GPX layer to the map /// </summary> protected override void OnAppearing() { base.OnAppearing(); // It is important to set the map unit first to either feet, meters or decimal degrees. mapView.MapUnit = GeographyUnit.Meter; // Create the background world maps using vector tiles requested from the ThinkGeo Cloud Service and add it to the map. var thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("9ap16imkD_V7fsvDW9I8r8ULxgAB50BX_BnafMEBcKg~", "vtVao9zAcOj00UlGcK7U-efLANfeJKzlPuDB9nw7Bp4K4UxU_PdRDg~~", ThinkGeoCloudVectorMapsMapType.Light); thinkGeoCloudVectorMapsOverlay.VectorTileCache = new FileVectorTileCache(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "cache"), "CloudMapsVector"); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); // Create a new overlay that will hold our new layer and add it to the map. LayerOverlay gpxOverlay = new LayerOverlay(); mapView.Overlays.Add(gpxOverlay); // Create the new layer and set the projection as the data is in srid 4326 and our background is srid 3857 (spherical mercator). GpxFeatureLayer gpxLayer = new GpxFeatureLayer(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Gpx/Hike_Bike.gpx")); gpxLayer.FeatureSource.ProjectionConverter = new ProjectionConverter(4326, 3857); // Add the layer to the overlay we created earlier. gpxOverlay.Layers.Add("Hike Bike Trails", gpxLayer); // Create an Area style on zoom level 1 and then apply it to all zoom levels up to 20. gpxLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(GeoPens.Black); gpxLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Open the layer and set the map view current extent to the bounding box of the layer. gpxLayer.Open(); mapView.CurrentExtent = gpxLayer.GetBoundingBox(); // Refresh the map. mapView.Refresh(); }