【问题标题】:Mapbox Android Marker deprecated API 21+Mapbox Android Marker 已弃用 API 21+
【发布时间】:2019-04-23 07:26:05
【问题描述】:
Android 工作室告诉我,Mapbox 中的标记已被弃用(API 级别 21+,mapbox-android-sdk:7.2.0)。但在官方文档中的例子是:
mapboxMap.addMarker(new MarkerOptions()
.position(new LatLng(48.85819, 2.29458))
.title("Eiffel Tower"));
我应该以这种方式添加标记还是有一种新的方式?
【问题讨论】:
标签:
android
mapbox
android-mapview
mapbox-android
【解决方案1】:
要将标记添加到您的地图,您必须使用注释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")
)
}
}
【解决方案2】:
这应该可以工作...
新的 mapbox 版本 api 提供了另一个 api 来在地图上添加标记。您可以在 map ready 函数中使用 style.addLayer(....)。
【解决方案3】:
听到的是mapbox的详细说明
This is the link to update mapbox
处理注解的插件
自 Android 版 Mapbox Maps SDK 7.0.0 版本起,此页面上的大部分代码已被弃用。 Polygon、Polyline 和 Marker 等类将不再保留。这也意味着不应使用 PolygonOptions 和 PolylineOptions 等类。最后,这也意味着 addPolygon()、addPolyline() 或 addMarker() 等方法也不应该使用。
如果您打算向地图添加任何图标、文本、线条或多边形,请查看适用于 Android 的 Mapbox Annotation Plugin。它简化了注释并为显示数据提供了额外的灵活性。