【问题标题】:Interactive Map viewer desktop application in JavaJava 中的交互式地图查看器桌面应用程序
【发布时间】:2010-11-19 23:42:46
【问题描述】:

我想构建一个桌面应用程序 - 一个地图查看器,类似于:http://sunsite.ubc.ca/UBCMap/ in Java。每当有人将鼠标悬停在地图上的建筑物上时,应该有一个气球工具提示在地图上说明该建筑物的一些信息,例如它的办公室电话号码等,并且该建筑物应该在二维地图中发光。有人可以为我提供一些关于我应该在 Java 中使用什么框架来构建这样的东西(例如 JavaFx)的指导吗?有没有类似的示例代码?

【问题讨论】:

  • 我认为这里也有类似的问题:forums.adobe.com/thread/21693
  • (仅供参考,有个别报告称该链接导致不稳定 - 不可关闭的 Java 小程序等;但是,它对我来说是安全的;我将其设为非链接,但离开href - 只是作为预防措施)

标签: java user-interface javafx


【解决方案1】:

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

此外,您还可以连接到可能对您的应用程序有用的现有 Java API 和 Web 服务。

查看herehere 了解与您描述的应用类似的应用。 (Javafx 地图也是谷歌)

关于 JavaFX 的警告是它仍处于其生命的早期阶段 - 因此预计会遇到错误并被警告在以后的版本中可能会发生重大更改。

【讨论】:

  • 是的,你是对的..从 javafx 开始的脚本似乎有点奇怪..所以我现在想保持简单。让我使用 swing..因为,这不是谷歌/雅虎地图..它是 gif/位图,我拥有的校园地图。我如何处理它,以便将鼠标悬停在地图上的各个建筑物上可以显示气球提示?
  • 别误会我的意思——我不想让你停止使用 JavaFX。一旦你习惯了它就会很容易使用,而且它似乎非常适合你描述的应用程序类型。
【解决方案2】:

如果您的地图真的像您链接的示例一样简单,我强烈建议您避免使用 java(或完全使用 javaFX)。您可以使用任何 javascript DHTML 映射 api 做您想做的事。见

  • 谷歌地图 API
  • OpenLayers

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

【讨论】:

  • 感谢 Joel 的建议,但如果您阅读我的帖子,我希望它在桌面应用程序中......而不是在浏览器中。我想要一些关于如何阅读和处理地图的建议..它应该是瓷砖地图..
  • 啊,在这种情况下,您可能需要查看 GeoTools 库。它是一个java库,提供了很多构建地图软件的工具
【解决方案3】:

如果你真的只有一张图片,并且你想要在它上面显示工具提示 - 这里有一个 30 秒的描述。

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

提示:您很可能需要使用 TooltipManager 注册您的 JPanel。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 2021-08-26
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多