Как я преобразовываю координаты в Широту и Долготу?

Это очень хороший вопрос. Да, вы можете выполнить это через интеграцию с WireMock. Поскольку у вас нет API этого приложения, вы не можете заставить их создавать определения контрактов, заглушки и т. Д. Однако вы можете настроить тесты, которые будут вызывать реальные API шлюза AWS, и запишите пару запрос / ответ в виде заглушки. Здесь вы можете найти такой пример для заглушения API-интерфейса компании под названием Stripe https://github.com/spring-cloud-samples/the-legacy-app/tree/master/stubs_with_proxy [111 ]

7
задан MarkJ 5 March 2009 в 07:40
поделиться

6 ответов

Спросите их, какую систему координат они используют! (или если Вы получили набор данных от некоторой базы данных, посмотрите на метаданные для набора данных, и это должно сказать Вам. Иначе я скептически относился бы к его значению),

Скорее всего, это - одна из систем координаты на плоскости состояния. Они для локализованных областей земли (отчасти как UTM) и часто используются для рассмотрения.

Можно использовать CORPSCON (или другие программы GIS; ExpertGPS сделает это, если у Вас будет Дополнительный пакет GIS, но это не свободно. Я забываю, делает ли GPSBabel преобразование) преобразовать между lat/long и любой из систем координаты на плоскости состояния. Необходимо будет также знать, в какой данной величине координаты находятся. WGS84 и NAD83 очень близки, но NAD27 отличается.

5
ответ дан 6 December 2019 в 08:45
поделиться

Если Вы смотрите на первые 2 строки данных и вычитаете широту

47.7044 - 47.7741 = -0.06972 degrees

Существует 60 морских миль за градус широты и 6 076 футов за морскую милю.

-.06972 * 60 * 6076 = 25,415 ft

Вычитание двух значений 'Y':

260662 - 286031 = 25,409 ft

Настолько действительно, который, кажется, доказывает, что значения X и Y находятся в ногах.

Если Вы принимаете какое-либо из значений Y и преобразовываете назад в градусы, например

260622 ft / ( 6076 ft/nm ) / ( 60 nm/degree ) = .71
286031 ft / 6076 / 60 = .78

Так вычитание тех значений от широт (47.70 и 47.77) дает Вам очень близко к точно 47 градусам, которые должны быть Вашей точкой y=0.

Для долготы градус составляет 60 морских миль на экватор и 0 миль в полюсах. Таким образом, число миль на градус должно быть умножено на косинус широты, так приблизительно because(47 градусов), или.68. Таким образом вместо 6 076 нм на градус, это - приблизительно 4 145 нм.

Таким образом для X значений,

1268314 ft / ( 4145 ft/nm ) / ( 60 nm/degree ) = 5.10 degrees
1269649 ft / 4145 / 60 = 5.10 degrees

Эти X чисел, которые увеличение как широта увеличивает (менее отрицательный), таким образом, я верю Вам, должны добавить 5,1 градусов, что означает, что X базисных точек о

-122.3 + 5.1 = 117.2 West longitude for your x=0 point.

Это - примерно положение Спокана Вашингтон.

Так данный X=1280532, Y=211374

Lat = 47 + ( 211374 / 6096 / 60 ) = 47.58
Lon = -117.2 - ( 1280532 / ( 6096 * cos(47.58)) / 60 ) = -122.35

Который примерно эквивалентен определенным данным 47.57 и-122.29

Различие может произойти из-за различных проекций - эти X, Y система могут быть "сглаженной" проекцией в противоположность lat/long, которые относятся к сферической проекции? Таким образом, чтобы быть точными Вам, возможно, все же понадобятся больше высшей математики или та библиотека :) с открытым исходным кодом

Этот вопрос может также быть полезным, он содержит код для вычисления больших круговых расстояний:

Вычислить расстояние между двумя точками долготы широты? (Формула Haversine)

9
ответ дан 6 December 2019 в 08:45
поделиться

Я использовал PHP-класс Бренора Брофи gPoint , чтобы сделать это пару раз. Хорошие результаты, код GPL и простота развертывания. Рекомендуется.

0
ответ дан 6 December 2019 в 08:45
поделиться

Существует много различных систем координат. Необходимо узнать, какой системы координат являются для обоих lat/lon's (например, WGS84 и т.д.) и первый x/y's (например, своего рода спроектированная система, вероятно).

После того как у Вас есть та информация существует несколько инструментов, которые можно использовать, чтобы сделать преобразования и манипуляции. Одним примером (свободной библиотеки кодирования открытого исходного кода) является proj4.

6
ответ дан 6 December 2019 в 08:45
поделиться

Здесь я сказал следующее:

В Java я использовал бы OpenMap конвертер от выражения точки в UTM до выражения, использующего широту и долготу (предполагая эллипсоид WGS-84, который наиболее часто используется в GPS).

OpenMap - это открытый исходный код, и я бы опубликовал ссылку на их страницу загрузки, но у них есть короткий лицензионный скрипт в пути. Таким образом, чтобы не быть грубым, я не буду глубоко связывать. Вместо этого перейдите на их домашнюю страницу и нажмите , щелкнув Загрузки .

Это должно либо решить вашу проблему напрямую, либо, по крайней мере, указать вам на полезный алгоритм.

0
ответ дан 6 December 2019 в 08:45
поделиться

У вас уже есть хороший совет по системам координат, поэтому я просто воспользуюсь библиотекой, которую с большим успехом использовал в прошлом.

Geotrans одобрен для использования Министерством обороны США, поэтому можете быть уверены, что он хорошо протестирован. Вы можете получить его отсюда:

http://earth-info.nga.mil/GandG/geotrans/index.html

Это может быть неправильная ссылка, поскольку на этой странице говорится о приложении, а не о библиотеке. Я ожидаю, что библиотека находится в пакете разработчиков. Условия лицензирования были очень либеральными по памяти, но обязательно ознакомьтесь с ними, прежде чем использовать их в коммерческих целях.

Редактировать:

Интересное обсуждение лицензирования Geotrans можно найти здесь:

http://www.mail-archive.com/debian-legal@lists.debian.org/msg39263.html
1
ответ дан 6 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: