【问题标题】:Recommendations / advice needed for application technology set应用技术集所需的建议/建议
【发布时间】:2012-03-27 15:15:00
【问题描述】:

我有一个 GUI 应用程序的想法,但是它需要一组我不经常使用的技术(因此我在这里有点新手,如果这是愚蠢的,请道歉!)。

我想要一个 3D 地球模型,(就像谷歌地球,实际看起来就像谷歌地图中的地形叠加(我不关心道路,只关心高度和位置))。像谷歌地图和谷歌地球一样,我希望添加我的自定义轨迹、位置和边界;并移动/平移/倾斜等...

但是,我无法持续连接到互联网。因此,在启动程序之前,我需要 1 次下载地形/地理数据。 (这可以作为单个 kml 数据集完成吗?(这是否正确?)我想我需要一个“本地地图服务器”而不是互联网连接?)

我需要使用预编译语言(最好是 java)来实际编写程序。(不接受脚本/Javascript)我可以使用现有库来连接 Java 和 KML 吗?

是否可以在 3rd 方软件中使用地形成像重现谷歌地图的“地图窗口”? (我可以从某个地方的开源中提取这个吗?)

【问题讨论】:

    标签: java google-maps kml recommendation-engine google-earth


    【解决方案1】:

    你想做的一切都是可能的——但是——让我先说这将是一个漫长而艰难的旅程。

    让我们从简单的事情开始:您可以将数据加载为 KML,它将在 Google 地球中显示为一个图层,并且您可以打开和关闭它。您还可以通过编程方式或通过 GUI 关闭默认图层(道路等)。

    我会使用绑定到 C# 应用程序的 Google 地球(网络插件)。您确实想使用旧的 Google Earth COM API。从 GE 6 开始,它就被 Google 弃用了,使用起来确实很糟糕。 Java 也可以,但我更喜欢 C# 开发。无论哪种情况,您都可以使用该语言的能力直接调用 Google Earth API。

    这是一个很好的例子 (C#)。它是 GNU/GPL,因此它可以作为您的应用程序的基础:

    http://code.google.com/p/winforms-geplugin-control-library/

    本质上,您可以在 WebBrowser 控件中加载 Google 地球网页,这样您就可以直接对其进行管理。实际上与网页交互是困难的部分(但仍然比 COM API 更容易!)——希望您可以使用上面链接的控件库来了解它的工作原理。

    至于您的互联网连接问题:是的——Google 地球(甚至网络插件)支持缓存。允许的确切缓存量约为 100 MB。缓存中的具体内容完全是个谜。 100MB 的限制不会让您走得太远——但您可以使用完整的 Google 地球应用程序创建更大的缓存(最高 2GB)。这些缓存与网络浏览器插件一起使用,您只需将数据库文件复制到 Google Earth 应用程序数据目录中(并重命名文件我认为 - 插件在文件名后附加 0 或其他内容。)创建过程缓存很简单——在你想要的高度飞过相关区域。有一些工具可以帮助实现这一点,例如:

    http://bx11.110mb.com/gecacher.htm

    请注意,缓存 Google 的数据并不是他们希望您做的事情。所以请记住,您需要全面审查 EULA 以确保您没有违反它...

    祝你好运!我在一个大型应用程序中与 GE 合作了大约 3 年;使用它绝对是一件有趣的事情,并且可以让您的应用程序真正脱颖而出。

    【讨论】:

    • 缓存其图像违反 Google 地球/地图的 TOS - 请参阅第 10.1.3(b) 条 - developers.google.com/maps/terms
    • @lifeIsGood 感谢您提醒我 - 我预计在某些时候我将不得不与谷歌签订企业协议,因为我还会在此过程中违反其他一些协议!
    • @debracey 您的应用在任何地方都可用吗?
    • 我在一年前询问过,当时没有允许缓存图像以供离线使用的方式,即使有企业协议(顺便说一句,起价为每年 1 万美元)。根据您的应用程序的用途,您最好查看openstreetmap.org
    • @lifeIsGood 虽然缓存图像可能违反 TOS,但可以 100% 缓存图像以供离线使用。我链接的工具(虽然很痛苦)运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2011-11-05
    • 2018-09-01
    • 2011-01-03
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多