我一直在尝试将Weather Central中的切片覆盖到Bing地图上,但遇到了问题。我能够调用一块瓷砖并将其推到地图上,然而,无论瓷砖有多大,它都会将瓷砖放在地图上的任何地方。我希望能够将它绑定到一个特定的地方,但无法弄清楚如何在7.0。在6.3中,规范看起来很简单:http://msdn.microsoft.com/en-us/library/bb429629.aspx但不是7.0。他们在这里有一个例子:http://www.bingmapsportal.com/isdk/ajaxv7#TileLayers1但是即使使用他们的代码,它仍然会把瓷砖放在任何地方。
到目前为止,这是我的代码: 函数GetMap(){
map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), { credentials: "my creds" });
var tileSource = new Microsoft.Maps.TileSource({ uriConstructor:
'http://datacloud.wxc.com/?type=tile&datatype=forecast&var=Temperature&time=now&bing=023212&vs=0.9&passkey=my_passkey', height: 256, width: 256});
var tilelayer = new Microsoft.Maps.TileLayer({ mercator: tileSource, opacity: .7 });
// Push the tile layer to the map
map.entities.push(tilelayer);
}
我在哪里执行GetMap()onload函数。
由于
答案 0 :(得分:0)
您的请求中似乎要对特定的tile quadkey(023212)进行硬编码 - 您需要将其替换为{quadkey}占位符,以便为每个位置请求相应的tile图像。即:
map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), { credentials: "my creds" });
var tileSource = new Microsoft.Maps.TileSource({ uriConstructor:
'http://datacloud.wxc.com/?type=tile&datatype=forecast&var=Temperature&time=now&bing={quadkey}&vs=0.9&passkey=my_passkey', height: 256, width: 256});
var tilelayer = new Microsoft.Maps.TileLayer({ mercator: tileSource, opacity: .7 });
// Push the tile layer to the map
map.entities.push(tilelayer);
(未经测试,因为我没有密码来访问相关服务)