Страница 1 из 1
Создание карты из тайлов
Добавлено: 26 ноя 2012, 06:46
Malig
Доброго дня!
У меня есть некоторый слой, нарезанный по масштабам на тайлы. Этот слой я использовал для подключения на яндекс api.
Как максимально просто подключить эти тайлы отдельным слоем в OpenLayers?. Возможно с использованием MapServer.
Re: Создание карты из тайлов
Добавлено: 26 ноя 2012, 09:58
Denis Rykov
В общем случае - поднять что-то типа
twms или
MapProxy и опубликовать ваши данные, например по TMS или WMS. Либо, если тайлы в схеме XYZ, то можно сразу подключить в OpenLayers.
Re: Создание карты из тайлов
Добавлено: 26 ноя 2012, 10:06
Malig
Тайлы в схеме XYZ, но резалось все под яндекс api.
Пытаюсь подключить так:
Код: Выделить всё
var lay = new OpenLayers.Layer.OSM("Local Tiles", "tile/${z}/tile-${x}-${y}.png", {alpha: true, isBaseLayer: false});
вижу картинки, но проекции не совпадают. И там где тайлов нет, заливается все красным.
Re: Создание карты из тайлов
Добавлено: 27 ноя 2012, 05:29
Malig
Так как, все таки, сразу подключить в OpenLayers?
Re: Создание карты из тайлов
Добавлено: 24 янв 2013, 16:05
gen123
Malig писал(а):Так как, все таки, сразу подключить в OpenLayers?
Присоединяюсь к вопросу. Интересует также где можно узнать про структуру каталогов для TMS?
Re: Создание карты из тайлов
Добавлено: 01 фев 2013, 13:34
Malig
Код: Выделить всё
new OpenLayers.Layer.TMS("слой", "http://map.ru/vect/",
{layername: "tiles",
isBaseLayer:false,
type: "png",
'getURL': get_my_url,
visibility: true})
function get_my_url (bounds) {
var res = this.map.getResolution();
var x = Math.round ((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
var y = Math.round ((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
var z = this.map.getZoom();
var PyramidFolderName = makePyramidFolderName(x, y)
var path = z + "/"+PyramidFolderName+"tile-" + x + "-" + y + "." + this.type;
var url = this.url;
if (url instanceof Array) {
url = this.selectUrl(path, url);
}
return url + path;
}
Я тогда сделал как-то так....Вникай.
У меня тьма тайлов была, потому еще раскладывались по папкам кучками. Путь к папкам составлялся в PyramidFolderName();