Android中的离线地图使用.map文件

时间:2012-03-14 14:10:59

标签: android dictionary offline-caching

我找到了一些使用.map文件查看离线地图的代码。但我找不到创建.map文件或为特定城市或州生成一个文件的方法。 任何人都可以告诉我如何为特定的城市或州创建或生成.map文件? 我使用.map文件显示离线地图的代码如下:

public class HelloMapView extends MapActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MapView mapView = new MapView(this);
        mapView.setClickable(true);
        mapView.setBuiltInZoomControls(true);
        mapView.setMapFile(new File("/sdcard/path/to/mapfile.map"));
        setContentView(mapView);
    }
}

我无法创建.map文件,所以请尽快为我提供解决方案。

7 个答案:

答案 0 :(得分:3)

首先,您需要获取特定城市,州或国家/地区的OpenStreetMap数据。您可以在此处找到区域提取的链接:http://wiki.openstreetmap.org/wiki/Planet.osm#Country_and_area_extracts。我建议在PBF中获取数据,因为它通常是较小的下载。如果您需要较小或特定的区域(未提供),您可以在转换过程中使用渗透切割它(参见Osmosis wiki中的边界框/多边形)。

接下来,您需要将该数据转换为mapsforge地图格式。它是通过Osmosis(http://wiki.openstreetmap.org/wiki/Osmosis#Latest_Stable_Version)和mapsforge map-writer插件(http://code.google.com/p/mapsforge/downloads/list)完成的。插件安装说明如下:http://code.google.com/p/mapsforge/wiki/GettingStartedMapWriter。简而言之 - 提取Osmosis,在渗透目录内创建新的目录插件并复制map-writer.jar。现在,从命令行执行类似这样的事情:

$ bin/osmosis --rb file=../data/berlin.osm.pbf --mapfile-writer file=/tmp/berlin.map

答案 1 :(得分:1)

你可以使用我在许多应用程序中使用它....

http://leaflet.cloudmade.com/

答案 2 :(得分:1)

您还可以查看open source map for android。有一个tileource实现,它位于一个位图上,可以用于你的目的。

答案 3 :(得分:1)

所有这些都在mapsforge维基中回答:

http://code.google.com/p/mapsforge/wiki/MapFileWriterOsmosis

如果您需要更多帮助,我建议您使用该项目的邮件列表:

http://groups.google.com/group/mapsforge-dev?pli=1

答案 4 :(得分:1)

您可以找到mapsforge

使用的地图列表here

答案 5 :(得分:0)

我想你想制作一个Android应用程序来显示离线指定地图,这是一个很好的教程。 http://www.haakseth.com/?p=30

您要做的第一件事是使用Mobile Atlas Creator(MOBAC)应用程序生成您想要显示的城市地图。然后,您可以将地图渲染到地图视图中。

答案 6 :(得分:0)

转到http://download.mapsforge.org/maps/获取.map文件

并转到http://download.geofabrik.de/index.html获取提供其他功能的.osm / pbf文件(离线反向地理编码,地点,建筑物,名称,街道等等)。 使用mapsforge / graphhopper插件