示例#1
0
        void ArcgisMapLoaded(object sender, RoutedEventArgs e)
        {
            timer.Duration  = new TimeSpan(0, 0, 0, 0, 500);
            Dtimer.Duration = new TimeSpan(0, 0, 0, 15);
            Ltimer.Duration = new TimeSpan(0, 0, 0, 45);
            var ml              = new WuXiMapLayer();
            var MOml            = new WuXiMapLayer();
            var gmap            = new GoogleMap();
            var ly              = new realLayer();
            var osm             = new OpenStreetMapLayer();
            var cd              = new ClientDynamicTileMapServiceLayer();
            var myGraphicsLayer = new GraphicsLayer {
                ID = "MyGraphicsLayer"
            };
            var myLineLayer = new GraphicsLayer {
                ID = "MyLineLayer"
            };

            MyMap.Layers.Add(ml);
            MyMap.Layers.Add(ly);
            MyMap.Layers.Add(myLineLayer);
            MyMap.Layers.Add(myGraphicsLayer);
            MyOverviewMap.Layer = MOml;
            AddPictureMarker();
        }
示例#2
0
        private void RadioButton_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            OpenStreetMapLayer osmLayer     = MyMap.Layers["OSMLayer"] as OpenStreetMapLayer;
            string             layerTypeTag = (string)((RadioButton)sender).Content;

            OpenStreetMapLayer.MapStyle newLayerType = (OpenStreetMapLayer.MapStyle)System.Enum.Parse(typeof(OpenStreetMapLayer.MapStyle),
                                                                                                      layerTypeTag, true);
            osmLayer.Style = newLayerType;
        }
示例#3
0
        public override void SwitchBaseMapLayer(Client.Layer oldLayer, Core.BaseMapInfo newBaseMapInfo)
        {
            OpenStreetMapLayer osmLayer = oldLayer as OpenStreetMapLayer;

            if (osmLayer != null)
            {
                osmLayer.Style = getMapStyle(newBaseMapInfo);
                osmLayer.SetValue(ESRI.ArcGIS.Client.Extensibility.MapApplication.LayerNameProperty, newBaseMapInfo.DisplayName);
            }
        }
        protected override void WriteAttributes(Layer layer)
        {
            base.WriteAttributes(layer);

            OpenStreetMapLayer osmLayer = layer as OpenStreetMapLayer;

            if (osmLayer != null)
            {
                if (osmLayer.Style != OpenStreetMapLayer.MapStyle.Mapnik)
                {
                    writer.WriteAttributeString("Style", osmLayer.Style.ToString());
                }
            }
        }
示例#5
0
        public void ShowWithOsmLayer()
        {
            var map = new Map();

            var layer = new OpenStreetMapLayer();

            map.Layers.Add(layer);

            var mapControl = new MapControl {
                Map = map, AllowDrop = false
            };

            WindowsFormsTestHelper.ShowModal(mapControl);
        }
        private void Map1_Loaded(object sender, RoutedEventArgs e)
        {
            Map1.MapUnit = GeoUnit.Meter;

            OpenStreetMapLayer openStreetMapLayer = new OpenStreetMapLayer();

            LayerOverlay layerOverlay = new LayerOverlay();

            layerOverlay.Layers.Add(openStreetMapLayer);
            Map1.Overlays.Add(layerOverlay);

            // We can also use the code below to add a google maps to our map.
            // Map1.UseOpenStreetMapAsBaseMap();

            Map1.ZoomToFullBound();
        }
示例#7
0
        private async void DoUpdateBasemap(object obj)
        {
            try
            {
                var item = obj as ArcGISPortalItem;

                if (item != null)
                {
                    var webmap = await WebMap.FromPortalItemAsync(item);

                    while (_mapView.Map.Layers.Any(l => l.ID == "basemap"))
                    {
                        _mapView.Map.Layers.Remove("basemap");
                    }

                    foreach (var s in webmap.Basemap.Layers.Reverse())
                    {
                        switch (s.LayerType)
                        {
                        case WebMapLayerType.ArcGISTiledMapServiceLayer:
                        case WebMapLayerType.Unknown:
                            _mapView.Map.Layers.Insert(0, new ArcGISTiledMapServiceLayer(new Uri(s.Url))
                            {
                                ID = "basemap"
                            });
                            break;

                        case WebMapLayerType.OpenStreetMap:
                            var layer = new OpenStreetMapLayer()
                            {
                                ID = "basemap"
                            };
                            _mapView.Map.Layers.Insert(0, layer);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
示例#8
0
        public void PanZoomUsingMouseWheelTest()
        {
            var map = new Map();

            var layer = new OpenStreetMapLayer();

            map.Layers.Add(layer);

            var mapControl = new MapControl {
                Map = map, AllowDrop = false
            };

            var tool = new PanZoomUsingMouseWheelTool();

            mapControl.ActivateTool(tool);

            WindowsFormsTestHelper.ShowModal(mapControl);
        }
        private async void wpfMap_Loaded(object sender, RoutedEventArgs e)
        {
            Map1.MapUnit = GeoUnit.Meter;

            LayerOverlay baseOverlay = new LayerOverlay();

            baseOverlay.Name = "Base Maps";
            Map1.Overlays.Add(baseOverlay);

            OpenStreetMapLayer baseLayer = new OpenStreetMapLayer();

            baseOverlay.Layers.Add(baseLayer);

            routeLine   = new GeoLine("LINESTRING(2121735.25 6023143.5,2121641.25 6023344,2121161.25 6023667,2121192.75 6025693,2121255.5 6025818.5,2122127.25 6024946.5,2121986.25 6024802.5,2122262.25 6024536,2122014.5 6024363.5,2122691.75 6023497.5,2121754 6023137)");
            routeLength = routeLine.GetLength(GeoUnit.Meter, LengthUnit.Kilometer);
            MemoryLayer routeLayer = new MemoryLayer();

            routeLayer.Styles.Add(new LineStyle(GeoColor.FromRgba(GeoColors.SkyBlue, 180), 10));
            routeLayer.Features.Add(new Feature(routeLine));
            Map1.AddStaticLayers("Route Line", routeLayer);

            Marker vehicle = new Marker();

            vehicle.DropShadow      = false;
            vehicle.OffsetY         = 4;
            vehicle.RenderTransform = new RotateTransform {
                CenterX = 17, CenterY = 7, Angle = -90
            };
            vehicle.ImageSource = new BitmapImage(new Uri("pack://application:,,,/Images/vehicle-red.png", UriKind.RelativeOrAbsolute));
            vehicle.Location    = routeLine.Coordinates.First();
            Map1.Placements.Add(vehicle);

            GeoBound bound = routeLayer.GetBound();

            bound.ScaleUp(40);
            Map1.ZoomTo(bound);
            projection = new Proj4Projection(SpatialReferences.GetSphericalMercator(), SpatialReferences.GetWgs84());
            UpdateLonLat(new GeoPoint(vehicle.Location));
        }
示例#10
0
        internal static void AddBaseOverlays(WpfMap map, SimplifyMapPrinterLayer mapPrinterLayer)
        {
            var osmOverlay = map.Overlays.OfType <OpenStreetMapOverlay>().FirstOrDefault();

            if (osmOverlay != null && osmOverlay.IsVisible)
            {
                OpenStreetMapLayer osmLayer = new OpenStreetMapLayer();
                osmLayer.DrawingExceptionMode = DrawingExceptionMode.DrawException;
                osmLayer.TimeoutInSeconds     = 5;
                osmLayer.DrawingException    += new EventHandler <DrawingExceptionLayerEventArgs>(osmLayer_DrawingException);
                mapPrinterLayer.Layers.Add(osmLayer);
            }

            var bingOverlay = map.Overlays.OfType <BingMapsOverlay>().FirstOrDefault();

            if (bingOverlay != null && bingOverlay.IsVisible)
            {
                BingMapsLayer bingMapsLayer = new BingMapsLayer(bingOverlay.ApplicationId, (Layers.BingMapsMapType)bingOverlay.MapType);
                bingMapsLayer.TileCache            = null;
                bingMapsLayer.TimeoutInSeconds     = 5;
                bingMapsLayer.DrawingExceptionMode = DrawingExceptionMode.DrawException;
                bingMapsLayer.DrawingException    += new EventHandler <DrawingExceptionLayerEventArgs>(BingMapsLayer_DrawingException);
                mapPrinterLayer.Layers.Add(bingMapsLayer);
            }

            var wmlkOverlay = map.Overlays.OfType <WorldMapKitMapOverlay>().FirstOrDefault();

            if (wmlkOverlay != null && wmlkOverlay.IsVisible)
            {
                WorldMapKitLayer worldMapKitLayer = new WorldMapKitLayer(wmlkOverlay.ClientId, wmlkOverlay.PrivateKey);
                worldMapKitLayer.TimeoutInSecond      = 5;
                worldMapKitLayer.DrawingExceptionMode = DrawingExceptionMode.DrawException;
                worldMapKitLayer.DrawingException    += new EventHandler <DrawingExceptionLayerEventArgs>(WorldMapKitLayer_DrawingException);
                worldMapKitLayer.TileCache            = null;
                worldMapKitLayer.Projection           = wmlkOverlay.Projection;
                mapPrinterLayer.Layers.Add(worldMapKitLayer);
            }
        }
        public override void Execute(object parameter)
        {
            FeatureLayer fl = Layer as FeatureLayer;

            if (fl != null)
            {
                navigateToUrl(Utility.CreateUriWithProxy(fl.ProxyUrl, fl.Url));
                return;
            }

            ArcGISDynamicMapServiceLayer dynLayer = Layer as ArcGISDynamicMapServiceLayer;

            if (dynLayer != null)
            {
                navigateToUrl(Utility.CreateUriWithProxy(dynLayer.ProxyURL, dynLayer.Url));
                return;
            }

            ArcGISImageServiceLayer imageLayer = Layer as ArcGISImageServiceLayer;

            if (imageLayer != null)
            {
                navigateToUrl(Utility.CreateUriWithProxy(imageLayer.ProxyURL, imageLayer.Url));
                return;
            }

            ArcGISTiledMapServiceLayer tiledLayer = Layer as ArcGISTiledMapServiceLayer;

            if (tiledLayer != null)
            {
                navigateToUrl(Utility.CreateUriWithProxy(tiledLayer.ProxyURL, tiledLayer.Url));
                return;
            }

            GeoRssLayer geoRssLayer = Layer as GeoRssLayer;

            if (geoRssLayer != null)
            {
                if (geoRssLayer.Source != null)
                {
                    navigateToUrl(geoRssLayer.Source.AbsoluteUri);
                }
                return;
            }

            WmsLayer wmsLayer = Layer as WmsLayer;

            if (wmsLayer != null)
            {
                string url = wmsLayer.Url;
                if (!string.IsNullOrEmpty(url))
                {
                    if (!url.Contains("?"))
                    {
                        url += "?";
                    }
                    else
                    {
                        url += "&";
                    }
                    if (url.IndexOf("request=GetCapabilities", StringComparison.OrdinalIgnoreCase) < 0)
                    {
                        url += "request=GetCapabilities";
                    }
                    if (!string.IsNullOrEmpty(wmsLayer.Version) && url.IndexOf("version=", StringComparison.OrdinalIgnoreCase) < 0)
                    {
                        url += "&version=" + wmsLayer.Version;
                    }
                    navigateToUrl(Utility.CreateUriWithProxy(wmsLayer.ProxyUrl, url));
                }
                return;
            }

            OpenStreetMapLayer osmLayer = Layer as OpenStreetMapLayer;

            if (osmLayer != null)
            {
                navigateToUrl("http://www.openstreetmap.org");
                return;
            }

            ESRI.ArcGIS.Client.Bing.TileLayer bingLayer = Layer as ESRI.ArcGIS.Client.Bing.TileLayer;
            if (bingLayer != null)
            {
                navigateToUrl("http://www.bing.com/maps/");
                return;
            }

            ICustomGraphicsLayer customGraphicsLayer = Layer as ICustomGraphicsLayer;

            if (customGraphicsLayer != null && customGraphicsLayer.SupportsNavigateToServiceDetailsUrl())
            {
                Uri uri = customGraphicsLayer.GetServiceDetailsUrl();
                if (uri != null)
                {
                    navigateToUrl(uri.AbsoluteUri);
                }
                return;
            }
        }
 public OSMTileServers()
 {
     InitializeComponent();
     osmLayer = MyMap.Layers["OSMLayer"] as OpenStreetMapLayer;
 }
 void ArcgisMapLoaded(object sender, RoutedEventArgs e)
 {
     timer.Duration = new TimeSpan(0, 0, 0, 0, 500);
     Dtimer.Duration = new TimeSpan(0, 0, 0, 15);
     Ltimer.Duration = new TimeSpan(0, 0, 0, 45);
     var ml = new WuXiMapLayer();
     var MOml = new WuXiMapLayer();
     var gmap = new GoogleMap();
     var ly = new realLayer();
     var osm = new OpenStreetMapLayer();
     var cd = new ClientDynamicTileMapServiceLayer();
     var myGraphicsLayer = new GraphicsLayer { ID = "MyGraphicsLayer" };
     var myLineLayer = new GraphicsLayer { ID = "MyLineLayer" };
     MyMap.Layers.Add(ml);
     MyMap.Layers.Add(ly);
     MyMap.Layers.Add(myLineLayer);
     MyMap.Layers.Add(myGraphicsLayer);
     MyOverviewMap.Layer = MOml;
     AddPictureMarker();
 }
        private async void DoUpdateBasemap(object obj)
        {
            try
            {
                var item = obj as ArcGISPortalItem;

                if (item != null)
                {
                    var webmap = await WebMap.FromPortalItemAsync(item);

                    while (_mapView.Map.Layers.Any(l => l.ID == "basemap"))
                    {
                        _mapView.Map.Layers.Remove("basemap");
                    }

                    foreach (var s in webmap.Basemap.Layers.Reverse())
                    {
                        switch (s.LayerType)
                        {
                            case WebMapLayerType.ArcGISTiledMapServiceLayer:
                            case WebMapLayerType.Unknown:
                                _mapView.Map.Layers.Insert(0, new ArcGISTiledMapServiceLayer(new Uri(s.Url)) { ID = "basemap" });
                                break;
                            case WebMapLayerType.OpenStreetMap:
                                var layer = new OpenStreetMapLayer() { ID = "basemap" };
                                _mapView.Map.Layers.Insert(0, layer);
                                break;
                            default:
                                break;
                        }
                    }
                }
            }
            catch (Exception)
            {

            }
        }
        /// <summary>
        /// Determines the map units for the map
        /// </summary>
        /// <param name="map">The map to find map units for</param>
        /// <param name="onComplete">The method to invoke once map units have been retrieved</param>
        /// <param name="onFailed">The method to invoke when map unit retrieval fails</param>
        public static void GetMapUnitsAsync(this Map Map, Action <LengthUnits> onComplete,
                                            Action onFailed = null)
        {
            if (Map != null)
            {
                Layer layer = Map.Layers.FirstOrDefault();
                if (layer != null)
                {
                    TileLayer tiledLayer = layer as TileLayer;
                    if (tiledLayer != null)
                    {
                        // Bing is web mercator
                        onComplete(LengthUnits.UnitsMeters);
                    }
                    else
                    {
                        OpenStreetMapLayer osmLayer = layer as OpenStreetMapLayer;
                        if (osmLayer != null)
                        {
                            // Open Streem map is web mercator
                            onComplete(LengthUnits.UnitsMeters);
                        }
                        else
                        {
                            // ArcGIS Server Base Map
                            string units    = null;
                            string layerUrl = null;
                            ArcGISTiledMapServiceLayer agsTiledlayer = layer as ArcGISTiledMapServiceLayer;
                            if (agsTiledlayer != null)
                            {
                                units    = agsTiledlayer.Units;
                                layerUrl = agsTiledlayer.Url;
                            }
                            else
                            {
                                ArcGISDynamicMapServiceLayer agsDynamicLayer = layer as ArcGISDynamicMapServiceLayer;
                                if (agsDynamicLayer != null)
                                {
                                    units    = agsDynamicLayer.Units;
                                    layerUrl = agsDynamicLayer.Url;
                                }
                                else
                                {
                                    ArcGISImageServiceLayer agsImageLayer = layer as ArcGISImageServiceLayer;
                                    if (agsImageLayer != null)
                                    {
                                        layerUrl = agsImageLayer.Url;
                                    }
                                }
                            }

                            if (!string.IsNullOrEmpty(units))
                            {
                                units = units.Replace("esri", "Units"); // replace esri prefix
                                if (Enum.IsDefined(typeof(LengthUnits), units))
                                {
                                    onComplete((LengthUnits)Enum.Parse(typeof(LengthUnits), units, true));
                                }
                                else if (onFailed != null)
                                {
                                    onFailed();
                                }
                            }
                            else if (!string.IsNullOrEmpty(layerUrl))
                            {
                                ArcGISService.GetServiceInfoAsync(layerUrl, null, (o, e) =>
                                {
                                    if (e.Service != null && !string.IsNullOrEmpty(e.Service.Units))
                                    {
                                        string serviceUnits = e.Service.Units;
                                        serviceUnits        = serviceUnits.Replace("esri", "Units"); // replace esri prefix
                                        if (Enum.IsDefined(typeof(LengthUnits), serviceUnits))
                                        {
                                            onComplete((LengthUnits)Enum.Parse(typeof(LengthUnits), serviceUnits, true));
                                        }
                                        else if (onFailed != null)
                                        {
                                            onFailed();
                                        }
                                    }
                                });
                                return;
                            }
                        }
                    }
                }
            }
        }