Вопрос

В настоящее время мне удалось интегрировать OpenStreetMap в Google Maps API, как это описано в этот пример. Отказ Интересно, могу ли я также интегрировать карты Bing плитка в Google Maps API. Является ли это возможным? Я ничего не мог найти в этом.

Примечание: я знаю о картстракция Но сейчас я хотел бы придерживаться API Google Maps API.

Заранее спасибо.

Это было полезно?

Решение

Исходя из примера OpenStreetMap, который вы указали, я бы сказал, что это возможно Но это может быть довольно сложной задачей. Я настоятельно рекомендовал бы против этого, так как в примере OSM используется версия 2 Google API, и теперь он официально устарел.

Но если вы хотите попробовать, я бы адаптировал пример OSM, чтобы указать на плитку Bing и убедиться, что tileUrlTemplate Собственность соответствует формату Бинга для хранения плиток. К сожалению, Bing использует Формат Quad Tree Пока Google использует координатный формат для хранения плиток и доступа к ним через URL. Будет важно понимать различия, если вы собираетесь заставить пример работать, поэтому обязательно копаться в ссылках на документацию выше. Кроме того, у Maptiler есть Фантастическая визуализация из разных форматов плитки там. Я нашел это бесценным.

Лично я бы использовал OpenLayers. Поскольку 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
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top