Google maps 将Bing地图瓷砖集成到Google地图API中

Google maps 将Bing地图瓷砖集成到Google地图API中,google-maps,bing-maps,openlayers,openstreetmap,Google Maps,Bing Maps,Openlayers,Openstreetmap,我目前设法集成到谷歌地图API中,如中所述。我想知道我是否也可以将Bing地图瓷砖集成到Google地图API中。可能吗?我找不到关于那个的任何东西 注意:我知道,但现在,我想坚持谷歌地图API 提前感谢。基于您引用的OpenStreetMap示例,我想说这是可能的,但可能是一个相当大的挑战。我强烈建议不要这样做,因为OSM示例使用的是GoogleAPI的第2版,现在已经正式弃用了 但是,如果您想尝试一下,我会调整OSM示例以指向Bing互动程序,并确保tileUrlTemplate属性与Bin

我目前设法集成到谷歌地图API中,如中所述。我想知道我是否也可以将Bing地图瓷砖集成到Google地图API中。可能吗?我找不到关于那个的任何东西

注意:我知道,但现在,我想坚持谷歌地图API


提前感谢。

基于您引用的OpenStreetMap示例,我想说这是可能的,但可能是一个相当大的挑战。我强烈建议不要这样做,因为OSM示例使用的是GoogleAPI的第2版,现在已经正式弃用了

但是,如果您想尝试一下,我会调整OSM示例以指向Bing互动程序,并确保
tileUrlTemplate
属性与Bing存储互动程序的格式相匹配。不幸的是,Bing使用了一段时间,而Google使用了一段时间来存储磁贴并通过URL访问它们。如果你想让这个例子发挥作用,那么理解这些差异是很重要的,所以一定要深入阅读上面的文档链接。此外,MapTiler还有许多不同的平铺格式。我发现这是无价的


就我个人而言,我会使用OpenLayers。因为Bing和Google都使用球形墨卡托,所以在一张地图上添加多个平铺源是一个简单的练习。是一个例子。

基于您引用的OpenStreetMap示例,我想说这是可能的,但可能是一个相当大的挑战。我强烈建议不要这样做,因为OSM示例使用的是GoogleAPI的第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
});
但是,如果您想尝试一下,我会调整OSM示例以指向Bing互动程序,并确保
tileUrlTemplate
属性与Bing存储互动程序的格式相匹配。不幸的是,Bing使用了一段时间,而Google使用了一段时间来存储磁贴并通过URL访问它们。如果你想让这个例子发挥作用,那么理解这些差异是很重要的,所以一定要深入阅读上面的文档链接。此外,MapTiler还有许多不同的平铺格式。我发现这是无价的

就我个人而言,我会使用OpenLayers。因为Bing和Google都使用球形墨卡托,所以在一张地图上添加多个平铺源是一个简单的练习。是一个例子。

函数TileToQuadKey(x,y,zoom){
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
});
var quad=“”; 对于(变量i=zoom;i>0;i--){ var mask=1
函数TileToQuadKey(x,y,zoom){
var quad=“”;
对于(变量i=zoom;i>0;i--){

var mask=1我不直接知道任何产品,但我的猜测并非没有违反某人的许可证。我不直接知道任何产品,但我的猜测并非没有违反某人的许可证。OpenLayers的+1-独立API,可以访问Google、Bing、OSM和Yahoo数据OpenLayers的另一个关键点是使用Bing/Google/OSM通过OL没有违反任何API;在GMaps中使用Bing的tiles会违反任何API。OpenLayers为+1-独立API,可以访问Google、Bing、OSM和Yahoo数据OpenLayers的另一个关键点是支持OpenLayers;通过OL使用Bing/Google/OSM不会违反任何API;在GMaps中使用Bing的tiles会违反任何API。这不会让OpenLayers发挥出最好的效果CDN(因为您只使用t1服务器,而它过去是在四键上平衡变化的)。正如前面的评论中所述,由于违反使用条款而无法完成。正确的,您可以使用'ecn.t'+(Math.floor(Math.random()*3)+1)+“.tiles”,并且仅当您拥有适当的许可证时才执行此操作。它不会充分利用CDN(因为您仅使用t1服务器,而它以前在四键上是平衡的)。并且如前面的评论中所述,由于违反使用条款,无法执行此操作。正确的,您可以使用“ecn.t”+(Math.floor(Math.random()*3)+1) +'.tiles',并且仅当您拥有相应的许可证时才执行此操作