Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Google Maps, Maksymalne wartości długości i szerokości
nexis
post 11.01.2009, 14:55:53
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


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?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Cezar708
post 11.01.2009, 15:55:52
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
ww-06
post 11.01.2009, 16:18:22
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 16.12.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
legorek
post 11.01.2009, 19:58:50
Post #4





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.

Ten post edytował legorek 11.01.2009, 19:59:45


--------------------
Go to the top of the page
+Quote Post
nexis
post 11.01.2009, 20:01:53
Post #5





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


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).


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 22:51