【问题标题】:Android map v2: marker in a wrong positionAndroid地图v2:标记位置错误
【发布时间】:2013-05-28 10:17:38
【问题描述】:

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

有人可以帮我吗?

【问题讨论】:

    标签: java android double marker


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      嗨,Sotiris 试试这个代码。

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

      如果在小数点后四舍五入会更好。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-07-15
          • 2013-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-13
          • 2016-02-01
          • 1970-01-01
          相关资源
          最近更新 更多