Страница 4 из 6
Re: OpenLayers: начало работы
Добавлено: 01 мар 2011, 22:02
Denis Rykov
vzik19 писал(а):как раз хотела спросить, почему при указании нескольких wms слоев в квадратных скобках пропадает карта?
Хм, у меня ничего не пропадает. У объекта map есть два
различных метода - addLayer и addLayers, первый принимает в качестве параметра - слой, второй - массив слоёв. Указывая массив слоёв, убедитесь, что вы используете метод addLayers.
vzik19 писал(а):я использую дополнительные элементы управления из gis-lab.info/qa/openlayers-begin.html, то у меня буквы иероглифами
Текст самих элементов управления в какой кодировке?
Re: OpenLayers: начало работы
Добавлено: 02 мар 2011, 14:49
vzik19
_DR_ писал(а):У объекта map есть два различных метода - addLayer и addLayers, первый принимает в качестве параметра - слой, второй - массив слоёв. Указывая массив слоёв, убедитесь, что вы используете метод addLayers.
Спасибо, это все работает, невнимательна к окончаниям
vzik19 писал(а):Текст самих элементов управления в какой кодировке?
Вот попутно немного уточняю свою проблему:
В html использована кодировка win-1251, а в браузере в подключенных контролах служебные надписи в utf-8:
... // переключатель видимости слоев
map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':false}));
.....
Проблему решила путем пересохранения файла OpenLayer.js из utf-8 в win-1251 не очень красиво, может кто знает как это сделать правильно?
Re: OpenLayers: начало работы
Добавлено: 02 мар 2011, 14:58
Denis Rykov
vzik19 писал(а):В html использована кодировка win-1251, а в браузере в подключенных контролах служебные надписи в utf-8
Просто перекодируйте текст html в utf-8.
vzik19 писал(а):Проблему решила путем пересохранения файла OpenLayer.js из utf-8 в win-1251
Совсем не понял для чего вы это сделали.
Re: OpenLayers: начало работы
Добавлено: 02 мар 2011, 15:12
vzik19
Страничка генерится автоматически в виндовой кодировке
Re: OpenLayers: начало работы
Добавлено: 12 дек 2011, 11:24
native
не могу понять почему такие параметры идут в запросе
Код: Выделить всё
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/netw2/olblgnet1.map&LAYERS=Blag_network&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=0.2175789999992,0.14763600000015,1223.2097665,1223.1398235&WIDTH=256&HEIGHT=256
Вроде всё прописал, но из-за неправильного запроса BBOX=0.2175789999992,0.14763600000015,
1223.2097665,1223.1398235 слой белый, т.е. не попадает в область видимости.
Что неправильно сделал? Когда прописываю в строке браузера нужные цифры то, картинка нормально отображается, а на карте никак не хочет.
Код MAP файла
Код: Выделить всё
# Map-файлы начинаются с ключевого слова MAP, обозначающего начало
# "map"-объекта. Закрывает map-объект ключевое слово END в конце файла. Вся
# карта, которая будет отображаться пользователю описывается внутри.
MAP
NAME "WMS"
STATUS ON
IMAGETYPE PNG
EXTENT 0.219579 0.147636 0.223491 0.151293
SIZE 800 600
# SHAPEPATH "/ms4w/apps/Blag_network_polyline/"
IMAGECOLOR 255 255 255
WEB
# TEMPLATE "template.html"
# IMAGEPATH "H:/ms4w/tmp/ms_tmp/"
# IMAGEURL "/tmp/"
METADATA
wms_enable_request "*"
wms_title "BLG Demo"
wms_abstract "This is the WMS demo from ADM"
wms_onlineresource "http://localhost/cgi-bin/mapserv?map=H:/ms4w/apps/netw2/olblgnet1.map&"
wms_srs "EPSG:4326"
# wms_onlineresource "http://localhost/cgi-bin/mapserv?map=H:/ms4w/apps/netw2/olblgnet1.map&"
# wms_getfeatureinfo "http://localhost/cgi-bin/mapserv?map=H:/ms4w/apps/netw2/olblgnet1.map&"
# wms_featureinfoformat "text/plain"
END
END
PROJECTION
# "proj=latlong"
"ellps=WGS84"
"datum=WGS84"
"init=epsg:4326"
END
# Внутри MAP-объекта определяются новые объекты - слои (LAYER).
# Обязательно нужно определить по крайней мере один слой.
# Количество слоев ограничено сверху (по умолчанию - не больше 100 слоев),
# если нужно большее количество слоев, придется перекомпилировать
# MapServer (см. заголовочный файл map.h)
LAYER # Определяем слой
NAME Blag_network
# DATA Blag_network_polyline
TYPE LINE
# TEMPLATE "dummy"
STATUS DEFAULT
CONNECTIONTYPE OGR
CONNECTION "Blag_network_polyline.TAB"
STYLEITEM "AUTO"
PROJECTION
"init=epsg:4326"
END
METADATA
"wms_title" "Blag_network"
"wms_abstract" "Blag_network layer"
"wms_include_items" "all"
"wms_srs" "EPSG:4326"
"wms_format" "image/png"
"wms_extent" "0.219579 0.147636 0.223491 0.151293"
END
# Внутри слоя нужно определить как минимум один класс. Классов может быть
# несколько, но не больше 10 (иначе опять придется перекомпилировать MapServer)
CLASS
NAME "Blag_network"
# Внутри класса определяются стили: как именно данный класс отобразить
# на карте.
# STYLE
# COLOR 102 252 202
# OUTLINECOLOR 72 172 72
# END
END
END # Конец определения слоя
END # Конец определения карты
Код html-страницы
Код: Выделить всё
<html>
<head>
<title>OpenLayers BLG</title>
<script src="apps/openlayers-2.10/OpenLayers.js"></script>
<script type="text/javascript">
function init(){
var bounds = new OpenLayers.Bounds (0.219579, 0.147636, 0.223491, 0.151293);
var map = new OpenLayers.Map('map',{
maxExtent: new OpenLayers.Bounds(0.21757899999961,0.147636,0.223491,0.151293),
maxResolution: 156543,
units: 'degrees',
projection: "EPSG:4326"});
var wms2 = new OpenLayers.Layer.WMS( "OpenLayers MapServer", "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/netw2/olblgnet1.map",{layers: 'Blag_network'});
map.addLayer(wms2);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.zoomToMaxExtent();
}
</script>
</head>
<body onload="init()">
<div style="width:100%; height:100%" id="map"></div>
</body>
</html>
Re: OpenLayers: начало работы
Добавлено: 12 дек 2011, 13:40
Mavka
Попробуйте изменить объявление проекции:
Код: Выделить всё
projection: new OpenLayers.Projection('EPSG:4326')
И временно убрать maxResolution.
Re: OpenLayers: начало работы
Добавлено: 13 дек 2011, 02:17
native
С проекцией всё нормально. Поставил maxResolution: 1 - считай убрал =). Теперь отображается. Спасибо. У меня ещё будут вопросы, так что я напишу ))).
Re: OpenLayers: начало работы
Добавлено: 13 мар 2012, 10:43
native
По поводу пункта Выбора произвольного объекта и получения атрибутивной информации о нем.
Как осуществить выбор какого-либо объекта на карте щелчком мыши? Я так понимаю нужна связь с БД координат? Или возможен просто выбор?
Re: OpenLayers: начало работы
Добавлено: 14 мар 2012, 06:03
Denis Rykov
Если слой векторный то атрибутику можно брать из самого объекта, если растровый - через WMSGetFeatureInfo. Способов на самом деле очень много, нужно смотреть в каком формате у вас данные и что именно вы хотите получить на выходе.
Re: OpenLayers: начало работы
Добавлено: 14 мар 2012, 09:01
native
Создал в mapinfo простые линии.
В строку браузера ввожу следующее:
файлы в архиве
что можете подсказать?
Re: OpenLayers: начало работы
Добавлено: 14 мар 2012, 09:43
Denis Rykov
В чем вопрос то, что хотите получить, что не получается?
Re: OpenLayers: начало работы
Добавлено: 19 мар 2012, 03:37
native
Надо как в этом
примере.
Я его попытался сделать на локальном сервере, но выделение не работает.
Re: OpenLayers: начало работы
Добавлено: 19 мар 2012, 04:36
Denis Rykov
В предыдущем посте вы приводили конфиг для MapServer, а этот пример сделан на базе GeoServer. Может в этом проблема?
Re: OpenLayers: начало работы
Добавлено: 19 мар 2012, 05:42
native
=) Наверное. Так можно ли такое организовать с помощью MapServer и OL? Если да то как, что почитать? Где посмотреть?
Re: OpenLayers: начало работы
Добавлено: 19 мар 2012, 05:54
Denis Rykov
Такое - это какое - подсветку объекта по клику? или что вы хотите? сформулируйте задачу четко.