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

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
andmap
Новоприбывший
Сообщения: 5
Зарегистрирован: 25 май 2009, 18:57
Репутация: 0

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

Сообщение andmap » 26 май 2009, 08:03

Всем привет.
Пытаюсь создать навигацию по карте при помощи 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>
В результате получаю кучу маленьких карт. Перетаскивание карты мышкой работает нормально, а вот увеличение и уменьшение масштаба не работает вообще. По-моему происходит уменьшение(увеличение) количества этих маленьких карт. Как добиться правильного масштабирования карты?

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

Сообщение KolesovDmitry » 26 май 2009, 09:12

Попробуйте посмотреть здесь или здесь. Если вопросы еще останутся - задавайте, не стесняйтесь.

Konstantin Tokar
Активный участник
Сообщения: 178
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 1
Откуда: Москва

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

Сообщение Konstantin Tokar » 26 май 2009, 10:34

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

andmap
Новоприбывший
Сообщения: 5
Зарегистрирован: 25 май 2009, 18:57
Репутация: 0

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

Сообщение andmap » 26 май 2009, 19:02

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

Konstantin Tokar
Активный участник
Сообщения: 178
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 1
Откуда: Москва

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

Сообщение Konstantin Tokar » 26 май 2009, 22:57

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

di@mond
Интересующийся
Сообщения: 47
Зарегистрирован: 13 апр 2009, 14:34
Репутация: 0
Откуда: Астрахань
Контактная информация:

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

Сообщение di@mond » 27 май 2009, 00:14

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);

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей