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