Клуб API Карт

Найдено на тему «OpenStreetMaps»:
Наложение тайлов из разных серверов
Денис С.
11 декабря 2013, 19:55

Добрый день.

Стоит задача склеить в одном слое тайлы (одна подложка), хранящиеся на разных серверах (например Яндекс + OSM). Подскажите, как это можно сделать, используя API Яндекс карт 2.0.

Для добавления слоя OSM использую следующий код:


OSMLayer = function () {
 return new ymaps.Layer(
  function (tile, zoom) {
   return 'http://a.tile.openstreetmap.org/'+zoom+'/'+tile[0]+'/'+tile[1]+'.png';
  }, {
   zIndex: 296,
   projection: ymaps.projection.sphericalMercator
  }
 )
};
ymaps.layer.storage.add('my#osm', OSMLayer);   
ymaps.mapType.storage.add('my#osm', new ymaps.MapType('Карта OpenStreetMap', ['my#osm']));

 

Как на слой OSM наложить тайлы Яндекса (или наоборот)?

2 комментария
слои,тайлы,API 2.0,OpenStreetMaps
Использования инструмента "Определение координат"
Удалённый пользователь
4 июня 2013, 19:29

Здравствуйте,

такой вопрос:

Целесообразно ли пользоваться инструментом "Определение координат" (http://api.yandex.ru/maps/tools/getlonglat/) для определения координат объектов с последующим отображением их на интерактивные карте с основой OpenStreetMap? Как я понимаю Яндекс.Карты используют эллиптическую проекцию Меркатора, тогда как OSM -  сферическую. Получается, что маркеры на моей интерактивной карте будут немного смещены (относительно того размещения, которое я вижу на Яндекс Картах) .Я прав? Если да, подскажите пожалуйста варианты как можно использовать интсрумент  "Определение координат" для определения координат с последующим отображением их на карте OSM (то есть на карте со сферической проекцией Меркатора)


С уважением,

Василий

3 комментария
координаты,OpenStreetMaps
Как для нового Layer задать максимальный зум
Михаил И.
29 января 2013, 20:47

Сабж. 

 

Я добавил опен стрит мап.

 

var layerOSM = function() {
return new ym.Layer("http://otile%d.mqcdn.com/tiles/1.0.0/osm/%z/%x/%y.png", {
projection: ym.projection.sphericalMercator
});
};
var osMap = new ym.MapType("OSMap", [layerOSM]);
ym.mapType.storage.add("openstreet#map", osMap);

 

как задать максимальный зум для этого слоя? 

 

При этом чтобы автоматом выставлять на максимальный зум если на просшлом слое человек был на зуме больше максимального для OSM

5 комментариев
масштаб,API 2.0,OpenStreetMaps
Гугл/OSM тайлы и поправки координат в Я.Картах
maksimtakoi
14 июня 2011, 21:30

Перерыв весь клуб, весь поиск, решения проблемы "Гугл/OSM тайлы в Я.Картах и вычисление корректировки координат" так и не найден. Все суют ответы на топик http://clubs.ya.ru/mapsapi/replies.xml?item_no=7125, и на http://clubs.ya.ru/mapsapi/replies.xml?item_no=3467, http://clubs.ya.ru/mapsapi/replies.xml?item_no=11493 --- но красивого решения в одну-две-три строки нет.

При подключении OpenStreetMaps через YMaps.TileDataSource("http://tile.openstreetmap.org", false, true) расхождения на z=14 идут порядка "-13" тайлов, на z=13 порядка "-6" - это те коэф. которые надо вводить для вычисления return this.getTileUrlTemplate() + "/" + zoom + "/" + (x) +"/"+ (y) + ".png";

Кто подскажет, как вычислять смещение по Y для Гугл/OSM тайлов?

4 комментария
Google,координаты,API 1.x,OpenStreetMaps
Добавление слоя не-Яндекс-карт
Nikitian
19 октября 2009, 16:00

Делаю на сайте отображение информации на двух картах по выбору пользователя. К гуломапам прикрутил OpenStreetMap как ещё один слой так:

function OSMGetTileUrl(a,b)
{
var z = b;
var f = "http://tile.openstreetmap.org/"+z+"/"+a.x+"/"+a.y+".png";
return f;
}

/*OSM start*/
        var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0, "");
        var copyrightCollection = new GCopyrightCollection("OSM");
        copyrightCollection.addCopyright(copyright);
        var tilelayers = new Array(
        tilelayers[0] = new GTileLayer(copyrightCollection, 1, 18,{opacity: 1}
        tilelayers[0].getTileUrl = OSMGetTileUrl;
        var custommap = new GMapType(tilelayers, new GMercatorProjection(19), "OSM", {errorMessage:"Isle of Wight only .. more coming"}
        map.addMapType(custommap);
        /*OSM end*/

А вот к Яндекс-картам никак не получается подобным же макаром добавить слой %) Это вообще возможно?

6 комментариев
слои,OpenStreetMaps