Java 从jxmapviewer2获取经纬度

Java 从jxmapviewer2获取经纬度,java,swing,openstreetmap,jxmapviewer,Java,Swing,Openstreetmap,Jxmapviewer,我正在显示带有库的OSM地图 我无法获得地图上某个点的纬度,因为我想通过单击该点来获得该点的地理坐标 public void mouseClicked(MouseEvent e) { if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3){ java.awt.Point p = e.getPoint(); double X = p.getX(); double Y = p.ge

我正在显示带有库的OSM地图

我无法获得地图上某个点的纬度,因为我想通过单击该点来获得该点的地理坐标

public void mouseClicked(MouseEvent e) {
  if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3){
    java.awt.Point p = e.getPoint();
    double X = p.getX();
    double Y = p.getY();
    System.out.println("X:"+X+",Y:"+Y);
  }
}
上面的代码返回如下输出:

X:239.0,Y:113.0

假设您已经创建了一个
JXMapViewer
,并将鼠标侦听器添加到其中,那么您可以使用查看器获取地理位置

JXMapViewer viewer;
//initialize somehow.
viewer.addMouseListener(new MouseAdapter(){
     public void mouseClicked(MouseEvent e) {
            if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3){
                java.awt.Point p = e.getPoint();
                GeoPosition geo = viewer.convertPointToGeoPosition(p);
                System.out.println("X:"+geo.getLattitude()+",Y:"+geo.getLongitude());
            }
     }
});

假设您已经创建了一个
JXMapViewer
,并将鼠标侦听器添加到其中,那么您可以使用查看器获取地理位置

JXMapViewer viewer;
//initialize somehow.
viewer.addMouseListener(new MouseAdapter(){
     public void mouseClicked(MouseEvent e) {
            if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3){
                java.awt.Point p = e.getPoint();
                GeoPosition geo = viewer.convertPointToGeoPosition(p);
                System.out.println("X:"+geo.getLattitude()+",Y:"+geo.getLongitude());
            }
     }
});

您还添加了什么组件作为鼠标侦听器?很可能您必须使用
公共地理位置转换pointtogeoposition(Point2D pt)
这是类
JXMapViewer
的一部分。它成功了,谢谢!你应该考虑将实际答案标记为正确,如果这是你所做的。你还添加了什么组件?很可能您必须使用
公共地理位置转换pointtogeoposition(Point2D pt)
这是类
JXMapViewer
的一部分。它成功了,谢谢!如果你这样做的话,你应该考虑把实际答案标记为正确的。