Я использую карту в моем приложении для Android. После инициализации поля карты, я хочу добавить маркер, когда на longClick на блоке карты, чтобы по порядку в соответствии с официальным сайтом я добавил маркерную зависимость для gradle приложения:
dependencies {
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-markerview-v7:0.2.0'
}
А потом я реализую MapboxMap.OnMapLongClickListener
и переопределить onMapLongClick
.
Когда карта готова, я включаю enableLocationComponent
, создаю markerViewManager
и устанавливаю карту long click listener
.
mapView.getMapAsync(mapboxMap -> {
this.mapboxMap = mapboxMap;
mapboxMap.setStyle(Style.MAPBOX_STREETS, style -> {
createCustomAnimationView();
moveTo(home_longitude, home_latitude, home_zoom);
enableLocationComponent();
markerViewManager = new MarkerViewManager(mapView, mapboxMap);
mapboxMap.addOnMapLongClickListener(this);
createCustomAnimationView();
});
});
Наконец, в onMapLongClick
переопределенном методе я делаю просмотр изображений и добавляю в markerViewManager.
@Override
public boolean onMapLongClick(@NonNull LatLng point) {
ImageView imageView = new ImageView(requireContext());
imageView.setLayoutParams(new RelativeLayout.LayoutParams(
(int) Measurement.convertDpToPixel(32, requireContext()),
(int) Measurement.convertDpToPixel(32, requireContext())));
imageView.setImageResource(R.drawable.location_ic);
MarkerView markerView = new MarkerView(new LatLng(point.getLatitude(), point.getLongitude()), imageView);
markerViewManager.addMarker(markerView);
return false;
}
Когда я запускаю приложение и долго нажимаю на экран:
Первая проблема: location_ic появляются в верхней и левой частях экрана, а через секунду или более значок помещается в нужное место
Другая проблема:
Когда я перемещаю карту, эти маркеры остаются фиксированными и не перемещаются вместе с картой, но через секунду или более помещаются в нужное место.
Надеюсь, я четко объяснил, но если вы не понимаете, я загрузил небольшое видео !!!
Мое видео