Android Mapbox 标记标签
Android Mapbox Marker Labels
我想弄清楚如何使动态生成的标记列表在地图上(而不是在信息窗口中)显示动态文本标签。我知道这是可能的,因为我在 Mapbox Studio 中使用过这个功能 - 我只是不知道如何在 Android 上使用它!我考虑过创建一个包含文本的静态位图图标,但与 Mapbox Studio 版本相比,这似乎不太灵活,所以我想尽可能避免使用它!有什么建议吗?
你正在尝试做所谓的data-driven styling
您应该使用 SymbolLayer
在地图上显示文本。如果要显示的文本基于数据集中的 GeoJSON 特征,则在 SymbolLayer
.[=18= 的 textField
属性 中使用 get
表达式]
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);
The Annotation Plugin simplifies some of this. Also for reference to see how SymbolLayer
s are used, there is the Mapbox Android demo app.
我想弄清楚如何使动态生成的标记列表在地图上(而不是在信息窗口中)显示动态文本标签。我知道这是可能的,因为我在 Mapbox Studio 中使用过这个功能 - 我只是不知道如何在 Android 上使用它!我考虑过创建一个包含文本的静态位图图标,但与 Mapbox Studio 版本相比,这似乎不太灵活,所以我想尽可能避免使用它!有什么建议吗?
你正在尝试做所谓的data-driven styling
您应该使用 SymbolLayer
在地图上显示文本。如果要显示的文本基于数据集中的 GeoJSON 特征,则在 SymbolLayer
.[=18= 的 textField
属性 中使用 get
表达式]
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);
The Annotation Plugin simplifies some of this. Also for reference to see how SymbolLayer
s are used, there is the Mapbox Android demo app.