我在OpenLayers地图中使用Stamen的“色调较薄”磁贴,如下所示:
var bkgLayer = new ol.layer.Tile({
source: new ol.source.Stamen({
layer: "toner-lite"
})
});
var map = new ol.Map({
controls: [zoomInCtrl, scaleLineCtrl, fullScreenCtrl],
renderer: 'webgl',
target: 'mapViewport'
});
map.addLayer(bkgLayer);
网站在HTTP下运行时,一切正常。但是,如果我在HTTPS下运行站点,则尝试从URL之类的图块中检索图块失败。
https://c.tile.stamen.com/toner-lite/5/24/14.png
我在Stamen's website上找到了以下信息
如果您想在需要HTTPS的网站上显示这些地图图块,请使用我们的图块SSL端点,将http://tile.stamen.com替换为https://stamen-tiles.a.ssl.fastly.net。也可以使用多个子域:https://stamen-tiles- {S} .a.ssl.fastly.net
可以从https://stamen-maps.a.ssl.fastly.net/js/tile.stamen.js加载JavaScript。
确实,如果我尝试使用诸如
https://stamen-tiles.a.ssl.fastly.net/toner-lite/5/24/14.png
在浏览器中,磁贴已成功检索。但是,如何更改我的JavaScript代码,以便OpenLayers在检索雄蕊瓷砖时使用该端点?
最佳答案
在docs中,使用url
参数。
默认值可以在source code中找到,自定义值应相应设置格式。
var url = goog.isDef(options.url) ? options.url :
protocol + '//{a-d}.tile.stamen.com/' + options.layer + '/{z}/{x}/{y}.' +
layerConfig.extension;
这应该为您工作:
new ol.source.Stamen({
layer: "toner-lite",
url: "https://stamen-tiles-{a-d}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png"
})