从 jxmapviewer2 获取经纬度

Get latitude longitude from a jxmapviewer2

我正在显示带有库 jxmapviewer2 的 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);
  }
}

上面的代码 returns 输出如下:

X:239.0,Y:113.0

假设您已经创建了一个 JXMapViewer 并向其添加了鼠标侦听器,那么您可以使用查看器获取 GeoPosition。

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());
            }
     }
});