Клуб API Карт

Подключение тайлов Bing

Пост в архиве.
idm83
12 декабря 2013, 11:14

Добрый день.

Есть ли в API Яндекс карт 2.0 какая-нибудь функция для загрузки карт нестандартной тайловой системы (не x,y,z, как у Яндекс, Google, Yahoo, OSM и др.). Например в Bing maps используется идентификация тайлов с помощью элемента quadkey (http://msdn.microsoft.com/en-us/library/bb259689.aspx).

Тайлы Bing maps загружаются по url: 'http://ecn.t0.tiles.virtualearth.net/tiles/r' + quadkey + '?mkt=ru-RU&g=2000'

Есть ли возможность формирования тайлового слоя Bing maps в API Яндекс карт 2.0? Или эту функцию нужно писать самому?

3 комментария
Конструктор Layer умеет принимать в качестве шаблона тайла произвольную функцию.
var Layer = new ymaps.Layer(function (tileNumber, zoom) {
   /* формируете url */
   return url;
});
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Layer.xml

На всякий случай: ПС Бинга запрещает показывать его тайлы посредством других API.

Так не работает:

 

BingMapLayer = function () {
 return new ymaps.Layer(
  function (tile, zoom) {
   return 'http://ecn.t0.tiles.virtualearth.net/tiles/r' + quadkey + '?mkt=ru-RU&g=2000'
  }, {
   zIndex: 300,
   projection: ymaps.projection.sphericalMercator
  }
 )
};
ymaps.layer.storage.add('my#bingmap', BingMapLayer);   
ymaps.mapType.storage.add('my#bingmap', new ymaps.MapType('Карта Bing', ['my#bingmap']));

 

Потому что API не знает, что такое quadkey. Следовательно, нужно писать свою функцию для этого (не используя function (tile, zoom)) . Всё верно?

Нужно написать расчет quadkey, ага. Использовать tile и zoom конечно можно и нужно.