git-svn-id: http://svn.openlayers.org/trunk/openlayers@11065 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
|
|
// use a CQL parser for easy filter creation
|
|
var format = new OpenLayers.Format.CQL();
|
|
|
|
// this rule will get a filter from the CQL text in the form
|
|
var rule = new OpenLayers.Rule({
|
|
// We could also set a filter here. E.g.
|
|
// filter: format.read("STATE_ABBR >= 'B' AND STATE_ABBR <= 'O'"),
|
|
symbolizer: {
|
|
fillColor: "#ff0000",
|
|
strokeColor: "#ffcccc",
|
|
fillOpacity: "0.5"
|
|
}
|
|
});
|
|
|
|
var states = new OpenLayers.Layer.Vector("States", {
|
|
styleMap: new OpenLayers.StyleMap({
|
|
"default": new OpenLayers.Style(null, {rules: [rule]})
|
|
})
|
|
});
|
|
|
|
var map = new OpenLayers.Map({
|
|
div: "map",
|
|
layers: [
|
|
new OpenLayers.Layer.WMS(
|
|
"OpenLayers WMS",
|
|
"http://maps.opengeo.org/geowebcache/service/wms",
|
|
{layers: "openstreetmap", format: "image/png"}
|
|
),
|
|
states
|
|
],
|
|
center: new OpenLayers.LonLat(-101, 39),
|
|
zoom: 3
|
|
});
|
|
|
|
// called when features are fetched
|
|
function loadFeatures(data) {
|
|
var features = new OpenLayers.Format.GeoJSON().read(data);
|
|
states.addFeatures(features);
|
|
};
|
|
|
|
// update filter and redraw when form is submitted
|
|
var cql = document.getElementById("cql");
|
|
var output = document.getElementById("output");
|
|
function updateFilter() {
|
|
var filter;
|
|
try {
|
|
filter = format.read(cql.value);
|
|
} catch (err) {
|
|
output.value = err.message;
|
|
}
|
|
if (filter) {
|
|
output.value = "";
|
|
rule.filter = filter;
|
|
states.redraw();
|
|
}
|
|
return false;
|
|
}
|
|
updateFilter();
|
|
var form = document.getElementById("cql_form");
|
|
form.onsubmit = updateFilter;
|