0
我有這一層與谷歌地圖(注:給getTileUrl函數內generateAPIKey()函數)的OpenLayers層點菜谷歌地圖ImageMapType
var options ={
center:new google.maps.LatLng(somelat,somelon),
zoom:14,
disableDefaultUI:true,
mapTypeId: google.maps.MapTypeId.ROADMAP,
minZoom:11,
maxZoom:16,
};
var map = new google.maps.Map(document.getElementById('map_canvas'),options);
var myLayerOptions = {
getTileUrl: function(coord, zoom) {
return 'http://localhost/mylayer/'+zoom+'/'+coord.x+'/'+coord.y+'.png&apikey='+ generateAPIKey();
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
opacity:1.0
};
var myLayerMapType = new google.maps.ImageMapType(myLayerOptions);
map.overlayMapTypes.insertAt(0, myLayerMapType);
所以我的主要問題是,我有一個動態API密鑰我正在使用的服務,與開放層我有這個:
var mylayer = new OpenLayers.Layer.XYZ(
"mylayer",
[
"http://localhost/mylayer/${z}/${x}/${y}.png&apikey='+ generateAPIKey()
], {
sphericalMercator: true,
wrapDateLine: true,
transitionEffect: "resize",
buffer: 1,
numZoomLevels: 17
}
);
var map = new OpenLayers.Map({
div: "map_canvas",
layers: [mylayer],
controls: [
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.Navigation({
dragPanOptions: {
enableKinetic: true
}
}),
new OpenLayers.Control.Zoom(),
new OpenLayers.Control.Permalink({anchor: true})
],
center: [somelat,somelon],
zoom: 14
});
我明白什麼是錯的,generateAPIKey函數只執行一次。有沒有像Google getTileUrl?