Java中的Interactive Map查看器桌面应用程序

我想构建一个桌面应用程序 – 一个地图查看器,如下所示: http://sunsite.ubc.ca/UBCMap/http://sunsite.ubc.ca/UBCMap/用Java编写。 每当有人将鼠标hover在地图上的建筑物上时,应该有一个气球工具提示,说明地图上的建筑物,如办公室电话号码等,该建筑物应在2-d地图中发光。 有人可以给我一些指示,我应该在Java中使用什么框架来构建这样的东西(例如JavaFx)? 是否有任何类似的示例代码?

如果你真的只有一张图片而你想要工具提示 – 这是一个30秒的描述。

  • 子类JPanel
  • 覆盖paint()方法来绘制图像
  • 将一些Shape对象(多边形,rects等)定义为“建筑物”以及文本工具提示字符串
  • 覆盖JPanel子类中的getTooltip。 在每次调用时迭代您的Shape对象,测试该点是否在内部形状(形状有一个方法)。 返回适合Shape的工具提示,如果鼠标没有形状,则返回null
  • 如果你想要翻转效果,请注册MouseMotionListener并使用它来查找“hover”形状。 调用repaint()并以某种特殊方式呈现“hover”。
  • 繁荣! 你完成了

提示:您最有可能需要使用TooltipManager注册JPanel。

如果您的地图真的像您链接的示例一样简单,我强烈建议避免使用java(或javaFX)。 您可以使用任何javascript DHTML映射apis执行您想要的操作。 看到

  • Google Maps API
  • 的OpenLayers

Java太过分了。 小程序加载缓慢,难以在各种环境下正确部署。 最好发布一个KML文件(或类似的东西)并利用别人的地图,而不是自己编写和维护整个应用程序。

JavaFX是此类应用程序的合适候选者。 JavaFX脚本语法需要一些时间来习惯,但是一旦你加快了速度,就很容易创建图形/ GUI组件。

此外,您可以挂钩可能适用于您的应用程序的现有Java API和Web服务。

在此处和此处查看与您描述的应用类似的应用。 (也是谷歌的Javafx地图)

关于JavaFX的一个警告是,它仍处于生命的早期阶段 – 因此期望遇到错误并被警告可能会在以后的版本中破坏更改。

看看JxMaps产品。 它提供了将交互式地图添加到Java桌面应用程序的function。