2

我试图弄清楚如何使动态生成的标记列表在地图上显示动态文本标签(而不是在 infoWindow 中)。我知道这是可能的,因为我在 Mapbox Studio 中使用过这个功能——我只是不知道如何在 Android 上做到这一点!我考虑过创建一个包含文本的静态位图图标,但与 Mapbox Studio 版本相比,这似乎不太灵活,所以如果可以的话,我想避免它!有什么建议么?

4

1 回答 1

4

您正在尝试做所谓的数据驱动样式

您应该使用 aSymbolLayer在地图上显示文本。如果您要显示的文本基于数据集中的 GeoJSON 特征,则使用a 属性中的get表达式。textFieldSymbolLayer

FeatureCollection featureCollection = FeatureCollection.fromFeatures();
GeoJsonSource geoJsonSource = new GeoJsonSource("source-id", featureCollection);
mapboxMap.addSource(geoJsonSource);

SymbolLayer symbolLayer = new SymbolLayer("layer-id", "source-id")
  .withProperties(PropertyFactory.textField(Expression.get("FEATURE-PROPERTY-KEY")));
mapboxMap.addLayer(symbolLayer);

Annotation Plugin简化了其中的一部分。另外为了参考了解如何SymbolLayer使用 s,还有Mapbox Android 演示应用程序

于 2018-11-25T16:41:36.047 回答