在 JMapViewer 中使用 mouseClicked 方法不会更新 getPosition return 值
Using the mouseClicked method in the JMapViewer does not update the getPosition return value
我已经创建了一个 MouseInputAdapter 侦听器来获取 JMapViewer 地图中的坐标并在该位置创建了 MapMarker,但是即使我点击了不同的位置,map.getPossition() 方法的值也不会更新新值。
我的监听代码:
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1){
Coordinate markeradd = map.getPosition();
System.out.println(map.getPosition());
map.addMapMarker(new MapMarkerDot(markeradd));
}
system.out.print 用于打印 getPosition() 返回的值。
当我第一次点击时,我得到一组坐标,然后无论我点击哪里,我总是得到相同的坐标。
五次不同位置点击的示例:
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
如您所见,getPosition()
"Calculates the latitude/longitude coordinate of the center of the currently displayed map area." 您可能想要
Coordinate getPosition(java.awt.Point mapPoint)
which "Converts the relative pixel coordinate … into a latitude / longitude coordinate." 您可以在 JMapController
的实现中调用它,如 here 所示 DefaultMapController
的子类。
new DefaultMapController(map) {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(map.getPosition(e.getPoint()));
}
};
我已经创建了一个 MouseInputAdapter 侦听器来获取 JMapViewer 地图中的坐标并在该位置创建了 MapMarker,但是即使我点击了不同的位置,map.getPossition() 方法的值也不会更新新值。
我的监听代码:
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1){
Coordinate markeradd = map.getPosition();
System.out.println(map.getPosition());
map.addMapMarker(new MapMarkerDot(markeradd));
}
system.out.print 用于打印 getPosition() 返回的值。 当我第一次点击时,我得到一组坐标,然后无论我点击哪里,我总是得到相同的坐标。 五次不同位置点击的示例:
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
Coordinate[56.159963018590744, 10.199775695800781]
如您所见,getPosition()
"Calculates the latitude/longitude coordinate of the center of the currently displayed map area." 您可能想要
Coordinate getPosition(java.awt.Point mapPoint)
which "Converts the relative pixel coordinate … into a latitude / longitude coordinate." 您可以在 JMapController
的实现中调用它,如 here 所示 DefaultMapController
的子类。
new DefaultMapController(map) {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(map.getPosition(e.getPoint()));
}
};