Страница 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();