应用技术集所需的建议/建议

时间:2012-03-27 15:15:00

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

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

我想要一个3D地球模型,(就像谷歌地球一样,实际外观就像谷歌地图中的地形叠加层一样(我不关心道路,只关心高度和位置))。像谷歌地图& google earth我希望添加我的自定义曲目&地点和边界;和移动/平移/倾斜等...

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

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

是否可以使用第三方软件中的地形成像重现谷歌地图的“地图窗口”? (我可以在某处从开源处取出它吗?)

1 个答案:

答案 0 :(得分:2)

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

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

我会使用绑定到C#应用程序的Google Earth(网络插件)。您想要使用旧的Google Earth COM API。谷歌在GE 6中被弃用,这真的是一件非常糟糕的事情。 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 Earth应用创建更大的缓存(最高2GB)。这些缓存可以与Web浏览器插件一起使用,您只需将数据库文件复制到Google Earth应用程序数据目录中(并重命名我认为的文件 - 插件会在文件名后附加0或其他内容。)创建过程缓存很简单 - 在您想要的海拔高度围绕相关区域飞行。有一些工具可以帮助实现自动化,例如:

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

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

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