Я работаю со стеком ESRI, храня свои слои в базе геоданных sql-пространственно-включенных-SDE (тип геометрии, Web Mercator-3857).
Я создаю веб-картографическое приложение, поэтому по умолчанию плитки также находятся в веб-меркаторе, 3857.
Через хранимые процедуры я использую STDistance для запроса расстояний от местоположения пользователя (координаты также в веб-меркаторе) до различных слоев.
Проблема в том, что из-за искажения web mercator мои дистанционные кальки все больше отключаются, чем дальше от экватора они сделаны.
Я думал о хранении своих слоев в типе sql-пространственно-географии (а не геометрии), но:
- Я предполагаю, что мои дистанционные запросы будут занимать гораздо больше времени (дистанционные вычисления на сферической поверхности)
- мне нужно будет импортировать много данных
- сервисы Arcgis не будут такими быстрыми, как им придется проецировать на лету
Если я захожу на карты Google и вычисляю расстояние, возвращаемое расстояние будет гораздо более точным, даже в Северном / Южном регионах, поэтому я предполагаю, что Google должен исправить искажение, вызванное проекцией веб-меркатора.
Мой вопрос: есть ли простое значение коэффициента, которое можно применить к расчетам расстояний в проекции веб-меркатора, чтобы получить «правильное» расстояние?
cos((l1 + l2)/2)
которая даст вам расстояние по прямой линии / постоянному курсу, а не расстояние по большому кругу.