首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openlayers:从WFS层搜索

Openlayers:从WFS层搜索
EN

Stack Overflow用户
提问于 2016-01-29 14:53:12
回答 1查看 822关注 0票数 0

我正在使用Geoserver/PostGIS/openLayers

我成功地设置了向量层。现在我正在尝试创建一个搜索功能。但出了点问题。

这是我的密码

代码语言:javascript
复制
<form>

<input id="sub01" type="submit" value="Search" onclick="changeFilter()">
</form>


	


<script type="text/javascript">
        OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url="; 
	
	var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
	
var WGS84 = new OpenLayers.Projection("EPSG:4326"); 
var mercator = new OpenLayers.Projection("EPSG:900913"); 

var map = new OpenLayers.Map ("dMap", {    

controls:[
],
maxResolution: 0.005,
displayProjection: WGS84,
 units: 'degrees'
} );


var wfs = new OpenLayers.Layer.Vector("Editable Features", {
renderers: renderer,
  displayInLayerSwitcher: true,
strategies: [
new OpenLayers.Strategy.Fixed(),
new OpenLayers.Strategy.Cluster({distance:
15})
],

 styleMap: new OpenLayers.StyleMap(style),

protocol: new OpenLayers.Protocol.WFS({
version: "1.1.0",
url: "http://localhost:8080/geoserver/wfs",
featureNS :  "http://www.openplans.org/tour",
srsName: "EPSG:4326",
featureType: "tourism",
geometryName: "the_geom"
}),
extractStyles: true,
strategies: [new OpenLayers.Strategy.BBOX()],
filter: new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Logical.AND,
filters: [
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.
Comparison.EQUAL_TO,
property: prop1,
value: testfil
}),
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.
Comparison.EQUAL_TO,
property: prop2,
value: testfil2
})
]
})

});
var prop1 = "tourismtype";
var testfil = "Recreation";
var prop2 = "tourismname";
var testfil2 = "Park";
function changeFilter(prop1, prop2, testfil, testfil2){
wfs.destroyFeatures();
filter: new OpenLayers.Filter.Logical({
type: OpenLayers.Filter.Logical.AND,
filters: [
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: prop1,
value: testfil
}),
new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: prop2,
value: testfil2
})
]
})
wfs.filter = filter;
    wfs.refresh({force: true});
}

		
    </script>

这不是工作。我已经尝试过编辑我的代码,我不知道该做什么,我已经寻找了一个答案,没有什么真正的帮助我。请告诉我..。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-31 07:30:37

我的问题解决了,我把输入元素的类型从表单元素中删除。它起作用了。我最初的代码是:

代码语言:javascript
复制
  <form>
Other code
<input id="sub01" type="submit" value="Search" onclick="changeFilter()">
</form>

我的更正鳕鱼是:

代码语言:javascript
复制
 <form>
Other code
</form>
 <input id="sub01" type="submit" value="Search" onclick="changeFilter()">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35087379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档