Android谷歌地图经度/纬度计算问题

问题描述

|| 到目前为止,我经常看到它,由于某种原因,由getLatitude()返回的纬度或经度值在Google Maps示例中与1E6相乘。这是什么原因?为什么选择1E6?这些函数返回的原始值有什么问题?     

解决方法

我想我在某处读到了这与性能有关。 getLatitute()返回一个
double
,它是浮点数据类型。如果设备不支持浮点运算,则对浮点数据类型的数学运算会很慢。 因此,通过将双精度值乘以1E6,度变为微度,因此可以使用整数数学进行计算而不会损失太多分辨率。     ,它不仅是Google地图,我还使用Windows PC上的一些海事图表API,它们在十进制度和1E7度中使用混合。似乎函数是用这种方式编写的,没有人会费心去统一它们。     ,它们乘以1E6的原因是因为
GeoPoint
类(用于在Google Map上绘制点)将微度经度和纬度用作整数。乘以1E6可将度转换为微度。 Google选择以这种方式执行此操作的原因尚有争议,但这可能与Google Maps本身并不十分准确的事实有关,并且使用原始的double值将GPS返回的10位或更多的小数位设置为在Google地图上绘制点的不必要的准确性。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...