编程语言
首页 > 编程语言> > java-如何从我的JMapViewer世界地图获取鼠标单击位置

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