コード例 #1
0
        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));
                }
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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;
        }