Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Google Maps
Forum PHP.pl > Inne > Hydepark
nexis
Orientuje się ktoś jaki zakres wartości zwraca aplikacja Google Maps? Chodzi oczywiście o długość i szerokość geograficzną, czyli lat i lng. Dla przykładowego punktu w Polsce jest to 52.067378739321974, 19.481602907180786 - czyli odpowiednio 15 miejsc po przecinku.

Chcę stworzyć odpowiednie pole DOUBLE w bazie danych MySQL i zastanawiam się po prostu jaki zakres muszę podać. Dla powyższego przykładu wystarczyłby DOUBLE(17,15) ale czy to pozwoli zapisać dowolny punkt na kuli ziemskiej?
Cezar708
przede wszystkim musisz sobie zadać pytanie jak dane miejsce ma być dokładnie określone.
Do kilometra, 100 metrów, a może centymetrów?

Jak już sobie odpowiesz to zacznij liczyć:

zacznij od:

Średni obwód ziemi to 40041,455 km (wg Wikipedia:Ziemia)

jeden stopień długości geograficznej 1° to są 4 min (wg Wikipedia:Długość_geograficzna)

a z obliczeń łatwo określić że jeden stopień odpowiada za:

40041,455 [km] / 180 [°] = 111,226263889 [km/°], co odpowiada 4 minutom

resztę obliczeń zostawiam Tobie, jak będziesz wiedział jakiej potrzebujesz dokładności co do odległości będziesz wiedział ile potrzebujesz miejsc za przecinkiem.

Pozdrawiam
Cezar708
ww-06
Z mojego doświadczenia wynika, że dla dokładności do kilkunastu metrów - a to w większości przypadków wystarcza - można przyjąć, że 6 cyfr po przecinku w notacji dziesiętnej spokojnie wystarczy.
I tak dokładność większości map nie jest aż tak duża...Jeśli chcesz być jeszcze dokładniejszy to 7 miejsc po przecinku na pewno Ci wystarczy.
legorek
I musisz sobie zadać jeszcze jedno ważne pytanie, czy koniecznie potrzebujesz double. Jeśli nie będziesz przeprowadzał, żadnych obliczeń matematycznych na tych współrzędnych, a jedynie dodawał, edytował i wyświetlał wystarczy ci po prostu varchar. Ja to robię w ten sposób i nie zauważyłem jakichkolwiek niedogodności.
nexis
Cytat(legorek @ 11.01.2009, 19:58:50 ) *
I musisz sobie zadać jeszcze jedno ważne pytanie, czy koniecznie potrzebujesz double. Jeśli nie będziesz przeprowadzał, żadnych obliczeń matematycznych na tych współrzędnych, a jedynie dodawał, edytował i wyświetlał wystarczy ci po prostu varchar. Ja to robię w ten sposób i nie zauważyłem jakichkolwiek niedogodności.


Chyba po to jest pole liczbowe, żeby je używać we właściwy sposób. Będę wykonywał obliczenia i w efekcie końcowym zdecydowałem się na DOUBLE(12,9).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.