Что я хочу сделать. В этом коде я создал символ с положением камеры. Все, что я хотел бы сделать, это оживить символ на карте с другим набором координат, который я бы жестко запрограммировал на данный момент. Я пробовал много вещей, но не могу понять, как заставить это работать.
Что я пробовал. Я видел два примера SDK Mapbox для Android и пробовал их варианты, чтобы маркер переместился в другую точку, но я очень растерялся:
В этом примере используется Object Animator: https://docs.mapbox.com/android/maps/examples/animate-marker-position/
В этом примере не используются аниматоры, а просто обновляется символ на основе координат: https://docs.mapbox.com/android/maps/examples/api-response-icon-update/
Где я сейчас? Я наконец решил просто обновить символ, и в документации было указано, что мне нужно его использовать:
AnnotationManager.update (Аннотация).
но я не знаю как. Пожалуйста, помогите, я застрял очень долго и чувствую себя потерянным. Спасибо.
Ссылка на символ, говорящая об использовании этого: https://docs.mapbox.com/android/api/plugins/annotation/0.4.0/com/mapbox/mapboxsdk/plugins/annotation/Symbol.html#setLatLng-LatLng-
Изображение того, что я хотел бы сделать: Анимировать символ до точки < / а>
P.S. Стоит ли мне просто попробовать Object Animator?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Mapbox.getInstance(this, getString(R.string.access_token));
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(@NonNull final MapboxMap mapboxMap) {
mapboxMap.setStyle(Style.LIGHT, new Style.OnStyleLoaded(){
@Override
public void onStyleLoaded(@NonNull Style style){
//Import Icon
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.blue_icon);
style.addImage(ID_IMAGE_SOURCE, icon);
style.addSource(new GeoJsonSource("source-id"));
//Create Symbol
SymbolManager symbolManager = new SymbolManager(mapView, mapboxMap, style);
symbolManager.setIconAllowOverlap(true);
symbolManager.setIconIgnorePlacement(true);
Symbol symbol = symbolManager.create(new SymbolOptions()
.withLatLng(new LatLng(33.718492, -117.796390))
.withIconImage(ID_IMAGE_SOURCE)
.withIconSize(.25f));
//Camera Position and Bounds
LatLngBounds latLngBounds = new LatLngBounds.Builder()
.include(new LatLng(33.717872, -117.796296))
.include(new LatLng(33.718342, -117.797975))
.build();
mapboxMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds,
30));