Android地图v2:标记位置错误

时间:2013-05-28 10:17:38

标签: java android double marker

我在将标记设置到我的应用程序时遇到了问题。 我创建了我的LatLng对象并将其添加到地图中;纬度和经度在逗号后有6位数。 问题如下:我在地图上得到每个标记的位置(使用myMarker.getPosition.latitude和myMarker.getPosition.longitude),逗号后的值大约超过6位(约15位数),值不同于输入的。 (即输入纬度为40.254874,输出纬度为40.25487358741045)。

有没有人可以帮助我?

3 个答案:

答案 0 :(得分:0)

You cannot represent arbitrary floating point numbers in Java.我的猜测是差异是由于这个原因。

请注意,差异最多为11厘米(111.321km / 1e6)。

答案 1 :(得分:0)

嗨Sotiris试试这段代码。

     map.addMarker(new MarkerOptions().position(new LatLng(53.551, 9.993)).title("Test"));

如果你将小数点后的值四舍五入会更好。

答案 2 :(得分:0)

这是实施中的错误。您可以在gmaps-api-issues上看到/加注星标。我想原因可能是双重值在传输到Google Play服务时以其他方式存储并返回。

基本上这会阻止通过位置Markers比较LatLng,因此您应该使用不同的方式来比较它们(例如Marker.equals)。

相关问题