我在的OpenLayers 2.13情況insesitive的OpenLayers過濾不工作
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/2.0的PostGIS以下篩選。
此過濾器區分大小寫。 如何讓這個過濾器不區分大小寫?
pins
圖層從postgreSQL/PostGIS中的表中獲取數據。名稱使用UTF8,並且是希臘字,如Ακρόπολη
,Παρθενώνας
等。
我只是簡單地將它設置爲pins = new OpenLayers.Layer.Vector("LayerTitle", {renderers: ["Canvas", "SVG", "VML"]})
,我有上述代碼來搜索它。
當我使用過濾器時,我沒有得到Nothing found
警報,但我在地圖上看不到任何點,並且地圖在中心放大100%。所以,過濾器的作品。我錯過了什麼?
感謝