Muszę przechowywać współrzędne GPS w bazie danych. Słyszałem, że pływaki są mniej dokładne niż ułamki dziesiętne. Czy to prawda? Jeśli tak, to dlaczego używacie pływaków?Szyny 3 Pływakowe lub dziesiętne dla współrzędnych GPS
Odpowiedz
Jeśli chcesz bardziej dokładne współrzędne GPS, a następnie tak dziesiętne są do zrobienia. Można je tworzyć z migracją, takich jak:
create_table "models" do |t|
t.decimal "latitude", :precision => 15, :scale => 10, :default => 0.0
t.decimal "longitude", :precision => 15, :scale => 10, :default => 0.0
end
Powodem ludzie używają pływaków jest to, że zwykle są one wystarczająco precyzyjne dla większości przypadków użycia i zużywają mniej miejsca do przechowywania.
Jeśli chcesz uzyskać 100-procentową dokładność ze swoimi miejscami dziesiętnymi, pomnóż przez 10 ** n (gdzie n jest pożądaną dokładnością) i zapisz jako liczbę całkowitą.
Obiekty zmiennoprzecinkowe reprezentują niedokładne liczby rzeczywiste przy użyciu reprezentacji zmiennoprzecinkowej o podwójnej precyzji w natywnej architekturze.
Patrz:
http://www.ruby-doc.org/core-1.9.3/Float.html
Ponieważ Ziemia równikowy obwód wynosi około 40000 km i długości rozciąga 360 stopni wynika, że w pobliżu równika 1 stopni jest równoważna około 110 km.
sposób:
- 0 cyfra dokładność: ± 110 km
- 1 cyfra dokładność: ± 11 km
- 2 cyfra dokładność: ± 1,1 km
- 3 cyfrowy dokładność: ± 110 m
- 4-cyfrowa precyzja: ± 11 m
- 5-cyfrowa precyzja: ± 1,1 m
- 6-cyfrowa precyzja: ± 11 cm
- 7 cyfrowy dokładność: ± 1,1 cm
Jednak im bliżej przejścia do Polaków, tym mniejsze lenghts z równoleżników staje. Na przykład w pobliżu Paryż, który ma szerokość geograficzną 48 stopni, 1 stopień jest równoważny cos(48) * 110 = 74 km
.
sposób:
- 0 cyfra dokładność: ± 74 km
- 1 cyfra dokładność: ± 7,4 km
- 2 cyfra dokładność: ± 0,74 km
- 3 cyfrowy Dokładność: ± 74 m
- 4 cyfrowy dokładność: ± 7,4 m
- 5 cyfrowym dokładnością: ± 0,74 m
- 6 cyfr Precisio n: ± 7,4 cm
- Precyzja 7-cyfrowa: ± 0.74 cm
Tak więc, pole typu DECIMAL(10,7)
wystarczyłoby, aby spełnić Państwa oczekiwania.
https://en.wikipedia.org/wiki/Decimal_degrees –
Jak widać w odpowiedzi Pawła, to zależy od twojego przypadku użycia.
Pływak zapewnia dokładność z dokładnością do 6 cyfr dziesiętnych.
± 11 cm jest całkiem do przyjęcia z, powiedzmy, adresu. a jeśli wyświetlasz adresy, jest mało prawdopodobne, że będziesz wykonywał operacje arytmetyczne, które będą się wiązać z błędami zaokrąglania.
- 1. Nazwa kraju dla współrzędnych GPS
- 2. Konwersja współrzędnych GPS na miejscowość
- 3. Konwersja współrzędnych GPS do współrzędnych płaszczyzny
- 4. Wyszukiwanie kraju dla współrzędnych GPS bez dostępu do Internetu
- 5. Przechowywanie i kwerendowanie współrzędnych GPS Efektywnie
- 6. Geokodowanie - wymagana dokładność we współrzędnych GPS?
- 7. Szyny 3: wycofanie dla after_create
- 8. Szyny 3: Strategia dla powiadomień systemowych
- 9. Szyny 3: Różne widoki dla każdego modelu
- 10. Szyny 3 - zestaw środowiska
- 11. wiele validations szyn 3 (szyny dla zombie; 2: 3)
- 12. Uzyskiwanie współrzędnych GPS w telefonie z systemem Windows 7
- 13. Konwersja współrzędnych GPS na nazwę/adres miasta w Swift
- 14. Szyny 3 blokada stołu
- 15. Szyny 3 typy danych?
- 16. Szyny 3 i validate_on_create
- 17. szyny 3 nie nil
- 18. Szyny 3 błędy yaml
- 19. Podwójne lub dziesiętne dla wartości szerokości/długości geograficznej w C#
- 20. Reprezentacja współrzędnych w GeoAlchemy2
- 21. Szyny 3 - niestandardowe sprawdzanie poprawności
- 22. Szyny 3: Wyłącz ciasteczka sesyjne
- 23. Szyny 3 - Obcięcie w kontrolerze?
- 24. Szyny 3. Pobierz najnowszą aktualizację
- 25. Szyny 3: przycisk radiowy dla każdego elementu w tablicy
- 26. Obecna lokalizacja GPS GPS
- 27. Uzyskaj współrzędne GPS: Android
- 28. biblioteka lub algorytm obliczania widocznych satelitów GPS
- 29. Włączenie YUI 3 w szyny
- 30. Szyny 3, Nieznany validator: 'EmailValidator'
@jac Zobacz: 'http: // www.ruby-forum.com/topic/208222' i dlaczego dziesiętny nie rozwiązuje twojego problemu. – Anil
@ Nie jestem pewien, czy podążam. Używam tego w mojej aplikacji zamiast pływać dla lepszej dokładności współrzędnych GPS i działa dokładnie tak, jak tego oczekuję. –