-1
TileImageソースから特定の範囲のタイルを最高解像度(ズーム)でロードし、すべてのズームレベル。 BingやOSMなどの別のタイルレイヤーの上にレイヤーとして表示したい高解像度の画像があります。openlayers 3 - 最高のズームレベルタイルを持つTileLayerをロードしますが、すべてのズームレベルで表示します
例ソース
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
})。
提供されたURLを使用してXYZソースを使用すると、この現象が発生します。これは、ArcGISのタイルレイヤーがエクステントとズームでロックされている例です。 tileUrlFunctionを使ってTileImageソースで同じことをしようとすると、20にズームするとタイル21が消えます。これは、すべてのズームレベルに対して関数が呼び出され、 21. –
'ol.source.XYZ'はあなたには良いでしょうか?これはTileImageを拡張し、tileUrlFunctionを含むすべての関数を持ちます。 –
それは、違いはありません試してみました。私は未定義の代わりに悪いurlを返すと、タイルは消える前に1つのズームレベルのために後方に保持されていることに気付きました。コメントアウトされた範囲を使用すると、tileUrlFunctionはzoom = 19で呼び出されなくなります。 –