我找到了一些使用.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文件,所以请尽快为我提供解决方案。
答案 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)
你可以使用我在许多应用程序中使用它....
答案 2 :(得分:1)
您还可以查看open source map for android。有一个tileource实现,它位于一个位图上,可以用于你的目的。
答案 3 :(得分:1)
所有这些都在mapsforge维基中回答:
http://code.google.com/p/mapsforge/wiki/MapFileWriterOsmosis
如果您需要更多帮助,我建议您使用该项目的邮件列表:
答案 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插件