gpt4 book ai didi

java - 我如何从我的 JMapViewer 世界地图中获取鼠标点击位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:51 25 4
gpt4 key购买 nike

我正在使用 JMapViewer用于在 JPanel 上显示世界地图的 jar。

我在 map 上添加了 MapMarkerDot's,它们是 gps 点。

问题是当我点击 map 上的 MapMarkerDot 时我无法
找到一个接口(interface)或监听器来捕捉点击并给我
单击 MapMarkerDot 标识。

这里有没有人使用过代码,或者可以给我一些建议。

我不想修改 jar 源,但也许我必须输入一个接口(interface)。

我知道这是一个抽象的问题,但希望得到帮助

最佳答案

回答我自己的问题。
通过比较
的原始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);
}

}
}
}

关于java - 我如何从我的 JMapViewer 世界地图中获取鼠标点击位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8780882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com