Jaka jest maksymalna długość szerokości i długości geograficznej?


320

Jak długa może być szerokość i długość geograficzna?

Dostaję bardzo długie odcinki wysyłane przez urządzenie z systemem Windows Phone:

Latitude=-63572375290155
Longitude=106744840359415

Przekracza to rozmiar mojej kolumny tabeli i otrzymuję błędy.


7
Czy jesteś pewien, że są one długie / długie? Max / Min z nich to lat +90 do -90 długości +180 do -180, powiedziałbym, że brakuje przecinka ... zapisanie go jako float w db wystarczyłoby, jeśli jest poprawnie sformatowane. Ale myślę, że coś idzie nie tak, ponieważ twoje wartości nie mogą być prawdziwe
Xavjer,

2
Używasz API, aby uzyskać te wartości. Przypuszczalnie interfejs API zawiera dokumentację. Co dokumentacja mówi o urządzeniach?
NPE

19
Podejrzewam, że liczby to w rzeczywistości -63,572375290155 i 106.744840359415, który znajduje się tuż przy wybrzeżu Antarktydy. Szerokość lub długość geograficzna z siedmioma miejscami po przecinku ma dokładność do 5 stóp. Każde więcej niż 8 miejsc po przecinku to hałas.
Gilbert Le Blanc


1
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ nie dotyczy to opracowywania oprogramowania.
Jim G.

Odpowiedzi:


646

Prawidłowy zakres szerokości geograficznej w stopniach wynosi odpowiednio -90 i +90 odpowiednio dla półkuli południowej i północnej. Długość geograficzna mieści się w zakresie -180 i +180, określając odpowiednio współrzędne na zachód i wschód od południka głównego.

Dla porównania, równik ma szerokość 0 °, biegun północny ma szerokość 90 ° na północ (zapisane 90 ° N lub + 90 °), a biegun południowy ma szerokość -90 °.

Prime Meridian ma długość 0 °, który przechodzi przez Greenwich w Anglii. Międzynarodowa linia zmiany daty (IDL) z grubsza następująco 180 ° długości geograficznej. Długość geograficzna o wartości dodatniej spada na półkuli wschodniej, a wartość ujemna spada na półkuli zachodniej.

Dokładność stopni dziesiętnych

Precyzja sześciu (6) miejsc dziesiętnych we współrzędnych przy użyciu zapisu w stopniach dziesiętnych ma rozdzielczość 10 cm (lub 0,1 metra). Każda różnica 0,000001 we współrzędnych dziesiętnych wynosi około 10 cm długości. Na przykład zdjęcia Google Earth i Google Maps mają zazwyczaj rozdzielczość 1 metra, a niektóre miejsca mają wyższą rozdzielczość 1 cala na piksel. Rozdzielczość jednego metra można przedstawić za pomocą 5 miejsc po przecinku, więc więcej niż 6 miejsc po przecinku jest obce dla tej rozdzielczości. Odległość między długościami na równiku jest taka sama jak szerokość, ale odległość między długościami osiąga zero na biegunach, gdy linie południka zbiegają się w tym punkcie.

Jeśli wartość Współrzędnych jest podawana jako -6.3572375290155 lub -63.572375290155, wówczas można zaokrąglić i zapisać do 6 miejsc po przecinku z dokładnością do 10 cm (lub 0,1 metra).

W przypadku milimetra (mm) precyzja oznacza następnie szerokość / długość z 8 miejscami po przecinku w formacie dziesiętnym. Ponieważ większość aplikacji nie potrzebuje tego poziomu precyzji, w większości przypadków wystarcza 6 miejsc po przecinku.

W drugim kierunku, całe stopnie dziesiętne oznaczają odległość ~ 111 km (lub 60 mil morskich), a różnica 0,1 stopnia dziesiętnego reprezentuje odległość ~ 11 km.

Oto tabela # różnic miejsc dziesiętnych pod względem szerokości geograficznej ze stopniami delta i szacunkową odległość w metrach, stosując jako punkt początkowy 0,0.

decimal  decimal     distance
places   degrees    (in meters)
-------  ---------  -----------
  1      0.1000000  11,057.43      11 km
  2      0.0100000   1,105.74       1 km
  3      0.0010000     110.57
  4      0.0001000      11.06
  5      0.0000100       1.11
  6      0.0000010       0.11      11 cm
  7      0.0000001       0.01       1 cm

Reprezentacja w stopniach-minutach-sekundach (DMS)

Dla notacji DMS 1 sekunda łukowa = 1/60/60 stopni = ~ 30 metrów długości i 0,1 sekundy łukowej delta wynosi ~ 3 metry.

Przykład:

  • 0 ° 0 '0 "W, 0 ° 0' 0" N -> 0 ° 0 '0 "W, 0 ° 0' 1" N => 30,715 metrów
  • 0 ° 0 '0 "W, 0 ° 0' 0" N -> 0 ° 0 '0 "W, 0 ° 0' 0,1" N => 3,0715 metrów

1 minuta łuku = 1/60 stopnia = ~ 2000 m (2 km)

AKTUALIZACJA: Oto zabawny post na blogu o precyzji współrzędnych.


2
Co z długością geograficzną. Ile precyzji miejsca dziesiętnego wystarczy, aby ją utrzymać.
ArunRaj

14
6 miejsc po przecinku (0,000001) na szerokości geograficznej wynosi ~ 0,11 metra długości, a na długości geograficznej wynosi ~ 0,11 metra szerokości geograficznej w pobliżu równika, a w pobliżu biegunów delta długości geograficznej jest znacznie mniejsza (4 stopnie dziesiętne stają się 20 cm). Tak więc średnio 6 miejsc po przecinku wystarcza na rozdzielczość 10 cm.
JasonM1

4
Dzięki za cudowne wyjaśnienie.
ArunRaj

1
Może sugeruję używanie 0.1 mmiejsca, w którym aktualnie używasz 10 cm(z wyjątkiem sytuacji, gdy mówisz „około 10 cm”). W przeciwnym razie doskonała odpowiedź.
Floris,

1
Więcej na temat precyzji lat / lng: mysql.rjweb.org/doc.php/latlng#representation_choices
Rick James

192
  • Szerokość geograficzna : maks. / Min +90do-90

  • Długość geograficzna : max / min +180do-180


@RickJames Niestety w niektórych krajach tak.
vpibano

31

Prawidłowe długości geograficzne wynoszą od -180 do 180 stopni.

Szerokość geograficzna powinna wynosić od -90 stopni do 90 stopni, ale obszary bardzo blisko biegunów nie podlegają indeksowaniu.

Dokładne limity określone przez EPSG: 900913 / EPSG: 3785 / OSGEO: 41001 są następujące:

  • Prawidłowe długości geograficzne wynoszą od -180 do 180 stopni.
  • Prawidłowe szerokości geograficzne wynoszą od -85.05112878 do 85.05112878 stopni.

7
Limity wymienione w tej odpowiedzi dotyczą konkretnej PROJEKCJI MAP. Ta odpowiedź nie jest prawidłową odpowiedzią na pytanie i wprowadza w błąd. Zupełnie inny problem.
bugmenot123

Czy wiesz, dlaczego prawidłowe szerokości geograficzne wynoszą od -85 do 85? Wszędzie szukałem przyczyny tego. Chciałbym poznać przyczynę tego.
Ludvig W

2
@Lurr Być może dlatego, że nie chcesz kończyć na biegunie północnym i południowym. Jeśli ziemia jest nieco spłaszczona na biegunach, wówczas sensowne jest zwężenie i spłaszczenie około 85, zanim osiągnie 90 stopień
Nditah

24

Maksymalna szerokość geograficzna to: 9 (12.3456789), długość geograficzna 10 (123.4567890), oba mają maksymalnie 7 znaków dziesiętnych (przynajmniej to, co mogę znaleźć w Mapach Google ),

Na przykład obie kolumny w Railsach i Postgresql wyglądają mniej więcej tak:

t.decimal :latitude, precision: 9, scale: 7
t.decimal :longitude, precision: 10, scale: 7

8

Idealnym typem danych do przechowywania wartości Lat Long w SQL Server jest liczba dziesiętna (9,6)

Jak powiedzieli inni, jest to z dokładnością około 10 cm, przy użyciu tylko 5 bajtów pamięci.

na przykład CAST(123.456789 as decimal(9,6)) as [LatOrLong]



0

Wiem, że jest już kilka odpowiedzi, ale dodałem to, ponieważ dodaje to istotnych informacji o miejscach dziesiętnych, a zatem o zadanej maksymalnej długości.

Długość szerokości i długości geograficznej zależy od precyzji. Bezwzględna maksymalna długość dla każdego wynosi:

  • Szerokość geograficzna: 12 znaków (przykład: -90.00000001)
  • Długość geograficzna: 13 znaków (przykład: -180.00000001)

Dla obu ładowni: możliwe jest maksymalnie 8 miejsc decyzyjnych (choć nie są powszechnie używane).

Objaśnienie zależności od precyzji:

wprowadź opis zdjęcia tutaj

Zobacz pełną tabelę w artykule Stopnie dziesiętne na Wikipedii

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.