【发布时间】: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 个协调员时。谷歌地图不会显示集群。它应该显示为9 和4。
我尝试按照文档进行操作,但没有任何东西能帮助我。我在这里做错了什么?
感谢您的帮助。
【问题讨论】:
-
您是否尝试在
for循环之后立即执行mClusterManager.cluster()以强制重新集群? -
我试过但得到了相同的结果
标签: java android google-maps android-layout google-maps-markers