【问题标题】:Google map clustering is not working for small count of cordinates谷歌地图聚类不适用于少量坐标
【发布时间】:2017-11-03 04:54:01
【问题描述】:

我正在使用Google Map Clustering 演示应用程序example 来玩它。根据示例偏移量如下:

private void readItems() throws JSONException {
    InputStream inputStream = getResources().openRawResource(R.raw.radar_search);
    List<MyItem> items = new MyItemReader().read(inputStream);
    for (int i = 0; i < 5; i++) {
        double offset = i / 60d;
        for (MyItem item : items) {
            LatLng position = item.getPosition();
            double lat = position.latitude + offset;
            double lng = position.longitude + offset;
            MyItem offsetItem = new MyItem(lat, lng);
            mClusterManager.addItem(offsetItem);
        }
    }
}

聚类对于大量坐标 (=>5) 非常有效。为了理解,让我们采取两种情况:

  • 第一个场景 我正在通过以下数据文件加载两个坐标:

    [
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 }
    ]
    

    正如我们在上面的数据文件中看到的,{ "lat" : 28.5102148, "lng" : 77.411671 } 的计数为 9,{ "lat" : 28.5092163, "lng" : 77.4135367 }, 的计数为 5。模拟器截图:

  • 第二种情况 我正在通过以下数据文件加载两个坐标:

    [
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5092163, "lng" : 77.4135367 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 },
     { "lat" : 28.5102148, "lng" : 77.411671 }
    ]
    

    正如我们在上面的数据文件中看到的,{ "lat" : 28.5102148, "lng" : 77.411671 } 的计数为 9,{ "lat" : 28.5092163, "lng" : 77.4135367 }, 的计数为 4。模拟器截图:

所以,问题是每当我为同一个 Lat,Lng 传递少于 5 个协调员时。谷歌地图不会显示集群。它应该显示为94

我尝试按照文档进行操作,但没有任何东西能帮助我。我在这里做错了什么?

感谢您的帮助。

【问题讨论】:

  • 您是否尝试在 for 循环之后立即执行 mClusterManager.cluster() 以强制重新集群?
  • 我试过但得到了相同的结果

标签: java android google-maps android-layout google-maps-markers


【解决方案1】:

经过这么多尝试。我查看了Clustercode发现:

private int mClusterSize = 4; 

根据您的方便将其更改为。

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 2012-12-17
    • 2013-01-08
    • 2014-04-05
    • 1970-01-01
    • 2013-12-09
    • 2019-01-16
    相关资源
    最近更新 更多