1

私は現在、この例で説明されているように、OpenStreetMapをGoogleMapsAPIに統合することに成功しました。BingMapsタイルをGoogleMapsAPIに統合することもできるのでしょうか。出来ますか?それについては何も見つかりませんでした。

注: mapstractionについては知っていますが、今のところ、GoogleMapsAPIを使い続けたいと思います。

前もって感謝します。

4

2 に答える 2

7

あなたが引用したOpenStreetMapの例に基づいて、それは可能だと思いますが、それはかなりの挑戦になる可能性があります。OSMの例ではバージョン2のGoogleAPIが使用されており、現在は正式に非推奨になっているため、これには強くお勧めします。

ただし、試してみたい場合は、OSMの例をBingタイルを指すように調整し、tileUrlTemplateプロパティがタイルを格納するためのBingの形式と一致することを確認します。残念ながら、Bingはクワッドツリー形式を使用しています が、Googleはタイルを保存し、URLを介してタイルにアクセスするために座標ベースの形式を使用しています。例を機能させる場合は、違いを理解することが重要になるため、上記のドキュメントリンクを必ず調べてください。また、MapTilerには、さまざまなタイル形式の素晴らしい視覚化があります。これは非常に貴重だと思いました。

個人的には、OpenLayersを使用します。 BingとGoogleはどちらも球形のメルカトル図法を使用しているため、1つのマップに複数のタイルソースを追加するのは簡単な作業です。 これが例です。

于 2010-06-24T21:33:52.340 に答える
2
function TileToQuadKey ( x, y, zoom){ 
  var quad = "";
  for (var i = zoom; i > 0; i--) {
    var mask = 1 << (i - 1); 
    var cell = 0; 
    if ((x & mask) != 0) cell++; 
    if ((y & mask) != 0) cell += 2; 
    quad += cell; 
  }
  return quad; 
}

var bingMapType = new google.maps.ImageMapType({
  name: "Bing",
  getTileUrl: function(coord, zoom) {
    // this returns aerial photography
    return "http://ecn.t1.tiles.virtualearth.net/tiles/a" +
      TileToQuadKey(coord.x, coord.y,  zoom) + ".jpeg?g=1173&n=z";
      // i dont know what g=1173 means
  },
  tileSize: new google.maps.Size(256, 256),
  maxZoom: 21
});
于 2013-02-26T14:38:30.750 に答える