Я использую MapBox SDK для офлайн-карты. Я добавил несколько маркеров на карту, как получить событие click для маркеров. Есть ли способ получить событие щелчка маркера?Как получить событие щелчка маркера с помощью MapBox SDK?
ответ
Я получил решение для события маркерного щелчка в mapbox, используя функциональность, предоставляемую mapbox sdk под названием ItemizedIconOverlay.
Я сделал, как следующее:
public void placeGTMarker() {
alMarkerGT = new ArrayList<Marker>();
marker = new Marker("my Marker", "", latLng);
marker.setMarker(activity.getResources()
.getDrawable(R.drawable.map_pin));
mv.addMarker(marker);
alMarkerGT.add(marker);
itemizedIconOverlayGT = new ItemizedIconOverlay(activity, alMarkerGT,
new OnItemGestureListener<Marker>() {
@Override
public boolean onItemSingleTapUp(int index, Marker item) {
return false;
}
@Override
public boolean onItemLongPress(int index, Marker item) {
return false;
}
});
mv.addItemizedOverlay(itemizedIconOverlayGT);
}
Мы можем выполнить любое событие на onItemSingleTapUp за один клик и для длительных мышей мы можем использовать onItemLongPress метода.
я использовал в своем приложении, и он прекрасно работает
, имеет кружок рисования с увеличением в анимации в текущем местоположении, и при щелчке его следует уменьшить из этого круга – Erum
нет, я просто поместил изображение маркера на место – BSavaliya
Я только хочу показать маркер изображение в текущем местоположении пользователя, поэтому использование функции UserLocationOverlay для alMarkerGT в ItemizedIconOverlay запрещено? как преодолеть – Erum
Вы можете установить MarkerClickListener на MapboxMap
map.setOnMarkerClickListener(this);
, а затем ваш класс/деятельность/фрагмент реализации MapboxMap.OnMarkerClickListener
@Override
public boolean onMarkerClick(@NonNull Marker marker) {
return true;
}
В этом подходе вы не можете дважды щелкнуть один и тот же маркер один за другим, он получает первый клик, но не получает другие клики на том же маркере, если вы не нажмете «Карта», а затем снова кликнуть тот же маркер. –
Да, MapBox знает об этом, и я предполагаю, что они работают над этим https://github.com/mapbox/mapbox-gl-native/issues/6099 https://github.com/mapbox/ MapBox-ГЛ-нативный/вопросы/3176 – vanshg
как у решена ваша проблема @BSavaliya – Erum
я использовал ItemizedIconOverlay для маркера щелчок – BSavaliya
im пытался использовать только один местоположение, которое является текущим местоположением пользователя на устройстве с маркером – Erum