![]() |
![]() ![]() |
![]() |
![]()
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? -------------------- |
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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 -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 012 Pomógł: 109 Dołączył: 26.09.2003 Skąd: nexis.pl 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. 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). -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 22:51 |