Es ist möglich, einen Tile-Layer aus einer TileImage-Quelle mit Kacheln in seiner höchsten Auflösung (Zoom) zu laden und diese Kacheln anzuzeigen alle Zoomstufen. Ich habe hochauflösende Bilder, die ich als Ebene über einer anderen Kachelebene wie Bing oder OSM anzeigen möchte.openlayers 3 - TileLayer mit den höchsten Zoomstufen laden, aber in allen Zoomstufen anzeigen
Beispiel Quelle
var source = new ol.source.TileImage({
projection: 'EPSG:900913',
tileGrid: new ol.tilegrid.TileGrid({
projection: 'EPSG:900913',
extent: projectionExtent,
//extent: ol.proj.transformExtent([-83.7893967, 42.851353, -83.7855987, 42.849371], "EPSG:4326", "EPSG:900913"),
resolutions: resolutions,
tileSize:[pictometryImageSize, pictometryImageSize]
}),
tileUrlFunction: function(tileCoord, pixelRatio, projection){
var zoom = tileCoord[0];
console.log(zoom)
if(zoom == 21){
var tileGrid = this.getTileGrid();
var center = ol.proj.transform(ol.extent.getCenter(tileGrid.getTileCoordExtent(tileCoord)),"EPSG:900913", "EPSG:4326");
return 'www.myrealtileurl;
}
//return undefined;
//return 'https://dummy.com';
},
minZoom: 0,
maxZoom: 21
});
Ich sehe dieses Verhalten, wenn ich eine XYZ-Quelle mit der angegebenen URL verwende. Wenn ich dasselbe mit einer TileImage-Quelle versuche, benutze die tileUrlFunction, verschwinden die Kacheln für Zoom 21, wenn ich auf 20 zoome. Ich nehme an, dass dies daran liegt, dass die Funktion für alle Zoomlevels aufgerufen wird 21. –
Kann 'ol.source.XYZ' gut für dich sein? Es erweitert TileImage und hat alle Funktionen einschließlich tileUrlFunction. –
Versuchte das, kein Unterschied. Mir ist aufgefallen, dass wenn ich eine schlechte URL anstelle von undefiniert zurückgebe, die Kacheln für 1 Zoomstufe zurückgehalten werden, bevor sie verschwinden. Wenn ich den auskommentierten Extent verwende, wird die tileUrlFunction nicht mehr bei zoom = 19 aufgerufen. –