Tôi cần lưu trữ tọa độ GPS trong cơ sở dữ liệu. Tôi đã nghe rằng phao nổi không chính xác hơn số thập phân. Điều đó có đúng không? Nếu vậy, lý do gì là có bao giờ sử dụng nổi?Rails 3 Float hoặc thập phân cho tọa độ GPS
Trả lời
Nếu bạn muốn tọa độ GPS chính xác hơn, sau đó có số thập phân là con đường để đi. Bạn có thể tạo chúng bằng cách di chuyển như:
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
Lý do mọi người sử dụng phao là chúng thường đủ chính xác cho hầu hết trường hợp sử dụng và sử dụng ít không gian hơn để lưu trữ.
Nếu bạn muốn chính xác 100% với số thập phân của mình, hãy nhân với 10 ** n (trong đó n là độ chính xác mong muốn của bạn) và lưu trữ dưới dạng số nguyên.
Đối tượng nổi thể hiện số thực không chính xác bằng cách sử dụng biểu diễn dấu phẩy động kép chính xác của kiến trúc gốc.
Xem:
http://www.ruby-doc.org/core-1.9.3/Float.html
Kể từ Trái đất xích đạo chu vi khoảng 40000 km và vĩ độ bắc 360 độ, nó sau đó gần đường xích đạo 1 độ tương đương với khoảng 110 km.
Như vậy:
- 0 chữ số chính xác: ± 110 km
- 1 chữ số chính xác: ± 11 km
- 2 chữ số chính xác: ± 1,1 km
- 3 chữ số chính xác: ± 110 m
- Độ chính xác 4 chữ số: ± 11 m
- Độ chính xác 5 chữ số: ± 1,1 m
- Độ chính xác 6 chữ số: ± 11 cm
- 7 chữ số chính xác: ± 1.1 cm
Tuy nhiên, bạn càng gần chuyển sang Ba Lan, nhỏ hơn lenghts của song song trở thành. Ví dụ: Paris, có vĩ độ 48 độ, 1 độ tương đương với cos(48) * 110 = 74 km
.
Như vậy:
- 0 chữ số chính xác: ± 74 km
- 1 chữ số chính xác: ± 7.4 km
- 2 chữ số chính xác: ± 0,74 km
- 3 chữ số chính xác: ± 74 m
- Độ chính xác 4 chữ số: ± 7,4 m
- Độ chính xác 5 chữ số: ± 0,74 m
- 6 chữ số precisio n: ± 7.4 cm
- Độ chính xác 7 chữ số: ± 0.74 cm
Vì vậy, trường loại DECIMAL(10,7)
sẽ đủ để làm hài lòng bạn một cách chính xác hơn.
https://en.wikipedia.org/wiki/Decimal_degrees –
Như bạn có thể thấy trong câu trả lời của Paul, điều đó tùy thuộc vào trường hợp sử dụng của bạn.
Một phao cung cấp độ chính xác khoảng 6 chữ số thập phân.
± 11 cm hoàn toàn có thể chấp nhận được đối với địa chỉ. và nếu bạn đang hiển thị địa chỉ, bạn sẽ không thể thực hiện bất kỳ phép toán số học nào mà sẽ làm tròn các lỗi làm tròn.
- 1. Tọa độ GPS chính xác
- 2. Tọa độ GPS: Android
- 3. Tên quốc gia cho tọa độ GPS
- 4. Tọa độ GPS theo độ để tính khoảng cách
- 5. Android GPS Tọa độ rải rác
- 6. Cách đếm số chữ số thập phân trong Float?
- 7. Dịch vụ web để có tọa độ GPS
- 8. Mã hóa địa lý - độ chính xác được yêu cầu trong tọa độ GPS?
- 9. tọa độ GPS: 1km vuông xung quanh một điểm
- 10. Cách phát hiện tọa độ GPS giả trong Android?
- 11. Cách tính góc giữa hai tọa độ địa lý/GPS?
- 12. cách chuyển đổi giữa độ, phút, giây sang tọa độ thập phân
- 13. Có một thời gian khó khăn quyết định float, double, hoặc thập phân
- 14. Chuyển đổi Float sang thập phân (SQL Server)
- 15. Sử dụng PostGIS với bảng dữ liệu hiện có có tọa độ thập phân
- 16. Áp dụng pixel Tọa độ tọa độ màn hình
- 17. Màn hình Android OpenGL ES 2.0 tọa độ theo tọa độ thế giới
- 18. Làm thế nào để chuyển đổi từ chuỗi định dạng phân số thành thập phân hoặc Float trong Java?
- 19. Phân số có độ chính xác thập phân
- 20. CHỌN một FLOAT với độ chính xác đã cho
- 21. cách phân tích cú pháp thập phân thập phân hoặc thập phân trong Python
- 22. Dấu thập phân hoặc dấu phẩy thập phân trong Android
- 23. truncate tới 3 thập phân trong python
- 24. Chia Tọa độ thành 3 subspaces Để giải quyết Unboundedness
- 25. Với tọa độ GPS, làm cách nào để tìm các mốc hoặc điểm ưa thích lân cận?
- 26. bash_completion cho Rails 3
- 27. Không thể nhận tọa độ GPS bằng cách sử dụng Javascript trên trình duyệt trong Android
- 28. Google Maps (javascript API): nhận tọa độ GPS từ địa chỉ
- 29. Modulo (%) hoạt động với kiểu dữ liệu thập phân nhưng không hoạt động với float hoặc thực. TẠI SAO?
- 30. Tính tọa độ GPS để tạo thành một bán kính kích thước nhất định
@jac Vui lòng xem: 'http: // www.ruby-forum.com/topic/208222' và tại sao số thập phân không giải quyết được sự cố của bạn. – Anil
@Anil không chắc chắn tôi theo dõi. Tôi sử dụng điều này trong ứng dụng của tôi thay vì nổi cho các tọa độ GPS chính xác cao hơn và nó hoạt động chính xác như tôi mong đợi nó. –