2014-02-11 29 views
3

我在的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%。所以,過濾器的作品。我錯過了什麼?

感謝

回答