如何在Bing Maps AJAX Control V7.0中绑定切片图层

时间:2012-05-21 16:37:45

标签: javascript ajax bing-maps

我一直在尝试将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函数。

由于

1 个答案:

答案 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);

(未经测试,因为我没有密码来访问相关服务)