我试图弄清楚如何使动态生成的标记列表在地图上(而不是在infoWindow中)显示动态文本标签。我知道这是可能的,因为我已经在Mapbox Studio中使用了此功能-我只是不知道如何在Android上做到这一点!我考虑过创建一个包含文本的静态位图图标,但是与Mapbox Studio版本相比,这似乎不太灵活,所以我想避免这种情况!有什么建议吗?
答案 0 :(得分:2)
您正在尝试做所谓的data-driven styling
您应该使用SymbolLayer
在地图上显示文本。如果要显示的文本基于数据集中的GeoJSON功能,请在get
的{{1}}属性中使用textField
表达式。
SymbolLayer
The Annotation Plugin简化了其中的一部分。另外,还有the Mapbox Android demo app。供参考以了解如何使用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);
。