#openlayers
#openlayers
Вопрос:
Всем привет. Я просто пытаюсь выяснить, как использовать мой mbtile directory export. Мои файлы расположены в локальном каталоге «/mytiles». Как я могу настроить это для использования моего пользовательского слоя?
<head>
<script src="http://www.openlayers.org/dev/OpenLayers.js"></script>
<script type="text/javascript">
var map;
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
OpenLayers.ImgPath = "http://js.mapbox.com/theme/dark/";
function init(){
// Customize the values below to change the tileset.
// This information is available on each tileset page.
var layername = 'world-light';
var file_extension = 'png';
// Build the map
var options = {
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
units: "m",
numZoomLevels: 12,
maxResolution: 156543.0339,
maxExtent: new OpenLayers.Bounds(
-20037500,
-20037500,
20037500,
20037500
)
};
map = new OpenLayers.Map('map', options);
// Layer definitions
var layer = new OpenLayers.Layer.TMS(
"MapBox Layer",
[ "http://a.tile.mapbox.com/","http://b.tile.mapbox.com/",
"http://c.tile.mapbox.com/","http://d.tile.mapbox.com/" ],
{ 'layername': layername, 'type': file_extension }
);
// Add layers to the map
map.addLayers([ layer ]);
// Set the map's initial center point
map.setCenter(new OpenLayers.LonLat(0, 0), 1);
}
</script>
</head>
<body onload="init()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
Ответ №1:
Сначала посмотрите часть кода, которая включает http://a.tile.mapbox.com/
. Замените это на имя хоста или локальное имя вашего компьютера — это может быть http://localhost/
или http://mycomputer.com/
и т.д. Затем замените layername именем вашего слоя.
Поскольку здесь используется уровень TMS, вам нужно будет создать каталог с именем 1.0.0
, который будет находиться между этими двумя элементами — вам нужно будет переместить туда свои плитки, если они находятся в каталоге с именем mydirectory
. Результат был бы таким http://localhost/1.0.0/mydirectory
.
Итак, если URL-адрес плитки http://localhost/1.0.0/mydirectory/0/0/0.png
, у вас будет
var layer = new OpenLayers.Layer.TMS(
"MapBox Layer",
[ "http://localhost/" ],
{ 'layername': 'mydirectory', 'type': 'png' }
);
Вы можете проконсультироваться OpenLayers.org TMS для полной документации типа слоя.
Комментарии:
1. У меня возникли проблемы с выполнением этой работы предложенным вами методом. У меня создалось впечатление, что «layername» и «file_extension» были переменными, взятыми ранее из кода. Вы заменили переменную «layername» именем каталога. Я бы хотел, чтобы это работало с данными, обслуживаемыми моим собственным хостом tilestream. Чего мне не хватает?