gpt4 book ai didi

filter - 不区分大小写的 openlayers 过滤器不起作用

转载 作者:行者123 更新时间:2023-12-04 21:50:28 26 4
gpt4 key购买 nike

我在 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 警报,但我在 map 上看不到任何点,并且 map 在中心放大了 100%。所以,过滤器类型的作品。我错过了什么?

最佳答案

您在 OpenLayers 中传递的参数被发送到 GeoServer,因此查询是由 geoserver 而不是 OpenLayers 进行的。

您需要查看 Geoserver 文档以了解它如何进行不区分大小写的查询。参见 http://docs.geoserver.org/latest/en/user/styling/sld-reference/filters.html也许 matchCase 属性可以提供帮助。

关于filter - 不区分大小写的 openlayers 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com