protected override BaseShape CreateAccessibleAreaCore() { string rtgFilePathName = Path.ChangeExtension(StreetShapeFilePathName, ".rtg"); RtgRoutingSource routingSource = new RtgRoutingSource(rtgFilePathName); FeatureSource featureSource = new ShapeFileFeatureSource(StreetShapeFilePathName); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); if (!featureSource.IsOpen) { featureSource.Open(); } ManagedProj4Projection proj = new ManagedProj4Projection(); proj.InternalProjectionParametersString = ManagedProj4Projection.GetBingMapParametersString(); proj.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); proj.Open(); StartLocation = proj.ConvertToExternalProjection(StartLocation) as PointShape; Feature feature = featureSource.GetFeaturesNearestTo(StartLocation, GeographyUnit, 1, ReturningColumnsType.NoColumns)[0]; PolygonShape polygonShape = routingEngine.GenerateServiceArea(feature.Id, new TimeSpan(0, DrivingTimeInMinutes, 0), 100, GeographyUnit.Feet); polygonShape = proj.ConvertToInternalProjection(polygonShape) as PolygonShape; proj.Close(); return(polygonShape); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.DisplayASimpleMap); ManagedProj4Projection proj4Projection = new ManagedProj4Projection(); proj4Projection.InternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); proj4Projection.ExternalProjectionParametersString = ManagedProj4Projection.GetGoogleMapParametersString(); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(SampleHelper.GetDataPath(@"SampleData/Countries02.shp")); worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 233, 232, 214), GeoColor.FromArgb(255, 118, 138, 69)); worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; worldLayer.FeatureSource.Projection = proj4Projection; LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.Layers.Add(worldLayer); androidMap = FindViewById <MapView>(Resource.Id.androidmap); androidMap.MapUnit = GeographyUnit.Meter; androidMap.CurrentExtent = new RectangleShape(-13939426.6371, 6701997.4056, -7812401.86, 2626987.386962); androidMap.Overlays.Add(staticOverlay); SampleViewHelper.InitializeInstruction(this, FindViewById <RelativeLayout>(Resource.Id.MainLayout), GetType()); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.Meter; // If want to know more srids, please refer Projections.rtf in Documentation folder. ManagedProj4Projection proj4Projection = new ManagedProj4Projection(); proj4Projection.InternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); proj4Projection.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(2163); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp"); worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; worldLayer.FeatureSource.Projection = proj4Projection; worldLayer.Open(); wpfMap1.CurrentExtent = worldLayer.GetBoundingBox(); worldLayer.Close(); LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.TileType = TileType.SingleTile; staticOverlay.Layers.Add(new BackgroundLayer(new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean))); staticOverlay.Layers.Add("WorldLayer", worldLayer); wpfMap1.Overlays.Add(staticOverlay); wpfMap1.Refresh(); }
public PopupUserControl(Feature feature) { InitializeComponent(); string speed = feature.ColumnValues["Speed"]; string name = feature.ColumnValues["VehicleName"]; string latitude = feature.ColumnValues["Latitude"]; string dateTime = feature.ColumnValues["DateTime"]; string longitude = feature.ColumnValues["Longitude"]; txtName.Text = name; double x, y; if (double.TryParse(longitude, out x) && double.TryParse(latitude, out y)) { ManagedProj4Projection proj4 = new ManagedProj4Projection(); proj4.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString(); proj4.Open(); Vertex vertex = proj4.ConvertToInternalProjection(x, y); txtLongitude.Text = vertex.X.ToString("N6", CultureInfo.InvariantCulture); txtLatitude.Text = vertex.Y.ToString("N6", CultureInfo.InvariantCulture); proj4.Close(); } else { txtLongitude.Text = longitude; txtLatitude.Text = latitude; } txtSpeed.Text = speed + " mph"; txtTime.Text = dateTime; }
public static LayerOverlay CreateCustomLayerOverlay() { const string customOverlayName = "Custom Overlay"; // Create a layeroverlay and set TileType as SingleTile. It means that the overlay is formed by one single tile. // The TileType default value is MultipleTile LayerOverlay layerOverlay = new LayerOverlay() { TileType = TileType.SingleTile }; layerOverlay.Name = customOverlayName; // Create and initialize a projection. It will be apply to the FeatureSource create below. ManagedProj4Projection wgs84ToMercatorProjection = new ManagedProj4Projection(); wgs84ToMercatorProjection.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); wgs84ToMercatorProjection.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString(); // Create a ShapeFileFeatureLayer by a shapefile. ShapeFileFeatureLayer restrictedLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\CityLimitPolygon.shp"); // Set comtom styles, they will be uesed when draw the area. The priority of custom style is higher than default's. restrictedLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(new AreaStyle(new GeoPen(GeoColor.SimpleColors.White, 5.5f), new GeoSolidBrush(GeoColor.SimpleColors.Transparent))); restrictedLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(new AreaStyle(new GeoPen(GeoColor.SimpleColors.Red, 1.5f) { DashStyle = LineDashStyle.Dash }, new GeoSolidBrush(GeoColor.SimpleColors.Transparent))); restrictedLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Set the projection of the features. restrictedLayer.FeatureSource.Projection = wgs84ToMercatorProjection; // Add the layer to the layeroverlay. layerOverlay.Layers.Add(restrictedLayer); // Create schools feature layer by Schools.shp. ShapeFileFeatureLayer schoolsFeatureLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\POIs\Schools.shp"); // Set the default point style which determines how to display the point. schoolsFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(new GeoImage(GetImageStream("school.png"))); schoolsFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; schoolsFeatureLayer.FeatureSource.Projection = wgs84ToMercatorProjection; layerOverlay.Layers.Add(schoolsFeatureLayer); ShapeFileFeatureLayer hospitalsFeatureLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\POIs\Medical_Facilities.shp"); hospitalsFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(new GeoImage(GetImageStream("medical_facility.png"))); hospitalsFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; hospitalsFeatureLayer.FeatureSource.Projection = wgs84ToMercatorProjection; layerOverlay.Layers.Add(hospitalsFeatureLayer); ShapeFileFeatureLayer hotelsFeatureLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\POIs\Hotels.shp"); hotelsFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(new GeoImage(GetImageStream("hotel.png"))); hotelsFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; hotelsFeatureLayer.FeatureSource.Projection = wgs84ToMercatorProjection; layerOverlay.Layers.Add(hotelsFeatureLayer); return layerOverlay; }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.Meter; wpfMap1.CurrentExtent = new RectangleShape(-10000000, 10000000, 10000000, -10000000); EcwRasterLayer ecwImageLayer = new EcwRasterLayer(@"..\..\SampleData\Data\World.ecw"); ecwImageLayer.UpperThreshold = double.MaxValue; ecwImageLayer.LowerThreshold = 0; ManagedProj4Projection proj4 = new ManagedProj4Projection(); proj4.InternalProjectionParametersString = ManagedProj4Projection.GetDecimalDegreesParametersString(); proj4.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(3857); ecwImageLayer.ImageSource.Projection = proj4; LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.Layers.Add("EcwImageLayer", ecwImageLayer); wpfMap1.Overlays.Add(staticOverlay); wpfMap1.Refresh(); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.DisplayASimpleMap); androidMap = FindViewById <MapView>(Resource.Id.androidmap); androidMap.MapUnit = GeographyUnit.Meter; androidMap.ZoomLevelSet = new GoogleMapsZoomLevelSet(); GoogleMapsOverlay googleMapsOverlay = new GoogleMapsOverlay(); googleMapsOverlay.TileType = TileType.MultiTile; androidMap.Overlays.Add(googleMapsOverlay); ManagedProj4Projection proj4 = new ManagedProj4Projection(); proj4.InternalProjectionParametersString = ManagedProj4Projection.GetDecimalDegreesParametersString(); proj4.ExternalProjectionParametersString = ManagedProj4Projection.GetGoogleMapParametersString(); proj4.Open(); androidMap.CurrentExtent = proj4.ConvertToExternalProjection(new RectangleShape(-139.2, 92.4, 120.9, -93.2)) as RectangleShape; SampleViewHelper.InitializeInstruction(this, FindViewById <RelativeLayout>(Resource.Id.MainLayout), GetType()); }
private void TestForm_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.CurrentExtent = new RectangleShape(-88.0309, 42.2772, -88.0036, 42.2609); winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 198, 255, 255)); //Displays the World Map Kit as a background. WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay(); winformsMap1.Overlays.Add(worldMapKitDesktopOverlay); ManagedProj4Projection proj4 = new ManagedProj4Projection(); proj4.InternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(26916); proj4.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); ShapeFileFeatureLayer layer1 = new ShapeFileFeatureLayer(@"..\..\data\lake_streets_utm16.shp"); layer1.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.DarkGreen, 4, true); layer1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layer1.FeatureSource.Projection = proj4; ShapeFileFeatureLayer layer2 = new ShapeFileFeatureLayer(@"..\..\data\lake_poly.shp"); layer2.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(150, GeoColor.StandardColors.Green), GeoColor.StandardColors.Black); layer2.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(layer1); layerOverlay.Layers.Add(layer2); winformsMap1.Overlays.Add(layerOverlay); InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer(); inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Red, 10); inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; PointShape pointShape = new PointShape(-88.0168, 42.2688); inMemoryFeatureLayer.InternalFeatures.Add(new Feature(pointShape)); InMemoryFeatureLayer selectInMemoryFeatureLayer = new InMemoryFeatureLayer(); selectInMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Yellow); selectInMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Yellow, 3, true); selectInMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; double meterDistance = 300; layer1.Open(); // This method works fine with Map Suite Assemblies 4.5.54.0 or later. Collection <Feature> withinFeatures1 = layer1.QueryTools.GetFeaturesWithinDistanceOf(pointShape, winformsMap1.MapUnit, DistanceUnit.Meter, meterDistance, ReturningColumnsType.AllColumns); layer1.Close(); foreach (Feature withinFeature1 in withinFeatures1) { selectInMemoryFeatureLayer.InternalFeatures.Add(withinFeature1); } layer2.Open(); Collection <Feature> withinFeatures2 = layer2.QueryTools.GetFeaturesWithinDistanceOf(pointShape, winformsMap1.MapUnit, DistanceUnit.Meter, meterDistance, ReturningColumnsType.AllColumns); layer2.Close(); foreach (Feature withinFeature2 in withinFeatures2) { selectInMemoryFeatureLayer.InternalFeatures.Add(withinFeature2); } LayerOverlay dynamicOverlay = new LayerOverlay(); dynamicOverlay.Layers.Add(inMemoryFeatureLayer); dynamicOverlay.Layers.Add(selectInMemoryFeatureLayer); winformsMap1.Overlays.Add(dynamicOverlay); ScaleBarAdornmentLayer scaleBarAdornmentLayer = new ScaleBarAdornmentLayer(); scaleBarAdornmentLayer.UnitFamily = UnitSystem.Metric; scaleBarAdornmentLayer.Location = AdornmentLocation.LowerLeft; winformsMap1.AdornmentOverlay.Layers.Add(scaleBarAdornmentLayer); winformsMap1.Refresh(); }
private void InitializeOverlays() { string cacheFolder = Path.Combine(Path.GetTempPath(), "TileCache"); WorldMapKitWmsWpfOverlay worldMapKitRoadOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitRoadOverlay.Name = Resources.WorldMapKitOverlayRoadName; worldMapKitRoadOverlay.TileHeight = 512; worldMapKitRoadOverlay.TileWidth = 512; worldMapKitRoadOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldMapKitMapType.Road; worldMapKitRoadOverlay.IsVisible = true; worldMapKitRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayRoadName); mapControl.Overlays.Add(worldMapKitRoadOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialOverlay.Name = Resources.WorldMapKitOverlayAerialName; worldMapKitAerialOverlay.TileHeight = 512; worldMapKitAerialOverlay.TileWidth = 512; worldMapKitAerialOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldMapKitMapType.Aerial; worldMapKitAerialOverlay.IsVisible = false; worldMapKitAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialName); mapControl.Overlays.Add(worldMapKitAerialOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialWithLabelsOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialWithLabelsOverlay.Name = Resources.WorldMapKitOverlayAerialWithLabelsName; worldMapKitAerialWithLabelsOverlay.TileHeight = 512; worldMapKitAerialWithLabelsOverlay.TileWidth = 512; worldMapKitAerialWithLabelsOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldMapKitMapType.AerialWithLabels; worldMapKitAerialWithLabelsOverlay.IsVisible = false; worldMapKitAerialWithLabelsOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialWithLabelsName); mapControl.Overlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay(); openStreetMapOverlay.Name = Resources.OSMOverlayName; openStreetMapOverlay.TileHeight = 512; openStreetMapOverlay.TileWidth = 512; openStreetMapOverlay.IsVisible = false; openStreetMapOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.OSMOverlayName); mapControl.Overlays.Add(openStreetMapOverlay); BingMapsOverlay bingMapsAerialOverlay = new BingMapsOverlay(); bingMapsAerialOverlay.Name = Resources.BingMapsAerialOverlayName; bingMapsAerialOverlay.TileHeight = 512; bingMapsAerialOverlay.TileWidth = 512; bingMapsAerialOverlay.MapType = BingMapsMapType.Aerial; bingMapsAerialOverlay.IsVisible = false; bingMapsAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.BingMapsAerialOverlayName); mapControl.Overlays.Add(bingMapsAerialOverlay); BingMapsOverlay bingMapsRoadOverlay = new BingMapsOverlay(); bingMapsRoadOverlay.Name = Resources.BingMapsRoadOverlayName; bingMapsRoadOverlay.TileHeight = 512; bingMapsRoadOverlay.TileWidth = 512; bingMapsRoadOverlay.MapType = BingMapsMapType.Road; bingMapsRoadOverlay.IsVisible = false; bingMapsRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.BingMapsRoadOverlayName); mapControl.Overlays.Add(bingMapsRoadOverlay); LayerOverlay styleLayersOverLay = new LayerOverlay(); styleLayersOverLay.TileType = TileType.SingleTile; mapControl.Overlays.Add(Resources.StyleLayerOverLayKey, styleLayersOverLay); ManagedProj4Projection wgs84ToMercatorProjection = new ManagedProj4Projection(); wgs84ToMercatorProjection.InternalProjectionParametersString = ManagedProj4Projection.GetDecimalDegreesParametersString(); wgs84ToMercatorProjection.ExternalProjectionParametersString = ManagedProj4Projection.GetSphericalMercatorParametersString(); EarthquakeHeatFeatureLayer heatLayer = new EarthquakeHeatFeatureLayer(new ShapeFileFeatureSource(ConfigurationManager.AppSettings["DataShapefileFileName"])); heatLayer.HeatStyle = new HeatStyle(10, 100, Resources.MagnitudeColumnName, 0, 12, 100, DistanceUnit.Kilometer); heatLayer.FeatureSource.Projection = wgs84ToMercatorProjection; heatLayer.Name = Resources.HeatStyleLayerName; styleLayersOverLay.Layers.Add(heatLayer); ShapeFileFeatureLayer pointLayer = new ShapeFileFeatureLayer(ConfigurationManager.AppSettings["DataShapefileFileName"]); pointLayer.FeatureSource.Projection = wgs84ToMercatorProjection; pointLayer.Name = Resources.PointStyleLayerName; pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Red, 6, GeoColor.StandardColors.White, 1); pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; styleLayersOverLay.Layers.Add(pointLayer); EarthquakeIsoLineFeatureLayer isoLineLayer = new EarthquakeIsoLineFeatureLayer(new ShapeFileFeatureSource(ConfigurationManager.AppSettings["DataShapefileFileName"])); isoLineLayer.FeatureSource.Projection = wgs84ToMercatorProjection; isoLineLayer.Name = Resources.IsolineStyleLayerName; styleLayersOverLay.Layers.Add(isoLineLayer); //Setup TarckOverlay. mapControl.TrackOverlay = new RadiusMearsureTrackInteractiveOverlay(DistanceUnit.Mile, mapControl.MapUnit); mapControl.TrackOverlay.TrackEnded += TrackOverlay_TrackEnded; LayerOverlay markerOverlay = new LayerOverlay(); mapControl.Overlays.Add(Resources.MarkerOverlayKey, markerOverlay); PointStyle highLightStyle = new PointStyle(); highLightStyle.CustomPointStyles.Add(PointStyles.CreateSimpleCircleStyle(GeoColor.FromArgb(50, GeoColor.SimpleColors.Blue), 20, GeoColor.SimpleColors.LightBlue, 1)); highLightStyle.CustomPointStyles.Add(PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.LightBlue, 9, GeoColor.SimpleColors.Blue, 1)); markerMemoryLayer = new InMemoryFeatureLayer(); markerMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Orange, 8, GeoColor.SimpleColors.White, 1); markerMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Layers.Add(markerMemoryLayer); markerMemoryHighlightLayer = new InMemoryFeatureLayer(); markerMemoryHighlightLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = highLightStyle; markerMemoryHighlightLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Layers.Add(markerMemoryHighlightLayer); ScaleBarAdornmentLayer scaleBarAdornmentLayer = new ScaleBarAdornmentLayer(); scaleBarAdornmentLayer.UnitFamily = UnitSystem.Imperial; mapControl.AdornmentOverlay.Layers.Add(scaleBarAdornmentLayer); }
private void FilterEarthquake() { FilteredQueryResults.Clear(); ManagedProj4Projection mercatorToWgs84Projection = new ManagedProj4Projection(); mercatorToWgs84Projection.InternalProjectionParametersString = ManagedProj4Projection.GetSphericalMercatorParametersString(); mercatorToWgs84Projection.ExternalProjectionParametersString = ManagedProj4Projection.GetDecimalDegreesParametersString(); mercatorToWgs84Projection.Open(); for (int i = queryResults.Count - 1; i >= 0; i--) { EarthquakeViewModel resultItem = queryResults[i]; double latitude, longitude; if (double.TryParse(resultItem.Latitude, out latitude) && double.TryParse(resultItem.Longitude, out longitude)) { PointShape point = new PointShape(longitude, latitude); point = (PointShape)mercatorToWgs84Projection.ConvertToExternalProjection(point); EarthquakeViewModel newResultItem = new EarthquakeViewModel(resultItem.EpicenterFeature); newResultItem.Latitude = point.Y.ToString("f3", CultureInfo.InvariantCulture); newResultItem.Longitude = point.X.ToString("f3", CultureInfo.InvariantCulture); double year, depth, magnitude; double.TryParse(newResultItem.Magnitude, out magnitude); double.TryParse(newResultItem.DepthInKilometer, out depth); double.TryParse(newResultItem.Year, out year); if ((magnitude >= queryFilter.StartMagnitudeRange && magnitude <= queryFilter.EndMagnitudeRange || newResultItem.Magnitude == Resources.UnknownString) && (depth <= queryFilter.EndDepthRange && depth >= queryFilter.StartDepthRange || newResultItem.DepthInKilometer == Resources.UnknownString) && (year >= queryFilter.StartYearRange && year <= queryFilter.EndYearRange) || newResultItem.Year == Resources.UnknownString) { FilteredQueryResults.Add(newResultItem); } } } mercatorToWgs84Projection.Close(); mapModel.RefreshMarkersByFeatures(FilteredQueryResults.Select(f => f.EpicenterFeature)); }
private static Popup CreatePopup() { ShapeFileFeatureLayer schoolsFeatureLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\POIs\Schools.shp"); ManagedProj4Projection wgs84ToMercatorProjection = new ManagedProj4Projection(); wgs84ToMercatorProjection.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); wgs84ToMercatorProjection.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString(); schoolsFeatureLayer.FeatureSource.Projection = wgs84ToMercatorProjection; wgs84ToMercatorProjection.Open(); schoolsFeatureLayer.Open(); Feature feature = schoolsFeatureLayer.FeatureSource.GetFeatureById("10", ReturningColumnsType.AllColumns); Popup popup = new Popup(new PointShape(feature.GetWellKnownText())); popup.Content = new PopupUserControl(feature); return popup; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); // WorldMapKitOverlay worldOverlay = new WorldMapKitOverlay(); androidMap = FindViewById <MapView>(Resource.Id.androidmap); androidMap.TrackOverlay.VertexAdded += (sender, e) => { endVertex = e.AddedVertex; }; androidMap.MapUnit = GeographyUnit.Meter; ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).ToString(), "cadastral.shp")); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle( GeoColor.FromArgb(100, GeoColor.StandardColors.White), GeoColor.StandardColors.Green); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("Plotno_1", new GeoFont("Arail", 9, DrawingFontStyles.Bold), new GeoSolidBrush(GeoColor.SimpleColors.Black)); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ShapeFileFeatureLayer buildingLayer = new ShapeFileFeatureLayer(System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).ToString(), "building.shp")); buildingLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle( GeoColor.FromArgb(100, GeoColor.StandardColors.Gray), GeoColor.StandardColors.Blue); buildingLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("BLD_NO", new GeoFont("Arail", 9, DrawingFontStyles.Bold), new GeoSolidBrush(GeoColor.SimpleColors.Black)); buildingLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ShapeFileFeatureLayer hLayer = new ShapeFileFeatureLayer(System.IO.Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).ToString(), "BLOCKs.shp"), ShapeFileReadWriteMode.ReadWrite); hLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("BLOCKSch", new GeoFont("Arail", 9, DrawingFontStyles.Bold), new GeoSolidBrush(GeoColor.SimpleColors.Black)); hLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.StandardColors.Blue); hLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.StandardColors.Blue; hLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.OuterPen = new GeoPen(GeoColor.FromArgb(200, GeoColor.StandardColors.Red), 5); hLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle.SymbolPen = new GeoPen(GeoColor.FromArgb(255, GeoColor.StandardColors.Green), 8); hLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Red, 12, GeoColor.StandardColors.Black); pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Feature gmp = new Feature(new PointShape(256721.2508062, 9855780.04717357)); // pointLayer.InternalFeatures.Add(gmp); LayerOverlay pointOverlay = new LayerOverlay( ); pointOverlay.Layers.Add("PointLayer", pointLayer); // LayerOverlay layerOverlay = new LayerOverlay(); moved to public layerOverlay.Layers.Add("Cadastral", shapeFileFeatureLayer); LayerOverlay hOverlay = new LayerOverlay(); hOverlay.Layers.Add("Blocks", hLayer); LayerOverlay bOverlay = new LayerOverlay(); bOverlay.Layers.Add("Building", buildingLayer); androidMap.Overlays.Add("building", bOverlay); androidMap.Overlays.Add("cadastral", layerOverlay); androidMap.Overlays.Add("blocks", hOverlay); androidMap.Overlays.Add("gmpoint", pointOverlay); // var v = Android.OS.Environment.GetExternalStoragePublicDirectory (); //Internal projection string from the PRJ file. Note that the false easting value (x_0) has to be expressed in meter for proj4 string. string internalProjectionString = "+proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defs"; proj4.InternalProjectionParametersString = internalProjectionString; //External projection string as Geodetic (21037). proj4.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(21037); proj4.Open(); shapeFileFeatureLayer.FeatureSource.Projection = proj4; buildingLayer.FeatureSource.Projection = proj4; pointLayer.FeatureSource.Projection = proj4; hLayer.RequireIndex = false; buildingLayer.RequireIndex = false; shapeFileFeatureLayer.RequireIndex = false; shapeFileFeatureLayer.Open(); androidMap.MapDoubleTap += AndroidMap_MapDoubleTap; androidMap.CurrentExtent = shapeFileFeatureLayer.GetBoundingBox(); shapeFileFeatureLayer.Close(); proj4.Close(); androidMap.Refresh(); gpsButton = GetButton(Resource.Drawable.Gps, TrackButtonClick); addButton = GetButton(Resource.Drawable.Add, TrackButtonClick); searchButton = GetButton(Resource.Drawable.Search, TrackButtonClick); cursorButton = GetButton(Resource.Drawable.Cursor, TrackButtonClick); drawButton = GetButton(Resource.Drawable.Draw, TrackButtonClick); pointButton = GetButton(Resource.Drawable.Point, TrackButtonClick); lineButton = GetButton(Resource.Drawable.Line, TrackButtonClick); rectangleButton = GetButton(Resource.Drawable.Rectangle, TrackButtonClick); circleButton = GetButton(Resource.Drawable.Circle, TrackButtonClick); polygonButton = GetButton(Resource.Drawable.Polygon, TrackButtonClick); ellipseButton = GetButton(Resource.Drawable.Ellipse, TrackButtonClick); editButton = GetButton(Resource.Drawable.Edit, TrackButtonClick); clearButton = GetButton(Resource.Drawable.Clear, TrackButtonClick); trackLinearLayout = new LinearLayout(this); trackLinearLayout.Orientation = Orientation.Horizontal; trackLinearLayout.Visibility = ViewStates.Gone; trackLinearLayout.AddView(pointButton); trackLinearLayout.AddView(lineButton); trackLinearLayout.AddView(rectangleButton); trackLinearLayout.AddView(polygonButton); trackLinearLayout.AddView(ellipseButton); LinearLayout toolsLinearLayout = new LinearLayout(this); toolsLinearLayout.AddView(searchButton); toolsLinearLayout.AddView(addButton); toolsLinearLayout.AddView(gpsButton); toolsLinearLayout.AddView(cursorButton); toolsLinearLayout.AddView(drawButton); toolsLinearLayout.AddView(trackLinearLayout); toolsLinearLayout.AddView(editButton); toolsLinearLayout.AddView(clearButton); InitializeInstruction(toolsLinearLayout); }