2016-01-21 6 views

ответ

0

Используйте OnLocation изменения, чтобы получить cuurent местоположение, и убедитесь, что вы получаете его .И затем поместить этот код, чтобы снова сбросить маркер на новое место

googleMap.clear(); 
mLAt=location.getLatitude(); 
mLong=location.getLongitude(); 
onlochangelatlnglatLng=new LatLng(mLAt,mLong); 

googleMap.addMarker(new MarkerOptions().position(onlochangelatlnglatLng).icon(BitmapDescriptorFactory.fromResource(R.drawable.loccar)).title("My location")); 
Toast.makeText(getApplicationContext(), "Location changed! +LAt"+mLAt+ "mlongggg"+mLong, 
     Toast.LENGTH_SHORT).show(); 
+0

Спасибо за ваш ответ. Но это не связано с googleMap. Но мой код связан с mapbox. –

0

Вы можете обновить свои маркеры либо бухгалтерские маркер конфигурации, как так:

List<MarkerViewOptions> optionsList = new ArrayList<>(); 
optionsList.add(new MarkerViewOptions() 
    .title("My title") 
    .snippet("My snippet") 
    .position(new LatLng(0, 0)) 
    .icon(someIcon)); 

Затем вы можете выбрать, чтобы обновить информацию из optionsList с помощью добытчиков и сеттеров. Мне лично, мне нравится получать маркер из переменной MapboxMap внутри метода onMapReady внутри интерфейса OnMapReadyCallback. Вы можете сделать это следующим образом:

mapboxMap.getMarkers().get(indexOfMarkerYouWantToChange) 
    .setPosition(new LatLng(newLat, newLng)); 
+0

Как вы получаете значение для indexOfMarkerYouWantToChange? – ssimm

+0

@ssimm в зависимости от того, в каком порядке были добавлены маркеры (я предполагаю, что существует более одного маркера), я просто кодирую индекс маркера со значением от 0 до полных маркеров - 1. Например, если у вас есть 3 маркера, где первая была начальной точкой, вторая текущая позиция и третья точка назначения, и вы хотели обновить текущее местоположение, сделайте 'mapboxMap.getMarkers(). Get (1)' – jlvmoster

 Смежные вопросы

  • Нет связанных вопросов^_^