Suite

Utiliser CQL dans OpenLayers 3 ?


J'essaie de créer un moteur de recherche dans OpenLayers 3 par les fonctionnalités de GeoServer et WFS.

Pour ce faire, dois-je utiliser un filtre CQL ?

Ceci est mon code de connexion si GeoServer médie OL3, auriez-vous la gentillesse de me montrer un exemple de CQL d'OpenLayers.

vectorWFS = new ol.source.Vector({ loader: function(extent,resolution,projection){ $.ajax('http://localhost:8080/geoserver/wfs',{ type: 'GET', data:{ service :'WFS', version:'1.1.0', request:'GetFeature', typename:'Botanico:Urbana', srsname:'EPSG:3857', outputFormat:'text/javascript' }, dataType:'jsonp', jsonpCallback:'callback:loadFeatures', jsonp:'format_options' }); } }); window.loadFeatures=function(response){ GeoJSON= new ol.format.GeoJSON(); vectorWFS.addFeatures(GeoJSON.readFeatures(réponse)); } ; layerVector = new ol.layer.Vector({ source: vectorWFS, style: new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'rgba(0,0,255,1.0)', width: 2 }) }) });

j'ai trouvé la solution :

var geojsonFormat ="" ; var SourceSource = ""; var cqlFilter = 'INE_MUN=' + $("#bucador").val() ; alerte (cqlFilter); var geojsonFormat = new ol.format.GeoJSON(); var vectorSource = new ol.source.Vector({ loader: function(extent, resolution, projection) { var url = 'http://localhost:8080/geoserver/wfs?service=WFS&' + 'version=1.1.0&request= GetFeature&typename=Botanico:Urbana&' + 'outputFormat=text/javascript&format_options=callback:loadFeatures&' + 'CQL_FILTER={{CQLFILTER}}&' +'&srsname=EPSG:3857'; // Usamos jsonp:false cuand pre sevenir J cargue var url2 = url.replace('{{CQLFILTER}}', cqlFilter); $.ajax({url: url2, dataType: 'jsonp', jsonp: false}); }, stratégie: ol.loadingstrategy.tile( ol.tilegrid.createXYZ({ maxZoom : 22 })) }); window.loadFeatures = function(réponse) { vectorSource.addFeatures(geojsonFormat.readFeatures(réponse)); } ;

J'utilise ceci pour ajouter un cql_filter dans ma couche

var params = layerVector.getSource().getParams(); params.CQL_FILTER = "table_colonne = '1234'"; layerVector.getSource().updateParams(params);


Voir la vidéo: USING OPENLAYERS TO REQUEST SPECIFIC DATA FROM GEOSERVER CQL (Octobre 2021).