在地图中的图块上实现鼠标单击事件

我正在尝试在JPanel上为图像(基本上是地图上的图块)实现鼠标单击事件。 我只是无法弄清楚如何去做。 我有一个扩展JPanel的Main类。 我正在从tile服务器中检索tile,并根据特定的缩放级别在Main类的paintComponent()方法中显示它们。 我使用微小的定位器图像来表示同一个paintComponent()方法中的特定纪念碑或城市中的建筑物。 它们根据相应的纬度和经度放置在这些瓷砖的顶部。

当我点击这些定位器图像时,我必须能够将事件MouseClick()添加到定位器图像。 现在我到目前为止所读到的是我们无法为图像添加事件处理程序。 它只能添加到swing的原生组件中。 当我没有使用JLabel表示事件或者甚至用图像说明用矩形表示时,如何将事件添加到微小的定位器图像?

在具有合适投影的足够小的地图上,您可以使用相对于封闭面板的线性插值在坐标系之间进行变换。 注意以下比例,您可以交叉乘法并求解缺失的坐标,如将鼠标坐标映射到图像中的像素坐标的完整示例所示。

mouse.x : panelWidthInPixels :: featureLongitude : tileWidthInDegrees mouse.y : panelHeightInPixels :: featureLatitude : tileHeightInDegrees 

更一般地说,使用像JMapViewer这样的库, JMapViewer地图的投影合并到转换中。 此处概述了命中测试function的模式。