2015-09-25 8 views
0

я не могу найти простой ответ в любом месте, так что я предполагаю, что я что-то не хватает:Как отобразить маркер/Точку в jxmapviewer

Я использую OpenStreetMap в Java, я сделал GUI, я получаю GeoPoint при нажатии, и я хотел бы, чтобы отобразить маркер, где я щелкнул, я попробовал это, но это не работает:

  GeoPosition gp2 = map.convertPointToGeoPosition(map.getMousePosition()); 

     Waypoint wp = new Waypoint() { 

      @Override 
      public GeoPosition getPosition() { 
       // TODO Auto-generated method stub 
       return gp2; 
      } 
     }; 

     Set<Waypoint> set = null; 
     set.add(wp); 
     WaypointPainter<Waypoint> wpp = new WaypointPainter<Waypoint>(); 
     wpp.setRenderer(new WaypointRenderer<Waypoint>() { 

      @Override 
      public void paintWaypoint(Graphics2D g, JXMapViewer map, Waypoint waypoint) { 
       // TODO Auto-generated method stub 

      } 
     }); 
     wpp.setWaypoints(set); 
     Map.this.getJXMapViewer().setOverlayPainter(wpp); 
     Map.this.getJXMapViewer().revalidate(); 
     Map.this.getJXMapViewer().repaint(); 

любой ключ почему?

ответ

0

потому что вы просто переопределите метод (paintWaypoint()), но вы не изменили метод.

так это работает для меня и работает для вас тоже ....

добавить следующие коды в ваш paintWaypoint() .this нарисует крестик (X ) на вашей позиции курсора мыши.

g.setColor(Color.RED); 
g.drawLine(-5,-5,+5,+5); 
g.drawLine(-5,+5,+5,-5); 
return true;