Какой эффективный способ поставить маркер для рисования на карте каждый раз, когда пользователь нажимает на карту? - PullRequest
1 голос
/ 30 ноября 2010

Я играю с Android MapView и столкнулся с требованием, где я должен поставить маркер в месте, где пользователь нажимает.в моем сценарии пользователь может перемещать карту, увеличивать и уменьшать масштаб и щелкать там, где ему нравится.в этом случае маркер следует размещать везде, где пользователь нажимает на карту.Если на карте был предыдущий маркер, то при щелчке он должен быть очищен и помещен на новое место.Это должно повторяться каждый раз, когда повторяется случай.

В будущем у меня появятся еще несколько элементов рисования, таких как представитель диапазона и указатель для выбора диапазона, который можно перетаскивать.

Я могупоставить маркер на первое место, но мой код не работает, когда пользователь щелкает где-либо еще.

Вот код для класса, который я использую: http://pastebin.com/6idn7VwK Полный класс, расширяющий MapActivityи тот, который расширяет ItemizedOverlay, может быть найден в ссылке выше.

Я понимаю, что могу делать некоторые неправильные вещи, поэтому, пожалуйста, исправьте меня.

Спасибо!

1 Ответ

3 голосов
/ 30 ноября 2010

Вы должны переопределить метод onTap для этого типа функциональности:

    @Override
    public boolean onTap(GeoPoint point, MapView view) {
         // add your marker to the map by creating an overlayItem and calling addOverlay
    }

 public void addOverlay(OverlayItem overlay) {
     mOverlays.add(overlay);
     populate();
 } 
...