javascript - openlayers 3 - Load TileLayer with highest zoom level tiles but display at all zoom levels -
is possible load tile layer tileimage source tiles in highest resolution (zoom) specific extent , have these tiles show zoom levels. have high resolution imagery wish show layer above tile layer such bing or osm.
example source
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
});
i hope understand correctly. first, can restrict layer extent extent
. second, can lock zoom maxzoom
, minzoom
properties. openlayers resize tiles on own. here example, arcgis tile layer locked in extent , zoom:
var map = new ol.map({ target: 'map', layers: [ new ol.layer.tile({ source: new ol.source.osm() }), new ol.layer.tile({ extent: ol.proj.transformextent([-110, 42, -100, 48], "epsg:4326", "epsg:3857"), source: new ol.source.xyz({ maxzoom: 6, minzoom: 6, url: 'http://server.arcgisonline.com/arcgis/rest/services/' + 'world_topo_map/mapserver/tile/{z}/{y}/{x}' }) }) ], view: new ol.view({ center: ol.proj.fromlonlat([-105.89, 45.09]), zoom: 6 }) });
Comments
Post a Comment