【发布时间】:2020-05-29 00:36:56
【问题描述】:
我使用ArcGIS .NET SDK 和WPF,我的代码基于this project。
我正在尝试从数据库加载多边形以显示在地图上。我还希望能够编辑这些多边形并在数据库中更新它们。我一切正常,因为我正在使用 SpatialReferences.WebMercator 属性保存我的多边形。
但现在我有一个数据库,其中多边形保存为 Wgs84(纬度和经度)。现在我可以将这些多边形加载到地图上,但我无法编辑它们,因为地图是 WebMercator,而多边形是 Wgs84。一旦我尝试编辑,我就会得到一个异常:
输入空间参考与所属空间不匹配 参考...
我需要在从数据库加载多边形后立即转换它们(Wgs84 到 WebMercator),并在保存到数据库之前将它们转换回来(WebMercator 到 Wgs84)。
所以我能够进行第一次转换,我从数据库中加载 Wgs84 多边形并将每个点转换为 WebMercator。我可以显示这些多边形,也可以编辑它们。
但是在尝试保存多边形时,我正在努力进行第二次转换。我确实找到了一个可以将这些 WebMercator 点转换回 Wgs84 以保存在数据库中的公式,但除了纬度和经度之外,它还需要一个区域。所以我得到积分的方式:
String geomStr = MyMapView.SketchEditor.Geometry.ToJson();
从那里我可以得到所有要转换的纬度和经度对,但我需要每个点的区域。有没有办法从图形或几何对象中检索区域?或者仅通过知道纬度或经度点来确定区域呢?这就是我在尝试 Wgs84 到 WebMercator 的转换公式之前所需要的。
This tool 具有我需要的功能。但从 EPSG:3857 转换为 EPSG:4326 时,它并不是 100% 准确的。
【问题讨论】: