【发布时间】:2014-03-09 22:40:24
【问题描述】:
我在 openlayers 2.13 中有以下过滤器
var filter_c = new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.LIKE,
property: 'strToLowerCase(p_name)',
value: '%'+String(document.getElementById("nm").value).toLowerCase()+'%'
});
//pass the filter to the layer
var prot = new OpenLayers.Protocol.WFS({
url: "/geoserver/wfs",
featureType: "pins",
featureNS: "http://www.mysite.gr",
defaultFilter: filter_cl
});
var _CallBack = function(resp) {
pins.addFeatures(resp.features)
var cb = pins.features.length;
if (cb == 0){alert("Nothing Found");}
};
var response = prot.read({callback: _CallBack});
//refresh to render POIs
pins.refresh({force:true});
我还使用 Geoserver 2.1.3 和 PostgreSQL 9.1 /PostGIS 2.0。
此过滤器区分大小写。 如何使此过滤器不区分大小写?
pins 图层从 postgreSQL/PostGIS 中的表中获取数据。名称采用 UTF8 格式,是希腊语单词,例如 Ακρόπολη、Παρθενώνας 等。
我只是将它设置为pins = new OpenLayers.Layer.Vector("LayerTitle", {renderers: ["Canvas", "SVG", "VML"]}),然后我有上述代码来搜索它。
当我使用过滤器时,我没有收到Nothing found 警报,但我在地图上看不到任何点,并且地图在中心缩放 100%。所以,过滤器的工作原理。我错过了什么?
【问题讨论】:
标签: filter openlayers case-insensitive geoserver