Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Openlayers:从WFS层搜索_Javascript_Filter_Openlayers - Fatal编程技术网

Javascript Openlayers:从WFS层搜索

Javascript Openlayers:从WFS层搜索,javascript,filter,openlayers,Javascript,Filter,Openlayers,我正在使用Geoserver/PostGIS/openLayers 我已经成功地设置了一个向量层。现在我正在尝试创建一个搜索功能。但是出了点问题 这是我的密码 OpenLayers.ProxyHost=“/cgi-bin/proxy.cgi?url=”; var renderer=OpenLayers.Util.getParameters(window.location.href).renderer; 渲染器=(渲染器)?[渲染器]:OpenLayers.Layer.Vector.proto

我正在使用Geoserver/PostGIS/openLayers

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

这是我的密码


OpenLayers.ProxyHost=“/cgi-bin/proxy.cgi?url=”;
var renderer=OpenLayers.Util.getParameters(window.location.href).renderer;
渲染器=(渲染器)?[渲染器]:OpenLayers.Layer.Vector.prototype.renderers;
var WGS84=新OpenLayers.投影(“EPSG:4326”);
var mercator=新OpenLayers.投影(“EPSG:900913”);
var map=new OpenLayers.map(“dMap”,{
控制:[
],
最大分辨率:0.005,
显示投影:WGS84,
单位:度
} );
var wfs=new OpenLayers.Layer.Vector(“可编辑特征”{
渲染器:渲染器,
displayInLayerSwitcher:正确,
战略:[
新OpenLayers.Strategy.Fixed(),
新OpenLayers.Strategy.Cluster({距离:
15})
],
styleMap:new OpenLayers.styleMap(样式),
协议:新OpenLayers.protocol.WFS({
版本:“1.1.0”,
url:“http://localhost:8080/geoserver/wfs",
特色:http://www.openplans.org/tour",
srsName:“EPSG:4326”,
特色类型:“旅游业”,
geometryName:“_geom”
}),
这是真的,
策略:[新建OpenLayers.Strategy.BBOX()],
过滤器:新OpenLayers.filter.Logical({
类型:OpenLayers.Filter.Logical.AND,
过滤器:[
新OpenLayers.Filter.Comparison({
类型:OpenLayers.Filter。
比较。等于,
财产:prop1,
值:testfil
}),
新OpenLayers.Filter.Comparison({
类型:OpenLayers.Filter。
比较。等于,
财产:prop2,
值:testfil2
})
]
})
});
var prop1=“旅游类型”;
var testfil=“娱乐”;
var prop2=“tourismname”;
var testfil2=“公园”;
函数更改过滤器(prop1、prop2、testfil、testfil2){
wfs.destroyFeatures();
过滤器:新OpenLayers.filter.Logical({
类型:OpenLayers.Filter.Logical.AND,
过滤器:[
新OpenLayers.Filter.Comparison({
类型:OpenLayers.Filter.Comparison.EQUAL_TO,
财产:prop1,
值:testfil
}),
新OpenLayers.Filter.Comparison({
类型:OpenLayers.Filter.Comparison.EQUAL_TO,
财产:prop2,
值:testfil2
})
]
})
wfs.filter=过滤器;
refresh({force:true});
}

我的问题解决了,我将类型为submit的输入元素放在表单元素之外。它起作用了。 我最初的代码是:

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

其他代码
我的更正是:

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

其他代码

有任何错误吗?没有,我没有任何错误。我的地图显示了主加载中的点,但单击“搜索”按钮时它们不会改变,重新加载地图后,它仍然显示以前的点