没有GeoJSON文件的Mapbox聚类。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有GeoJSON文件的Mapbox聚类。相关的知识,希望对你有一定的参考价值。
我想用目前的方法使标记分组,请问如何用这种方法对标记进行聚类?
EasyDB stores = EasyDB.init(getActivity(), "Objects");
stores.setTableName("Stores");
Cursor res = stores.getAllData();
while (res.moveToNext()) {
String name = res.getString(5);
String lat = res.getString(8);
String lang = res.getString(9);
String desc = res.getString(4);
mapboxMap.addMarker(new MarkerOptions()
.setIcon(icon)
.position(point)
.setSnippet(snipp)
.title(id));
}
答案
鉴于使用了 MarkerOptions
这里,看起来你使用的是 Mapbox Annotations插件,适用于Android. 如果是这样,您将需要创建一个 GeoJSON对象 数据库中的标记,这样您就可以使用 GeoJsonOptions
对象传递给 SymbolManager
实例来启用集群。例如,如果你将数据解析为一个GeoJSON对象,并将其存储在一个变量 geoJsonData
:
GeoJsonOptions geoJsonOptions = new GeoJsonOptions()
.withCluster(true)
.withClusterMaxZoom(14)
.withClusterRadius(10);
symbolManager = new SymbolManager(mapView, mapboxMap, style, null, geoJsonOptions);
symbolManager.setIconAllowOverlap(true);
List<SymbolOptions> options = new ArrayList<>();
for (int i = 0; i < geoJsonData.length(); i++) {
Feature feature = features.get(i);
options.add(new SymbolOptions()
.withGeometry((Point) feature.geometry())
.withIconImage("name-of-icon-to-use-for-clusters")
);
}
本例 来自 Mapbox Android插件演示应用程序 展示了如何用注释实现聚类。
以上是关于没有GeoJSON文件的Mapbox聚类。的主要内容,如果未能解决你的问题,请参考以下文章
MapBox GL-主题化地基于客户端中的数据渲染GeoJson
从 MySql 在 php 中创建 GeoJson 以与 MapBox javascript API 一起使用