当前位置: 首页 > 面试题库 >

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

葛宪
2023-03-14
问题内容

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

当我单击这些定位器图像时,我必须能够将事件MouseClick()添加到定位器图像。现在,到目前为止我已经读到的是我们不能向图像添加事件处理程序。它只能添加到swing的本机组件中。如果我没有使用JLabel表示事件,甚至没有用矩形包围图像,如何将事件添加到微小的定位器图像?


问题答案:

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

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

更一般而言,请使用类似的库,该库JMapViewer将地图的投影合并到转换中。这里概述了命中测试功能的架构。



 类似资料:
  • 本文向大家介绍jQuery实现单击和鼠标感应事件,包括了jQuery实现单击和鼠标感应事件的使用技巧和注意事项,需要的朋友参考一下 1.实现单击事件动态交替 之前我们讲到了toggleClass(),对于单击事件而言,jQuery同样提供了动态交替的toggle()方法,这个方法接受两个参数,两个参数均为监听函数,在click事件中交替使用。 例子:点击事件的动态交互。 2.实现鼠标感应 在css

  • 我有一个从Google maps下载静态图像的应用程序,将标记放置在我想要的位置(通过将参数传入Google static maps URL来放置)。但是,我也需要能够点击标记。我想我可以将x和y坐标转换为lon/lat,然后用这种方法计算出哪个标记被点击了,但我发现这并不容易。 我知道地图的尺寸(以像素为单位),缩放级别,以及地图的中心点(以像素和lon/lat为单位),所以我跟踪了这篇博文。不

  • 有没有办法用java捕获双击鼠标事件后的图像?我只能在鼠标释放双击事件时捕获图像。但捕获图像不是双击事件后的图像。

  • 本文向大家介绍OpenCV实现鼠标在图像上框选单目标和多目标,包括了OpenCV实现鼠标在图像上框选单目标和多目标的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了OpenCV实现鼠标框选并显示框选区域的具体代码,供大家参考,具体内容如下 鼠标在图像上框选目标: 1. 用到鼠标回调函数 2. 回调函数里面分三部分  (1)鼠标按下左键  (2)鼠标按下的同时移动左键  (3)鼠标左键弹

  • 本文向大家介绍javascript实现百度地图鼠标滑动事件显示、隐藏,包括了javascript实现百度地图鼠标滑动事件显示、隐藏的使用技巧和注意事项,需要的朋友参考一下 其实现思路是给label设置样式,我们来看下具体做法吧 以上所述就是本文给大家分享的全部内容了,希望能够对大家学习javascript有所帮助。

  • 问题内容: 在我的三个按钮上,鼠标=中键单击和=右键单击。 两键鼠标就是这种情况吗? 谢谢 问题答案: 为了避免任何歧义,请使用SwingUtilities中的实用程序方法: