打开街道地图离线工作android

Posted

技术标签:

【中文标题】打开街道地图离线工作android【英文标题】:Open Street Map working offline android 【发布时间】:2013-01-25 12:36:43 【问题描述】:

我是 Open Street Map 的新手。我做了一些研究,发现我们可以下载地图并将其存储到一个文件夹中。但我没有找到任何提供离线开放街道地图的教程或示例。有人可以提供分步教程,请提供实现离线开放街道地图的指南。我正在关注此示例 http://android-coding.blogspot.com/2012/06/example-of-implementing-openstreetmap.html 但现在我想在没有连接时使其可用。

【问题讨论】:

【参考方案1】:

就像您在教程中提到的那样,您可以使用 osmdroid 库: https://code.google.com/p/osmdroid/

这里有一个很好的解释 osmdroid 如何使用离线地图: https://***.com/a/8286276/891479

在您的应用中使用 MapTileProviderBasic。 这里有一些例子: http://www.androidadb.com/class/ma/MapTileProviderBasic.html

要生成 osmdroid 格式的离线地图,请使用 Mobile Atlas Creator: http://mobac.sourceforge.net/

您可以选择地图的来源和输出格式。生成后,将您的地图集以 zip 格式放入“/osmdroid/map”目录。

希望对您有所帮助!

【讨论】:

嗨@resus,...我刚刚发现Google 地球/地图选项已从Mobile Atlas Creator 功能中删除?如果是这样的话...如何创建支持 osmdroid 读取的我所在区域的地图? Google 地图可能由于许可原因不存在,您可以使用 openstreet 地图源获取离线地图。【参考方案2】:

我找到了这个tutorial,它一步一步解释了你需要的所有东西。

简而言之:

1- 您必须使用Mobile Atlas Creator 下载地图图块。我已经解释了步骤HERE

2- 将生成的 zip 文件移动到您设备上的 /mnt/sdcard/osmdroid/。

3- 将osmdroid-android-XXX.jar 和slf4j-android-1.5.8.jar 添加到项目的构建路径中

4- 添加 MapView:您可以将 MapView 添加到您的 xml 布局中

<org.osmdroid.views.MapView
    android:id="@+id/mapview"
    android:layout_
    android:layout_
    tilesource="Mapnik"
    />

或者以编程方式创建一个 MapView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

    mResourceProxy = new ResourceProxyImpl(inflater.getContext().getApplicationContext());
    mMapView = new MapView(inflater.getContext(), 256, mResourceProxy);
    return mMapView;

希望对你有帮助;)

【讨论】:

Mobile Atlas Creator 现已被阻止。现在做什么【参考方案3】:

MOBAC(Mobile Atlas Creator)现在因使用 OSM 而被阻止 可以看here

【讨论】:

以上是关于打开街道地图离线工作android的主要内容,如果未能解决你的问题,请参考以下文章

百度地图开发_离线

在 Eclipse 中的 android 应用程序中导入打开的街道地图

javascript调用百度地图通过ip定位 手机浏览器打开浏览不显示街道地址

如何从地图上获取街道地址、邮政编码、国家、州?

下载离线地图已后还用开流量吗gps己打开了

获取 Tilemill 以显示带有英文标题的 openstreetmap 地图