Java 如何在jxmapviewer中显示标记/航路点

Java 如何在jxmapviewer中显示标记/航路点,java,openstreetmap,marker,jxmapviewer,Java,Openstreetmap,Marker,Jxmapviewer,我在任何地方都找不到简单的答案,所以我想我遗漏了一些东西: 我在java中使用openstreetmap,我制作了一个GUI,单击时会得到一个地质点,我想在单击的位置显示一个标记,我尝试了这个方法,但没有成功: GeoPosition gp2 = map.convertPointToGeoPosition(map.getMousePosition()); Waypoint wp = new Waypoint() { @Overr

我在任何地方都找不到简单的答案,所以我想我遗漏了一些东西:

我在java中使用openstreetmap,我制作了一个GUI,单击时会得到一个地质点,我想在单击的位置显示一个标记,我尝试了这个方法,但没有成功:

            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();
地理位置gp2=map.convertPointToGeoPosition(map.getMousePosition()); 航路点wp=新航路点(){ @凌驾 公共地理位置getPosition(){ //TODO自动生成的方法存根 返回gp2; } }; Set=null; 添加(wp); WaypointPainter wpp=新的WaypointPainter(); setRenderer(新的航路点渲染器(){ @凌驾 公共航路点(Graphics2D g、JXMapViewer地图、航路点航路点){ //TODO自动生成的方法存根 } }); wpp.设定航路点(设置); Map.this.getJXMapViewer().setOverlayPainter(wpp); Map.this.getJXMapViewer().revalidate(); Map.this.getJXMapViewer().repaint();
有什么线索吗?

因为您只是重写了该方法(
paintWaypoint()
),但没有修改该方法

所以这对我来说很有效,对你也很有效

将以下代码添加到您的
paintWaypoint()
。这将在您的鼠标位置上绘制一个十字标记(X

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