【问题标题】:Android SQLite Latitude/Longitude stored as integer values [duplicate]Android SQLite纬度/经度存储为整数值[重复]
【发布时间】:2021-04-16 14:39:49
【问题描述】:

我正在查看默认的 Android 日历数据库 calendar.db,其中包含纬度/经度坐标,但它们以整数形式存储。

例如,纬度存储为68970387,实际的纬度应该是68.97029043260628(不准确,但已经足够接近了)

我一直在阅读有关从弧度/度数转换的各种内容,但这些转换均不起作用,因此似乎已将其四舍五入为整数,但我以前从未遇到过这种情况。

有人知道这种经纬度存储格式的信息吗?

谢谢

【问题讨论】:

  • 这类似于我已经尝试过的方法,即将 int 乘以 1_000_000,但它似乎并不完全准确。谢谢
  • 完全准确是什么意思?你显然会因为截断而失去精度,所以它永远不会。
  • 这个值已经被截断了,但是 Android 必须有某种方法可以从这个 int 重新创建坐标,否则为什么还要存储它。是的,精度会丢失,所以我很困惑为什么要这样做。
  • 1 米精度为 0,000009 度。由于 GPS 的精度有限,因此这种存储精度足以满足大多数手机的使用。 GPS约3-5米,伽利略约1米,GLONASS更差。
  • 看来就这么简单,谢谢大家的信息!

标签: android sqlite latitude-longitude


【解决方案1】:

我认为您可以将 lat\lng 转换为其他格式(例如 Lambert),然后将其乘以一个带有浮点数计数的数字以将其转换为整数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2012-03-03
    相关资源
    最近更新 更多