Mapbox Android标记已弃用的API 21+

时间:2019-04-23 07:26:05

标签: android mapbox android-mapview mapbox-android

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"));

我应该以这种方式添加标记,还是有一种新的方式?

3 个答案:

答案 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")
                    )
        }
     }