0

我正在使用库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);
  }
}

上面的代码返回如下输出:

X:239.0,Y:113.0
4

1 回答 1

2

假设您已经创建了一个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());
            }
     }
});
于 2017-05-30T11:15:49.750 回答