我在我的应用程序中设置标记时遇到问题。我创建了我的 LatLng 对象并将其添加到地图中;纬度和经度在逗号后有 6 位数字。问题如下:我在地图上获取每个标记的位置(使用 myMarker.getPosition.latitude 和 myMarker.getPosition.longitude),逗号后的值远多于 6 位(约 15 位),并且值不同于输入的。(即输入纬度为 40.254874,输出纬度为 40.25487358741045)。
有人可以帮助我吗??
这是实现中的一个错误。您可能会在gmaps-api-issues上看到/加注星标。我猜原因可能是双值在传输到 Google Play 服务并返回时以其他方式存储。
基本上这会阻止Markers
通过 position进行比较LatLng
,因此您应该使用不同的方式来比较它们(例如Marker.equals
)。
您不能在 Java 中表示任意浮点数。我的猜测是差异是由于这个。
请注意,差异最多为 11 厘米(111.321km / 1e6)。
嗨 Sotiris 试试这个代码。
map.addMarker(new MarkerOptions().position(new LatLng(53.551, 9.993)).title("Test"));
如果你在小数点后四舍五入会更好。