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