Android Mapbox标记标签

Android Mapbox标记标签,android,label,mapbox,mapbox-marker,Android,Label,Mapbox,Mapbox Marker,我试图弄清楚如何使动态生成的标记列表在地图上(而不是在信息窗口中)显示动态文本标签。我知道这是可能的,因为我在Mapbox Studio中使用过这个功能——我只是不知道如何在Android上实现它!我考虑过创建一个包含文本的静态位图图标,但与Mapbox Studio版本相比,这似乎不是很灵活,所以如果可以的话,我想避免它!有什么建议吗?你正在尝试做所谓的事情 您应该使用symbolayer在地图上显示文本。如果要显示的文本基于数据集中的GeoJSON功能,则使用symbolayer的textF

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

你正在尝试做所谓的事情

您应该使用
symbolayer
在地图上显示文本。如果要显示的文本基于数据集中的GeoJSON功能,则使用
symbolayer
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);

简化了其中的一些。另外,为了查看如何使用
symbolayer
s,还有。

您还可以为标记创建单独的
symbolayer
。引用与文本相同的GeoJson源。但是对于标记层,使用
iconImage
PropertyFactory方法。位图图标=BitmapFactory.decodeResource(activity.this.getResources(),R.drawable.marker\u image);mapboxMap.addImage(“标记图像”,图标);随后:symbolayer markerLayer=新的symbolayer(“标记层id”,“源id”)。带有属性(PropertyFactory.iconImage(“标记图像”);mapboxMap.addLayer(markerLayer);谢谢,我想这正是我想要的!如果我的源代码是Java中动态编译的标记点列表,我还有其他选择吗?我有一个位置数据库,希望根据一组信息将它们添加到标记列表中(因此静态源文件不是一个选项,除非我可以从这样的源动态绘制一些点?)。谢谢你的帮助!我很好奇你的第二个建议——这样做有什么好处?看起来有点复杂?啊,别提我的问题!那个注释符号管理器正是我所需要的。我将仅为每个标记使用符号选项。:)非常感谢!我对我的问题的消极面很好奇——我是在问一些愚蠢的问题吗?@JakeMadden,不知道你说的“我对我的问题的消极面很好奇”是什么意思,总之,听起来你好像在想办法。一旦将GeoJsonSource添加到地图中,任意数量的图层都可以引用图层构造函数中唯一的源id。@JakeMadden,很难帮助,因为idk知道数据的外观。如果可以从数据库中的每个位置获取lat/long,则执行列表featureList=new ArrayList();对于(int x=0;x