示例#1
0
        public ActionResult DrawUsingZedGraphStyle(Map map, GeoCollection <object> args)
        {
            if (null == map)
            {
                map = new Map("Map1", new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage), 510);
                map.CurrentExtent = new RectangleShape(-123.41875, 41.96396484375, -107.158984375, 30.36240234375);
                map.MapUnit       = GeographyUnit.DecimalDegree;

                WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay();
                map.CustomOverlays.Add(worldMapKitOverlay);

                //Create our Zedgraph Sytle and wire up the event.
                ZedGraphStyle zedGraphStyle = new ZedGraphStyle();
                zedGraphStyle.ZedGraphDrawing += new EventHandler <ZedGraphDrawingEventArgs>(zedGraphStyle_ZedGraphDrawing);

                zedGraphStyle.RequiredColumnNames.Add("WHITE");
                zedGraphStyle.RequiredColumnNames.Add("ASIAN");
                zedGraphStyle.RequiredColumnNames.Add("AREANAME");

                ShapeFileFeatureLayer citiesLayer = new ShapeFileFeatureLayer(Server.MapPath("~/App_Data/cities_a.shp"));
                citiesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(zedGraphStyle);
                citiesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(WorldStreetsTextStyles.GeneralPurpose("AREANAME", 8));
                citiesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

                LayerOverlay staticOverlay = new LayerOverlay();
                staticOverlay.Layers.Add("Cities", citiesLayer);
                staticOverlay.IsBaseOverlay = false;
                map.CustomOverlays.Add(staticOverlay);
                currentMap = map;
            }

            return(View(map));
        }
示例#2
0
        private void RenderMap()
        {
            winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#e6e5d1"));
            winformsMap1.CurrentExtent = new RectangleShape(-96.8058, 32.7943, -96.7796, 32.7773);

            WorldStreetsAndImageryOverlay worldStreetsAndImageryOverlay = new WorldStreetsAndImageryOverlay();

            winformsMap1.Overlays.Add(worldStreetsAndImageryOverlay);

            ShapeFileFeatureLayer featureLayer = new ShapeFileFeatureLayer(Path.Combine(rootPath, "DallasCounty-4326.shp"));

            featureLayer.Open();
            featureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle    = new LineStyle(new GeoPen(GeoColors.LightGray, 1));
            featureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            InMemoryFeatureLayer adjacentRoadsLayer = new InMemoryFeatureLayer();

            adjacentRoadsLayer.Open();
            adjacentRoadsLayer.Columns.Add(new FeatureSourceColumn("FENAME"));
            adjacentRoadsLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(new GeoPen(GeoColor.SimpleColors.LightGreen, 6));
            adjacentRoadsLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = WorldStreetsTextStyles.GeneralPurpose("FENAME", 10);
            adjacentRoadsLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
            adjacentRoadsLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel            = ApplyUntilZoomLevel.Level20;
            LayerOverlay adjacentRoadsOverlay = new LayerOverlay();

            adjacentRoadsOverlay.Layers.Add("afda", featureLayer);
            adjacentRoadsOverlay.Layers.Add("adjacentRoadsLayer", adjacentRoadsLayer);
            winformsMap1.Overlays.Add("adjacentRoadsOverlay", adjacentRoadsOverlay);

            InMemoryFeatureLayer currentRoadLayer = new InMemoryFeatureLayer();

            currentRoadLayer.Open();
            currentRoadLayer.Columns.Add(new FeatureSourceColumn("FENAME"));
            currentRoadLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(new GeoPen(GeoColor.SimpleColors.LightRed, 6));
            currentRoadLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = WorldStreetsTextStyles.GeneralPurpose("FENAME", 10);
            currentRoadLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels;
            currentRoadLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel            = ApplyUntilZoomLevel.Level20;
            LayerOverlay currentRoadOverlay = new LayerOverlay();

            currentRoadOverlay.Layers.Add("currentRoadLayer", currentRoadLayer);
            winformsMap1.Overlays.Add("currentRoadOverlay", currentRoadOverlay);

            winformsMap1.Refresh();
        }
        private void Map1_Loaded(object sender, RoutedEventArgs e)
        {
            Map1.MapUnit       = GeographyUnit.Meter;
            Map1.CurrentExtent = new RectangleShape(-16965308.8699768, 10390517.8895596, 15908646.0310775, -8922930.61480984);

            LayerOverlay layerOverlay = new LayerOverlay();

            layerOverlay.TileType   = TileType.MultipleTile;
            layerOverlay.TileBuffer = 2;

            BackgroundLayer backgroundLayer = new BackgroundLayer(new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean));

            layerOverlay.Layers.Add(backgroundLayer);

            ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Countries02.shp");

            worldLayer.DrawingMarginInPixel = 200;
            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle      = WorldStreetsAreaStyles.Common();
            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle      = WorldStreetsTextStyles.GeneralPurpose("CNTRY_NAME", 12);
            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.Font = new GeoFont("Arial", 16, DrawingFontStyles.Bold);
            worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel   = ApplyUntilZoomLevel.Level20;
            layerOverlay.Layers.Add("SampleLayer", worldLayer);
            Map1.Overlays.Add("LayerOverlay", layerOverlay);

            SimpleMarkerOverlay markerOverlay = new SimpleMarkerOverlay();

            Map1.Overlays.Add("MarkerOverlay", markerOverlay);

            PopupOverlay popupOverlay = new PopupOverlay();

            Map1.Overlays.Add("PopupOverlay", popupOverlay);
            Popup popup = new Popup(new PointShape(-10777662.2854073, 3912165.79621789));

            popup.Content = new TextBlock()
            {
                Text = "ThinkGeo", FontSize = 20
            };
            popupOverlay.Popups.Add(popup);

            Map1.TrackOverlay.DrawingMarginPercentage = 80;
            Map1.EditOverlay.DrawingMarginPercentage  = 80;

            Map1.Refresh();
        }
示例#4
0
        private void AddOverlays(Map map)
        {
            // Background Overlay
            WorldStreetsAndImageryOverlay worldMapKitRoadOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Road");

            worldMapKitRoadOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator;
            worldMapKitRoadOverlay.MapType    = WorldStreetsAndImageryMapType.Road;
            map.CustomOverlays.Add(worldMapKitRoadOverlay);

            WorldStreetsAndImageryOverlay worldMapKitAerialOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Aerial");

            worldMapKitAerialOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator;
            worldMapKitAerialOverlay.MapType    = WorldStreetsAndImageryMapType.Aerial;
            map.CustomOverlays.Add(worldMapKitAerialOverlay);

            WorldStreetsAndImageryOverlay worldMapKitAerialWithLabelsOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Aerial With Labels");

            worldMapKitAerialWithLabelsOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator;
            worldMapKitAerialWithLabelsOverlay.MapType    = WorldStreetsAndImageryMapType.AerialWithLabels;
            map.CustomOverlays.Add(worldMapKitAerialWithLabelsOverlay);

            OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay("Open Street Map");

            map.CustomOverlays.Add(openStreetMapOverlay);

            LayerOverlay poisOverlay = new LayerOverlay("PoisOverlay");

            poisOverlay.IsBaseOverlay = false;
            poisOverlay.IsVisibleInOverlaySwitcher = false;
            map.CustomOverlays.Add(poisOverlay);

            // POI Overlay
            Proj4Projection proj4 = new Proj4Projection();

            proj4.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString();
            proj4.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString();
            proj4.Open();

            ShapeFileFeatureLayer hotelsLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["HotelsShapeFilePathName"]), GeoFileReadWriteMode.Read);

            hotelsLayer.Name         = Resource.Hotels;
            hotelsLayer.Transparency = 120f;
            hotelsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle   = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/Hotel.png")));
            hotelsLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            hotelsLayer.FeatureSource.Projection = proj4;
            poisOverlay.Layers.Add(hotelsLayer.Name, hotelsLayer);

            ShapeFileFeatureLayer medicalFacilitesLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["MedicalFacilitiesShapeFilePathName"]), GeoFileReadWriteMode.Read);

            medicalFacilitesLayer.Name         = Resource.MedicalFacilites;
            medicalFacilitesLayer.Transparency = 120f;
            medicalFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle   = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/DrugStore.png")));
            medicalFacilitesLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            medicalFacilitesLayer.FeatureSource.Projection = proj4;
            poisOverlay.Layers.Add(medicalFacilitesLayer.Name, medicalFacilitesLayer);

            ShapeFileFeatureLayer publicFacilitesLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["PublicFacilitiesShapeFilePathName"]), GeoFileReadWriteMode.Read);

            publicFacilitesLayer.Name         = Resource.PublicFacilites;
            publicFacilitesLayer.Transparency = 120f;
            publicFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle   = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/public_facility.png")));
            publicFacilitesLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            publicFacilitesLayer.FeatureSource.Projection = proj4;
            poisOverlay.Layers.Add(publicFacilitesLayer.Name, publicFacilitesLayer);

            ShapeFileFeatureLayer restaurantsLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["RestaurantsShapeFilePathName"]), GeoFileReadWriteMode.Read);

            restaurantsLayer.Name         = Resource.Restaurants;
            restaurantsLayer.Transparency = 120f;
            restaurantsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle   = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/restaurant.png")));
            restaurantsLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            restaurantsLayer.FeatureSource.Projection = proj4;
            poisOverlay.Layers.Add(restaurantsLayer.Name, restaurantsLayer);

            ShapeFileFeatureLayer schoolsLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["SchoolsShapeFilePathName"]), GeoFileReadWriteMode.Read);

            schoolsLayer.Name         = Resource.Schools;
            schoolsLayer.Transparency = 120f;
            schoolsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle   = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/school.png")));
            schoolsLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            schoolsLayer.FeatureSource.Projection = proj4;
            poisOverlay.Layers.Add(schoolsLayer.Name, schoolsLayer);

            // Restrict area Overlay
            ShapeFileFeatureLayer restrictedLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["RestrictedShapeFilePathName"]), GeoFileReadWriteMode.Read);
            AreaStyle             extentStyle     = new AreaStyle();

            extentStyle.CustomAreaStyles.Add(new AreaStyle(new GeoSolidBrush(GeoColor.SimpleColors.Transparent))
            {
                OutlinePen = new GeoPen(GeoColor.SimpleColors.White, 5.5f)
            });
            extentStyle.CustomAreaStyles.Add(new AreaStyle(new GeoSolidBrush(GeoColor.SimpleColors.Transparent))
            {
                OutlinePen = new GeoPen(GeoColor.SimpleColors.Red, 1.5f)
                {
                    DashStyle = LineDashStyle.Dash
                }
            });
            restrictedLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle    = extentStyle;
            restrictedLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            restrictedLayer.FeatureSource.Projection = proj4;

            LayerOverlay restrictOverlay = new LayerOverlay("RestrictOverlay");

            restrictOverlay.IsBaseOverlay = false;
            restrictOverlay.IsVisibleInOverlaySwitcher = false;
            restrictOverlay.Layers.Add("RestrictLayer", restrictedLayer);
            map.CustomOverlays.Add(restrictOverlay);

            // Queried Service Overlay
            InMemoryFeatureLayer serviceAreaLayer    = new InMemoryFeatureLayer();
            GeoColor             serviceAreaGeoColor = new GeoColor(120, GeoColor.FromHtml("#1749c9"));

            serviceAreaLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle    = AreaStyles.CreateSimpleAreaStyle(serviceAreaGeoColor, GeoColor.FromHtml("#fefec1"), 2, LineDashStyle.Solid);
            serviceAreaLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            InMemoryFeatureLayer highlightFeatureLayer = new InMemoryFeatureLayer();

            highlightFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            LayerOverlay queriedOverlay = new LayerOverlay("QueriedOverlay");

            queriedOverlay.IsBaseOverlay = false;
            queriedOverlay.IsVisibleInOverlaySwitcher = false;
            queriedOverlay.TileType = TileType.SingleTile;
            queriedOverlay.Layers.Add("highlightFeatureLayer", highlightFeatureLayer);
            queriedOverlay.Layers.Add("serviceArea", serviceAreaLayer);
            map.CustomOverlays.Add(queriedOverlay);

            // Marker Overlay
            map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("/Content/Images/selectedHalo.png")
            {
                ImageOffsetX = -16, ImageOffsetY = -16
            };
            map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderWidth = 1;
            map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderColor = GeoColor.StandardColors.Gray;
            map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.AutoSize    = true;
            map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            map.MarkerOverlay.IsVisibleInOverlaySwitcher = false;

            // Drawn Point
            InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay("DrawnPointOverlay");

            markerOverlay.FeatureSource.InternalFeatures.Add(new Feature(new PointShape(-10776838.0796536, 3912346.50475619)));     // Add a initial point for query
            markerOverlay.IsVisibleInOverlaySwitcher = false;
            markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("/Content/Images/drawPoint.png")
            {
                ImageOffsetX = -16, ImageOffsetY = -32
            };
            markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
            map.CustomOverlays.Add(markerOverlay);

            // Legend Layer
            LegendAdornmentLayer legendlayer = new LegendAdornmentLayer {
                Height = 135, Location = AdornmentLocation.LowerRight
            };

            map.AdornmentOverlay.Layers.Add(legendlayer);

            LegendItem hotelsLayeritem = new LegendItem();

            hotelsLayeritem.ImageStyle = hotelsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle;
            hotelsLayeritem.TextStyle  = WorldStreetsTextStyles.GeneralPurpose(Resource.Hotels, 10);
            legendlayer.LegendItems.Add("hotels", hotelsLayeritem);

            LegendItem medicalFacilitesLayeritem = new LegendItem();

            medicalFacilitesLayeritem.ImageStyle = medicalFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle;
            hotelsLayeritem.TextStyle            = WorldStreetsTextStyles.GeneralPurpose(Resource.MedicalFacilites, 10);

            legendlayer.LegendItems.Add("medicalFacilites", medicalFacilitesLayeritem);

            LegendItem publicFacilitesLayeritem = new LegendItem();

            publicFacilitesLayeritem.ImageStyle = publicFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle;
            hotelsLayeritem.TextStyle           = WorldStreetsTextStyles.GeneralPurpose(Resource.PublicFacilites, 10);

            legendlayer.LegendItems.Add("publicFacilites", publicFacilitesLayeritem);

            LegendItem restaurantsLayeritem = new LegendItem();

            restaurantsLayeritem.ImageStyle = restaurantsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle;
            hotelsLayeritem.TextStyle       = WorldStreetsTextStyles.GeneralPurpose(Resource.Restaurants, 10);

            legendlayer.LegendItems.Add("restaurants", restaurantsLayeritem);

            LegendItem schoolsLayeritem = new LegendItem();

            schoolsLayeritem.ImageStyle = schoolsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle;
            hotelsLayeritem.TextStyle   = WorldStreetsTextStyles.GeneralPurpose(Resource.Schools, 10);

            legendlayer.LegendItems.Add("schools", schoolsLayeritem);

            // Scale bar layer
            ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer();

            scaleBarAdormentLayer.Location       = AdornmentLocation.LowerLeft;
            scaleBarAdormentLayer.XOffsetInPixel = 10;
            map.AdornmentOverlay.Layers.Add("ScaleBar", scaleBarAdormentLayer);
            map.AdornmentOverlay.IsVisibleInOverlaySwitcher = false;

            // Create the Routine Engine.
            string streetShapeFilePathName = Server.MapPath(ConfigurationManager.AppSettings["StreetShapeFilePathName"]);
            string streetRtgFilePathName   = Path.ChangeExtension(streetShapeFilePathName, ".rtg");

            RtgRoutingSource routingSource = new RtgRoutingSource(streetRtgFilePathName);
            FeatureSource    featureSource = new ShapeFileFeatureSource(streetShapeFilePathName);

            featureSource.Projection    = proj4;
            routingEngine               = new RoutingEngine(routingSource, featureSource);
            routingEngine.GeographyUnit = GeographyUnit.Meter;
        }