Как динамически обновить местоположение маркера на mapbox в андроиде? - PullRequest
0 голосов
/ 11 марта 2019

Я использую MapBox для разработки приложения карты, мой сервер вернет некоторые данные о широте и долготе, мне нужно обновить местоположение маркера по широте и долготе

так мой код такой:

override fun updateDroneLocationResult(drone:Drone) {
    var latLng = LatLng(drone.latitude, drone.longitude)
    droneMaker = map.addMarker(MarkerOptions().position(latLng))
    map.updateMarker(droneMaker!!)
}

но функция "updateMarker" не работает, я не знаю, где это не так. что мне делать?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Я исправляю свою проблему, это проблема с симулятором, у меня нет проблем с физическим телефоном.

0 голосов
/ 11 марта 2019

Вы не обновляете существующий маркер, вместо этого каждый раз добавляете новый маркер. Если вы хотите обновить существующий, сделайте что-то вроде этого:

  if(mCurrLocationMarker!=null){
        mCurrLocationMarker.setPosition(latLng);
    }else{
        mCurrLocationMarker = map.addMarker(new MarkerOptions()
                                .position(latLng);
    }

также, если вы хотите перемещаться или перемещать камеру к этому маркеру, также звоните:

   map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));

Надеюсь, это поможет вам.

...