android - Android 中使用 .map 文件的离线 map

标签 android dictionary offline-caching

我找到了一些使用 .map 文件查看离线 map 的代码。但我找不到创建 .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 文件,所以请尽快为我提供解决方案。

最佳答案

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

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

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

关于android - Android 中使用 .map 文件的离线 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9703593/

相关文章:

python - 使用嵌套列表迭代字典并在板位置打印

javascript - 附加到 localForage 中的数组

android - 在android中一次运行多个服务

java - Android billing v3 - 无签名

android - 参数类型 'MaterialColor' 无法分配给参数类型 'Paint'

android - 字符串资源新行/n 不可能?

c# - 获取 Dictionary 中包含值 x 的所有键

Python3,订购复杂的字典

javascript - HTML5 缓存 Javascript 文件以供在线和离线使用

jquery - 来自 jQuery Mobile 的离线/在线数据库身份验证/同步