Пример на OL3 (http://openlayers.org/en/latest/example ... -tile.html) конечно же видел, его и пытаюсь использовать.
Итак, что делаю:
В PostGIS при помощи ogr2ogr поместил .shp, поменял проекцию на EPSG:3576 в отдельную колонку webmercator. При подключении PostGIS в QGIS всё работает и данные отображаются
Спойлер

Далее в .map файле в WEB прописываю такие METADATA:
Код: Выделить всё
	METADATA
		wms_title                  "GIS-LAB Demo"
		wms_abstract               "This is the WMS demo from GIS-Lab"
		wms_onlineresource         "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"
		wms_srs                    "EPSG:3576"
		wms_getfeatureinfo         "http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&"
		wms_featureinfoformat      "text/html"
		wms_encoding               "utf-8"
		ows_enable_request "*"	
		wms_feature_info_mime_type "text/html"
		ENDСлой в QGIS отображается, как там получить ответ на GetFeatureInfo - не знаю, поэтому проверить атрибутивные данные на настольном ГИС не могу.
В OpenLayers3 вставляю код из примера, заменив EPSG на 3576 и document.getElementById('info') - тут я так понял нужно вставить первичный ключ из PostGIS (у меня это ogc_fid):
Спойлер
Код: Выделить всё
map.on('singleclick', function(evt) {
        document.getElementById('ogc_fid').innerHTML = '';
        var viewResolution = /** @type {number} */ (view.getResolution());
        var url = wmsSource.getGetFeatureInfoUrl(
            evt.coordinate, viewResolution, 'EPSG:3576',
            {'INFO_FORMAT': 'text/html'});
        if (url) {
          document.getElementById('ogc_fid').innerHTML =
              '<iframe seamless src="' + url + '"></iframe>';
        }
      });
      map.on('pointermove', function(evt) {
        if (evt.dragging) {
          return;
        }
        var pixel = map.getEventPixel(evt.originalEvent);
        var hit = map.forEachLayerAtPixel(pixel, function() {
          return true;
        });
        map.getTargetElement().style.cursor = hit ? 'pointer' : '';
      }); 
 Запрос (не уверен, что правильно составил его)
Спойлер
Код: Выделить всё
http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/example/polt.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image/png&TRANSPARENT=true&QUERY_LAYERS=veget&LAYERS=veget&INFO_FORMAT=text/plain&I=36&J=69&WIDTH=256&HEIGHT=256&CRS=EPSG:3576&STYLES=&BBOX=-11.7050,1468.9700,363.7713,1968.2715GetFeatureInfo results:
Search returned no results.
Вопрос: как вывести атрибутивные данные данного отрезка при щелчке по слою?
P.S. Маленькое спасибо этому форуму
Спойлер



