【发布时间】:2019-12-03 23:00:58
【问题描述】:
我想做的事: 在这段代码中,我用相机位置实例化了一个符号。我想做的只是将地图上的符号动画到另一组我要硬编码的坐标,现在。我已经尝试了很多事情,但无法弄清楚如何让它发挥作用。
我的尝试:我已经看到了 Mapbox Android SDK 的两个示例,并尝试了这些示例的变体,只是为了让标记移动到另一个点,但我很迷茫:
此示例使用 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(注解)。
但我不确定如何。请帮助我已经被困了很长时间,我感到迷茫。谢谢。
我希望发生的事情的图片: Animate Symbol To Point
附: 我应该试试 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));
【问题讨论】:
标签: android mapbox mapbox-android mapbox-marker