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