0

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しかし、コードを使用してもタイルはどこにでも配置されます。

これまでのコードは次のとおりです。 function 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 を実行する場所。

ありがとう

4

1 に答える 1

0

リクエストで特定のタイル クワッドキー (023212) をハードコーディングしているようです。これを {quadkey} プレースホルダーに置き換えて、各場所に適切なタイル イメージをリクエストする必要があります。すなわち:

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

(問題のサービスにアクセスするためのパスキーがないため、テストされていません)

于 2012-05-21T20:37:08.883 に答える