Страница 1 из 1

OpenLayers и масштабирование

Добавлено: 26 май 2009, 08:03
andmap
Всем привет.
Пытаюсь создать навигацию по карте при помощи OpenLayers. В качестве тестовой карты использую shp-файл из прилагаемых к MapSerwer примеров.
Вот код HTHL :

Код: Выделить всё

<html>
<head>
<title>Карта</title>
   <script   src="ol/OpenLayers.js"></script>
</head>
<body>
<div style="width:100%; height:100%;" id="map"></div>

<script type="text/javascript">
map = new OpenLayers.Map('map');
var bounds = new OpenLayers.Bounds(34.59, 49.58, 34.63, 49.6);

                var graphic = new OpenLayers.Layer.WMS(
        "Тест",
            "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt2.map&layer=veget&layer=street&mode=map",
            {
                    layers: 'veget',
                    layers: 'street',
                    srs: 'EPSG:4326' } );
graphic.setIsBaseLayer(true);
map.addLayers([graphic]);
map.zoomToExtent(bounds);
</script>

</form>
</body>
</html>
В результате получаю кучу маленьких карт. Перетаскивание карты мышкой работает нормально, а вот увеличение и уменьшение масштаба не работает вообще. По-моему происходит уменьшение(увеличение) количества этих маленьких карт. Как добиться правильного масштабирования карты?

Re: OpenLayers и масштабирование

Добавлено: 26 май 2009, 09:12
KolesovDmitry
Попробуйте посмотреть здесь или здесь. Если вопросы еще останутся - задавайте, не стесняйтесь.

Re: OpenLayers и масштабирование

Добавлено: 26 май 2009, 10:34
Konstantin Tokar
andmap писал(а): {
layers: 'veget',
layers: 'street',
srs: 'EPSG:4326' }
К Вашей пробдлеме это отношения не имеет, но обратите внимание. Что-то у меня сомнение, что этот фрагмент делает то, что Вы хотели. layers зачем два раза ?

Re: OpenLayers и масштабирование

Добавлено: 26 май 2009, 19:02
andmap
Konstantin Tokar писал(а):
andmap писал(а): layers зачем два раза ?
Затем что это два разных слоя. Один (veget) показывает деревья, траву и болота, а второй (street) улицы
и я хочу использовать на карте оба

Re: OpenLayers и масштабирование

Добавлено: 26 май 2009, 22:57
Konstantin Tokar
andmap писал(а):
Konstantin Tokar писал(а):
andmap писал(а): layers зачем два раза ?
Затем что это два разных слоя. Один (veget) показывает деревья, траву и болота, а второй (street) улицы
и я хочу использовать на карте оба
А JavaScript знает об этом? Ассоциативные массивы двух ключей не содержат.

Re: OpenLayers и масштабирование

Добавлено: 27 май 2009, 00:14
di@mond
andmap писал(а):
Konstantin Tokar писал(а):
andmap писал(а): layers зачем два раза ?
Затем что это два разных слоя. Один (veget) показывает деревья, траву и болота, а второй (street) улицы
и я хочу использовать на карте оба

Чтобы использовать оба эти слоя, вы либо отдельно каждый добавьте к карте (т.е. будет

Код: Выделить всё

var veget=new OpenLayers.WMS( "Тест",
            "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt2.map&layer=veget&layer=street&mode=map",
            {      layers: 'veget',
                   srs: 'EPSG:4326' } );
 var street= ......

map.addLayers([veget,street])
И не забудьте сделать один из них базовым слоем!
Либо создаете один слой, но вот так

Код: Выделить всё

var graphic = new OpenLayers.Layer.WMS( "Тест",
            "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt2.map&layer=veget&layer=street&mode=map",
            {       layers: ['veget','street'],
                    srs: 'EPSG:4326' } );
graphic.setIsBaseLayer(true);
map.addLayer(graphic);