私は現在、この例で説明されているように、OpenStreetMapをGoogleMapsAPIに統合することに成功しました。BingMapsタイルをGoogleMapsAPIに統合することもできるのでしょうか。出来ますか?それについては何も見つかりませんでした。
注: mapstractionについては知っていますが、今のところ、GoogleMapsAPIを使い続けたいと思います。
前もって感謝します。
私は現在、この例で説明されているように、OpenStreetMapをGoogleMapsAPIに統合することに成功しました。BingMapsタイルをGoogleMapsAPIに統合することもできるのでしょうか。出来ますか?それについては何も見つかりませんでした。
注: mapstractionについては知っていますが、今のところ、GoogleMapsAPIを使い続けたいと思います。
前もって感謝します。
あなたが引用したOpenStreetMapの例に基づいて、それは可能だと思いますが、それはかなりの挑戦になる可能性があります。OSMの例ではバージョン2のGoogleAPIが使用されており、現在は正式に非推奨になっているため、これには強くお勧めします。
ただし、試してみたい場合は、OSMの例をBingタイルを指すように調整し、tileUrlTemplate
プロパティがタイルを格納するためのBingの形式と一致することを確認します。残念ながら、Bingはクワッドツリー形式を使用しています が、Googleはタイルを保存し、URLを介してタイルにアクセスするために座標ベースの形式を使用しています。例を機能させる場合は、違いを理解することが重要になるため、上記のドキュメントリンクを必ず調べてください。また、MapTilerには、さまざまなタイル形式の素晴らしい視覚化があります。これは非常に貴重だと思いました。
個人的には、OpenLayersを使用します。 BingとGoogleはどちらも球形のメルカトル図法を使用しているため、1つのマップに複数のタイルソースを追加するのは簡単な作業です。 これが例です。
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
});