Jak przekonwertować współrzędne płaszczyzny stanu na szerokość i długość geograficzną?


32

Biorąc pod uwagę konkretny układ współrzędnych płaszczyzny stanu (NAD27 lub NAD83), czy istnieją jakieś zasoby do konwersji na szerokość i długość geograficzną?

Odpowiedzi:


19

Będziesz musiał je ponownie zaprojektować, aby obsłużyć tę konwersję.

Proj.4 jest bardzo standardową biblioteką, używaną przez wiele programów do reprojections.

Jednym ze sposobów wykorzystania tego byłoby użycie narzędzia takiego jak gdaltransform, aby wykonać transformację za Ciebie.


9

Jeśli znasz odpowiednie kody EPSG lub parametry proj.4, zarówno gdaltransformi proj.4's cs2cs( strona podręcznika ) są dobrą drogą, jak wspomniał Reed.

Jednakże, jeśli znajdziesz się bez tych informacji, spróbuj spatialreference.org : zawiera parametry i mapę internetową do wykonywania transformacji układu w układzie lat / long ( przykład z płaszczyzną stanu IL ). Ponieważ wiele rzutów płaszczyzny stanu nie ma kodu EPSG, użyj sr.org, aby znaleźć ciąg proj.4, który gdaltransformrozumie. Oto przykład konwersji z California State Plane Zone V na pary WGS84 lat / long:

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

Po tym pisanie 1815241.25377291 557301.336190851powinno wrócić -120 33.9999999999996.


To prawda, ale jest literówka, argument -s_srs jest podawany dwukrotnie. Polecenie powinno zakończyć się na -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, poprawiłem literówkę, dzięki za heads-up!
scw

8

Klient czy serwer? Specyficzne dla języka Jednorazowo czy luzem?

Np. - po stronie klienta - z JavaScript - użyj OpenLayers + Proj4js.

0) Zaimportuj wszystkie odpowiednie biblioteki lib

1) utwórz punkt

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

2) przekonwertować

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

teraz lonlat.lon i lonlat.lat mają wartości WGS84 lon / lat.


To działa, ale wymaga niestandardowego rozwoju. Nie jestem pewien, czy OP chciał tylko użytecznego narzędzia.
Reed Copsey

1
Tak, podałem tylko jeden przykład - po stronie klienta, javascript, w kodzie. OP nie określił, czego szuka. Nawet zaakceptowana odpowiedź to biblioteka. Istnieje również wiele stron internetowych, które dają prosty formularz do ręcznego wpisywania współrzędnych i pozwalają na transformację.
Vadim,

6

Jednym z darmowych i niezwykle łatwych programów jest CorpsCon, który konwertuje pojedyncze punkty, partie punktów w plikach tekstowych i ma bibliotekę DLL, z której można korzystać w środowiskach programistycznych, takich jak python.

2014-07-09: Zaktualizowany link to http://www.agc.army.mil/Missions/Corpscon.aspx Kliknięcie „Pobierz CorpsCon” prowadzi do strony, która wygląda trochę dziwnie i tymczasowo, ale działa.


Link nie działa. Czy lubisz kogoś innego?
Scott_B

Jestem zainteresowany użyciem dll Corpscon w Pythonie, czy jest tam dokumentacja, której nie widziałem na stronie Corpscon.
Gary Lester


Jakiś czas temu zacząłem używać pyproj do wszystkich transformacji w Pythonie na końcu poniższego postu, możesz zobaczyć, jak można to zrobić bardzo łatwo w zaledwie kilku wierszach. dshimer.blogspot.com/2012/11/…
Dennis


2

Inną opcją (ale tylko dla NAD83) jest SPCS83 na stronie http://www.ngs.noaa.gov/PC_PROD/SPCS83 . Działa w oknie wiersza poleceń na komputerze i konwertuje interaktywnie lub z pliku tekstowego. Zawiera kod źródłowy, jeśli naprawdę potrzebujesz algorytmu. Źródłem jest Fortran, który może być trudny w użyciu, ale łatwo go rozszyfrować, aby uzyskać algorytmy. Zobacz także www.metzgerwillard.us/spcge/spcge.html, który jest interfejsem SPCS83 w Google Earth.


2

Sprawdź bezpłatną usługę tłumaczenia. Prześlij dane, a następnie określ pożądany wyjściowy układ współrzędnych. Wybierając ten sam format danych wyjściowych co dane wejściowe, skutecznie wykonujesz ponowną projekcję.

Usługa znajduje się na stronie http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html

i jest oparty na produkcie FME. Istnieje również bezpłatna 14-dniowa wersja próbna tego. www.safe.com



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.