Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα

 

Εχω τον παρακάτω κώδικα σε 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_c 
}); 

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}); 

Είναι φίλτρο για αναζήτηση λέξεων σε vector layer. Επειδή σε Openlayers δεν υπαρχει κατι σα το ilike της postgre για να γινει αυτόματα case insensitive, χρησιμοποιω το κολπακι να βαζω παντου strToLowerCase όπως έχω δει και αλλου, το οποίο υποτίθεται ότι πρεπει να δουλεψει.

 

Όταν κανω αναζητηση ο χαρτης ζουμαρει στο κεντρο, δεν εχει σημεια και γινετε alert το "Nothing Found" .Οποτε το φιλτρο μισο-δουλευει. Τι γινετε? Πως μπορω να το τσεκαρω/διορθωσω?

 

Εχω επισης geoserver 2.1.3 postgreSQL 9.1 postGIS 2.0. Οι λέξεις είναι στα ελληνικά, στη βαση και στον geoserver είναι UTF8.

 

Το layer το οριζω ετσι

pins = new OpenLayers.Layer.Vector("LayerTitle", {renderers: ["Canvas", "SVG", "VML"]})

Ευχαριστώ

Επεξ/σία από slevinkelevra

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...