【问题标题】:Loading Tile Source加载平铺源
【发布时间】:2013-10-28 12:00:40
【问题描述】:

我正在尝试加载磁贴源,但由于某种原因它不起作用。 这是我的代码:

    final IRegisterReceiver registerReceiver = new SimpleRegisterReceiver(this);

    // Create a custom tile source
    final ITileSource tileSource = TileSourceFactory.MAPNIK;

    // Create a file cache modular provider
    final TileWriter tileWriter = new TileWriter();
    final MapTileFilesystemProvider fileSystemProvider = new MapTileFilesystemProvider(registerReceiver, tileSource);

    File myMapTileSource = new File(mapsDirectory.getPath()+File.separator+"Lisboa.gemf");

    // Create an archive file modular tile provider
    IArchiveFile[] archives = { ArchiveFileFactory.getArchiveFile(myMapTileSource) };
    MapTileFileArchiveProvider fileArchiveProvider = new MapTileFileArchiveProvider(registerReceiver, tileSource, archives);

    // Create a download modular tile provider
    final NetworkAvailabliltyCheck networkAvailablilityCheck = new NetworkAvailabliltyCheck(this);
    final MapTileDownloader downloaderProvider = new MapTileDownloader(tileSource, tileWriter, networkAvailablilityCheck);

    // Create a custom tile provider array with the custom tile source and the custom tile providers
    final MapTileProviderArray tileProviderArray = new MapTileProviderArray(tileSource, registerReceiver, new MapTileModuleProviderBase[] { fileSystemProvider, fileArchiveProvider, downloaderProvider });

    // Create the mapview with the custom tile provider array
    mMapView = new MapView(this, 256, new DefaultResourceProxyImpl(this), tileProviderArray);
    mMapView.setUseDataConnection(false);

由于某种原因,这可行,我可以离线查看里斯本地图。

如果我换线

File myMapTileSource = new File(mapsDirectory.getPath()+File.separator+"Lisboa.gemf");

File myMapTileSource = new File(mapsDirectory.getPath()+File.separator+"Lissabon.osm");

它不起作用。它从 MapTileFileArchiveProvider 返回错误“加载图块时出错”。

gemf 文件是在 MOBAC 中创建的。 osm文件是从here下载的。

谁能解释一下为什么它不起作用?

【问题讨论】:

    标签: android openstreetmap tile osmdroid


    【解决方案1】:

    如果您查看ArchiveFileFactory,您会发现支持 GEMF 文件,但不支持 .osm 文件。我不确定 .osm 文件是什么格式(也许它是受支持的格式之一,只需要重命名?)

    【讨论】:

    • 你是对的。我认为 gemf 文件是一个 tile 源。我可能对我读到的内容有一个不好的解释。 osm 是一个元数据格式的 xml 文件。 source 因此,如果我想使用 osmdroid 加载自定义地图,我必须从“zip”、“sqlite”、“mbtiles”或“gemf”获取图块源,对吗?你会推荐哪一个?
    • 我相信我听说过 zip 文件变大时会出现速度问题,所以我会避免这种情况。我用 gemf 取得了很好的效果。 Mbtiles 以 sqlite 为核心,我也听说了这方面的好消息!
    • 可以在MOBAC中创建mbtile吗?
    • 抱歉 - 我对 MOBAC 没有任何经验。
    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多