Esri地图坐标转换

时间:2016-09-07 13:37:50

标签: c# wpf arcgis esri esri-maps

我正在尝试将Esri maps实现到WPF项目中,我无法理解他们使用的坐标。旧系统使用lat/long所以我需要从Esri获得相同的值。

当我获取地图当前位置的MapPoint对象时,其X值为300464.16687909653,其Y值为524877.02696703083。我需要获取这些值并将它们转换为lat和lon,然后在必要时以其他方式转换它们。我正在努力寻找任何有助于这种转换的方法,我认为会有一些简单的C#转换方法,但我似乎无法找到它们。

有人可以帮忙吗?

(只是要清楚,我正在使用.NET sdk)

3 个答案:

答案 0 :(得分:1)

根据您的上一次评论我得到了它并且提到了@HimBromBeere - 坐标是WGS84(World Mercator)和WGS84(GPS)。它的EPSG:3395和EPSG:4326。

enter image description here

您可以自己尝试Online coordinate converter

在坐标参考系统(CRS)下拉框旁边,您可以单击并显示CRS的参数:

<强> EPSG:3395

PROJCS["WGS 84 / World Mercator",
    GEOGCS["WGS 84",
        DATUM["WGS_1984",
            SPHEROID["WGS 84",6378137,298.257223563,
                AUTHORITY["EPSG","7030"]],
            AUTHORITY["EPSG","6326"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.01745329251994328,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4326"]],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    PROJECTION["Mercator_1SP"],
    PARAMETER["central_meridian",0],
    PARAMETER["scale_factor",1],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    AUTHORITY["EPSG","3395"],
    AXIS["Easting",EAST],
    AXIS["Northing",NORTH]]

<强> EPSG:4326

GEOGCS["WGS 84",
    DATUM["WGS_1984",
        SPHEROID["WGS 84",6378137,298.257223563,
            AUTHORITY["EPSG","7030"]],
        AUTHORITY["EPSG","6326"]],
    PRIMEM["Greenwich",0,
        AUTHORITY["EPSG","8901"]],
    UNIT["degree",0.01745329251994328,
        AUTHORITY["EPSG","9122"]],
    AUTHORITY["EPSG","4326"]]

深入研究这个问题,您可以查看以下链接。 DotSpatial是一个为.NET 4编写的地理信息系统库。它允许开发人员将空间数据,分析和映射功能合并到他们的应用程序中,或者为社区贡献GIS扩展(参见第二个链接)。

  1. How to perform transformations using ProjNet?

  2. How to transform Lambert coordinates in C#?

答案 1 :(得分:0)

我认为你需要从距离转换为坐标。 您需要一个参考坐标来进行转换。

您提供的X和Y应该是以米为单位的经度和纬度距离。

以下是您可能需要的公式。 https://math.stackexchange.com/questions/29157/how-do-i-convert-the-distance-between-two-lat-long-points-into-feet-meters

所以你需要弄清楚X和Y是什么。 我怀疑它们是在WGS84南极极地平面图(EPSG:3031),这是一个指向-90°,0°的系统。

更新:根据评论,请说清楚它是墨卡托投影,并且页面上甚至还有链接到谷歌搜索结果。

这是一个C#解决方案: http://wiki.openstreetmap.org/wiki/Mercator#C.23

答案 2 :(得分:0)

如果您直接从ESRI Map获得X,Y,那么我会假设您尚未进行任何重投影。所以坐标应该仍然在EPSG:102100哪个ESRI Web Mercator。

由于您的要求是通过WGS84(EPSG:4326)来获得经度和纬度,因此您可以使用许多.Net库来执行此任务,例如proj4Net。此外,还有多个Web API也可以像ESRI Javascript API一样执行:https://developers.arcgis.com/javascript/3/jssamples/util_project.html