Esri карты конвертировать координаты
Я пытаюсь реализовать Esri maps
в проект WPF, и я не могу понять, какие координаты они используют. Старая система используется lat/long
поэтому мне нужно получить те же значения от Esri.
Когда я получаю объект MapPoint для текущей позиции карты, его значение X 300464.16687909653
и его значение Y 524877.02696703083
, Мне нужно взять эти значения и преобразовать их в широту и долготу, а затем преобразовать их в случае необходимости. Я изо всех сил пытаюсь найти что-нибудь, что может помочь с этим преобразованием, я предполагал, что будут некоторые простые методы преобразования C#, но я не могу их найти.
Кто-нибудь может помочь?
(Просто чтобы прояснить, я использую.NET SDK)
3 ответа
С вашим последним комментарием я получил его и, как упомянул @HimBromBeere, - координаты WGS84 (World Mercator) и WGS84 (GPS). Это EPSG:3395 и EPSG:4326.
Вы можете попробовать Онлайн конвертер координат самостоятельно.
Рядом с раскрывающимся окном системы координат (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. Она позволяет разработчикам включать функциональные возможности пространственных данных, анализа и отображения в свои приложения или предоставлять расширения ГИС сообществу (см. Вторую ссылку).
Если вы непосредственно получите X,Y из ESRI Map, то я бы предположил, что вы еще не делали репроекции. Так что координаты должны еще в EPSG:102100, который ESRI Web Mercator.
Поскольку ваше требование - проецировать точку на WGS84 (EPSG:4326) для получения долготы и широты, есть много библиотек.Net, которые вы можете использовать для этой задачи, таких как proj4Net. Кроме того, есть несколько веб-API, которые могут сделать это, как и ESRI Javascript API: https://developers.arcgis.com/javascript/3/jssamples/util_project.html
Я думаю, что вам нужно конвертировать из расстояния в координаты. Вам нужна справочная координата, чтобы сделать преобразование.
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°.
Обновление: согласно комментариям, пожалуйста, ясно сказано, что это проекция Меркатора, и на странице есть даже ссылка на результат Google.
Вот решение C#: http://wiki.openstreetmap.org/wiki/Mercator