Как преобразовать координаты плоскости штата в широту-долготу?


32

Учитывая конкретную систему координат плоскости состояния (NAD27 или NAD83), есть ли какие-либо ресурсы для преобразования в широту-долготу?

Ответы:


19

Вам нужно будет перепроектировать их для обработки этого преобразования.

Proj.4 - очень стандартная библиотека, используемая многими программами для перепроецирования.

Одним из способов использования этого было бы использование утилиты, подобной gdaltransform, для выполнения преобразования за вас.


9

Если вы знаете соответствующие коды EPSG или параметры proj.4, оба, gdaltransformи proj.4 cs2cs( man-страница ), являются хорошим маршрутом, как упоминал Рид.

Тем не менее, если вы оказались без этой информации, попробуйте пространственные ссылки.org : он предоставляет параметры и веб-карту для выполнения преобразования системы координат широта / долгота ( например, с плоскостью состояния IL ). Поскольку во многих проекциях плоскости состояний отсутствует код EPSG, используйте sr.org для поиска строки proj.4, которая gdaltransformпонимает. Вот пример преобразования из зоны V плоскости штата Калифорния в пары широта / длина WGS84:

gdaltransform -s_srs '+proj=lcc +lat_1=34.03333333333333 \ 
+lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 \ 
+ellps=GRS80 +units=m +no_defs' -t_srs epsg:4326

После чего 1815241.25377291 557301.336190851следует набрать текст -120 33.9999999999996.


Это правильно, но есть опечатка, аргумент -s_srs задается дважды. Команда должна заканчиваться на -t_srs:gdaltransform -s_srs '+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs' -t_srs epsg:4326
alvin

@alvin, я исправил опечатку, спасибо за хедз-ап!
Scw

8

Клиент или сервер? Конкретный язык? Разовая или основная?

Например, на стороне клиента - с JavaScript - используйте OpenLayers + Proj4js.

0) Импортируйте все соответствующие библиотеки

1) создать свою точку зрения

var lonlat = new OpenLayers.LonLat( ....)

2) преобразовать его

lonlat.transform( new OpenLayers.Projection("epsg:XXXX"), new OpenLayers.Projection("epsg:4326"));

теперь lonlat.lon и lonlat.lat имеют значения WGS84 lon / lat.


Это работает, но требует индивидуальной разработки. Не уверен, что ОП просто хотел использовать инструмент.
Рид Копси

1
Да, я просто привел один пример - клиентская часть, javascript, в коде. ОП не уточнил, что он искал. Даже принятый ответ - библиотека. Есть также много веб-сайтов, которые дают вам простую форму для ручного ввода координат и позволяет вам преобразовывать.
Вадим

6

Одна из бесплатных и чрезвычайно простых программ - CorpsCon, которая преобразует отдельные точки, пакеты точек в текстовые файлы и имеет библиотеку DLL, которую можно использовать в среде программирования, такой как python.

2014-07-09: обновленная ссылка http://www.agc.army.mil/Missions/Corpscon.aspx Нажатие «Загрузить CorpsCon» приведет вас на страницу, которая выглядит немного странной и временной, но работает.


Ссылка не работает. Тебе это нравится?
Scott_B

Я заинтересован в использовании Corpscon DLL в Python. Есть ли документация для этого я не видел на сайте Corpscon.
Гари Лестер


Некоторое время назад я начал использовать pyproj для всех преобразований внутри python. В конце поста, приведенного ниже, вы можете увидеть, как это можно сделать очень легко всего за пару строк. dshimer.blogspot.com/2012/11/…
Деннис

3

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

http://www.ngs.noaa.gov/PUBS_LIB/ManualNOSNGS5.pdf

Вам все равно нужно будет знать конкретные параметры для проекции интереса.


2

Другой вариант (но только для NAD83) - это SPCS83 на http://www.ngs.noaa.gov/PC_PROD/SPCS83 . Он запускается в окне командной строки на ПК и конвертируется либо в интерактивном режиме, либо из ввода текстового файла. Он включает в себя исходный код, если вы действительно хотите алгоритм. Источником является Фортран, который может быть проблематичным в использовании, но его достаточно легко расшифровать, чтобы получить алгоритмы. Также см. Www.metzgerwillard.us/spcge/spcge.html, который является интерфейсом для SPCS83 в Google Планета Земля.


2

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

Служба находится по адресу http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html.

и основан на продукте FME. Существует также бесплатная 14-дневная пробная версия этого. www.safe.com



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.