summaryrefslogtreecommitdiff
path: root/misc/openlayers/examples/wfs-reprojection.js
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/examples/wfs-reprojection.js')
-rw-r--r--misc/openlayers/examples/wfs-reprojection.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/misc/openlayers/examples/wfs-reprojection.js b/misc/openlayers/examples/wfs-reprojection.js
new file mode 100644
index 0000000..64a0736
--- /dev/null
+++ b/misc/openlayers/examples/wfs-reprojection.js
@@ -0,0 +1,60 @@
+var map, layer, styleMap;
+OpenLayers.ProxyHost = "proxy.cgi?url=";
+
+function init() {
+
+ var geographic = new OpenLayers.Projection("EPSG:4326");
+ var mercator = new OpenLayers.Projection("EPSG:900913");
+
+ map = new OpenLayers.Map('map', {
+ projection: mercator
+ });
+
+ var g = new OpenLayers.Layer.Google("Google Layer", {
+ sphericalMercator: true
+ });
+ map.addLayers([g]);
+
+ // prepare to style the data
+ styleMap = new OpenLayers.StyleMap({
+ strokeColor: "black",
+ strokeWidth: 2,
+ strokeOpacity: 0.5,
+ fillOpacity: 0.2
+ });
+ // create a color table for state FIPS code
+ var colors = ["red", "orange", "yellow", "green", "blue", "purple"];
+ var code, fips = {};
+ for(var i=1; i<=66; ++i) {
+ code = "0" + i;
+ code = code.substring(code.length - 2);
+ fips[code] = {fillColor: colors[i % colors.length]};
+ }
+ // add unique value rules with your color lookup
+ styleMap.addUniqueValueRules("default", "STATE_FIPS", fips);
+
+ // This server supports server-side reprojection, but we're using WFS 1.0
+ // here (which doesn't support reprojection) to illustrate client-side
+ // reprojection.
+ var wfs = new OpenLayers.Layer.Vector("States", {
+ strategies: [new OpenLayers.Strategy.BBOX()],
+ protocol: new OpenLayers.Protocol.WFS({
+ version: "1.0.0",
+ srsName: "EPSG:4326", // this is the default
+ url: "http://demo.opengeo.org/geoserver/wfs",
+ featureType: "states",
+ featureNS: "http://www.openplans.org/topp"
+ }),
+ projection: geographic, // specified because it is different than the map
+ styleMap: styleMap
+ });
+ map.addLayer(wfs);
+
+ // if you want to use Geographic coords, transform to ESPG:900913
+ var ddBounds = new OpenLayers.Bounds(
+ -73.839111,40.287907,-68.214111,44.441624
+ );
+ map.zoomToExtent(
+ ddBounds.transform(geographic, mercator)
+ );
+}