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