У меня есть наложение источника плиток 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 кэширует плитки. Даже если параметр времени изменен, плитка не загружается, а берется из локального кэша.
Как это исправить?