[OpenLayers-Users] Openlayers 3 getGetFeatureInfoUrl geoserver problem

sm_aleksey tattoo1mag at gmail.com
Tue Oct 4 00:55:51 PDT 2016


I try to use Openlayers 3 DragBox for BoxSelection ang get selected feature
info from wms source. Layer projection EPSG:4326
My code:

var host = 'http://x.x.x.x/geoserver/wms'
var view = new ol.View({
    center: [12018110.072132599, 6954779.226347315],
    projection: 'EPSG:3857',
    zoom: 6
});

var wmsStation = new ol.source.TileWMS({
    url: host,
    params: {
        'LAYERS': 'baikalgeol:station_psg',
        'TILED': true,
        'VERSION': '1.1.1'
    },
    serverType: 'geoserver',
    crossOrigin: 'anonymous'
});

var layerStation = new ol.layer.Tile({
    title: 'Station',
    source: wmsStation,
});

var map = new ol.Map({
    pixelRatio: 1,
    controls: ol.control.defaults().extend([
        new ol.control.ScaleLine({
            units: 'metric'
        })
    ]),
    renderer: 'canvas',
    target: 'map',
    layers: [
        new ol.layer.Group({
            layerStation,
            ...
        })
    ],
    view: view
});

var dragBox = new ol.interaction.DragBox({
    condition: ol.events.condition.platformModifierKeyOnly
});

map.addInteraction(dragBox);

dragBox.on('boxend', function(evt) {
    var info = []
    var extent = dragBox.getGeometry().getExtent();
    console.log(extent)
        // extent = ol.proj.transformExtent(extent, 'EPSG:3857',
'EPSG:4326')
        // extent = [extent[1], extent[0], extent[3], extent[2]]
    console.log(extent)
    var source = wmsStation;
    var viewResolution = map.getView().getResolution();
    var queryLayers = source.getParams().LAYERS;
    var url = source.getGetFeatureInfoUrl(extent, viewResolution,
'EPSG:3857', {
        'INFO_FORMAT': 'text/html',
        'QUERY_LAYERS': queryLayers,
        'VERSION': '1.1.1'
    });


    if (url) {
        // url = url.replace('&CRS=', '&SRS=')
        console.log(url)
        document.getElementById('info').innerHTML =
            '<iframe id="frame" seamless src="' + url + '"></iframe>';
    }
});

But geoserver not return feature, only empty html.

URL:
http://x.x.x.x/geoserver/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&FORMAT=image%2Fpng&TRANSPARENT=true&QUERY_LAYERS=baikalgeol%3Astation_psg&LAYERS=baikalgeol%3Astation_psg&TILED=true&INFO_FORMAT=text%2Fhtml&X=0&Y=255&WIDTH=256&HEIGHT=256&SRS=EPSG%3A3857&STYLES=&BBOX=0%2C0%2C626172.1357121639%2C626172.1357121639

I think the problem in the extent. I tried transform extent coordinates for
layer projection and changed getGetFeatureInfoUrl projection:

extent = ol.proj.transformExtent(extent, 'EPSG:3857', 'EPSG:4326')
...
var url = source.getGetFeatureInfoUrl(extent, viewResolution, 'EPSG:4326'...

But geoserver return: 655, -176 not in dimensions of image: 256, 256



--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Openlayers-3-getGetFeatureInfoUrl-geoserver-problem-tp5289158.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.


More information about the Users mailing list