Przyzwyczaiłem się widzieć format lokalizacji jako szerokość i długość geograficzną, ale używając bibliotek, wydaje mi się, że rozumiem MySQL do przechowywania go POINT(LNG LAT)
w odwrotnej kolejności. Czy moja biblioteka jest niepoprawna, czy jest to rzeczywisty format? Nie mogę znaleźć tego szczegółu w dokumentacji MySQL.
9
Odpowiedzi:
Konstruktor Składnia
Patrząc na odniesienie do funkcji przestrzennej, zobaczysz
To nie jest do końca poprawne. Wszystkie implementacje GIS muszą zrobić
(x,y)
dla współrzędnych rzutowanych, które są(long,lat)
. Jednak w systemach kordinianu geodezyjnego istnieje spór dotyczący tego, co należy zrobić. MySQL (i SQL Server) robią,(lat,long)
ale PostGIS utrzymuje się(long,lat)
wszędzie.Zostało to poruszone w specyfikacji OpenGIS® Implementation Standard dla informacji geograficznych - Prosty dostęp do funkcji - Część 2: Opcja SQL ,
Uwaga: powyższe słowa znajdują się dosłownie w informacjach geograficznych - Dobrze znana tekstowa reprezentacja układów odniesienia za pomocą współrzędnych
Już w specyfikacji 1.1,
To powiedziawszy, wydaje się, że PostGIS i Oracle i wiele bibliotek stron trzecich utrzymuje
(x,y,[z])
dla wszystkich typów punktów. Jest to niezgodne ze specyfikacją WKT, ale jest dość powszechną konwencją. Na przykład GeoJSON również to robi,Oraz (szer długo) Zamawiający jednoznacznie zdefiniowane przez EPSG dla SRSID 4326 .
Możesz także sprawdzić blog Paula Ramseya (Captain PostGIS) na ten temat zatytułowany „Let's Call the Whole Thing Off”
Nicości
Jako specjalną uwagę, MySQL wprowadza dwie nowe funkcje do miksu,
ST_Longitude()
ST_Latitude()
Funkcje te stoją poza
ST_X()
, aST_Y()
i wymagają geograficznej SRS albo wyjątek i błędów.Przechowywanie
Z dokumentów
Przechowywanie jest zdefiniowane tutaj .
źródło
Łatwym sposobem sprawdzenia zamówienia jest przekroczenie szerokości geograficznej:
Daje BŁĄD 3732 (22S03): Parametr funkcji st_srid zawiera geometrię o szerokości 160,000000, która jest poza zakresem. Musi zawierać się w przedziale [-90.000000, 90.000000];
Uwaga: kolejność może ulec zmianie w zależności od używanych funkcji:
źródło