Измерение времени Osmdroid в системе кеширования - PullRequest
1 голос
/ 03 марта 2020

У меня есть наложение источника плиток WMS на моей карте Osmdroid. В переопределенной функции getTileURLString я добавляю измерение времени, чтобы получить плитку с заданным c временем.

@Override
public String getTileURLString(long pMapTileIndex) {
    //https://stackoverflow.com/questions/28436050/how-to-work-osmdroid-with-web-map-service-wms-used-by-the-private-provider
    String baseUrl = getBaseUrl();
    StringBuilder sb = new StringBuilder(baseUrl);
    if (!baseUrl.endsWith("&"))
        sb.append("&");

    sb.append("request=GetMap&width=").append(getTileSizePixels()).append("&height=").append(getTileSizePixels()).append("&version=").append("1.3.0");
    sb.append("&layers=").append("radar-swiss:radarswiss");
    sb.append("&bbox=");

    MapView.WebMercatorBoundingBox bb = new MapView.WebMercatorBoundingBox(MapTileIndex.getX(pMapTileIndex), MapTileIndex.getY(pMapTileIndex), MapTileIndex.getZoom(pMapTileIndex));
    sb.append(bb.getWest()).append(",");
    sb.append(bb.getSouth()).append(",");
    sb.append(bb.getEast()).append(",");
    sb.append(bb.getNorth());

    sb.append("&srs=").append("EPSG:3857");
    sb.append("&format=image/png&transparent=true");
    sb.append("&tiled=true");
    if (currentFrameTiming != null) {
        String mDateTime = getDateTimeFromTimeStamp(currentFrameTiming.getTimeInMillis(), WMSTimeFormat);
        sb.append("&time=").append(mDateTime);
    }


    L.d("rewritten url: " + sb.toString());
    return sb.toString();
}

Все работает нормально, но даже параметр времени, кажется, игнорируется, когда osmdroid кэширует плитки. Даже если параметр времени изменен, плитка не загружается, а берется из локального кэша.

Как это исправить?

...