public string ClickOnMarker(Map map, GeoCollection <object> args) { int times = 0; if (Session["ClickTimes"] == null) { times = 1; } else { times = (int)Session["ClickTimes"]; times++; } Session["ClickTimes"] = times; int iconIndex = times % 4 + 1; if (iconIndex >= 4) { iconIndex -= 4; } string iconPath = Url.Content("~/Content/images/") + markerIcons[iconIndex]; InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)map.CustomOverlays["MarkerOverlay"]; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageVirtualPath = iconPath; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageOffsetX = -10.5f; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageOffsetY = 25f; return(String.Format("You have clicked the marker <span style='color:red;font-weight:bolder;font-size:15;'>{0}</span> time(s)", times)); }
// // GET: /AddAClickEvent/ public ActionResult AddAClickEvent() { Map map = new Map("Map1", new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage), 510); map.MapBackground = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF")); map.CurrentExtent = new RectangleShape(-125, 72, 50, -46); map.MapUnit = GeographyUnit.DecimalDegree; WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay("WorldMapKitOverlay"); map.CustomOverlays.Add(worldMapKitOverlay); InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay("MarkerOverlay"); markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageWidth = 21; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageHeight = 25; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageOffsetX = -10.5f; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.ImageOffsetY = -25f; markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; map.CustomOverlays.Add(markerOverlay); return(View(map)); }
private void AddVehicleHistoryMarkerOverlay(Map Map1) { InMemoryMarkerOverlay vehicleHistoryOverlay = new InMemoryMarkerOverlay("VehicleHistoryOverlay", new FeatureSourceColumn[] { new FeatureSourceColumn("IsCurrentPosition"), new FeatureSourceColumn("Speed"), new FeatureSourceColumn("DateTime"), new FeatureSourceColumn("Longitude"), new FeatureSourceColumn("Latitude"), new FeatureSourceColumn("VehicleName"), new FeatureSourceColumn("Duration") }); vehicleHistoryOverlay.IsBaseOverlay = false; vehicleHistoryOverlay.IsVisibleInOverlaySwitcher = false; Map1.CustomOverlays.Add(vehicleHistoryOverlay); StringBuilder popupHtml = new StringBuilder("<table>"); popupHtml.Append("<tr><td colspan='2' class='vehicleName'>[#VehicleName#]</td></tr>"); popupHtml.Append("<tr><td colspan='2'><div class='hrLine'></div></td></tr>"); popupHtml.Append("<tr class='vehicleTxt'><td>Longitude:</td><td>[#Longitude#]</td></tr>"); popupHtml.Append("<tr class='vehicleTxt'><td>Latitude:</td><td>[#Latitude#]</td></tr>"); popupHtml.Append("<tr class='vehicleTxt'><td>Speed:</td><td>[#Speed#]</td></tr>"); popupHtml.Append("<tr class='vehicleTxt'><td>Time</td><td>[#DateTime#]</td></tr>"); popupHtml.Append("</table>"); vehicleHistoryOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("images/trail point.png", 6, 6, -3, -3); vehicleHistoryOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderWidth = 1; vehicleHistoryOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderColor = GeoColor.StandardColors.Gray; vehicleHistoryOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.ContentHtml = popupHtml.ToString(); vehicleHistoryOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.AutoSize = true; vehicleHistoryOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; }
private void Form_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.CurrentExtent = new RectangleShape(-155.733, 95.60, 104.42, -81.9); WorldMapKitWmsDesktopOverlay worldMapKitOverlay = new WorldMapKitWmsDesktopOverlay(); winformsMap1.Overlays.Add(worldMapKitOverlay); InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay(); markerOverlay.MapControl = winformsMap1; markerOverlay.Columns.Add(new FeatureSourceColumn("Name")); markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.Image = Properties.Resources.AQUA; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.Width = 20; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.Height = 34; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.YOffset = -17; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.ToolTipText = "This is [#Name#]."; markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; winformsMap1.Overlays.Add("MarkerOverlay", markerOverlay); Feature newFeature = new Feature(-95.2806, 38.9554); newFeature.ColumnValues.Add("Name", "Lawrence"); markerOverlay.FeatureSource.BeginTransaction(); markerOverlay.FeatureSource.AddFeature(newFeature); markerOverlay.FeatureSource.CommitTransaction(); winformsMap1.Refresh(); }
public void ClickEvent(Map map, GeoCollection <object> args) { PointShape position = new PointShape(Convert.ToDouble(args[0]), Convert.ToDouble(args[1])); InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)map.CustomOverlays["MarkerOverlay"]; markerOverlay.FeatureSource.InternalFeatures.Add("marker" + Guid.NewGuid().ToString(), new Feature(position)); }
public void ShowRotation(Map map, GeoCollection <object> args) { if (null != map) { InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)map.CustomOverlays["MarkerOverlay"]; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.RotationAngle += 30; } }
private void UpdateVehiclesToOverlays(Map Map1, Dictionary <int, Vehicle> vehicles) { InMemoryMarkerOverlay vehiclesMarkerOverlay = Map1.CustomOverlays["VehicleOverlay"] as InMemoryMarkerOverlay; InMemoryMarkerOverlay vehiclesHistoryOverlay = Map1.CustomOverlays["VehicleHistoryOverlay"] as InMemoryMarkerOverlay; // Clear old vehicle's old positions vehiclesMarkerOverlay.FeatureSource.InternalFeatures.Clear(); vehiclesHistoryOverlay.FeatureSource.InternalFeatures.Clear(); foreach (var currentVehicle in vehicles) { foreach (var item in vehicles) { Vehicle vehicle = item.Value; Feature vehicleFeature = new Feature(new PointShape(vehicle.Location.Longitude, vehicle.Location.Latitude)); vehicleFeature.ColumnValues.Add("VehicleId", vehicle.Id.ToString()); vehiclesMarkerOverlay.FeatureSource.Open(); vehiclesMarkerOverlay.FeatureSource.BeginTransaction(); vehiclesMarkerOverlay.FeatureSource.AddFeature(vehicleFeature); vehiclesMarkerOverlay.FeatureSource.CommitTransaction(); } // Add the vheicle's location histories foreach (Location historyLocation in currentVehicle.Value.HistoryLocations.Take(5)) { Feature breadcrumbFeature = new Feature(historyLocation.GetLocationPointShape().GetWellKnownBinary(), currentVehicle.Value.VehicleName + historyLocation.DateTime.ToString()); breadcrumbFeature.ColumnValues["DateTime"] = historyLocation.DateTime.ToString(); breadcrumbFeature.ColumnValues["IsCurrentPosition"] = "IsNotCurrentPosition"; breadcrumbFeature.ColumnValues["Speed"] = historyLocation.Speed.ToString(CultureInfo.InvariantCulture); Location projectedLocation = ProjectLocation(historyLocation); breadcrumbFeature.ColumnValues["Longitude"] = projectedLocation.Longitude.ToString("N6", CultureInfo.InvariantCulture); breadcrumbFeature.ColumnValues["Latitude"] = projectedLocation.Latitude.ToString("N6", CultureInfo.InvariantCulture); breadcrumbFeature.ColumnValues["VehicleName"] = currentVehicle.Value.VehicleName; breadcrumbFeature.ColumnValues["Duration"] = currentVehicle.Value.SpeedDuration.ToString(CultureInfo.InvariantCulture); vehiclesHistoryOverlay.FeatureSource.InternalFeatures.Add(breadcrumbFeature); } // Add the vehicle's latest position Feature latestPositionFeature = new Feature(currentVehicle.Value.Location.GetLocationPointShape().GetWellKnownBinary(), currentVehicle.Value.VehicleName); latestPositionFeature.ColumnValues["DateTime"] = currentVehicle.Value.Location.DateTime.ToString(); latestPositionFeature.ColumnValues["IsCurrentPosition"] = "IsCurrentPosition"; latestPositionFeature.ColumnValues["Speed"] = currentVehicle.Value.Location.Speed.ToString(CultureInfo.InvariantCulture); Location projectedCurrentLocation = ProjectLocation(currentVehicle.Value.Location); latestPositionFeature.ColumnValues["Longitude"] = projectedCurrentLocation.Longitude.ToString("N6", CultureInfo.InvariantCulture); latestPositionFeature.ColumnValues["Latitude"] = projectedCurrentLocation.Latitude.ToString("N6", CultureInfo.InvariantCulture); latestPositionFeature.ColumnValues["VehicleName"] = currentVehicle.Value.VehicleName; latestPositionFeature.ColumnValues["Duration"] = currentVehicle.Value.SpeedDuration.ToString(CultureInfo.InvariantCulture); vehiclesHistoryOverlay.FeatureSource.InternalFeatures.Add(latestPositionFeature); vehiclesHistoryOverlay.FeatureSource.Close(); } }
public void RefreshMarkerOverlay(Map map, Collection <object> args) { InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)map.CustomOverlays["MarkerOverlay"]; for (int i = 0; i < markerOverlay.FeatureSource.InternalFeatures.Count; i++) { PointShape point = markerOverlay.FeatureSource.InternalFeatures[i].GetShape() as PointShape; double lon = point.X + new Random(Guid.NewGuid().GetHashCode()).Next(-12, 20) / 5000.0; double lat = point.Y + new Random(Guid.NewGuid().GetHashCode()).Next(-11, 26) / 5000.0; markerOverlay.FeatureSource.InternalFeatures[i] = new Feature(lon, lat); } }
public void AddMarker(Map map, GeoCollection <object> args) { if (map != null) { string markerId = args["markerId"].ToString(); double x = Convert.ToDouble(args["x"]); double y = Convert.ToDouble(args["y"]); InMemoryMarkerOverlay markerOverlay = map.CustomOverlays["MarkerOverlay"] as InMemoryMarkerOverlay; if (!markerOverlay.FeatureSource.InternalFeatures.Contains(markerId)) { // Add a new feature as a marker markerOverlay.FeatureSource.InternalFeatures.Add(markerId, new Feature(x, y)); } } }
public void Clear(Map map, GeoCollection <object> args) { // Clear search poi markers. map.MarkerOverlay.FeatureSource.Clear(); // Clear the service area. LayerOverlay queriedOverlay = map.CustomOverlays["QueriedOverlay"] as LayerOverlay; InMemoryFeatureLayer serviceAreaLayer = queriedOverlay.Layers["serviceArea"] as InMemoryFeatureLayer; serviceAreaLayer.InternalFeatures.Clear(); // Clear the plot point. InMemoryMarkerOverlay plotPointOverlay = map.CustomOverlays["DrawnPointOverlay"] as InMemoryMarkerOverlay; plotPointOverlay.FeatureSource.Clear(); }
public string ConvertCoordinate(Map map, GeoCollection <object> args) { string result = string.Empty; float screenX, screenY; string x = args[0].ToString(); string y = args[1].ToString(); if (float.TryParse(x, out screenX) && float.TryParse(y, out screenY)) { PointShape worldCoordinate = map.ToWorldCoordinate(screenX, screenY); InMemoryMarkerOverlay inMemoryMarkerOverlay = (InMemoryMarkerOverlay)map.CustomOverlays["InMemoryMarkerOverlay"]; inMemoryMarkerOverlay.FeatureSource.InternalFeatures.Clear(); inMemoryMarkerOverlay.FeatureSource.InternalFeatures.Add("marker", new Feature(worldCoordinate)); result = string.Format("The converted world coordinates are <br/><span style='color:red;font-size:13;font-weight:bolder;'>({0}, {1})</span>.", worldCoordinate.X, worldCoordinate.Y); } return(result); }
public void ShowTextCheckBox(Map map, GeoCollection <object> args) { if (null != map) { string checkedString = args[0] as string; InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)map.CustomOverlays["MarkerOverlay"]; if ("checked" == checkedString) { markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.Text = "Vehicle"; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.FontColor = GeoColor.StandardColors.OrangeRed; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.FontStyle = new GeoFont("Arail Black", 12, DrawingFontStyles.Bold); markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.TextOffsetX = 7F; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.TextOffsetY = 3F; } else { markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage.Text = string.Empty; } } }
private void AddVehicleMarkerOverlay(Map Map1) { DateTime currentTime = GetAdjustedCurrentDateTime(); Dictionary <int, Vehicle> vehicles = GetVehicles(Map1, currentTime); ValueMarkerStyle valueStyle = new ValueMarkerStyle("VehicleId"); foreach (var item in vehicles) { Vehicle vehicle = item.Value; WebImage currentPositionImage = new WebImage(vehicle.VehicleIconVirtualPath); PointMarkerStyle currentPositionStyle = new PointMarkerStyle(currentPositionImage); MarkerValueItem currentPositionItem = new MarkerValueItem(vehicle.Id.ToString(), (MarkerStyle)currentPositionStyle); valueStyle.ValueItems.Add(currentPositionItem); } InMemoryMarkerOverlay vehiclesMarkerOverlay = new InMemoryMarkerOverlay("VehicleOverlay", new FeatureSourceColumn[] { new FeatureSourceColumn("VehicleId") }); vehiclesMarkerOverlay.IsVisibleInOverlaySwitcher = false; vehiclesMarkerOverlay.IsBaseOverlay = false; vehiclesMarkerOverlay.ZoomLevelSet.ZoomLevel01.CustomMarkerStyle = valueStyle; vehiclesMarkerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; Map1.CustomOverlays.Add(vehiclesMarkerOverlay); }
public JsonResult SearchSimilarSites(Map map, GeoCollection <object> args) { string[] searchPointLatLng = args["searchPoint"].ToString().Split(','); PointShape searchPoint = new PointShape(double.Parse(searchPointLatLng[0]), double.Parse(searchPointLatLng[1])); object result = new { status = "2", message = "out of restriction area" }; Feature searchAreaFeature = null; // check if the clicked point is in valid area (Frisco City) FeatureLayer friscoLayer = (FeatureLayer)(map.CustomOverlays["RestrictOverlay"] as LayerOverlay).Layers["RestrictLayer"]; friscoLayer.Open(); if (friscoLayer.QueryTools.GetFeaturesContaining(searchPoint, ReturningColumnsType.NoColumns).Any()) { // Calculate the service area/buffer area and display it on the map if (args["searchMode"].ToString().Equals("serviceArea", StringComparison.InvariantCultureIgnoreCase)) { int drivingTimeInMinutes = Convert.ToInt32(args["driveTime"].ToString(), CultureInfo.InvariantCulture); searchAreaFeature = new Feature(routingEngine.GenerateServiceArea(searchPoint, new TimeSpan(0, drivingTimeInMinutes, 0), 100, GeographyUnit.Meter)); } else { DistanceUnit distanceUnit = args["distanceUnit"].ToString() == "Mile" ? DistanceUnit.Mile : DistanceUnit.Kilometer; double distanceBuffer = Convert.ToDouble(args["distanceBuffer"].ToString(), CultureInfo.InvariantCulture); searchAreaFeature = new Feature(searchPoint.Buffer(distanceBuffer, 40, GeographyUnit.Meter, distanceUnit)); } // Search the Pois in calculated service area and display them on map LayerOverlay poiOverlay = map.CustomOverlays["PoisOverlay"] as LayerOverlay; ShapeFileFeatureLayer poiLayer = (ShapeFileFeatureLayer)(poiOverlay.Layers[args["category"].ToString()]); poiLayer.Open(); Collection <Feature> featuresInServiceArea = poiLayer.QueryTools.GetFeaturesWithin(searchAreaFeature.GetShape(), ReturningColumnsType.AllColumns); List <Feature> filteredQueryFeatures = FilterFeaturesByQueryConfiguration(featuresInServiceArea, args["category"].ToString(), args["subCategory"].ToString().Replace(">~", ">=")); if (filteredQueryFeatures.Any()) { Collection <object> returnedJsonFeatures = new Collection <object>(); foreach (Feature feature in filteredQueryFeatures) { PointShape latlng = feature.GetShape() as PointShape; returnedJsonFeatures.Add(new { name = feature.ColumnValues["NAME"], point = string.Format("{0},{1}", latlng.Y, latlng.X) }); } // Add into plot marker overlay. InMemoryMarkerOverlay drawPointOverlay = map.CustomOverlays["DrawnPointOverlay"] as InMemoryMarkerOverlay; drawPointOverlay.FeatureSource.Clear(); drawPointOverlay.FeatureSource.BeginTransaction(); drawPointOverlay.FeatureSource.AddFeature(new Feature(searchPoint)); drawPointOverlay.FeatureSource.CommitTransaction(); // Add into markerOvelray. AddMarkers(filteredQueryFeatures, map); Feature wgs84Feature = new Feature(searchAreaFeature.GetShape()); // Add into queried overlay. LayerOverlay queriedOverlay = map.CustomOverlays["QueriedOverlay"] as LayerOverlay; InMemoryFeatureLayer serviceAreaLayer = (queriedOverlay.Layers["serviceArea"] as InMemoryFeatureLayer); serviceAreaLayer.Open(); serviceAreaLayer.InternalFeatures.Clear(); serviceAreaLayer.InternalFeatures.Add(wgs84Feature); result = new { status = "0", message = "has features", features = returnedJsonFeatures }; } else { result = new { status = "1", message = "without features" }; } } // return the search poi feature information to the client. return(Json(result)); }
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; }
public static InMemoryMarkerOverlay CreateInMemoryMarkerOverlay() { const string inMemoryMarkerOverlayName = "InMemory Marker Overlay"; InMemoryMarkerOverlay inMemoryMarkerOverlay = new InMemoryMarkerOverlay(); inMemoryMarkerOverlay.Name = inMemoryMarkerOverlayName; inMemoryMarkerOverlay.Columns.Add(new FeatureSourceColumn("Name")); // Set the marker's name as its Tooltip. inMemoryMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.ToolTip = "[#Name#]"; // Set the marker's style. inMemoryMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.ImageSource = new BitmapImage(new Uri("/Images/marker.png", UriKind.RelativeOrAbsolute)); inMemoryMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.Width = 20; inMemoryMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.Height = 34; inMemoryMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultPointMarkerStyle.YOffset = -17; inMemoryMarkerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Create a feature and add it to FeatureSource. Feature newFeature = new Feature("POINT(-10780998.2372393 3912039.4655777)"); newFeature.ColumnValues.Add("Name", "William and Abbie Allen Elementary School"); inMemoryMarkerOverlay.FeatureSource.BeginTransaction(); inMemoryMarkerOverlay.FeatureSource.AddFeature(newFeature); inMemoryMarkerOverlay.FeatureSource.CommitTransaction(); return inMemoryMarkerOverlay; }