如何获取离线使用的地图?


15

我花了整整一整天的时间寻找适合地图的应用程序(体面=免费,最新,开源)。

我最后选择了TrekBuddy,GoPenSRMaps,Maverick,OruxMaps(在我看来,强调的看上去最好)。

但是,现在还有另一个问题-如何为这些应用准备地图(请帮我一个,希望我会管理其余的应用)以供离线使用?

我想去兜风,在森林中的某个地方拿起电话,然后在地图上查看我的位置。目前,它仅适用于Internet连接,但是如果没有Internet连接,则我会看到一张大比例尺的地图,并且需要放大空白空间或“正在加载”图标。

简而言之- 问题 -如何在手机/应用程序中添加地图,以便在野外(离线)时可以自由放大/缩小地图?

我想避免像依靠缓存那样的技巧-所以“解决方案”以所有可能的比例扫描感兴趣的区域,在这种情况下,获取离线版本的地图是行不通的!

澄清:我不是要寻找其他应用程序(但是,谢谢您的提示/链接),我是在寻找地图(数据)。我想从在线版本(自动下载)到离线版本获取地图。


1
只是为了澄清一下:您想使用离线地图,但是不想预先存储它们?这将如何工作?
伊兹

@Izzy,我提前存储它们,但是通过单个操作,而不是通过手动逐行扫描地图(逐行逐行)只是为了在给定应用中创建缓存。我清楚说明了区别吗?
greenoldman 2012年

osmand地图(是谁告诉我的??)其离线地图fwiw
t0mm13b 2012年

@ t0mm13b,osmand是一个应用程序,而不是地图。我正在寻找将在线地图转换为离线地图的方法。
greenoldman 2012年

Answers:


14

OsmAnd(在Play商店F-droid.org上(版本有时会落后一些))具有以下功能:

  • 完全开源
  • 完全离线(带有某些在线功能的选项)
  • Play商店:仅限16次下载(免费)或费用约6EUR(用于资助)
    (自行构建,或者如果不想支付或使用免费版本,则使用每晚构建)
  • 离线矢量地图:

  • 基于在线图块的地图(用于GMaps / Bing / Yahoo /的数据缓存插件,以及其他25个)
  • OSM集成(错误报告,GPX上传,实时编辑)
  • 语音指导离线导航
  • GPX追踪

这款无限制的应用(在Google Play中)需要支付少量费用(约3欧元)才能为该项目提供资金。一旦您测试了免费版本并喜欢它,请考虑购买它,如果您不只是想测试最新功能,也不要每晚盗用它。当然,您也可以构建自己的(它的FOSS)。

应用内离线地图下载


非常感谢,我已经使用OSM数据做了一些工作,下载了地图,它们是真正的离线地图,今天它保存了我的皮肤(因为GM在更新时删除了“缓存”)。我希望我也会设法支持该应用程序。
greenoldman

当我碰到这个线程时,OsmTracker是OsmAnd的不错的补充-恕我直言,它比OsmAnd的tracker插件要好得多。例如,您可以即时注释轨迹,在骑行/行走完成后,直接将轨迹上传到OSM进行进一步编辑。
greenoldman 2012年

OpenStreetMap也有一个很好的比较Wiki
CE4

确实是个很棒的应用程序
Francesco 2014年

11

自2012年6月27日起,Android版Google Maps已离线。

它们提供了10英里半径的地图缓存,并且由于您可以指向不同的位置并进行缓存,因此实​​际上可以缓存整个世界。

  1. 打开Goog​​le Maps App;
  2. 地图加载后,按菜单按钮,然后选择“设置”;
  3. 在“设置”面板中,选择“实验室”,然后启用“预缓存地图区域”选项。
  4. 返回地图视图,导航到要保存供离线使用的区域;
  5. 加载后,单击它打开详细视图,然后选择选项“ Precache map area”。

要重复缓存所有所需区域的次数,请重复此过程。


链接

有关更详细的分步说明,请参见如何在Android中使用Google Maps的离线功能

脱机谷歌官方支持页面映射在这里


这是一个完美的解决方案...
Android Quesito 2012年

1
确实,这是一个很好的答案,我会保留一段时间,因为我真的很想使用提到的应用程序,而且我担心这样的地图会过期。在这里看到:android.stackexchange.com/questions/13641/...
greenoldman

并非完美的解决方案:请记住,即使您下载了地图,搜索街道地址也将无法进行。(更不用说方向了……)
fdierre 2012年

我的担心是正确的-GM处于处于alpha阶段,或者故意将离线地图视为缓存。无论如何,更新后,我发现(当我已经在赛道上的某个地方时)我的GM地图是空白的,我迷失了。幸运的是,我还安装了真正的离线地图OsmAnd。
greenoldman

@macias就个人而言,我使用Navfree进行离线导航,我的手机上遍布整个世界,不需要任何互联网连接:)
Zuul 2012年

5

使用矢量地图,而不是预先下载或缓存渲染的地图图块。

矢量地图与位图,预渲染的平铺地图

区别在于:缓存Google Maps或任何其他预渲染的地图会在您的设备上存储数十至数千个(位图)图像的图块。即使压缩这些文件,它们也要占用GB的存储空间,尤其是当您要存储整个国家/地区的地图时。

同样,位图图像也就是:图像。映射,尤其是导航应用程序无法解释图像上显示的内容。因此,他们不知道最近的加油站,巴士站,您在划船的河上等。

矢量图形是某些特殊的数据格式。要显示该图像,必须对其进行渲染,这意味着必须首先从原始数据中计算出图像。因此,最大的缺点是使用那些应用程序的应用程序可能会占用更多的CPU。但是,根据矢量地图的质量和包含的特征以及应用程序的质量和特征,您可以查询地图以供汽车,步行,靴子,自行车导航。您可以获得有关最近的餐馆或最近的信箱的信息。

矢量地图的另一个主要优点是与位图数据相比,其尺寸要小得多。尽管预渲染的地图图块图像可能包含一些绿色且变化的像素数据,以表示与覆盖区域成线性比例的林木区域,但同一矢量地图可能只是说“林木区域”并存储边界的坐标。

因此,另一个优点是应用程序决定如何渲染所述林区,因此用户对她喜欢地图的外观有一些影响。您也许可以告诉映射应用程序在夜间切换为红色/蓝色/黑色配色方案,而不必下载第二套位图图块。更改某些设置后,它会即时进行重新计算,不会占用任何额外的内存。

矢量地图中包含的数据限制了存储量和可用功能集。因此,根据您的需求以及您的应用程序的需求,有些人可能希望拥有完整的开放式街道地图数据,而有些人则只需要基本设置即可。

此外,由于矢量地图及其少量存储空间以及在应用程序内部自定义其渲染的能力,因此无需在桌面上使用任何其他应用程序来准备地图。下载文件,然后就可以使用了。从理论上讲,这是可行的,但实际上,必须将OpenStreetMap项目的原始数据文件转换为语法上不同的格式。见下文。

回到howtos和应用程序,我仍然是android的初学者。这是我今天使用的。

Open Street Map是一个免费提供功能齐全的矢量地图的项目。像Wikipedia一样,用户可以改善地图数据,并且这种情况一直在发生。

Mapsforge矢量地图

可以通过mapsforge项目(位于http://download.mapsforge.org/maps/)找到开放式街道地图的预先组装好的矢量地图。

使用原始的开放式街道地图文件

上面的mapsforge文件可以按原样使用,因此是最方便的解决方案。但是,如果您想从原始的Open Street Map文件开始,则可以按照本指南使用Osmosis将原始文件从PBF格式转换为地图格式。一个典型的命令行示例为:

osmosis --read-pbf "hungary.osm.pbf" --mapfile-writer file="hungary.osm.map"

轨迹

作为制图应用程序,您可以使用Locus Free。下载并安装。

下载任何矢量地图文件,并将其存储在手机中的文件夹中/mnt/sdcard/Locus/MapsVector/_themes/。就个人而言,我将地图下载到台式机上,将它们存储在一个文件夹中,该文件夹是我在Linux上通过Samba共享的,或者是在Windows计算机上共享的。然后,我使用手机上的任何android filemanager(带有Samba插件的Ghost CommanderES File Explorer文件管理器)将文件从共享位置复制到Android设备的Locus映射文件夹。

OruxMaps

您也可以使用OruxMaps应用。不幸的是,我还没有找到一种方法来使用这两个应用程序而不必两次存储地图数据。(SD卡不支持符号链接。如果您将数据存储在内存中,则可以使用它们,并且仅将地图存储一次)。您可以再次在Android上使用首选的文件管理器,将*.map文件从上述的Locus文件夹复制到OruxMaps存储其地图文件的文件夹。默认情况下是/mnt/sdcard/oruxmaps/mapfiles

切换到新地图:

  1. 点击右上角的“地图”图标
  2. 点击弹出菜单中的“新地图”
  3. 点击右上角的“离线”
  4. 选择任何* .map地图文件

请注意,在OruxMaps中,您可以浏览子文件夹。因此,如果您愿意,可以使用文件管理器在子文件夹中组织地图。提示:您可以将mapsforge数据完全复制到OruxMaps地图文件夹中,再也不用担心了:-)

还要注意,如果在将新地图文件复制到其数据文件夹时打开OruxMaps应用程序,则可能必须单击“新地图”对话框中的“重置地图源”,以确保它重新读取了新的地图文件夹文件。

这是关于这两个应用程序的主题指南。如前所述,取决于应用程序,您可能会影响矢量地图的呈现方式。这包括颜色设置,以及哪些数据要包含在显示屏中,哪些不包括。


2

感谢您的澄清,我认为您可以从应用程序中获取地图数据时就可以了。在这种情况下,建议您看看Locus Maps,这是一个很好的解决方案。它已经内置了许多地图资源-如果这对您来说还不够,那么Map Tweak插件会提供其他资源。

“轨迹图”上的其他资源包括:

我可以命名更多的资源-如果您愿意,也可以。


谢谢您的回答,您写的所有内容都非常有价值,但是我正在寻找将地图从在线模式转换为离线模式的方法,而不是使用其他地图应用程序-我在寻找数据,而不是程序。
greenoldman 2012年

3
这里的问题是数据是否与什么程序兼容。每个应用或多或少都使用自己的标准。因此,适合一个数据的数据可能无法适合另一个数据-尽管它们可能使用相同的来源,但是在存储材料的方式上可能有所不同。关于轨迹的妙处是您可以创建自己的KMZ,其中包括图像(例如,用于POI等)以及更多其他内容。但是AFAIK也有一些网站或PC程序,可让您为Locus或OruxMaps准备地图数据。对于Locus,在其论坛上提及/描述了其中的一些(我的答案的最后链接在此处)。
伊兹

他们中许多人提到OpenStreetMap,但是我在选项中看到的只是缓存,而不是下载它们。
greenoldman

哪个essentailly是相同的(它们被下载到缓存中)。实际上,在Locus中,这称为“下载”,它们被存储在特殊的数据库中。你甚至可以限制轨迹只使用此下载的地图数据-或者让它检查的区域更新当前你。
的Izzy

0

是的,HERE Maps可以更轻松地用于此目的。只需从Play商店下载该应用,然后您就可以下载世界上任何州或国家/地区的离线地图。


欢迎使用Android爱好者。我注意到您在其他答案中也提到了HERE地图。您只是一个快乐的用户,还是该产品的会员?请注意,该网站要求您提及任何从属关系。
THelper 2014年

不,只是我碰巧回答了相同类型的问题:)
user44746

不,HERE地图未包含所有国家/地区:日本和韩国均缺失。
ccpizza
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.