为什么Map收费不正确?

fiei3ece  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(394)

我已经从zip文件上传了Map。加载后,如果更改缩放级别,则无法正确加载移动屏幕外部的部分。为什么不起作用?

谢谢!

bq3bfh9z

bq3bfh9z1#

实际答案,如果没有瓷砖在。zip没有瓷砖将显示在主题缩放水平。
但如果你已经有瓷砖显示从较低的缩放水平-是的,你可以尝试!
有一种方法,你可以自己尝试

map.getTileProvider().rescaleCache({some parameters olso is here});

另一个,也许不是那么简单的决定,如下所述。
看起来你用的方法很简单,比如:

XYTileSource tileSource = new XYTileSource("map",
MIN_ZOOM_LEVEL, MAX_ZOOM_LEVEL, 256, ".png", new String[]{});

map.setTileSource(tileSource);

但是,您可以转到更复杂的步骤:

XYTileSource tileSource = new XYTileSource("map", 
MIN_ZOOM_LEVEL, MAX_ZOOM_LEVEL,256, ".png", new String[]{});

SimpleRegisterReceiver simpleRegisterReceiver =
            new SimpleRegisterReceiver(getContext());

MapTileModuleProviderBase[] mapTileModuleProviderBases = 
            new MapTileModuleProviderBase[1];

mapTileModuleProviderBases[0] = 
            new MyMapTileFileArchiveProvider(simpleRegisterReceiver,
                tileSource, mapArchiveFiles);
//mapArchiveFiles - your Array of IArchiveFile
//IArchiveFile iArchiveFile = ArchiveFileFactory.getArchiveFile(file);
//file - your .zip

MapTileProviderArray mapTileProviderArray =
            new MapTileProviderArray(tileSource,
                    simpleRegisterReceiver, mapTileModuleProviderBases);

map.setTileProvider(mapTileProviderArray);

问题-什么是MyMapTileFileLearchiveProvider类?它不仅是MapTileFileLearchiveProvider的子类,而且它们都有共同的父类:

public class MyMapTileFileArchiveProvider extends   MapTileFileStorageProviderBase {}

此时,欢迎您将MapTileFileLearchiveProvider类的粘贴默认实现复制到自己的类中,并查找以下方法:

private synchronized InputStream getInputStream(final MapTile pTile,
        final ITileSource tileSource) {
    for (final IArchiveFile archiveFile : mArchiveFiles) {
        if (archiveFile!=null) {final InputStream in = 
            archiveFile.getInputStream(tileSource, pTile);
            if (in != null) {
                if (Configuration.getInstance().isDebugMode()) {
                    Log.d(IMapView.LOGTAG, "Found tile " + pTile + " in " + archiveFile);
                }

                return in;
            }
        }
    }

    //Good place for your logic (as we call it - crutch)
    //to look for available tiles for subject area on lower zoom level
    //Do not surrender before return null!

    return null;
}

感谢关注:)

相关问题