Android Studio告诉我,不赞成使用Mapbox中的标记(API级别21 +,mapbox-android-sdk:7.2.0)。但是在官方文档中,示例为:
mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(48.85819, 2.29458))
.title("Eiffel Tower"));
我应该以这种方式添加标记,还是有一种新的方式?
答案 0 :(得分:0)
这应该有效...
新的mapbox版本api提供了另一个在地图上添加标记的api。您可以在地图就绪功能内使用style.addLayer(....)。
答案 1 :(得分:0)
听到的是地图框详细说明
This is the link to update mapbox
插件来处理注释 从适用于Android的Mapbox Maps SDK的7.0.0版本开始,此页面上的许多代码已被弃用。诸如Polygon,Polyline和Marker之类的类别将不再维护。这也意味着不应使用诸如PolygonOptions和PolylineOptions之类的类。最后,这也意味着也不应使用诸如addPolygon(),addPolyline()或addMarker()之类的方法。
如果您打算向地图添加任何图标,文本,线条或多边形,请查看Android版Mapbox注释插件。它简化了注释,并为显示数据提供了更大的灵活性。
答案 2 :(得分:0)
要将标记添加到地图,您必须使用注释plugin
首先,添加Gradle依赖项
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.8.0'
然后在onMapReady方法中,使用SymbolManager在地图上添加标记
override fun onMapReady(mapboxMap: MapboxMap) {
mapboxMap.setStyle(Style.MAPBOX_STREETS) { style ->
val symbolManager = SymbolManager(mapView, mapboxMap, style)
symbolManager.iconAllowOverlap = true
style.addImage("myMarker",BitmapFactory.decodeResource(resources,R.drawable.ic_maker))
symbolManager.create(SymbolOptions()
.withLatLng(LatLng(-1.693314, 29.225241))
.withIconImage("myMarker")
)
}
}