我正在使用地图浏览器 http://wiki.openstreetmap.org/wiki/JMapViewerjar 在 JPanel 上显示世界地图。
在地图上我添加MapMarkerDot's
这是 GPS 点。
问题是当我单击MapMarkerDot
在地图上我不能
找到一个接口或监听器来捕捉点击并给我
点击了MapMarkerDot
身份。
这里有没有人使用过代码或者可以给我一些想法该怎么做。
我不想修改 jar 源,但也许我必须输入一个接口。
我知道这是一个抽象的问题,但希望得到帮助
回答我自己的问题。
基本上通过原始 x/y 计算比较来解决这个问题
地图标记位置与鼠标点击位置的关系。
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);
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)