示例#1
0
        private void MapViewModel_RequestViewpoint(object sender, Viewpoint viewpoint)
        {
            var envelope = viewpoint.TargetGeometry.Extent;

            if (envelope.Height > 0)
            {
                envelope = new Esri.ArcGISRuntime.Geometry.Envelope(envelope.XMin, envelope.YMin - envelope.Height * (64 / _mapView.Bounds.Height),
                                                                    envelope.XMax, envelope.YMax, envelope.SpatialReference);
            }
            _mapView.SetViewpointGeometryAsync(envelope, 100);
        }
示例#2
0
        public override Esri.ArcGISRuntime.Geometry.Geometry FromXml(XmlNode node, XmlNamespaceManager mgr)
        {
            if (node != null && node.HasChildNodes)
            {
                if (node.FirstChild.Attributes.Count > 0 &&
                    node.FirstChild.Attributes[0].Name == "srsName")
                {
                    int refSystem;
                    if (!int.TryParse(node.FirstChild.Attributes[0].Value.ToString().LastPart(char.Parse(":")), out refSystem))
                    {
                        refSystem = 0;
                    }
                    _spatialReferenceSystem = refSystem;
                }

                if (node.ChildNodes[0].ChildNodes.Count == 2)
                {
                    var lowerLeft  = node.ChildNodes[0].ChildNodes[0].InnerText;
                    var upperRight = node.ChildNodes[0].ChildNodes[1].InnerText;

                    var llPos = lowerLeft.Replace(@"\t", " ").Replace(@"\n", " ").Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
                    var urPos = upperRight.Replace(@"\t", " ").Replace(@"\n", " ").Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

                    double llX;
                    double llY;

                    if (!double.TryParse(llPos[0], NumberStyles.Float, new CultureInfo("en-US"), out llX))
                    {
                        llX = 0.0;
                    }
                    if (!double.TryParse(llPos[1], NumberStyles.Float, new CultureInfo("en-US"), out llY))
                    {
                        llY = 0.0;
                    }

                    double urX;
                    double urY;
                    if (!double.TryParse(urPos[0], NumberStyles.Float, new CultureInfo("en-US"), out urX))
                    {
                        urX = 0.0;
                    }
                    if (!double.TryParse(urPos[1], NumberStyles.Float, new CultureInfo("en-US"), out urY))
                    {
                        urY = 0.0;
                    }

                    var createdEnvelope =
                        new Esri.ArcGISRuntime.Geometry.Envelope(llX, llY, urX, urY, new Esri.ArcGISRuntime.Geometry.SpatialReference(_spatialReferenceSystem));
                    return(createdEnvelope);
                }
            }

            return(null);
        }