java-如何从我的JMapViewer世界地图获取鼠标单击位置
作者:互联网
我使用JMapViewer jar在JPanel上显示世界地图.
在地图上,我添加了GPS标记点MapMarkerDot.
问题是,当我单击地图上的MapMarkerDot时,我无法
找到一个界面或听众来捕捉点击并给我
点击MapMarkerDot身份.
这里有没有人与代码合作过,或者可以给我一些想法.
我不想修改jar源,但也许我必须输入一个接口.
我知道这是一个抽象的问题,但希望能有所帮助
解决方法:
回答我自己的问题.
基本上通过比较原始x / y来解决此问题
MapMarker位置相对于鼠标单击位置.
if (e.getButton() == MouseEvent.BUTTON1) {
Point p = e.getPoint();
int X = p.x+3;
int Y = p.y+3;
List<MapMarker> ar = map.getMapMarkerList();
Iterator<MapMarker> i = ar.iterator();
while (i.hasNext()) {
MyMapMarkerDot mapMarker = (MyMapMarkerDot) i.next();
if(mapMarker.position != null){
int centerX = mapMarker.position.x;
int centerY = mapMarker.position.y;
// calculate the radius from the touch to the center of the dot
double radCircle = Math.sqrt( (((centerX-X)*(centerX-X)) + (centerY-Y)*(centerY-Y)));
// if the radius is smaller then 23 (radius of a ball is 5), then it must be on the dot
if (radCircle < 8){
ShowClickedUser(mapMarker.Tag);
}
}
}
}
标签:gps,world-map,jmapviewer,java 来源: https://codeday.me/bug/20191101/1986650.html