0

我已尝试按照此Google Developers 教程实现集群管理器,但与仅使用googleMap.addMarker();(example)相比,我的标记显示非常不准确。

这是两者的图像比较

我想它与offsetin 有关,addClusterPoints()但是当我更改除数(60d)时,唯一的变化是点分布的距离,但仍然是不正确的位置。我试过改变 的值60d我发现 <60d他们更分散, >60d他们更分散。

有人可以解释他们在offset做什么以及如何让分数准确显示吗?

private void addClusterPoints(){
    List<LatLng> locations= new ArrayList<>(getLatLongList());
    for(int i=0; i < locations.size(); i++){
       double offset = i /60d;
       latLng = locations.get(i);
       double lat = latLng.latitude + offset;
       double lng = latLng.longitude + offset;
       mapClusterItem offsetItem = new mapClusterItem(lat, lng, "Tile "+i, "Snippet"+i);
       clusterManager.addItem(offsetItem);
    }
}    
4

1 回答 1

0

正如安迪评论的那样,问题出在offset. 我已删除offset并且标记显示在其预期位置。

我引用的Google Developers 教程offset有,所以我认为它是过程的一部分,但事实证明它完全不相关。老实说,他们决定将其包含在教程中,我真的觉得很奇怪。我能想到他们为什么要这样做(因为他们不提供)的唯一原因是在非常靠近的项目之间创建一些空间。

于 2020-11-14T09:05:49.963 回答