如何解决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地图上绘制点的不必要的准确性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。