将 Marble 装进口袋,随身携带

作者:Stuart Jarvis

您是否曾想过,如果能将整个世界掌握在指尖,那会是什么感觉?又或者,将其捧在手心,放入口袋,随身携带,又会是怎样的体验?有了 KDE 的 Marble 虚拟地球,在您的手机上,您就可以做到这一切。

是的,您现在可以在支持 Nokia Qt 框架的智能手机上运行 Marble。如果您正与朋友争论哪个更靠北:英国伦敦还是加拿大伦敦,这可能会很有用。但是,您可以使用手机上的 Web 浏览器来回答这类问题,甚至可以使用手机打电话询问他人。乍一看,手机上拥有虚拟地球似乎只是一个有趣的噱头——可以玩玩,给朋友们留下深刻印象。但如果您深入了解一下,您会发现 Marble 的功能远不止填补您的地理知识空白。它可以帮助您找到自己的位置,并指引您回家。

Put the World in Your Pocket with Marble

图 1. Marble 的移动版本将世界放在您的指尖。

自由导航

长期以来,Marble 一直是 KDE 的虚拟地球应用程序,提供世界的卫星、地图集和 OpenStreetMap 地图。自去年 8 月发布的 0.10 版本以来,Marble 增加了路径查找功能,因此您可以输入两个位置,让 Marble 计算路线并提供逐步的导航指示。然而,随着 2010 年发布的 1.0 版本,Marble 的导航功能和针对移动设备的优化真正走向成熟。与合适的智能手机结合使用,这将为您提供一个完全免费的导航系统——自由软件和免费地图数据。

Put the World in Your Pocket with Marble

图 2. 您可以轻松地将运行 Marble 的智能手机用作车载卫星导航设备。

那么,如何使用 Marble 将您的手机变成个人导航设备呢?原则上,您可以在任何支持 Nokia Qt 工具包的设备上运行该软件。实际上,大多数测试都是在运行 Maemo 的 Nokia N900 上进行的,并且有适用于该平台的软件包。当第一批搭载 MeeGo 系统的手机问世时,Marble 也将在 MeeGo 上运行良好。在首席开发人员 Torsten Rahn 看来,“如果能看到 Marble 预装在更多平台上,例如 Symbian、Android、WinCE 和其他平台,那将非常酷。”

在您的 Nokia N900 上获取 Marble

Marble 移动版本的大多数测试都是在使用 Maemo 的 Nokia N900 智能手机上完成的。软件包的提供使安装变得容易。

要获取 Marble 的移动版本,只需将手机的 Web 浏览器指向 Marble 网站 (edu.kde.org/marble),导航到“Download”部分,然后向下滚动以查找 Maemo 软件包。

单击 Maemo 软件包,下载完成后,Maemo 软件包管理器应该会打开。您只需再点击几下以确认您要添加 Marble 软件目录,然后 Marble 就可以使用了。您还会发现,Marble 软件目录使您可以安装 marble-maps 软件包,该软件包使您可以访问其他地图,例如卫星图像,如果您想尝试与默认的 OpenStreetMap 地图不同的地图。

如果您希望能够在没有 Internet 连接的情况下计算路线,您还应该安装 monav-routing dæmon,它也是 Maemo 软件包管理器中 Marble 软件目录的一部分。

安装 Marble 后,您只需要一个玩它的理由。想象一下,您的雇主在一天早上在家打电话给您,希望您前往几个城市之外的客户办公室。在吃早餐时,启动手机上的 Marble,输入您当前的位置,或让 Marble 使用 GPS 找到它,输入您的目的地,然后等待 Marble 查询一系列路由服务,然后为您呈现一组选项,默认选择最佳选项。如果您想避开早上特别繁忙的道路,您可以选择备选路线之一,或设置一个额外的途经点以避开它。如果您需要在途中从干洗店取回您的西装,您也可以将其添加到路线中。

当您对您的旅程计划感到满意时,只需使用您的家庭无线网络下载整个路线的地图,然后再上路。这样,您就不必在旅途中使用更昂贵的移动网络带宽。然后,您可以将 Marble 切换到导航模式,坐在您的汽车中,观看 Marble 跟踪您沿路线的进度,并提供逐步的导航指示和相关地图。在您旅行时,您会看到 Marble 显示一个进度条,以警告您下一个转弯(它从 1,000 米倒数)。您可以查看图标,该图标会显示您下一个转弯的方向,并且知道如果它是灰色的,则下一个转弯仍然在 1,000 米之外。查看逐步的文本说明以获取进一步指导。您还可以看到到目的地的总距离,并且可以在导航模式和地图模式之间切换,地图模式使您可以手动平移和缩放地图。还要记住,眼睛要看着路。

Put the World in Your Pocket with Marble

图 3. Marble 的自定义导航模式界面仅显示您需要的信息:下一个转弯以及预计何时转弯。

您可能会想为了好玩而玩 Marble 的路由功能,同时累积大量移动数据费用来下载所有地图数据。因此,幸运的是,Marble 允许您在方便的时间下载计划行程的地图数据,例如当您在家中无线网络的范围内时。据开发人员 Dennis Nienhüser 称,“Marble 1.0 允许您沿着路线下载地图数据,如果您只对路线部分感兴趣,这将大大降低下载量。”这可以将数据下载量减少 85-90%。您甚至可以完全离线工作以计算路线。Marble 可以下载一组离线地图,以便在世界各地进行车辆路由。

不仅仅是各部分的总和

当然,移动设备还存在其他导航解决方案。有些,例如 Navit、Mappero、ModRana 和 MoNav,甚至是自由软件。然而,Marble 有一些特殊功能。Marble 使用了一系列现有的算法和 Web 服务,正如 Dennis 解释的那样,Marble 采取的方法是“并行查询可用的算法和 Web 服务,并选择最佳结果”。然而,它不仅仅是获取结果:“许多服务只能计算两个点之间的路线,而 Marble 支持任意数量的途经点——因此,我们需要拆分请求并组合结果,所有这些对于用户来说都是透明的”。Marble 还增强了逐步驾驶指示:“我们自己生成它们,因为这允许我们将它们翻译成 KDE 软件支持的所有语言——没有其他项目拥有如此多数量的支持语言。”

Dennis 解释说,使用多种备选后端还有其他优势:“由于我们并行查询多个路由后端,Marble 对结果进行排名,消除重复项,然后在地图上显示剩余的路线。最佳路线是活动的,但您可以轻松切换到备选路线之一。”

Put the World in Your Pocket with Marble

图 4. Marble 的路线查找器可以帮助您规划长途汽车旅行。

智能手机版 Marble 还受益于其与桌面版 Marble 的密切关系。您可以轻松地在家用电脑上使用大屏幕和快速 Internet 连接来浏览和规划您的旅程,然后将其传输到您的手机。只需将文件从计算机导出到手机,然后在移动版 Marble 中打开即可。实际上,您可以从任何支持标准 KML 格式的应用程序导入路线数据。然而,移动版 Marble 与桌面版 Marble 有很多不同之处。首先,移动版不依赖于 KDE 平台,因此安装不需要任何 KDE 库。这使得应用程序下载只有几兆字节,但这确实意味着 KNewStuff 界面(如果您在桌面上使用 KDE 软件,您可能已经熟悉该界面)不可用于安装附加组件,例如新地图。

使软件易于使用是开发人员的主要目标之一。所需的大部分技术都是独立于 Marble 开发的,但 Marble 将所有技术整合在一起,并通过一致且易于使用的界面呈现给用户。对于 Dennis 来说,主要的挑战是“集成不同的后端并应对它们的优势和局限性,理想情况下是在用户不知情的情况下”。这是关键:“在简单的用户界面背后隐藏强大的功能”。

Marble 路线查找背后的原理

秉承自由软件的最佳传统,Marble 利用了大量现有的路由解决方案,而不是重新实现所有内容。

地址和当前位置使用 Nominatim Web 服务(用于 OpenStreetMap 地址搜索)、GeoIP Web 服务(用于将 IP 地址链接到位置)以及 Marble 附带的本地数据库的组合在全球范围内定位。Nominatim 也用于将位置转换为地址,Gosmore 也是如此,它是可选的运行时依赖项。

Marble 通过利用 OpenRouteService、YOURS Web 服务、Routino 以及上述 Gosmore 和 Monav 作为可选的运行时依赖项来计算路线。

Put the World in Your Pocket with Marble

图 5. 大规模 OpenStreetMap 数据使查找您家乡周围的最佳步行路线也变得容易。

当然,自由软件也关乎回馈,Dennis 对 Marble 的路由指示实现变得对其他项目有用感到兴奋。“它被 OpenStreetMap 上的 YOURS 实现使用,这很有可能在某个时候包含在主要的 OpenStreetMap 网站上。这将意味着 Marble 的一部分以及 KDE 翻译人员的努力将被 OpenStreetMap 项目本身使用——这是 KDE 为之做出贡献的一种很好的方式。”

规划未来

未来还有更多内容。能够规划路线并遵循路线很有用,但是当您跑步或骑自行车时,将手机拿出来,让 Marble 记录您的路线,以便您可以将其上传到您的家用电脑并查看您去了哪里以及走了多远,怎么样?Dennis 认为这是可以实现的:“从技术上讲,我们离实现这一目标只有 20 行代码的距离。目前主要缺少它是因为我们还没有在用户界面中找到一个合适的位置。”

其他未来的增强功能包括离线地址搜索的集成、针对不同交通类型的更大优化——例如,改进自行车和驾驶的不同路线的选择,或选择最快路线与最短路线。语音指示是与专用卫星导航系统相比,智能手机上的 Marble 缺少的主要功能之一,也将使用文本到语音技术添加。

Torsten 还对 OpenGL 的未来使用感到兴奋,Marble 开发人员 Bernhard Beschow 最近对此进行了演示。添加 OpenGL 支持将使地图的渲染从纯软件转移到更好地利用现代智能手机中发现的图形处理器成为可能。Torsten 认为,“OpenGL 对于移动用例在 CPU 和电池使用方面非常重要——我们希望 OpenGL 支持将在 2011 年夏季开始出现。”

当然,实施所有这些功能将需要大量的辛勤工作,而且不仅仅来自开发人员:“我们需要更多人来帮助我们:进行推广、编写文档,当然还有编码。”由于 Marble 严重依赖免费数据源,例如 OpenStreetMap 项目中集成的那些数据源,因此它也受益于政府、个人和公司对免费地理数据库存的贡献。特别是,Torsten 希望看到更多航空影像在自由许可下发布。Dennis 持有类似的观点:“如果任何在 OpenStreetMap 中被普遍标记的数据可以以某种方式自动导入,那将非常有用。如果能有更详细的卫星地图,那就太棒了。”

教育还是导航?

Marble 作为一款类似于 Google Earth 的教育桌面地球仪而闻名。毕竟,它是作为 KDE 教育项目的一部分开发的。然而,Marble 的 1.0 版本是 2010 年早些时候发布的 KDE 软件编译 4.6 的一部分,它使其导航功能和移动界面都趋于成熟,开发人员现在更愿意说 Marble 是让您“探索世界并找到方向”的自由软件。

即使在 Marble 首次开始开发时,Torsten 的目标也很宏伟:制作一个地图小部件,它将“成为地理浏览器,就像 KHTML/WebKit 对于 Web 浏览器一样”。目标始终远不止仅仅生产一个教育地球仪。Torsten 解释说:“我们以教育为重点作为起点,从那时起,我们探索了越来越多的用例,并扩大了我们的范围。”

Marble 也在许多其他应用程序中找到了位置,从科学绘图和天气跟踪应用程序到照片管理、传感器数据可视化,甚至 Linux 发行版安装程序。它也超越了地球,月球和太阳系行星的地图数据可供下载。

Put the World in Your Pocket with Marble

图 6. 如果您对地球感到厌烦,还有很多其他世界可以探索。

对于 Dennis 来说,将 Marble 开发成移动导航系统满足了长期以来的需求:“我希望使用免费导航辅助工具可以追溯到很多年前。我开始研究开源导航解决方案,但当时可用的软件并没有真正具备我想要的功能。”尽管如此,他还是开始为 Marble 做出贡献。“一旦我有了 N900,并听说已经有一个用于 N900 的 Marble 端口,这个想法就差不多形成了。”

那么,Marble 现在是什么,一个教育桌面地球仪还是一个个人导航工具?对于 Dennis 来说,答案很简单:“对我来说,它们并不矛盾——它既是两者,甚至更多。”

Stuart Jarvis 是一位科学家,也是 KDE 营销工作组的成员。由于缺少支持 Marble 的智能手机,他经常在不熟悉的地方迷路。

加载 Disqus 评论