打开街道地图工作离线android

时间:2013-02-10 04:26:12

标签: android android-maps osmdroid openstreetmap android-maps-v2

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

3 个答案:

答案 0 :(得分:6)

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

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

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

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

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

希望它会有所帮助!

答案 1 :(得分:4)

我发现这个tutorial会逐步解释您需要的所有内容。

简而言之:

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

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

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

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

<org.osmdroid.views.MapView
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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;
}

希望它能帮助;)

答案 2 :(得分:0)

现在阻止MOBAC(Mobile Atlas Creator)使用OSM 您可以看到here