You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2011-01-28 12:24:00

Silentium
Member
Registered: 2010-12-10
Posts: 89

Как в Openlayers сделать?

Добрый день!
Есть ли у кого-нибудь код как через Openlayers отобразить карту с Mapserver (OSGeo4W)?
Собственно имеется ссылка на WMS от mapserver. Как с помощью Openlayers отобразить это в браузере.
Помогите с кодом:

....
<script src="../lib/OpenLayers.js"></script>
    <script type="text/javascript">
        var map, layer1;
        function init(){
var lon = 38;
        var lat = 5;
        var zoom = 5;
var options = {
 projection: new OpenLayers.Projection("EPSG:900913"),
 displayProjection: new OpenLayers.Projection("EPSG:4326"),
 units: "m",
 maxResolution: 156543.0339,
 maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)
                        };
            map = new OpenLayers.Map( 'map', options );
            layer1 = new OpenLayers.Layer.WMS( 
"World Map",
 "http://osm/cgi-bin/mapserv.exe?", 
{

map: 'C:/OSGeo4W/apps/maps/new.map',
transparent: 'TRUE',
layers: 'land',
type: 'png'
} );
            map.addLayer(layer1);
        // map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
         map.addControl( new OpenLayers.Control.LayerSwitcher() );   
   }
    </script>
  </head>
  <body onload="init()">
...............

Last edited by Silentium (2011-01-28 14:09:47)

Offline

#2 2011-01-28 12:33:18

Aleksandr Dezhin
Member
From: Msk
Registered: 2008-05-25
Posts: 2,109
Website

Re: Как в Openlayers сделать?

например вот http://yav.gis-lab.info/boundaries/map


[ Проверка границ и НП | Дампы | Валидатор рек | Кое-что ещё ]
- Нет! Не надо пытаться. Делай. Или не делай. Не надо пытаться. (c) Йода

Offline

#3 2011-01-28 14:09:55

sim
Member
Registered: 2008-04-19
Posts: 632
Website

Re: Как в Openlayers сделать?

Offline

#4 2011-01-28 14:15:40

Silentium
Member
Registered: 2010-12-10
Posts: 89

Re: Как в Openlayers сделать?

Aleksandr Dezhin wrote:

Я не специалист в JAvaScript, поэтому сложновато сопоставить со своим кодом.
Идея такая есть ли в OSGeo4w некий аналог, как в Geoserver, где в ОpenLAyers можно смотреть слои которые публикуются.
Через QGIS добавляю ссылку типа  http://osm/cgi-bin/mapserv.exe?MAP=C:/OSGeo4W/apps/maps/new.map&SERVICE=WMS - все работает а при попытки добавить в код Openlayers карта неотображается!

Может я не туда копаю?

Offline

#5 2011-01-28 14:32:01

Silentium
Member
Registered: 2010-12-10
Posts: 89

Re: Как в Openlayers сделать?

Пробовал настроить согласно этому, выдает ошибку maxExtent is null, т.е граница -20037508.34, -20037508.34, 20037508.34, 20037508.34 неопределяется как я понял

Offline

#6 2011-01-28 15:02:20

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: Как в Openlayers сделать?

Попробуйте код из вашего первого поста, но

map: 'C:/OSGeo4W/apps/maps/new.map'

поменяйте на

'map': 'C:/OSGeo4W/apps/maps/new.map'

(кавычечки добавились)

И еще, попробуйте дебаггер на это дело натравить - посмотрите к мапсерверу вообще запросы уходят, и все ли в них верно.

Last edited by dkiselev (2011-01-28 15:02:48)


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#7 2011-01-28 15:28:15

Silentium
Member
Registered: 2010-12-10
Posts: 89

Re: Как в Openlayers сделать?

dkiselev wrote:

Попробуйте код из вашего первого поста, но

map: 'C:/OSGeo4W/apps/maps/new.map'

поменяйте на

'map': 'C:/OSGeo4W/apps/maps/new.map'

(кавычечки добавились)

И еще, попробуйте дебаггер на это дело натравить - посмотрите к мапсерверу вообще запросы уходят, и все ли в них верно.

Смотрите:
1)при добавлении кавычек дебаггер показывает ошибку на них (invalid id)
2)Убрал в коде

transparent: "TRUE",

ошибки пропали, но в FFox сама карта не грузится, а в IE розовые квадратики вместо карты.

в map файле у меня описано более 10 слоев, которые строятся из бд, нужно ли мне всех их перечислять?

Offline

#8 2012-09-07 16:55:03

RusFox
Member
From: С-Пб
Registered: 2012-06-05
Posts: 469
Website

Re: Как в Openlayers сделать?

Как прикрутить прозрачный слой, который можно включать поверх основного? Сам слой есть, как его правильно подключить?

Сейчас так:

var layerBase = new OpenLayers.Layer.OSM("Base","tut-URL", {numZoomLevels: 18});
 map.addLayer(layerBase); 

var layerNatural = new OpenLayers.Layer.OSM("Natural","tut-URL", {numZoomLevels: 18, isBaseLayer: false, transparent: "true", visibility: true});
 map.addLayer(layerNatural); 

Вроде все ок, слой в переключателе есть, показывается, но при попытке прокрутить карту новые тайлы становятся красными. Если щелкнуть на "выключатель" в списке слоев - опять все хорошо становится, пока не подвигаешь карту.

UPD: со слоем все в порядке, в leaflet все хорошо отображается.

Last edited by RusFox (2012-09-07 17:03:28)


Информация для всех... Даром... И пусть никто не уйдет обиженным!
WEB-анализатор треков | Interactive map for Zabbix

Offline

#9 2012-09-10 16:45:42

RusFox
Member
From: С-Пб
Registered: 2012-06-05
Posts: 469
Website

Re: Как в Openlayers сделать?

Типа UP sad


Информация для всех... Даром... И пусть никто не уйдет обиженным!
WEB-анализатор треков | Interactive map for Zabbix

Offline

Board footer

Powered by FluxBB