не работает GetFeatureInfo
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
не работает GetFeatureInfo
Привет. Использую mapserver+openlayers. Пробую получить атрибуты точки - GetFeatureInfo. Настроил ProxyHost, сам .map файл.
ProxyHost настраивал по http://trac.osgeo.org/openlayers/wiki/ru_proxyhost
Не работает. В чем же ошибка?
ProxyHost настраивал по http://trac.osgeo.org/openlayers/wiki/ru_proxyhost
Не работает. В чем же ошибка?
Последний раз редактировалось s_r_b 06 авг 2012, 22:46, всего редактировалось 3 раза.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: не работает GetFeatureInfo
Что-то последнее время часто стали возникать вопросы по WMSGetFeatureInfo. Чтобы каждый раз не писать одно и то же решил написать небольшую шпаргалку: WMSGetFeatureInfo. Прочитайте, думаю поможет, если нет - пишите, будем разбираться. Приведенный вами код довольно странный, используются deprecated фичи и вообще никто строку запроса не формирует вручную, это делается автоматом внутри самого контрола. Похоже, вы откопали какой-то старый туториал.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
Re: не работает GetFeatureInfo
спасибо. начинаю разбираться
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
Re: не работает GetFeatureInfo
Даже не знаю что я не правильно сделал. Но не работает. Сделал все по твоей инструкции. Единственно изменил - infoFormat: 'text/plain'. и ничего не происходит.
Пользуюсь Chrome. В Firebug при нажатии вижу - event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.
Что подскажешь?
Пользуюсь Chrome. В Firebug при нажатии вижу - event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future.
Что подскажешь?
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: не работает GetFeatureInfo
Что касается "event.layerX and event.layerY" - ничего страшного. А из каких соображений вы изменили значение infoFormat? В таком виде возвращаемый результат абсолютно не пригоден для дальнейшей обработки.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
Re: не работает GetFeatureInfo
я изменил infoFormat: на 'application/vnd.ogc.gml',но все осталось по прежнему. а можно как то проверить правильность моих действий - настройку .map файла, самого скрипта openlayers, proxi.host. ну очень нужно это сделать
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
Re: не работает GetFeatureInfo
оследил события, сначала выдает activate, на нажатие beforegetfuture, а вслед nogetfeatureinfo. а как извлечь полезные параметры.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: не работает GetFeatureInfo
Если возникает событие "nogetfeatureinfo", значит вы неправильно настроили контрол. Получается, что отсутствуют слои для запроса. Приведите пример описания WMS слоя в OpenLayers и контрола WMSGetFeatureInfo.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
Re: не работает GetFeatureInfo
Лучше поздно чем никогда. Все по прежнему, на клик выкидывает - nogetfeatureinfo.
Делаю для слоя wmss по твоему примеру. Но все как и было. В чем трабл?
На всякий случай полный код всего. Вот карта openlaeyrs:
Вот код карты .map^
Файл python.cgi скачан по твоей ссылке. В чем проблема?
Делаю для слоя wmss по твоему примеру. Но все как и было. В чем трабл?
На всякий случай полный код всего. Вот карта openlaeyrs:
Код: Выделить всё
...
<div style="width:100%; height:600px" id="map"></div>
<script defer="defer" type="text/javascript">
OpenLayers.ProxyHost = "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/proxy.cgi?url=";
var lon = 44;
var lat = 46;
var zoom = 0;
var options = {
minResolution: "auto",
maxResolution: "auto",
minExtent: new OpenLayers.Bounds(-400, -400, 400, 400),
maxExtent: new OpenLayers.Bounds(-19000, -10000, 9000, 7000),
numZoomLevels: 14,
//maxExtent: new OpenLayers.Bounds(-19000, -11000, 13000, 10000),
units: 'm',
controls: [
new OpenLayers.Control.MouseDefaults(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.Navigation({zoomWheelEnabled: true, handleRightClicks: true}),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.KeyboardDefaults(),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.Scale()
]
};
var s_sel = new OpenLayers.Style({pointRadius: 10,fillColor: "green",strokeColor: "black",strokewidth: 10});
var map = new OpenLayers.Map('map',options);
var markers = new OpenLayers.Layer.Markers( "отметки",{displayInLayerSwitcher: false,visibility:true});
map.addLayer(markers);
var mapsrvpath = "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?";
var mappath = "/var/www/maps/w.map";
var wms = new OpenLayers.Layer.WMS( 'Ставрополь', mapsrvpath, {'map': mappath, 'layers': 'basic'},{'reproject': true},{isBaseLayer: true, visibility: true});
var wmss = new OpenLayers.Layer.WMS( 'wmss',
"http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?map=/var/www/maps/w.map",
{layers: "basic", transparent: true},
{isBaseLayer: false, opacity: 1, singleTile: true, visibility: true}
);
var selected = new OpenLayers.Layer.WMS("Поиск",mapsrvpath,{map:mappath,layers: 'selected',sql:"select * from zemlepol_2 where addres_zu=':1'",transparent:"true",'mapstyle': s_sel},{isBaseLayer: false});//singleTile:true
var lesxoz = new OpenLayers.Layer.WMS( 'парки', mapsrvpath, {map: mappath, layers: 'LESXOZ',transparent: 'true'},{isBaseLayer: false, visibility: false,opacity: 0.7});
var dom = new OpenLayers.Layer.WMS( 'дома', mapsrvpath, {map: mappath, layers: 'DOM',transparent:"true"},{isBaseLayer: false, visibility: false});
var street = new OpenLayers.Layer.WMS( 'улицы', mapsrvpath, {map: mappath, layers: 'STREET',transparent:"true"},{isBaseLayer: false, visibility: false});
var garagi = new OpenLayers.Layer.WMS( 'гаражи', mapsrvpath, {map: mappath, layers: 'garagi',transparent:"true"},{isBaseLayer: false, visibility: false});
map.addLayers([wms,wmss,lesxoz,dom,street,garagi,selected]);
map.zoomToMaxExtent();
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
////////////////////////////////////////////////////////////
//получение аттрибуов точки
var click_ctrl = new OpenLayers.Control.WMSGetFeatureInfo({
url: "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?/var/www/maps/w.map",
layers: [wmss],
queryVisible: true,
infoFormat: 'application/vnd.ogc.gml',
maxFeatures: 50,
autoActivate: true,
// Vendor-specific параметр, используемый в MapServer (радиус поиска объектов в пикселях)
vendorParams: {
radius: 10
},
eventListeners: {
'getfeatureinfo': function(e) {
alert(e.text);
},
'beforegetfeatureinfo': function(e) {
//alert('beforegetfeatureinfo');
},
'nogetfeatureinfo': function(e) {
//alert('nogetfeatureinfo');
console.log(e.text);
alert(e.text);
},
'activate': function(e) {
//alert('activate');
},
'deactivate': function(e) {
//alert('deactivate');
}
}
});
// Добавляем контрол на карту
map.addControl(click_ctrl);
...
</script>
Код: Выделить всё
MAP
MAP
NAME "WMS"
STATUS ON
IMAGETYPE PNG
# -11839.27 -7114.86 6811.85 7050.59
EXTENT -18551.9579 -9007.6500 8893.3400 7001.0000
SIZE 600 600
SHAPEPATH "***"
IMAGECOLOR 255 255 255
FONTSET "fonts/fonts.list"
UNITS METERS
WEB
#TEMPLATE "./template.html"
HEADER "./template_header.html" # header html template
TEMPLATE "./template_content.html" # content html template
FOOTER "./template_footer.html" # footer html template
IMAGEPATH "/var/www/maps/tmp/"
IMAGEURL "/ms_tmp/"
METADATA
WMS_ENCODING "UTF-8"
wms_title "Stavropol Buildings Map"
wms_abstract "This is the WMS from geocentrsk"
wms_srs "EPSG:4326"
wms_onlineresource "http://82.146.61.184/cgi-bin/mapserv?map=/var/www/maps/w.map&"
wms_getfeatureinfo "http://82.146.61.184/cgi-bin/mapserv?map=/var/www/maps/w.map&"
wms_featureinfoformat "application/vnd.ogc.gml"
wms_feature_info_mime_type "application/vnd.ogc.gml"
wms_srs "epsg:4326"
wms_enable_request "*"
wms_include_items "all"
ows_enable_request "*"
END
END
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
"zone=44"
"units=m"
"north"
"no_defs"
END
LAYER
NAME basic
DATA zemlepol_2_region
STATUS ON
TYPE POLYGON
DUMP TRUE
#TEMPLATE "./template.html"
HEADER "./template_header.html" # header html template
TEMPLATE "./template_content.html" # content html template
FOOTER "./template_footer.html" # footer html template
DUMP TRUE
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "STAVROPOL"
wms_abstract "figny"
wms_srs "EPSG:4326"
wms_featureinfoformat "application/vnd.ogc.gml"
"wms_feature_info_mime_type" "text/html"
"wms_include_items" "all"
gml_include_items "all"
"gml_featureid" "ID"
END
CLASS
NAME "STV"
STYLE
COLOR 255 255 150
OUTLINECOLOR 230 230 70
END
END
END
LAYER
NAME STREET
DATA doroga_polyline
STATUS OFF
TYPE LINE
#LABELITEM "adress"
MAXSCALEDENOM 2000000000
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "STAVROPOL_STREET"
wms_abstract "StvStreet"
wms_srs "EPSG:4326"
"gml_include_items" "all" ## Optional (serves all attributes for layer)
"gml_featureid" "ID" ## REQUIRED
wms_include_items "all"
END
CLASS
NAME "STREETS"
STYLE
COLOR 103 203 255
OUTLINECOLOR 91 43 99
END
LABEL
COLOR 1 1 1
TYPE TRUETYPE
FONT arial
SIZE 10
POSITION cc
MAXLENGTH 12
WRAP ' '
ANTIALIAS true
PARTIALS false
MINFEATURESIZE 100#auto
MINDISTANCE 300
BUFFER 3
ENCODING CP1251
END
END
END
LAYER
NAME BIGSTREET
DATA doroga_polyline
STATUS OFF
TYPE LINE
FILTER "gid=1000"
#MAXSCALEDENOM 2000000000
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "STAVROPOL_BIG_STREET"
wms_abstract "StvStreet"
wms_srs "EPSG:4326"
"gml_include_items" "all" ## Optional (serves all attributes for layer)
"gml_featureid" "ID" ## REQUIRED
wms_include_items "all"
END
CLASS
NAME "STREETS"
STYLE
COLOR 103 203 255
OUTLINECOLOR 91 43 99
END
LABEL
COLOR 1 1 1
TYPE TRUETYPE
FONT arial
SIZE 10
POSITION cc
MAXLENGTH 12
WRAP ' '
ANTIALIAS true
PARTIALS false
MINFEATURESIZE 100#auto
MINDISTANCE 300
BUFFER 3
ENCODING CP1251
END
END
END
LAYER
NAME LESXOZ
DATA lesxoz_region
STATUS OFF
LABELITEM "Nazwan"
TYPE POLYGON
OPACITY 60
TEMPLATE "./template.html"
CLASS
NAME "LES"
STYLE
COLOR 0 255 0
OUTLINECOLOR 0 255 0
END
LABEL
COLOR 1 1 1
TYPE TRUETYPE
FONT arial
SIZE 10
POSITION cc
MAXLENGTH 12
WRAP ' '
ANTIALIAS true
PARTIALS false
MINFEATURESIZE 100#auto
MINDISTANCE 300
BUFFER 3
ENCODING CP1251
END
END
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "STAVROPOL leshoz"
wms_abstract "leshozvo"
wms_srs "EPSG:4326"
"gml_include_items" "all" ## Optional (serves all attributes for layer)
"gml_featureid" "ID" ## REQUIRED
END
END
LAYER
NAME DOM
DATA DOM_O_region
STATUS OFF
TYPE POLYGON
MAXSCALEDENOM 1000000000
TEMPLATE "./template.html"
#LABELITEM "adress"
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "STAVROPOL dom"
wms_abstract "doma"
wms_srs "EPSG:4326"
"gml_include_items" "all" ## Optional (serves all attributes for layer)
"gml_featureid" "ID" ## REQUIRED
END
CLASS
NAME "house"
STYLE
COLOR 255 160 160
OUTLINECOLOR 121 93 95
END
LABEL
COLOR 1 1 1
TYPE TRUETYPE
FONT arial
SIZE 10
POSITION cc
MAXLENGTH 12
WRAP ' '
ANTIALIAS true
PARTIALS false
MINFEATURESIZE auto
MINDISTANCE 200
BUFFER 3
ENCODING CP1251
END
END
END
LAYER
NAME garagi
DATA gsk_region
STATUS OFF
TYPE POLYGON
OPACITY 60
MAXSCALEDENOM 500000000
TEMPLATE "./template.html"
LABELITEM "nazvanie"
PROJECTION
"proj=latlong"#utm"
"ellps=WGS84"
"datum=WGS84"
END
METADATA
wms_title "STAVROPOL dom"
wms_abstract "doma"
wms_srs "EPSG:4326"
"gml_include_items" "all" ## Optional (serves all attributes for layer)
"gml_featureid" "ID" ## REQUIRED
END
CLASS
NAME "garadj"
STYLE
COLOR 64 128 195
OUTLINECOLOR 11 113 15
END
LABEL
COLOR 1 1 1
TYPE TRUETYPE
FONT arial
SIZE 10
POSITION cc
MAXLENGTH 12
WRAP ' '
ANTIALIAS true
PARTIALS false
MINFEATURESIZE auto
MINDISTANCE 200
BUFFER 3
ENCODING CP1251
END
END
END
LAYER
STATUS ON
TYPE POLYGON
NAME "selected"
CONNECTIONTYPE postgis
CONNECTION "user=*** password=*** dbname=*** host=***"
DATA "the_geom from (%SQL%) as newtable using unique gid"
#DATA "the_geom from (SELECT * FROM *** WHERE gid='22') as newtable using unique gid using srid=4326"
PROCESSING "CLOSE_CONNECTION=DEFER"
CLASS
STYLE
COLOR 250 56 56
OUTLINECOLOR 250 56 56
ANTIALIAS TRUE
END
END
METADATA
#wms_srs "EPSG:4326"
END
END
LAYER
NAME "highlights"
STATUS on
TYPE polygon
CONNECTIONTYPE postgis
CONNECTION "user=*** password=*** dbname=*** host=***"
#DATA "the_geom from (select * ***) as newtable using unique gid using srid=4326"
DATA "the_geom from (select * ***) as newtable using unique gid"
PROCESSING "CLOSE_CONNECTION=DEFER"
FILTER ( gid = ($SQL$) )
PROJECTION
#"init=epsg:4326"
END
CLASS
STYLE
COLOR 229 60 54
OUTLINECOLOR 188 0 0
END
END
END
END
-
- Интересующийся
- Сообщения: 31
- Зарегистрирован: 08 авг 2011, 15:25
- Репутация: 0
Re: не работает GetFeatureInfo
Ура.!!! В контроле в указании адреса недоглядел: вместо
надо
Спасибо всем за помощь.
Код: Выделить всё
url: "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?/var/www/maps/w.map",
Код: Выделить всё
url: "http://xn--26-6kc4btrhf0b.xn--p1ai/cgi-bin/mapserv?/map=var/www/maps/w.map",
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя