从jxmapviewer2获取纬度经度

时间:2017-05-30 11:03:45

标签: java swing openstreetmap jxmapviewer

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

1 个答案:

答案 0 :(得分:1)

假设您已经创建了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());
            }
     }
});