使用矢量地图,而不是预先下载或缓存渲染的地图图块。
矢量地图与位图,预渲染的平铺地图
区别在于:缓存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 Commander,ES File Explorer文件管理器)将文件从共享位置复制到Android设备的Locus映射文件夹。
OruxMaps
您也可以使用OruxMaps应用。不幸的是,我还没有找到一种方法来使用这两个应用程序而不必两次存储地图数据。(SD卡不支持符号链接。如果您将数据存储在内存中,则可以使用它们,并且仅将地图存储一次)。您可以再次在Android上使用首选的文件管理器,将*.map
文件从上述的Locus文件夹复制到OruxMaps存储其地图文件的文件夹。默认情况下是/mnt/sdcard/oruxmaps/mapfiles
切换到新地图:
- 点击右上角的“地图”图标
- 点击弹出菜单中的“新地图”
- 点击右上角的“离线”
- 选择任何* .map地图文件
请注意,在OruxMaps中,您可以浏览子文件夹。因此,如果您愿意,可以使用文件管理器在子文件夹中组织地图。提示:您可以将mapsforge数据完全复制到OruxMaps地图文件夹中,再也不用担心了:-)
还要注意,如果在将新地图文件复制到其数据文件夹时打开OruxMaps应用程序,则可能必须单击“新地图”对话框中的“重置地图源”,以确保它重新读取了新的地图文件夹文件。
这是关于这两个应用程序的主题指南。如前所述,取决于应用程序,您可能会影响矢量地图的呈现方式。这包括颜色设置,以及哪些数据要包含在显示屏中,哪些不包括。