Mapbox Map Плагин аннотации Kotlin - требуется 'style', найдено 'style?' - PullRequest
0 голосов
/ 20 октября 2019

Мне очень нужен совет по этому вопросу.

Я пытаюсь заставить работать плагин Mapbox Annotation. на https://docs.mapbox.com/android/plugins/overview/annotation/ он говорит, что нужно создать SymbolManager следующим образом:

// create symbol manager object
val symbolManager = SymbolManager(mapView, mapboxMap)

На «SymbolManager» я получаю сообщение об ошибке: Ни одна из следующих функций не может быть вызвана с предоставленными аргументами.

  • (MapView, MapboxMap, Стиль), определенный в com.mapbox.mapboxsdk.plugins.annotation.SymbolManager
  • (MapView, MapboxMap, Стиль, CoreElementProvider, String ?, GeoJsonOptions ?, DraggableAnnorolont)определено в com.mapbox.mapboxsdk.plugins.annotation.SymbolManager
  • (MapView, MapboxMap, Style, String?), определено в com.mapbox.mapboxsdk.plugins.annotation.SymbolManager
  • (MapView, MapboxMap, Style, String ?, GeoJsonOptions?), Определенные в com.mapbox.mapboxsdk.plugins.annotation.SymbolManager

Кажется, что мне нужен объект стиля. Поэтому я решил пойти следующим образом:

override fun onMapReady(mapboxMap: MapboxMap) {
        this.map = mapboxMap
        mapboxMap.setStyle(Style.MAPBOX_STREETS) {

            //this here is just to be able to see your own location on the android device, it should not interfer with the symbol manager (i guess)
            enableLocationComponent(it)

            //get the current Stly (MAPBOX_STREETS)
            val style: Style = mapboxMap.style!!

            //Create Symbol Manager, it requires a style object so i'm using the one i created above, documentation actually doenst say any style object is needed here
            val symbolManager = SymbolManager(CellMap!!, mapboxMap, style)

            //non data driven properties
            symbolManager.iconAllowOverlap = true

            //create symbol to test the symbol function
            val symbolOptions: SymbolOptions = SymbolOptions()
                .withLatLng( LatLng(37.410, -122.084))
                .withIconImage("res/mipmap/ic_launcher/ic_launcher.png")
                .withIconSize(1.3f)
                .withSymbolSortKey(10.0f)
                .withDraggable(true)
            symbol = symbolManager.create(symbolOptions)
        }    
    }

Я использую значок, который уже был предоставлен Android Studio. Тем не менее, когда я открываю карту, на карте не отображается никаких символов, и я не понимаю, почему. Код, который я использую, я получил из кода Java здесь: https://github.com/mapbox/mapbox-plugins-android/blob/master/app/src/main/java/com/mapbox/mapboxsdk/plugins/testapp/activity/annotation/SymbolActivity.java Мне просто нужно было «преобразовать» его в kotlin, что я и сделал сам. Не уверен, что сделал что-то не так, но по крайней мере я не получаю никаких ошибок.

Заранее спасибо. Надеюсь, я предоставил всю необходимую информацию, чтобы помочь мне. Если нет, я был бы очень рад предоставить это. Также я попытался отформатировать все правильно, извините, если что-то пропустил.

...