Zakładam, że jest to podstawowe pytanie, ale nie mogę znaleźć ani rozpoznać rozwiązania.
Ta strona powraca
Point:
X: -11705274.6374
Y: 4826473.6922
podczas wyszukiwania z pierwszą wartością klucza 000090 jako przykładem. Myślę, że to odniesienie przestrzenne i trochę rozumiem, co to jest.
Szukam instrukcji lub przykładów, jak przekonwertować to na szerokość i długość geograficzną za pomocą Pythona.
python
coordinate-system
convert
Vincent
źródło
źródło
Domyślnie witryna, z którą się łączysz, korzysta z systemu odniesienia przestrzennego EPSG 3857 (WGS84 Web Mercator). Znalazłem tę informację tutaj .
Możesz albo określić inny System Odniesienia Przestrzennego, wpisując żądany EPSG w formularzu pod,
Spatial Reference
albo możesz przekonwertować zwrócone współrzędne za pomocą Pythona.Na przykład możesz użyć powiązań GDAL Python do konwersji tego punktu z rzutowanego układu współrzędnych (EPSG 3857) na geograficzny układ współrzędnych (EPSG 4326).
Zwraca to dla twojego punktu współrzędne
-105.150271116 39.7278572773
.źródło
Wynik nie jest przestrzennym / współrzędnym układem odniesienia , to para współrzędnych. Musisz wiedzieć, czym jest odniesienie przestrzenne, aby ponownie rzutować współrzędne.
W tym przypadku nie jest to jednak wymagane. Wystarczy przekazać odpowiednie odniesienie przestrzenne wyjściowe do usługi, a zwróci współrzędne w Lon / Lat.
Oto strona ze współrzędnymi wyjściowymi w formacie Lon / Lat przy użyciu geograficznego systemu odniesienia przestrzennego WGS-84 ( EPSG 4326 ).
źródło
afalciano ma poprawną odpowiedź, ale chciał uwzględnić wariant użycia pyproj.
To nie wymaga wiesz ciąg proj4 i jest odrobinę szybciej.
źródło
p = pyproj.Proj(init='epsg:3857')
a wynik będzie taki sam.Wypróbowałem kod sugerowany przez Marcela Wilsona i jest on szybszy:
źródło
Znalazłem ten post, gdy szukam sposobów na zrobienie tego w QGIS. Jak opisano tutaj , zastosowana metoda wygląda tak:
źródło
v3.x
, musisz użyćxform = QgsCoordinateTransform(crsSrc, crsDest, QgsProject.instance())
Należy pamiętać, że
transform
funkcjapyproj
akceptuje równieżarrays
, co jest dość przydatne, jeśli chodzi o ramki danychźródło
źródło