private void DrawObject_DrawComplete(object sender, DrawEventArgs e) { if (this.DrawWidget == this.GetType()) { string viewURL = ""; MapPoint point = e.Geometry as MapPoint; AddLocationGraphic(point); if (GeometryTool.IsGeographicSR(this.MapSRWKID)) { viewURL = GetViewContentURL(point.X, point.Y); OpenSteetViewWindow(viewURL); } if (GeometryTool.IsWebMercatorSR(this.MapSRWKID)) { point = point.WebMercatorToGeographic(); viewURL = GetViewContentURL(point.X, point.Y); OpenSteetViewWindow(viewURL); } else { if (geoService == null) { geoService = new GeometryService(this.AppConfig.GeometryService); geoService.ProjectCompleted += new EventHandler <GraphicsEventArgs>(GeometryService_ProjectCompleted); } geoService.ProjectAsync(this.GraphicsLayer.Graphics, new SpatialReference(2446)); } } }
/// <summary> /// Convert extent to Envelope between Mercator(102100) and Geographic(4326) spatial references /// If it is other spatial reference, use GeometryTool to project the envelope /// </summary> /// <param name="outSRWKID"></param> public Envelope ToEnvelope(int outSRWKID) { Envelope envelope = null; if (GeometryTool.IsWebMercatorSR(outSRWKID) && GeometryTool.IsGeographicSR(this.spatialReference)) { MapPoint mPoint1 = new MapPoint(this.xmin, this.ymin, new SpatialReference(4326)); MapPoint mPoint2 = new MapPoint(this.xmax, this.ymax, new SpatialReference(4326)); envelope = new Envelope(mPoint1.GeographicToWebMercator(), mPoint2.GeographicToWebMercator()); } else if (GeometryTool.IsWebMercatorSR(this.spatialReference) && GeometryTool.IsGeographicSR(outSRWKID)) { MapPoint mPoint1 = new MapPoint(this.xmin, this.ymin, new SpatialReference(this.spatialReference)); MapPoint mPoint2 = new MapPoint(this.xmax, this.ymax, new SpatialReference(this.spatialReference)); envelope = new Envelope(mPoint1.WebMercatorToGeographic(), mPoint2.WebMercatorToGeographic()); } else if (this.spatialReference == outSRWKID) { envelope = ToEnvelope(); } return(envelope); }
private void RSSClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { string xmlRSS = e.Result; if (!string.IsNullOrEmpty(xmlRSS)) { GeoRSSSource rssSource = GeoRSSHelper.ParseGeoRSSXml(xmlRSS, widgetConfig.Filter, GeometryTool.IsWebMercatorSR(this.MapSRWKID)); ListGeoRSSItems.ItemsSource = rssSource.Items; if (this.Visibility == Visibility.Visible) { AddGeoRSSGraphics(rssSource.Items); } } this.IsBusy = false; }