没有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聚类。的主要内容,如果未能解决你的问题,请参考以下文章

mapboxgl中的标记聚类基于聚合值而不是点数

MapBox GL-主题化地基于客户端中的数据渲染GeoJson

从 MySql 在 php 中创建 GeoJson 以与 MapBox javascript API 一起使用

在 Plotly Density_Mapbox 上添加 GeoJSON 等高线作为图层

mapboxlayertype都有哪些

Mapbox GL Js:添加和删除 GeoJSON 源和图层