GWT удаление маркера - PullRequest
       1

GWT удаление маркера

0 голосов
/ 17 января 2011

У меня проблема.вот мой код:

 map.addMapClickHandler(new MapClickHandler() 
     {
      public void onClick(MapClickEvent e) 
      {
        MapWidget sender = e.getSender();
           Overlay overlay = e.getOverlay();
           LatLng pkt = e.getLatLng();
       if (overlay != null && overlay instanceof Marker) 
       {
       // double a = pkt.getLatitude();
        //double b = pkt.getLongitude();
       // String trr = a+";"+b;
        sender.removeOverlay(overlay);
       } 

       else 
       {
        sender.addOverlay(new Marker(pkt));
        double a = pkt.getLatitude();
        double b = pkt.getLongitude();
        point[akt]=a+";"+b;
          }
         });

и вопрос в том, почему я не могу получить широту и долготу, когда оверлей не равен нулю?(закомментированная область) все время появляется предупреждение о том, что "неосуществленное исключение сбежало".как это сделать правильно?


нет, после дополнительных тестов он не работает: /

, потому что в

if (overlay != null && overlay instanceof Marker) {
  LatLng pkt = e.getOverlayLatLng();
  double a = pkt.getLatitude();
  double b = pkt.getLongitude();
  String trr = a + ";" + b;
  sender.removeOverlay(overlay);
}

Долгота и широта я получаюэто один из последних добавленных мной маркеров (независимо от того, на какой маркер я нажимаю).Можно ли получить правильные значения?

1 Ответ

0 голосов
/ 17 января 2011

JavaDocs для MapClickEvent указывает, что MapClickEvent # getOverlayLatLng () следует использовать, когда пользователь щелкнул по оверлею (обратите внимание, что я не тестировал этот код):

map.addMapClickHandler(new MapClickHandler(){
  public void onClick(MapClickEvent e) {
    MapWidget sender = e.getSender();
    Overlay overlay = e.getOverlay();

    if (overlay != null && overlay instanceof Marker) {
      LatLng pkt = e.getOverlayLatLng();
      double a = pkt.getLatitude();
      double b = pkt.getLongitude();
      String trr = a + ";" + b;
      sender.removeOverlay(overlay);
    } else if (overlay == null) {
      LatLng pkt = e.getLatLng();
      sender.addOverlay(new Marker(pkt));
      double a = pkt.getLatitude();
      double b = pkt.getLongitude();
      point[akt] = a + ";" + b;
    }
});
...