将Bing Maps Tiles集成到Google Map API中
-
29-09-2019 - |
题
我目前设法集成 OpenStreetMap 如在Google地图API中所述 这个示例. 。我想知道我是否也可以整合bing地图 瓷砖 进入Google Maps API。是否可以?我什么都找不到。
注意:我知道 mapstraction 但是目前,我想坚持使用Google Maps API。
提前致谢。
解决方案
根据您引用的OpenStreetMap示例,我会说是 可能的 但这可能是一个挑战。由于OSM示例使用Google API版本2,因此我会强烈建议您反对它,并且现在正式贬低了。
但是,如果您想尝试一下 tileUrlTemplate
属性与Bing的存储格式相匹配。不幸的是,Bing使用了 四树格式 而Google使用 基于坐标的格式 用于存储瓷砖并通过URL访问它们。重要的是要了解差异,如果您要使示例起作用,请务必研究上面的文档链接。另外,Maptiler有一个 奇妙的可视化 那里的不同瓷砖格式。我发现这个无价之宝。
就个人而言,我会使用开放式层。 由于Bing和Google都使用球形Mercator,因此在单个地图中添加多个图块源是一个微不足道的练习。 这里 是一个例子。
其他提示
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
});
不隶属于 StackOverflow