summaryrefslogtreecommitdiff
path: root/misc/openlayers/lib/OpenLayers/Format
diff options
context:
space:
mode:
authorChris Schlaeger <chris@linux.com>2015-10-17 21:36:38 +0200
committerChris Schlaeger <chris@linux.com>2015-10-17 21:36:38 +0200
commite30f267181d990947e67909de4809fa941698c85 (patch)
tree46e9f94c2b3699ed378963b420b8a8d361286ea1 /misc/openlayers/lib/OpenLayers/Format
parente763ceb183f389fcd314a4a6a712d87c9d4cdb32 (diff)
downloadpostrunner-e30f267181d990947e67909de4809fa941698c85.zip
Upgrading openlayers to 3.x
Diffstat (limited to 'misc/openlayers/lib/OpenLayers/Format')
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/ArcXML.js1028
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js46
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Atom.js712
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/CQL.js452
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js34
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js240
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js34
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js457
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Context.js334
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js557
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Filter.js53
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Filter/v1.js504
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js184
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js222
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GML.js923
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GML/Base.js645
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GML/v2.js193
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GML/v3.js477
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GPX.js385
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GeoJSON.js716
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/GeoRSS.js409
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/JSON.js398
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/KML.js1517
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js108
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OSM.js465
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OWSCommon.js78
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js318
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js62
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js116
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OWSContext.js86
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js595
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js183
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SLD.js81
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SLD/v1.js1309
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js46
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js149
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js48
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js158
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js190
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js302
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/Text.js151
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js47
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js55
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js170
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js109
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js199
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFS.js223
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js47
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js129
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js115
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js63
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js234
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFST.js34
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFST/v1.js446
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js174
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js189
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WKT.js392
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMC.js182
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMC/v1.js1267
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js104
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js149
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js56
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js368
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js122
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js57
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js60
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js85
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js128
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js30
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js53
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js122
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js296
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js230
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js251
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js48
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js119
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js185
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WPSExecute.js395
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/XLS.js68
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/XLS/v1.js304
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js48
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/XML.js897
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js212
83 files changed, 0 insertions, 23427 deletions
diff --git a/misc/openlayers/lib/OpenLayers/Format/ArcXML.js b/misc/openlayers/lib/OpenLayers/Format/ArcXML.js
deleted file mode 100644
index 9d523d1..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/ArcXML.js
+++ /dev/null
@@ -1,1028 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Geometry/Polygon.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/MultiPolygon.js
- * @requires OpenLayers/Geometry/LinearRing.js
- */
-
-/**
- * Class: OpenLayers.Format.ArcXML
- * Read/Write ArcXML. Create a new instance with the <OpenLayers.Format.ArcXML>
- * constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.ArcXML = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: fontStyleKeys
- * {Array} List of keys used in font styling.
- */
- fontStyleKeys: [
- 'antialiasing', 'blockout', 'font', 'fontcolor','fontsize', 'fontstyle',
- 'glowing', 'interval', 'outline', 'printmode', 'shadow', 'transparency'
- ],
-
- /**
- * Property: request
- * A get_image request destined for an ArcIMS server.
- */
- request: null,
-
- /**
- * Property: response
- * A parsed response from an ArcIMS server.
- */
- response: null,
-
- /**
- * Constructor: OpenLayers.Format.ArcXML
- * Create a new parser/writer for ArcXML. Create an instance of this class
- * to begin authoring a request to an ArcIMS service. This is used
- * primarily by the ArcIMS layer, but could be used to do other wild
- * stuff, like geocoding.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- this.request = new OpenLayers.Format.ArcXML.Request();
- this.response = new OpenLayers.Format.ArcXML.Response();
-
- if (options) {
- if (options.requesttype == "feature") {
- this.request.get_image = null;
-
- var qry = this.request.get_feature.query;
- this.addCoordSys(qry.featurecoordsys, options.featureCoordSys);
- this.addCoordSys(qry.filtercoordsys, options.filterCoordSys);
-
- if (options.polygon) {
- qry.isspatial = true;
- qry.spatialfilter.polygon = options.polygon;
- } else if (options.envelope) {
- qry.isspatial = true;
- qry.spatialfilter.envelope = {minx:0, miny:0, maxx:0, maxy:0};
- this.parseEnvelope(qry.spatialfilter.envelope, options.envelope);
- }
- } else if (options.requesttype == "image") {
- this.request.get_feature = null;
-
- var props = this.request.get_image.properties;
- this.parseEnvelope(props.envelope, options.envelope);
-
- this.addLayers(props.layerlist, options.layers);
- this.addImageSize(props.imagesize, options.tileSize);
- this.addCoordSys(props.featurecoordsys, options.featureCoordSys);
- this.addCoordSys(props.filtercoordsys, options.filterCoordSys);
- } else {
- // if an arcxml object is being created with no request type, it is
- // probably going to consume a response, so do not throw an error if
- // the requesttype is not defined
- this.request = null;
- }
- }
-
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Method: parseEnvelope
- * Parse an array of coordinates into an ArcXML envelope structure.
- *
- * Parameters:
- * env - {Object} An envelope object that will contain the parsed coordinates.
- * arr - {Array(double)} An array of coordinates in the order: [ minx, miny, maxx, maxy ]
- */
- parseEnvelope: function(env, arr) {
- if (arr && arr.length == 4) {
- env.minx = arr[0];
- env.miny = arr[1];
- env.maxx = arr[2];
- env.maxy = arr[3];
- }
- },
-
- /**
- * Method: addLayers
- * Add a collection of layers to another collection of layers. Each layer in the list is tuple of
- * { id, visible }. These layer collections represent the
- * /ARCXML/REQUEST/get_image/PROPERTIES/LAYERLIST/LAYERDEF items in ArcXML
- *
- * TODO: Add support for dynamic layer rendering.
- *
- * Parameters:
- * ll - {Array({id,visible})} A list of layer definitions.
- * lyrs - {Array({id,visible})} A list of layer definitions.
- */
- addLayers: function(ll, lyrs) {
- for(var lind = 0, len=lyrs.length; lind < len; lind++) {
- ll.push(lyrs[lind]);
- }
- },
-
- /**
- * Method: addImageSize
- * Set the size of the requested image.
- *
- * Parameters:
- * imsize - {Object} An ArcXML imagesize object.
- * olsize - {<OpenLayers.Size>} The image size to set.
- */
- addImageSize: function(imsize, olsize) {
- if (olsize !== null) {
- imsize.width = olsize.w;
- imsize.height = olsize.h;
- imsize.printwidth = olsize.w;
- imsize.printheight = olsize.h;
- }
- },
-
- /**
- * Method: addCoordSys
- * Add the coordinate system information to an object. The object may be
- *
- * Parameters:
- * featOrFilt - {Object} A featurecoordsys or filtercoordsys ArcXML structure.
- * fsys - {String} or {<OpenLayers.Projection>} or {filtercoordsys} or
- * {featurecoordsys} A projection representation. If it's a {String},
- * the value is assumed to be the SRID. If it's a {OpenLayers.Projection}
- * AND Proj4js is available, the projection number and name are extracted
- * from there. If it's a filter or feature ArcXML structure, it is copied.
- */
- addCoordSys: function(featOrFilt, fsys) {
- if (typeof fsys == "string") {
- featOrFilt.id = parseInt(fsys);
- featOrFilt.string = fsys;
- }
- // is this a proj4js instance?
- else if (typeof fsys == "object" && fsys.proj !== null){
- featOrFilt.id = fsys.proj.srsProjNumber;
- featOrFilt.string = fsys.proj.srsCode;
- } else {
- featOrFilt = fsys;
- }
- },
-
- /**
- * APIMethod: iserror
- * Check to see if the response from the server was an error.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse. If nothing is supplied,
- * the current response is examined.
- *
- * Returns:
- * {Boolean} true if the response was an error.
- */
- iserror: function(data) {
- var ret = null;
-
- if (!data) {
- ret = (this.response.error !== '');
- } else {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- var errorNodes = data.documentElement.getElementsByTagName("ERROR");
- ret = (errorNodes !== null && errorNodes.length > 0);
- }
-
- return ret;
- },
-
- /**
- * APIMethod: read
- * Read data from a string, and return an response.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {<OpenLayers.Format.ArcXML.Response>} An ArcXML response. Note that this response
- * data may change in the future.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
-
- var arcNode = null;
- if (data && data.documentElement) {
- if(data.documentElement.nodeName == "ARCXML") {
- arcNode = data.documentElement;
- } else {
- arcNode = data.documentElement.getElementsByTagName("ARCXML")[0];
- }
- }
-
- // in Safari, arcNode will be there but will have a child named
- // parsererror
- if (!arcNode || arcNode.firstChild.nodeName === 'parsererror') {
- var error, source;
- try {
- error = data.firstChild.nodeValue;
- source = data.firstChild.childNodes[1].firstChild.nodeValue;
- } catch (err) {
- // pass
- }
- throw {
- message: "Error parsing the ArcXML request",
- error: error,
- source: source
- };
- }
-
- var response = this.parseResponse(arcNode);
- return response;
- },
-
- /**
- * APIMethod: write
- * Generate an ArcXml document string for sending to an ArcIMS server.
- *
- * Returns:
- * {String} A string representing the ArcXML document request.
- */
- write: function(request) {
- if (!request) {
- request = this.request;
- }
- var root = this.createElementNS("", "ARCXML");
- root.setAttribute("version","1.1");
-
- var reqElem = this.createElementNS("", "REQUEST");
-
- if (request.get_image != null) {
- var getElem = this.createElementNS("", "GET_IMAGE");
- reqElem.appendChild(getElem);
-
- var propElem = this.createElementNS("", "PROPERTIES");
- getElem.appendChild(propElem);
-
- var props = request.get_image.properties;
- if (props.featurecoordsys != null) {
- var feat = this.createElementNS("", "FEATURECOORDSYS");
- propElem.appendChild(feat);
-
- if (props.featurecoordsys.id === 0) {
- feat.setAttribute("string", props.featurecoordsys['string']);
- }
- else {
- feat.setAttribute("id", props.featurecoordsys.id);
- }
- }
-
- if (props.filtercoordsys != null) {
- var filt = this.createElementNS("", "FILTERCOORDSYS");
- propElem.appendChild(filt);
-
- if (props.filtercoordsys.id === 0) {
- filt.setAttribute("string", props.filtercoordsys.string);
- }
- else {
- filt.setAttribute("id", props.filtercoordsys.id);
- }
- }
-
- if (props.envelope != null) {
- var env = this.createElementNS("", "ENVELOPE");
- propElem.appendChild(env);
-
- env.setAttribute("minx", props.envelope.minx);
- env.setAttribute("miny", props.envelope.miny);
- env.setAttribute("maxx", props.envelope.maxx);
- env.setAttribute("maxy", props.envelope.maxy);
- }
-
- var imagesz = this.createElementNS("", "IMAGESIZE");
- propElem.appendChild(imagesz);
-
- imagesz.setAttribute("height", props.imagesize.height);
- imagesz.setAttribute("width", props.imagesize.width);
-
- if (props.imagesize.height != props.imagesize.printheight ||
- props.imagesize.width != props.imagesize.printwidth) {
- imagesz.setAttribute("printheight", props.imagesize.printheight);
- imagesz.setArrtibute("printwidth", props.imagesize.printwidth);
- }
-
- if (props.background != null) {
- var backgrnd = this.createElementNS("", "BACKGROUND");
- propElem.appendChild(backgrnd);
-
- backgrnd.setAttribute("color",
- props.background.color.r + "," +
- props.background.color.g + "," +
- props.background.color.b);
-
- if (props.background.transcolor !== null) {
- backgrnd.setAttribute("transcolor",
- props.background.transcolor.r + "," +
- props.background.transcolor.g + "," +
- props.background.transcolor.b);
- }
- }
-
- if (props.layerlist != null && props.layerlist.length > 0) {
- var layerlst = this.createElementNS("", "LAYERLIST");
- propElem.appendChild(layerlst);
-
- for (var ld = 0; ld < props.layerlist.length; ld++) {
- var ldef = this.createElementNS("", "LAYERDEF");
- layerlst.appendChild(ldef);
-
- ldef.setAttribute("id", props.layerlist[ld].id);
- ldef.setAttribute("visible", props.layerlist[ld].visible);
-
- if (typeof props.layerlist[ld].query == "object") {
- var query = props.layerlist[ld].query;
-
- if (query.where.length < 0) {
- continue;
- }
-
- var queryElem = null;
- if (typeof query.spatialfilter == "boolean" && query.spatialfilter) {
- // handle spatial filter madness
- queryElem = this.createElementNS("", "SPATIALQUERY");
- }
- else {
- queryElem = this.createElementNS("", "QUERY");
- }
-
- queryElem.setAttribute("where", query.where);
-
- if (typeof query.accuracy == "number" && query.accuracy > 0) {
- queryElem.setAttribute("accuracy", query.accuracy);
- }
- if (typeof query.featurelimit == "number" && query.featurelimit < 2000) {
- queryElem.setAttribute("featurelimit", query.featurelimit);
- }
- if (typeof query.subfields == "string" && query.subfields != "#ALL#") {
- queryElem.setAttribute("subfields", query.subfields);
- }
- if (typeof query.joinexpression == "string" && query.joinexpression.length > 0) {
- queryElem.setAttribute("joinexpression", query.joinexpression);
- }
- if (typeof query.jointables == "string" && query.jointables.length > 0) {
- queryElem.setAttribute("jointables", query.jointables);
- }
-
- ldef.appendChild(queryElem);
- }
-
- if (typeof props.layerlist[ld].renderer == "object") {
- this.addRenderer(ldef, props.layerlist[ld].renderer);
- }
- }
- }
- } else if (request.get_feature != null) {
- var getElem = this.createElementNS("", "GET_FEATURES");
- getElem.setAttribute("outputmode", "newxml");
- getElem.setAttribute("checkesc", "true");
-
- if (request.get_feature.geometry) {
- getElem.setAttribute("geometry", request.get_feature.geometry);
- }
- else {
- getElem.setAttribute("geometry", "false");
- }
-
- if (request.get_feature.compact) {
- getElem.setAttribute("compact", request.get_feature.compact);
- }
-
- if (request.get_feature.featurelimit == "number") {
- getElem.setAttribute("featurelimit", request.get_feature.featurelimit);
- }
-
- getElem.setAttribute("globalenvelope", "true");
- reqElem.appendChild(getElem);
-
- if (request.get_feature.layer != null && request.get_feature.layer.length > 0) {
- var lyrElem = this.createElementNS("", "LAYER");
- lyrElem.setAttribute("id", request.get_feature.layer);
- getElem.appendChild(lyrElem);
- }
-
- var fquery = request.get_feature.query;
- if (fquery != null) {
- var qElem = null;
- if (fquery.isspatial) {
- qElem = this.createElementNS("", "SPATIALQUERY");
- } else {
- qElem = this.createElementNS("", "QUERY");
- }
- getElem.appendChild(qElem);
-
- if (typeof fquery.accuracy == "number") {
- qElem.setAttribute("accuracy", fquery.accuracy);
- }
- //qElem.setAttribute("featurelimit", "5");
-
- if (fquery.featurecoordsys != null) {
- var fcsElem1 = this.createElementNS("", "FEATURECOORDSYS");
-
- if (fquery.featurecoordsys.id == 0) {
- fcsElem1.setAttribute("string", fquery.featurecoordsys.string);
- } else {
- fcsElem1.setAttribute("id", fquery.featurecoordsys.id);
- }
- qElem.appendChild(fcsElem1);
- }
-
- if (fquery.filtercoordsys != null) {
- var fcsElem2 = this.createElementNS("", "FILTERCOORDSYS");
-
- if (fquery.filtercoordsys.id === 0) {
- fcsElem2.setAttribute("string", fquery.filtercoordsys.string);
- } else {
- fcsElem2.setAttribute("id", fquery.filtercoordsys.id);
- }
- qElem.appendChild(fcsElem2);
- }
-
- if (fquery.buffer > 0) {
- var bufElem = this.createElementNS("", "BUFFER");
- bufElem.setAttribute("distance", fquery.buffer);
- qElem.appendChild(bufElem);
- }
-
- if (fquery.isspatial) {
- var spfElem = this.createElementNS("", "SPATIALFILTER");
- spfElem.setAttribute("relation", fquery.spatialfilter.relation);
- qElem.appendChild(spfElem);
-
- if (fquery.spatialfilter.envelope) {
- var envElem = this.createElementNS("", "ENVELOPE");
- envElem.setAttribute("minx", fquery.spatialfilter.envelope.minx);
- envElem.setAttribute("miny", fquery.spatialfilter.envelope.miny);
- envElem.setAttribute("maxx", fquery.spatialfilter.envelope.maxx);
- envElem.setAttribute("maxy", fquery.spatialfilter.envelope.maxy);
- spfElem.appendChild(envElem);
- } else if(typeof fquery.spatialfilter.polygon == "object") {
- spfElem.appendChild(this.writePolygonGeometry(fquery.spatialfilter.polygon));
- }
- }
-
- if (fquery.where != null && fquery.where.length > 0) {
- qElem.setAttribute("where", fquery.where);
- }
- }
- }
-
- root.appendChild(reqElem);
-
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- },
-
-
- addGroupRenderer: function(ldef, toprenderer) {
- var topRelem = this.createElementNS("", "GROUPRENDERER");
- ldef.appendChild(topRelem);
-
- for (var rind = 0; rind < toprenderer.length; rind++) {
- var renderer = toprenderer[rind];
- this.addRenderer(topRelem, renderer);
- }
- },
-
-
- addRenderer: function(topRelem, renderer) {
- if (OpenLayers.Util.isArray(renderer)) {
- this.addGroupRenderer(topRelem, renderer);
- } else {
- var renderElem = this.createElementNS("", renderer.type.toUpperCase() + "RENDERER");
- topRelem.appendChild(renderElem);
-
- if (renderElem.tagName == "VALUEMAPRENDERER") {
- this.addValueMapRenderer(renderElem, renderer);
- } else if (renderElem.tagName == "VALUEMAPLABELRENDERER") {
- this.addValueMapLabelRenderer(renderElem, renderer);
- } else if (renderElem.tagName == "SIMPLELABELRENDERER") {
- this.addSimpleLabelRenderer(renderElem, renderer);
- } else if (renderElem.tagName == "SCALEDEPENDENTRENDERER") {
- this.addScaleDependentRenderer(renderElem, renderer);
- }
- }
- },
-
-
- addScaleDependentRenderer: function(renderElem, renderer) {
- if (typeof renderer.lower == "string" || typeof renderer.lower == "number") {
- renderElem.setAttribute("lower", renderer.lower);
- }
- if (typeof renderer.upper == "string" || typeof renderer.upper == "number") {
- renderElem.setAttribute("upper", renderer.upper);
- }
-
- this.addRenderer(renderElem, renderer.renderer);
- },
-
-
- addValueMapLabelRenderer: function(renderElem, renderer) {
- renderElem.setAttribute("lookupfield", renderer.lookupfield);
- renderElem.setAttribute("labelfield", renderer.labelfield);
-
- if (typeof renderer.exacts == "object") {
- for (var ext=0, extlen=renderer.exacts.length; ext<extlen; ext++) {
- var exact = renderer.exacts[ext];
-
- var eelem = this.createElementNS("", "EXACT");
-
- if (typeof exact.value == "string") {
- eelem.setAttribute("value", exact.value);
- }
- if (typeof exact.label == "string") {
- eelem.setAttribute("label", exact.label);
- }
- if (typeof exact.method == "string") {
- eelem.setAttribute("method", exact.method);
- }
-
- renderElem.appendChild(eelem);
-
- if (typeof exact.symbol == "object") {
- var selem = null;
-
- if (exact.symbol.type == "text") {
- selem = this.createElementNS("", "TEXTSYMBOL");
- }
-
- if (selem != null) {
- var keys = this.fontStyleKeys;
- for (var i = 0, len = keys.length; i < len; i++) {
- var key = keys[i];
- if (exact.symbol[key]) {
- selem.setAttribute(key, exact.symbol[key]);
- }
- }
- eelem.appendChild(selem);
- }
- }
- } // for each exact
- }
- },
-
- addValueMapRenderer: function(renderElem, renderer) {
- renderElem.setAttribute("lookupfield", renderer.lookupfield);
-
- if (typeof renderer.ranges == "object") {
- for(var rng=0, rnglen=renderer.ranges.length; rng<rnglen; rng++) {
- var range = renderer.ranges[rng];
-
- var relem = this.createElementNS("", "RANGE");
- relem.setAttribute("lower", range.lower);
- relem.setAttribute("upper", range.upper);
-
- renderElem.appendChild(relem);
-
- if (typeof range.symbol == "object") {
- var selem = null;
-
- if (range.symbol.type == "simplepolygon") {
- selem = this.createElementNS("", "SIMPLEPOLYGONSYMBOL");
- }
-
- if (selem != null) {
- if (typeof range.symbol.boundarycolor == "string") {
- selem.setAttribute("boundarycolor", range.symbol.boundarycolor);
- }
- if (typeof range.symbol.fillcolor == "string") {
- selem.setAttribute("fillcolor", range.symbol.fillcolor);
- }
- if (typeof range.symbol.filltransparency == "number") {
- selem.setAttribute("filltransparency", range.symbol.filltransparency);
- }
- relem.appendChild(selem);
- }
- }
- } // for each range
- } else if (typeof renderer.exacts == "object") {
- for (var ext=0, extlen=renderer.exacts.length; ext<extlen; ext++) {
- var exact = renderer.exacts[ext];
-
- var eelem = this.createElementNS("", "EXACT");
- if (typeof exact.value == "string") {
- eelem.setAttribute("value", exact.value);
- }
- if (typeof exact.label == "string") {
- eelem.setAttribute("label", exact.label);
- }
- if (typeof exact.method == "string") {
- eelem.setAttribute("method", exact.method);
- }
-
- renderElem.appendChild(eelem);
-
- if (typeof exact.symbol == "object") {
- var selem = null;
-
- if (exact.symbol.type == "simplemarker") {
- selem = this.createElementNS("", "SIMPLEMARKERSYMBOL");
- }
-
- if (selem != null) {
- if (typeof exact.symbol.antialiasing == "string") {
- selem.setAttribute("antialiasing", exact.symbol.antialiasing);
- }
- if (typeof exact.symbol.color == "string") {
- selem.setAttribute("color", exact.symbol.color);
- }
- if (typeof exact.symbol.outline == "string") {
- selem.setAttribute("outline", exact.symbol.outline);
- }
- if (typeof exact.symbol.overlap == "string") {
- selem.setAttribute("overlap", exact.symbol.overlap);
- }
- if (typeof exact.symbol.shadow == "string") {
- selem.setAttribute("shadow", exact.symbol.shadow);
- }
- if (typeof exact.symbol.transparency == "number") {
- selem.setAttribute("transparency", exact.symbol.transparency);
- }
- //if (typeof exact.symbol.type == "string")
- // selem.setAttribute("type", exact.symbol.type);
- if (typeof exact.symbol.usecentroid == "string") {
- selem.setAttribute("usecentroid", exact.symbol.usecentroid);
- }
- if (typeof exact.symbol.width == "number") {
- selem.setAttribute("width", exact.symbol.width);
- }
-
- eelem.appendChild(selem);
- }
- }
- } // for each exact
- }
- },
-
-
- addSimpleLabelRenderer: function(renderElem, renderer) {
- renderElem.setAttribute("field", renderer.field);
- var keys = ['featureweight', 'howmanylabels', 'labelbufferratio',
- 'labelpriorities', 'labelweight', 'linelabelposition',
- 'rotationalangles'];
- for (var i=0, len=keys.length; i<len; i++) {
- var key = keys[i];
- if (renderer[key]) {
- renderElem.setAttribute(key, renderer[key]);
- }
- }
-
- if (renderer.symbol.type == "text") {
- var symbol = renderer.symbol;
- var selem = this.createElementNS("", "TEXTSYMBOL");
- renderElem.appendChild(selem);
-
- var keys = this.fontStyleKeys;
- for (var i=0, len=keys.length; i<len; i++) {
- var key = keys[i];
- if (symbol[key]) {
- selem.setAttribute(key, renderer[key]);
- }
- }
- }
- },
-
- writePolygonGeometry: function(polygon) {
- if (!(polygon instanceof OpenLayers.Geometry.Polygon)) {
- throw {
- message:'Cannot write polygon geometry to ArcXML with an ' +
- polygon.CLASS_NAME + ' object.',
- geometry: polygon
- };
- }
-
- var polyElem = this.createElementNS("", "POLYGON");
-
- for (var ln=0, lnlen=polygon.components.length; ln<lnlen; ln++) {
- var ring = polygon.components[ln];
- var ringElem = this.createElementNS("", "RING");
-
- for (var rn=0, rnlen=ring.components.length; rn<rnlen; rn++) {
- var point = ring.components[rn];
- var pointElem = this.createElementNS("", "POINT");
-
- pointElem.setAttribute("x", point.x);
- pointElem.setAttribute("y", point.y);
-
- ringElem.appendChild(pointElem);
- }
-
- polyElem.appendChild(ringElem);
- }
-
- return polyElem;
- },
-
- /**
- * Method: parseResponse
- * Take an ArcXML response, and parse in into this object's internal properties.
- *
- * Parameters:
- * data - {String} or {DOMElement} The ArcXML response, as either a string or the
- * top level DOMElement of the response.
- */
- parseResponse: function(data) {
- if(typeof data == "string") {
- var newData = new OpenLayers.Format.XML();
- data = newData.read(data);
- }
- var response = new OpenLayers.Format.ArcXML.Response();
-
- var errorNode = data.getElementsByTagName("ERROR");
-
- if (errorNode != null && errorNode.length > 0) {
- response.error = this.getChildValue(errorNode, "Unknown error.");
- } else {
- var responseNode = data.getElementsByTagName("RESPONSE");
-
- if (responseNode == null || responseNode.length == 0) {
- response.error = "No RESPONSE tag found in ArcXML response.";
- return response;
- }
-
- var rtype = responseNode[0].firstChild.nodeName;
- if (rtype == "#text") {
- rtype = responseNode[0].firstChild.nextSibling.nodeName;
- }
-
- if (rtype == "IMAGE") {
- var envelopeNode = data.getElementsByTagName("ENVELOPE");
- var outputNode = data.getElementsByTagName("OUTPUT");
-
- if (envelopeNode == null || envelopeNode.length == 0) {
- response.error = "No ENVELOPE tag found in ArcXML response.";
- } else if (outputNode == null || outputNode.length == 0) {
- response.error = "No OUTPUT tag found in ArcXML response.";
- } else {
- var envAttr = this.parseAttributes(envelopeNode[0]);
- var outputAttr = this.parseAttributes(outputNode[0]);
-
- if (typeof outputAttr.type == "string") {
- response.image = {
- envelope: envAttr,
- output: {
- type: outputAttr.type,
- data: this.getChildValue(outputNode[0])
- }
- };
- } else {
- response.image = { envelope: envAttr, output: outputAttr };
- }
- }
- } else if (rtype == "FEATURES") {
- var features = responseNode[0].getElementsByTagName("FEATURES");
-
- // get the feature count
- var featureCount = features[0].getElementsByTagName("FEATURECOUNT");
- response.features.featurecount = featureCount[0].getAttribute("count");
-
- if (response.features.featurecount > 0) {
- // get the feature envelope
- var envelope = features[0].getElementsByTagName("ENVELOPE");
- response.features.envelope = this.parseAttributes(envelope[0], typeof(0));
-
- // get the field values per feature
- var featureList = features[0].getElementsByTagName("FEATURE");
- for (var fn = 0; fn < featureList.length; fn++) {
- var feature = new OpenLayers.Feature.Vector();
- var fields = featureList[fn].getElementsByTagName("FIELD");
-
- for (var fdn = 0; fdn < fields.length; fdn++) {
- var fieldName = fields[fdn].getAttribute("name");
- var fieldValue = fields[fdn].getAttribute("value");
- feature.attributes[ fieldName ] = fieldValue;
- }
-
- var geom = featureList[fn].getElementsByTagName("POLYGON");
-
- if (geom.length > 0) {
- // if there is a polygon, create an openlayers polygon, and assign
- // it to the .geometry property of the feature
- var ring = geom[0].getElementsByTagName("RING");
-
- var polys = [];
- for (var rn = 0; rn < ring.length; rn++) {
- var linearRings = [];
- linearRings.push(this.parsePointGeometry(ring[rn]));
-
- var holes = ring[rn].getElementsByTagName("HOLE");
- for (var hn = 0; hn < holes.length; hn++) {
- linearRings.push(this.parsePointGeometry(holes[hn]));
- }
- holes = null;
- polys.push(new OpenLayers.Geometry.Polygon(linearRings));
- linearRings = null;
- }
- ring = null;
-
- if (polys.length == 1) {
- feature.geometry = polys[0];
- } else
- {
- feature.geometry = new OpenLayers.Geometry.MultiPolygon(polys);
- }
- }
-
- response.features.feature.push(feature);
- }
- }
- } else {
- response.error = "Unidentified response type.";
- }
- }
- return response;
- },
-
-
- /**
- * Method: parseAttributes
- *
- * Parameters:
- * node - {<DOMElement>} An element to parse attributes from.
- *
- * Returns:
- * {Object} An attributes object, with properties set to attribute values.
- */
- parseAttributes: function(node,type) {
- var attributes = {};
- for(var attr = 0; attr < node.attributes.length; attr++) {
- if (type == "number") {
- attributes[node.attributes[attr].nodeName] = parseFloat(node.attributes[attr].nodeValue);
- } else {
- attributes[node.attributes[attr].nodeName] = node.attributes[attr].nodeValue;
- }
- }
- return attributes;
- },
-
-
- /**
- * Method: parsePointGeometry
- *
- * Parameters:
- * node - {<DOMElement>} An element to parse <COORDS> or <POINT> arcxml data from.
- *
- * Returns:
- * {<OpenLayers.Geometry.LinearRing>} A linear ring represented by the node's points.
- */
- parsePointGeometry: function(node) {
- var ringPoints = [];
- var coords = node.getElementsByTagName("COORDS");
-
- if (coords.length > 0) {
- // if coords is present, it's the only coords item
- var coordArr = this.getChildValue(coords[0]);
- coordArr = coordArr.split(/;/);
- for (var cn = 0; cn < coordArr.length; cn++) {
- var coordItems = coordArr[cn].split(/ /);
- ringPoints.push(new OpenLayers.Geometry.Point(coordItems[0], coordItems[1]));
- }
- coords = null;
- } else {
- var point = node.getElementsByTagName("POINT");
- if (point.length > 0) {
- for (var pn = 0; pn < point.length; pn++) {
- ringPoints.push(
- new OpenLayers.Geometry.Point(
- parseFloat(point[pn].getAttribute("x")),
- parseFloat(point[pn].getAttribute("y"))
- )
- );
- }
- }
- point = null;
- }
-
- return new OpenLayers.Geometry.LinearRing(ringPoints);
- },
-
- CLASS_NAME: "OpenLayers.Format.ArcXML"
-});
-
-OpenLayers.Format.ArcXML.Request = OpenLayers.Class({
- initialize: function(params) {
- var defaults = {
- get_image: {
- properties: {
- background: null,
- /*{
- color: { r:255, g:255, b:255 },
- transcolor: null
- },*/
- draw: true,
- envelope: {
- minx: 0,
- miny: 0,
- maxx: 0,
- maxy: 0
- },
- featurecoordsys: {
- id:0,
- string:"",
- datumtransformid:0,
- datumtransformstring:""
- },
- filtercoordsys:{
- id:0,
- string:"",
- datumtransformid:0,
- datumtransformstring:""
- },
- imagesize:{
- height:0,
- width:0,
- dpi:96,
- printheight:0,
- printwidth:0,
- scalesymbols:false
- },
- layerlist:[],
- /* no support for legends */
- output:{
- baseurl:"",
- legendbaseurl:"",
- legendname:"",
- legendpath:"",
- legendurl:"",
- name:"",
- path:"",
- type:"jpg",
- url:""
- }
- }
- },
-
- get_feature: {
- layer: "",
- query: {
- isspatial: false,
- featurecoordsys: {
- id:0,
- string:"",
- datumtransformid:0,
- datumtransformstring:""
- },
- filtercoordsys: {
- id:0,
- string:"",
- datumtransformid:0,
- datumtransformstring:""
- },
- buffer:0,
- where:"",
- spatialfilter: {
- relation: "envelope_intersection",
- envelope: null
- }
- }
- },
-
- environment: {
- separators: {
- cs:" ",
- ts:";"
- }
- },
-
- layer: [],
- workspaces: []
- };
-
- return OpenLayers.Util.extend(this, defaults);
- },
-
- CLASS_NAME: "OpenLayers.Format.ArcXML.Request"
-});
-
-OpenLayers.Format.ArcXML.Response = OpenLayers.Class({
- initialize: function(params) {
- var defaults = {
- image: {
- envelope:null,
- output:''
- },
-
- features: {
- featurecount: 0,
- envelope: null,
- feature: []
- },
-
- error:''
- };
-
- return OpenLayers.Util.extend(this, defaults);
- },
-
- CLASS_NAME: "OpenLayers.Format.ArcXML.Response"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js b/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js
deleted file mode 100644
index 5b8730d..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/ArcXML/Features.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/ArcXML.js
- */
-
-/**
- * Class: OpenLayers.Format.ArcXML.Features
- * Read/Write ArcXML features. Create a new instance with the
- * <OpenLayers.Format.ArcXML.Features> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.ArcXML.Features = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Constructor: OpenLayers.Format.ArcXML.Features
- * Create a new parser/writer for ArcXML Features. Create an instance of this class
- * to get a set of features from an ArcXML response.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read data from a string of ArcXML, and return a set of OpenLayers features.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} A collection of features.
- */
- read: function(data) {
- var axl = new OpenLayers.Format.ArcXML();
- var parsed = axl.read(data);
-
- return parsed.features.feature;
- }
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/Atom.js b/misc/openlayers/lib/OpenLayers/Format/Atom.js
deleted file mode 100644
index 8eb5792..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Atom.js
+++ /dev/null
@@ -1,712 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/GML/v3.js
- * @requires OpenLayers/Feature/Vector.js
- */
-
-/**
- * Class: OpenLayers.Format.Atom
- * Read/write Atom feeds. Create a new instance with the
- * <OpenLayers.Format.AtomFeed> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.Atom = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs. Properties
- * of this object should not be set individually. Read-only. All
- * XML subclasses should have their own namespaces object. Use
- * <setNamespace> to add or set a namespace alias after construction.
- */
- namespaces: {
- atom: "http://www.w3.org/2005/Atom",
- georss: "http://www.georss.org/georss"
- },
-
- /**
- * APIProperty: feedTitle
- * {String} Atom feed elements require a title. Default is "untitled".
- */
- feedTitle: "untitled",
-
- /**
- * APIProperty: defaultEntryTitle
- * {String} Atom entry elements require a title. In cases where one is
- * not provided in the feature attributes, this will be used. Default
- * is "untitled".
- */
- defaultEntryTitle: "untitled",
-
- /**
- * Property: gmlParse
- * {Object} GML Format object for parsing features
- * Non-API and only created if necessary
- */
- gmlParser: null,
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x)
- * For GeoRSS the default is (y,x), therefore: false
- */
- xy: false,
-
- /**
- * Constructor: OpenLayers.Format.AtomEntry
- * Create a new parser for Atom.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Return a list of features from an Atom feed or entry document.
-
- * Parameters:
- * doc - {Element} or {String}
- *
- * Returns:
- * Array({<OpenLayers.Feature.Vector>})
- */
- read: function(doc) {
- if (typeof doc == "string") {
- doc = OpenLayers.Format.XML.prototype.read.apply(this, [doc]);
- }
- return this.parseFeatures(doc);
- },
-
- /**
- * APIMethod: write
- * Serialize or more feature nodes to Atom documents.
- *
- * Parameters:
- * features - {<OpenLayers.Feature.Vector>} or Array({<OpenLayers.Feature.Vector>})
- *
- * Returns:
- * {String} an Atom entry document if passed one feature node, or a feed
- * document if passed an array of feature nodes.
- */
- write: function(features) {
- var doc;
- if (OpenLayers.Util.isArray(features)) {
- doc = this.createElementNSPlus("atom:feed");
- doc.appendChild(
- this.createElementNSPlus("atom:title", {
- value: this.feedTitle
- })
- );
- for (var i=0, ii=features.length; i<ii; i++) {
- doc.appendChild(this.buildEntryNode(features[i]));
- }
- }
- else {
- doc = this.buildEntryNode(features);
- }
- return OpenLayers.Format.XML.prototype.write.apply(this, [doc]);
- },
-
- /**
- * Method: buildContentNode
- *
- * Parameters:
- * content - {Object}
- *
- * Returns:
- * {DOMElement} an Atom content node.
- *
- * TODO: types other than text.
- */
- buildContentNode: function(content) {
- var node = this.createElementNSPlus("atom:content", {
- attributes: {
- type: content.type || null
- }
- });
- if (content.src) {
- node.setAttribute("src", content.src);
- } else {
- if (content.type == "text" || content.type == null) {
- node.appendChild(
- this.createTextNode(content.value)
- );
- } else if (content.type == "html") {
- if (typeof content.value != "string") {
- throw "HTML content must be in form of an escaped string";
- }
- node.appendChild(
- this.createTextNode(content.value)
- );
- } else if (content.type == "xhtml") {
- node.appendChild(content.value);
- } else if (content.type == "xhtml" ||
- content.type.match(/(\+|\/)xml$/)) {
- node.appendChild(content.value);
- }
- else { // MUST be a valid Base64 encoding
- node.appendChild(
- this.createTextNode(content.value)
- );
- }
- }
- return node;
- },
-
- /**
- * Method: buildEntryNode
- * Build an Atom entry node from a feature object.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- *
- * Returns:
- * {DOMElement} an Atom entry node.
- *
- * These entries are geared for publication using AtomPub.
- *
- * TODO: support extension elements
- */
- buildEntryNode: function(feature) {
- var attrib = feature.attributes;
- var atomAttrib = attrib.atom || {};
- var entryNode = this.createElementNSPlus("atom:entry");
-
- // atom:author
- if (atomAttrib.authors) {
- var authors = OpenLayers.Util.isArray(atomAttrib.authors) ?
- atomAttrib.authors : [atomAttrib.authors];
- for (var i=0, ii=authors.length; i<ii; i++) {
- entryNode.appendChild(
- this.buildPersonConstructNode(
- "author", authors[i]
- )
- );
- }
- }
-
- // atom:category
- if (atomAttrib.categories) {
- var categories = OpenLayers.Util.isArray(atomAttrib.categories) ?
- atomAttrib.categories : [atomAttrib.categories];
- var category;
- for (var i=0, ii=categories.length; i<ii; i++) {
- category = categories[i];
- entryNode.appendChild(
- this.createElementNSPlus("atom:category", {
- attributes: {
- term: category.term,
- scheme: category.scheme || null,
- label: category.label || null
- }
- })
- );
- }
- }
-
- // atom:content
- if (atomAttrib.content) {
- entryNode.appendChild(this.buildContentNode(atomAttrib.content));
- }
-
- // atom:contributor
- if (atomAttrib.contributors) {
- var contributors = OpenLayers.Util.isArray(atomAttrib.contributors) ?
- atomAttrib.contributors : [atomAttrib.contributors];
- for (var i=0, ii=contributors.length; i<ii; i++) {
- entryNode.appendChild(
- this.buildPersonConstructNode(
- "contributor",
- contributors[i]
- )
- );
- }
- }
-
- // atom:id
- if (feature.fid) {
- entryNode.appendChild(
- this.createElementNSPlus("atom:id", {
- value: feature.fid
- })
- );
- }
-
- // atom:link
- if (atomAttrib.links) {
- var links = OpenLayers.Util.isArray(atomAttrib.links) ?
- atomAttrib.links : [atomAttrib.links];
- var link;
- for (var i=0, ii=links.length; i<ii; i++) {
- link = links[i];
- entryNode.appendChild(
- this.createElementNSPlus("atom:link", {
- attributes: {
- href: link.href,
- rel: link.rel || null,
- type: link.type || null,
- hreflang: link.hreflang || null,
- title: link.title || null,
- length: link.length || null
- }
- })
- );
- }
- }
-
- // atom:published
- if (atomAttrib.published) {
- entryNode.appendChild(
- this.createElementNSPlus("atom:published", {
- value: atomAttrib.published
- })
- );
- }
-
- // atom:rights
- if (atomAttrib.rights) {
- entryNode.appendChild(
- this.createElementNSPlus("atom:rights", {
- value: atomAttrib.rights
- })
- );
- }
-
- // atom:source not implemented
-
- // atom:summary
- if (atomAttrib.summary || attrib.description) {
- entryNode.appendChild(
- this.createElementNSPlus("atom:summary", {
- value: atomAttrib.summary || attrib.description
- })
- );
- }
-
- // atom:title
- entryNode.appendChild(
- this.createElementNSPlus("atom:title", {
- value: atomAttrib.title || attrib.title || this.defaultEntryTitle
- })
- );
-
- // atom:updated
- if (atomAttrib.updated) {
- entryNode.appendChild(
- this.createElementNSPlus("atom:updated", {
- value: atomAttrib.updated
- })
- );
- }
-
- // georss:where
- if (feature.geometry) {
- var whereNode = this.createElementNSPlus("georss:where");
- whereNode.appendChild(
- this.buildGeometryNode(feature.geometry)
- );
- entryNode.appendChild(whereNode);
- }
-
- return entryNode;
- },
-
- /**
- * Method: initGmlParser
- * Creates a GML parser.
- */
- initGmlParser: function() {
- this.gmlParser = new OpenLayers.Format.GML.v3({
- xy: this.xy,
- featureNS: "http://example.com#feature",
- internalProjection: this.internalProjection,
- externalProjection: this.externalProjection
- });
- },
-
- /**
- * Method: buildGeometryNode
- * builds a GeoRSS node with a given geometry
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- *
- * Returns:
- * {DOMElement} A gml node.
- */
- buildGeometryNode: function(geometry) {
- if (!this.gmlParser) {
- this.initGmlParser();
- }
- var node = this.gmlParser.writeNode("feature:_geometry", geometry);
- return node.firstChild;
- },
-
- /**
- * Method: buildPersonConstructNode
- *
- * Parameters:
- * name - {String}
- * value - {Object}
- *
- * Returns:
- * {DOMElement} an Atom person construct node.
- *
- * Example:
- * >>> buildPersonConstructNode("author", {name: "John Smith"})
- * {<author><name>John Smith</name></author>}
- *
- * TODO: how to specify extension elements? Add to the oNames array?
- */
- buildPersonConstructNode: function(name, value) {
- var oNames = ["uri", "email"];
- var personNode = this.createElementNSPlus("atom:" + name);
- personNode.appendChild(
- this.createElementNSPlus("atom:name", {
- value: value.name
- })
- );
- for (var i=0, ii=oNames.length; i<ii; i++) {
- if (value[oNames[i]]) {
- personNode.appendChild(
- this.createElementNSPlus("atom:" + oNames[i], {
- value: value[oNames[i]]
- })
- );
- }
- }
- return personNode;
- },
-
- /**
- * Method: getFirstChildValue
- *
- * Parameters:
- * node - {DOMElement}
- * nsuri - {String} Child node namespace uri ("*" for any).
- * name - {String} Child node name.
- * def - {String} Optional string default to return if no child found.
- *
- * Returns:
- * {String} The value of the first child with the given tag name. Returns
- * default value or empty string if none found.
- */
- getFirstChildValue: function(node, nsuri, name, def) {
- var value;
- var nodes = this.getElementsByTagNameNS(node, nsuri, name);
- if (nodes && nodes.length > 0) {
- value = this.getChildValue(nodes[0], def);
- } else {
- value = def;
- }
- return value;
- },
-
- /**
- * Method: parseFeature
- * Parse feature from an Atom entry node..
- *
- * Parameters:
- * node - {DOMElement} An Atom entry or feed node.
- *
- * Returns:
- * {<OpenLayers.Feature.Vector>}
- */
- parseFeature: function(node) {
- var atomAttrib = {};
- var value = null;
- var nodes = null;
- var attval = null;
- var atomns = this.namespaces.atom;
-
- // atomAuthor*
- this.parsePersonConstructs(node, "author", atomAttrib);
-
- // atomCategory*
- nodes = this.getElementsByTagNameNS(node, atomns, "category");
- if (nodes.length > 0) {
- atomAttrib.categories = [];
- }
- for (var i=0, ii=nodes.length; i<ii; i++) {
- value = {};
- value.term = nodes[i].getAttribute("term");
- attval = nodes[i].getAttribute("scheme");
- if (attval) { value.scheme = attval; }
- attval = nodes[i].getAttribute("label");
- if (attval) { value.label = attval; }
- atomAttrib.categories.push(value);
- }
-
- // atomContent?
- nodes = this.getElementsByTagNameNS(node, atomns, "content");
- if (nodes.length > 0) {
- value = {};
- attval = nodes[0].getAttribute("type");
- if (attval) {
- value.type = attval;
- }
- attval = nodes[0].getAttribute("src");
- if (attval) {
- value.src = attval;
- } else {
- if (value.type == "text" ||
- value.type == "html" ||
- value.type == null ) {
- value.value = this.getFirstChildValue(
- node,
- atomns,
- "content",
- null
- );
- } else if (value.type == "xhtml" ||
- value.type.match(/(\+|\/)xml$/)) {
- value.value = this.getChildEl(nodes[0]);
- } else { // MUST be base64 encoded
- value.value = this.getFirstChildValue(
- node,
- atomns,
- "content",
- null
- );
- }
- atomAttrib.content = value;
- }
- }
-
- // atomContributor*
- this.parsePersonConstructs(node, "contributor", atomAttrib);
-
- // atomId
- atomAttrib.id = this.getFirstChildValue(node, atomns, "id", null);
-
- // atomLink*
- nodes = this.getElementsByTagNameNS(node, atomns, "link");
- if (nodes.length > 0) {
- atomAttrib.links = new Array(nodes.length);
- }
- var oAtts = ["rel", "type", "hreflang", "title", "length"];
- for (var i=0, ii=nodes.length; i<ii; i++) {
- value = {};
- value.href = nodes[i].getAttribute("href");
- for (var j=0, jj=oAtts.length; j<jj; j++) {
- attval = nodes[i].getAttribute(oAtts[j]);
- if (attval) {
- value[oAtts[j]] = attval;
- }
- }
- atomAttrib.links[i] = value;
- }
-
- // atomPublished?
- value = this.getFirstChildValue(node, atomns, "published", null);
- if (value) {
- atomAttrib.published = value;
- }
-
- // atomRights?
- value = this.getFirstChildValue(node, atomns, "rights", null);
- if (value) {
- atomAttrib.rights = value;
- }
-
- // atomSource? -- not implemented
-
- // atomSummary?
- value = this.getFirstChildValue(node, atomns, "summary", null);
- if (value) {
- atomAttrib.summary = value;
- }
-
- // atomTitle
- atomAttrib.title = this.getFirstChildValue(
- node, atomns, "title", null
- );
-
- // atomUpdated
- atomAttrib.updated = this.getFirstChildValue(
- node, atomns, "updated", null
- );
-
- var featureAttrib = {
- title: atomAttrib.title,
- description: atomAttrib.summary,
- atom: atomAttrib
- };
- var geometry = this.parseLocations(node)[0];
- var feature = new OpenLayers.Feature.Vector(geometry, featureAttrib);
- feature.fid = atomAttrib.id;
- return feature;
- },
-
- /**
- * Method: parseFeatures
- * Return features from an Atom entry or feed.
- *
- * Parameters:
- * node - {DOMElement} An Atom entry or feed node.
- *
- * Returns:
- * Array({<OpenLayers.Feature.Vector>})
- */
- parseFeatures: function(node) {
- var features = [];
- var entries = this.getElementsByTagNameNS(
- node, this.namespaces.atom, "entry"
- );
- if (entries.length == 0) {
- entries = [node];
- }
- for (var i=0, ii=entries.length; i<ii; i++) {
- features.push(this.parseFeature(entries[i]));
- }
- return features;
- },
-
- /**
- * Method: parseLocations
- * Parse the locations from an Atom entry or feed.
- *
- * Parameters:
- * node - {DOMElement} An Atom entry or feed node.
- *
- * Returns:
- * Array({<OpenLayers.Geometry>})
- */
- parseLocations: function(node) {
- var georssns = this.namespaces.georss;
-
- var locations = {components: []};
- var where = this.getElementsByTagNameNS(node, georssns, "where");
- if (where && where.length > 0) {
- if (!this.gmlParser) {
- this.initGmlParser();
- }
- for (var i=0, ii=where.length; i<ii; i++) {
- this.gmlParser.readChildNodes(where[i], locations);
- }
- }
-
- var components = locations.components;
- var point = this.getElementsByTagNameNS(node, georssns, "point");
- if (point && point.length > 0) {
- for (var i=0, ii=point.length; i<ii; i++) {
- var xy = OpenLayers.String.trim(
- point[i].firstChild.nodeValue
- ).split(/\s+/);
- if (xy.length !=2) {
- xy = OpenLayers.String.trim(
- point[i].firstChild.nodeValue
- ).split(/\s*,\s*/);
- }
- components.push(new OpenLayers.Geometry.Point(xy[1], xy[0]));
- }
- }
-
- var line = this.getElementsByTagNameNS(node, georssns, "line");
- if (line && line.length > 0) {
- var coords;
- var p;
- var points;
- for (var i=0, ii=line.length; i<ii; i++) {
- coords = OpenLayers.String.trim(
- line[i].firstChild.nodeValue
- ).split(/\s+/);
- points = [];
- for (var j=0, jj=coords.length; j<jj; j+=2) {
- p = new OpenLayers.Geometry.Point(coords[j+1], coords[j]);
- points.push(p);
- }
- components.push(
- new OpenLayers.Geometry.LineString(points)
- );
- }
- }
-
- var polygon = this.getElementsByTagNameNS(node, georssns, "polygon");
- if (polygon && polygon.length > 0) {
- var coords;
- var p;
- var points;
- for (var i=0, ii=polygon.length; i<ii; i++) {
- coords = OpenLayers.String.trim(
- polygon[i].firstChild.nodeValue
- ).split(/\s+/);
- points = [];
- for (var j=0, jj=coords.length; j<jj; j+=2) {
- p = new OpenLayers.Geometry.Point(coords[j+1], coords[j]);
- points.push(p);
- }
- components.push(
- new OpenLayers.Geometry.Polygon(
- [new OpenLayers.Geometry.LinearRing(points)]
- )
- );
- }
- }
-
- if (this.internalProjection && this.externalProjection) {
- for (var i=0, ii=components.length; i<ii; i++) {
- if (components[i]) {
- components[i].transform(
- this.externalProjection,
- this.internalProjection
- );
- }
- }
- }
-
- return components;
- },
-
- /**
- * Method: parsePersonConstruct
- * Parse Atom person constructs from an Atom entry node.
- *
- * Parameters:
- * node - {DOMElement} An Atom entry or feed node.
- * name - {String} Construcy name ("author" or "contributor")
- * data = {Object} Object in which to put parsed persons.
- *
- * Returns:
- * An {Object}.
- */
- parsePersonConstructs: function(node, name, data) {
- var persons = [];
- var atomns = this.namespaces.atom;
- var nodes = this.getElementsByTagNameNS(node, atomns, name);
- var oAtts = ["uri", "email"];
- for (var i=0, ii=nodes.length; i<ii; i++) {
- var value = {};
- value.name = this.getFirstChildValue(
- nodes[i],
- atomns,
- "name",
- null
- );
- for (var j=0, jj=oAtts.length; j<jj; j++) {
- var attval = this.getFirstChildValue(
- nodes[i],
- atomns,
- oAtts[j],
- null);
- if (attval) {
- value[oAtts[j]] = attval;
- }
- }
- persons.push(value);
- }
- if (persons.length > 0) {
- data[name + "s"] = persons;
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.Atom"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/CQL.js b/misc/openlayers/lib/OpenLayers/Format/CQL.js
deleted file mode 100644
index 8430a8b..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/CQL.js
+++ /dev/null
@@ -1,452 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WKT.js
- * @requires OpenLayers/Filter/Comparison.js
- * @requires OpenLayers/Filter/Logical.js
- * @requires OpenLayers/Filter/Spatial.js
- */
-
-/**
- * Class: OpenLayers.Format.CQL
- * Read CQL strings to get <OpenLayers.Filter> objects. Write
- * <OpenLayers.Filter> objects to get CQL strings. Create a new parser with
- * the <OpenLayers.Format.CQL> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.CQL = (function() {
-
- var tokens = [
- "PROPERTY", "COMPARISON", "VALUE", "LOGICAL"
- ],
-
- patterns = {
- PROPERTY: /^[_a-zA-Z]\w*/,
- COMPARISON: /^(=|<>|<=|<|>=|>|LIKE)/i,
- IS_NULL: /^IS NULL/i,
- COMMA: /^,/,
- LOGICAL: /^(AND|OR)/i,
- VALUE: /^('([^']|'')*'|\d+(\.\d*)?|\.\d+)/,
- LPAREN: /^\(/,
- RPAREN: /^\)/,
- SPATIAL: /^(BBOX|INTERSECTS|DWITHIN|WITHIN|CONTAINS)/i,
- NOT: /^NOT/i,
- BETWEEN: /^BETWEEN/i,
- GEOMETRY: function(text) {
- var type = /^(POINT|LINESTRING|POLYGON|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION)/.exec(text);
- if (type) {
- var len = text.length;
- var idx = text.indexOf("(", type[0].length);
- if (idx > -1) {
- var depth = 1;
- while (idx < len && depth > 0) {
- idx++;
- switch(text.charAt(idx)) {
- case '(':
- depth++;
- break;
- case ')':
- depth--;
- break;
- default:
- // in default case, do nothing
- }
- }
- }
- return [text.substr(0, idx+1)];
- }
- },
- END: /^$/
- },
-
- follows = {
- LPAREN: ['GEOMETRY', 'SPATIAL', 'PROPERTY', 'VALUE', 'LPAREN'],
- RPAREN: ['NOT', 'LOGICAL', 'END', 'RPAREN'],
- PROPERTY: ['COMPARISON', 'BETWEEN', 'COMMA', 'IS_NULL'],
- BETWEEN: ['VALUE'],
- IS_NULL: ['END'],
- COMPARISON: ['VALUE'],
- COMMA: ['GEOMETRY', 'VALUE', 'PROPERTY'],
- VALUE: ['LOGICAL', 'COMMA', 'RPAREN', 'END'],
- SPATIAL: ['LPAREN'],
- LOGICAL: ['NOT', 'VALUE', 'SPATIAL', 'PROPERTY', 'LPAREN'],
- NOT: ['PROPERTY', 'LPAREN'],
- GEOMETRY: ['COMMA', 'RPAREN']
- },
-
- operators = {
- '=': OpenLayers.Filter.Comparison.EQUAL_TO,
- '<>': OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
- '<': OpenLayers.Filter.Comparison.LESS_THAN,
- '<=': OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
- '>': OpenLayers.Filter.Comparison.GREATER_THAN,
- '>=': OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
- 'LIKE': OpenLayers.Filter.Comparison.LIKE,
- 'BETWEEN': OpenLayers.Filter.Comparison.BETWEEN,
- 'IS NULL': OpenLayers.Filter.Comparison.IS_NULL
- },
-
- operatorReverse = {},
-
- logicals = {
- 'AND': OpenLayers.Filter.Logical.AND,
- 'OR': OpenLayers.Filter.Logical.OR
- },
-
- logicalReverse = {},
-
- precedence = {
- 'RPAREN': 3,
- 'LOGICAL': 2,
- 'COMPARISON': 1
- };
-
- var i;
- for (i in operators) {
- if (operators.hasOwnProperty(i)) {
- operatorReverse[operators[i]] = i;
- }
- }
-
- for (i in logicals) {
- if (logicals.hasOwnProperty(i)) {
- logicalReverse[logicals[i]] = i;
- }
- }
-
- function tryToken(text, pattern) {
- if (pattern instanceof RegExp) {
- return pattern.exec(text);
- } else {
- return pattern(text);
- }
- }
-
- function nextToken(text, tokens) {
- var i, token, len = tokens.length;
- for (i=0; i<len; i++) {
- token = tokens[i];
- var pat = patterns[token];
- var matches = tryToken(text, pat);
- if (matches) {
- var match = matches[0];
- var remainder = text.substr(match.length).replace(/^\s*/, "");
- return {
- type: token,
- text: match,
- remainder: remainder
- };
- }
- }
-
- var msg = "ERROR: In parsing: [" + text + "], expected one of: ";
- for (i=0; i<len; i++) {
- token = tokens[i];
- msg += "\n " + token + ": " + patterns[token];
- }
-
- throw new Error(msg);
- }
-
- function tokenize(text) {
- var results = [];
- var token, expect = ["NOT", "GEOMETRY", "SPATIAL", "PROPERTY", "LPAREN"];
-
- do {
- token = nextToken(text, expect);
- text = token.remainder;
- expect = follows[token.type];
- if (token.type != "END" && !expect) {
- throw new Error("No follows list for " + token.type);
- }
- results.push(token);
- } while (token.type != "END");
-
- return results;
- }
-
- function buildAst(tokens) {
- var operatorStack = [],
- postfix = [];
-
- while (tokens.length) {
- var tok = tokens.shift();
- switch (tok.type) {
- case "PROPERTY":
- case "GEOMETRY":
- case "VALUE":
- postfix.push(tok);
- break;
- case "COMPARISON":
- case "BETWEEN":
- case "IS_NULL":
- case "LOGICAL":
- var p = precedence[tok.type];
-
- while (operatorStack.length > 0 &&
- (precedence[operatorStack[operatorStack.length - 1].type] <= p)
- ) {
- postfix.push(operatorStack.pop());
- }
-
- operatorStack.push(tok);
- break;
- case "SPATIAL":
- case "NOT":
- case "LPAREN":
- operatorStack.push(tok);
- break;
- case "RPAREN":
- while (operatorStack.length > 0 &&
- (operatorStack[operatorStack.length - 1].type != "LPAREN")
- ) {
- postfix.push(operatorStack.pop());
- }
- operatorStack.pop(); // toss out the LPAREN
-
- if (operatorStack.length > 0 &&
- operatorStack[operatorStack.length-1].type == "SPATIAL") {
- postfix.push(operatorStack.pop());
- }
- case "COMMA":
- case "END":
- break;
- default:
- throw new Error("Unknown token type " + tok.type);
- }
- }
-
- while (operatorStack.length > 0) {
- postfix.push(operatorStack.pop());
- }
-
- function buildTree() {
- var tok = postfix.pop();
- switch (tok.type) {
- case "LOGICAL":
- var rhs = buildTree(),
- lhs = buildTree();
- return new OpenLayers.Filter.Logical({
- filters: [lhs, rhs],
- type: logicals[tok.text.toUpperCase()]
- });
- case "NOT":
- var operand = buildTree();
- return new OpenLayers.Filter.Logical({
- filters: [operand],
- type: OpenLayers.Filter.Logical.NOT
- });
- case "BETWEEN":
- var min, max, property;
- postfix.pop(); // unneeded AND token here
- max = buildTree();
- min = buildTree();
- property = buildTree();
- return new OpenLayers.Filter.Comparison({
- property: property,
- lowerBoundary: min,
- upperBoundary: max,
- type: OpenLayers.Filter.Comparison.BETWEEN
- });
- case "COMPARISON":
- var value = buildTree(),
- property = buildTree();
- return new OpenLayers.Filter.Comparison({
- property: property,
- value: value,
- type: operators[tok.text.toUpperCase()]
- });
- case "IS_NULL":
- var property = buildTree();
- return new OpenLayers.Filter.Comparison({
- property: property,
- type: operators[tok.text.toUpperCase()]
- });
- case "VALUE":
- var match = tok.text.match(/^'(.*)'$/);
- if (match) {
- return match[1].replace(/''/g, "'");
- } else {
- return Number(tok.text);
- }
- case "SPATIAL":
- switch(tok.text.toUpperCase()) {
- case "BBOX":
- var maxy = buildTree(),
- maxx = buildTree(),
- miny = buildTree(),
- minx = buildTree(),
- prop = buildTree();
-
- return new OpenLayers.Filter.Spatial({
- type: OpenLayers.Filter.Spatial.BBOX,
- property: prop,
- value: OpenLayers.Bounds.fromArray(
- [minx, miny, maxx, maxy]
- )
- });
- case "INTERSECTS":
- var value = buildTree(),
- property = buildTree();
- return new OpenLayers.Filter.Spatial({
- type: OpenLayers.Filter.Spatial.INTERSECTS,
- property: property,
- value: value
- });
- case "WITHIN":
- var value = buildTree(),
- property = buildTree();
- return new OpenLayers.Filter.Spatial({
- type: OpenLayers.Filter.Spatial.WITHIN,
- property: property,
- value: value
- });
- case "CONTAINS":
- var value = buildTree(),
- property = buildTree();
- return new OpenLayers.Filter.Spatial({
- type: OpenLayers.Filter.Spatial.CONTAINS,
- property: property,
- value: value
- });
- case "DWITHIN":
- var distance = buildTree(),
- value = buildTree(),
- property = buildTree();
- return new OpenLayers.Filter.Spatial({
- type: OpenLayers.Filter.Spatial.DWITHIN,
- value: value,
- property: property,
- distance: Number(distance)
- });
- }
- case "GEOMETRY":
- return OpenLayers.Geometry.fromWKT(tok.text);
- default:
- return tok.text;
- }
- }
-
- var result = buildTree();
- if (postfix.length > 0) {
- var msg = "Remaining tokens after building AST: \n";
- for (var i = postfix.length - 1; i >= 0; i--) {
- msg += postfix[i].type + ": " + postfix[i].text + "\n";
- }
- throw new Error(msg);
- }
-
- return result;
- }
-
- return OpenLayers.Class(OpenLayers.Format, {
- /**
- * APIMethod: read
- * Generate a filter from a CQL string.
-
- * Parameters:
- * text - {String} The CQL text.
- *
- * Returns:
- * {<OpenLayers.Filter>} A filter based on the CQL text.
- */
- read: function(text) {
- var result = buildAst(tokenize(text));
- if (this.keepData) {
- this.data = result;
- }
- return result;
- },
-
- /**
- * APIMethod: write
- * Convert a filter into a CQL string.
-
- * Parameters:
- * filter - {<OpenLayers.Filter>} The filter.
- *
- * Returns:
- * {String} A CQL string based on the filter.
- */
- write: function(filter) {
- if (filter instanceof OpenLayers.Geometry) {
- return filter.toString();
- }
- switch (filter.CLASS_NAME) {
- case "OpenLayers.Filter.Spatial":
- switch(filter.type) {
- case OpenLayers.Filter.Spatial.BBOX:
- return "BBOX(" +
- filter.property + "," +
- filter.value.toBBOX() +
- ")";
- case OpenLayers.Filter.Spatial.DWITHIN:
- return "DWITHIN(" +
- filter.property + ", " +
- this.write(filter.value) + ", " +
- filter.distance + ")";
- case OpenLayers.Filter.Spatial.WITHIN:
- return "WITHIN(" +
- filter.property + ", " +
- this.write(filter.value) + ")";
- case OpenLayers.Filter.Spatial.INTERSECTS:
- return "INTERSECTS(" +
- filter.property + ", " +
- this.write(filter.value) + ")";
- case OpenLayers.Filter.Spatial.CONTAINS:
- return "CONTAINS(" +
- filter.property + ", " +
- this.write(filter.value) + ")";
- default:
- throw new Error("Unknown spatial filter type: " + filter.type);
- }
- case "OpenLayers.Filter.Logical":
- if (filter.type == OpenLayers.Filter.Logical.NOT) {
- // TODO: deal with precedence of logical operators to
- // avoid extra parentheses (not urgent)
- return "NOT (" + this.write(filter.filters[0]) + ")";
- } else {
- var res = "(";
- var first = true;
- for (var i = 0; i < filter.filters.length; i++) {
- if (first) {
- first = false;
- } else {
- res += ") " + logicalReverse[filter.type] + " (";
- }
- res += this.write(filter.filters[i]);
- }
- return res + ")";
- }
- case "OpenLayers.Filter.Comparison":
- if (filter.type == OpenLayers.Filter.Comparison.BETWEEN) {
- return filter.property + " BETWEEN " +
- this.write(filter.lowerBoundary) + " AND " +
- this.write(filter.upperBoundary);
- } else {
- return (filter.value !== null) ? filter.property +
- " " + operatorReverse[filter.type] + " " +
- this.write(filter.value) : filter.property +
- " " + operatorReverse[filter.type];
- }
- case undefined:
- if (typeof filter === "string") {
- return "'" + filter.replace(/'/g, "''") + "'";
- } else if (typeof filter === "number") {
- return String(filter);
- }
- default:
- throw new Error("Can't encode: " + filter.CLASS_NAME + " " + filter);
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.CQL"
-
- });
-})();
-
diff --git a/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js b/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js
deleted file mode 100644
index 18d5328..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format.js
- */
-
-/**
- * Class: OpenLayers.Format.CSWGetDomain
- * Default version is 2.0.2.
- *
- * Returns:
- * {<OpenLayers.Format>} A CSWGetDomain format of the given version.
- */
-OpenLayers.Format.CSWGetDomain = function(options) {
- options = OpenLayers.Util.applyDefaults(
- options, OpenLayers.Format.CSWGetDomain.DEFAULTS
- );
- var cls = OpenLayers.Format.CSWGetDomain["v"+options.version.replace(/\./g, "_")];
- if(!cls) {
- throw "Unsupported CSWGetDomain version: " + options.version;
- }
- return new cls(options);
-};
-
-/**
- * Constant: DEFAULTS
- * {Object} Default properties for the CSWGetDomain format.
- */
-OpenLayers.Format.CSWGetDomain.DEFAULTS = {
- "version": "2.0.2"
-};
diff --git a/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js b/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
deleted file mode 100644
index 78200ea..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/CSWGetDomain/v2_0_2.js
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/CSWGetDomain.js
- */
-
-/**
- * Class: OpenLayers.Format.CSWGetDomain.v2_0_2
- * A format for creating CSWGetDomain v2.0.2 transactions.
- * Create a new instance with the
- * <OpenLayers.Format.CSWGetDomain.v2_0_2> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.CSWGetDomain.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance",
- csw: "http://www.opengis.net/cat/csw/2.0.2"
- },
-
- /**
- * Property: defaultPrefix
- * {String} The default prefix (used by Format.XML).
- */
- defaultPrefix: "csw",
-
- /**
- * Property: version
- * {String} CSW version number.
- */
- version: "2.0.2",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/cat/csw/2.0.2
- * http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd
- */
- schemaLocation: "http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",
-
- /**
- * APIProperty: PropertyName
- * {String} Value of the csw:PropertyName element, used when
- * writing a GetDomain document.
- */
- PropertyName: null,
-
- /**
- * APIProperty: ParameterName
- * {String} Value of the csw:ParameterName element, used when
- * writing a GetDomain document.
- */
- ParameterName: null,
-
- /**
- * Constructor: OpenLayers.Format.CSWGetDomain.v2_0_2
- * A class for parsing and generating CSWGetDomain v2.0.2 transactions.
- *
- * Parameters:
- * options - {Object} Optional object whose properties will be set on the
- * instance.
- *
- * Valid options properties:
- * - PropertyName
- * - ParameterName
- */
-
- /**
- * APIMethod: read
- * Parse the response from a GetDomain request.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var obj = {};
- this.readNode(data, obj);
- return obj;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "csw": {
- "GetDomainResponse": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "DomainValues": function(node, obj) {
- if (!(OpenLayers.Util.isArray(obj.DomainValues))) {
- obj.DomainValues = [];
- }
- var attrs = node.attributes;
- var domainValue = {};
- for(var i=0, len=attrs.length; i<len; ++i) {
- domainValue[attrs[i].name] = attrs[i].nodeValue;
- }
- this.readChildNodes(node, domainValue);
- obj.DomainValues.push(domainValue);
- },
- "PropertyName": function(node, obj) {
- obj.PropertyName = this.getChildValue(node);
- },
- "ParameterName": function(node, obj) {
- obj.ParameterName = this.getChildValue(node);
- },
- "ListOfValues": function(node, obj) {
- if (!(OpenLayers.Util.isArray(obj.ListOfValues))) {
- obj.ListOfValues = [];
- }
- this.readChildNodes(node, obj.ListOfValues);
- },
- "Value": function(node, obj) {
- var attrs = node.attributes;
- var value = {};
- for(var i=0, len=attrs.length; i<len; ++i) {
- value[attrs[i].name] = attrs[i].nodeValue;
- }
- value.value = this.getChildValue(node);
- obj.push({Value: value});
- },
- "ConceptualScheme": function(node, obj) {
- obj.ConceptualScheme = {};
- this.readChildNodes(node, obj.ConceptualScheme);
- },
- "Name": function(node, obj) {
- obj.Name = this.getChildValue(node);
- },
- "Document": function(node, obj) {
- obj.Document = this.getChildValue(node);
- },
- "Authority": function(node, obj) {
- obj.Authority = this.getChildValue(node);
- },
- "RangeOfValues": function(node, obj) {
- obj.RangeOfValues = {};
- this.readChildNodes(node, obj.RangeOfValues);
- },
- "MinValue": function(node, obj) {
- var attrs = node.attributes;
- var value = {};
- for(var i=0, len=attrs.length; i<len; ++i) {
- value[attrs[i].name] = attrs[i].nodeValue;
- }
- value.value = this.getChildValue(node);
- obj.MinValue = value;
- },
- "MaxValue": function(node, obj) {
- var attrs = node.attributes;
- var value = {};
- for(var i=0, len=attrs.length; i<len; ++i) {
- value[attrs[i].name] = attrs[i].nodeValue;
- }
- value.value = this.getChildValue(node);
- obj.MaxValue = value;
- }
- }
- },
-
- /**
- * APIMethod: write
- * Given an configuration js object, write a CSWGetDomain request.
- *
- * Parameters:
- * options - {Object} A object mapping the request.
- *
- * Returns:
- * {String} A serialized CSWGetDomain request.
- */
- write: function(options) {
- var node = this.writeNode("csw:GetDomain", options);
- return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "csw": {
- "GetDomain": function(options) {
- var node = this.createElementNSPlus("csw:GetDomain", {
- attributes: {
- service: "CSW",
- version: this.version
- }
- });
- if (options.PropertyName || this.PropertyName) {
- this.writeNode(
- "csw:PropertyName",
- options.PropertyName || this.PropertyName,
- node
- );
- } else if (options.ParameterName || this.ParameterName) {
- this.writeNode(
- "csw:ParameterName",
- options.ParameterName || this.ParameterName,
- node
- );
- }
- this.readChildNodes(node, options);
- return node;
- },
- "PropertyName": function(value) {
- var node = this.createElementNSPlus("csw:PropertyName", {
- value: value
- });
- return node;
- },
- "ParameterName": function(value) {
- var node = this.createElementNSPlus("csw:ParameterName", {
- value: value
- });
- return node;
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.CSWGetDomain.v2_0_2"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js b/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js
deleted file mode 100644
index 923c548..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format.js
- */
-
-/**
- * Class: OpenLayers.Format.CSWGetRecords
- * Default version is 2.0.2.
- *
- * Returns:
- * {<OpenLayers.Format>} A CSWGetRecords format of the given version.
- */
-OpenLayers.Format.CSWGetRecords = function(options) {
- options = OpenLayers.Util.applyDefaults(
- options, OpenLayers.Format.CSWGetRecords.DEFAULTS
- );
- var cls = OpenLayers.Format.CSWGetRecords["v"+options.version.replace(/\./g, "_")];
- if(!cls) {
- throw "Unsupported CSWGetRecords version: " + options.version;
- }
- return new cls(options);
-};
-
-/**
- * Constant: DEFAULTS
- * {Object} Default properties for the CSWGetRecords format.
- */
-OpenLayers.Format.CSWGetRecords.DEFAULTS = {
- "version": "2.0.2"
-};
diff --git a/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js b/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
deleted file mode 100644
index 3c87612..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/CSWGetRecords/v2_0_2.js
+++ /dev/null
@@ -1,457 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/CSWGetRecords.js
- * @requires OpenLayers/Format/Filter/v1_0_0.js
- * @requires OpenLayers/Format/Filter/v1_1_0.js
- * @requires OpenLayers/Format/OWSCommon/v1_0_0.js
- */
-
-/**
- * Class: OpenLayers.Format.CSWGetRecords.v2_0_2
- * A format for creating CSWGetRecords v2.0.2 transactions.
- * Create a new instance with the
- * <OpenLayers.Format.CSWGetRecords.v2_0_2> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.CSWGetRecords.v2_0_2 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- csw: "http://www.opengis.net/cat/csw/2.0.2",
- dc: "http://purl.org/dc/elements/1.1/",
- dct: "http://purl.org/dc/terms/",
- gmd: "http://www.isotc211.org/2005/gmd",
- geonet: "http://www.fao.org/geonetwork",
- ogc: "http://www.opengis.net/ogc",
- ows: "http://www.opengis.net/ows",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: defaultPrefix
- * {String} The default prefix (used by Format.XML).
- */
- defaultPrefix: "csw",
-
- /**
- * Property: version
- * {String} CSW version number.
- */
- version: "2.0.2",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/cat/csw/2.0.2
- * http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd
- */
- schemaLocation: "http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",
-
- /**
- * APIProperty: requestId
- * {String} Value of the requestId attribute of the GetRecords element.
- */
- requestId: null,
-
- /**
- * APIProperty: resultType
- * {String} Value of the resultType attribute of the GetRecords element,
- * specifies the result type in the GetRecords response, "hits" is
- * the default.
- */
- resultType: null,
-
- /**
- * APIProperty: outputFormat
- * {String} Value of the outputFormat attribute of the GetRecords element,
- * specifies the format of the GetRecords response,
- * "application/xml" is the default.
- */
- outputFormat: null,
-
- /**
- * APIProperty: outputSchema
- * {String} Value of the outputSchema attribute of the GetRecords element,
- * specifies the schema of the GetRecords response.
- */
- outputSchema: null,
-
- /**
- * APIProperty: startPosition
- * {String} Value of the startPosition attribute of the GetRecords element,
- * specifies the start position (offset+1) for the GetRecords response,
- * 1 is the default.
- */
- startPosition: null,
-
- /**
- * APIProperty: maxRecords
- * {String} Value of the maxRecords attribute of the GetRecords element,
- * specifies the maximum number of records in the GetRecords response,
- * 10 is the default.
- */
- maxRecords: null,
-
- /**
- * APIProperty: DistributedSearch
- * {String} Value of the csw:DistributedSearch element, used when writing
- * a csw:GetRecords document.
- */
- DistributedSearch: null,
-
- /**
- * APIProperty: ResponseHandler
- * {Array({String})} Values of the csw:ResponseHandler elements, used when
- * writting a csw:GetRecords document.
- */
- ResponseHandler: null,
-
- /**
- * APIProperty: Query
- * {String} Value of the csw:Query element, used when writing a csw:GetRecords
- * document.
- */
- Query: null,
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constructor: OpenLayers.Format.CSWGetRecords.v2_0_2
- * A class for parsing and generating CSWGetRecords v2.0.2 transactions.
- *
- * Parameters:
- * options - {Object} Optional object whose properties will be set on the
- * instance.
- *
- * Valid options properties (documented as class properties):
- * - requestId
- * - resultType
- * - outputFormat
- * - outputSchema
- * - startPosition
- * - maxRecords
- * - DistributedSearch
- * - ResponseHandler
- * - Query
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Parse the response from a GetRecords request.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var obj = {};
- this.readNode(data, obj);
- return obj;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "csw": {
- "GetRecordsResponse": function(node, obj) {
- obj.records = [];
- this.readChildNodes(node, obj);
- var version = this.getAttributeNS(node, "", 'version');
- if (version != "") {
- obj.version = version;
- }
- },
- "RequestId": function(node, obj) {
- obj.RequestId = this.getChildValue(node);
- },
- "SearchStatus": function(node, obj) {
- obj.SearchStatus = {};
- var timestamp = this.getAttributeNS(node, "", 'timestamp');
- if (timestamp != "") {
- obj.SearchStatus.timestamp = timestamp;
- }
- },
- "SearchResults": function(node, obj) {
- this.readChildNodes(node, obj);
- var attrs = node.attributes;
- var SearchResults = {};
- for(var i=0, len=attrs.length; i<len; ++i) {
- if ((attrs[i].name == "numberOfRecordsMatched") ||
- (attrs[i].name == "numberOfRecordsReturned") ||
- (attrs[i].name == "nextRecord")) {
- SearchResults[attrs[i].name] = parseInt(attrs[i].nodeValue);
- } else {
- SearchResults[attrs[i].name] = attrs[i].nodeValue;
- }
- }
- obj.SearchResults = SearchResults;
- },
- "SummaryRecord": function(node, obj) {
- var record = {type: "SummaryRecord"};
- this.readChildNodes(node, record);
- obj.records.push(record);
- },
- "BriefRecord": function(node, obj) {
- var record = {type: "BriefRecord"};
- this.readChildNodes(node, record);
- obj.records.push(record);
- },
- "DCMIRecord": function(node, obj) {
- var record = {type: "DCMIRecord"};
- this.readChildNodes(node, record);
- obj.records.push(record);
- },
- "Record": function(node, obj) {
- var record = {type: "Record"};
- this.readChildNodes(node, record);
- obj.records.push(record);
- },
- "*": function(node, obj) {
- var name = node.localName || node.nodeName.split(":").pop();
- obj[name] = this.getChildValue(node);
- }
- },
- "geonet": {
- "info": function(node, obj) {
- var gninfo = {};
- this.readChildNodes(node, gninfo);
- obj.gninfo = gninfo;
- }
- },
- "dc": {
- // audience, contributor, coverage, creator, date, description, format,
- // identifier, language, provenance, publisher, relation, rights,
- // rightsHolder, source, subject, title, type, URI
- "*": function(node, obj) {
- var name = node.localName || node.nodeName.split(":").pop();
- if (!(OpenLayers.Util.isArray(obj[name]))) {
- obj[name] = [];
- }
- var dc_element = {};
- var attrs = node.attributes;
- for(var i=0, len=attrs.length; i<len; ++i) {
- dc_element[attrs[i].name] = attrs[i].nodeValue;
- }
- dc_element.value = this.getChildValue(node);
- if (dc_element.value != "") {
- obj[name].push(dc_element);
- }
- }
- },
- "dct": {
- // abstract, modified, spatial
- "*": function(node, obj) {
- var name = node.localName || node.nodeName.split(":").pop();
- if (!(OpenLayers.Util.isArray(obj[name]))) {
- obj[name] = [];
- }
- obj[name].push(this.getChildValue(node));
- }
- },
- "ows": OpenLayers.Util.applyDefaults({
- "BoundingBox": function(node, obj) {
- if (obj.bounds) {
- obj.BoundingBox = [{crs: obj.projection, value:
- [
- obj.bounds.left,
- obj.bounds.bottom,
- obj.bounds.right,
- obj.bounds.top
- ]
- }];
- delete obj.projection;
- delete obj.bounds;
- }
- OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers["ows"]["BoundingBox"].apply(
- this, arguments);
- }
- }, OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers["ows"])
- },
-
- /**
- * Method: write
- * Given an configuration js object, write a CSWGetRecords request.
- *
- * Parameters:
- * options - {Object} A object mapping the request.
- *
- * Returns:
- * {String} A serialized CSWGetRecords request.
- */
- write: function(options) {
- var node = this.writeNode("csw:GetRecords", options);
- node.setAttribute("xmlns:gmd", this.namespaces.gmd);
- return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "csw": {
- "GetRecords": function(options) {
- if (!options) {
- options = {};
- }
- var node = this.createElementNSPlus("csw:GetRecords", {
- attributes: {
- service: "CSW",
- version: this.version,
- requestId: options.requestId || this.requestId,
- resultType: options.resultType || this.resultType,
- outputFormat: options.outputFormat || this.outputFormat,
- outputSchema: options.outputSchema || this.outputSchema,
- startPosition: options.startPosition || this.startPosition,
- maxRecords: options.maxRecords || this.maxRecords
- }
- });
- if (options.DistributedSearch || this.DistributedSearch) {
- this.writeNode(
- "csw:DistributedSearch",
- options.DistributedSearch || this.DistributedSearch,
- node
- );
- }
- var ResponseHandler = options.ResponseHandler || this.ResponseHandler;
- if (OpenLayers.Util.isArray(ResponseHandler) && ResponseHandler.length > 0) {
- // ResponseHandler must be a non-empty array
- for(var i=0, len=ResponseHandler.length; i<len; i++) {
- this.writeNode(
- "csw:ResponseHandler",
- ResponseHandler[i],
- node
- );
- }
- }
- this.writeNode("Query", options.Query || this.Query, node);
- return node;
- },
- "DistributedSearch": function(options) {
- var node = this.createElementNSPlus("csw:DistributedSearch", {
- attributes: {
- hopCount: options.hopCount
- }
- });
- return node;
- },
- "ResponseHandler": function(options) {
- var node = this.createElementNSPlus("csw:ResponseHandler", {
- value: options.value
- });
- return node;
- },
- "Query": function(options) {
- if (!options) {
- options = {};
- }
- var node = this.createElementNSPlus("csw:Query", {
- attributes: {
- typeNames: options.typeNames || "csw:Record"
- }
- });
- var ElementName = options.ElementName;
- if (OpenLayers.Util.isArray(ElementName) && ElementName.length > 0) {
- // ElementName must be a non-empty array
- for(var i=0, len=ElementName.length; i<len; i++) {
- this.writeNode(
- "csw:ElementName",
- ElementName[i],
- node
- );
- }
- } else {
- this.writeNode(
- "csw:ElementSetName",
- options.ElementSetName || {value: 'summary'},
- node
- );
- }
- if (options.Constraint) {
- this.writeNode(
- "csw:Constraint",
- options.Constraint,
- node
- );
- }
- if (options.SortBy) {
- this.writeNode(
- "ogc:SortBy",
- options.SortBy,
- node
- );
- }
- return node;
- },
- "ElementName": function(options) {
- var node = this.createElementNSPlus("csw:ElementName", {
- value: options.value
- });
- return node;
- },
- "ElementSetName": function(options) {
- var node = this.createElementNSPlus("csw:ElementSetName", {
- attributes: {
- typeNames: options.typeNames
- },
- value: options.value
- });
- return node;
- },
- "Constraint": function(options) {
- var node = this.createElementNSPlus("csw:Constraint", {
- attributes: {
- version: options.version
- }
- });
- if (options.Filter) {
- var format = new OpenLayers.Format.Filter({
- version: options.version
- });
- node.appendChild(format.write(options.Filter));
- } else if (options.CqlText) {
- var child = this.createElementNSPlus("CqlText", {
- value: options.CqlText.value
- });
- node.appendChild(child);
- }
- return node;
- }
- },
- "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.writers["ogc"]
- },
-
- CLASS_NAME: "OpenLayers.Format.CSWGetRecords.v2_0_2"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/Context.js b/misc/openlayers/lib/OpenLayers/Format/Context.js
deleted file mode 100644
index 73d6203..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Context.js
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.Context
- * Base class for both Format.WMC and Format.OWSContext
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.Context = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * Property: layerOptions
- * {Object} Default options for layers created by the parser. These
- * options are overridden by the options which are read from the
- * capabilities document.
- */
- layerOptions: null,
-
- /**
- * Property: layerParams
- * {Object} Default parameters for layers created by the parser. This
- * can be used e.g. to override DEFAULT_PARAMS for
- * OpenLayers.Layer.WMS.
- */
- layerParams: null,
-
- /**
- * Constructor: OpenLayers.Format.Context
- * Create a new parser for Context documents.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read Context data from a string, and return an object with map
- * properties and a list of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- * options - {Object} The options object must contain a map property. If
- * the map property is a string, it must be the id of a dom element
- * where the new map will be placed. If the map property is an
- * <OpenLayers.Map>, the layers from the context document will be added
- * to the map.
- *
- * Returns:
- * {<OpenLayers.Map>} A map based on the context.
- */
- read: function(data, options) {
- var context = OpenLayers.Format.XML.VersionedOGC.prototype.read.apply(this,
- arguments);
- var map;
- if(options && options.map) {
- this.context = context;
- if(options.map instanceof OpenLayers.Map) {
- map = this.mergeContextToMap(context, options.map);
- } else {
- var mapOptions = options.map;
- if(OpenLayers.Util.isElement(mapOptions) ||
- typeof mapOptions == "string") {
- // we assume mapOptions references a div
- // element
- mapOptions = {div: mapOptions};
- }
- map = this.contextToMap(context, mapOptions);
- }
- } else {
- // not documented as part of the API, provided as a non-API option
- map = context;
- }
- return map;
- },
-
- /**
- * Method: getLayerFromContext
- * Create a WMS layer from a layerContext object.
- *
- * Parameters:
- * layerContext - {Object} An object representing a WMS layer.
- *
- * Returns:
- * {<OpenLayers.Layer.WMS>} A WMS layer.
- */
- getLayerFromContext: function(layerContext) {
- var i, len;
- // fill initial options object from layerContext
- var options = {
- queryable: layerContext.queryable, //keep queryable for api compatibility
- visibility: layerContext.visibility,
- maxExtent: layerContext.maxExtent,
- metadata: OpenLayers.Util.applyDefaults(layerContext.metadata,
- {styles: layerContext.styles,
- formats: layerContext.formats,
- "abstract": layerContext["abstract"],
- dataURL: layerContext.dataURL
- }),
- numZoomLevels: layerContext.numZoomLevels,
- units: layerContext.units,
- isBaseLayer: layerContext.isBaseLayer,
- opacity: layerContext.opacity,
- displayInLayerSwitcher: layerContext.displayInLayerSwitcher,
- singleTile: layerContext.singleTile,
- tileSize: (layerContext.tileSize) ?
- new OpenLayers.Size(
- layerContext.tileSize.width,
- layerContext.tileSize.height
- ) : undefined,
- minScale: layerContext.minScale || layerContext.maxScaleDenominator,
- maxScale: layerContext.maxScale || layerContext.minScaleDenominator,
- srs: layerContext.srs,
- dimensions: layerContext.dimensions,
- metadataURL: layerContext.metadataURL
- };
- if (this.layerOptions) {
- OpenLayers.Util.applyDefaults(options, this.layerOptions);
- }
-
- var params = {
- layers: layerContext.name,
- transparent: layerContext.transparent,
- version: layerContext.version
- };
- if (layerContext.formats && layerContext.formats.length>0) {
- // set default value for params if current attribute is not positionned
- params.format = layerContext.formats[0].value;
- for (i=0, len=layerContext.formats.length; i<len; i++) {
- var format = layerContext.formats[i];
- if (format.current == true) {
- params.format = format.value;
- break;
- }
- }
- }
- if (layerContext.styles && layerContext.styles.length>0) {
- for (i=0, len=layerContext.styles.length; i<len; i++) {
- var style = layerContext.styles[i];
- if (style.current == true) {
- // three style types to consider
- // 1) linked SLD
- // 2) inline SLD
- // 3) named style
- if(style.href) {
- params.sld = style.href;
- } else if(style.body) {
- params.sld_body = style.body;
- } else {
- params.styles = style.name;
- }
- break;
- }
- }
- }
- if (this.layerParams) {
- OpenLayers.Util.applyDefaults(params, this.layerParams);
- }
-
- var layer = null;
- var service = layerContext.service;
- if (service == OpenLayers.Format.Context.serviceTypes.WFS) {
- options.strategies = [new OpenLayers.Strategy.BBOX()];
- options.protocol = new OpenLayers.Protocol.WFS({
- url: layerContext.url,
- // since we do not know featureNS, let the protocol
- // determine it automagically using featurePrefix
- featurePrefix: layerContext.name.split(":")[0],
- featureType: layerContext.name.split(":").pop()
- });
- layer = new OpenLayers.Layer.Vector(
- layerContext.title || layerContext.name,
- options
- );
- } else if (service == OpenLayers.Format.Context.serviceTypes.KML) {
- // use a vector layer with an HTTP Protcol and a Fixed strategy
- options.strategies = [new OpenLayers.Strategy.Fixed()];
- options.protocol = new OpenLayers.Protocol.HTTP({
- url: layerContext.url,
- format: new OpenLayers.Format.KML()
- });
- layer = new OpenLayers.Layer.Vector(
- layerContext.title || layerContext.name,
- options
- );
- } else if (service == OpenLayers.Format.Context.serviceTypes.GML) {
- // use a vector layer with a HTTP Protocol and a Fixed strategy
- options.strategies = [new OpenLayers.Strategy.Fixed()];
- options.protocol = new OpenLayers.Protocol.HTTP({
- url: layerContext.url,
- format: new OpenLayers.Format.GML()
- });
- layer = new OpenLayers.Layer.Vector(
- layerContext.title || layerContext.name,
- options
- );
- } else if (layerContext.features) {
- // inline GML or KML features
- layer = new OpenLayers.Layer.Vector(
- layerContext.title || layerContext.name,
- options
- );
- layer.addFeatures(layerContext.features);
- } else if (layerContext.categoryLayer !== true) {
- layer = new OpenLayers.Layer.WMS(
- layerContext.title || layerContext.name,
- layerContext.url,
- params,
- options
- );
- }
- return layer;
- },
-
- /**
- * Method: getLayersFromContext
- * Create an array of layers from an array of layerContext objects.
- *
- * Parameters:
- * layersContext - {Array(Object)} An array of objects representing layers.
- *
- * Returns:
- * {Array(<OpenLayers.Layer>)} An array of layers.
- */
- getLayersFromContext: function(layersContext) {
- var layers = [];
- for (var i=0, len=layersContext.length; i<len; i++) {
- var layer = this.getLayerFromContext(layersContext[i]);
- if (layer !== null) {
- layers.push(layer);
- }
- }
- return layers;
- },
-
- /**
- * Method: contextToMap
- * Create a map given a context object.
- *
- * Parameters:
- * context - {Object} The context object.
- * options - {Object} Default map options.
- *
- * Returns:
- * {<OpenLayers.Map>} A map based on the context object.
- */
- contextToMap: function(context, options) {
- options = OpenLayers.Util.applyDefaults({
- maxExtent: context.maxExtent,
- projection: context.projection,
- units: context.units
- }, options);
-
- if (options.maxExtent) {
- options.maxResolution =
- options.maxExtent.getWidth() / OpenLayers.Map.TILE_WIDTH;
- }
-
- var metadata = {
- contactInformation: context.contactInformation,
- "abstract": context["abstract"],
- keywords: context.keywords,
- logo: context.logo,
- descriptionURL: context.descriptionURL
- };
-
- options.metadata = metadata;
-
- var map = new OpenLayers.Map(options);
- map.addLayers(this.getLayersFromContext(context.layersContext));
- map.setCenter(
- context.bounds.getCenterLonLat(),
- map.getZoomForExtent(context.bounds, true)
- );
- return map;
- },
-
- /**
- * Method: mergeContextToMap
- * Add layers from a context object to a map.
- *
- * Parameters:
- * context - {Object} The context object.
- * map - {<OpenLayers.Map>} The map.
- *
- * Returns:
- * {<OpenLayers.Map>} The same map with layers added.
- */
- mergeContextToMap: function(context, map) {
- map.addLayers(this.getLayersFromContext(context.layersContext));
- return map;
- },
-
- /**
- * APIMethod: write
- * Write a context document given a map.
- *
- * Parameters:
- * obj - {<OpenLayers.Map> | Object} A map or context object.
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} A context document string.
- */
- write: function(obj, options) {
- obj = this.toContext(obj);
- return OpenLayers.Format.XML.VersionedOGC.prototype.write.apply(this,
- arguments);
- },
-
- CLASS_NAME: "OpenLayers.Format.Context"
-});
-
-/**
- * Constant: OpenLayers.Format.Context.serviceTypes
- * Enumeration for service types
- */
-OpenLayers.Format.Context.serviceTypes = {
- "WMS": "urn:ogc:serviceType:WMS",
- "WFS": "urn:ogc:serviceType:WFS",
- "WCS": "urn:ogc:serviceType:WCS",
- "GML": "urn:ogc:serviceType:GML",
- "SLD": "urn:ogc:serviceType:SLD",
- "FES": "urn:ogc:serviceType:FES",
- "KML": "urn:ogc:serviceType:KML"
-};
diff --git a/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js b/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js
deleted file mode 100644
index e10e8b2..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/EncodedPolyline.js
+++ /dev/null
@@ -1,557 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format.js
- * @requires OpenLayers/Feature/Vector.js
- */
-
-/**
- * Class: OpenLayers.Format.EncodedPolyline
- * Class for reading and writing encoded polylines. Create a new instance
- * with the <OpenLayers.Format.EncodedPolyline> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.EncodedPolyline = OpenLayers.Class(OpenLayers.Format, {
-
- /**
- * APIProperty: geometryType
- * {String} Geometry type to output. One of: linestring (default),
- * linearring, point, multipoint or polygon. If the geometryType is
- * point, only the first point of the string is returned.
- */
- geometryType: "linestring",
-
- /**
- * Constructor: OpenLayers.Format.EncodedPolyline
- * Create a new parser for encoded polylines
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance
- *
- * Returns:
- * {<OpenLayers.Format.EncodedPolyline>} A new encoded polylines parser.
- */
- initialize: function(options) {
- OpenLayers.Format.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Deserialize an encoded polyline string and return a vector feature.
- *
- * Parameters:
- * encoded - {String} An encoded polyline string
- *
- * Returns:
- * {<OpenLayers.Feature.Vector>} A vector feature with a linestring.
- */
- read: function(encoded) {
- var geomType;
- if (this.geometryType == "linestring")
- geomType = OpenLayers.Geometry.LineString;
- else if (this.geometryType == "linearring")
- geomType = OpenLayers.Geometry.LinearRing;
- else if (this.geometryType == "multipoint")
- geomType = OpenLayers.Geometry.MultiPoint;
- else if (this.geometryType != "point" && this.geometryType != "polygon")
- return null;
-
- var flatPoints = this.decodeDeltas(encoded, 2);
- var flatPointsLength = flatPoints.length;
-
- var pointGeometries = [];
- for (var i = 0; i + 1 < flatPointsLength;) {
- var y = flatPoints[i++], x = flatPoints[i++];
- pointGeometries.push(new OpenLayers.Geometry.Point(x, y));
- }
-
-
- if (this.geometryType == "point")
- return new OpenLayers.Feature.Vector(
- pointGeometries[0]
- );
-
- if (this.geometryType == "polygon")
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Polygon([
- new OpenLayers.Geometry.LinearRing(pointGeometries)
- ])
- );
-
- return new OpenLayers.Feature.Vector(
- new geomType(pointGeometries)
- );
- },
-
- /**
- * APIMethod: decode
- * Deserialize an encoded string and return an array of n-dimensional
- * points.
- *
- * Parameters:
- * encoded - {String} An encoded string
- * dims - {int} The dimension of the points that are returned
- *
- * Returns:
- * {Array(Array(int))} An array containing n-dimensional arrays of
- * coordinates.
- */
- decode: function(encoded, dims, opt_factor) {
- var factor = opt_factor || 1e5;
- var flatPoints = this.decodeDeltas(encoded, dims, factor);
- var flatPointsLength = flatPoints.length;
-
- var points = [];
- for (var i = 0; i + (dims - 1) < flatPointsLength;) {
- var point = [];
-
- for (var dim = 0; dim < dims; ++dim) {
- point.push(flatPoints[i++])
- }
-
- points.push(point);
- }
-
- return points;
- },
-
- /**
- * APIMethod: write
- * Serialize a feature or array of features into a WKT string.
- *
- * Parameters:
- * features - {<OpenLayers.Feature.Vector>|Array} A feature or array of
- * features
- *
- * Returns:
- * {String} The WKT string representation of the input geometries
- */
- write: function(features) {
- var feature;
- if (features.constructor == Array)
- feature = features[0];
- else
- feature = features;
-
- var geometry = feature.geometry;
- var type = geometry.CLASS_NAME.split('.')[2].toLowerCase();
-
- var pointGeometries;
- if (type == "point")
- pointGeometries = new Array(geometry);
- else if (type == "linestring" ||
- type == "linearring" ||
- type == "multipoint")
- pointGeometries = geometry.components;
- else if (type == "polygon")
- pointGeometries = geometry.components[0].components;
- else
- return null;
-
- var flatPoints = [];
-
- var pointGeometriesLength = pointGeometries.length;
- for (var i = 0; i < pointGeometriesLength; ++i) {
- var pointGeometry = pointGeometries[i];
- flatPoints.push(pointGeometry.y);
- flatPoints.push(pointGeometry.x);
- }
-
- return this.encodeDeltas(flatPoints, 2);
- },
-
- /**
- * APIMethod: encode
- * Serialize an array of n-dimensional points and return an encoded string
- *
- * Parameters:
- * points - {Array(Array(int))} An array containing n-dimensional
- * arrays of coordinates
- * dims - {int} The dimension of the points that should be read
- *
- * Returns:
- * {String} An encoded string
- */
- encode: function (points, dims, opt_factor) {
- var factor = opt_factor || 1e5;
- var flatPoints = [];
-
- var pointsLength = points.length;
- for (var i = 0; i < pointsLength; ++i) {
- var point = points[i];
-
- for (var dim = 0; dim < dims; ++dim) {
- flatPoints.push(point[dim]);
- }
- }
-
- return this.encodeDeltas(flatPoints, dims, factor);
- },
-
- /**
- * APIMethod: encodeDeltas
- * Encode a list of n-dimensional points and return an encoded string
- *
- * Attention: This function will modify the passed array!
- *
- * Parameters:
- * numbers - {Array.<number>} A list of n-dimensional points.
- * dimension - {number} The dimension of the points in the list.
- * opt_factor - {number=} The factor by which the numbers will be
- * multiplied. The remaining decimal places will get rounded away.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeDeltas: function(numbers, dimension, opt_factor) {
- var factor = opt_factor || 1e5;
- var d;
-
- var lastNumbers = new Array(dimension);
- for (d = 0; d < dimension; ++d) {
- lastNumbers[d] = 0;
- }
-
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength;) {
- for (d = 0; d < dimension; ++d, ++i) {
- var num = numbers[i];
- var delta = num - lastNumbers[d];
- lastNumbers[d] = num;
-
- numbers[i] = delta;
- }
- }
-
- return this.encodeFloats(numbers, factor);
- },
-
-
- /**
- * APIMethod: decodeDeltas
- * Decode a list of n-dimensional points from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- * dimension - {number} The dimension of the points in the encoded string.
- * opt_factor - {number=} The factor by which the resulting numbers will
- * be divided.
- *
- * Returns:
- * {Array.<number>} A list of n-dimensional points.
- */
- decodeDeltas: function(encoded, dimension, opt_factor) {
- var factor = opt_factor || 1e5;
- var d;
-
- var lastNumbers = new Array(dimension);
- for (d = 0; d < dimension; ++d) {
- lastNumbers[d] = 0;
- }
-
- var numbers = this.decodeFloats(encoded, factor);
-
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength;) {
- for (d = 0; d < dimension; ++d, ++i) {
- lastNumbers[d] += numbers[i];
-
- numbers[i] = lastNumbers[d];
- }
- }
-
- return numbers;
- },
-
-
- /**
- * APIMethod: encodeFloats
- * Encode a list of floating point numbers and return an encoded string
- *
- * Attention: This function will modify the passed array!
- *
- * Parameters:
- * numbers - {Array.<number>} A list of floating point numbers.
- * opt_factor - {number=} The factor by which the numbers will be
- * multiplied. The remaining decimal places will get rounded away.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeFloats: function(numbers, opt_factor) {
- var factor = opt_factor || 1e5;
-
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength; ++i) {
- numbers[i] = Math.round(numbers[i] * factor);
- }
-
- return this.encodeSignedIntegers(numbers);
- },
-
-
- /**
- * APIMethod: decodeFloats
- * Decode a list of floating point numbers from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- * opt_factor - {number=} The factor by which the result will be divided.
- *
- * Returns:
- * {Array.<number>} A list of floating point numbers.
- */
- decodeFloats: function(encoded, opt_factor) {
- var factor = opt_factor || 1e5;
-
- var numbers = this.decodeSignedIntegers(encoded);
-
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength; ++i) {
- numbers[i] /= factor;
- }
-
- return numbers;
- },
-
-
- /**
- * APIMethod: encodeSignedIntegers
- * Encode a list of signed integers and return an encoded string
- *
- * Attention: This function will modify the passed array!
- *
- * Parameters:
- * numbers - {Array.<number>} A list of signed integers.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeSignedIntegers: function(numbers) {
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength; ++i) {
- var num = numbers[i];
-
- var signedNum = num << 1;
- if (num < 0) {
- signedNum = ~(signedNum);
- }
-
- numbers[i] = signedNum;
- }
-
- return this.encodeUnsignedIntegers(numbers);
- },
-
-
- /**
- * APIMethod: decodeSignedIntegers
- * Decode a list of signed integers from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- *
- * Returns:
- * {Array.<number>} A list of signed integers.
- */
- decodeSignedIntegers: function(encoded) {
- var numbers = this.decodeUnsignedIntegers(encoded);
-
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength; ++i) {
- var num = numbers[i];
- numbers[i] = (num & 1) ? ~(num >> 1) : (num >> 1);
- }
-
- return numbers;
- },
-
-
- /**
- * APIMethod: encodeUnsignedIntegers
- * Encode a list of unsigned integers and return an encoded string
- *
- * Parameters:
- * numbers - {Array.<number>} A list of unsigned integers.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeUnsignedIntegers: function(numbers) {
- var encoded = '';
-
- var numbersLength = numbers.length;
- for (var i = 0; i < numbersLength; ++i) {
- encoded += this.encodeUnsignedInteger(numbers[i]);
- }
-
- return encoded;
- },
-
-
- /**
- * APIMethod: decodeUnsignedIntegers
- * Decode a list of unsigned integers from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- *
- * Returns:
- * {Array.<number>} A list of unsigned integers.
- */
- decodeUnsignedIntegers: function(encoded) {
- var numbers = [];
-
- var current = 0;
- var shift = 0;
-
- var encodedLength = encoded.length;
- for (var i = 0; i < encodedLength; ++i) {
- var b = encoded.charCodeAt(i) - 63;
-
- current |= (b & 0x1f) << shift;
-
- if (b < 0x20) {
- numbers.push(current);
- current = 0;
- shift = 0;
- } else {
- shift += 5;
- }
- }
-
- return numbers;
- },
-
-
- /**
- * Method: encodeFloat
- * Encode one single floating point number and return an encoded string
- *
- * Parameters:
- * num - {number} Floating point number that should be encoded.
- * opt_factor - {number=} The factor by which num will be multiplied.
- * The remaining decimal places will get rounded away.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeFloat: function(num, opt_factor) {
- num = Math.round(num * (opt_factor || 1e5));
- return this.encodeSignedInteger(num);
- },
-
-
- /**
- * Method: decodeFloat
- * Decode one single floating point number from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- * opt_factor - {number=} The factor by which the result will be divided.
- *
- * Returns:
- * {number} The decoded floating point number.
- */
- decodeFloat: function(encoded, opt_factor) {
- var result = this.decodeSignedInteger(encoded);
- return result / (opt_factor || 1e5);
- },
-
-
- /**
- * Method: encodeSignedInteger
- * Encode one single signed integer and return an encoded string
- *
- * Parameters:
- * num - {number} Signed integer that should be encoded.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeSignedInteger: function(num) {
- var signedNum = num << 1;
- if (num < 0) {
- signedNum = ~(signedNum);
- }
-
- return this.encodeUnsignedInteger(signedNum);
- },
-
-
- /**
- * Method: decodeSignedInteger
- * Decode one single signed integer from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- *
- * Returns:
- * {number} The decoded signed integer.
- */
- decodeSignedInteger: function(encoded) {
- var result = this.decodeUnsignedInteger(encoded);
- return ((result & 1) ? ~(result >> 1) : (result >> 1));
- },
-
-
- /**
- * Method: encodeUnsignedInteger
- * Encode one single unsigned integer and return an encoded string
- *
- * Parameters:
- * num - {number} Unsigned integer that should be encoded.
- *
- * Returns:
- * {string} The encoded string.
- */
- encodeUnsignedInteger: function(num) {
- var value, encoded = '';
- while (num >= 0x20) {
- value = (0x20 | (num & 0x1f)) + 63;
- encoded += (String.fromCharCode(value));
- num >>= 5;
- }
- value = num + 63;
- encoded += (String.fromCharCode(value));
- return encoded;
- },
-
-
- /**
- * Method: decodeUnsignedInteger
- * Decode one single unsigned integer from an encoded string
- *
- * Parameters:
- * encoded - {string} An encoded string.
- *
- * Returns:
- * {number} The decoded unsigned integer.
- */
- decodeUnsignedInteger: function(encoded) {
- var result = 0;
- var shift = 0;
-
- var encodedLength = encoded.length;
- for (var i = 0; i < encodedLength; ++i) {
- var b = encoded.charCodeAt(i) - 63;
-
- result |= (b & 0x1f) << shift;
-
- if (b < 0x20)
- break;
-
- shift += 5;
- }
-
- return result;
- },
-
- CLASS_NAME: "OpenLayers.Format.EncodedPolyline"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/Filter.js b/misc/openlayers/lib/OpenLayers/Format/Filter.js
deleted file mode 100644
index 59c06a8..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Filter.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- * @requires OpenLayers/Filter/FeatureId.js
- * @requires OpenLayers/Filter/Logical.js
- * @requires OpenLayers/Filter/Comparison.js
- */
-
-/**
- * Class: OpenLayers.Format.Filter
- * Read/Write ogc:Filter. Create a new instance with the <OpenLayers.Format.Filter>
- * constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.Filter = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.0.0".
- */
- defaultVersion: "1.0.0",
-
- /**
- * APIMethod: write
- * Write an ogc:Filter given a filter object.
- *
- * Parameters:
- * filter - {<OpenLayers.Filter>} An filter.
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {Elment} An ogc:Filter element node.
- */
-
- /**
- * APIMethod: read
- * Read and Filter doc and return an object representing the Filter.
- *
- * Parameters:
- * data - {String | DOMElement} Data to read.
- *
- * Returns:
- * {<OpenLayers.Filter>} A filter object.
- */
-
- CLASS_NAME: "OpenLayers.Format.Filter"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js b/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js
deleted file mode 100644
index 539ec0f..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Filter/v1.js
+++ /dev/null
@@ -1,504 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-/**
- * @requires OpenLayers/Format/Filter.js
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Filter/Function.js
- * @requires OpenLayers/BaseTypes/Date.js
- */
-
-/**
- * Class: OpenLayers.Format.Filter.v1
- * Superclass for Filter version 1 parsers.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ogc: "http://www.opengis.net/ogc",
- gml: "http://www.opengis.net/gml",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "ogc",
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocation: null,
-
- /**
- * Constructor: OpenLayers.Format.Filter.v1
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.Filter> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {DOMElement} A Filter document element.
- *
- * Returns:
- * {<OpenLayers.Filter>} A filter object.
- */
- read: function(data) {
- var obj = {};
- this.readers.ogc["Filter"].apply(this, [data, obj]);
- return obj.filter;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ogc": {
- "_expression": function(node) {
- // only the simplest of ogc:expression handled
- // "some text and an <PropertyName>attribute</PropertyName>"}
- var obj, value = "";
- for(var child=node.firstChild; child; child=child.nextSibling) {
- switch(child.nodeType) {
- case 1:
- obj = this.readNode(child);
- if (obj.property) {
- value += "${" + obj.property + "}";
- } else if (obj.value !== undefined) {
- value += obj.value;
- }
- break;
- case 3: // text node
- case 4: // cdata section
- value += child.nodeValue;
- }
- }
- return value;
- },
- "Filter": function(node, parent) {
- // Filters correspond to subclasses of OpenLayers.Filter.
- // Since they contain information we don't persist, we
- // create a temporary object and then pass on the filter
- // (ogc:Filter) to the parent obj.
- var obj = {
- fids: [],
- filters: []
- };
- this.readChildNodes(node, obj);
- if(obj.fids.length > 0) {
- parent.filter = new OpenLayers.Filter.FeatureId({
- fids: obj.fids
- });
- } else if(obj.filters.length > 0) {
- parent.filter = obj.filters[0];
- }
- },
- "FeatureId": function(node, obj) {
- var fid = node.getAttribute("fid");
- if(fid) {
- obj.fids.push(fid);
- }
- },
- "And": function(node, obj) {
- var filter = new OpenLayers.Filter.Logical({
- type: OpenLayers.Filter.Logical.AND
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "Or": function(node, obj) {
- var filter = new OpenLayers.Filter.Logical({
- type: OpenLayers.Filter.Logical.OR
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "Not": function(node, obj) {
- var filter = new OpenLayers.Filter.Logical({
- type: OpenLayers.Filter.Logical.NOT
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsLessThan": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.LESS_THAN
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsGreaterThan": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.GREATER_THAN
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsLessThanOrEqualTo": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsGreaterThanOrEqualTo": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsBetween": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.BETWEEN
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "Literal": function(node, obj) {
- obj.value = OpenLayers.String.numericIf(
- this.getChildValue(node), true);
- },
- "PropertyName": function(node, filter) {
- filter.property = this.getChildValue(node);
- },
- "LowerBoundary": function(node, filter) {
- filter.lowerBoundary = OpenLayers.String.numericIf(
- this.readers.ogc._expression.call(this, node), true);
- },
- "UpperBoundary": function(node, filter) {
- filter.upperBoundary = OpenLayers.String.numericIf(
- this.readers.ogc._expression.call(this, node), true);
- },
- "Intersects": function(node, obj) {
- this.readSpatial(node, obj, OpenLayers.Filter.Spatial.INTERSECTS);
- },
- "Within": function(node, obj) {
- this.readSpatial(node, obj, OpenLayers.Filter.Spatial.WITHIN);
- },
- "Contains": function(node, obj) {
- this.readSpatial(node, obj, OpenLayers.Filter.Spatial.CONTAINS);
- },
- "DWithin": function(node, obj) {
- this.readSpatial(node, obj, OpenLayers.Filter.Spatial.DWITHIN);
- },
- "Distance": function(node, obj) {
- obj.distance = parseInt(this.getChildValue(node));
- obj.distanceUnits = node.getAttribute("units");
- },
- "Function": function(node, obj) {
- //TODO write decoder for it
- return;
- },
- "PropertyIsNull": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.IS_NULL
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- }
- }
- },
-
- /**
- * Method: readSpatial
- *
- * Read a {<OpenLayers.Filter.Spatial>} filter.
- *
- * Parameters:
- * node - {DOMElement} A DOM element that contains an ogc:expression.
- * obj - {Object} The target object.
- * type - {String} One of the OpenLayers.Filter.Spatial.* constants.
- *
- * Returns:
- * {<OpenLayers.Filter.Spatial>} The created filter.
- */
- readSpatial: function(node, obj, type) {
- var filter = new OpenLayers.Filter.Spatial({
- type: type
- });
- this.readChildNodes(node, filter);
- filter.value = filter.components[0];
- delete filter.components;
- obj.filters.push(filter);
- },
-
- /**
- * APIMethod: encodeLiteral
- * Generates the string representation of a value for use in <Literal>
- * elements. The default encoder writes Date values as ISO 8601
- * strings.
- *
- * Parameters:
- * value - {Object} Literal value to encode
- *
- * Returns:
- * {String} String representation of the provided value.
- */
- encodeLiteral: function(value) {
- if (value instanceof Date) {
- value = OpenLayers.Date.toISOString(value);
- }
- return value;
- },
-
- /**
- * Method: writeOgcExpression
- * Limited support for writing OGC expressions. Currently it supports
- * (<OpenLayers.Filter.Function> || String || Number)
- *
- * Parameters:
- * value - (<OpenLayers.Filter.Function> || String || Number)
- * node - {DOMElement} A parent DOM element
- *
- * Returns:
- * {DOMElement} Updated node element.
- */
- writeOgcExpression: function(value, node) {
- if (value instanceof OpenLayers.Filter.Function){
- this.writeNode("Function", value, node);
- } else {
- this.writeNode("Literal", value, node);
- }
- return node;
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * filter - {<OpenLayers.Filter>} A filter object.
- *
- * Returns:
- * {DOMElement} An ogc:Filter element.
- */
- write: function(filter) {
- return this.writers.ogc["Filter"].apply(this, [filter]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "ogc": {
- "Filter": function(filter) {
- var node = this.createElementNSPlus("ogc:Filter");
- this.writeNode(this.getFilterType(filter), filter, node);
- return node;
- },
- "_featureIds": function(filter) {
- var node = this.createDocumentFragment();
- for (var i=0, ii=filter.fids.length; i<ii; ++i) {
- this.writeNode("ogc:FeatureId", filter.fids[i], node);
- }
- return node;
- },
- "FeatureId": function(fid) {
- return this.createElementNSPlus("ogc:FeatureId", {
- attributes: {fid: fid}
- });
- },
- "And": function(filter) {
- var node = this.createElementNSPlus("ogc:And");
- var childFilter;
- for (var i=0, ii=filter.filters.length; i<ii; ++i) {
- childFilter = filter.filters[i];
- this.writeNode(
- this.getFilterType(childFilter), childFilter, node
- );
- }
- return node;
- },
- "Or": function(filter) {
- var node = this.createElementNSPlus("ogc:Or");
- var childFilter;
- for (var i=0, ii=filter.filters.length; i<ii; ++i) {
- childFilter = filter.filters[i];
- this.writeNode(
- this.getFilterType(childFilter), childFilter, node
- );
- }
- return node;
- },
- "Not": function(filter) {
- var node = this.createElementNSPlus("ogc:Not");
- var childFilter = filter.filters[0];
- this.writeNode(
- this.getFilterType(childFilter), childFilter, node
- );
- return node;
- },
- "PropertyIsLessThan": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsLessThan");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsGreaterThan": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsGreaterThan");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsLessThanOrEqualTo": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsLessThanOrEqualTo");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsGreaterThanOrEqualTo": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsGreaterThanOrEqualTo");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsBetween": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsBetween");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- this.writeNode("LowerBoundary", filter, node);
- this.writeNode("UpperBoundary", filter, node);
- return node;
- },
- "PropertyName": function(filter) {
- // no ogc:expression handling for now
- return this.createElementNSPlus("ogc:PropertyName", {
- value: filter.property
- });
- },
- "Literal": function(value) {
- var encode = this.encodeLiteral ||
- OpenLayers.Format.Filter.v1.prototype.encodeLiteral;
- return this.createElementNSPlus("ogc:Literal", {
- value: encode(value)
- });
- },
- "LowerBoundary": function(filter) {
- // handle Literals or Functions for now
- var node = this.createElementNSPlus("ogc:LowerBoundary");
- this.writeOgcExpression(filter.lowerBoundary, node);
- return node;
- },
- "UpperBoundary": function(filter) {
- // handle Literals or Functions for now
- var node = this.createElementNSPlus("ogc:UpperBoundary");
- this.writeNode("Literal", filter.upperBoundary, node);
- return node;
- },
- "INTERSECTS": function(filter) {
- return this.writeSpatial(filter, "Intersects");
- },
- "WITHIN": function(filter) {
- return this.writeSpatial(filter, "Within");
- },
- "CONTAINS": function(filter) {
- return this.writeSpatial(filter, "Contains");
- },
- "DWITHIN": function(filter) {
- var node = this.writeSpatial(filter, "DWithin");
- this.writeNode("Distance", filter, node);
- return node;
- },
- "Distance": function(filter) {
- return this.createElementNSPlus("ogc:Distance", {
- attributes: {
- units: filter.distanceUnits
- },
- value: filter.distance
- });
- },
- "Function": function(filter) {
- var node = this.createElementNSPlus("ogc:Function", {
- attributes: {
- name: filter.name
- }
- });
- var params = filter.params;
- for(var i=0, len=params.length; i<len; i++){
- this.writeOgcExpression(params[i], node);
- }
- return node;
- },
- "PropertyIsNull": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsNull");
- this.writeNode("PropertyName", filter, node);
- return node;
- }
- }
- },
-
- /**
- * Method: getFilterType
- */
- getFilterType: function(filter) {
- var filterType = this.filterMap[filter.type];
- if(!filterType) {
- throw "Filter writing not supported for rule type: " + filter.type;
- }
- return filterType;
- },
-
- /**
- * Property: filterMap
- * {Object} Contains a member for each filter type. Values are node names
- * for corresponding OGC Filter child elements.
- */
- filterMap: {
- "&&": "And",
- "||": "Or",
- "!": "Not",
- "==": "PropertyIsEqualTo",
- "!=": "PropertyIsNotEqualTo",
- "<": "PropertyIsLessThan",
- ">": "PropertyIsGreaterThan",
- "<=": "PropertyIsLessThanOrEqualTo",
- ">=": "PropertyIsGreaterThanOrEqualTo",
- "..": "PropertyIsBetween",
- "~": "PropertyIsLike",
- "NULL": "PropertyIsNull",
- "BBOX": "BBOX",
- "DWITHIN": "DWITHIN",
- "WITHIN": "WITHIN",
- "CONTAINS": "CONTAINS",
- "INTERSECTS": "INTERSECTS",
- "FID": "_featureIds"
- },
-
- CLASS_NAME: "OpenLayers.Format.Filter.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js
deleted file mode 100644
index 52e650e..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Filter/v1_0_0.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/GML/v2.js
- * @requires OpenLayers/Format/Filter/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.Filter.v1_0_0
- * Write ogc:Filter version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.GML.v2>
- * - <OpenLayers.Format.Filter.v1>
- */
-OpenLayers.Format.Filter.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.GML.v2, OpenLayers.Format.Filter.v1, {
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/ogc/filter/1.0.0/filter.xsd
- */
- schemaLocation: "http://www.opengis.net/ogc/filter/1.0.0/filter.xsd",
-
- /**
- * Constructor: OpenLayers.Format.Filter.v1_0_0
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.Filter> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.GML.v2.prototype.initialize.apply(
- this, [options]
- );
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ogc": OpenLayers.Util.applyDefaults({
- "PropertyIsEqualTo": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.EQUAL_TO
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsNotEqualTo": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsLike": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.LIKE
- });
- this.readChildNodes(node, filter);
- var wildCard = node.getAttribute("wildCard");
- var singleChar = node.getAttribute("singleChar");
- var esc = node.getAttribute("escape");
- filter.value2regex(wildCard, singleChar, esc);
- obj.filters.push(filter);
- }
- }, OpenLayers.Format.Filter.v1.prototype.readers["ogc"]),
- "gml": OpenLayers.Format.GML.v2.prototype.readers["gml"],
- "feature": OpenLayers.Format.GML.v2.prototype.readers["feature"]
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "ogc": OpenLayers.Util.applyDefaults({
- "PropertyIsEqualTo": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsEqualTo");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsNotEqualTo": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsNotEqualTo");
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsLike": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsLike", {
- attributes: {
- wildCard: "*", singleChar: ".", escape: "!"
- }
- });
- // no ogc:expression handling for now
- this.writeNode("PropertyName", filter, node);
- // convert regex string to ogc string
- this.writeNode("Literal", filter.regex2value(), node);
- return node;
- },
- "BBOX": function(filter) {
- var node = this.createElementNSPlus("ogc:BBOX");
- // PropertyName is mandatory in 1.0.0, but e.g. GeoServer also
- // accepts filters without it. When this is used with
- // OpenLayers.Protocol.WFS, OpenLayers.Format.WFST will set a
- // missing filter.property to the geometryName that is
- // configured with the protocol, which defaults to "the_geom".
- // So the only way to omit this mandatory property is to not
- // set the property on the filter and to set the geometryName
- // on the WFS protocol to null. The latter also happens when
- // the protocol is configured without a geometryName and a
- // featureNS.
- filter.property && this.writeNode("PropertyName", filter, node);
- var box = this.writeNode("gml:Box", filter.value, node);
- if(filter.projection) {
- box.setAttribute("srsName", filter.projection);
- }
- return node;
- }
- }, OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),
- "gml": OpenLayers.Format.GML.v2.prototype.writers["gml"],
- "feature": OpenLayers.Format.GML.v2.prototype.writers["feature"]
- },
-
- /**
- * Method: writeSpatial
- *
- * Read a {<OpenLayers.Filter.Spatial>} filter and converts it into XML.
- *
- * Parameters:
- * filter - {<OpenLayers.Filter.Spatial>} The filter.
- * name - {String} Name of the generated XML element.
- *
- * Returns:
- * {DOMElement} The created XML element.
- */
- writeSpatial: function(filter, name) {
- var node = this.createElementNSPlus("ogc:"+name);
- this.writeNode("PropertyName", filter, node);
- if(filter.value instanceof OpenLayers.Filter.Function) {
- this.writeNode("Function", filter.value, node);
- } else {
- var child;
- if(filter.value instanceof OpenLayers.Geometry) {
- child = this.writeNode("feature:_geometry", filter.value).firstChild;
- } else {
- child = this.writeNode("gml:Box", filter.value);
- }
- if(filter.projection) {
- child.setAttribute("srsName", filter.projection);
- }
- node.appendChild(child);
- }
- return node;
- },
-
-
- CLASS_NAME: "OpenLayers.Format.Filter.v1_0_0"
-
-}); \ No newline at end of file
diff --git a/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js
deleted file mode 100644
index 628c489..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Filter/v1_1_0.js
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/Filter/v1.js
- * @requires OpenLayers/Format/GML/v3.js
- */
-
-/**
- * Class: OpenLayers.Format.Filter.v1_1_0
- * Write ogc:Filter version 1.1.0.
- *
- * Differences from the v1.0.0 parser:
- * - uses GML v3 instead of GML v2
- * - reads matchCase attribute on ogc:PropertyIsEqual and
- * ogc:PropertyIsNotEqual elements.
- * - writes matchCase attribute from comparison filters of type EQUAL_TO,
- * NOT_EQUAL_TO and LIKE.
- *
- * Inherits from:
- * - <OpenLayers.Format.GML.v3>
- * - <OpenLayers.Format.Filter.v1>
- */
-OpenLayers.Format.Filter.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.GML.v3, OpenLayers.Format.Filter.v1, {
-
- /**
- * Constant: VERSION
- * {String} 1.1.0
- */
- VERSION: "1.1.0",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/ogc/filter/1.1.0/filter.xsd
- */
- schemaLocation: "http://www.opengis.net/ogc/filter/1.1.0/filter.xsd",
-
- /**
- * Constructor: OpenLayers.Format.Filter.v1_1_0
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.Filter> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.GML.v3.prototype.initialize.apply(
- this, [options]
- );
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ogc": OpenLayers.Util.applyDefaults({
- "PropertyIsEqualTo": function(node, obj) {
- var matchCase = node.getAttribute("matchCase");
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.EQUAL_TO,
- matchCase: !(matchCase === "false" || matchCase === "0")
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsNotEqualTo": function(node, obj) {
- var matchCase = node.getAttribute("matchCase");
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO,
- matchCase: !(matchCase === "false" || matchCase === "0")
- });
- this.readChildNodes(node, filter);
- obj.filters.push(filter);
- },
- "PropertyIsLike": function(node, obj) {
- var filter = new OpenLayers.Filter.Comparison({
- type: OpenLayers.Filter.Comparison.LIKE
- });
- this.readChildNodes(node, filter);
- var wildCard = node.getAttribute("wildCard");
- var singleChar = node.getAttribute("singleChar");
- var esc = node.getAttribute("escapeChar");
- filter.value2regex(wildCard, singleChar, esc);
- obj.filters.push(filter);
- }
- }, OpenLayers.Format.Filter.v1.prototype.readers["ogc"]),
- "gml": OpenLayers.Format.GML.v3.prototype.readers["gml"],
- "feature": OpenLayers.Format.GML.v3.prototype.readers["feature"]
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "ogc": OpenLayers.Util.applyDefaults({
- "PropertyIsEqualTo": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsEqualTo", {
- attributes: {matchCase: filter.matchCase}
- });
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsNotEqualTo": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsNotEqualTo", {
- attributes: {matchCase: filter.matchCase}
- });
- // no ogc:expression handling for PropertyName for now
- this.writeNode("PropertyName", filter, node);
- // handle Literals or Functions for now
- this.writeOgcExpression(filter.value, node);
- return node;
- },
- "PropertyIsLike": function(filter) {
- var node = this.createElementNSPlus("ogc:PropertyIsLike", {
- attributes: {
- matchCase: filter.matchCase,
- wildCard: "*", singleChar: ".", escapeChar: "!"
- }
- });
- // no ogc:expression handling for now
- this.writeNode("PropertyName", filter, node);
- // convert regex string to ogc string
- this.writeNode("Literal", filter.regex2value(), node);
- return node;
- },
- "BBOX": function(filter) {
- var node = this.createElementNSPlus("ogc:BBOX");
- // PropertyName is optional in 1.1.0
- filter.property && this.writeNode("PropertyName", filter, node);
- var box = this.writeNode("gml:Envelope", filter.value);
- if(filter.projection) {
- box.setAttribute("srsName", filter.projection);
- }
- node.appendChild(box);
- return node;
- },
- "SortBy": function(sortProperties) {
- var node = this.createElementNSPlus("ogc:SortBy");
- for (var i=0,l=sortProperties.length;i<l;i++) {
- this.writeNode(
- "ogc:SortProperty",
- sortProperties[i],
- node
- );
- }
- return node;
- },
- "SortProperty": function(sortProperty) {
- var node = this.createElementNSPlus("ogc:SortProperty");
- this.writeNode(
- "ogc:PropertyName",
- sortProperty,
- node
- );
- this.writeNode(
- "ogc:SortOrder",
- (sortProperty.order == 'DESC') ? 'DESC' : 'ASC',
- node
- );
- return node;
- },
- "SortOrder": function(value) {
- var node = this.createElementNSPlus("ogc:SortOrder", {
- value: value
- });
- return node;
- }
- }, OpenLayers.Format.Filter.v1.prototype.writers["ogc"]),
- "gml": OpenLayers.Format.GML.v3.prototype.writers["gml"],
- "feature": OpenLayers.Format.GML.v3.prototype.writers["feature"]
- },
-
- /**
- * Method: writeSpatial
- *
- * Read a {<OpenLayers.Filter.Spatial>} filter and converts it into XML.
- *
- * Parameters:
- * filter - {<OpenLayers.Filter.Spatial>} The filter.
- * name - {String} Name of the generated XML element.
- *
- * Returns:
- * {DOMElement} The created XML element.
- */
- writeSpatial: function(filter, name) {
- var node = this.createElementNSPlus("ogc:"+name);
- this.writeNode("PropertyName", filter, node);
- if(filter.value instanceof OpenLayers.Filter.Function) {
- this.writeNode("Function", filter.value, node);
- } else {
- var child;
- if(filter.value instanceof OpenLayers.Geometry) {
- child = this.writeNode("feature:_geometry", filter.value).firstChild;
- } else {
- child = this.writeNode("gml:Envelope", filter.value);
- }
- if(filter.projection) {
- child.setAttribute("srsName", filter.projection);
- }
- node.appendChild(child);
- }
- return node;
- },
-
- CLASS_NAME: "OpenLayers.Format.Filter.v1_1_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GML.js b/misc/openlayers/lib/OpenLayers/Format/GML.js
deleted file mode 100644
index 467f875..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GML.js
+++ /dev/null
@@ -1,923 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/MultiPoint.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Geometry/MultiLineString.js
- * @requires OpenLayers/Geometry/Polygon.js
- * @requires OpenLayers/Geometry/MultiPolygon.js
- */
-
-/**
- * Class: OpenLayers.Format.GML
- * Read/Write GML. Create a new instance with the <OpenLayers.Format.GML>
- * constructor. Supports the GML simple features profile.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.GML = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * APIProperty: featureNS
- * {String} Namespace used for feature attributes. Default is
- * "http://mapserver.gis.umn.edu/mapserver".
- */
- featureNS: "http://mapserver.gis.umn.edu/mapserver",
-
- /**
- * APIProperty: featurePrefix
- * {String} Namespace alias (or prefix) for feature nodes. Default is
- * "feature".
- */
- featurePrefix: "feature",
-
- /**
- * APIProperty: featureName
- * {String} Element name for features. Default is "featureMember".
- */
- featureName: "featureMember",
-
- /**
- * APIProperty: layerName
- * {String} Name of data layer. Default is "features".
- */
- layerName: "features",
-
- /**
- * APIProperty: geometryName
- * {String} Name of geometry element. Defaults to "geometry".
- */
- geometryName: "geometry",
-
- /**
- * APIProperty: collectionName
- * {String} Name of featureCollection element.
- */
- collectionName: "FeatureCollection",
-
- /**
- * APIProperty: gmlns
- * {String} GML Namespace.
- */
- gmlns: "http://www.opengis.net/gml",
-
- /**
- * APIProperty: extractAttributes
- * {Boolean} Extract attributes from GML.
- */
- extractAttributes: true,
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x)
- * Changing is not recommended, a new Format should be instantiated.
- */
- xy: true,
-
- /**
- * Constructor: OpenLayers.Format.GML
- * Create a new parser for GML.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- // compile regular expressions once instead of every time they are used
- this.regExes = {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- };
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Read data from a string, and return a list of features.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} An array of features.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var featureNodes = this.getElementsByTagNameNS(data.documentElement,
- this.gmlns,
- this.featureName);
- var features = [];
- for(var i=0; i<featureNodes.length; i++) {
- var feature = this.parseFeature(featureNodes[i]);
- if(feature) {
- features.push(feature);
- }
- }
- return features;
- },
-
- /**
- * Method: parseFeature
- * This function is the core of the GML parsing code in OpenLayers.
- * It creates the geometries that are then attached to the returned
- * feature, and calls parseAttributes() to get attribute data out.
- *
- * Parameters:
- * node - {DOMElement} A GML feature node.
- */
- parseFeature: function(node) {
- // only accept one geometry per feature - look for highest "order"
- var order = ["MultiPolygon", "Polygon",
- "MultiLineString", "LineString",
- "MultiPoint", "Point", "Envelope"];
- // FIXME: In case we parse a feature with no geometry, but boundedBy an Envelope,
- // this code creates a geometry derived from the Envelope. This is not correct.
- var type, nodeList, geometry, parser;
- for(var i=0; i<order.length; ++i) {
- type = order[i];
- nodeList = this.getElementsByTagNameNS(node, this.gmlns, type);
- if(nodeList.length > 0) {
- // only deal with first geometry of this type
- parser = this.parseGeometry[type.toLowerCase()];
- if(parser) {
- geometry = parser.apply(this, [nodeList[0]]);
- if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- } else {
- throw new TypeError("Unsupported geometry type: " + type);
- }
- // stop looking for different geometry types
- break;
- }
- }
-
- var bounds;
- var boxNodes = this.getElementsByTagNameNS(node, this.gmlns, "Box");
- for(i=0; i<boxNodes.length; ++i) {
- var boxNode = boxNodes[i];
- var box = this.parseGeometry["box"].apply(this, [boxNode]);
- var parentNode = boxNode.parentNode;
- var parentName = parentNode.localName ||
- parentNode.nodeName.split(":").pop();
- if(parentName === "boundedBy") {
- bounds = box;
- } else {
- geometry = box.toGeometry();
- }
- }
-
- // construct feature (optionally with attributes)
- var attributes;
- if(this.extractAttributes) {
- attributes = this.parseAttributes(node);
- }
- var feature = new OpenLayers.Feature.Vector(geometry, attributes);
- feature.bounds = bounds;
-
- feature.gml = {
- featureType: node.firstChild.nodeName.split(":")[1],
- featureNS: node.firstChild.namespaceURI,
- featureNSPrefix: node.firstChild.prefix
- };
-
- // assign fid - this can come from a "fid" or "id" attribute
- var childNode = node.firstChild;
- var fid;
- while(childNode) {
- if(childNode.nodeType == 1) {
- fid = childNode.getAttribute("fid") ||
- childNode.getAttribute("id");
- if(fid) {
- break;
- }
- }
- childNode = childNode.nextSibling;
- }
- feature.fid = fid;
- return feature;
- },
-
- /**
- * Property: parseGeometry
- * Properties of this object are the functions that parse geometries based
- * on their type.
- */
- parseGeometry: {
-
- /**
- * Method: parseGeometry.point
- * Given a GML node representing a point geometry, create an OpenLayers
- * point geometry.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Geometry.Point>} A point geometry.
- */
- point: function(node) {
- /**
- * Three coordinate variations to consider:
- * 1) <gml:pos>x y z</gml:pos>
- * 2) <gml:coordinates>x, y, z</gml:coordinates>
- * 3) <gml:coord><gml:X>x</gml:X><gml:Y>y</gml:Y></gml:coord>
- */
- var nodeList, coordString;
- var coords = [];
-
- // look for <gml:pos>
- var nodeList = this.getElementsByTagNameNS(node, this.gmlns, "pos");
- if(nodeList.length > 0) {
- coordString = nodeList[0].firstChild.nodeValue;
- coordString = coordString.replace(this.regExes.trimSpace, "");
- coords = coordString.split(this.regExes.splitSpace);
- }
-
- // look for <gml:coordinates>
- if(coords.length == 0) {
- nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "coordinates");
- if(nodeList.length > 0) {
- coordString = nodeList[0].firstChild.nodeValue;
- coordString = coordString.replace(this.regExes.removeSpace,
- "");
- coords = coordString.split(",");
- }
- }
-
- // look for <gml:coord>
- if(coords.length == 0) {
- nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "coord");
- if(nodeList.length > 0) {
- var xList = this.getElementsByTagNameNS(nodeList[0],
- this.gmlns, "X");
- var yList = this.getElementsByTagNameNS(nodeList[0],
- this.gmlns, "Y");
- if(xList.length > 0 && yList.length > 0) {
- coords = [xList[0].firstChild.nodeValue,
- yList[0].firstChild.nodeValue];
- }
- }
- }
-
- // preserve third dimension
- if(coords.length == 2) {
- coords[2] = null;
- }
-
- if (this.xy) {
- return new OpenLayers.Geometry.Point(coords[0], coords[1],
- coords[2]);
- }
- else{
- return new OpenLayers.Geometry.Point(coords[1], coords[0],
- coords[2]);
- }
- },
-
- /**
- * Method: parseGeometry.multipoint
- * Given a GML node representing a multipoint geometry, create an
- * OpenLayers multipoint geometry.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Geometry.MultiPoint>} A multipoint geometry.
- */
- multipoint: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "Point");
- var components = [];
- if(nodeList.length > 0) {
- var point;
- for(var i=0; i<nodeList.length; ++i) {
- point = this.parseGeometry.point.apply(this, [nodeList[i]]);
- if(point) {
- components.push(point);
- }
- }
- }
- return new OpenLayers.Geometry.MultiPoint(components);
- },
-
- /**
- * Method: parseGeometry.linestring
- * Given a GML node representing a linestring geometry, create an
- * OpenLayers linestring geometry.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Geometry.LineString>} A linestring geometry.
- */
- linestring: function(node, ring) {
- /**
- * Two coordinate variations to consider:
- * 1) <gml:posList dimension="d">x0 y0 z0 x1 y1 z1</gml:posList>
- * 2) <gml:coordinates>x0, y0, z0 x1, y1, z1</gml:coordinates>
- */
- var nodeList, coordString;
- var coords = [];
- var points = [];
-
- // look for <gml:posList>
- nodeList = this.getElementsByTagNameNS(node, this.gmlns, "posList");
- if(nodeList.length > 0) {
- coordString = this.getChildValue(nodeList[0]);
- coordString = coordString.replace(this.regExes.trimSpace, "");
- coords = coordString.split(this.regExes.splitSpace);
- var dim = parseInt(nodeList[0].getAttribute("dimension"));
- var j, x, y, z;
- for(var i=0; i<coords.length/dim; ++i) {
- j = i * dim;
- x = coords[j];
- y = coords[j+1];
- z = (dim == 2) ? null : coords[j+2];
- if (this.xy) {
- points.push(new OpenLayers.Geometry.Point(x, y, z));
- } else {
- points.push(new OpenLayers.Geometry.Point(y, x, z));
- }
- }
- }
-
- // look for <gml:coordinates>
- if(coords.length == 0) {
- nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "coordinates");
- if(nodeList.length > 0) {
- coordString = this.getChildValue(nodeList[0]);
- coordString = coordString.replace(this.regExes.trimSpace,
- "");
- coordString = coordString.replace(this.regExes.trimComma,
- ",");
- var pointList = coordString.split(this.regExes.splitSpace);
- for(var i=0; i<pointList.length; ++i) {
- coords = pointList[i].split(",");
- if(coords.length == 2) {
- coords[2] = null;
- }
- if (this.xy) {
- points.push(new OpenLayers.Geometry.Point(coords[0],
- coords[1],
- coords[2]));
- } else {
- points.push(new OpenLayers.Geometry.Point(coords[1],
- coords[0],
- coords[2]));
- }
- }
- }
- }
-
- var line = null;
- if(points.length != 0) {
- if(ring) {
- line = new OpenLayers.Geometry.LinearRing(points);
- } else {
- line = new OpenLayers.Geometry.LineString(points);
- }
- }
- return line;
- },
-
- /**
- * Method: parseGeometry.multilinestring
- * Given a GML node representing a multilinestring geometry, create an
- * OpenLayers multilinestring geometry.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Geometry.MultiLineString>} A multilinestring geometry.
- */
- multilinestring: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "LineString");
- var components = [];
- if(nodeList.length > 0) {
- var line;
- for(var i=0; i<nodeList.length; ++i) {
- line = this.parseGeometry.linestring.apply(this,
- [nodeList[i]]);
- if(line) {
- components.push(line);
- }
- }
- }
- return new OpenLayers.Geometry.MultiLineString(components);
- },
-
- /**
- * Method: parseGeometry.polygon
- * Given a GML node representing a polygon geometry, create an
- * OpenLayers polygon geometry.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Geometry.Polygon>} A polygon geometry.
- */
- polygon: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "LinearRing");
- var components = [];
- if(nodeList.length > 0) {
- // this assumes exterior ring first, inner rings after
- var ring;
- for(var i=0; i<nodeList.length; ++i) {
- ring = this.parseGeometry.linestring.apply(this,
- [nodeList[i], true]);
- if(ring) {
- components.push(ring);
- }
- }
- }
- return new OpenLayers.Geometry.Polygon(components);
- },
-
- /**
- * Method: parseGeometry.multipolygon
- * Given a GML node representing a multipolygon geometry, create an
- * OpenLayers multipolygon geometry.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Geometry.MultiPolygon>} A multipolygon geometry.
- */
- multipolygon: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "Polygon");
- var components = [];
- if(nodeList.length > 0) {
- var polygon;
- for(var i=0; i<nodeList.length; ++i) {
- polygon = this.parseGeometry.polygon.apply(this,
- [nodeList[i]]);
- if(polygon) {
- components.push(polygon);
- }
- }
- }
- return new OpenLayers.Geometry.MultiPolygon(components);
- },
-
- envelope: function(node) {
- var components = [];
- var coordString;
- var envelope;
-
- var lpoint = this.getElementsByTagNameNS(node, this.gmlns, "lowerCorner");
- if (lpoint.length > 0) {
- var coords = [];
-
- if(lpoint.length > 0) {
- coordString = lpoint[0].firstChild.nodeValue;
- coordString = coordString.replace(this.regExes.trimSpace, "");
- coords = coordString.split(this.regExes.splitSpace);
- }
-
- if(coords.length == 2) {
- coords[2] = null;
- }
- if (this.xy) {
- var lowerPoint = new OpenLayers.Geometry.Point(coords[0], coords[1],coords[2]);
- } else {
- var lowerPoint = new OpenLayers.Geometry.Point(coords[1], coords[0],coords[2]);
- }
- }
-
- var upoint = this.getElementsByTagNameNS(node, this.gmlns, "upperCorner");
- if (upoint.length > 0) {
- var coords = [];
-
- if(upoint.length > 0) {
- coordString = upoint[0].firstChild.nodeValue;
- coordString = coordString.replace(this.regExes.trimSpace, "");
- coords = coordString.split(this.regExes.splitSpace);
- }
-
- if(coords.length == 2) {
- coords[2] = null;
- }
- if (this.xy) {
- var upperPoint = new OpenLayers.Geometry.Point(coords[0], coords[1],coords[2]);
- } else {
- var upperPoint = new OpenLayers.Geometry.Point(coords[1], coords[0],coords[2]);
- }
- }
-
- if (lowerPoint && upperPoint) {
- components.push(new OpenLayers.Geometry.Point(lowerPoint.x, lowerPoint.y));
- components.push(new OpenLayers.Geometry.Point(upperPoint.x, lowerPoint.y));
- components.push(new OpenLayers.Geometry.Point(upperPoint.x, upperPoint.y));
- components.push(new OpenLayers.Geometry.Point(lowerPoint.x, upperPoint.y));
- components.push(new OpenLayers.Geometry.Point(lowerPoint.x, lowerPoint.y));
-
- var ring = new OpenLayers.Geometry.LinearRing(components);
- envelope = new OpenLayers.Geometry.Polygon([ring]);
- }
- return envelope;
- },
-
- /**
- * Method: parseGeometry.box
- * Given a GML node representing a box geometry, create an
- * OpenLayers.Bounds.
- *
- * Parameters:
- * node - {DOMElement} A GML node.
- *
- * Returns:
- * {<OpenLayers.Bounds>} A bounds representing the box.
- */
- box: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.gmlns,
- "coordinates");
- var coordString;
- var coords, beginPoint = null, endPoint = null;
- if (nodeList.length > 0) {
- coordString = nodeList[0].firstChild.nodeValue;
- coords = coordString.split(" ");
- if (coords.length == 2) {
- beginPoint = coords[0].split(",");
- endPoint = coords[1].split(",");
- }
- }
- if (beginPoint !== null && endPoint !== null) {
- return new OpenLayers.Bounds(parseFloat(beginPoint[0]),
- parseFloat(beginPoint[1]),
- parseFloat(endPoint[0]),
- parseFloat(endPoint[1]) );
- }
- }
-
- },
-
- /**
- * Method: parseAttributes
- *
- * Parameters:
- * node - {DOMElement}
- *
- * Returns:
- * {Object} An attributes object.
- */
- parseAttributes: function(node) {
- var attributes = {};
- // assume attributes are children of the first type 1 child
- var childNode = node.firstChild;
- var children, i, child, grandchildren, grandchild, name, value;
- while(childNode) {
- if(childNode.nodeType == 1) {
- // attributes are type 1 children with one type 3 child
- children = childNode.childNodes;
- for(i=0; i<children.length; ++i) {
- child = children[i];
- if(child.nodeType == 1) {
- grandchildren = child.childNodes;
- if(grandchildren.length == 1) {
- grandchild = grandchildren[0];
- if(grandchild.nodeType == 3 ||
- grandchild.nodeType == 4) {
- name = (child.prefix) ?
- child.nodeName.split(":")[1] :
- child.nodeName;
- value = grandchild.nodeValue.replace(
- this.regExes.trimSpace, "");
- attributes[name] = value;
- }
- } else {
- // If child has no childNodes (grandchildren),
- // set an attribute with null value.
- // e.g. <prefix:fieldname/> becomes
- // {fieldname: null}
- attributes[child.nodeName.split(":").pop()] = null;
- }
- }
- }
- break;
- }
- childNode = childNode.nextSibling;
- }
- return attributes;
- },
-
- /**
- * APIMethod: write
- * Generate a GML document string given a list of features.
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)} List of features to
- * serialize into a string.
- *
- * Returns:
- * {String} A string representing the GML document.
- */
- write: function(features) {
- if(!(OpenLayers.Util.isArray(features))) {
- features = [features];
- }
- var gml = this.createElementNS("http://www.opengis.net/wfs",
- "wfs:" + this.collectionName);
- for(var i=0; i<features.length; i++) {
- gml.appendChild(this.createFeatureXML(features[i]));
- }
- return OpenLayers.Format.XML.prototype.write.apply(this, [gml]);
- },
-
- /**
- * Method: createFeatureXML
- * Accept an OpenLayers.Feature.Vector, and build a GML node for it.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>} The feature to be built as GML.
- *
- * Returns:
- * {DOMElement} A node reprensting the feature in GML.
- */
- createFeatureXML: function(feature) {
- var geometry = feature.geometry;
- var geometryNode = this.buildGeometryNode(geometry);
- var geomContainer = this.createElementNS(this.featureNS,
- this.featurePrefix + ":" +
- this.geometryName);
- geomContainer.appendChild(geometryNode);
- var featureNode = this.createElementNS(this.gmlns,
- "gml:" + this.featureName);
- var featureContainer = this.createElementNS(this.featureNS,
- this.featurePrefix + ":" +
- this.layerName);
- var fid = feature.fid || feature.id;
- featureContainer.setAttribute("fid", fid);
- featureContainer.appendChild(geomContainer);
- for(var attr in feature.attributes) {
- var attrText = this.createTextNode(feature.attributes[attr]);
- var nodename = attr.substring(attr.lastIndexOf(":") + 1);
- var attrContainer = this.createElementNS(this.featureNS,
- this.featurePrefix + ":" +
- nodename);
- attrContainer.appendChild(attrText);
- featureContainer.appendChild(attrContainer);
- }
- featureNode.appendChild(featureContainer);
- return featureNode;
- },
-
- /**
- * APIMethod: buildGeometryNode
- */
- buildGeometryNode: function(geometry) {
- if (this.externalProjection && this.internalProjection) {
- geometry = geometry.clone();
- geometry.transform(this.internalProjection,
- this.externalProjection);
- }
- var className = geometry.CLASS_NAME;
- var type = className.substring(className.lastIndexOf(".") + 1);
- var builder = this.buildGeometry[type.toLowerCase()];
- return builder.apply(this, [geometry]);
- },
-
- /**
- * Property: buildGeometry
- * Object containing methods to do the actual geometry node building
- * based on geometry type.
- */
- buildGeometry: {
- // TBD retrieve the srs from layer
- // srsName is non-standard, so not including it until it's right.
- // gml.setAttribute("srsName",
- // "http://www.opengis.net/gml/srs/epsg.xml#4326");
-
- /**
- * Method: buildGeometry.point
- * Given an OpenLayers point geometry, create a GML point.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Point>} A point geometry.
- *
- * Returns:
- * {DOMElement} A GML point node.
- */
- point: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:Point");
- gml.appendChild(this.buildCoordinatesNode(geometry));
- return gml;
- },
-
- /**
- * Method: buildGeometry.multipoint
- * Given an OpenLayers multipoint geometry, create a GML multipoint.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.MultiPoint>} A multipoint geometry.
- *
- * Returns:
- * {DOMElement} A GML multipoint node.
- */
- multipoint: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:MultiPoint");
- var points = geometry.components;
- var pointMember, pointGeom;
- for(var i=0; i<points.length; i++) {
- pointMember = this.createElementNS(this.gmlns,
- "gml:pointMember");
- pointGeom = this.buildGeometry.point.apply(this,
- [points[i]]);
- pointMember.appendChild(pointGeom);
- gml.appendChild(pointMember);
- }
- return gml;
- },
-
- /**
- * Method: buildGeometry.linestring
- * Given an OpenLayers linestring geometry, create a GML linestring.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.LineString>} A linestring geometry.
- *
- * Returns:
- * {DOMElement} A GML linestring node.
- */
- linestring: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:LineString");
- gml.appendChild(this.buildCoordinatesNode(geometry));
- return gml;
- },
-
- /**
- * Method: buildGeometry.multilinestring
- * Given an OpenLayers multilinestring geometry, create a GML
- * multilinestring.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.MultiLineString>} A multilinestring
- * geometry.
- *
- * Returns:
- * {DOMElement} A GML multilinestring node.
- */
- multilinestring: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:MultiLineString");
- var lines = geometry.components;
- var lineMember, lineGeom;
- for(var i=0; i<lines.length; ++i) {
- lineMember = this.createElementNS(this.gmlns,
- "gml:lineStringMember");
- lineGeom = this.buildGeometry.linestring.apply(this,
- [lines[i]]);
- lineMember.appendChild(lineGeom);
- gml.appendChild(lineMember);
- }
- return gml;
- },
-
- /**
- * Method: buildGeometry.linearring
- * Given an OpenLayers linearring geometry, create a GML linearring.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.LinearRing>} A linearring geometry.
- *
- * Returns:
- * {DOMElement} A GML linearring node.
- */
- linearring: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:LinearRing");
- gml.appendChild(this.buildCoordinatesNode(geometry));
- return gml;
- },
-
- /**
- * Method: buildGeometry.polygon
- * Given an OpenLayers polygon geometry, create a GML polygon.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Polygon>} A polygon geometry.
- *
- * Returns:
- * {DOMElement} A GML polygon node.
- */
- polygon: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:Polygon");
- var rings = geometry.components;
- var ringMember, ringGeom, type;
- for(var i=0; i<rings.length; ++i) {
- type = (i==0) ? "outerBoundaryIs" : "innerBoundaryIs";
- ringMember = this.createElementNS(this.gmlns,
- "gml:" + type);
- ringGeom = this.buildGeometry.linearring.apply(this,
- [rings[i]]);
- ringMember.appendChild(ringGeom);
- gml.appendChild(ringMember);
- }
- return gml;
- },
-
- /**
- * Method: buildGeometry.multipolygon
- * Given an OpenLayers multipolygon geometry, create a GML multipolygon.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.MultiPolygon>} A multipolygon
- * geometry.
- *
- * Returns:
- * {DOMElement} A GML multipolygon node.
- */
- multipolygon: function(geometry) {
- var gml = this.createElementNS(this.gmlns, "gml:MultiPolygon");
- var polys = geometry.components;
- var polyMember, polyGeom;
- for(var i=0; i<polys.length; ++i) {
- polyMember = this.createElementNS(this.gmlns,
- "gml:polygonMember");
- polyGeom = this.buildGeometry.polygon.apply(this,
- [polys[i]]);
- polyMember.appendChild(polyGeom);
- gml.appendChild(polyMember);
- }
- return gml;
-
- },
-
- /**
- * Method: buildGeometry.bounds
- * Given an OpenLayers bounds, create a GML box.
- *
- * Parameters:
- * bounds - {<OpenLayers.Geometry.Bounds>} A bounds object.
- *
- * Returns:
- * {DOMElement} A GML box node.
- */
- bounds: function(bounds) {
- var gml = this.createElementNS(this.gmlns, "gml:Box");
- gml.appendChild(this.buildCoordinatesNode(bounds));
- return gml;
- }
- },
-
- /**
- * Method: buildCoordinates
- * builds the coordinates XmlNode
- * (code)
- * <gml:coordinates decimal="." cs="," ts=" ">...</gml:coordinates>
- * (end)
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- *
- * Returns:
- * {XmlNode} created xmlNode
- */
- buildCoordinatesNode: function(geometry) {
- var coordinatesNode = this.createElementNS(this.gmlns,
- "gml:coordinates");
- coordinatesNode.setAttribute("decimal", ".");
- coordinatesNode.setAttribute("cs", ",");
- coordinatesNode.setAttribute("ts", " ");
-
- var parts = [];
-
- if(geometry instanceof OpenLayers.Bounds){
- parts.push(geometry.left + "," + geometry.bottom);
- parts.push(geometry.right + "," + geometry.top);
- } else {
- var points = (geometry.components) ? geometry.components : [geometry];
- for(var i=0; i<points.length; i++) {
- parts.push(points[i].x + "," + points[i].y);
- }
- }
-
- var txtNode = this.createTextNode(parts.join(" "));
- coordinatesNode.appendChild(txtNode);
-
- return coordinatesNode;
- },
-
- CLASS_NAME: "OpenLayers.Format.GML"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GML/Base.js b/misc/openlayers/lib/OpenLayers/Format/GML/Base.js
deleted file mode 100644
index 6c49969..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GML/Base.js
+++ /dev/null
@@ -1,645 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/GML.js
- */
-
-/**
- * Though required in the full build, if the GML format is excluded, we set
- * the namespace here.
- */
-if(!OpenLayers.Format.GML) {
- OpenLayers.Format.GML = {};
-}
-
-/**
- * Class: OpenLayers.Format.GML.Base
- * Superclass for GML parsers.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- gml: "http://www.opengis.net/gml",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance",
- wfs: "http://www.opengis.net/wfs" // this is a convenience for reading wfs:FeatureCollection
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "gml",
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocation: null,
-
- /**
- * APIProperty: featureType
- * {Array(String) or String} The local (without prefix) feature typeName(s).
- */
- featureType: null,
-
- /**
- * APIProperty: featureNS
- * {String} The feature namespace. Must be set in the options at
- * construction.
- */
- featureNS: null,
-
- /**
- * APIProperty: geometry
- * {String} Name of geometry element. Defaults to "geometry". If null, it
- * will be set on <read> when the first geometry is parsed.
- */
- geometryName: "geometry",
-
- /**
- * APIProperty: extractAttributes
- * {Boolean} Extract attributes from GML. Default is true.
- */
- extractAttributes: true,
-
- /**
- * APIProperty: srsName
- * {String} URI for spatial reference system. This is optional for
- * single part geometries and mandatory for collections and multis.
- * If set, the srsName attribute will be written for all geometries.
- * Default is null.
- */
- srsName: null,
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x)
- * Changing is not recommended, a new Format should be instantiated.
- */
- xy: true,
-
- /**
- * Property: geometryTypes
- * {Object} Maps OpenLayers geometry class names to GML element names.
- * Use <setGeometryTypes> before accessing this property.
- */
- geometryTypes: null,
-
- /**
- * Property: singleFeatureType
- * {Boolean} True if there is only 1 featureType, and not an array
- * of featuretypes.
- */
- singleFeatureType: null,
-
- /**
- * Property: autoConfig
- * {Boolean} Indicates if the format was configured without a <featureNS>,
- * but auto-configured <featureNS> and <featureType> during read.
- * Subclasses making use of <featureType> auto-configuration should make
- * the first call to the <readNode> method (usually in the read method)
- * with true as 3rd argument, so the auto-configured featureType can be
- * reset and the format can be reused for subsequent reads with data from
- * different featureTypes. Set to false after read if you want to keep the
- * auto-configured values.
- */
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g),
- featureMember: (/^(.*:)?featureMembers?$/)
- },
-
- /**
- * Constructor: OpenLayers.Format.GML.Base
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.GML.v2> or <OpenLayers.Format.GML.v3> constructor
- * instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- *
- * Valid options properties:
- * featureType - {Array(String) or String} Local (without prefix) feature
- * typeName(s) (required for write).
- * featureNS - {String} Feature namespace (required for write).
- * geometryName - {String} Geometry element name (required for write).
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- this.setGeometryTypes();
- if(options && options.featureNS) {
- this.setNamespace("feature", options.featureNS);
- }
- this.singleFeatureType = !options || (typeof options.featureType === "string");
- },
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {DOMElement} A gml:featureMember element, a gml:featureMembers
- * element, or an element containing either of the above at any level.
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} An array of features.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var features = [];
- this.readNode(data, {features: features}, true);
- if(features.length == 0) {
- // look for gml:featureMember elements
- var elements = this.getElementsByTagNameNS(
- data, this.namespaces.gml, "featureMember"
- );
- if(elements.length) {
- for(var i=0, len=elements.length; i<len; ++i) {
- this.readNode(elements[i], {features: features}, true);
- }
- } else {
- // look for gml:featureMembers elements (this is v3, but does no harm here)
- var elements = this.getElementsByTagNameNS(
- data, this.namespaces.gml, "featureMembers"
- );
- if(elements.length) {
- // there can be only one
- this.readNode(elements[0], {features: features}, true);
- }
- }
- }
- return features;
- },
-
- /**
- * Method: readNode
- * Shorthand for applying one of the named readers given the node
- * namespace and local name. Readers take two args (node, obj) and
- * generally extend or modify the second.
- *
- * Parameters:
- * node - {DOMElement} The node to be read (required).
- * obj - {Object} The object to be modified (optional).
- * first - {Boolean} Should be set to true for the first node read. This
- * is usually the readNode call in the read method. Without this being
- * set, auto-configured properties will stick on subsequent reads.
- *
- * Returns:
- * {Object} The input object, modified (or a new one if none was provided).
- */
- readNode: function(node, obj, first) {
- // on subsequent calls of format.read(), we want to reset auto-
- // configured properties and auto-configure again.
- if (first === true && this.autoConfig === true) {
- this.featureType = null;
- delete this.namespaceAlias[this.featureNS];
- delete this.namespaces["feature"];
- this.featureNS = null;
- }
- // featureType auto-configuration
- if (!this.featureNS && (!(node.prefix in this.namespaces) &&
- node.parentNode.namespaceURI == this.namespaces["gml"] &&
- this.regExes.featureMember.test(node.parentNode.nodeName))) {
- this.featureType = node.nodeName.split(":").pop();
- this.setNamespace("feature", node.namespaceURI);
- this.featureNS = node.namespaceURI;
- this.autoConfig = true;
- }
- return OpenLayers.Format.XML.prototype.readNode.apply(this, [node, obj]);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "gml": {
- "_inherit": function(node, obj, container) {
- // To be implemented by version specific parsers
- },
- "featureMember": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "featureMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "name": function(node, obj) {
- obj.name = this.getChildValue(node);
- },
- "boundedBy": function(node, obj) {
- var container = {};
- this.readChildNodes(node, container);
- if(container.components && container.components.length > 0) {
- obj.bounds = container.components[0];
- }
- },
- "Point": function(node, container) {
- var obj = {points: []};
- this.readChildNodes(node, obj);
- if(!container.components) {
- container.components = [];
- }
- container.components.push(obj.points[0]);
- },
- "coordinates": function(node, obj) {
- var str = this.getChildValue(node).replace(
- this.regExes.trimSpace, ""
- );
- str = str.replace(this.regExes.trimComma, ",");
- var pointList = str.split(this.regExes.splitSpace);
- var coords;
- var numPoints = pointList.length;
- var points = new Array(numPoints);
- for(var i=0; i<numPoints; ++i) {
- coords = pointList[i].split(",");
- if (this.xy) {
- points[i] = new OpenLayers.Geometry.Point(
- coords[0], coords[1], coords[2]
- );
- } else {
- points[i] = new OpenLayers.Geometry.Point(
- coords[1], coords[0], coords[2]
- );
- }
- }
- obj.points = points;
- },
- "coord": function(node, obj) {
- var coord = {};
- this.readChildNodes(node, coord);
- if(!obj.points) {
- obj.points = [];
- }
- obj.points.push(new OpenLayers.Geometry.Point(
- coord.x, coord.y, coord.z
- ));
- },
- "X": function(node, coord) {
- coord.x = this.getChildValue(node);
- },
- "Y": function(node, coord) {
- coord.y = this.getChildValue(node);
- },
- "Z": function(node, coord) {
- coord.z = this.getChildValue(node);
- },
- "MultiPoint": function(node, container) {
- var obj = {components: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- container.components = [
- new OpenLayers.Geometry.MultiPoint(obj.components)
- ];
- },
- "pointMember": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "LineString": function(node, container) {
- var obj = {};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- if(!container.components) {
- container.components = [];
- }
- container.components.push(
- new OpenLayers.Geometry.LineString(obj.points)
- );
- },
- "MultiLineString": function(node, container) {
- var obj = {components: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- container.components = [
- new OpenLayers.Geometry.MultiLineString(obj.components)
- ];
- },
- "lineStringMember": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Polygon": function(node, container) {
- var obj = {outer: null, inner: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- obj.inner.unshift(obj.outer);
- if(!container.components) {
- container.components = [];
- }
- container.components.push(
- new OpenLayers.Geometry.Polygon(obj.inner)
- );
- },
- "LinearRing": function(node, obj) {
- var container = {};
- this.readers.gml._inherit.apply(this, [node, container]);
- this.readChildNodes(node, container);
- obj.components = [new OpenLayers.Geometry.LinearRing(
- container.points
- )];
- },
- "MultiPolygon": function(node, container) {
- var obj = {components: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- container.components = [
- new OpenLayers.Geometry.MultiPolygon(obj.components)
- ];
- },
- "polygonMember": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "GeometryCollection": function(node, container) {
- var obj = {components: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- container.components = [
- new OpenLayers.Geometry.Collection(obj.components)
- ];
- },
- "geometryMember": function(node, obj) {
- this.readChildNodes(node, obj);
- }
- },
- "feature": {
- "*": function(node, obj) {
- // The node can either be named like the featureType, or it
- // can be a child of the feature:featureType. Children can be
- // geometry or attributes.
- var name;
- var local = node.localName || node.nodeName.split(":").pop();
- // Since an attribute can have the same name as the feature type
- // we only want to read the node as a feature if the parent
- // node can have feature nodes as children. In this case, the
- // obj.features property is set.
- if (obj.features) {
- if (!this.singleFeatureType &&
- (OpenLayers.Util.indexOf(this.featureType, local) !== -1)) {
- name = "_typeName";
- } else if(local === this.featureType) {
- name = "_typeName";
- }
- } else {
- // Assume attribute elements have one child node and that the child
- // is a text node. Otherwise assume it is a geometry node.
- if(node.childNodes.length == 0 ||
- (node.childNodes.length == 1 && node.firstChild.nodeType == 3)) {
- if(this.extractAttributes) {
- name = "_attribute";
- }
- } else {
- name = "_geometry";
- }
- }
- if(name) {
- this.readers.feature[name].apply(this, [node, obj]);
- }
- },
- "_typeName": function(node, obj) {
- var container = {components: [], attributes: {}};
- this.readChildNodes(node, container);
- // look for common gml namespaced elements
- if(container.name) {
- container.attributes.name = container.name;
- }
- var feature = new OpenLayers.Feature.Vector(
- container.components[0], container.attributes
- );
- if (!this.singleFeatureType) {
- feature.type = node.nodeName.split(":").pop();
- feature.namespace = node.namespaceURI;
- }
- var fid = node.getAttribute("fid") ||
- this.getAttributeNS(node, this.namespaces["gml"], "id");
- if(fid) {
- feature.fid = fid;
- }
- if(this.internalProjection && this.externalProjection &&
- feature.geometry) {
- feature.geometry.transform(
- this.externalProjection, this.internalProjection
- );
- }
- if(container.bounds) {
- feature.bounds = container.bounds;
- }
- obj.features.push(feature);
- },
- "_geometry": function(node, obj) {
- if (!this.geometryName) {
- this.geometryName = node.nodeName.split(":").pop();
- }
- this.readChildNodes(node, obj);
- },
- "_attribute": function(node, obj) {
- var local = node.localName || node.nodeName.split(":").pop();
- var value = this.getChildValue(node);
- obj.attributes[local] = value;
- }
- },
- "wfs": {
- "FeatureCollection": function(node, obj) {
- this.readChildNodes(node, obj);
- }
- }
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>) | OpenLayers.Feature.Vector}
- * An array of features or a single feature.
- *
- * Returns:
- * {String} Given an array of features, a doc with a gml:featureMembers
- * element will be returned. Given a single feature, a doc with a
- * gml:featureMember element will be returned.
- */
- write: function(features) {
- var name;
- if(OpenLayers.Util.isArray(features)) {
- name = "featureMembers";
- } else {
- name = "featureMember";
- }
- var root = this.writeNode("gml:" + name, features);
- this.setAttributeNS(
- root, this.namespaces["xsi"],
- "xsi:schemaLocation", this.schemaLocation
- );
-
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "gml": {
- "featureMember": function(feature) {
- var node = this.createElementNSPlus("gml:featureMember");
- this.writeNode("feature:_typeName", feature, node);
- return node;
- },
- "MultiPoint": function(geometry) {
- var node = this.createElementNSPlus("gml:MultiPoint");
- var components = geometry.components || [geometry];
- for(var i=0, ii=components.length; i<ii; ++i) {
- this.writeNode("pointMember", components[i], node);
- }
- return node;
- },
- "pointMember": function(geometry) {
- var node = this.createElementNSPlus("gml:pointMember");
- this.writeNode("Point", geometry, node);
- return node;
- },
- "MultiLineString": function(geometry) {
- var node = this.createElementNSPlus("gml:MultiLineString");
- var components = geometry.components || [geometry];
- for(var i=0, ii=components.length; i<ii; ++i) {
- this.writeNode("lineStringMember", components[i], node);
- }
- return node;
- },
- "lineStringMember": function(geometry) {
- var node = this.createElementNSPlus("gml:lineStringMember");
- this.writeNode("LineString", geometry, node);
- return node;
- },
- "MultiPolygon": function(geometry) {
- var node = this.createElementNSPlus("gml:MultiPolygon");
- var components = geometry.components || [geometry];
- for(var i=0, ii=components.length; i<ii; ++i) {
- this.writeNode(
- "polygonMember", components[i], node
- );
- }
- return node;
- },
- "polygonMember": function(geometry) {
- var node = this.createElementNSPlus("gml:polygonMember");
- this.writeNode("Polygon", geometry, node);
- return node;
- },
- "GeometryCollection": function(geometry) {
- var node = this.createElementNSPlus("gml:GeometryCollection");
- for(var i=0, len=geometry.components.length; i<len; ++i) {
- this.writeNode("geometryMember", geometry.components[i], node);
- }
- return node;
- },
- "geometryMember": function(geometry) {
- var node = this.createElementNSPlus("gml:geometryMember");
- var child = this.writeNode("feature:_geometry", geometry);
- node.appendChild(child.firstChild);
- return node;
- }
- },
- "feature": {
- "_typeName": function(feature) {
- var node = this.createElementNSPlus("feature:" + this.featureType, {
- attributes: {fid: feature.fid}
- });
- if(feature.geometry) {
- this.writeNode("feature:_geometry", feature.geometry, node);
- }
- for(var name in feature.attributes) {
- var value = feature.attributes[name];
- if(value != null) {
- this.writeNode(
- "feature:_attribute",
- {name: name, value: value}, node
- );
- }
- }
- return node;
- },
- "_geometry": function(geometry) {
- if(this.externalProjection && this.internalProjection) {
- geometry = geometry.clone().transform(
- this.internalProjection, this.externalProjection
- );
- }
- var node = this.createElementNSPlus(
- "feature:" + this.geometryName
- );
- var type = this.geometryTypes[geometry.CLASS_NAME];
- var child = this.writeNode("gml:" + type, geometry, node);
- if(this.srsName) {
- child.setAttribute("srsName", this.srsName);
- }
- return node;
- },
- "_attribute": function(obj) {
- return this.createElementNSPlus("feature:" + obj.name, {
- value: obj.value
- });
- }
- },
- "wfs": {
- "FeatureCollection": function(features) {
- /**
- * This is only here because GML2 only describes abstract
- * feature collections. Typically, you would not be using
- * the GML format to write wfs elements. This just provides
- * some way to write out lists of features. GML3 defines the
- * featureMembers element, so that is used by default instead.
- */
- var node = this.createElementNSPlus("wfs:FeatureCollection");
- for(var i=0, len=features.length; i<len; ++i) {
- this.writeNode("gml:featureMember", features[i], node);
- }
- return node;
- }
- }
- },
-
- /**
- * Method: setGeometryTypes
- * Sets the <geometryTypes> mapping.
- */
- setGeometryTypes: function() {
- this.geometryTypes = {
- "OpenLayers.Geometry.Point": "Point",
- "OpenLayers.Geometry.MultiPoint": "MultiPoint",
- "OpenLayers.Geometry.LineString": "LineString",
- "OpenLayers.Geometry.MultiLineString": "MultiLineString",
- "OpenLayers.Geometry.Polygon": "Polygon",
- "OpenLayers.Geometry.MultiPolygon": "MultiPolygon",
- "OpenLayers.Geometry.Collection": "GeometryCollection"
- };
- },
-
- CLASS_NAME: "OpenLayers.Format.GML.Base"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GML/v2.js b/misc/openlayers/lib/OpenLayers/Format/GML/v2.js
deleted file mode 100644
index bd26b99..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GML/v2.js
+++ /dev/null
@@ -1,193 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/GML/Base.js
- */
-
-/**
- * Class: OpenLayers.Format.GML.v2
- * Parses GML version 2.
- *
- * Inherits from:
- * - <OpenLayers.Format.GML.Base>
- */
-OpenLayers.Format.GML.v2 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocation: "http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd",
-
- /**
- * Constructor: OpenLayers.Format.GML.v2
- * Create a parser for GML v2.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- *
- * Valid options properties:
- * featureType - {String} Local (without prefix) feature typeName (required).
- * featureNS - {String} Feature namespace (required).
- * geometryName - {String} Geometry element name.
- */
- initialize: function(options) {
- OpenLayers.Format.GML.Base.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "gml": OpenLayers.Util.applyDefaults({
- "outerBoundaryIs": function(node, container) {
- var obj = {};
- this.readChildNodes(node, obj);
- container.outer = obj.components[0];
- },
- "innerBoundaryIs": function(node, container) {
- var obj = {};
- this.readChildNodes(node, obj);
- container.inner.push(obj.components[0]);
- },
- "Box": function(node, container) {
- var obj = {};
- this.readChildNodes(node, obj);
- if(!container.components) {
- container.components = [];
- }
- var min = obj.points[0];
- var max = obj.points[1];
- container.components.push(
- new OpenLayers.Bounds(min.x, min.y, max.x, max.y)
- );
- }
- }, OpenLayers.Format.GML.Base.prototype.readers["gml"]),
- "feature": OpenLayers.Format.GML.Base.prototype.readers["feature"],
- "wfs": OpenLayers.Format.GML.Base.prototype.readers["wfs"]
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>) | OpenLayers.Feature.Vector}
- * An array of features or a single feature.
- *
- * Returns:
- * {String} Given an array of features, a doc with a gml:featureMembers
- * element will be returned. Given a single feature, a doc with a
- * gml:featureMember element will be returned.
- */
- write: function(features) {
- var name;
- if(OpenLayers.Util.isArray(features)) {
- // GML2 only has abstract feature collections
- // wfs provides a feature collection from a well-known schema
- name = "wfs:FeatureCollection";
- } else {
- name = "gml:featureMember";
- }
- var root = this.writeNode(name, features);
- this.setAttributeNS(
- root, this.namespaces["xsi"],
- "xsi:schemaLocation", this.schemaLocation
- );
-
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "gml": OpenLayers.Util.applyDefaults({
- "Point": function(geometry) {
- var node = this.createElementNSPlus("gml:Point");
- this.writeNode("coordinates", [geometry], node);
- return node;
- },
- "coordinates": function(points) {
- var numPoints = points.length;
- var parts = new Array(numPoints);
- var point;
- for(var i=0; i<numPoints; ++i) {
- point = points[i];
- if(this.xy) {
- parts[i] = point.x + "," + point.y;
- } else {
- parts[i] = point.y + "," + point.x;
- }
- if(point.z != undefined) { // allow null or undefined
- parts[i] += "," + point.z;
- }
- }
- return this.createElementNSPlus("gml:coordinates", {
- attributes: {
- decimal: ".", cs: ",", ts: " "
- },
- value: (numPoints == 1) ? parts[0] : parts.join(" ")
- });
- },
- "LineString": function(geometry) {
- var node = this.createElementNSPlus("gml:LineString");
- this.writeNode("coordinates", geometry.components, node);
- return node;
- },
- "Polygon": function(geometry) {
- var node = this.createElementNSPlus("gml:Polygon");
- this.writeNode("outerBoundaryIs", geometry.components[0], node);
- for(var i=1; i<geometry.components.length; ++i) {
- this.writeNode(
- "innerBoundaryIs", geometry.components[i], node
- );
- }
- return node;
- },
- "outerBoundaryIs": function(ring) {
- var node = this.createElementNSPlus("gml:outerBoundaryIs");
- this.writeNode("LinearRing", ring, node);
- return node;
- },
- "innerBoundaryIs": function(ring) {
- var node = this.createElementNSPlus("gml:innerBoundaryIs");
- this.writeNode("LinearRing", ring, node);
- return node;
- },
- "LinearRing": function(ring) {
- var node = this.createElementNSPlus("gml:LinearRing");
- this.writeNode("coordinates", ring.components, node);
- return node;
- },
- "Box": function(bounds) {
- var node = this.createElementNSPlus("gml:Box");
- this.writeNode("coordinates", [
- {x: bounds.left, y: bounds.bottom},
- {x: bounds.right, y: bounds.top}
- ], node);
- // srsName attribute is optional for gml:Box
- if(this.srsName) {
- node.setAttribute("srsName", this.srsName);
- }
- return node;
- }
- }, OpenLayers.Format.GML.Base.prototype.writers["gml"]),
- "feature": OpenLayers.Format.GML.Base.prototype.writers["feature"],
- "wfs": OpenLayers.Format.GML.Base.prototype.writers["wfs"]
- },
-
- CLASS_NAME: "OpenLayers.Format.GML.v2"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GML/v3.js b/misc/openlayers/lib/OpenLayers/Format/GML/v3.js
deleted file mode 100644
index 82c7b1e..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GML/v3.js
+++ /dev/null
@@ -1,477 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/GML/Base.js
- */
-
-/**
- * Class: OpenLayers.Format.GML.v3
- * Parses GML version 3.
- *
- * Inherits from:
- * - <OpenLayers.Format.GML.Base>
- */
-OpenLayers.Format.GML.v3 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version. The writers
- * conform with the Simple Features Profile for GML.
- */
- schemaLocation: "http://www.opengis.net/gml http://schemas.opengis.net/gml/3.1.1/profiles/gmlsfProfile/1.0.0/gmlsf.xsd",
-
- /**
- * Property: curve
- * {Boolean} Write gml:Curve instead of gml:LineString elements. This also
- * affects the elements in multi-part geometries. Default is false.
- * To write gml:Curve elements instead of gml:LineString, set curve
- * to true in the options to the contstructor (cannot be changed after
- * instantiation).
- */
- curve: false,
-
- /**
- * Property: multiCurve
- * {Boolean} Write gml:MultiCurve instead of gml:MultiLineString. Since
- * the latter is deprecated in GML 3, the default is true. To write
- * gml:MultiLineString instead of gml:MultiCurve, set multiCurve to
- * false in the options to the constructor (cannot be changed after
- * instantiation).
- */
- multiCurve: true,
-
- /**
- * Property: surface
- * {Boolean} Write gml:Surface instead of gml:Polygon elements. This also
- * affects the elements in multi-part geometries. Default is false.
- * To write gml:Surface elements instead of gml:Polygon, set surface
- * to true in the options to the contstructor (cannot be changed after
- * instantiation).
- */
- surface: false,
-
- /**
- * Property: multiSurface
- * {Boolean} Write gml:multiSurface instead of gml:MultiPolygon. Since
- * the latter is deprecated in GML 3, the default is true. To write
- * gml:MultiPolygon instead of gml:multiSurface, set multiSurface to
- * false in the options to the constructor (cannot be changed after
- * instantiation).
- */
- multiSurface: true,
-
- /**
- * Constructor: OpenLayers.Format.GML.v3
- * Create a parser for GML v3.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- *
- * Valid options properties:
- * featureType - {String} Local (without prefix) feature typeName (required).
- * featureNS - {String} Feature namespace (required).
- * geometryName - {String} Geometry element name.
- */
- initialize: function(options) {
- OpenLayers.Format.GML.Base.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "gml": OpenLayers.Util.applyDefaults({
- "_inherit": function(node, obj, container) {
- // SRSReferenceGroup attributes
- var dim = parseInt(node.getAttribute("srsDimension"), 10) ||
- (container && container.srsDimension);
- if (dim) {
- obj.srsDimension = dim;
- }
- },
- "featureMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Curve": function(node, container) {
- var obj = {points: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- if(!container.components) {
- container.components = [];
- }
- container.components.push(
- new OpenLayers.Geometry.LineString(obj.points)
- );
- },
- "segments": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "LineStringSegment": function(node, container) {
- var obj = {};
- this.readChildNodes(node, obj);
- if(obj.points) {
- Array.prototype.push.apply(container.points, obj.points);
- }
- },
- "pos": function(node, obj) {
- var str = this.getChildValue(node).replace(
- this.regExes.trimSpace, ""
- );
- var coords = str.split(this.regExes.splitSpace);
- var point;
- if(this.xy) {
- point = new OpenLayers.Geometry.Point(
- coords[0], coords[1], coords[2]
- );
- } else {
- point = new OpenLayers.Geometry.Point(
- coords[1], coords[0], coords[2]
- );
- }
- obj.points = [point];
- },
- "posList": function(node, obj) {
- var str = this.getChildValue(node).replace(
- this.regExes.trimSpace, ""
- );
- var coords = str.split(this.regExes.splitSpace);
- // The "dimension" attribute is from the GML 3.0.1 spec.
- var dim = obj.srsDimension ||
- parseInt(node.getAttribute("srsDimension") || node.getAttribute("dimension"), 10) || 2;
- var j, x, y, z;
- var numPoints = coords.length / dim;
- var points = new Array(numPoints);
- for(var i=0, len=coords.length; i<len; i += dim) {
- x = coords[i];
- y = coords[i+1];
- z = (dim == 2) ? undefined : coords[i+2];
- if (this.xy) {
- points[i/dim] = new OpenLayers.Geometry.Point(x, y, z);
- } else {
- points[i/dim] = new OpenLayers.Geometry.Point(y, x, z);
- }
- }
- obj.points = points;
- },
- "Surface": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "patches": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "PolygonPatch": function(node, obj) {
- this.readers.gml.Polygon.apply(this, [node, obj]);
- },
- "exterior": function(node, container) {
- var obj = {};
- this.readChildNodes(node, obj);
- container.outer = obj.components[0];
- },
- "interior": function(node, container) {
- var obj = {};
- this.readChildNodes(node, obj);
- container.inner.push(obj.components[0]);
- },
- "MultiCurve": function(node, container) {
- var obj = {components: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- if(obj.components.length > 0) {
- container.components = [
- new OpenLayers.Geometry.MultiLineString(obj.components)
- ];
- }
- },
- "curveMember": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "MultiSurface": function(node, container) {
- var obj = {components: []};
- this.readers.gml._inherit.apply(this, [node, obj, container]);
- this.readChildNodes(node, obj);
- if(obj.components.length > 0) {
- container.components = [
- new OpenLayers.Geometry.MultiPolygon(obj.components)
- ];
- }
- },
- "surfaceMember": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "surfaceMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "pointMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "lineStringMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "polygonMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "geometryMembers": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Envelope": function(node, container) {
- var obj = {points: new Array(2)};
- this.readChildNodes(node, obj);
- if(!container.components) {
- container.components = [];
- }
- var min = obj.points[0];
- var max = obj.points[1];
- container.components.push(
- new OpenLayers.Bounds(min.x, min.y, max.x, max.y)
- );
- },
- "lowerCorner": function(node, container) {
- var obj = {};
- this.readers.gml.pos.apply(this, [node, obj]);
- container.points[0] = obj.points[0];
- },
- "upperCorner": function(node, container) {
- var obj = {};
- this.readers.gml.pos.apply(this, [node, obj]);
- container.points[1] = obj.points[0];
- }
- }, OpenLayers.Format.GML.Base.prototype.readers["gml"]),
- "feature": OpenLayers.Format.GML.Base.prototype.readers["feature"],
- "wfs": OpenLayers.Format.GML.Base.prototype.readers["wfs"]
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>) | OpenLayers.Feature.Vector}
- * An array of features or a single feature.
- *
- * Returns:
- * {String} Given an array of features, a doc with a gml:featureMembers
- * element will be returned. Given a single feature, a doc with a
- * gml:featureMember element will be returned.
- */
- write: function(features) {
- var name;
- if(OpenLayers.Util.isArray(features)) {
- name = "featureMembers";
- } else {
- name = "featureMember";
- }
- var root = this.writeNode("gml:" + name, features);
- this.setAttributeNS(
- root, this.namespaces["xsi"],
- "xsi:schemaLocation", this.schemaLocation
- );
-
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "gml": OpenLayers.Util.applyDefaults({
- "featureMembers": function(features) {
- var node = this.createElementNSPlus("gml:featureMembers");
- for(var i=0, len=features.length; i<len; ++i) {
- this.writeNode("feature:_typeName", features[i], node);
- }
- return node;
- },
- "Point": function(geometry) {
- var node = this.createElementNSPlus("gml:Point");
- this.writeNode("pos", geometry, node);
- return node;
- },
- "pos": function(point) {
- // only 2d for simple features profile
- var pos = (this.xy) ?
- (point.x + " " + point.y) : (point.y + " " + point.x);
- return this.createElementNSPlus("gml:pos", {
- value: pos
- });
- },
- "LineString": function(geometry) {
- var node = this.createElementNSPlus("gml:LineString");
- this.writeNode("posList", geometry.components, node);
- return node;
- },
- "Curve": function(geometry) {
- var node = this.createElementNSPlus("gml:Curve");
- this.writeNode("segments", geometry, node);
- return node;
- },
- "segments": function(geometry) {
- var node = this.createElementNSPlus("gml:segments");
- this.writeNode("LineStringSegment", geometry, node);
- return node;
- },
- "LineStringSegment": function(geometry) {
- var node = this.createElementNSPlus("gml:LineStringSegment");
- this.writeNode("posList", geometry.components, node);
- return node;
- },
- "posList": function(points) {
- // only 2d for simple features profile
- var len = points.length;
- var parts = new Array(len);
- var point;
- for(var i=0; i<len; ++i) {
- point = points[i];
- if(this.xy) {
- parts[i] = point.x + " " + point.y;
- } else {
- parts[i] = point.y + " " + point.x;
- }
- }
- return this.createElementNSPlus("gml:posList", {
- value: parts.join(" ")
- });
- },
- "Surface": function(geometry) {
- var node = this.createElementNSPlus("gml:Surface");
- this.writeNode("patches", geometry, node);
- return node;
- },
- "patches": function(geometry) {
- var node = this.createElementNSPlus("gml:patches");
- this.writeNode("PolygonPatch", geometry, node);
- return node;
- },
- "PolygonPatch": function(geometry) {
- var node = this.createElementNSPlus("gml:PolygonPatch", {
- attributes: {interpolation: "planar"}
- });
- this.writeNode("exterior", geometry.components[0], node);
- for(var i=1, len=geometry.components.length; i<len; ++i) {
- this.writeNode(
- "interior", geometry.components[i], node
- );
- }
- return node;
- },
- "Polygon": function(geometry) {
- var node = this.createElementNSPlus("gml:Polygon");
- this.writeNode("exterior", geometry.components[0], node);
- for(var i=1, len=geometry.components.length; i<len; ++i) {
- this.writeNode(
- "interior", geometry.components[i], node
- );
- }
- return node;
- },
- "exterior": function(ring) {
- var node = this.createElementNSPlus("gml:exterior");
- this.writeNode("LinearRing", ring, node);
- return node;
- },
- "interior": function(ring) {
- var node = this.createElementNSPlus("gml:interior");
- this.writeNode("LinearRing", ring, node);
- return node;
- },
- "LinearRing": function(ring) {
- var node = this.createElementNSPlus("gml:LinearRing");
- this.writeNode("posList", ring.components, node);
- return node;
- },
- "MultiCurve": function(geometry) {
- var node = this.createElementNSPlus("gml:MultiCurve");
- var components = geometry.components || [geometry];
- for(var i=0, len=components.length; i<len; ++i) {
- this.writeNode("curveMember", components[i], node);
- }
- return node;
- },
- "curveMember": function(geometry) {
- var node = this.createElementNSPlus("gml:curveMember");
- if(this.curve) {
- this.writeNode("Curve", geometry, node);
- } else {
- this.writeNode("LineString", geometry, node);
- }
- return node;
- },
- "MultiSurface": function(geometry) {
- var node = this.createElementNSPlus("gml:MultiSurface");
- var components = geometry.components || [geometry];
- for(var i=0, len=components.length; i<len; ++i) {
- this.writeNode("surfaceMember", components[i], node);
- }
- return node;
- },
- "surfaceMember": function(polygon) {
- var node = this.createElementNSPlus("gml:surfaceMember");
- if(this.surface) {
- this.writeNode("Surface", polygon, node);
- } else {
- this.writeNode("Polygon", polygon, node);
- }
- return node;
- },
- "Envelope": function(bounds) {
- var node = this.createElementNSPlus("gml:Envelope");
- this.writeNode("lowerCorner", bounds, node);
- this.writeNode("upperCorner", bounds, node);
- // srsName attribute is required for gml:Envelope
- if(this.srsName) {
- node.setAttribute("srsName", this.srsName);
- }
- return node;
- },
- "lowerCorner": function(bounds) {
- // only 2d for simple features profile
- var pos = (this.xy) ?
- (bounds.left + " " + bounds.bottom) :
- (bounds.bottom + " " + bounds.left);
- return this.createElementNSPlus("gml:lowerCorner", {
- value: pos
- });
- },
- "upperCorner": function(bounds) {
- // only 2d for simple features profile
- var pos = (this.xy) ?
- (bounds.right + " " + bounds.top) :
- (bounds.top + " " + bounds.right);
- return this.createElementNSPlus("gml:upperCorner", {
- value: pos
- });
- }
- }, OpenLayers.Format.GML.Base.prototype.writers["gml"]),
- "feature": OpenLayers.Format.GML.Base.prototype.writers["feature"],
- "wfs": OpenLayers.Format.GML.Base.prototype.writers["wfs"]
- },
-
- /**
- * Method: setGeometryTypes
- * Sets the <geometryTypes> mapping.
- */
- setGeometryTypes: function() {
- this.geometryTypes = {
- "OpenLayers.Geometry.Point": "Point",
- "OpenLayers.Geometry.MultiPoint": "MultiPoint",
- "OpenLayers.Geometry.LineString": (this.curve === true) ? "Curve": "LineString",
- "OpenLayers.Geometry.MultiLineString": (this.multiCurve === false) ? "MultiLineString" : "MultiCurve",
- "OpenLayers.Geometry.Polygon": (this.surface === true) ? "Surface" : "Polygon",
- "OpenLayers.Geometry.MultiPolygon": (this.multiSurface === false) ? "MultiPolygon" : "MultiSurface",
- "OpenLayers.Geometry.Collection": "GeometryCollection"
- };
- },
-
- CLASS_NAME: "OpenLayers.Format.GML.v3"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GPX.js b/misc/openlayers/lib/OpenLayers/Format/GPX.js
deleted file mode 100644
index 16a8056..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GPX.js
+++ /dev/null
@@ -1,385 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Projection.js
- */
-
-/**
- * Class: OpenLayers.Format.GPX
- * Read/write GPX parser. Create a new instance with the
- * <OpenLayers.Format.GPX> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.GPX = OpenLayers.Class(OpenLayers.Format.XML, {
-
-
- /**
- * APIProperty: defaultDesc
- * {String} Default description for the waypoints/tracks in the case
- * where the feature has no "description" attribute.
- * Default is "No description available".
- */
- defaultDesc: "No description available",
-
- /**
- * APIProperty: extractWaypoints
- * {Boolean} Extract waypoints from GPX. (default: true)
- */
- extractWaypoints: true,
-
- /**
- * APIProperty: extractTracks
- * {Boolean} Extract tracks from GPX. (default: true)
- */
- extractTracks: true,
-
- /**
- * APIProperty: extractRoutes
- * {Boolean} Extract routes from GPX. (default: true)
- */
- extractRoutes: true,
-
- /**
- * APIProperty: extractAttributes
- * {Boolean} Extract feature attributes from GPX. (default: true)
- * NOTE: Attributes as part of extensions to the GPX standard may not
- * be extracted.
- */
- extractAttributes: true,
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- gpx: "http://www.topografix.com/GPX/1/1",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: schemaLocation
- * {String} Schema location. Defaults to
- * "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"
- */
- schemaLocation: "http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd",
-
- /**
- * APIProperty: creator
- * {String} The creator attribute to be added to the written GPX files.
- * Defaults to "OpenLayers"
- */
- creator: "OpenLayers",
-
- /**
- * Constructor: OpenLayers.Format.GPX
- * Create a new parser for GPX.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- // GPX coordinates are always in longlat WGS84
- this.externalProjection = new OpenLayers.Projection("EPSG:4326");
-
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Return a list of features from a GPX doc
- *
- * Parameters:
- * doc - {Element}
- *
- * Returns:
- * Array({<OpenLayers.Feature.Vector>})
- */
- read: function(doc) {
- if (typeof doc == "string") {
- doc = OpenLayers.Format.XML.prototype.read.apply(this, [doc]);
- }
- var features = [];
-
- if(this.extractTracks) {
- var tracks = doc.getElementsByTagName("trk");
- for (var i=0, len=tracks.length; i<len; i++) {
- // Attributes are only in trk nodes, not trkseg nodes
- var attrs = {};
- if(this.extractAttributes) {
- attrs = this.parseAttributes(tracks[i]);
- }
-
- var segs = this.getElementsByTagNameNS(tracks[i], tracks[i].namespaceURI, "trkseg");
- for (var j = 0, seglen = segs.length; j < seglen; j++) {
- // We don't yet support extraction of trkpt attributes
- // All trksegs of a trk get that trk's attributes
- var track = this.extractSegment(segs[j], "trkpt");
- features.push(new OpenLayers.Feature.Vector(track, attrs));
- }
- }
- }
-
- if(this.extractRoutes) {
- var routes = doc.getElementsByTagName("rte");
- for (var k=0, klen=routes.length; k<klen; k++) {
- var attrs = {};
- if(this.extractAttributes) {
- attrs = this.parseAttributes(routes[k]);
- }
- var route = this.extractSegment(routes[k], "rtept");
- features.push(new OpenLayers.Feature.Vector(route, attrs));
- }
- }
-
- if(this.extractWaypoints) {
- var waypoints = doc.getElementsByTagName("wpt");
- for (var l = 0, len = waypoints.length; l < len; l++) {
- var attrs = {};
- if(this.extractAttributes) {
- attrs = this.parseAttributes(waypoints[l]);
- }
- var wpt = new OpenLayers.Geometry.Point(waypoints[l].getAttribute("lon"), waypoints[l].getAttribute("lat"));
- features.push(new OpenLayers.Feature.Vector(wpt, attrs));
- }
- }
-
- if (this.internalProjection && this.externalProjection) {
- for (var g = 0, featLength = features.length; g < featLength; g++) {
- features[g].geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- }
-
- return features;
- },
-
- /**
- * Method: extractSegment
- *
- * Parameters:
- * segment - {DOMElement} a trkseg or rte node to parse
- * segmentType - {String} nodeName of waypoints that form the line
- *
- * Returns:
- * {<OpenLayers.Geometry.LineString>} A linestring geometry
- */
- extractSegment: function(segment, segmentType) {
- var points = this.getElementsByTagNameNS(segment, segment.namespaceURI, segmentType);
- var point_features = [];
- for (var i = 0, len = points.length; i < len; i++) {
- point_features.push(new OpenLayers.Geometry.Point(points[i].getAttribute("lon"), points[i].getAttribute("lat")));
- }
- return new OpenLayers.Geometry.LineString(point_features);
- },
-
- /**
- * Method: parseAttributes
- *
- * Parameters:
- * node - {<DOMElement>}
- *
- * Returns:
- * {Object} An attributes object.
- */
- parseAttributes: function(node) {
- // node is either a wpt, trk or rte
- // attributes are children of the form <attr>value</attr>
- var attributes = {};
- var attrNode = node.firstChild, value, name;
- while(attrNode) {
- if(attrNode.nodeType == 1 && attrNode.firstChild) {
- value = attrNode.firstChild;
- if(value.nodeType == 3 || value.nodeType == 4) {
- name = (attrNode.prefix) ?
- attrNode.nodeName.split(":")[1] :
- attrNode.nodeName;
- if(name != "trkseg" && name != "rtept") {
- attributes[name] = value.nodeValue;
- }
- }
- }
- attrNode = attrNode.nextSibling;
- }
- return attributes;
- },
-
- /**
- * APIMethod: write
- * Accepts Feature Collection, and returns a string.
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)} List of features to serialize into a string.
- * metadata - {Object} A key/value pairs object to build a metadata node to
- * add to the gpx. Supported keys are 'name', 'desc', 'author'.
- */
- write: function(features, metadata) {
- features = OpenLayers.Util.isArray(features) ?
- features : [features];
- var gpx = this.createElementNS(this.namespaces.gpx, "gpx");
- gpx.setAttribute("version", "1.1");
- gpx.setAttribute("creator", this.creator);
- this.setAttributes(gpx, {
- "xsi:schemaLocation": this.schemaLocation
- });
-
- if (metadata && typeof metadata == 'object') {
- gpx.appendChild(this.buildMetadataNode(metadata));
- }
- for(var i=0, len=features.length; i<len; i++) {
- gpx.appendChild(this.buildFeatureNode(features[i]));
- }
- return OpenLayers.Format.XML.prototype.write.apply(this, [gpx]);
- },
-
- /**
- * Method: buildMetadataNode
- * Creates a "metadata" node.
- *
- * Returns:
- * {DOMElement}
- */
- buildMetadataNode: function(metadata) {
- var types = ['name', 'desc', 'author'],
- node = this.createElementNS(this.namespaces.gpx, 'metadata');
- for (var i=0; i < types.length; i++) {
- var type = types[i];
- if (metadata[type]) {
- var n = this.createElementNS(this.namespaces.gpx, type);
- n.appendChild(this.createTextNode(metadata[type]));
- node.appendChild(n);
- }
- }
- return node;
- },
-
- /**
- * Method: buildFeatureNode
- * Accepts an <OpenLayers.Feature.Vector>, and builds a node for it.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- *
- * Returns:
- * {DOMElement} - The created node, either a 'wpt' or a 'trk'.
- */
- buildFeatureNode: function(feature) {
- var geometry = feature.geometry;
- geometry = geometry.clone();
- if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.internalProjection,
- this.externalProjection);
- }
- if (geometry.CLASS_NAME == "OpenLayers.Geometry.Point") {
- var wpt = this.buildWptNode(geometry);
- this.appendAttributesNode(wpt, feature);
- return wpt;
- } else {
- var trkNode = this.createElementNS(this.namespaces.gpx, "trk");
- this.appendAttributesNode(trkNode, feature);
- var trkSegNodes = this.buildTrkSegNode(geometry);
- trkSegNodes = OpenLayers.Util.isArray(trkSegNodes) ?
- trkSegNodes : [trkSegNodes];
- for (var i = 0, len = trkSegNodes.length; i < len; i++) {
- trkNode.appendChild(trkSegNodes[i]);
- }
- return trkNode;
- }
- },
-
- /**
- * Method: buildTrkSegNode
- * Builds trkseg node(s) given a geometry
- *
- * Parameters:
- * trknode
- * geometry - {<OpenLayers.Geometry>}
- */
- buildTrkSegNode: function(geometry) {
- var node,
- i,
- len,
- point,
- nodes;
- if (geometry.CLASS_NAME == "OpenLayers.Geometry.LineString" ||
- geometry.CLASS_NAME == "OpenLayers.Geometry.LinearRing") {
- node = this.createElementNS(this.namespaces.gpx, "trkseg");
- for (i = 0, len=geometry.components.length; i < len; i++) {
- point = geometry.components[i];
- node.appendChild(this.buildTrkPtNode(point));
- }
- return node;
- } else {
- nodes = [];
- for (i = 0, len = geometry.components.length; i < len; i++) {
- nodes.push(this.buildTrkSegNode(geometry.components[i]));
- }
- return nodes;
- }
- },
-
- /**
- * Method: buildTrkPtNode
- * Builds a trkpt node given a point
- *
- * Parameters:
- * point - {<OpenLayers.Geometry.Point>}
- *
- * Returns:
- * {DOMElement} A trkpt node
- */
- buildTrkPtNode: function(point) {
- var node = this.createElementNS(this.namespaces.gpx, "trkpt");
- node.setAttribute("lon", point.x);
- node.setAttribute("lat", point.y);
- return node;
- },
-
- /**
- * Method: buildWptNode
- * Builds a wpt node given a point
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Point>}
- *
- * Returns:
- * {DOMElement} A wpt node
- */
- buildWptNode: function(geometry) {
- var node = this.createElementNS(this.namespaces.gpx, "wpt");
- node.setAttribute("lon", geometry.x);
- node.setAttribute("lat", geometry.y);
- return node;
- },
-
- /**
- * Method: appendAttributesNode
- * Adds some attributes node.
- *
- * Parameters:
- * node - {DOMElement} the node to append the attribute nodes to.
- * feature - {<OpenLayers.Feature.Vector>}
- */
- appendAttributesNode: function(node, feature) {
- var name = this.createElementNS(this.namespaces.gpx, 'name');
- name.appendChild(this.createTextNode(
- feature.attributes.name || feature.id));
- node.appendChild(name);
- var desc = this.createElementNS(this.namespaces.gpx, 'desc');
- desc.appendChild(this.createTextNode(
- feature.attributes.description || this.defaultDesc));
- node.appendChild(desc);
- // TBD - deal with remaining (non name/description) attributes.
- },
-
- CLASS_NAME: "OpenLayers.Format.GPX"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js b/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js
deleted file mode 100644
index 0e02377..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GeoJSON.js
+++ /dev/null
@@ -1,716 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/JSON.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/MultiPoint.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Geometry/MultiLineString.js
- * @requires OpenLayers/Geometry/Polygon.js
- * @requires OpenLayers/Geometry/MultiPolygon.js
- * @requires OpenLayers/Console.js
- */
-
-/**
- * Class: OpenLayers.Format.GeoJSON
- * Read and write GeoJSON. Create a new parser with the
- * <OpenLayers.Format.GeoJSON> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.JSON>
- */
-OpenLayers.Format.GeoJSON = OpenLayers.Class(OpenLayers.Format.JSON, {
-
- /**
- * APIProperty: ignoreExtraDims
- * {Boolean} Ignore dimensions higher than 2 when reading geometry
- * coordinates.
- */
- ignoreExtraDims: false,
-
- /**
- * Constructor: OpenLayers.Format.GeoJSON
- * Create a new parser for GeoJSON.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Deserialize a GeoJSON string.
- *
- * Parameters:
- * json - {String} A GeoJSON string
- * type - {String} Optional string that determines the structure of
- * the output. Supported values are "Geometry", "Feature", and
- * "FeatureCollection". If absent or null, a default of
- * "FeatureCollection" is assumed.
- * filter - {Function} A function which will be called for every key and
- * value at every level of the final result. Each value will be
- * replaced by the result of the filter function. This can be used to
- * reform generic objects into instances of classes, or to transform
- * date strings into Date objects.
- *
- * Returns:
- * {Object} The return depends on the value of the type argument. If type
- * is "FeatureCollection" (the default), the return will be an array
- * of <OpenLayers.Feature.Vector>. If type is "Geometry", the input json
- * must represent a single geometry, and the return will be an
- * <OpenLayers.Geometry>. If type is "Feature", the input json must
- * represent a single feature, and the return will be an
- * <OpenLayers.Feature.Vector>.
- */
- read: function(json, type, filter) {
- type = (type) ? type : "FeatureCollection";
- var results = null;
- var obj = null;
- if (typeof json == "string") {
- obj = OpenLayers.Format.JSON.prototype.read.apply(this,
- [json, filter]);
- } else {
- obj = json;
- }
- if(!obj) {
- OpenLayers.Console.error("Bad JSON: " + json);
- } else if(typeof(obj.type) != "string") {
- OpenLayers.Console.error("Bad GeoJSON - no type: " + json);
- } else if(this.isValidType(obj, type)) {
- switch(type) {
- case "Geometry":
- try {
- results = this.parseGeometry(obj);
- } catch(err) {
- OpenLayers.Console.error(err);
- }
- break;
- case "Feature":
- try {
- results = this.parseFeature(obj);
- results.type = "Feature";
- } catch(err) {
- OpenLayers.Console.error(err);
- }
- break;
- case "FeatureCollection":
- // for type FeatureCollection, we allow input to be any type
- results = [];
- switch(obj.type) {
- case "Feature":
- try {
- results.push(this.parseFeature(obj));
- } catch(err) {
- results = null;
- OpenLayers.Console.error(err);
- }
- break;
- case "FeatureCollection":
- for(var i=0, len=obj.features.length; i<len; ++i) {
- try {
- results.push(this.parseFeature(obj.features[i]));
- } catch(err) {
- results = null;
- OpenLayers.Console.error(err);
- }
- }
- break;
- default:
- try {
- var geom = this.parseGeometry(obj);
- results.push(new OpenLayers.Feature.Vector(geom));
- } catch(err) {
- results = null;
- OpenLayers.Console.error(err);
- }
- }
- break;
- }
- }
- return results;
- },
-
- /**
- * Method: isValidType
- * Check if a GeoJSON object is a valid representative of the given type.
- *
- * Returns:
- * {Boolean} The object is valid GeoJSON object of the given type.
- */
- isValidType: function(obj, type) {
- var valid = false;
- switch(type) {
- case "Geometry":
- if(OpenLayers.Util.indexOf(
- ["Point", "MultiPoint", "LineString", "MultiLineString",
- "Polygon", "MultiPolygon", "Box", "GeometryCollection"],
- obj.type) == -1) {
- // unsupported geometry type
- OpenLayers.Console.error("Unsupported geometry type: " +
- obj.type);
- } else {
- valid = true;
- }
- break;
- case "FeatureCollection":
- // allow for any type to be converted to a feature collection
- valid = true;
- break;
- default:
- // for Feature types must match
- if(obj.type == type) {
- valid = true;
- } else {
- OpenLayers.Console.error("Cannot convert types from " +
- obj.type + " to " + type);
- }
- }
- return valid;
- },
-
- /**
- * Method: parseFeature
- * Convert a feature object from GeoJSON into an
- * <OpenLayers.Feature.Vector>.
- *
- * Parameters:
- * obj - {Object} An object created from a GeoJSON object
- *
- * Returns:
- * {<OpenLayers.Feature.Vector>} A feature.
- */
- parseFeature: function(obj) {
- var feature, geometry, attributes, bbox;
- attributes = (obj.properties) ? obj.properties : {};
- bbox = (obj.geometry && obj.geometry.bbox) || obj.bbox;
- try {
- geometry = this.parseGeometry(obj.geometry);
- } catch(err) {
- // deal with bad geometries
- throw err;
- }
- feature = new OpenLayers.Feature.Vector(geometry, attributes);
- if(bbox) {
- feature.bounds = OpenLayers.Bounds.fromArray(bbox);
- }
- if(obj.id) {
- feature.fid = obj.id;
- }
- return feature;
- },
-
- /**
- * Method: parseGeometry
- * Convert a geometry object from GeoJSON into an <OpenLayers.Geometry>.
- *
- * Parameters:
- * obj - {Object} An object created from a GeoJSON object
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- parseGeometry: function(obj) {
- if (obj == null) {
- return null;
- }
- var geometry, collection = false;
- if(obj.type == "GeometryCollection") {
- if(!(OpenLayers.Util.isArray(obj.geometries))) {
- throw "GeometryCollection must have geometries array: " + obj;
- }
- var numGeom = obj.geometries.length;
- var components = new Array(numGeom);
- for(var i=0; i<numGeom; ++i) {
- components[i] = this.parseGeometry.apply(
- this, [obj.geometries[i]]
- );
- }
- geometry = new OpenLayers.Geometry.Collection(components);
- collection = true;
- } else {
- if(!(OpenLayers.Util.isArray(obj.coordinates))) {
- throw "Geometry must have coordinates array: " + obj;
- }
- if(!this.parseCoords[obj.type.toLowerCase()]) {
- throw "Unsupported geometry type: " + obj.type;
- }
- try {
- geometry = this.parseCoords[obj.type.toLowerCase()].apply(
- this, [obj.coordinates]
- );
- } catch(err) {
- // deal with bad coordinates
- throw err;
- }
- }
- // We don't reproject collections because the children are reprojected
- // for us when they are created.
- if (this.internalProjection && this.externalProjection && !collection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- return geometry;
- },
-
- /**
- * Property: parseCoords
- * Object with properties corresponding to the GeoJSON geometry types.
- * Property values are functions that do the actual parsing.
- */
- parseCoords: {
- /**
- * Method: parseCoords.point
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Parameters:
- * array - {Object} The coordinates array from the GeoJSON fragment.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "point": function(array) {
- if (this.ignoreExtraDims == false &&
- array.length != 2) {
- throw "Only 2D points are supported: " + array;
- }
- return new OpenLayers.Geometry.Point(array[0], array[1]);
- },
-
- /**
- * Method: parseCoords.multipoint
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Parameters:
- * array - {Object} The coordinates array from the GeoJSON fragment.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "multipoint": function(array) {
- var points = [];
- var p = null;
- for(var i=0, len=array.length; i<len; ++i) {
- try {
- p = this.parseCoords["point"].apply(this, [array[i]]);
- } catch(err) {
- throw err;
- }
- points.push(p);
- }
- return new OpenLayers.Geometry.MultiPoint(points);
- },
-
- /**
- * Method: parseCoords.linestring
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Parameters:
- * array - {Object} The coordinates array from the GeoJSON fragment.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "linestring": function(array) {
- var points = [];
- var p = null;
- for(var i=0, len=array.length; i<len; ++i) {
- try {
- p = this.parseCoords["point"].apply(this, [array[i]]);
- } catch(err) {
- throw err;
- }
- points.push(p);
- }
- return new OpenLayers.Geometry.LineString(points);
- },
-
- /**
- * Method: parseCoords.multilinestring
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Parameters:
- * array - {Object} The coordinates array from the GeoJSON fragment.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "multilinestring": function(array) {
- var lines = [];
- var l = null;
- for(var i=0, len=array.length; i<len; ++i) {
- try {
- l = this.parseCoords["linestring"].apply(this, [array[i]]);
- } catch(err) {
- throw err;
- }
- lines.push(l);
- }
- return new OpenLayers.Geometry.MultiLineString(lines);
- },
-
- /**
- * Method: parseCoords.polygon
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "polygon": function(array) {
- var rings = [];
- var r, l;
- for(var i=0, len=array.length; i<len; ++i) {
- try {
- l = this.parseCoords["linestring"].apply(this, [array[i]]);
- } catch(err) {
- throw err;
- }
- r = new OpenLayers.Geometry.LinearRing(l.components);
- rings.push(r);
- }
- return new OpenLayers.Geometry.Polygon(rings);
- },
-
- /**
- * Method: parseCoords.multipolygon
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Parameters:
- * array - {Object} The coordinates array from the GeoJSON fragment.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "multipolygon": function(array) {
- var polys = [];
- var p = null;
- for(var i=0, len=array.length; i<len; ++i) {
- try {
- p = this.parseCoords["polygon"].apply(this, [array[i]]);
- } catch(err) {
- throw err;
- }
- polys.push(p);
- }
- return new OpenLayers.Geometry.MultiPolygon(polys);
- },
-
- /**
- * Method: parseCoords.box
- * Convert a coordinate array from GeoJSON into an
- * <OpenLayers.Geometry>.
- *
- * Parameters:
- * array - {Object} The coordinates array from the GeoJSON fragment.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry.
- */
- "box": function(array) {
- if(array.length != 2) {
- throw "GeoJSON box coordinates must have 2 elements";
- }
- return new OpenLayers.Geometry.Polygon([
- new OpenLayers.Geometry.LinearRing([
- new OpenLayers.Geometry.Point(array[0][0], array[0][1]),
- new OpenLayers.Geometry.Point(array[1][0], array[0][1]),
- new OpenLayers.Geometry.Point(array[1][0], array[1][1]),
- new OpenLayers.Geometry.Point(array[0][0], array[1][1]),
- new OpenLayers.Geometry.Point(array[0][0], array[0][1])
- ])
- ]);
- }
-
- },
-
- /**
- * APIMethod: write
- * Serialize a feature, geometry, array of features into a GeoJSON string.
- *
- * Parameters:
- * obj - {Object} An <OpenLayers.Feature.Vector>, <OpenLayers.Geometry>,
- * or an array of features.
- * pretty - {Boolean} Structure the output with newlines and indentation.
- * Default is false.
- *
- * Returns:
- * {String} The GeoJSON string representation of the input geometry,
- * features, or array of features.
- */
- write: function(obj, pretty) {
- var geojson = {
- "type": null
- };
- if(OpenLayers.Util.isArray(obj)) {
- geojson.type = "FeatureCollection";
- var numFeatures = obj.length;
- geojson.features = new Array(numFeatures);
- for(var i=0; i<numFeatures; ++i) {
- var element = obj[i];
- if(!element instanceof OpenLayers.Feature.Vector) {
- var msg = "FeatureCollection only supports collections " +
- "of features: " + element;
- throw msg;
- }
- geojson.features[i] = this.extract.feature.apply(
- this, [element]
- );
- }
- } else if (obj.CLASS_NAME.indexOf("OpenLayers.Geometry") == 0) {
- geojson = this.extract.geometry.apply(this, [obj]);
- } else if (obj instanceof OpenLayers.Feature.Vector) {
- geojson = this.extract.feature.apply(this, [obj]);
- if(obj.layer && obj.layer.projection) {
- geojson.crs = this.createCRSObject(obj);
- }
- }
- return OpenLayers.Format.JSON.prototype.write.apply(this,
- [geojson, pretty]);
- },
-
- /**
- * Method: createCRSObject
- * Create the CRS object for an object.
- *
- * Parameters:
- * object - {<OpenLayers.Feature.Vector>}
- *
- * Returns:
- * {Object} An object which can be assigned to the crs property
- * of a GeoJSON object.
- */
- createCRSObject: function(object) {
- var proj = object.layer.projection.toString();
- var crs = {};
- if (proj.match(/epsg:/i)) {
- var code = parseInt(proj.substring(proj.indexOf(":") + 1));
- if (code == 4326) {
- crs = {
- "type": "name",
- "properties": {
- "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
- }
- };
- } else {
- crs = {
- "type": "name",
- "properties": {
- "name": "EPSG:" + code
- }
- };
- }
- }
- return crs;
- },
-
- /**
- * Property: extract
- * Object with properties corresponding to the GeoJSON types.
- * Property values are functions that do the actual value extraction.
- */
- extract: {
- /**
- * Method: extract.feature
- * Return a partial GeoJSON object representing a single feature.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- *
- * Returns:
- * {Object} An object representing the point.
- */
- 'feature': function(feature) {
- var geom = this.extract.geometry.apply(this, [feature.geometry]);
- var json = {
- "type": "Feature",
- "properties": feature.attributes,
- "geometry": geom
- };
- if (feature.fid != null) {
- json.id = feature.fid;
- }
- return json;
- },
-
- /**
- * Method: extract.geometry
- * Return a GeoJSON object representing a single geometry.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- *
- * Returns:
- * {Object} An object representing the geometry.
- */
- 'geometry': function(geometry) {
- if (geometry == null) {
- return null;
- }
- if (this.internalProjection && this.externalProjection) {
- geometry = geometry.clone();
- geometry.transform(this.internalProjection,
- this.externalProjection);
- }
- var geometryType = geometry.CLASS_NAME.split('.')[2];
- var data = this.extract[geometryType.toLowerCase()].apply(this, [geometry]);
- var json;
- if(geometryType == "Collection") {
- json = {
- "type": "GeometryCollection",
- "geometries": data
- };
- } else {
- json = {
- "type": geometryType,
- "coordinates": data
- };
- }
-
- return json;
- },
-
- /**
- * Method: extract.point
- * Return an array of coordinates from a point.
- *
- * Parameters:
- * point - {<OpenLayers.Geometry.Point>}
- *
- * Returns:
- * {Array} An array of coordinates representing the point.
- */
- 'point': function(point) {
- return [point.x, point.y];
- },
-
- /**
- * Method: extract.multipoint
- * Return an array of point coordinates from a multipoint.
- *
- * Parameters:
- * multipoint - {<OpenLayers.Geometry.MultiPoint>}
- *
- * Returns:
- * {Array} An array of point coordinate arrays representing
- * the multipoint.
- */
- 'multipoint': function(multipoint) {
- var array = [];
- for(var i=0, len=multipoint.components.length; i<len; ++i) {
- array.push(this.extract.point.apply(this, [multipoint.components[i]]));
- }
- return array;
- },
-
- /**
- * Method: extract.linestring
- * Return an array of coordinate arrays from a linestring.
- *
- * Parameters:
- * linestring - {<OpenLayers.Geometry.LineString>}
- *
- * Returns:
- * {Array} An array of coordinate arrays representing
- * the linestring.
- */
- 'linestring': function(linestring) {
- var array = [];
- for(var i=0, len=linestring.components.length; i<len; ++i) {
- array.push(this.extract.point.apply(this, [linestring.components[i]]));
- }
- return array;
- },
-
- /**
- * Method: extract.multilinestring
- * Return an array of linestring arrays from a linestring.
- *
- * Parameters:
- * multilinestring - {<OpenLayers.Geometry.MultiLineString>}
- *
- * Returns:
- * {Array} An array of linestring arrays representing
- * the multilinestring.
- */
- 'multilinestring': function(multilinestring) {
- var array = [];
- for(var i=0, len=multilinestring.components.length; i<len; ++i) {
- array.push(this.extract.linestring.apply(this, [multilinestring.components[i]]));
- }
- return array;
- },
-
- /**
- * Method: extract.polygon
- * Return an array of linear ring arrays from a polygon.
- *
- * Parameters:
- * polygon - {<OpenLayers.Geometry.Polygon>}
- *
- * Returns:
- * {Array} An array of linear ring arrays representing the polygon.
- */
- 'polygon': function(polygon) {
- var array = [];
- for(var i=0, len=polygon.components.length; i<len; ++i) {
- array.push(this.extract.linestring.apply(this, [polygon.components[i]]));
- }
- return array;
- },
-
- /**
- * Method: extract.multipolygon
- * Return an array of polygon arrays from a multipolygon.
- *
- * Parameters:
- * multipolygon - {<OpenLayers.Geometry.MultiPolygon>}
- *
- * Returns:
- * {Array} An array of polygon arrays representing
- * the multipolygon
- */
- 'multipolygon': function(multipolygon) {
- var array = [];
- for(var i=0, len=multipolygon.components.length; i<len; ++i) {
- array.push(this.extract.polygon.apply(this, [multipolygon.components[i]]));
- }
- return array;
- },
-
- /**
- * Method: extract.collection
- * Return an array of geometries from a geometry collection.
- *
- * Parameters:
- * collection - {<OpenLayers.Geometry.Collection>}
- *
- * Returns:
- * {Array} An array of geometry objects representing the geometry
- * collection.
- */
- 'collection': function(collection) {
- var len = collection.components.length;
- var array = new Array(len);
- for(var i=0; i<len; ++i) {
- array[i] = this.extract.geometry.apply(
- this, [collection.components[i]]
- );
- }
- return array;
- }
-
-
- },
-
- CLASS_NAME: "OpenLayers.Format.GeoJSON"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js b/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js
deleted file mode 100644
index cbbb4d8..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/GeoRSS.js
+++ /dev/null
@@ -1,409 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Geometry/Polygon.js
- */
-
-/**
- * Class: OpenLayers.Format.GeoRSS
- * Read/write GeoRSS parser. Create a new instance with the
- * <OpenLayers.Format.GeoRSS> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.GeoRSS = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * APIProperty: rssns
- * {String} RSS namespace to use. Defaults to
- * "http://backend.userland.com/rss2"
- */
- rssns: "http://backend.userland.com/rss2",
-
- /**
- * APIProperty: featurens
- * {String} Feature Attributes namespace. Defaults to
- * "http://mapserver.gis.umn.edu/mapserver"
- */
- featureNS: "http://mapserver.gis.umn.edu/mapserver",
-
- /**
- * APIProperty: georssns
- * {String} GeoRSS namespace to use. Defaults to
- * "http://www.georss.org/georss"
- */
- georssns: "http://www.georss.org/georss",
-
- /**
- * APIProperty: geons
- * {String} W3C Geo namespace to use. Defaults to
- * "http://www.w3.org/2003/01/geo/wgs84_pos#"
- */
- geons: "http://www.w3.org/2003/01/geo/wgs84_pos#",
-
- /**
- * APIProperty: featureTitle
- * {String} Default title for features. Defaults to "Untitled"
- */
- featureTitle: "Untitled",
-
- /**
- * APIProperty: featureDescription
- * {String} Default description for features. Defaults to "No Description"
- */
- featureDescription: "No Description",
-
- /**
- * Property: gmlParse
- * {Object} GML Format object for parsing features
- * Non-API and only created if necessary
- */
- gmlParser: null,
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate: true:(x,y) or false:(y,x)
- * For GeoRSS the default is (y,x), therefore: false
- */
- xy: false,
-
- /**
- * Constructor: OpenLayers.Format.GeoRSS
- * Create a new parser for GeoRSS.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: createGeometryFromItem
- * Return a geometry from a GeoRSS Item.
- *
- * Parameters:
- * item - {DOMElement} A GeoRSS item node.
- *
- * Returns:
- * {<OpenLayers.Geometry>} A geometry representing the node.
- */
- createGeometryFromItem: function(item) {
- var point = this.getElementsByTagNameNS(item, this.georssns, "point");
- var lat = this.getElementsByTagNameNS(item, this.geons, 'lat');
- var lon = this.getElementsByTagNameNS(item, this.geons, 'long');
-
- var line = this.getElementsByTagNameNS(item,
- this.georssns,
- "line");
- var polygon = this.getElementsByTagNameNS(item,
- this.georssns,
- "polygon");
- var where = this.getElementsByTagNameNS(item,
- this.georssns,
- "where");
- var box = this.getElementsByTagNameNS(item,
- this.georssns,
- "box");
-
- if (point.length > 0 || (lat.length > 0 && lon.length > 0)) {
- var location;
- if (point.length > 0) {
- location = OpenLayers.String.trim(
- point[0].firstChild.nodeValue).split(/\s+/);
- if (location.length !=2) {
- location = OpenLayers.String.trim(
- point[0].firstChild.nodeValue).split(/\s*,\s*/);
- }
- } else {
- location = [parseFloat(lat[0].firstChild.nodeValue),
- parseFloat(lon[0].firstChild.nodeValue)];
- }
-
- var geometry = new OpenLayers.Geometry.Point(location[1], location[0]);
-
- } else if (line.length > 0) {
- var coords = OpenLayers.String.trim(this.getChildValue(line[0])).split(/\s+/);
- var components = [];
- var point;
- for (var i=0, len=coords.length; i<len; i+=2) {
- point = new OpenLayers.Geometry.Point(coords[i+1], coords[i]);
- components.push(point);
- }
- geometry = new OpenLayers.Geometry.LineString(components);
- } else if (polygon.length > 0) {
- var coords = OpenLayers.String.trim(this.getChildValue(polygon[0])).split(/\s+/);
- var components = [];
- var point;
- for (var i=0, len=coords.length; i<len; i+=2) {
- point = new OpenLayers.Geometry.Point(coords[i+1], coords[i]);
- components.push(point);
- }
- geometry = new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(components)]);
- } else if (where.length > 0) {
- if (!this.gmlParser) {
- this.gmlParser = new OpenLayers.Format.GML({'xy': this.xy});
- }
- var feature = this.gmlParser.parseFeature(where[0]);
- geometry = feature.geometry;
- } else if (box.length > 0) {
- var coords = OpenLayers.String.trim(box[0].firstChild.nodeValue).split(/\s+/);
- var components = [];
- var point;
- if (coords.length > 3) {
- point = new OpenLayers.Geometry.Point(coords[1], coords[0]);
- components.push(point);
- point = new OpenLayers.Geometry.Point(coords[1], coords[2]);
- components.push(point);
- point = new OpenLayers.Geometry.Point(coords[3], coords[2]);
- components.push(point);
- point = new OpenLayers.Geometry.Point(coords[3], coords[0]);
- components.push(point);
- point = new OpenLayers.Geometry.Point(coords[1], coords[0]);
- components.push(point);
- }
- geometry = new OpenLayers.Geometry.Polygon([new OpenLayers.Geometry.LinearRing(components)]);
- }
-
- if (geometry && this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
-
- return geometry;
- },
-
- /**
- * Method: createFeatureFromItem
- * Return a feature from a GeoRSS Item.
- *
- * Parameters:
- * item - {DOMElement} A GeoRSS item node.
- *
- * Returns:
- * {<OpenLayers.Feature.Vector>} A feature representing the item.
- */
- createFeatureFromItem: function(item) {
- var geometry = this.createGeometryFromItem(item);
-
- /* Provide defaults for title and description */
- var title = this._getChildValue(item, "*", "title", this.featureTitle);
-
- /* First try RSS descriptions, then Atom summaries */
- var description = this._getChildValue(
- item, "*", "description",
- this._getChildValue(item, "*", "content",
- this._getChildValue(item, "*", "summary", this.featureDescription)));
-
- /* If no link URL is found in the first child node, try the
- href attribute */
- var link = this._getChildValue(item, "*", "link");
- if(!link) {
- try {
- link = this.getElementsByTagNameNS(item, "*", "link")[0].getAttribute("href");
- } catch(e) {
- link = null;
- }
- }
-
- var id = this._getChildValue(item, "*", "id", null);
-
- var data = {
- "title": title,
- "description": description,
- "link": link
- };
- var feature = new OpenLayers.Feature.Vector(geometry, data);
- feature.fid = id;
- return feature;
- },
-
- /**
- * Method: _getChildValue
- *
- * Parameters:
- * node - {DOMElement}
- * nsuri - {String} Child node namespace uri ("*" for any).
- * name - {String} Child node name.
- * def - {String} Optional string default to return if no child found.
- *
- * Returns:
- * {String} The value of the first child with the given tag name. Returns
- * default value or empty string if none found.
- */
- _getChildValue: function(node, nsuri, name, def) {
- var value;
- var eles = this.getElementsByTagNameNS(node, nsuri, name);
- if(eles && eles[0] && eles[0].firstChild
- && eles[0].firstChild.nodeValue) {
- value = this.getChildValue(eles[0]);
- } else {
- value = (def == undefined) ? "" : def;
- }
- return value;
- },
-
- /**
- * APIMethod: read
- * Return a list of features from a GeoRSS doc
- *
- * Parameters:
- * doc - {Element}
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)}
- */
- read: function(doc) {
- if (typeof doc == "string") {
- doc = OpenLayers.Format.XML.prototype.read.apply(this, [doc]);
- }
-
- /* Try RSS items first, then Atom entries */
- var itemlist = null;
- itemlist = this.getElementsByTagNameNS(doc, '*', 'item');
- if (itemlist.length == 0) {
- itemlist = this.getElementsByTagNameNS(doc, '*', 'entry');
- }
-
- var numItems = itemlist.length;
- var features = new Array(numItems);
- for(var i=0; i<numItems; i++) {
- features[i] = this.createFeatureFromItem(itemlist[i]);
- }
- return features;
- },
-
-
- /**
- * APIMethod: write
- * Accept Feature Collection, and return a string.
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)} List of features to serialize into a string.
- */
- write: function(features) {
- var georss;
- if(OpenLayers.Util.isArray(features)) {
- georss = this.createElementNS(this.rssns, "rss");
- for(var i=0, len=features.length; i<len; i++) {
- georss.appendChild(this.createFeatureXML(features[i]));
- }
- } else {
- georss = this.createFeatureXML(features);
- }
- return OpenLayers.Format.XML.prototype.write.apply(this, [georss]);
- },
-
- /**
- * Method: createFeatureXML
- * Accept an <OpenLayers.Feature.Vector>, and build a geometry for it.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- *
- * Returns:
- * {DOMElement}
- */
- createFeatureXML: function(feature) {
- var geometryNode = this.buildGeometryNode(feature.geometry);
- var featureNode = this.createElementNS(this.rssns, "item");
- var titleNode = this.createElementNS(this.rssns, "title");
- titleNode.appendChild(this.createTextNode(feature.attributes.title ? feature.attributes.title : ""));
- var descNode = this.createElementNS(this.rssns, "description");
- descNode.appendChild(this.createTextNode(feature.attributes.description ? feature.attributes.description : ""));
- featureNode.appendChild(titleNode);
- featureNode.appendChild(descNode);
- if (feature.attributes.link) {
- var linkNode = this.createElementNS(this.rssns, "link");
- linkNode.appendChild(this.createTextNode(feature.attributes.link));
- featureNode.appendChild(linkNode);
- }
- for(var attr in feature.attributes) {
- if (attr == "link" || attr == "title" || attr == "description") { continue; }
- var attrText = this.createTextNode(feature.attributes[attr]);
- var nodename = attr;
- if (attr.search(":") != -1) {
- nodename = attr.split(":")[1];
- }
- var attrContainer = this.createElementNS(this.featureNS, "feature:"+nodename);
- attrContainer.appendChild(attrText);
- featureNode.appendChild(attrContainer);
- }
- featureNode.appendChild(geometryNode);
- return featureNode;
- },
-
- /**
- * Method: buildGeometryNode
- * builds a GeoRSS node with a given geometry
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- *
- * Returns:
- * {DOMElement} A gml node.
- */
- buildGeometryNode: function(geometry) {
- if (this.internalProjection && this.externalProjection) {
- geometry = geometry.clone();
- geometry.transform(this.internalProjection,
- this.externalProjection);
- }
- var node;
- // match Polygon
- if (geometry.CLASS_NAME == "OpenLayers.Geometry.Polygon") {
- node = this.createElementNS(this.georssns, 'georss:polygon');
-
- node.appendChild(this.buildCoordinatesNode(geometry.components[0]));
- }
- // match LineString
- else if (geometry.CLASS_NAME == "OpenLayers.Geometry.LineString") {
- node = this.createElementNS(this.georssns, 'georss:line');
-
- node.appendChild(this.buildCoordinatesNode(geometry));
- }
- // match Point
- else if (geometry.CLASS_NAME == "OpenLayers.Geometry.Point") {
- node = this.createElementNS(this.georssns, 'georss:point');
- node.appendChild(this.buildCoordinatesNode(geometry));
- } else {
- throw "Couldn't parse " + geometry.CLASS_NAME;
- }
- return node;
- },
-
- /**
- * Method: buildCoordinatesNode
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- */
- buildCoordinatesNode: function(geometry) {
- var points = null;
-
- if (geometry.components) {
- points = geometry.components;
- }
-
- var path;
- if (points) {
- var numPoints = points.length;
- var parts = new Array(numPoints);
- for (var i = 0; i < numPoints; i++) {
- parts[i] = points[i].y + " " + points[i].x;
- }
- path = parts.join(" ");
- } else {
- path = geometry.y + " " + geometry.x;
- }
- return this.createTextNode(path);
- },
-
- CLASS_NAME: "OpenLayers.Format.GeoRSS"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/JSON.js b/misc/openlayers/lib/OpenLayers/Format/JSON.js
deleted file mode 100644
index 5b25e6a..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/JSON.js
+++ /dev/null
@@ -1,398 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * Note:
- * This work draws heavily from the public domain JSON serializer/deserializer
- * at http://www.json.org/json.js. Rewritten so that it doesn't modify
- * basic data prototypes.
- */
-
-/**
- * @requires OpenLayers/Format.js
- */
-
-/**
- * Class: OpenLayers.Format.JSON
- * A parser to read/write JSON safely. Create a new instance with the
- * <OpenLayers.Format.JSON> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.JSON = OpenLayers.Class(OpenLayers.Format, {
-
- /**
- * APIProperty: indent
- * {String} For "pretty" printing, the indent string will be used once for
- * each indentation level.
- */
- indent: " ",
-
- /**
- * APIProperty: space
- * {String} For "pretty" printing, the space string will be used after
- * the ":" separating a name/value pair.
- */
- space: " ",
-
- /**
- * APIProperty: newline
- * {String} For "pretty" printing, the newline string will be used at the
- * end of each name/value pair or array item.
- */
- newline: "\n",
-
- /**
- * Property: level
- * {Integer} For "pretty" printing, this is incremented/decremented during
- * serialization.
- */
- level: 0,
-
- /**
- * Property: pretty
- * {Boolean} Serialize with extra whitespace for structure. This is set
- * by the <write> method.
- */
- pretty: false,
-
- /**
- * Property: nativeJSON
- * {Boolean} Does the browser support native json?
- */
- nativeJSON: (function() {
- return !!(window.JSON && typeof JSON.parse == "function" && typeof JSON.stringify == "function");
- })(),
-
- /**
- * Constructor: OpenLayers.Format.JSON
- * Create a new parser for JSON.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Deserialize a json string.
- *
- * Parameters:
- * json - {String} A JSON string
- * filter - {Function} A function which will be called for every key and
- * value at every level of the final result. Each value will be
- * replaced by the result of the filter function. This can be used to
- * reform generic objects into instances of classes, or to transform
- * date strings into Date objects.
- *
- * Returns:
- * {Object} An object, array, string, or number .
- */
- read: function(json, filter) {
- var object;
- if (this.nativeJSON) {
- object = JSON.parse(json, filter);
- } else try {
- /**
- * Parsing happens in three stages. In the first stage, we run the
- * text against a regular expression which looks for non-JSON
- * characters. We are especially concerned with '()' and 'new'
- * because they can cause invocation, and '=' because it can
- * cause mutation. But just to be safe, we will reject all
- * unexpected characters.
- */
- if (/^[\],:{}\s]*$/.test(json.replace(/\\["\\\/bfnrtu]/g, '@').
- replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
- replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
- /**
- * In the second stage we use the eval function to compile the
- * text into a JavaScript structure. The '{' operator is
- * subject to a syntactic ambiguity in JavaScript - it can
- * begin a block or an object literal. We wrap the text in
- * parens to eliminate the ambiguity.
- */
- object = eval('(' + json + ')');
-
- /**
- * In the optional third stage, we recursively walk the new
- * structure, passing each name/value pair to a filter
- * function for possible transformation.
- */
- if(typeof filter === 'function') {
- function walk(k, v) {
- if(v && typeof v === 'object') {
- for(var i in v) {
- if(v.hasOwnProperty(i)) {
- v[i] = walk(i, v[i]);
- }
- }
- }
- return filter(k, v);
- }
- object = walk('', object);
- }
- }
- } catch(e) {
- // Fall through if the regexp test fails.
- }
-
- if(this.keepData) {
- this.data = object;
- }
-
- return object;
- },
-
- /**
- * APIMethod: write
- * Serialize an object into a JSON string.
- *
- * Parameters:
- * value - {String} The object, array, string, number, boolean or date
- * to be serialized.
- * pretty - {Boolean} Structure the output with newlines and indentation.
- * Default is false.
- *
- * Returns:
- * {String} The JSON string representation of the input value.
- */
- write: function(value, pretty) {
- this.pretty = !!pretty;
- var json = null;
- var type = typeof value;
- if(this.serialize[type]) {
- try {
- json = (!this.pretty && this.nativeJSON) ?
- JSON.stringify(value) :
- this.serialize[type].apply(this, [value]);
- } catch(err) {
- OpenLayers.Console.error("Trouble serializing: " + err);
- }
- }
- return json;
- },
-
- /**
- * Method: writeIndent
- * Output an indentation string depending on the indentation level.
- *
- * Returns:
- * {String} An appropriate indentation string.
- */
- writeIndent: function() {
- var pieces = [];
- if(this.pretty) {
- for(var i=0; i<this.level; ++i) {
- pieces.push(this.indent);
- }
- }
- return pieces.join('');
- },
-
- /**
- * Method: writeNewline
- * Output a string representing a newline if in pretty printing mode.
- *
- * Returns:
- * {String} A string representing a new line.
- */
- writeNewline: function() {
- return (this.pretty) ? this.newline : '';
- },
-
- /**
- * Method: writeSpace
- * Output a string representing a space if in pretty printing mode.
- *
- * Returns:
- * {String} A space.
- */
- writeSpace: function() {
- return (this.pretty) ? this.space : '';
- },
-
- /**
- * Property: serialize
- * Object with properties corresponding to the serializable data types.
- * Property values are functions that do the actual serializing.
- */
- serialize: {
- /**
- * Method: serialize.object
- * Transform an object into a JSON string.
- *
- * Parameters:
- * object - {Object} The object to be serialized.
- *
- * Returns:
- * {String} A JSON string representing the object.
- */
- 'object': function(object) {
- // three special objects that we want to treat differently
- if(object == null) {
- return "null";
- }
- if(object.constructor == Date) {
- return this.serialize.date.apply(this, [object]);
- }
- if(object.constructor == Array) {
- return this.serialize.array.apply(this, [object]);
- }
- var pieces = ['{'];
- this.level += 1;
- var key, keyJSON, valueJSON;
-
- var addComma = false;
- for(key in object) {
- if(object.hasOwnProperty(key)) {
- // recursive calls need to allow for sub-classing
- keyJSON = OpenLayers.Format.JSON.prototype.write.apply(this,
- [key, this.pretty]);
- valueJSON = OpenLayers.Format.JSON.prototype.write.apply(this,
- [object[key], this.pretty]);
- if(keyJSON != null && valueJSON != null) {
- if(addComma) {
- pieces.push(',');
- }
- pieces.push(this.writeNewline(), this.writeIndent(),
- keyJSON, ':', this.writeSpace(), valueJSON);
- addComma = true;
- }
- }
- }
-
- this.level -= 1;
- pieces.push(this.writeNewline(), this.writeIndent(), '}');
- return pieces.join('');
- },
-
- /**
- * Method: serialize.array
- * Transform an array into a JSON string.
- *
- * Parameters:
- * array - {Array} The array to be serialized
- *
- * Returns:
- * {String} A JSON string representing the array.
- */
- 'array': function(array) {
- var json;
- var pieces = ['['];
- this.level += 1;
-
- for(var i=0, len=array.length; i<len; ++i) {
- // recursive calls need to allow for sub-classing
- json = OpenLayers.Format.JSON.prototype.write.apply(this,
- [array[i], this.pretty]);
- if(json != null) {
- if(i > 0) {
- pieces.push(',');
- }
- pieces.push(this.writeNewline(), this.writeIndent(), json);
- }
- }
-
- this.level -= 1;
- pieces.push(this.writeNewline(), this.writeIndent(), ']');
- return pieces.join('');
- },
-
- /**
- * Method: serialize.string
- * Transform a string into a JSON string.
- *
- * Parameters:
- * string - {String} The string to be serialized
- *
- * Returns:
- * {String} A JSON string representing the string.
- */
- 'string': function(string) {
- // If the string contains no control characters, no quote characters, and no
- // backslash characters, then we can simply slap some quotes around it.
- // Otherwise we must also replace the offending characters with safe
- // sequences.
- var m = {
- '\b': '\\b',
- '\t': '\\t',
- '\n': '\\n',
- '\f': '\\f',
- '\r': '\\r',
- '"' : '\\"',
- '\\': '\\\\'
- };
- if(/["\\\x00-\x1f]/.test(string)) {
- return '"' + string.replace(/([\x00-\x1f\\"])/g, function(a, b) {
- var c = m[b];
- if(c) {
- return c;
- }
- c = b.charCodeAt();
- return '\\u00' +
- Math.floor(c / 16).toString(16) +
- (c % 16).toString(16);
- }) + '"';
- }
- return '"' + string + '"';
- },
-
- /**
- * Method: serialize.number
- * Transform a number into a JSON string.
- *
- * Parameters:
- * number - {Number} The number to be serialized.
- *
- * Returns:
- * {String} A JSON string representing the number.
- */
- 'number': function(number) {
- return isFinite(number) ? String(number) : "null";
- },
-
- /**
- * Method: serialize.boolean
- * Transform a boolean into a JSON string.
- *
- * Parameters:
- * bool - {Boolean} The boolean to be serialized.
- *
- * Returns:
- * {String} A JSON string representing the boolean.
- */
- 'boolean': function(bool) {
- return String(bool);
- },
-
- /**
- * Method: serialize.object
- * Transform a date into a JSON string.
- *
- * Parameters:
- * date - {Date} The date to be serialized.
- *
- * Returns:
- * {String} A JSON string representing the date.
- */
- 'date': function(date) {
- function format(number) {
- // Format integers to have at least two digits.
- return (number < 10) ? '0' + number : number;
- }
- return '"' + date.getFullYear() + '-' +
- format(date.getMonth() + 1) + '-' +
- format(date.getDate()) + 'T' +
- format(date.getHours()) + ':' +
- format(date.getMinutes()) + ':' +
- format(date.getSeconds()) + '"';
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.JSON"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/KML.js b/misc/openlayers/lib/OpenLayers/Format/KML.js
deleted file mode 100644
index e10bce7..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/KML.js
+++ /dev/null
@@ -1,1517 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/BaseTypes/Date.js
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Geometry/Polygon.js
- * @requires OpenLayers/Geometry/Collection.js
- * @requires OpenLayers/Request/XMLHttpRequest.js
- * @requires OpenLayers/Projection.js
- */
-
-/**
- * Class: OpenLayers.Format.KML
- * Read/Write KML. Create a new instance with the <OpenLayers.Format.KML>
- * constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- kml: "http://www.opengis.net/kml/2.2",
- gx: "http://www.google.com/kml/ext/2.2"
- },
-
- /**
- * APIProperty: kmlns
- * {String} KML Namespace to use. Defaults to 2.0 namespace.
- */
- kmlns: "http://earth.google.com/kml/2.0",
-
- /**
- * APIProperty: placemarksDesc
- * {String} Name of the placemarks. Default is "No description available".
- */
- placemarksDesc: "No description available",
-
- /**
- * APIProperty: foldersName
- * {String} Name of the folders. Default is "OpenLayers export".
- * If set to null, no name element will be created.
- */
- foldersName: "OpenLayers export",
-
- /**
- * APIProperty: foldersDesc
- * {String} Description of the folders. Default is "Exported on [date]."
- * If set to null, no description element will be created.
- */
- foldersDesc: "Exported on " + new Date(),
-
- /**
- * APIProperty: extractAttributes
- * {Boolean} Extract attributes from KML. Default is true.
- * Extracting styleUrls requires this to be set to true
- * Note that currently only Data and SimpleData
- * elements are handled.
- */
- extractAttributes: true,
-
- /**
- * APIProperty: kvpAttributes
- * {Boolean} Only used if extractAttributes is true.
- * If set to true, attributes will be simple
- * key-value pairs, compatible with other formats,
- * Any displayName elements will be ignored.
- * If set to false, attributes will be objects,
- * retaining any displayName elements, but not
- * compatible with other formats. Any CDATA in
- * displayName will be read in as a string value.
- * Default is false.
- */
- kvpAttributes: false,
-
- /**
- * Property: extractStyles
- * {Boolean} Extract styles from KML. Default is false.
- * Extracting styleUrls also requires extractAttributes to be
- * set to true
- */
- extractStyles: false,
-
- /**
- * APIProperty: extractTracks
- * {Boolean} Extract gx:Track elements from Placemark elements. Default
- * is false. If true, features will be generated for all points in
- * all gx:Track elements. Features will have a when (Date) attribute
- * based on when elements in the track. If tracks include angle
- * elements, features will have heading, tilt, and roll attributes.
- * If track point coordinates have three values, features will have
- * an altitude attribute with the third coordinate value.
- */
- extractTracks: false,
-
- /**
- * APIProperty: trackAttributes
- * {Array} If <extractTracks> is true, points within gx:Track elements will
- * be parsed as features with when, heading, tilt, and roll attributes.
- * Any additional attribute names can be provided in <trackAttributes>.
- */
- trackAttributes: null,
-
- /**
- * Property: internalns
- * {String} KML Namespace to use -- defaults to the namespace of the
- * Placemark node being parsed, but falls back to kmlns.
- */
- internalns: null,
-
- /**
- * Property: features
- * {Array} Array of features
- *
- */
- features: null,
-
- /**
- * Property: styles
- * {Object} Storage of style objects
- *
- */
- styles: null,
-
- /**
- * Property: styleBaseUrl
- * {String}
- */
- styleBaseUrl: "",
-
- /**
- * Property: fetched
- * {Object} Storage of KML URLs that have been fetched before
- * in order to prevent reloading them.
- */
- fetched: null,
-
- /**
- * APIProperty: maxDepth
- * {Integer} Maximum depth for recursive loading external KML URLs
- * Defaults to 0: do no external fetching
- */
- maxDepth: 0,
-
- /**
- * Constructor: OpenLayers.Format.KML
- * Create a new parser for KML.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- // compile regular expressions once instead of every time they are used
- this.regExes = {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g),
- kmlColor: (/(\w{2})(\w{2})(\w{2})(\w{2})/),
- kmlIconPalette: (/root:\/\/icons\/palette-(\d+)(\.\w+)/),
- straightBracket: (/\$\[(.*?)\]/g)
- };
- // KML coordinates are always in longlat WGS84
- this.externalProjection = new OpenLayers.Projection("EPSG:4326");
-
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Read data from a string, and return a list of features.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} List of features.
- */
- read: function(data) {
- this.features = [];
- this.styles = {};
- this.fetched = {};
-
- // Set default options
- var options = {
- depth: 0,
- styleBaseUrl: this.styleBaseUrl
- };
-
- return this.parseData(data, options);
- },
-
- /**
- * Method: parseData
- * Read data from a string, and return a list of features.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- * options - {Object} Hash of options
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} List of features.
- */
- parseData: function(data, options) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
-
- // Loop throught the following node types in this order and
- // process the nodes found
- var types = ["Link", "NetworkLink", "Style", "StyleMap", "Placemark"];
- for(var i=0, len=types.length; i<len; ++i) {
- var type = types[i];
-
- var nodes = this.getElementsByTagNameNS(data, "*", type);
-
- // skip to next type if no nodes are found
- if(nodes.length == 0) {
- continue;
- }
-
- switch (type.toLowerCase()) {
-
- // Fetch external links
- case "link":
- case "networklink":
- this.parseLinks(nodes, options);
- break;
-
- // parse style information
- case "style":
- if (this.extractStyles) {
- this.parseStyles(nodes, options);
- }
- break;
- case "stylemap":
- if (this.extractStyles) {
- this.parseStyleMaps(nodes, options);
- }
- break;
-
- // parse features
- case "placemark":
- this.parseFeatures(nodes, options);
- break;
- }
- }
-
- return this.features;
- },
-
- /**
- * Method: parseLinks
- * Finds URLs of linked KML documents and fetches them
- *
- * Parameters:
- * nodes - {Array} of {DOMElement} data to read/parse.
- * options - {Object} Hash of options
- *
- */
- parseLinks: function(nodes, options) {
-
- // Fetch external links <NetworkLink> and <Link>
- // Don't do anything if we have reached our maximum depth for recursion
- if (options.depth >= this.maxDepth) {
- return false;
- }
-
- // increase depth
- var newOptions = OpenLayers.Util.extend({}, options);
- newOptions.depth++;
-
- for(var i=0, len=nodes.length; i<len; i++) {
- var href = this.parseProperty(nodes[i], "*", "href");
- if(href && !this.fetched[href]) {
- this.fetched[href] = true; // prevent reloading the same urls
- var data = this.fetchLink(href);
- if (data) {
- this.parseData(data, newOptions);
- }
- }
- }
-
- },
-
- /**
- * Method: fetchLink
- * Fetches a URL and returns the result
- *
- * Parameters:
- * href - {String} url to be fetched
- *
- */
- fetchLink: function(href) {
- var request = OpenLayers.Request.GET({url: href, async: false});
- if (request) {
- return request.responseText;
- }
- },
-
- /**
- * Method: parseStyles
- * Parses <Style> nodes
- *
- * Parameters:
- * nodes - {Array} of {DOMElement} data to read/parse.
- * options - {Object} Hash of options
- *
- */
- parseStyles: function(nodes, options) {
- for(var i=0, len=nodes.length; i<len; i++) {
- var style = this.parseStyle(nodes[i]);
- if(style) {
- var styleName = (options.styleBaseUrl || "") + "#" + style.id;
-
- this.styles[styleName] = style;
- }
- }
- },
-
- /**
- * Method: parseKmlColor
- * Parses a kml color (in 'aabbggrr' format) and returns the corresponding
- * color and opacity or null if the color is invalid.
- *
- * Parameters:
- * kmlColor - {String} a kml formated color
- *
- * Returns:
- * {Object}
- */
- parseKmlColor: function(kmlColor) {
- var color = null;
- if (kmlColor) {
- var matches = kmlColor.match(this.regExes.kmlColor);
- if (matches) {
- color = {
- color: '#' + matches[4] + matches[3] + matches[2],
- opacity: parseInt(matches[1], 16) / 255
- };
- }
- }
- return color;
- },
-
- /**
- * Method: parseStyle
- * Parses the children of a <Style> node and builds the style hash
- * accordingly
- *
- * Parameters:
- * node - {DOMElement} <Style> node
- *
- */
- parseStyle: function(node) {
- var style = {};
-
- var types = ["LineStyle", "PolyStyle", "IconStyle", "BalloonStyle",
- "LabelStyle"];
- var type, styleTypeNode, nodeList, geometry, parser;
- for(var i=0, len=types.length; i<len; ++i) {
- type = types[i];
- styleTypeNode = this.getElementsByTagNameNS(node, "*", type)[0];
- if(!styleTypeNode) {
- continue;
- }
-
- // only deal with first geometry of this type
- switch (type.toLowerCase()) {
- case "linestyle":
- var kmlColor = this.parseProperty(styleTypeNode, "*", "color");
- var color = this.parseKmlColor(kmlColor);
- if (color) {
- style["strokeColor"] = color.color;
- style["strokeOpacity"] = color.opacity;
- }
-
- var width = this.parseProperty(styleTypeNode, "*", "width");
- if (width) {
- style["strokeWidth"] = width;
- }
- break;
-
- case "polystyle":
- var kmlColor = this.parseProperty(styleTypeNode, "*", "color");
- var color = this.parseKmlColor(kmlColor);
- if (color) {
- style["fillOpacity"] = color.opacity;
- style["fillColor"] = color.color;
- }
- // Check if fill is disabled
- var fill = this.parseProperty(styleTypeNode, "*", "fill");
- if (fill == "0") {
- style["fillColor"] = "none";
- }
- // Check if outline is disabled
- var outline = this.parseProperty(styleTypeNode, "*", "outline");
- if (outline == "0") {
- style["strokeWidth"] = "0";
- }
-
- break;
-
- case "iconstyle":
- // set scale
- var scale = parseFloat(this.parseProperty(styleTypeNode,
- "*", "scale") || 1);
-
- // set default width and height of icon
- var width = 32 * scale;
- var height = 32 * scale;
-
- var iconNode = this.getElementsByTagNameNS(styleTypeNode,
- "*",
- "Icon")[0];
- if (iconNode) {
- var href = this.parseProperty(iconNode, "*", "href");
- if (href) {
-
- var w = this.parseProperty(iconNode, "*", "w");
- var h = this.parseProperty(iconNode, "*", "h");
-
- // Settings for Google specific icons that are 64x64
- // We set the width and height to 64 and halve the
- // scale to prevent icons from being too big
- var google = "http://maps.google.com/mapfiles/kml";
- if (OpenLayers.String.startsWith(
- href, google) && !w && !h) {
- w = 64;
- h = 64;
- scale = scale / 2;
- }
-
- // if only dimension is defined, make sure the
- // other one has the same value
- w = w || h;
- h = h || w;
-
- if (w) {
- width = parseInt(w) * scale;
- }
-
- if (h) {
- height = parseInt(h) * scale;
- }
-
- // support for internal icons
- // (/root://icons/palette-x.png)
- // x and y tell the position on the palette:
- // - in pixels
- // - starting from the left bottom
- // We translate that to a position in the list
- // and request the appropriate icon from the
- // google maps website
- var matches = href.match(this.regExes.kmlIconPalette);
- if (matches) {
- var palette = matches[1];
- var file_extension = matches[2];
-
- var x = this.parseProperty(iconNode, "*", "x");
- var y = this.parseProperty(iconNode, "*", "y");
-
- var posX = x ? x/32 : 0;
- var posY = y ? (7 - y/32) : 7;
-
- var pos = posY * 8 + posX;
- href = "http://maps.google.com/mapfiles/kml/pal"
- + palette + "/icon" + pos + file_extension;
- }
-
- style["graphicOpacity"] = 1; // fully opaque
- style["externalGraphic"] = href;
- }
-
- }
-
-
- // hotSpots define the offset for an Icon
- var hotSpotNode = this.getElementsByTagNameNS(styleTypeNode,
- "*",
- "hotSpot")[0];
- if (hotSpotNode) {
- var x = parseFloat(hotSpotNode.getAttribute("x"));
- var y = parseFloat(hotSpotNode.getAttribute("y"));
-
- var xUnits = hotSpotNode.getAttribute("xunits");
- if (xUnits == "pixels") {
- style["graphicXOffset"] = -x * scale;
- }
- else if (xUnits == "insetPixels") {
- style["graphicXOffset"] = -width + (x * scale);
- }
- else if (xUnits == "fraction") {
- style["graphicXOffset"] = -width * x;
- }
-
- var yUnits = hotSpotNode.getAttribute("yunits");
- if (yUnits == "pixels") {
- style["graphicYOffset"] = -height + (y * scale) + 1;
- }
- else if (yUnits == "insetPixels") {
- style["graphicYOffset"] = -(y * scale) + 1;
- }
- else if (yUnits == "fraction") {
- style["graphicYOffset"] = -height * (1 - y) + 1;
- }
- }
-
- style["graphicWidth"] = width;
- style["graphicHeight"] = height;
- break;
-
- case "balloonstyle":
- var balloonStyle = OpenLayers.Util.getXmlNodeValue(
- styleTypeNode);
- if (balloonStyle) {
- style["balloonStyle"] = balloonStyle.replace(
- this.regExes.straightBracket, "${$1}");
- }
- break;
- case "labelstyle":
- var kmlColor = this.parseProperty(styleTypeNode, "*", "color");
- var color = this.parseKmlColor(kmlColor);
- if (color) {
- style["fontColor"] = color.color;
- style["fontOpacity"] = color.opacity;
- }
- break;
-
- default:
- }
- }
-
- // Some polygons have no line color, so we use the fillColor for that
- if (!style["strokeColor"] && style["fillColor"]) {
- style["strokeColor"] = style["fillColor"];
- }
-
- var id = node.getAttribute("id");
- if (id && style) {
- style.id = id;
- }
-
- return style;
- },
-
- /**
- * Method: parseStyleMaps
- * Parses <StyleMap> nodes, but only uses the 'normal' key
- *
- * Parameters:
- * nodes - {Array} of {DOMElement} data to read/parse.
- * options - {Object} Hash of options
- *
- */
- parseStyleMaps: function(nodes, options) {
- // Only the default or "normal" part of the StyleMap is processed now
- // To do the select or "highlight" bit, we'd need to change lots more
-
- for(var i=0, len=nodes.length; i<len; i++) {
- var node = nodes[i];
- var pairs = this.getElementsByTagNameNS(node, "*",
- "Pair");
-
- var id = node.getAttribute("id");
- for (var j=0, jlen=pairs.length; j<jlen; j++) {
- var pair = pairs[j];
- // Use the shortcut in the SLD format to quickly retrieve the
- // value of a node. Maybe it's good to have a method in
- // Format.XML to do this
- var key = this.parseProperty(pair, "*", "key");
- var styleUrl = this.parseProperty(pair, "*", "styleUrl");
-
- if (styleUrl && key == "normal") {
- this.styles[(options.styleBaseUrl || "") + "#" + id] =
- this.styles[(options.styleBaseUrl || "") + styleUrl];
- }
-
- // TODO: implement the "select" part
- //if (styleUrl && key == "highlight") {
- //}
-
- }
- }
-
- },
-
-
- /**
- * Method: parseFeatures
- * Loop through all Placemark nodes and parse them.
- * Will create a list of features
- *
- * Parameters:
- * nodes - {Array} of {DOMElement} data to read/parse.
- * options - {Object} Hash of options
- *
- */
- parseFeatures: function(nodes, options) {
- var features = [];
- for(var i=0, len=nodes.length; i<len; i++) {
- var featureNode = nodes[i];
- var feature = this.parseFeature.apply(this,[featureNode]) ;
- if(feature) {
-
- // Create reference to styleUrl
- if (this.extractStyles && feature.attributes &&
- feature.attributes.styleUrl) {
- feature.style = this.getStyle(feature.attributes.styleUrl, options);
- }
-
- if (this.extractStyles) {
- // Make sure that <Style> nodes within a placemark are
- // processed as well
- var inlineStyleNode = this.getElementsByTagNameNS(featureNode,
- "*",
- "Style")[0];
- if (inlineStyleNode) {
- var inlineStyle= this.parseStyle(inlineStyleNode);
- if (inlineStyle) {
- feature.style = OpenLayers.Util.extend(
- feature.style, inlineStyle
- );
- }
- }
- }
-
- // check if gx:Track elements should be parsed
- if (this.extractTracks) {
- var tracks = this.getElementsByTagNameNS(
- featureNode, this.namespaces.gx, "Track"
- );
- if (tracks && tracks.length > 0) {
- var track = tracks[0];
- var container = {
- features: [],
- feature: feature
- };
- this.readNode(track, container);
- if (container.features.length > 0) {
- features.push.apply(features, container.features);
- }
- }
- } else {
- // add feature to list of features
- features.push(feature);
- }
- } else {
- throw "Bad Placemark: " + i;
- }
- }
-
- // add new features to existing feature list
- this.features = this.features.concat(features);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "kml": {
- "when": function(node, container) {
- container.whens.push(OpenLayers.Date.parse(
- this.getChildValue(node)
- ));
- },
- "_trackPointAttribute": function(node, container) {
- var name = node.nodeName.split(":").pop();
- container.attributes[name].push(this.getChildValue(node));
- }
- },
- "gx": {
- "Track": function(node, container) {
- var obj = {
- whens: [],
- points: [],
- angles: []
- };
- if (this.trackAttributes) {
- var name;
- obj.attributes = {};
- for (var i=0, ii=this.trackAttributes.length; i<ii; ++i) {
- name = this.trackAttributes[i];
- obj.attributes[name] = [];
- if (!(name in this.readers.kml)) {
- this.readers.kml[name] = this.readers.kml._trackPointAttribute;
- }
- }
- }
- this.readChildNodes(node, obj);
- if (obj.whens.length !== obj.points.length) {
- throw new Error("gx:Track with unequal number of when (" +
- obj.whens.length + ") and gx:coord (" +
- obj.points.length + ") elements.");
- }
- var hasAngles = obj.angles.length > 0;
- if (hasAngles && obj.whens.length !== obj.angles.length) {
- throw new Error("gx:Track with unequal number of when (" +
- obj.whens.length + ") and gx:angles (" +
- obj.angles.length + ") elements.");
- }
- var feature, point, angles;
- for (var i=0, ii=obj.whens.length; i<ii; ++i) {
- feature = container.feature.clone();
- feature.fid = container.feature.fid || container.feature.id;
- point = obj.points[i];
- feature.geometry = point;
- if ("z" in point) {
- feature.attributes.altitude = point.z;
- }
- if (this.internalProjection && this.externalProjection) {
- feature.geometry.transform(
- this.externalProjection, this.internalProjection
- );
- }
- if (this.trackAttributes) {
- for (var j=0, jj=this.trackAttributes.length; j<jj; ++j) {
- var name = this.trackAttributes[j];
- feature.attributes[name] = obj.attributes[name][i];
- }
- }
- feature.attributes.when = obj.whens[i];
- feature.attributes.trackId = container.feature.id;
- if (hasAngles) {
- angles = obj.angles[i];
- feature.attributes.heading = parseFloat(angles[0]);
- feature.attributes.tilt = parseFloat(angles[1]);
- feature.attributes.roll = parseFloat(angles[2]);
- }
- container.features.push(feature);
- }
- },
- "coord": function(node, container) {
- var str = this.getChildValue(node);
- var coords = str.replace(this.regExes.trimSpace, "").split(/\s+/);
- var point = new OpenLayers.Geometry.Point(coords[0], coords[1]);
- if (coords.length > 2) {
- point.z = parseFloat(coords[2]);
- }
- container.points.push(point);
- },
- "angles": function(node, container) {
- var str = this.getChildValue(node);
- var parts = str.replace(this.regExes.trimSpace, "").split(/\s+/);
- container.angles.push(parts);
- }
- }
- },
-
- /**
- * Method: parseFeature
- * This function is the core of the KML parsing code in OpenLayers.
- * It creates the geometries that are then attached to the returned
- * feature, and calls parseAttributes() to get attribute data out.
- *
- * Parameters:
- * node - {DOMElement}
- *
- * Returns:
- * {<OpenLayers.Feature.Vector>} A vector feature.
- */
- parseFeature: function(node) {
- // only accept one geometry per feature - look for highest "order"
- var order = ["MultiGeometry", "Polygon", "LineString", "Point"];
- var type, nodeList, geometry, parser;
- for(var i=0, len=order.length; i<len; ++i) {
- type = order[i];
- this.internalns = node.namespaceURI ?
- node.namespaceURI : this.kmlns;
- nodeList = this.getElementsByTagNameNS(node,
- this.internalns, type);
- if(nodeList.length > 0) {
- // only deal with first geometry of this type
- var parser = this.parseGeometry[type.toLowerCase()];
- if(parser) {
- geometry = parser.apply(this, [nodeList[0]]);
- if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- } else {
- throw new TypeError("Unsupported geometry type: " + type);
- }
- // stop looking for different geometry types
- break;
- }
- }
-
- // construct feature (optionally with attributes)
- var attributes;
- if(this.extractAttributes) {
- attributes = this.parseAttributes(node);
- }
- var feature = new OpenLayers.Feature.Vector(geometry, attributes);
-
- var fid = node.getAttribute("id") || node.getAttribute("name");
- if(fid != null) {
- feature.fid = fid;
- }
-
- return feature;
- },
-
- /**
- * Method: getStyle
- * Retrieves a style from a style hash using styleUrl as the key
- * If the styleUrl doesn't exist yet, we try to fetch it
- * Internet
- *
- * Parameters:
- * styleUrl - {String} URL of style
- * options - {Object} Hash of options
- *
- * Returns:
- * {Object} - (reference to) Style hash
- */
- getStyle: function(styleUrl, options) {
-
- var styleBaseUrl = OpenLayers.Util.removeTail(styleUrl);
-
- var newOptions = OpenLayers.Util.extend({}, options);
- newOptions.depth++;
- newOptions.styleBaseUrl = styleBaseUrl;
-
- // Fetch remote Style URLs (if not fetched before)
- if (!this.styles[styleUrl]
- && !OpenLayers.String.startsWith(styleUrl, "#")
- && newOptions.depth <= this.maxDepth
- && !this.fetched[styleBaseUrl] ) {
-
- var data = this.fetchLink(styleBaseUrl);
- if (data) {
- this.parseData(data, newOptions);
- }
-
- }
-
- // return requested style
- var style = OpenLayers.Util.extend({}, this.styles[styleUrl]);
- return style;
- },
-
- /**
- * Property: parseGeometry
- * Properties of this object are the functions that parse geometries based
- * on their type.
- */
- parseGeometry: {
-
- /**
- * Method: parseGeometry.point
- * Given a KML node representing a point geometry, create an OpenLayers
- * point geometry.
- *
- * Parameters:
- * node - {DOMElement} A KML Point node.
- *
- * Returns:
- * {<OpenLayers.Geometry.Point>} A point geometry.
- */
- point: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.internalns,
- "coordinates");
- var coords = [];
- if(nodeList.length > 0) {
- var coordString = nodeList[0].firstChild.nodeValue;
- coordString = coordString.replace(this.regExes.removeSpace, "");
- coords = coordString.split(",");
- }
-
- var point = null;
- if(coords.length > 1) {
- // preserve third dimension
- if(coords.length == 2) {
- coords[2] = null;
- }
- point = new OpenLayers.Geometry.Point(coords[0], coords[1],
- coords[2]);
- } else {
- throw "Bad coordinate string: " + coordString;
- }
- return point;
- },
-
- /**
- * Method: parseGeometry.linestring
- * Given a KML node representing a linestring geometry, create an
- * OpenLayers linestring geometry.
- *
- * Parameters:
- * node - {DOMElement} A KML LineString node.
- *
- * Returns:
- * {<OpenLayers.Geometry.LineString>} A linestring geometry.
- */
- linestring: function(node, ring) {
- var nodeList = this.getElementsByTagNameNS(node, this.internalns,
- "coordinates");
- var line = null;
- if(nodeList.length > 0) {
- var coordString = this.getChildValue(nodeList[0]);
-
- coordString = coordString.replace(this.regExes.trimSpace,
- "");
- coordString = coordString.replace(this.regExes.trimComma,
- ",");
- var pointList = coordString.split(this.regExes.splitSpace);
- var numPoints = pointList.length;
- var points = new Array(numPoints);
- var coords, numCoords;
- for(var i=0; i<numPoints; ++i) {
- coords = pointList[i].split(",");
- numCoords = coords.length;
- if(numCoords > 1) {
- if(coords.length == 2) {
- coords[2] = null;
- }
- points[i] = new OpenLayers.Geometry.Point(coords[0],
- coords[1],
- coords[2]);
- } else {
- throw "Bad LineString point coordinates: " +
- pointList[i];
- }
- }
- if(numPoints) {
- if(ring) {
- line = new OpenLayers.Geometry.LinearRing(points);
- } else {
- line = new OpenLayers.Geometry.LineString(points);
- }
- } else {
- throw "Bad LineString coordinates: " + coordString;
- }
- }
-
- return line;
- },
-
- /**
- * Method: parseGeometry.polygon
- * Given a KML node representing a polygon geometry, create an
- * OpenLayers polygon geometry.
- *
- * Parameters:
- * node - {DOMElement} A KML Polygon node.
- *
- * Returns:
- * {<OpenLayers.Geometry.Polygon>} A polygon geometry.
- */
- polygon: function(node) {
- var nodeList = this.getElementsByTagNameNS(node, this.internalns,
- "LinearRing");
- var numRings = nodeList.length;
- var components = new Array(numRings);
- if(numRings > 0) {
- // this assumes exterior ring first, inner rings after
- var ring;
- for(var i=0, len=nodeList.length; i<len; ++i) {
- ring = this.parseGeometry.linestring.apply(this,
- [nodeList[i], true]);
- if(ring) {
- components[i] = ring;
- } else {
- throw "Bad LinearRing geometry: " + i;
- }
- }
- }
- return new OpenLayers.Geometry.Polygon(components);
- },
-
- /**
- * Method: parseGeometry.multigeometry
- * Given a KML node representing a multigeometry, create an
- * OpenLayers geometry collection.
- *
- * Parameters:
- * node - {DOMElement} A KML MultiGeometry node.
- *
- * Returns:
- * {<OpenLayers.Geometry.Collection>} A geometry collection.
- */
- multigeometry: function(node) {
- var child, parser;
- var parts = [];
- var children = node.childNodes;
- for(var i=0, len=children.length; i<len; ++i ) {
- child = children[i];
- if(child.nodeType == 1) {
- var type = (child.prefix) ?
- child.nodeName.split(":")[1] :
- child.nodeName;
- var parser = this.parseGeometry[type.toLowerCase()];
- if(parser) {
- parts.push(parser.apply(this, [child]));
- }
- }
- }
- return new OpenLayers.Geometry.Collection(parts);
- }
-
- },
-
- /**
- * Method: parseAttributes
- *
- * Parameters:
- * node - {DOMElement}
- *
- * Returns:
- * {Object} An attributes object.
- */
- parseAttributes: function(node) {
- var attributes = {};
-
- // Extended Data is parsed first.
- var edNodes = node.getElementsByTagName("ExtendedData");
- if (edNodes.length) {
- attributes = this.parseExtendedData(edNodes[0]);
- }
-
- // assume attribute nodes are type 1 children with a type 3 or 4 child
- var child, grandchildren, grandchild;
- var children = node.childNodes;
-
- for(var i=0, len=children.length; i<len; ++i) {
- child = children[i];
- if(child.nodeType == 1) {
- grandchildren = child.childNodes;
- if(grandchildren.length >= 1 && grandchildren.length <= 3) {
- var grandchild;
- switch (grandchildren.length) {
- case 1:
- grandchild = grandchildren[0];
- break;
- case 2:
- var c1 = grandchildren[0];
- var c2 = grandchildren[1];
- grandchild = (c1.nodeType == 3 || c1.nodeType == 4) ?
- c1 : c2;
- break;
- case 3:
- default:
- grandchild = grandchildren[1];
- break;
- }
- if(grandchild.nodeType == 3 || grandchild.nodeType == 4) {
- var name = (child.prefix) ?
- child.nodeName.split(":")[1] :
- child.nodeName;
- var value = OpenLayers.Util.getXmlNodeValue(grandchild);
- if (value) {
- value = value.replace(this.regExes.trimSpace, "");
- attributes[name] = value;
- }
- }
- }
- }
- }
- return attributes;
- },
-
- /**
- * Method: parseExtendedData
- * Parse ExtendedData from KML. Limited support for schemas/datatypes.
- * See http://code.google.com/apis/kml/documentation/kmlreference.html#extendeddata
- * for more information on extendeddata.
- */
- parseExtendedData: function(node) {
- var attributes = {};
- var i, len, data, key;
- var dataNodes = node.getElementsByTagName("Data");
- for (i = 0, len = dataNodes.length; i < len; i++) {
- data = dataNodes[i];
- key = data.getAttribute("name");
- var ed = {};
- var valueNode = data.getElementsByTagName("value");
- if (valueNode.length) {
- ed['value'] = this.getChildValue(valueNode[0]);
- }
- if (this.kvpAttributes) {
- attributes[key] = ed['value'];
- } else {
- var nameNode = data.getElementsByTagName("displayName");
- if (nameNode.length) {
- ed['displayName'] = this.getChildValue(nameNode[0]);
- }
- attributes[key] = ed;
- }
- }
- var simpleDataNodes = node.getElementsByTagName("SimpleData");
- for (i = 0, len = simpleDataNodes.length; i < len; i++) {
- var ed = {};
- data = simpleDataNodes[i];
- key = data.getAttribute("name");
- ed['value'] = this.getChildValue(data);
- if (this.kvpAttributes) {
- attributes[key] = ed['value'];
- } else {
- ed['displayName'] = key;
- attributes[key] = ed;
- }
- }
-
- return attributes;
- },
-
- /**
- * Method: parseProperty
- * Convenience method to find a node and return its value
- *
- * Parameters:
- * xmlNode - {<DOMElement>}
- * namespace - {String} namespace of the node to find
- * tagName - {String} name of the property to parse
- *
- * Returns:
- * {String} The value for the requested property (defaults to null)
- */
- parseProperty: function(xmlNode, namespace, tagName) {
- var value;
- var nodeList = this.getElementsByTagNameNS(xmlNode, namespace, tagName);
- try {
- value = OpenLayers.Util.getXmlNodeValue(nodeList[0]);
- } catch(e) {
- value = null;
- }
-
- return value;
- },
-
- /**
- * APIMethod: write
- * Accept Feature Collection, and return a string.
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)} An array of features.
- *
- * Returns:
- * {String} A KML string.
- */
- write: function(features) {
- if(!(OpenLayers.Util.isArray(features))) {
- features = [features];
- }
- var kml = this.createElementNS(this.kmlns, "kml");
- var folder = this.createFolderXML();
- for(var i=0, len=features.length; i<len; ++i) {
- folder.appendChild(this.createPlacemarkXML(features[i]));
- }
- kml.appendChild(folder);
- return OpenLayers.Format.XML.prototype.write.apply(this, [kml]);
- },
-
- /**
- * Method: createFolderXML
- * Creates and returns a KML folder node
- *
- * Returns:
- * {DOMElement}
- */
- createFolderXML: function() {
- // Folder
- var folder = this.createElementNS(this.kmlns, "Folder");
-
- // Folder name
- if (this.foldersName) {
- var folderName = this.createElementNS(this.kmlns, "name");
- var folderNameText = this.createTextNode(this.foldersName);
- folderName.appendChild(folderNameText);
- folder.appendChild(folderName);
- }
-
- // Folder description
- if (this.foldersDesc) {
- var folderDesc = this.createElementNS(this.kmlns, "description");
- var folderDescText = this.createTextNode(this.foldersDesc);
- folderDesc.appendChild(folderDescText);
- folder.appendChild(folderDesc);
- }
-
- return folder;
- },
-
- /**
- * Method: createPlacemarkXML
- * Creates and returns a KML placemark node representing the given feature.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- *
- * Returns:
- * {DOMElement}
- */
- createPlacemarkXML: function(feature) {
- // Placemark name
- var placemarkName = this.createElementNS(this.kmlns, "name");
- var label = (feature.style && feature.style.label) ? feature.style.label : feature.id;
- var name = feature.attributes.name || label;
- placemarkName.appendChild(this.createTextNode(name));
-
- // Placemark description
- var placemarkDesc = this.createElementNS(this.kmlns, "description");
- var desc = feature.attributes.description || this.placemarksDesc;
- placemarkDesc.appendChild(this.createTextNode(desc));
-
- // Placemark
- var placemarkNode = this.createElementNS(this.kmlns, "Placemark");
- if(feature.fid != null) {
- placemarkNode.setAttribute("id", feature.fid);
- }
- placemarkNode.appendChild(placemarkName);
- placemarkNode.appendChild(placemarkDesc);
-
- // Geometry node (Point, LineString, etc. nodes)
- var geometryNode = this.buildGeometryNode(feature.geometry);
- placemarkNode.appendChild(geometryNode);
-
- // output attributes as extendedData
- if (feature.attributes) {
- var edNode = this.buildExtendedData(feature.attributes);
- if (edNode) {
- placemarkNode.appendChild(edNode);
- }
- }
-
- return placemarkNode;
- },
-
- /**
- * Method: buildGeometryNode
- * Builds and returns a KML geometry node with the given geometry.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- *
- * Returns:
- * {DOMElement}
- */
- buildGeometryNode: function(geometry) {
- var className = geometry.CLASS_NAME;
- var type = className.substring(className.lastIndexOf(".") + 1);
- var builder = this.buildGeometry[type.toLowerCase()];
- var node = null;
- if(builder) {
- node = builder.apply(this, [geometry]);
- }
- return node;
- },
-
- /**
- * Property: buildGeometry
- * Object containing methods to do the actual geometry node building
- * based on geometry type.
- */
- buildGeometry: {
- // TBD: Anybody care about namespace aliases here (these nodes have
- // no prefixes)?
-
- /**
- * Method: buildGeometry.point
- * Given an OpenLayers point geometry, create a KML point.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Point>} A point geometry.
- *
- * Returns:
- * {DOMElement} A KML point node.
- */
- point: function(geometry) {
- var kml = this.createElementNS(this.kmlns, "Point");
- kml.appendChild(this.buildCoordinatesNode(geometry));
- return kml;
- },
-
- /**
- * Method: buildGeometry.multipoint
- * Given an OpenLayers multipoint geometry, create a KML
- * GeometryCollection.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Point>} A multipoint geometry.
- *
- * Returns:
- * {DOMElement} A KML GeometryCollection node.
- */
- multipoint: function(geometry) {
- return this.buildGeometry.collection.apply(this, [geometry]);
- },
-
- /**
- * Method: buildGeometry.linestring
- * Given an OpenLayers linestring geometry, create a KML linestring.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.LineString>} A linestring geometry.
- *
- * Returns:
- * {DOMElement} A KML linestring node.
- */
- linestring: function(geometry) {
- var kml = this.createElementNS(this.kmlns, "LineString");
- kml.appendChild(this.buildCoordinatesNode(geometry));
- return kml;
- },
-
- /**
- * Method: buildGeometry.multilinestring
- * Given an OpenLayers multilinestring geometry, create a KML
- * GeometryCollection.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Point>} A multilinestring geometry.
- *
- * Returns:
- * {DOMElement} A KML GeometryCollection node.
- */
- multilinestring: function(geometry) {
- return this.buildGeometry.collection.apply(this, [geometry]);
- },
-
- /**
- * Method: buildGeometry.linearring
- * Given an OpenLayers linearring geometry, create a KML linearring.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.LinearRing>} A linearring geometry.
- *
- * Returns:
- * {DOMElement} A KML linearring node.
- */
- linearring: function(geometry) {
- var kml = this.createElementNS(this.kmlns, "LinearRing");
- kml.appendChild(this.buildCoordinatesNode(geometry));
- return kml;
- },
-
- /**
- * Method: buildGeometry.polygon
- * Given an OpenLayers polygon geometry, create a KML polygon.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Polygon>} A polygon geometry.
- *
- * Returns:
- * {DOMElement} A KML polygon node.
- */
- polygon: function(geometry) {
- var kml = this.createElementNS(this.kmlns, "Polygon");
- var rings = geometry.components;
- var ringMember, ringGeom, type;
- for(var i=0, len=rings.length; i<len; ++i) {
- type = (i==0) ? "outerBoundaryIs" : "innerBoundaryIs";
- ringMember = this.createElementNS(this.kmlns, type);
- ringGeom = this.buildGeometry.linearring.apply(this,
- [rings[i]]);
- ringMember.appendChild(ringGeom);
- kml.appendChild(ringMember);
- }
- return kml;
- },
-
- /**
- * Method: buildGeometry.multipolygon
- * Given an OpenLayers multipolygon geometry, create a KML
- * GeometryCollection.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Point>} A multipolygon geometry.
- *
- * Returns:
- * {DOMElement} A KML GeometryCollection node.
- */
- multipolygon: function(geometry) {
- return this.buildGeometry.collection.apply(this, [geometry]);
- },
-
- /**
- * Method: buildGeometry.collection
- * Given an OpenLayers geometry collection, create a KML MultiGeometry.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Collection>} A geometry collection.
- *
- * Returns:
- * {DOMElement} A KML MultiGeometry node.
- */
- collection: function(geometry) {
- var kml = this.createElementNS(this.kmlns, "MultiGeometry");
- var child;
- for(var i=0, len=geometry.components.length; i<len; ++i) {
- child = this.buildGeometryNode.apply(this,
- [geometry.components[i]]);
- if(child) {
- kml.appendChild(child);
- }
- }
- return kml;
- }
- },
-
- /**
- * Method: buildCoordinatesNode
- * Builds and returns the KML coordinates node with the given geometry
- * <coordinates>...</coordinates>
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
- *
- * Returns:
- * {DOMElement}
- */
- buildCoordinatesNode: function(geometry) {
- var coordinatesNode = this.createElementNS(this.kmlns, "coordinates");
-
- var path;
- var points = geometry.components;
- if(points) {
- // LineString or LinearRing
- var point;
- var numPoints = points.length;
- var parts = new Array(numPoints);
- for(var i=0; i<numPoints; ++i) {
- point = points[i];
- parts[i] = this.buildCoordinates(point);
- }
- path = parts.join(" ");
- } else {
- // Point
- path = this.buildCoordinates(geometry);
- }
-
- var txtNode = this.createTextNode(path);
- coordinatesNode.appendChild(txtNode);
-
- return coordinatesNode;
- },
-
- /**
- * Method: buildCoordinates
- *
- * Parameters:
- * point - {<OpenLayers.Geometry.Point>}
- *
- * Returns
- * {String} a coordinate pair
- */
- buildCoordinates: function(point) {
- if (this.internalProjection && this.externalProjection) {
- point = point.clone();
- point.transform(this.internalProjection,
- this.externalProjection);
- }
- return point.x + "," + point.y;
- },
-
- /**
- * Method: buildExtendedData
- *
- * Parameters:
- * attributes - {Object}
- *
- * Returns
- * {DOMElement} A KML ExtendedData node or {null} if no attributes.
- */
- buildExtendedData: function(attributes) {
- var extendedData = this.createElementNS(this.kmlns, "ExtendedData");
- for (var attributeName in attributes) {
- // empty, name, description, styleUrl attributes ignored
- if (attributes[attributeName] && attributeName != "name" && attributeName != "description" && attributeName != "styleUrl") {
- var data = this.createElementNS(this.kmlns, "Data");
- data.setAttribute("name", attributeName);
- var value = this.createElementNS(this.kmlns, "value");
- if (typeof attributes[attributeName] == "object") {
- // cater for object attributes with 'value' properties
- // other object properties will output an empty node
- if (attributes[attributeName].value) {
- value.appendChild(this.createTextNode(attributes[attributeName].value));
- }
- if (attributes[attributeName].displayName) {
- var displayName = this.createElementNS(this.kmlns, "displayName");
- // displayName always written as CDATA
- displayName.appendChild(this.getXMLDoc().createCDATASection(attributes[attributeName].displayName));
- data.appendChild(displayName);
- }
- } else {
- value.appendChild(this.createTextNode(attributes[attributeName]));
- }
- data.appendChild(value);
- extendedData.appendChild(data);
- }
- }
- if (this.isSimpleContent(extendedData)) {
- return null;
- } else {
- return extendedData;
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.KML"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js b/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js
deleted file mode 100644
index 61a9da5..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OGCExceptionReport.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- */
-
-/**
- * Class: OpenLayers.Format.OGCExceptionReport
- * Class to read exception reports for various OGC services and versions.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.OGCExceptionReport = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ogc: "http://www.opengis.net/ogc"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "ogc",
-
- /**
- * Constructor: OpenLayers.Format.OGCExceptionReport
- * Create a new parser for OGC exception reports.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read OGC exception report data from a string, and return an object with
- * information about the exceptions.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Information about the exceptions that occurred.
- */
- read: function(data) {
- var result;
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var root = data.documentElement;
- var exceptionInfo = {exceptionReport: null};
- if (root) {
- this.readChildNodes(data, exceptionInfo);
- if (exceptionInfo.exceptionReport === null) {
- // fall-back to OWSCommon since this is a common output format for exceptions
- // we cannot easily use the ows readers directly since they differ for 1.0 and 1.1
- exceptionInfo = new OpenLayers.Format.OWSCommon().read(data);
- }
- }
- return exceptionInfo;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ogc": {
- "ServiceExceptionReport": function(node, obj) {
- obj.exceptionReport = {exceptions: []};
- this.readChildNodes(node, obj.exceptionReport);
- },
- "ServiceException": function(node, exceptionReport) {
- var exception = {
- code: node.getAttribute("code"),
- locator: node.getAttribute("locator"),
- text: this.getChildValue(node)
- };
- exceptionReport.exceptions.push(exception);
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.OGCExceptionReport"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OSM.js b/misc/openlayers/lib/OpenLayers/Format/OSM.js
deleted file mode 100644
index 7283348..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OSM.js
+++ /dev/null
@@ -1,465 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Geometry/Polygon.js
- * @requires OpenLayers/Projection.js
- */
-
-/**
- * Class: OpenLayers.Format.OSM
- * OSM parser. Create a new instance with the
- * <OpenLayers.Format.OSM> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.OSM = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * APIProperty: checkTags
- * {Boolean} Should tags be checked to determine whether something
- * should be treated as a seperate node. Will slow down parsing.
- * Default is false.
- */
- checkTags: false,
-
- /**
- * Property: interestingTagsExclude
- * {Array} List of tags to exclude from 'interesting' checks on nodes.
- * Must be set when creating the format. Will only be used if checkTags
- * is set.
- */
- interestingTagsExclude: null,
-
- /**
- * APIProperty: areaTags
- * {Array} List of tags indicating that something is an area.
- * Must be set when creating the format. Will only be used if
- * checkTags is true.
- */
- areaTags: null,
-
- /**
- * Constructor: OpenLayers.Format.OSM
- * Create a new parser for OSM.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- var layer_defaults = {
- 'interestingTagsExclude': ['source', 'source_ref',
- 'source:ref', 'history', 'attribution', 'created_by'],
- 'areaTags': ['area', 'building', 'leisure', 'tourism', 'ruins',
- 'historic', 'landuse', 'military', 'natural', 'sport']
- };
-
- layer_defaults = OpenLayers.Util.extend(layer_defaults, options);
-
- var interesting = {};
- for (var i = 0; i < layer_defaults.interestingTagsExclude.length; i++) {
- interesting[layer_defaults.interestingTagsExclude[i]] = true;
- }
- layer_defaults.interestingTagsExclude = interesting;
-
- var area = {};
- for (var i = 0; i < layer_defaults.areaTags.length; i++) {
- area[layer_defaults.areaTags[i]] = true;
- }
- layer_defaults.areaTags = area;
-
- // OSM coordinates are always in longlat WGS84
- this.externalProjection = new OpenLayers.Projection("EPSG:4326");
-
- OpenLayers.Format.XML.prototype.initialize.apply(this, [layer_defaults]);
- },
-
- /**
- * APIMethod: read
- * Return a list of features from a OSM doc
-
- * Parameters:
- * doc - {Element}
- *
- * Returns:
- * Array({<OpenLayers.Feature.Vector>})
- */
- read: function(doc) {
- if (typeof doc == "string") {
- doc = OpenLayers.Format.XML.prototype.read.apply(this, [doc]);
- }
-
- var nodes = this.getNodes(doc);
- var ways = this.getWays(doc);
-
- // Geoms will contain at least ways.length entries.
- var feat_list = new Array(ways.length);
-
- for (var i = 0; i < ways.length; i++) {
- // We know the minimal of this one ahead of time. (Could be -1
- // due to areas/polygons)
- var point_list = new Array(ways[i].nodes.length);
-
- var poly = this.isWayArea(ways[i]) ? 1 : 0;
- for (var j = 0; j < ways[i].nodes.length; j++) {
- var node = nodes[ways[i].nodes[j]];
-
- var point = new OpenLayers.Geometry.Point(node.lon, node.lat);
-
- // Since OSM is topological, we stash the node ID internally.
- point.osm_id = parseInt(ways[i].nodes[j]);
- point_list[j] = point;
-
- // We don't display nodes if they're used inside other
- // elements.
- node.used = true;
- }
- var geometry = null;
- if (poly) {
- geometry = new OpenLayers.Geometry.Polygon(
- new OpenLayers.Geometry.LinearRing(point_list));
- } else {
- geometry = new OpenLayers.Geometry.LineString(point_list);
- }
- if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- var feat = new OpenLayers.Feature.Vector(geometry,
- ways[i].tags);
- feat.osm_id = parseInt(ways[i].id);
- feat.fid = "way." + feat.osm_id;
- feat_list[i] = feat;
- }
- for (var node_id in nodes) {
- var node = nodes[node_id];
- if (!node.used || this.checkTags) {
- var tags = null;
-
- if (this.checkTags) {
- var result = this.getTags(node.node, true);
- if (node.used && !result[1]) {
- continue;
- }
- tags = result[0];
- } else {
- tags = this.getTags(node.node);
- }
-
- var feat = new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Point(node['lon'], node['lat']),
- tags);
- if (this.internalProjection && this.externalProjection) {
- feat.geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- feat.osm_id = parseInt(node_id);
- feat.fid = "node." + feat.osm_id;
- feat_list.push(feat);
- }
- // Memory cleanup
- node.node = null;
- }
- return feat_list;
- },
-
- /**
- * Method: getNodes
- * Return the node items from a doc.
- *
- * Parameters:
- * doc - {DOMElement} node to parse tags from
- */
- getNodes: function(doc) {
- var node_list = doc.getElementsByTagName("node");
- var nodes = {};
- for (var i = 0; i < node_list.length; i++) {
- var node = node_list[i];
- var id = node.getAttribute("id");
- nodes[id] = {
- 'lat': node.getAttribute("lat"),
- 'lon': node.getAttribute("lon"),
- 'node': node
- };
- }
- return nodes;
- },
-
- /**
- * Method: getWays
- * Return the way items from a doc.
- *
- * Parameters:
- * doc - {DOMElement} node to parse tags from
- */
- getWays: function(doc) {
- var way_list = doc.getElementsByTagName("way");
- var return_ways = [];
- for (var i = 0; i < way_list.length; i++) {
- var way = way_list[i];
- var way_object = {
- id: way.getAttribute("id")
- };
-
- way_object.tags = this.getTags(way);
-
- var node_list = way.getElementsByTagName("nd");
-
- way_object.nodes = new Array(node_list.length);
-
- for (var j = 0; j < node_list.length; j++) {
- way_object.nodes[j] = node_list[j].getAttribute("ref");
- }
- return_ways.push(way_object);
- }
- return return_ways;
-
- },
-
- /**
- * Method: getTags
- * Return the tags list attached to a specific DOM element.
- *
- * Parameters:
- * dom_node - {DOMElement} node to parse tags from
- * interesting_tags - {Boolean} whether the return from this function should
- * return a boolean indicating that it has 'interesting tags' --
- * tags like attribution and source are ignored. (To change the list
- * of tags, see interestingTagsExclude)
- *
- * Returns:
- * tags - {Object} hash of tags
- * interesting - {Boolean} if interesting_tags is passed, returns
- * whether there are any interesting tags on this element.
- */
- getTags: function(dom_node, interesting_tags) {
- var tag_list = dom_node.getElementsByTagName("tag");
- var tags = {};
- var interesting = false;
- for (var j = 0; j < tag_list.length; j++) {
- var key = tag_list[j].getAttribute("k");
- tags[key] = tag_list[j].getAttribute("v");
- if (interesting_tags) {
- if (!this.interestingTagsExclude[key]) {
- interesting = true;
- }
- }
- }
- return interesting_tags ? [tags, interesting] : tags;
- },
-
- /**
- * Method: isWayArea
- * Given a way object from getWays, check whether the tags and geometry
- * indicate something is an area.
- *
- * Returns:
- * {Boolean}
- */
- isWayArea: function(way) {
- var poly_shaped = false;
- var poly_tags = false;
-
- if (way.nodes[0] == way.nodes[way.nodes.length - 1]) {
- poly_shaped = true;
- }
- if (this.checkTags) {
- for(var key in way.tags) {
- if (this.areaTags[key]) {
- poly_tags = true;
- break;
- }
- }
- }
- return poly_shaped && (this.checkTags ? poly_tags : true);
- },
-
- /**
- * APIMethod: write
- * Takes a list of features, returns a serialized OSM format file for use
- * in tools like JOSM.
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
- */
- write: function(features) {
- if (!(OpenLayers.Util.isArray(features))) {
- features = [features];
- }
-
- this.osm_id = 1;
- this.created_nodes = {};
- var root_node = this.createElementNS(null, "osm");
- root_node.setAttribute("version", "0.5");
- root_node.setAttribute("generator", "OpenLayers "+ OpenLayers.VERSION_NUMBER);
-
- // Loop backwards, because the deserializer puts nodes last, and
- // we want them first if possible
- for(var i = features.length - 1; i >= 0; i--) {
- var nodes = this.createFeatureNodes(features[i]);
- for (var j = 0; j < nodes.length; j++) {
- root_node.appendChild(nodes[j]);
- }
- }
- return OpenLayers.Format.XML.prototype.write.apply(this, [root_node]);
- },
-
- /**
- * Method: createFeatureNodes
- * Takes a feature, returns a list of nodes from size 0->n.
- * Will include all pieces of the serialization that are required which
- * have not already been created. Calls out to createXML based on geometry
- * type.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- */
- createFeatureNodes: function(feature) {
- var nodes = [];
- var className = feature.geometry.CLASS_NAME;
- var type = className.substring(className.lastIndexOf(".") + 1);
- type = type.toLowerCase();
- var builder = this.createXML[type];
- if (builder) {
- nodes = builder.apply(this, [feature]);
- }
- return nodes;
- },
-
- /**
- * Method: createXML
- * Takes a feature, returns a list of nodes from size 0->n.
- * Will include all pieces of the serialization that are required which
- * have not already been created.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- */
- createXML: {
- 'point': function(point) {
- var id = null;
- var geometry = point.geometry ? point.geometry : point;
-
- if (this.internalProjection && this.externalProjection) {
- geometry = geometry.clone();
- geometry.transform(this.internalProjection,
- this.externalProjection);
- }
-
- var already_exists = false; // We don't return anything if the node
- // has already been created
- if (point.osm_id) {
- id = point.osm_id;
- if (this.created_nodes[id]) {
- already_exists = true;
- }
- } else {
- id = -this.osm_id;
- this.osm_id++;
- }
- if (already_exists) {
- node = this.created_nodes[id];
- } else {
- var node = this.createElementNS(null, "node");
- }
- this.created_nodes[id] = node;
- node.setAttribute("id", id);
- node.setAttribute("lon", geometry.x);
- node.setAttribute("lat", geometry.y);
- if (point.attributes) {
- this.serializeTags(point, node);
- }
- this.setState(point, node);
- return already_exists ? [] : [node];
- },
- linestring: function(feature) {
- var id;
- var nodes = [];
- var geometry = feature.geometry;
- if (feature.osm_id) {
- id = feature.osm_id;
- } else {
- id = -this.osm_id;
- this.osm_id++;
- }
- var way = this.createElementNS(null, "way");
- way.setAttribute("id", id);
- for (var i = 0; i < geometry.components.length; i++) {
- var node = this.createXML['point'].apply(this, [geometry.components[i]]);
- if (node.length) {
- node = node[0];
- var node_ref = node.getAttribute("id");
- nodes.push(node);
- } else {
- node_ref = geometry.components[i].osm_id;
- node = this.created_nodes[node_ref];
- }
- this.setState(feature, node);
- var nd_dom = this.createElementNS(null, "nd");
- nd_dom.setAttribute("ref", node_ref);
- way.appendChild(nd_dom);
- }
- this.serializeTags(feature, way);
- nodes.push(way);
-
- return nodes;
- },
- polygon: function(feature) {
- var attrs = OpenLayers.Util.extend({'area':'yes'}, feature.attributes);
- var feat = new OpenLayers.Feature.Vector(feature.geometry.components[0], attrs);
- feat.osm_id = feature.osm_id;
- return this.createXML['linestring'].apply(this, [feat]);
- }
- },
-
- /**
- * Method: serializeTags
- * Given a feature, serialize the attributes onto the given node.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- * node - {DOMNode}
- */
- serializeTags: function(feature, node) {
- for (var key in feature.attributes) {
- var tag = this.createElementNS(null, "tag");
- tag.setAttribute("k", key);
- tag.setAttribute("v", feature.attributes[key]);
- node.appendChild(tag);
- }
- },
-
- /**
- * Method: setState
- * OpenStreetMap has a convention that 'state' is stored for modification or deletion.
- * This allows the file to be uploaded via JOSM or the bulk uploader tool.
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- * node - {DOMNode}
- */
- setState: function(feature, node) {
- if (feature.state) {
- var state = null;
- switch(feature.state) {
- case OpenLayers.State.UPDATE:
- state = "modify";
- case OpenLayers.State.DELETE:
- state = "delete";
- }
- if (state) {
- node.setAttribute("action", state);
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.OSM"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js b/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js
deleted file mode 100644
index fd71820..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OWSCommon.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.OWSCommon
- * Read OWSCommon. Create a new instance with the <OpenLayers.Format.OWSCommon>
- * constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.OWSCommon = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.0.0".
- */
- defaultVersion: "1.0.0",
-
- /**
- * Constructor: OpenLayers.Format.OWSCommon
- * Create a new parser for OWSCommon.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: getVersion
- * Returns the version to use. Subclasses can override this function
- * if a different version detection is needed.
- *
- * Parameters:
- * root - {DOMElement}
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} The version to use.
- */
- getVersion: function(root, options) {
- var version = this.version;
- if(!version) {
- // remember version does not correspond to the OWS version
- // it corresponds to the WMS/WFS/WCS etc. request version
- var uri = root.getAttribute("xmlns:ows");
- // the above will fail if the namespace prefix is different than
- // ows and if the namespace is declared on a different element
- if (uri && uri.substring(uri.lastIndexOf("/")+1) === "1.1") {
- version ="1.1.0";
- }
- if(!version) {
- version = this.defaultVersion;
- }
- }
- return version;
- },
-
- /**
- * APIMethod: read
- * Read an OWSCommon document and return an object.
- *
- * Parameters:
- * data - {String | DOMElement} Data to read.
- * options - {Object} Options for the reader.
- *
- * Returns:
- * {Object} An object representing the structure of the document.
- */
-
- CLASS_NAME: "OpenLayers.Format.OWSCommon"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js b/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js
deleted file mode 100644
index 57ae9d2..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1.js
+++ /dev/null
@@ -1,318 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/OWSCommon.js
- */
-
-/**
- * Class: OpenLayers.Format.OWSCommon.v1
- * Common readers and writers for OWSCommon v1.X formats
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.OWSCommon.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {DOMElement} An OWSCommon document element.
- * options - {Object} Options for the reader.
- *
- * Returns:
- * {Object} An object representing the OWSCommon document.
- */
- read: function(data, options) {
- options = OpenLayers.Util.applyDefaults(options, this.options);
- var ows = {};
- this.readChildNodes(data, ows);
- return ows;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ows": {
- "Exception": function(node, exceptionReport) {
- var exception = {
- code: node.getAttribute('exceptionCode'),
- locator: node.getAttribute('locator'),
- texts: []
- };
- exceptionReport.exceptions.push(exception);
- this.readChildNodes(node, exception);
- },
- "ExceptionText": function(node, exception) {
- var text = this.getChildValue(node);
- exception.texts.push(text);
- },
- "ServiceIdentification": function(node, obj) {
- obj.serviceIdentification = {};
- this.readChildNodes(node, obj.serviceIdentification);
- },
- "Title": function(node, obj) {
- obj.title = this.getChildValue(node);
- },
- "Abstract": function(node, serviceIdentification) {
- serviceIdentification["abstract"] = this.getChildValue(node);
- },
- "Keywords": function(node, serviceIdentification) {
- serviceIdentification.keywords = {};
- this.readChildNodes(node, serviceIdentification.keywords);
- },
- "Keyword": function(node, keywords) {
- keywords[this.getChildValue(node)] = true;
- },
- "ServiceType": function(node, serviceIdentification) {
- serviceIdentification.serviceType = {
- codeSpace: node.getAttribute('codeSpace'),
- value: this.getChildValue(node)};
- },
- "ServiceTypeVersion": function(node, serviceIdentification) {
- serviceIdentification.serviceTypeVersion = this.getChildValue(node);
- },
- "Fees": function(node, serviceIdentification) {
- serviceIdentification.fees = this.getChildValue(node);
- },
- "AccessConstraints": function(node, serviceIdentification) {
- serviceIdentification.accessConstraints =
- this.getChildValue(node);
- },
- "ServiceProvider": function(node, obj) {
- obj.serviceProvider = {};
- this.readChildNodes(node, obj.serviceProvider);
- },
- "ProviderName": function(node, serviceProvider) {
- serviceProvider.providerName = this.getChildValue(node);
- },
- "ProviderSite": function(node, serviceProvider) {
- serviceProvider.providerSite = this.getAttributeNS(node,
- this.namespaces.xlink, "href");
- },
- "ServiceContact": function(node, serviceProvider) {
- serviceProvider.serviceContact = {};
- this.readChildNodes(node, serviceProvider.serviceContact);
- },
- "IndividualName": function(node, serviceContact) {
- serviceContact.individualName = this.getChildValue(node);
- },
- "PositionName": function(node, serviceContact) {
- serviceContact.positionName = this.getChildValue(node);
- },
- "ContactInfo": function(node, serviceContact) {
- serviceContact.contactInfo = {};
- this.readChildNodes(node, serviceContact.contactInfo);
- },
- "Phone": function(node, contactInfo) {
- contactInfo.phone = {};
- this.readChildNodes(node, contactInfo.phone);
- },
- "Voice": function(node, phone) {
- phone.voice = this.getChildValue(node);
- },
- "Address": function(node, contactInfo) {
- contactInfo.address = {};
- this.readChildNodes(node, contactInfo.address);
- },
- "DeliveryPoint": function(node, address) {
- address.deliveryPoint = this.getChildValue(node);
- },
- "City": function(node, address) {
- address.city = this.getChildValue(node);
- },
- "AdministrativeArea": function(node, address) {
- address.administrativeArea = this.getChildValue(node);
- },
- "PostalCode": function(node, address) {
- address.postalCode = this.getChildValue(node);
- },
- "Country": function(node, address) {
- address.country = this.getChildValue(node);
- },
- "ElectronicMailAddress": function(node, address) {
- address.electronicMailAddress = this.getChildValue(node);
- },
- "Role": function(node, serviceContact) {
- serviceContact.role = this.getChildValue(node);
- },
- "OperationsMetadata": function(node, obj) {
- obj.operationsMetadata = {};
- this.readChildNodes(node, obj.operationsMetadata);
- },
- "Operation": function(node, operationsMetadata) {
- var name = node.getAttribute("name");
- operationsMetadata[name] = {};
- this.readChildNodes(node, operationsMetadata[name]);
- },
- "DCP": function(node, operation) {
- operation.dcp = {};
- this.readChildNodes(node, operation.dcp);
- },
- "HTTP": function(node, dcp) {
- dcp.http = {};
- this.readChildNodes(node, dcp.http);
- },
- "Get": function(node, http) {
- if (!http.get) {
- http.get = [];
- }
- var obj = {
- url: this.getAttributeNS(node, this.namespaces.xlink, "href")
- };
- this.readChildNodes(node, obj);
- http.get.push(obj);
- },
- "Post": function(node, http) {
- if (!http.post) {
- http.post = [];
- }
- var obj = {
- url: this.getAttributeNS(node, this.namespaces.xlink, "href")
- };
- this.readChildNodes(node, obj);
- http.post.push(obj);
- },
- "Parameter": function(node, operation) {
- if (!operation.parameters) {
- operation.parameters = {};
- }
- var name = node.getAttribute("name");
- operation.parameters[name] = {};
- this.readChildNodes(node, operation.parameters[name]);
- },
- "Constraint": function(node, obj) {
- if (!obj.constraints) {
- obj.constraints = {};
- }
- var name = node.getAttribute("name");
- obj.constraints[name] = {};
- this.readChildNodes(node, obj.constraints[name]);
- },
- "Value": function(node, allowedValues) {
- allowedValues[this.getChildValue(node)] = true;
- },
- "OutputFormat": function(node, obj) {
- obj.formats.push({value: this.getChildValue(node)});
- this.readChildNodes(node, obj);
- },
- "WGS84BoundingBox": function(node, obj) {
- var boundingBox = {};
- boundingBox.crs = node.getAttribute("crs");
- if (obj.BoundingBox) {
- obj.BoundingBox.push(boundingBox);
- } else {
- obj.projection = boundingBox.crs;
- boundingBox = obj;
- }
- this.readChildNodes(node, boundingBox);
- },
- "BoundingBox": function(node, obj) {
- // FIXME: We consider that BoundingBox is the same as WGS84BoundingBox
- // LowerCorner = "min_x min_y"
- // UpperCorner = "max_x max_y"
- // It should normally depend on the projection
- this.readers['ows']['WGS84BoundingBox'].apply(this, [node, obj]);
- },
- "LowerCorner": function(node, obj) {
- var str = this.getChildValue(node).replace(
- this.regExes.trimSpace, "");
- str = str.replace(this.regExes.trimComma, ",");
- var pointList = str.split(this.regExes.splitSpace);
- obj.left = pointList[0];
- obj.bottom = pointList[1];
- },
- "UpperCorner": function(node, obj) {
- var str = this.getChildValue(node).replace(
- this.regExes.trimSpace, "");
- str = str.replace(this.regExes.trimComma, ",");
- var pointList = str.split(this.regExes.splitSpace);
- obj.right = pointList[0];
- obj.top = pointList[1];
- obj.bounds = new OpenLayers.Bounds(obj.left, obj.bottom,
- obj.right, obj.top);
- delete obj.left;
- delete obj.bottom;
- delete obj.right;
- delete obj.top;
- },
- "Language": function(node, obj) {
- obj.language = this.getChildValue(node);
- }
- }
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "ows": {
- "BoundingBox": function(options, nodeName) {
- var node = this.createElementNSPlus(nodeName || "ows:BoundingBox", {
- attributes: {
- crs: options.projection
- }
- });
- this.writeNode("ows:LowerCorner", options, node);
- this.writeNode("ows:UpperCorner", options, node);
- return node;
- },
- "LowerCorner": function(options) {
- var node = this.createElementNSPlus("ows:LowerCorner", {
- value: options.bounds.left + " " + options.bounds.bottom });
- return node;
- },
- "UpperCorner": function(options) {
- var node = this.createElementNSPlus("ows:UpperCorner", {
- value: options.bounds.right + " " + options.bounds.top });
- return node;
- },
- "Identifier": function(identifier) {
- var node = this.createElementNSPlus("ows:Identifier", {
- value: identifier });
- return node;
- },
- "Title": function(title) {
- var node = this.createElementNSPlus("ows:Title", {
- value: title });
- return node;
- },
- "Abstract": function(abstractValue) {
- var node = this.createElementNSPlus("ows:Abstract", {
- value: abstractValue });
- return node;
- },
- "OutputFormat": function(format) {
- var node = this.createElementNSPlus("ows:OutputFormat", {
- value: format });
- return node;
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.OWSCommon.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
deleted file mode 100644
index bc9852d..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_0_0.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/OWSCommon/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.OWSCommon.v1_0_0
- * Parser for OWS Common version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.OWSCommon.v1>
- */
-OpenLayers.Format.OWSCommon.v1_0_0 = OpenLayers.Class(OpenLayers.Format.OWSCommon.v1, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows",
- xlink: "http://www.w3.org/1999/xlink"
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ows": OpenLayers.Util.applyDefaults({
- "ExceptionReport": function(node, obj) {
- obj.success = false;
- obj.exceptionReport = {
- version: node.getAttribute('version'),
- language: node.getAttribute('language'),
- exceptions: []
- };
- this.readChildNodes(node, obj.exceptionReport);
- }
- }, OpenLayers.Format.OWSCommon.v1.prototype.readers.ows)
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "ows": OpenLayers.Format.OWSCommon.v1.prototype.writers.ows
- },
-
- CLASS_NAME: "OpenLayers.Format.OWSCommon.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
deleted file mode 100644
index 9da216c..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OWSCommon/v1_1_0.js
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/OWSCommon/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.OWSCommon.v1_1_0
- * Parser for OWS Common version 1.1.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.OWSCommon.v1>
- */
-OpenLayers.Format.OWSCommon.v1_1_0 = OpenLayers.Class(OpenLayers.Format.OWSCommon.v1, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows/1.1",
- xlink: "http://www.w3.org/1999/xlink"
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "ows": OpenLayers.Util.applyDefaults({
- "ExceptionReport": function(node, obj) {
- obj.exceptionReport = {
- version: node.getAttribute('version'),
- language: node.getAttribute('xml:lang'),
- exceptions: []
- };
- this.readChildNodes(node, obj.exceptionReport);
- },
- "AllowedValues": function(node, parameter) {
- parameter.allowedValues = {};
- this.readChildNodes(node, parameter.allowedValues);
- },
- "AnyValue": function(node, parameter) {
- parameter.anyValue = true;
- },
- "DataType": function(node, parameter) {
- parameter.dataType = this.getChildValue(node);
- },
- "Range": function(node, allowedValues) {
- allowedValues.range = {};
- this.readChildNodes(node, allowedValues.range);
- },
- "MinimumValue": function(node, range) {
- range.minValue = this.getChildValue(node);
- },
- "MaximumValue": function(node, range) {
- range.maxValue = this.getChildValue(node);
- },
- "Identifier": function(node, obj) {
- obj.identifier = this.getChildValue(node);
- },
- "SupportedCRS": function(node, obj) {
- obj.supportedCRS = this.getChildValue(node);
- }
- }, OpenLayers.Format.OWSCommon.v1.prototype.readers["ows"])
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "ows": OpenLayers.Util.applyDefaults({
- "Range": function(range) {
- var node = this.createElementNSPlus("ows:Range", {
- attributes: {
- 'ows:rangeClosure': range.closure
- }
- });
- this.writeNode("ows:MinimumValue", range.minValue, node);
- this.writeNode("ows:MaximumValue", range.maxValue, node);
- return node;
- },
- "MinimumValue": function(minValue) {
- var node = this.createElementNSPlus("ows:MinimumValue", {
- value: minValue
- });
- return node;
- },
- "MaximumValue": function(maxValue) {
- var node = this.createElementNSPlus("ows:MaximumValue", {
- value: maxValue
- });
- return node;
- },
- "Value": function(value) {
- var node = this.createElementNSPlus("ows:Value", {
- value: value
- });
- return node;
- }
- }, OpenLayers.Format.OWSCommon.v1.prototype.writers["ows"])
- },
-
- CLASS_NAME: "OpenLayers.Format.OWSCommon.v1_1_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OWSContext.js b/misc/openlayers/lib/OpenLayers/Format/OWSContext.js
deleted file mode 100644
index ab38734..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OWSContext.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/Context.js
- */
-
-/**
- * Class: OpenLayers.Format.OWSContext
- * Read and write OWS Context documents. OWS Context documents are a
- * preliminary OGC (Open Geospatial Consortium) standard for storing the
- * state of a web mapping application. In a way it is the successor to
- * Web Map Context (WMC), since it is more generic and more types of layers
- * can be stored. Also, nesting of layers is supported since version 0.3.1.
- * For more information see: http://www.ogcnetwork.net/context
- *
- * Inherits from:
- * - <OpenLayers.Format.Context>
- */
-OpenLayers.Format.OWSContext = OpenLayers.Class(OpenLayers.Format.Context,{
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "0.3.1".
- */
- defaultVersion: "0.3.1",
-
- /**
- * Constructor: OpenLayers.Format.OWSContext
- * Create a new parser for OWS Context documents.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: getVersion
- * Returns the version to use. Subclasses can override this function
- * if a different version detection is needed.
- *
- * Parameters:
- * root - {DOMElement}
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} The version to use.
- */
- getVersion: function(root, options) {
- var version = OpenLayers.Format.XML.VersionedOGC.prototype.getVersion.apply(
- this, arguments);
- // 0.3.1 is backwards compatible with 0.3.0
- if (version === "0.3.0") {
- version = this.defaultVersion;
- }
- return version;
- },
-
- /**
- * Method: toContext
- * Create a context object free from layer given a map or a
- * context object.
- *
- * Parameters:
- * obj - {<OpenLayers.Map> | Object} The map or context.
- *
- * Returns:
- * {Object} A context object.
- */
- toContext: function(obj) {
- var context = {};
- if(obj.CLASS_NAME == "OpenLayers.Map") {
- context.bounds = obj.getExtent();
- context.maxExtent = obj.maxExtent;
- context.projection = obj.projection;
- context.size = obj.getSize();
- context.layers = obj.layers;
- }
- return context;
- },
-
- CLASS_NAME: "OpenLayers.Format.OWSContext"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js b/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js
deleted file mode 100644
index d6487e8..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/OWSContext/v0_3_1.js
+++ /dev/null
@@ -1,595 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/KML.js
- * @requires OpenLayers/Format/GML.js
- * @requires OpenLayers/Format/GML/v2.js
- * @requires OpenLayers/Format/SLD/v1_0_0.js
- * @requires OpenLayers/Format/OWSContext.js
- * @requires OpenLayers/Format/OWSCommon/v1_0_0.js
- */
-
-/**
- * Class: OpenLayers.Format.OWSContext.v0_3_1
- * Read and write OWSContext version 0.3.1.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.OWSContext.v0_3_1 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- owc: "http://www.opengis.net/ows-context",
- gml: "http://www.opengis.net/gml",
- kml: "http://www.opengis.net/kml/2.2",
- ogc: "http://www.opengis.net/ogc",
- ows: "http://www.opengis.net/ows",
- sld: "http://www.opengis.net/sld",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Constant: VERSION
- * {String} 0.3.1
- */
- VERSION: "0.3.1",
-
- /**
- * Property: schemaLocation
- * {String} Schema location
- */
- schemaLocation: "http://www.opengis.net/ows-context http://www.ogcnetwork.net/schemas/owc/0.3.1/owsContext.xsd",
-
- /**
- * Property: defaultPrefix
- * {String} Default namespace prefix to use.
- */
- defaultPrefix: "owc",
-
- /**
- * APIProperty: extractAttributes
- * {Boolean} Extract attributes from GML. Default is true.
- */
- extractAttributes: true,
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x)
- * Changing is not recommended, a new Format should be instantiated.
- */
- xy: true,
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Property: featureNS
- * {String} The namespace uri to use for writing InlineGeometry
- */
- featureNS: "http://mapserver.gis.umn.edu/mapserver",
-
- /**
- * Property: featureType
- * {String} The name to use as the feature type when writing out
- * InlineGeometry
- */
- featureType: 'vector',
-
- /**
- * Property: geometryName
- * {String} The name to use for the geometry attribute when writing out
- * InlineGeometry
- */
- geometryName: 'geometry',
-
- /**
- * Property: nestingLayerLookup
- * {Object} Hashtable lookup for nesting layer nodes. Used while writing
- * the OWS context document. It is necessary to keep track of the
- * nestingPaths for which nesting layer nodes have already been
- * created, so (nesting) layer nodes are added to those nodes.
- *
- * For example:
- *
- * If there are three layers with nestingPaths:
- * layer1.metadata.nestingPath = "a/b/"
- * layer2.metadata.nestingPath = "a/b/"
- * layer2.metadata.nestingPath = "a/c"
- *
- * then a nesting layer node "a" should be created once and added
- * to the resource list, a nesting layer node "b" should be created
- * once and added under "a", and a nesting layer node "c" should be
- * created and added under "a". The lookup paths for these nodes
- * will be "a", "a/b", and "a/c" respectively.
- */
- nestingLayerLookup: null,
-
- /**
- * Constructor: OpenLayers.Format.OWSContext.v0_3_1
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.OWSContext> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- OpenLayers.Format.GML.v2.prototype.setGeometryTypes.call(this);
- },
-
- /**
- * Method: setNestingPath
- * Set the nestingPath property of the layer depending on the position
- * of the layer in hierarchy of layers.
- *
- * Parameters:
- * l - {Object} An object that may have a layersContext array property.
- *
- */
- setNestingPath : function(l){
- if(l.layersContext){
- for (var i = 0, len = l.layersContext.length; i < len; i++) {
- var layerContext = l.layersContext[i];
- var nPath = [];
- var nTitle = l.title || "";
- if(l.metadata && l.metadata.nestingPath){
- nPath = l.metadata.nestingPath.slice();
- }
- if (nTitle != "") {
- nPath.push(nTitle);
- }
- layerContext.metadata.nestingPath = nPath;
- if(layerContext.layersContext){
- this.setNestingPath(layerContext);
- }
- }
- }
- },
-
- /**
- * Function: decomposeNestingPath
- * Takes a nestingPath like "a/b/c" and decomposes it into subpaths:
- * "a", "a/b", "a/b/c"
- *
- * Parameters:
- * nPath - {Array} the nesting path
- *
- * Returns:
- * Array({String}) Array with subpaths, or empty array if there is nothing
- * to decompose
- */
- decomposeNestingPath: function(nPath){
- var a = [];
- if (OpenLayers.Util.isArray(nPath)) {
- var path = nPath.slice();
- while (path.length > 0) {
- a.push(path.slice());
- path.pop();
- }
- a.reverse();
- }
- return a;
- },
-
- /**
- * APIMethod: read
- * Read OWS context data from a string or DOMElement, and return a list
- * of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} The context object with a flat layer list as a property named
- * layersContext.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var context = {};
- this.readNode(data, context);
- // since an OWSContext can be nested we need to go through this
- // structure recursively
- this.setNestingPath({layersContext : context.layersContext});
- // after nesting path has been set, create a flat list of layers
- var layers = [];
- this.processLayer(layers, context);
- delete context.layersContext;
- context.layersContext = layers;
- return context;
- },
-
- /**
- * Method: processLayer
- * Recursive function to get back a flat list of layers from the hierarchic
- * layer structure.
- *
- * Parameters:
- * layerArray - {Array({Object})} Array of layerContext objects
- * layer - {Object} layerContext object
- */
- processLayer: function(layerArray, layer) {
- if (layer.layersContext) {
- for (var i=0, len = layer.layersContext.length; i<len; i++) {
- var l = layer.layersContext[i];
- layerArray.push(l);
- if (l.layersContext) {
- this.processLayer(layerArray, l);
- }
- }
- }
- },
-
- /**
- * APIMethod: write
- *
- * Parameters:
- * context - {Object} An object representing the map context.
- * options - {Object} Optional object.
- *
- * Returns:
- * {String} An OWS Context document string.
- */
- write: function(context, options) {
- var name = "OWSContext";
- this.nestingLayerLookup = {}; //start with empty lookup
- options = options || {};
- OpenLayers.Util.applyDefaults(options, context);
- var root = this.writeNode(name, options);
- this.nestingLayerLookup = null; //clear lookup
- this.setAttributeNS(
- root, this.namespaces["xsi"],
- "xsi:schemaLocation", this.schemaLocation
- );
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "kml": {
- "Document": function(node, obj) {
- obj.features = new OpenLayers.Format.KML(
- {kmlns: this.namespaces.kml,
- extractStyles: true}).read(node);
- }
- },
- "owc": {
- "OWSContext": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "General": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "ResourceList": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Layer": function(node, obj) {
- var layerContext = {
- metadata: {},
- visibility: (node.getAttribute("hidden") != "1"),
- queryable: (node.getAttribute("queryable") == "1"),
- opacity: ((node.getAttribute("opacity") != null) ?
- parseFloat(node.getAttribute("opacity")) : null),
- name: node.getAttribute("name"),
- /* A category layer is a dummy layer meant for creating
- hierarchies. It is not a physical layer in the
- OpenLayers sense. The assumption we make here is that
- category layers do not have a name attribute */
- categoryLayer: (node.getAttribute("name") == null),
- formats: [],
- styles: []
- };
- if (!obj.layersContext) {
- obj.layersContext = [];
- }
- obj.layersContext.push(layerContext);
- this.readChildNodes(node, layerContext);
- },
- "InlineGeometry": function(node, obj) {
- obj.features = [];
- var elements = this.getElementsByTagNameNS(node,
- this.namespaces.gml, "featureMember");
- var el;
- if (elements.length >= 1) {
- el = elements[0];
- }
- if (el && el.firstChild) {
- var featurenode = (el.firstChild.nextSibling) ?
- el.firstChild.nextSibling : el.firstChild;
- this.setNamespace("feature", featurenode.namespaceURI);
- this.featureType = featurenode.localName ||
- featurenode.nodeName.split(":").pop();
- this.readChildNodes(node, obj);
- }
- },
- "Server": function(node, obj) {
- // when having multiple Server types, we prefer WMS
- if ((!obj.service && !obj.version) ||
- (obj.service !=
- OpenLayers.Format.Context.serviceTypes.WMS)) {
- obj.service = node.getAttribute("service");
- obj.version = node.getAttribute("version");
- this.readChildNodes(node, obj);
- }
- },
- "Name": function(node, obj) {
- obj.name = this.getChildValue(node);
- this.readChildNodes(node, obj);
- },
- "Title": function(node, obj) {
- obj.title = this.getChildValue(node);
- this.readChildNodes(node, obj);
- },
- "StyleList": function(node, obj) {
- this.readChildNodes(node, obj.styles);
- },
- "Style": function(node, obj) {
- var style = {};
- obj.push(style);
- this.readChildNodes(node, style);
- },
- "LegendURL": function(node, obj) {
- var legend = {};
- obj.legend = legend;
- this.readChildNodes(node, legend);
- },
- "OnlineResource": function(node, obj) {
- obj.url = this.getAttributeNS(node, this.namespaces.xlink,
- "href");
- this.readChildNodes(node, obj);
- }
- },
- "ows": OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers.ows,
- "gml": OpenLayers.Format.GML.v2.prototype.readers.gml,
- "sld": OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld,
- "feature": OpenLayers.Format.GML.v2.prototype.readers.feature
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "owc": {
- "OWSContext": function(options) {
- var node = this.createElementNSPlus("OWSContext", {
- attributes: {
- version: this.VERSION,
- id: options.id || OpenLayers.Util.createUniqueID("OpenLayers_OWSContext_")
- }
- });
- this.writeNode("General", options, node);
- this.writeNode("ResourceList", options, node);
- return node;
- },
- "General": function(options) {
- var node = this.createElementNSPlus("General");
- this.writeNode("ows:BoundingBox", options, node);
- this.writeNode("ows:Title", options.title || 'OpenLayers OWSContext', node);
- return node;
- },
- "ResourceList": function(options) {
- var node = this.createElementNSPlus("ResourceList");
- for (var i=0, len=options.layers.length; i<len; i++) {
- var layer = options.layers[i];
- var decomposedPath = this.decomposeNestingPath(layer.metadata.nestingPath);
- this.writeNode("_Layer", {layer: layer, subPaths: decomposedPath}, node);
- }
- return node;
- },
- "Server": function(options) {
- var node = this.createElementNSPlus("Server", {attributes: {
- version: options.version,
- service: options.service }
- });
- this.writeNode("OnlineResource", options, node);
- return node;
- },
- "OnlineResource": function(options) {
- var node = this.createElementNSPlus("OnlineResource", {attributes: {
- "xlink:href": options.url }
- });
- return node;
- },
- "InlineGeometry": function(layer) {
- var node = this.createElementNSPlus("InlineGeometry"),
- dataExtent = layer.getDataExtent();
- if (dataExtent !== null) {
- this.writeNode("gml:boundedBy", dataExtent, node);
- }
- for (var i=0, len=layer.features.length; i<len; i++) {
- this.writeNode("gml:featureMember", layer.features[i], node);
- }
- return node;
- },
- "StyleList": function(styles) {
- var node = this.createElementNSPlus("StyleList");
- for (var i=0, len=styles.length; i<len; i++) {
- this.writeNode("Style", styles[i], node);
- }
- return node;
- },
- "Style": function(style) {
- var node = this.createElementNSPlus("Style");
- this.writeNode("Name", style, node);
- this.writeNode("Title", style, node);
- if (style.legend) {
- this.writeNode("LegendURL", style, node);
- }
- return node;
- },
- "Name": function(obj) {
- var node = this.createElementNSPlus("Name", {
- value: obj.name });
- return node;
- },
- "Title": function(obj) {
- var node = this.createElementNSPlus("Title", {
- value: obj.title });
- return node;
- },
- "LegendURL": function(style) {
- var node = this.createElementNSPlus("LegendURL");
- this.writeNode("OnlineResource", style.legend, node);
- return node;
- },
- "_WMS": function(layer) {
- var node = this.createElementNSPlus("Layer", {attributes: {
- name: layer.params.LAYERS,
- queryable: layer.queryable ? "1" : "0",
- hidden: layer.visibility ? "0" : "1",
- opacity: layer.hasOwnProperty("opacity") ? layer.opacity : null}
- });
- this.writeNode("ows:Title", layer.name, node);
- this.writeNode("ows:OutputFormat", layer.params.FORMAT, node);
- this.writeNode("Server", {service:
- OpenLayers.Format.Context.serviceTypes.WMS,
- version: layer.params.VERSION, url: layer.url}, node);
- if (layer.metadata.styles && layer.metadata.styles.length > 0) {
- this.writeNode("StyleList", layer.metadata.styles, node);
- }
- return node;
- },
- "_Layer": function(options) {
- var layer, subPaths, node, title;
- layer = options.layer;
- subPaths = options.subPaths;
- node = null;
- title = null;
- // subPaths is an array of an array
- // recursively calling _Layer writer eats up subPaths, until a
- // real writer is called and nodes are returned.
- if(subPaths.length > 0){
- var path = subPaths[0].join("/");
- var index = path.lastIndexOf("/");
- node = this.nestingLayerLookup[path];
- title = (index > 0)?path.substring(index + 1, path.length):path;
- if(!node){
- // category layer
- node = this.createElementNSPlus("Layer");
- this.writeNode("ows:Title", title, node);
- this.nestingLayerLookup[path] = node;
- }
- options.subPaths.shift();//remove a path after each call
- this.writeNode("_Layer", options, node);
- return node;
- } else {
- // write out the actual layer
- if (layer instanceof OpenLayers.Layer.WMS) {
- node = this.writeNode("_WMS", layer);
- } else if (layer instanceof OpenLayers.Layer.Vector) {
- if (layer.protocol instanceof OpenLayers.Protocol.WFS.v1) {
- node = this.writeNode("_WFS", layer);
- } else if (layer.protocol instanceof OpenLayers.Protocol.HTTP) {
- if (layer.protocol.format instanceof OpenLayers.Format.GML) {
- layer.protocol.format.version = "2.1.2";
- node = this.writeNode("_GML", layer);
- } else if (layer.protocol.format instanceof OpenLayers.Format.KML) {
- layer.protocol.format.version = "2.2";
- node = this.writeNode("_KML", layer);
- }
- } else {
- // write out as inline GML since we have no idea
- // about the original Format
- this.setNamespace("feature", this.featureNS);
- node = this.writeNode("_InlineGeometry", layer);
- }
- }
- if (layer.options.maxScale) {
- this.writeNode("sld:MinScaleDenominator",
- layer.options.maxScale, node);
- }
- if (layer.options.minScale) {
- this.writeNode("sld:MaxScaleDenominator",
- layer.options.minScale, node);
- }
- this.nestingLayerLookup[layer.name] = node;
- return node;
- }
- },
- "_WFS": function(layer) {
- var node = this.createElementNSPlus("Layer", {attributes: {
- name: layer.protocol.featurePrefix + ":" + layer.protocol.featureType,
- hidden: layer.visibility ? "0" : "1" }
- });
- this.writeNode("ows:Title", layer.name, node);
- this.writeNode("Server", {service:
- OpenLayers.Format.Context.serviceTypes.WFS,
- version: layer.protocol.version,
- url: layer.protocol.url}, node);
- return node;
- },
- "_InlineGeometry": function(layer) {
- var node = this.createElementNSPlus("Layer", {attributes: {
- name: this.featureType,
- hidden: layer.visibility ? "0" : "1" }
- });
- this.writeNode("ows:Title", layer.name, node);
- this.writeNode("InlineGeometry", layer, node);
- return node;
- },
- "_GML": function(layer) {
- var node = this.createElementNSPlus("Layer");
- this.writeNode("ows:Title", layer.name, node);
- this.writeNode("Server", {service:
- OpenLayers.Format.Context.serviceTypes.GML,
- url: layer.protocol.url, version:
- layer.protocol.format.version}, node);
- return node;
- },
- "_KML": function(layer) {
- var node = this.createElementNSPlus("Layer");
- this.writeNode("ows:Title", layer.name, node);
- this.writeNode("Server", {service:
- OpenLayers.Format.Context.serviceTypes.KML,
- version: layer.protocol.format.version, url:
- layer.protocol.url}, node);
- return node;
- }
- },
- "gml": OpenLayers.Util.applyDefaults({
- "boundedBy": function(bounds) {
- var node = this.createElementNSPlus("gml:boundedBy");
- this.writeNode("gml:Box", bounds, node);
- return node;
- }
- }, OpenLayers.Format.GML.v2.prototype.writers.gml),
- "ows": OpenLayers.Format.OWSCommon.v1_0_0.prototype.writers.ows,
- "sld": OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld,
- "feature": OpenLayers.Format.GML.v2.prototype.writers.feature
- },
-
- CLASS_NAME: "OpenLayers.Format.OWSContext.v0_3_1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js b/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js
deleted file mode 100644
index e33f722..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/QueryStringFilter.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Console.js
- * @requires OpenLayers/Format.js
- * @requires OpenLayers/Filter/Spatial.js
- * @requires OpenLayers/Filter/Comparison.js
- * @requires OpenLayers/Filter/Logical.js
- */
-
-/**
- * Class: OpenLayers.Format.QueryStringFilter
- * Parser for reading a query string and creating a simple filter.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.QueryStringFilter = (function() {
-
- /**
- * Map the OpenLayers.Filter.Comparison types to the operation strings of
- * the protocol.
- */
- var cmpToStr = {};
- cmpToStr[OpenLayers.Filter.Comparison.EQUAL_TO] = "eq";
- cmpToStr[OpenLayers.Filter.Comparison.NOT_EQUAL_TO] = "ne";
- cmpToStr[OpenLayers.Filter.Comparison.LESS_THAN] = "lt";
- cmpToStr[OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO] = "lte";
- cmpToStr[OpenLayers.Filter.Comparison.GREATER_THAN] = "gt";
- cmpToStr[OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO] = "gte";
- cmpToStr[OpenLayers.Filter.Comparison.LIKE] = "ilike";
-
- /**
- * Function: regex2value
- * Convert the value from a regular expression string to a LIKE/ILIKE
- * string known to the web service.
- *
- * Parameters:
- * value - {String} The regex string.
- *
- * Returns:
- * {String} The converted string.
- */
- function regex2value(value) {
-
- // highly sensitive!! Do not change this without running the
- // Protocol/HTTP.html unit tests
-
- // convert % to \%
- value = value.replace(/%/g, "\\%");
-
- // convert \\. to \\_ (\\.* occurences converted later)
- value = value.replace(/\\\\\.(\*)?/g, function($0, $1) {
- return $1 ? $0 : "\\\\_";
- });
-
- // convert \\.* to \\%
- value = value.replace(/\\\\\.\*/g, "\\\\%");
-
- // convert . to _ (\. and .* occurences converted later)
- value = value.replace(/(\\)?\.(\*)?/g, function($0, $1, $2) {
- return $1 || $2 ? $0 : "_";
- });
-
- // convert .* to % (\.* occurnces converted later)
- value = value.replace(/(\\)?\.\*/g, function($0, $1) {
- return $1 ? $0 : "%";
- });
-
- // convert \. to .
- value = value.replace(/\\\./g, ".");
-
- // replace \* with * (watching out for \\*)
- value = value.replace(/(\\)?\\\*/g, function($0, $1) {
- return $1 ? $0 : "*";
- });
-
- return value;
- }
-
- return OpenLayers.Class(OpenLayers.Format, {
-
- /**
- * Property: wildcarded.
- * {Boolean} If true percent signs are added around values
- * read from LIKE filters, for example if the protocol
- * read method is passed a LIKE filter whose property
- * is "foo" and whose value is "bar" the string
- * "foo__ilike=%bar%" will be sent in the query string;
- * defaults to false.
- */
- wildcarded: false,
-
- /**
- * APIProperty: srsInBBOX
- * {Boolean} Include the SRS identifier in BBOX query string parameter.
- * Default is false. If true and the layer has a projection object set,
- * any BBOX filter will be serialized with a fifth item identifying the
- * projection. E.g. bbox=-1000,-1000,1000,1000,EPSG:900913
- */
- srsInBBOX: false,
-
- /**
- * APIMethod: write
- * Serialize an <OpenLayers.Filter> objects using the "simple" filter syntax for
- * query string parameters. This function must be called as a method of
- * a protocol instance.
- *
- * Parameters:
- * filter - {<OpenLayers.Filter>} filter to convert.
- * params - {Object} The parameters object.
- *
- * Returns:
- * {Object} The resulting parameters object.
- */
- write: function(filter, params) {
- params = params || {};
- var className = filter.CLASS_NAME;
- var filterType = className.substring(className.lastIndexOf(".") + 1);
- switch (filterType) {
- case "Spatial":
- switch (filter.type) {
- case OpenLayers.Filter.Spatial.BBOX:
- params.bbox = filter.value.toArray();
- if (this.srsInBBOX && filter.projection) {
- params.bbox.push(filter.projection.getCode());
- }
- break;
- case OpenLayers.Filter.Spatial.DWITHIN:
- params.tolerance = filter.distance;
- // no break here
- case OpenLayers.Filter.Spatial.WITHIN:
- params.lon = filter.value.x;
- params.lat = filter.value.y;
- break;
- default:
- OpenLayers.Console.warn(
- "Unknown spatial filter type " + filter.type);
- }
- break;
- case "Comparison":
- var op = cmpToStr[filter.type];
- if (op !== undefined) {
- var value = filter.value;
- if (filter.type == OpenLayers.Filter.Comparison.LIKE) {
- value = regex2value(value);
- if (this.wildcarded) {
- value = "%" + value + "%";
- }
- }
- params[filter.property + "__" + op] = value;
- params.queryable = params.queryable || [];
- params.queryable.push(filter.property);
- } else {
- OpenLayers.Console.warn(
- "Unknown comparison filter type " + filter.type);
- }
- break;
- case "Logical":
- if (filter.type === OpenLayers.Filter.Logical.AND) {
- for (var i=0,len=filter.filters.length; i<len; i++) {
- params = this.write(filter.filters[i], params);
- }
- } else {
- OpenLayers.Console.warn(
- "Unsupported logical filter type " + filter.type);
- }
- break;
- default:
- OpenLayers.Console.warn("Unknown filter type " + filterType);
- }
- return params;
- },
-
- CLASS_NAME: "OpenLayers.Format.QueryStringFilter"
-
- });
-
-
-})();
diff --git a/misc/openlayers/lib/OpenLayers/Format/SLD.js b/misc/openlayers/lib/OpenLayers/Format/SLD.js
deleted file mode 100644
index 56e59d0..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SLD.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- * @requires OpenLayers/Style.js
- * @requires OpenLayers/Rule.js
- * @requires OpenLayers/Filter/FeatureId.js
- * @requires OpenLayers/Filter/Logical.js
- * @requires OpenLayers/Filter/Comparison.js
- * @requires OpenLayers/Filter/Spatial.js
- */
-
-/**
- * Class: OpenLayers.Format.SLD
- * Read/Write SLD. Create a new instance with the <OpenLayers.Format.SLD>
- * constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.SLD = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: profile
- * {String} If provided, use a custom profile.
- *
- * Currently supported profiles:
- * - GeoServer - parses GeoServer vendor specific capabilities for SLD.
- */
- profile: null,
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.0.0".
- */
- defaultVersion: "1.0.0",
-
- /**
- * APIProperty: stringifyOutput
- * {Boolean} If true, write will return a string otherwise a DOMElement.
- * Default is true.
- */
- stringifyOutput: true,
-
- /**
- * APIProperty: namedLayersAsArray
- * {Boolean} Generate a namedLayers array. If false, the namedLayers
- * property value will be an object keyed by layer name. Default is
- * false.
- */
- namedLayersAsArray: false,
-
- /**
- * APIMethod: write
- * Write a SLD document given a list of styles.
- *
- * Parameters:
- * sld - {Object} An object representing the SLD.
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} An SLD document string.
- */
-
- /**
- * APIMethod: read
- * Read and SLD doc and return an object representing the SLD.
- *
- * Parameters:
- * data - {String | DOMElement} Data to read.
- * options - {Object} Options for the reader.
- *
- * Returns:
- * {Object} An object representing the SLD.
- */
-
- CLASS_NAME: "OpenLayers.Format.SLD"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js b/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js
deleted file mode 100644
index c43bac4..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SLD/v1.js
+++ /dev/null
@@ -1,1309 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Rule.js
- * @requires OpenLayers/Format/SLD.js
- * @requires OpenLayers/Format/Filter/v1_0_0.js
- * @requires OpenLayers/Symbolizer/Point.js
- * @requires OpenLayers/Symbolizer/Line.js
- * @requires OpenLayers/Symbolizer/Polygon.js
- * @requires OpenLayers/Symbolizer/Text.js
- * @requires OpenLayers/Symbolizer/Raster.js
- */
-
-/**
- * Class: OpenLayers.Format.SLD.v1
- * Superclass for SLD version 1 parsers.
- *
- * Inherits from:
- * - <OpenLayers.Format.Filter.v1_0_0>
- */
-OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- sld: "http://www.opengis.net/sld",
- ogc: "http://www.opengis.net/ogc",
- gml: "http://www.opengis.net/gml",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "sld",
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocation: null,
-
- /**
- * APIProperty: multipleSymbolizers
- * {Boolean} Support multiple symbolizers per rule. Default is false. if
- * true, an OpenLayers.Style2 instance will be created to represent
- * user styles instead of an OpenLayers.Style instace. The
- * OpenLayers.Style2 class allows collections of rules with multiple
- * symbolizers, but is not currently useful for client side rendering.
- * If multiple symbolizers is true, multiple FeatureTypeStyle elements
- * are preserved in reading/writing by setting symbolizer zIndex values.
- * In addition, the <defaultSymbolizer> property is ignored if
- * multiple symbolizers are supported (defaults should be applied
- * when rendering).
- */
- multipleSymbolizers: false,
-
- /**
- * Property: featureTypeCounter
- * {Number} Private counter for multiple feature type styles.
- */
- featureTypeCounter: null,
-
- /**
- * APIProperty: defaultSymbolizer.
- * {Object} A symbolizer with the SLD defaults.
- */
- defaultSymbolizer: {
- fillColor: "#808080",
- fillOpacity: 1,
- strokeColor: "#000000",
- strokeOpacity: 1,
- strokeWidth: 1,
- strokeDashstyle: "solid",
- pointRadius: 3,
- graphicName: "square"
- },
-
- /**
- * Constructor: OpenLayers.Format.SLD.v1
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.SLD> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {DOMElement} An SLD document element.
- * options - {Object} Options for the reader.
- *
- * Valid options:
- * namedLayersAsArray - {Boolean} Generate a namedLayers array. If false,
- * the namedLayers property value will be an object keyed by layer name.
- * Default is false.
- *
- * Returns:
- * {Object} An object representing the SLD.
- */
- read: function(data, options) {
- options = OpenLayers.Util.applyDefaults(options, this.options);
- var sld = {
- namedLayers: options.namedLayersAsArray === true ? [] : {}
- };
- this.readChildNodes(data, sld);
- return sld;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: OpenLayers.Util.applyDefaults({
- "sld": {
- "StyledLayerDescriptor": function(node, sld) {
- sld.version = node.getAttribute("version");
- this.readChildNodes(node, sld);
- },
- "Name": function(node, obj) {
- obj.name = this.getChildValue(node);
- },
- "Title": function(node, obj) {
- obj.title = this.getChildValue(node);
- },
- "Abstract": function(node, obj) {
- obj.description = this.getChildValue(node);
- },
- "NamedLayer": function(node, sld) {
- var layer = {
- userStyles: [],
- namedStyles: []
- };
- this.readChildNodes(node, layer);
- // give each of the user styles this layer name
- for(var i=0, len=layer.userStyles.length; i<len; ++i) {
- layer.userStyles[i].layerName = layer.name;
- }
- if(OpenLayers.Util.isArray(sld.namedLayers)) {
- sld.namedLayers.push(layer);
- } else {
- sld.namedLayers[layer.name] = layer;
- }
- },
- "NamedStyle": function(node, layer) {
- layer.namedStyles.push(
- this.getChildName(node.firstChild)
- );
- },
- "UserStyle": function(node, layer) {
- var obj = {defaultsPerSymbolizer: true, rules: []};
- this.featureTypeCounter = -1;
- this.readChildNodes(node, obj);
- var style;
- if (this.multipleSymbolizers) {
- delete obj.defaultsPerSymbolizer;
- style = new OpenLayers.Style2(obj);
- } else {
- style = new OpenLayers.Style(this.defaultSymbolizer, obj);
- }
- layer.userStyles.push(style);
- },
- "IsDefault": function(node, style) {
- if(this.getChildValue(node) == "1") {
- style.isDefault = true;
- }
- },
- "FeatureTypeStyle": function(node, style) {
- ++this.featureTypeCounter;
- var obj = {
- rules: this.multipleSymbolizers ? style.rules : []
- };
- this.readChildNodes(node, obj);
- if (!this.multipleSymbolizers) {
- style.rules = obj.rules;
- }
- },
- "Rule": function(node, obj) {
- var config;
- if (this.multipleSymbolizers) {
- config = {symbolizers: []};
- }
- var rule = new OpenLayers.Rule(config);
- this.readChildNodes(node, rule);
- obj.rules.push(rule);
- },
- "ElseFilter": function(node, rule) {
- rule.elseFilter = true;
- },
- "MinScaleDenominator": function(node, rule) {
- rule.minScaleDenominator = parseFloat(this.getChildValue(node));
- },
- "MaxScaleDenominator": function(node, rule) {
- rule.maxScaleDenominator = parseFloat(this.getChildValue(node));
- },
- "TextSymbolizer": function(node, rule) {
- var config = {};
- this.readChildNodes(node, config);
- if (this.multipleSymbolizers) {
- config.zIndex = this.featureTypeCounter;
- rule.symbolizers.push(
- new OpenLayers.Symbolizer.Text(config)
- );
- } else {
- rule.symbolizer["Text"] = OpenLayers.Util.applyDefaults(
- config, rule.symbolizer["Text"]
- );
- }
- },
- "LabelPlacement": function(node, symbolizer) {
- this.readChildNodes(node, symbolizer);
- },
- "PointPlacement": function(node, symbolizer) {
- var config = {};
- this.readChildNodes(node, config);
- config.labelRotation = config.rotation;
- delete config.rotation;
- var labelAlign,
- x = symbolizer.labelAnchorPointX,
- y = symbolizer.labelAnchorPointY;
- if (x <= 1/3) {
- labelAlign = 'l';
- } else if (x > 1/3 && x < 2/3) {
- labelAlign = 'c';
- } else if (x >= 2/3) {
- labelAlign = 'r';
- }
- if (y <= 1/3) {
- labelAlign += 'b';
- } else if (y > 1/3 && y < 2/3) {
- labelAlign += 'm';
- } else if (y >= 2/3) {
- labelAlign += 't';
- }
- config.labelAlign = labelAlign;
- OpenLayers.Util.applyDefaults(symbolizer, config);
- },
- "AnchorPoint": function(node, symbolizer) {
- this.readChildNodes(node, symbolizer);
- },
- "AnchorPointX": function(node, symbolizer) {
- var labelAnchorPointX = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(labelAnchorPointX) {
- symbolizer.labelAnchorPointX = labelAnchorPointX;
- }
- },
- "AnchorPointY": function(node, symbolizer) {
- var labelAnchorPointY = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(labelAnchorPointY) {
- symbolizer.labelAnchorPointY = labelAnchorPointY;
- }
- },
- "Displacement": function(node, symbolizer) {
- this.readChildNodes(node, symbolizer);
- },
- "DisplacementX": function(node, symbolizer) {
- var labelXOffset = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(labelXOffset) {
- symbolizer.labelXOffset = labelXOffset;
- }
- },
- "DisplacementY": function(node, symbolizer) {
- var labelYOffset = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(labelYOffset) {
- symbolizer.labelYOffset = labelYOffset;
- }
- },
- "LinePlacement": function(node, symbolizer) {
- this.readChildNodes(node, symbolizer);
- },
- "PerpendicularOffset": function(node, symbolizer) {
- var labelPerpendicularOffset = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(labelPerpendicularOffset) {
- symbolizer.labelPerpendicularOffset = labelPerpendicularOffset;
- }
- },
- "Label": function(node, symbolizer) {
- var value = this.readers.ogc._expression.call(this, node);
- if (value) {
- symbolizer.label = value;
- }
- },
- "Font": function(node, symbolizer) {
- this.readChildNodes(node, symbolizer);
- },
- "Halo": function(node, symbolizer) {
- // halo has a fill, so send fresh object
- var obj = {};
- this.readChildNodes(node, obj);
- symbolizer.haloRadius = obj.haloRadius;
- symbolizer.haloColor = obj.fillColor;
- symbolizer.haloOpacity = obj.fillOpacity;
- },
- "Radius": function(node, symbolizer) {
- var radius = this.readers.ogc._expression.call(this, node);
- if(radius != null) {
- // radius is only used for halo
- symbolizer.haloRadius = radius;
- }
- },
- "RasterSymbolizer": function(node, rule) {
- var config = {};
- this.readChildNodes(node, config);
- if (this.multipleSymbolizers) {
- config.zIndex = this.featureTypeCounter;
- rule.symbolizers.push(
- new OpenLayers.Symbolizer.Raster(config)
- );
- } else {
- rule.symbolizer["Raster"] = OpenLayers.Util.applyDefaults(
- config, rule.symbolizer["Raster"]
- );
- }
- },
- "Geometry": function(node, obj) {
- obj.geometry = {};
- this.readChildNodes(node, obj.geometry);
- },
- "ColorMap": function(node, symbolizer) {
- symbolizer.colorMap = [];
- this.readChildNodes(node, symbolizer.colorMap);
- },
- "ColorMapEntry": function(node, colorMap) {
- var q = node.getAttribute("quantity");
- var o = node.getAttribute("opacity");
- colorMap.push({
- color: node.getAttribute("color"),
- quantity: q !== null ? parseFloat(q) : undefined,
- label: node.getAttribute("label") || undefined,
- opacity: o !== null ? parseFloat(o) : undefined
- });
- },
- "LineSymbolizer": function(node, rule) {
- var config = {};
- this.readChildNodes(node, config);
- if (this.multipleSymbolizers) {
- config.zIndex = this.featureTypeCounter;
- rule.symbolizers.push(
- new OpenLayers.Symbolizer.Line(config)
- );
- } else {
- rule.symbolizer["Line"] = OpenLayers.Util.applyDefaults(
- config, rule.symbolizer["Line"]
- );
- }
- },
- "PolygonSymbolizer": function(node, rule) {
- var config = {
- fill: false,
- stroke: false
- };
- if (!this.multipleSymbolizers) {
- config = rule.symbolizer["Polygon"] || config;
- }
- this.readChildNodes(node, config);
- if (this.multipleSymbolizers) {
- config.zIndex = this.featureTypeCounter;
- rule.symbolizers.push(
- new OpenLayers.Symbolizer.Polygon(config)
- );
- } else {
- rule.symbolizer["Polygon"] = config;
- }
- },
- "PointSymbolizer": function(node, rule) {
- var config = {
- fill: false,
- stroke: false,
- graphic: false
- };
- if (!this.multipleSymbolizers) {
- config = rule.symbolizer["Point"] || config;
- }
- this.readChildNodes(node, config);
- if (this.multipleSymbolizers) {
- config.zIndex = this.featureTypeCounter;
- rule.symbolizers.push(
- new OpenLayers.Symbolizer.Point(config)
- );
- } else {
- rule.symbolizer["Point"] = config;
- }
- },
- "Stroke": function(node, symbolizer) {
- symbolizer.stroke = true;
- this.readChildNodes(node, symbolizer);
- },
- "Fill": function(node, symbolizer) {
- symbolizer.fill = true;
- this.readChildNodes(node, symbolizer);
- },
- "CssParameter": function(node, symbolizer) {
- var cssProperty = node.getAttribute("name");
- var symProperty = this.cssMap[cssProperty];
- // for labels, fill should map to fontColor and fill-opacity
- // to fontOpacity
- if (symbolizer.label) {
- if (cssProperty === 'fill') {
- symProperty = "fontColor";
- } else if (cssProperty === 'fill-opacity') {
- symProperty = "fontOpacity";
- }
- }
- if(symProperty) {
- // Limited support for parsing of OGC expressions
- var value = this.readers.ogc._expression.call(this, node);
- // always string, could be an empty string
- if(value) {
- symbolizer[symProperty] = value;
- }
- }
- },
- "Graphic": function(node, symbolizer) {
- symbolizer.graphic = true;
- var graphic = {};
- // painter's order not respected here, clobber previous with next
- this.readChildNodes(node, graphic);
- // directly properties with names that match symbolizer properties
- var properties = [
- "stroke", "strokeColor", "strokeWidth", "strokeOpacity",
- "strokeLinecap", "fill", "fillColor", "fillOpacity",
- "graphicName", "rotation", "graphicFormat"
- ];
- var prop, value;
- for(var i=0, len=properties.length; i<len; ++i) {
- prop = properties[i];
- value = graphic[prop];
- if(value != undefined) {
- symbolizer[prop] = value;
- }
- }
- // set other generic properties with specific graphic property names
- if(graphic.opacity != undefined) {
- symbolizer.graphicOpacity = graphic.opacity;
- }
- if(graphic.size != undefined) {
- var pointRadius = graphic.size / 2;
- if (isNaN(pointRadius)) {
- // likely a property name
- symbolizer.graphicWidth = graphic.size;
- } else {
- symbolizer.pointRadius = graphic.size / 2;
- }
- }
- if(graphic.href != undefined) {
- symbolizer.externalGraphic = graphic.href;
- }
- if(graphic.rotation != undefined) {
- symbolizer.rotation = graphic.rotation;
- }
- },
- "ExternalGraphic": function(node, graphic) {
- this.readChildNodes(node, graphic);
- },
- "Mark": function(node, graphic) {
- this.readChildNodes(node, graphic);
- },
- "WellKnownName": function(node, graphic) {
- graphic.graphicName = this.getChildValue(node);
- },
- "Opacity": function(node, obj) {
- var opacity = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(opacity) {
- obj.opacity = opacity;
- }
- },
- "Size": function(node, obj) {
- var size = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(size) {
- obj.size = size;
- }
- },
- "Rotation": function(node, obj) {
- var rotation = this.readers.ogc._expression.call(this, node);
- // always string, could be empty string
- if(rotation) {
- obj.rotation = rotation;
- }
- },
- "OnlineResource": function(node, obj) {
- obj.href = this.getAttributeNS(
- node, this.namespaces.xlink, "href"
- );
- },
- "Format": function(node, graphic) {
- graphic.graphicFormat = this.getChildValue(node);
- }
- }
- }, OpenLayers.Format.Filter.v1_0_0.prototype.readers),
-
- /**
- * Property: cssMap
- * {Object} Object mapping supported css property names to OpenLayers
- * symbolizer property names.
- */
- cssMap: {
- "stroke": "strokeColor",
- "stroke-opacity": "strokeOpacity",
- "stroke-width": "strokeWidth",
- "stroke-linecap": "strokeLinecap",
- "stroke-dasharray": "strokeDashstyle",
- "fill": "fillColor",
- "fill-opacity": "fillOpacity",
- "font-family": "fontFamily",
- "font-size": "fontSize",
- "font-weight": "fontWeight",
- "font-style": "fontStyle"
- },
-
- /**
- * Method: getCssProperty
- * Given a symbolizer property, get the corresponding CSS property
- * from the <cssMap>.
- *
- * Parameters:
- * sym - {String} A symbolizer property name.
- *
- * Returns:
- * {String} A CSS property name or null if none found.
- */
- getCssProperty: function(sym) {
- var css = null;
- for(var prop in this.cssMap) {
- if(this.cssMap[prop] == sym) {
- css = prop;
- break;
- }
- }
- return css;
- },
-
- /**
- * Method: getGraphicFormat
- * Given a href for an external graphic, try to determine the mime-type.
- * This method doesn't try too hard, and will fall back to
- * <defaultGraphicFormat> if one of the known <graphicFormats> is not
- * the file extension of the provided href.
- *
- * Parameters:
- * href - {String}
- *
- * Returns:
- * {String} The graphic format.
- */
- getGraphicFormat: function(href) {
- var format, regex;
- for(var key in this.graphicFormats) {
- if(this.graphicFormats[key].test(href)) {
- format = key;
- break;
- }
- }
- return format || this.defaultGraphicFormat;
- },
-
- /**
- * Property: defaultGraphicFormat
- * {String} If none other can be determined from <getGraphicFormat>, this
- * default will be returned.
- */
- defaultGraphicFormat: "image/png",
-
- /**
- * Property: graphicFormats
- * {Object} Mapping of image mime-types to regular extensions matching
- * well-known file extensions.
- */
- graphicFormats: {
- "image/jpeg": /\.jpe?g$/i,
- "image/gif": /\.gif$/i,
- "image/png": /\.png$/i
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * sld - {Object} An object representing the SLD.
- *
- * Returns:
- * {DOMElement} The root of an SLD document.
- */
- write: function(sld) {
- return this.writers.sld.StyledLayerDescriptor.apply(this, [sld]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: OpenLayers.Util.applyDefaults({
- "sld": {
- "_OGCExpression": function(nodeName, value) {
- // only the simplest of ogc:expression handled
- // {label: "some text and a ${propertyName}"}
- var node = this.createElementNSPlus(nodeName);
- var tokens = typeof value == "string" ?
- value.split("${") :
- [value];
- node.appendChild(this.createTextNode(tokens[0]));
- var item, last;
- for(var i=1, len=tokens.length; i<len; i++) {
- item = tokens[i];
- last = item.indexOf("}");
- if(last > 0) {
- this.writeNode(
- "ogc:PropertyName",
- {property: item.substring(0, last)},
- node
- );
- node.appendChild(
- this.createTextNode(item.substring(++last))
- );
- } else {
- // no ending }, so this is a literal ${
- node.appendChild(
- this.createTextNode("${" + item)
- );
- }
- }
- return node;
- },
- "StyledLayerDescriptor": function(sld) {
- var root = this.createElementNSPlus(
- "sld:StyledLayerDescriptor",
- {attributes: {
- "version": this.VERSION,
- "xsi:schemaLocation": this.schemaLocation
- }}
- );
-
- // For ArcGIS Server it is necessary to define this
- // at the root level (see ticket:2166).
- root.setAttribute("xmlns:ogc", this.namespaces.ogc);
- root.setAttribute("xmlns:gml", this.namespaces.gml);
-
- // add in optional name
- if(sld.name) {
- this.writeNode("Name", sld.name, root);
- }
- // add in optional title
- if(sld.title) {
- this.writeNode("Title", sld.title, root);
- }
- // add in optional description
- if(sld.description) {
- this.writeNode("Abstract", sld.description, root);
- }
- // add in named layers
- // allow namedLayers to be an array
- if(OpenLayers.Util.isArray(sld.namedLayers)) {
- for(var i=0, len=sld.namedLayers.length; i<len; ++i) {
- this.writeNode("NamedLayer", sld.namedLayers[i], root);
- }
- } else {
- for(var name in sld.namedLayers) {
- this.writeNode("NamedLayer", sld.namedLayers[name], root);
- }
- }
- return root;
- },
- "Name": function(name) {
- return this.createElementNSPlus("sld:Name", {value: name});
- },
- "Title": function(title) {
- return this.createElementNSPlus("sld:Title", {value: title});
- },
- "Abstract": function(description) {
- return this.createElementNSPlus(
- "sld:Abstract", {value: description}
- );
- },
- "NamedLayer": function(layer) {
- var node = this.createElementNSPlus("sld:NamedLayer");
-
- // add in required name
- this.writeNode("Name", layer.name, node);
-
- // optional sld:LayerFeatureConstraints here
-
- // add in named styles
- if(layer.namedStyles) {
- for(var i=0, len=layer.namedStyles.length; i<len; ++i) {
- this.writeNode(
- "NamedStyle", layer.namedStyles[i], node
- );
- }
- }
-
- // add in user styles
- if(layer.userStyles) {
- for(var i=0, len=layer.userStyles.length; i<len; ++i) {
- this.writeNode(
- "UserStyle", layer.userStyles[i], node
- );
- }
- }
-
- return node;
- },
- "NamedStyle": function(name) {
- var node = this.createElementNSPlus("sld:NamedStyle");
- this.writeNode("Name", name, node);
- return node;
- },
- "UserStyle": function(style) {
- var node = this.createElementNSPlus("sld:UserStyle");
-
- // add in optional name
- if(style.name) {
- this.writeNode("Name", style.name, node);
- }
- // add in optional title
- if(style.title) {
- this.writeNode("Title", style.title, node);
- }
- // add in optional description
- if(style.description) {
- this.writeNode("Abstract", style.description, node);
- }
-
- // add isdefault
- if(style.isDefault) {
- this.writeNode("IsDefault", style.isDefault, node);
- }
-
- // add FeatureTypeStyles
- if (this.multipleSymbolizers && style.rules) {
- // group style objects by symbolizer zIndex
- var rulesByZ = {
- 0: []
- };
- var zValues = [0];
- var rule, ruleMap, symbolizer, zIndex, clone;
- for (var i=0, ii=style.rules.length; i<ii; ++i) {
- rule = style.rules[i];
- if (rule.symbolizers) {
- ruleMap = {};
- for (var j=0, jj=rule.symbolizers.length; j<jj; ++j) {
- symbolizer = rule.symbolizers[j];
- zIndex = symbolizer.zIndex;
- if (!(zIndex in ruleMap)) {
- clone = rule.clone();
- clone.symbolizers = [];
- ruleMap[zIndex] = clone;
- }
- ruleMap[zIndex].symbolizers.push(symbolizer.clone());
- }
- for (zIndex in ruleMap) {
- if (!(zIndex in rulesByZ)) {
- zValues.push(zIndex);
- rulesByZ[zIndex] = [];
- }
- rulesByZ[zIndex].push(ruleMap[zIndex]);
- }
- } else {
- // no symbolizers in rule
- rulesByZ[0].push(rule.clone());
- }
- }
- // write one FeatureTypeStyle per zIndex
- zValues.sort();
- var rules;
- for (var i=0, ii=zValues.length; i<ii; ++i) {
- rules = rulesByZ[zValues[i]];
- if (rules.length > 0) {
- clone = style.clone();
- clone.rules = rulesByZ[zValues[i]];
- this.writeNode("FeatureTypeStyle", clone, node);
- }
- }
- } else {
- this.writeNode("FeatureTypeStyle", style, node);
- }
-
- return node;
- },
- "IsDefault": function(bool) {
- return this.createElementNSPlus(
- "sld:IsDefault", {value: (bool) ? "1" : "0"}
- );
- },
- "FeatureTypeStyle": function(style) {
- var node = this.createElementNSPlus("sld:FeatureTypeStyle");
-
- // OpenLayers currently stores no Name, Title, Abstract,
- // FeatureTypeName, or SemanticTypeIdentifier information
- // related to FeatureTypeStyle
-
- // add in rules
- for(var i=0, len=style.rules.length; i<len; ++i) {
- this.writeNode("Rule", style.rules[i], node);
- }
-
- return node;
- },
- "Rule": function(rule) {
- var node = this.createElementNSPlus("sld:Rule");
-
- // add in optional name
- if(rule.name) {
- this.writeNode("Name", rule.name, node);
- }
- // add in optional title
- if(rule.title) {
- this.writeNode("Title", rule.title, node);
- }
- // add in optional description
- if(rule.description) {
- this.writeNode("Abstract", rule.description, node);
- }
-
- // add in LegendGraphic here
-
- // add in optional filters
- if(rule.elseFilter) {
- this.writeNode("ElseFilter", null, node);
- } else if(rule.filter) {
- this.writeNode("ogc:Filter", rule.filter, node);
- }
-
- // add in scale limits
- if(rule.minScaleDenominator != undefined) {
- this.writeNode(
- "MinScaleDenominator", rule.minScaleDenominator, node
- );
- }
- if(rule.maxScaleDenominator != undefined) {
- this.writeNode(
- "MaxScaleDenominator", rule.maxScaleDenominator, node
- );
- }
-
- var type, symbolizer;
- if (this.multipleSymbolizers && rule.symbolizers) {
- var symbolizer;
- for (var i=0, ii=rule.symbolizers.length; i<ii; ++i) {
- symbolizer = rule.symbolizers[i];
- type = symbolizer.CLASS_NAME.split(".").pop();
- this.writeNode(
- type + "Symbolizer", symbolizer, node
- );
- }
- } else {
- // add in symbolizers (relies on geometry type keys)
- var types = OpenLayers.Style.SYMBOLIZER_PREFIXES;
- for(var i=0, len=types.length; i<len; ++i) {
- type = types[i];
- symbolizer = rule.symbolizer[type];
- if(symbolizer) {
- this.writeNode(
- type + "Symbolizer", symbolizer, node
- );
- }
- }
- }
- return node;
-
- },
- "ElseFilter": function() {
- return this.createElementNSPlus("sld:ElseFilter");
- },
- "MinScaleDenominator": function(scale) {
- return this.createElementNSPlus(
- "sld:MinScaleDenominator", {value: scale}
- );
- },
- "MaxScaleDenominator": function(scale) {
- return this.createElementNSPlus(
- "sld:MaxScaleDenominator", {value: scale}
- );
- },
- "LineSymbolizer": function(symbolizer) {
- var node = this.createElementNSPlus("sld:LineSymbolizer");
- this.writeNode("Stroke", symbolizer, node);
- return node;
- },
- "Stroke": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Stroke");
-
- // GraphicFill here
- // GraphicStroke here
-
- // add in CssParameters
- if(symbolizer.strokeColor != undefined) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "strokeColor"},
- node
- );
- }
- if(symbolizer.strokeOpacity != undefined) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "strokeOpacity"},
- node
- );
- }
- if(symbolizer.strokeWidth != undefined) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "strokeWidth"},
- node
- );
- }
- if(symbolizer.strokeDashstyle != undefined && symbolizer.strokeDashstyle !== "solid") {
- // assumes valid stroke-dasharray value
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "strokeDashstyle"},
- node
- );
- }
- if(symbolizer.strokeLinecap != undefined) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "strokeLinecap"},
- node
- );
- }
- return node;
- },
- "CssParameter": function(obj) {
- // not handling ogc:expressions for now
- return this.createElementNSPlus("sld:CssParameter", {
- attributes: {name: this.getCssProperty(obj.key)},
- value: obj.symbolizer[obj.key]
- });
- },
- "TextSymbolizer": function(symbolizer) {
- var node = this.createElementNSPlus("sld:TextSymbolizer");
- // add in optional Label
- if(symbolizer.label != null) {
- this.writeNode("Label", symbolizer.label, node);
- }
- // add in optional Font
- if(symbolizer.fontFamily != null ||
- symbolizer.fontSize != null ||
- symbolizer.fontWeight != null ||
- symbolizer.fontStyle != null) {
- this.writeNode("Font", symbolizer, node);
- }
- // add in optional LabelPlacement
- if (symbolizer.labelAnchorPointX != null ||
- symbolizer.labelAnchorPointY != null ||
- symbolizer.labelAlign != null ||
- symbolizer.labelXOffset != null ||
- symbolizer.labelYOffset != null ||
- symbolizer.labelRotation != null ||
- symbolizer.labelPerpendicularOffset != null) {
- this.writeNode("LabelPlacement", symbolizer, node);
- }
- // add in optional Halo
- if(symbolizer.haloRadius != null ||
- symbolizer.haloColor != null ||
- symbolizer.haloOpacity != null) {
- this.writeNode("Halo", symbolizer, node);
- }
- // add in optional Fill
- if(symbolizer.fontColor != null ||
- symbolizer.fontOpacity != null) {
- this.writeNode("Fill", {
- fillColor: symbolizer.fontColor,
- fillOpacity: symbolizer.fontOpacity
- }, node);
- }
- return node;
- },
- "LabelPlacement": function(symbolizer) {
- var node = this.createElementNSPlus("sld:LabelPlacement");
- // PointPlacement and LinePlacement are choices, so don't output both
- if ((symbolizer.labelAnchorPointX != null ||
- symbolizer.labelAnchorPointY != null ||
- symbolizer.labelAlign != null ||
- symbolizer.labelXOffset != null ||
- symbolizer.labelYOffset != null ||
- symbolizer.labelRotation != null) &&
- symbolizer.labelPerpendicularOffset == null) {
- this.writeNode("PointPlacement", symbolizer, node);
- }
- if (symbolizer.labelPerpendicularOffset != null) {
- this.writeNode("LinePlacement", symbolizer, node);
- }
- return node;
- },
- "LinePlacement": function(symbolizer) {
- var node = this.createElementNSPlus("sld:LinePlacement");
- this.writeNode("PerpendicularOffset", symbolizer.labelPerpendicularOffset, node);
- return node;
- },
- "PerpendicularOffset": function(value) {
- return this.createElementNSPlus("sld:PerpendicularOffset", {
- value: value
- });
- },
- "PointPlacement": function(symbolizer) {
- var node = this.createElementNSPlus("sld:PointPlacement");
- if (symbolizer.labelAnchorPointX != null ||
- symbolizer.labelAnchorPointY != null ||
- symbolizer.labelAlign != null) {
- this.writeNode("AnchorPoint", symbolizer, node);
- }
- if (symbolizer.labelXOffset != null ||
- symbolizer.labelYOffset != null) {
- this.writeNode("Displacement", symbolizer, node);
- }
- if (symbolizer.labelRotation != null) {
- this.writeNode("Rotation", symbolizer.labelRotation, node);
- }
- return node;
- },
- "AnchorPoint": function(symbolizer) {
- var node = this.createElementNSPlus("sld:AnchorPoint");
- var x = symbolizer.labelAnchorPointX,
- y = symbolizer.labelAnchorPointY;
- if (x != null) {
- this.writeNode("AnchorPointX", x, node);
- }
- if (y != null) {
- this.writeNode("AnchorPointY", y, node);
- }
- if (x == null && y == null) {
- var xAlign = symbolizer.labelAlign.substr(0, 1),
- yAlign = symbolizer.labelAlign.substr(1, 1);
- if (xAlign === "l") {
- x = 0;
- } else if (xAlign === "c") {
- x = 0.5;
- } else if (xAlign === "r") {
- x = 1;
- }
- if (yAlign === "b") {
- y = 0;
- } else if (yAlign === "m") {
- y = 0.5;
- } else if (yAlign === "t") {
- y = 1;
- }
- this.writeNode("AnchorPointX", x, node);
- this.writeNode("AnchorPointY", y, node);
- }
- return node;
- },
- "AnchorPointX": function(value) {
- return this.createElementNSPlus("sld:AnchorPointX", {
- value: value
- });
- },
- "AnchorPointY": function(value) {
- return this.createElementNSPlus("sld:AnchorPointY", {
- value: value
- });
- },
- "Displacement": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Displacement");
- if (symbolizer.labelXOffset != null) {
- this.writeNode("DisplacementX", symbolizer.labelXOffset, node);
- }
- if (symbolizer.labelYOffset != null) {
- this.writeNode("DisplacementY", symbolizer.labelYOffset, node);
- }
- return node;
- },
- "DisplacementX": function(value) {
- return this.createElementNSPlus("sld:DisplacementX", {
- value: value
- });
- },
- "DisplacementY": function(value) {
- return this.createElementNSPlus("sld:DisplacementY", {
- value: value
- });
- },
- "Font": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Font");
- // add in CssParameters
- if(symbolizer.fontFamily) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "fontFamily"},
- node
- );
- }
- if(symbolizer.fontSize) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "fontSize"},
- node
- );
- }
- if(symbolizer.fontWeight) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "fontWeight"},
- node
- );
- }
- if(symbolizer.fontStyle) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "fontStyle"},
- node
- );
- }
- return node;
- },
- "Label": function(label) {
- return this.writers.sld._OGCExpression.call(
- this, "sld:Label", label
- );
- },
- "Halo": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Halo");
- if(symbolizer.haloRadius) {
- this.writeNode("Radius", symbolizer.haloRadius, node);
- }
- if(symbolizer.haloColor || symbolizer.haloOpacity) {
- this.writeNode("Fill", {
- fillColor: symbolizer.haloColor,
- fillOpacity: symbolizer.haloOpacity
- }, node);
- }
- return node;
- },
- "Radius": function(value) {
- return this.createElementNSPlus("sld:Radius", {
- value: value
- });
- },
- "RasterSymbolizer": function(symbolizer) {
- var node = this.createElementNSPlus("sld:RasterSymbolizer");
- if (symbolizer.geometry) {
- this.writeNode("Geometry", symbolizer.geometry, node);
- }
- if (symbolizer.opacity) {
- this.writeNode("Opacity", symbolizer.opacity, node);
- }
- if (symbolizer.colorMap) {
- this.writeNode("ColorMap", symbolizer.colorMap, node);
- }
- return node;
- },
- "Geometry": function(geometry) {
- var node = this.createElementNSPlus("sld:Geometry");
- if (geometry.property) {
- this.writeNode("ogc:PropertyName", geometry, node);
- }
- return node;
- },
- "ColorMap": function(colorMap) {
- var node = this.createElementNSPlus("sld:ColorMap");
- for (var i=0, len=colorMap.length; i<len; ++i) {
- this.writeNode("ColorMapEntry", colorMap[i], node);
- }
- return node;
- },
- "ColorMapEntry": function(colorMapEntry) {
- var node = this.createElementNSPlus("sld:ColorMapEntry");
- var a = colorMapEntry;
- node.setAttribute("color", a.color);
- a.opacity !== undefined && node.setAttribute("opacity",
- parseFloat(a.opacity));
- a.quantity !== undefined && node.setAttribute("quantity",
- parseFloat(a.quantity));
- a.label !== undefined && node.setAttribute("label", a.label);
- return node;
- },
- "PolygonSymbolizer": function(symbolizer) {
- var node = this.createElementNSPlus("sld:PolygonSymbolizer");
- if(symbolizer.fill !== false) {
- this.writeNode("Fill", symbolizer, node);
- }
- if(symbolizer.stroke !== false) {
- this.writeNode("Stroke", symbolizer, node);
- }
- return node;
- },
- "Fill": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Fill");
-
- // GraphicFill here
-
- // add in CssParameters
- if(symbolizer.fillColor) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "fillColor"},
- node
- );
- }
- if(symbolizer.fillOpacity != null) {
- this.writeNode(
- "CssParameter",
- {symbolizer: symbolizer, key: "fillOpacity"},
- node
- );
- }
- return node;
- },
- "PointSymbolizer": function(symbolizer) {
- var node = this.createElementNSPlus("sld:PointSymbolizer");
- this.writeNode("Graphic", symbolizer, node);
- return node;
- },
- "Graphic": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Graphic");
- if(symbolizer.externalGraphic != undefined) {
- this.writeNode("ExternalGraphic", symbolizer, node);
- } else {
- this.writeNode("Mark", symbolizer, node);
- }
-
- if(symbolizer.graphicOpacity != undefined) {
- this.writeNode("Opacity", symbolizer.graphicOpacity, node);
- }
- if(symbolizer.pointRadius != undefined) {
- this.writeNode("Size", symbolizer.pointRadius * 2, node);
- } else if (symbolizer.graphicWidth != undefined) {
- this.writeNode("Size", symbolizer.graphicWidth, node);
- }
- if(symbolizer.rotation != undefined) {
- this.writeNode("Rotation", symbolizer.rotation, node);
- }
- return node;
- },
- "ExternalGraphic": function(symbolizer) {
- var node = this.createElementNSPlus("sld:ExternalGraphic");
- this.writeNode(
- "OnlineResource", symbolizer.externalGraphic, node
- );
- var format = symbolizer.graphicFormat ||
- this.getGraphicFormat(symbolizer.externalGraphic);
- this.writeNode("Format", format, node);
- return node;
- },
- "Mark": function(symbolizer) {
- var node = this.createElementNSPlus("sld:Mark");
- if(symbolizer.graphicName) {
- this.writeNode("WellKnownName", symbolizer.graphicName, node);
- }
- if (symbolizer.fill !== false) {
- this.writeNode("Fill", symbolizer, node);
- }
- if (symbolizer.stroke !== false) {
- this.writeNode("Stroke", symbolizer, node);
- }
- return node;
- },
- "WellKnownName": function(name) {
- return this.createElementNSPlus("sld:WellKnownName", {
- value: name
- });
- },
- "Opacity": function(value) {
- return this.createElementNSPlus("sld:Opacity", {
- value: value
- });
- },
- "Size": function(value) {
- return this.writers.sld._OGCExpression.call(
- this, "sld:Size", value
- );
- },
- "Rotation": function(value) {
- return this.createElementNSPlus("sld:Rotation", {
- value: value
- });
- },
- "OnlineResource": function(href) {
- return this.createElementNSPlus("sld:OnlineResource", {
- attributes: {
- "xlink:type": "simple",
- "xlink:href": href
- }
- });
- },
- "Format": function(format) {
- return this.createElementNSPlus("sld:Format", {
- value: format
- });
- }
- }
- }, OpenLayers.Format.Filter.v1_0_0.prototype.writers),
-
- CLASS_NAME: "OpenLayers.Format.SLD.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js
deleted file mode 100644
index e920b50..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/SLD/v1.js
- * @requires OpenLayers/Format/Filter/v1_0_0.js
- */
-
-/**
- * Class: OpenLayers.Format.SLD.v1_0_0
- * Write SLD version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.SLD.v1>
- */
-OpenLayers.Format.SLD.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.SLD.v1, {
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/sld
- * http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd
- */
- schemaLocation: "http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd",
-
- /**
- * Constructor: OpenLayers.Format.SLD.v1_0_0
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.SLD> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- CLASS_NAME: "OpenLayers.Format.SLD.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js b/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js
deleted file mode 100644
index 902da67..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/SLD/v1_0_0.js
- */
-
-/**
- * Class: OpenLayers.Format.SLD/v1_0_0_GeoServer
- * Read and write SLD version 1.0.0 with GeoServer-specific enhanced options.
- * See http://svn.osgeo.org/geotools/trunk/modules/extension/xsd/xsd-sld/src/main/resources/org/geotools/sld/bindings/StyledLayerDescriptor.xsd
- * for more information.
- *
- * Inherits from:
- * - <OpenLayers.Format.SLD.v1_0_0>
- */
-OpenLayers.Format.SLD.v1_0_0_GeoServer = OpenLayers.Class(
- OpenLayers.Format.SLD.v1_0_0, {
-
- /**
- * Property: version
- * {String} The specific parser version.
- */
- version: "1.0.0",
-
- /**
- * Property: profile
- * {String} The specific profile
- */
- profile: "GeoServer",
-
- /**
- * Constructor: OpenLayers.Format.SLD.v1_0_0_GeoServer
- * Create a new parser for GeoServer-enhanced SLD version 1.0.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: OpenLayers.Util.applyDefaults({
- "sld": OpenLayers.Util.applyDefaults({
- "Priority": function(node, obj) {
- var value = this.readers.ogc._expression.call(this, node);
- if (value) {
- obj.priority = value;
- }
- },
- "VendorOption": function(node, obj) {
- if (!obj.vendorOptions) {
- obj.vendorOptions = {};
- }
- obj.vendorOptions[node.getAttribute("name")] = this.getChildValue(node);
- },
- "TextSymbolizer": function(node, rule) {
- OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld.TextSymbolizer.apply(this, arguments);
- var symbolizer = this.multipleSymbolizers ? rule.symbolizers[rule.symbolizers.length-1] : rule.symbolizer["Text"];
- if (symbolizer.graphic === undefined) {
- symbolizer.graphic = false;
- }
- }
- }, OpenLayers.Format.SLD.v1_0_0.prototype.readers["sld"])
- }, OpenLayers.Format.SLD.v1_0_0.prototype.readers),
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: OpenLayers.Util.applyDefaults({
- "sld": OpenLayers.Util.applyDefaults({
- "Priority": function(priority) {
- return this.writers.sld._OGCExpression.call(
- this, "sld:Priority", priority
- );
- },
- "VendorOption": function(option) {
- return this.createElementNSPlus("sld:VendorOption", {
- attributes: {name: option.name},
- value: option.value
- });
- },
- "TextSymbolizer": function(symbolizer) {
- var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
- var node = writers["sld"]["TextSymbolizer"].apply(this, arguments);
- if (symbolizer.graphic !== false && (symbolizer.externalGraphic || symbolizer.graphicName)) {
- this.writeNode("Graphic", symbolizer, node);
- }
- if ("priority" in symbolizer) {
- this.writeNode("Priority", symbolizer.priority, node);
- }
- return this.addVendorOptions(node, symbolizer);
- },
- "PointSymbolizer": function(symbolizer) {
- var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
- var node = writers["sld"]["PointSymbolizer"].apply(this, arguments);
- return this.addVendorOptions(node, symbolizer);
- },
- "LineSymbolizer": function(symbolizer) {
- var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
- var node = writers["sld"]["LineSymbolizer"].apply(this, arguments);
- return this.addVendorOptions(node, symbolizer);
- },
- "PolygonSymbolizer": function(symbolizer) {
- var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
- var node = writers["sld"]["PolygonSymbolizer"].apply(this, arguments);
- return this.addVendorOptions(node, symbolizer);
- }
- }, OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"])
- }, OpenLayers.Format.SLD.v1_0_0.prototype.writers),
-
- /**
- * Method: addVendorOptions
- * Add in the VendorOption tags and return the node again.
- *
- * Parameters:
- * node - {DOMElement} A DOM node.
- * symbolizer - {Object}
- *
- * Returns:
- * {DOMElement} A DOM node.
- */
- addVendorOptions: function(node, symbolizer) {
- var options = symbolizer.vendorOptions;
- if (options) {
- for (var key in symbolizer.vendorOptions) {
- this.writeNode("VendorOption", {
- name: key,
- value: symbolizer.vendorOptions[key]
- }, node);
- }
- }
- return node;
- },
-
- CLASS_NAME: "OpenLayers.Format.SLD.v1_0_0_GeoServer"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js b/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js
deleted file mode 100644
index 1abb1c8..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.SOSCapabilities
- * Read SOS Capabilities.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.SOSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.0.0".
- */
- defaultVersion: "1.0.0",
-
- /**
- * Constructor: OpenLayers.Format.SOSCapabilities
- * Create a new parser for SOS Capabilities.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return information about
- * the service (offering and observedProperty mostly).
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Info about the SOS
- */
-
- CLASS_NAME: "OpenLayers.Format.SOSCapabilities"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
deleted file mode 100644
index 89c0e91..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/SOSCapabilities.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- * @requires OpenLayers/Format/GML/v3.js
- */
-
-/**
- * Class: OpenLayers.Format.SOSCapabilities.v1_0_0
- * Read SOS Capabilities version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.SOSCapabilities>
- */
-OpenLayers.Format.SOSCapabilities.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.SOSCapabilities, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows/1.1",
- sos: "http://www.opengis.net/sos/1.0",
- gml: "http://www.opengis.net/gml",
- xlink: "http://www.w3.org/1999/xlink"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constructor: OpenLayers.Format.SOSCapabilities.v1_0_0
- * Create a new parser for SOS capabilities version 1.0.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- this.options = options;
- },
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return info about the SOS.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Information about the SOS service.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var capabilities = {};
- this.readNode(data, capabilities);
- return capabilities;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "gml": OpenLayers.Util.applyDefaults({
- "name": function(node, obj) {
- obj.name = this.getChildValue(node);
- },
- "TimePeriod": function(node, obj) {
- obj.timePeriod = {};
- this.readChildNodes(node, obj.timePeriod);
- },
- "beginPosition": function(node, timePeriod) {
- timePeriod.beginPosition = this.getChildValue(node);
- },
- "endPosition": function(node, timePeriod) {
- timePeriod.endPosition = this.getChildValue(node);
- }
- }, OpenLayers.Format.GML.v3.prototype.readers["gml"]),
- "sos": {
- "Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Contents": function(node, obj) {
- obj.contents = {};
- this.readChildNodes(node, obj.contents);
- },
- "ObservationOfferingList": function(node, contents) {
- contents.offeringList = {};
- this.readChildNodes(node, contents.offeringList);
- },
- "ObservationOffering": function(node, offeringList) {
- var id = this.getAttributeNS(node, this.namespaces.gml, "id");
- offeringList[id] = {
- procedures: [],
- observedProperties: [],
- featureOfInterestIds: [],
- responseFormats: [],
- resultModels: [],
- responseModes: []
- };
- this.readChildNodes(node, offeringList[id]);
- },
- "time": function(node, offering) {
- offering.time = {};
- this.readChildNodes(node, offering.time);
- },
- "procedure": function(node, offering) {
- offering.procedures.push(this.getAttributeNS(node,
- this.namespaces.xlink, "href"));
- },
- "observedProperty": function(node, offering) {
- offering.observedProperties.push(this.getAttributeNS(node,
- this.namespaces.xlink, "href"));
- },
- "featureOfInterest": function(node, offering) {
- offering.featureOfInterestIds.push(this.getAttributeNS(node,
- this.namespaces.xlink, "href"));
- },
- "responseFormat": function(node, offering) {
- offering.responseFormats.push(this.getChildValue(node));
- },
- "resultModel": function(node, offering) {
- offering.resultModels.push(this.getChildValue(node));
- },
- "responseMode": function(node, offering) {
- offering.responseModes.push(this.getChildValue(node));
- }
- },
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
- },
-
- CLASS_NAME: "OpenLayers.Format.SOSCapabilities.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js b/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
deleted file mode 100644
index aac2030..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SOSGetFeatureOfInterest.js
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/GML/v3.js
- */
-
-/**
- * Class: OpenLayers.Format.SOSGetFeatureOfInterest
- * Read and write SOS GetFeatureOfInterest. This is used to get to
- * the location of the features (stations). The stations can have 1 or more
- * sensors.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.SOSGetFeatureOfInterest = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- sos: "http://www.opengis.net/sos/1.0",
- gml: "http://www.opengis.net/gml",
- sa: "http://www.opengis.net/sampling/1.0",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: schemaLocation
- * {String} Schema location
- */
- schemaLocation: "http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosAll.xsd",
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "sos",
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constructor: OpenLayers.Format.SOSGetFeatureOfInterest
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Parse a GetFeatureOfInterest response and return an array of features
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} An array of features.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
-
- var info = {features: []};
- this.readNode(data, info);
-
- var features = [];
- for (var i=0, len=info.features.length; i<len; i++) {
- var container = info.features[i];
- // reproject features if needed
- if(this.internalProjection && this.externalProjection &&
- container.components[0]) {
- container.components[0].transform(
- this.externalProjection, this.internalProjection
- );
- }
- var feature = new OpenLayers.Feature.Vector(
- container.components[0], container.attributes);
- features.push(feature);
- }
- return features;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "sa": {
- "SamplingPoint": function(node, obj) {
- // sampling point can also be without a featureMember if
- // there is only 1
- if (!obj.attributes) {
- var feature = {attributes: {}};
- obj.features.push(feature);
- obj = feature;
- }
- obj.attributes.id = this.getAttributeNS(node,
- this.namespaces.gml, "id");
- this.readChildNodes(node, obj);
- },
- "position": function (node, obj) {
- this.readChildNodes(node, obj);
- }
- },
- "gml": OpenLayers.Util.applyDefaults({
- "FeatureCollection": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "featureMember": function(node, obj) {
- var feature = {attributes: {}};
- obj.features.push(feature);
- this.readChildNodes(node, feature);
- },
- "name": function(node, obj) {
- obj.attributes.name = this.getChildValue(node);
- },
- "pos": function(node, obj) {
- // we need to parse the srsName to get to the
- // externalProjection, that's why we cannot use
- // GML v3 for this
- if (!this.externalProjection) {
- this.externalProjection = new OpenLayers.Projection(
- node.getAttribute("srsName"));
- }
- OpenLayers.Format.GML.v3.prototype.readers.gml.pos.apply(
- this, [node, obj]);
- }
- }, OpenLayers.Format.GML.v3.prototype.readers.gml)
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "sos": {
- "GetFeatureOfInterest": function(options) {
- var node = this.createElementNSPlus("GetFeatureOfInterest", {
- attributes: {
- version: this.VERSION,
- service: 'SOS',
- "xsi:schemaLocation": this.schemaLocation
- }
- });
- for (var i=0, len=options.fois.length; i<len; i++) {
- this.writeNode("FeatureOfInterestId", {foi: options.fois[i]}, node);
- }
- return node;
- },
- "FeatureOfInterestId": function(options) {
- var node = this.createElementNSPlus("FeatureOfInterestId", {value: options.foi});
- return node;
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.SOSGetFeatureOfInterest"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js b/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js
deleted file mode 100644
index 9a6e2d7..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/SOSGetObservation.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/SOSGetFeatureOfInterest.js
- */
-
-/**
- * Class: OpenLayers.Format.SOSGetObservation
- * Read and write SOS GetObersation (to get the actual values from a sensor)
- * version 1.0.0
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.SOSGetObservation = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows",
- gml: "http://www.opengis.net/gml",
- sos: "http://www.opengis.net/sos/1.0",
- ogc: "http://www.opengis.net/ogc",
- om: "http://www.opengis.net/om/1.0",
- sa: "http://www.opengis.net/sampling/1.0",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: schemaLocation
- * {String} Schema location
- */
- schemaLocation: "http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd",
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "sos",
-
- /**
- * Constructor: OpenLayers.Format.SOSGetObservation
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} An object containing the measurements
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var info = {measurements: [], observations: []};
- this.readNode(data, info);
- return info;
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * options - {Object} Optional object.
- *
- * Returns:
- * {String} An SOS GetObservation request XML string.
- */
- write: function(options) {
- var node = this.writeNode("sos:GetObservation", options);
- node.setAttribute("xmlns:om", this.namespaces.om);
- node.setAttribute("xmlns:ogc", this.namespaces.ogc);
- this.setAttributeNS(
- node, this.namespaces.xsi,
- "xsi:schemaLocation", this.schemaLocation
- );
- return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "om": {
- "ObservationCollection": function(node, obj) {
- obj.id = this.getAttributeNS(node, this.namespaces.gml, "id");
- this.readChildNodes(node, obj);
- },
- "member": function(node, observationCollection) {
- this.readChildNodes(node, observationCollection);
- },
- "Measurement": function(node, observationCollection) {
- var measurement = {};
- observationCollection.measurements.push(measurement);
- this.readChildNodes(node, measurement);
- },
- "Observation": function(node, observationCollection) {
- var observation = {};
- observationCollection.observations.push(observation);
- this.readChildNodes(node, observation);
- },
- "samplingTime": function(node, measurement) {
- var samplingTime = {};
- measurement.samplingTime = samplingTime;
- this.readChildNodes(node, samplingTime);
- },
- "observedProperty": function(node, measurement) {
- measurement.observedProperty =
- this.getAttributeNS(node, this.namespaces.xlink, "href");
- this.readChildNodes(node, measurement);
- },
- "procedure": function(node, measurement) {
- measurement.procedure =
- this.getAttributeNS(node, this.namespaces.xlink, "href");
- this.readChildNodes(node, measurement);
- },
- "featureOfInterest": function(node, observation) {
- var foi = {features: []};
- observation.fois = [];
- observation.fois.push(foi);
- this.readChildNodes(node, foi);
- // postprocessing to get actual features
- var features = [];
- for (var i=0, len=foi.features.length; i<len; i++) {
- var feature = foi.features[i];
- features.push(new OpenLayers.Feature.Vector(
- feature.components[0], feature.attributes));
- }
- foi.features = features;
- },
- "result": function(node, measurement) {
- var result = {};
- measurement.result = result;
- if (this.getChildValue(node) !== '') {
- result.value = this.getChildValue(node);
- result.uom = node.getAttribute("uom");
- } else {
- this.readChildNodes(node, result);
- }
- }
- },
- "sa": OpenLayers.Format.SOSGetFeatureOfInterest.prototype.readers.sa,
- "gml": OpenLayers.Util.applyDefaults({
- "TimeInstant": function(node, samplingTime) {
- var timeInstant = {};
- samplingTime.timeInstant = timeInstant;
- this.readChildNodes(node, timeInstant);
- },
- "timePosition": function(node, timeInstant) {
- timeInstant.timePosition = this.getChildValue(node);
- }
- }, OpenLayers.Format.SOSGetFeatureOfInterest.prototype.readers.gml)
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "sos": {
- "GetObservation": function(options) {
- var node = this.createElementNSPlus("GetObservation", {
- attributes: {
- version: this.VERSION,
- service: 'SOS'
- }
- });
- this.writeNode("offering", options, node);
- if (options.eventTime) {
- this.writeNode("eventTime", options, node);
- }
- for (var procedure in options.procedures) {
- this.writeNode("procedure", options.procedures[procedure], node);
- }
- for (var observedProperty in options.observedProperties) {
- this.writeNode("observedProperty", options.observedProperties[observedProperty], node);
- }
- if (options.foi) {
- this.writeNode("featureOfInterest", options.foi, node);
- }
- this.writeNode("responseFormat", options, node);
- if (options.resultModel) {
- this.writeNode("resultModel", options, node);
- }
- if (options.responseMode) {
- this.writeNode("responseMode", options, node);
- }
- return node;
- },
- "featureOfInterest": function(foi) {
- var node = this.createElementNSPlus("featureOfInterest");
- this.writeNode("ObjectID", foi.objectId, node);
- return node;
- },
- "ObjectID": function(options) {
- return this.createElementNSPlus("ObjectID",
- {value: options});
- },
- "responseFormat": function(options) {
- return this.createElementNSPlus("responseFormat",
- {value: options.responseFormat});
- },
- "procedure": function(procedure) {
- return this.createElementNSPlus("procedure",
- {value: procedure});
- },
- "offering": function(options) {
- return this.createElementNSPlus("offering", {value:
- options.offering});
- },
- "observedProperty": function(observedProperty) {
- return this.createElementNSPlus("observedProperty",
- {value: observedProperty});
- },
- "eventTime": function(options) {
- var node = this.createElementNSPlus("eventTime");
- if (options.eventTime === 'latest') {
- this.writeNode("ogc:TM_Equals", options, node);
- }
- return node;
- },
- "resultModel": function(options) {
- return this.createElementNSPlus("resultModel", {value:
- options.resultModel});
- },
- "responseMode": function(options) {
- return this.createElementNSPlus("responseMode", {value:
- options.responseMode});
- }
- },
- "ogc": {
- "TM_Equals": function(options) {
- var node = this.createElementNSPlus("ogc:TM_Equals");
- this.writeNode("ogc:PropertyName", {property:
- "urn:ogc:data:time:iso8601"}, node);
- if (options.eventTime === 'latest') {
- this.writeNode("gml:TimeInstant", {value: 'latest'}, node);
- }
- return node;
- },
- "PropertyName": function(options) {
- return this.createElementNSPlus("ogc:PropertyName",
- {value: options.property});
- }
- },
- "gml": {
- "TimeInstant": function(options) {
- var node = this.createElementNSPlus("gml:TimeInstant");
- this.writeNode("gml:timePosition", options, node);
- return node;
- },
- "timePosition": function(options) {
- var node = this.createElementNSPlus("gml:timePosition",
- {value: options.value});
- return node;
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.SOSGetObservation"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/Text.js b/misc/openlayers/lib/OpenLayers/Format/Text.js
deleted file mode 100644
index bf9bcd5..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/Text.js
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- */
-
-/**
- * Class: OpenLayers.Format.Text
- * Read Text format. Create a new instance with the <OpenLayers.Format.Text>
- * constructor. This reads text which is formatted like CSV text, using
- * tabs as the seperator by default. It provides parsing of data originally
- * used in the MapViewerService, described on the wiki. This Format is used
- * by the <OpenLayers.Layer.Text> class.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.Text = OpenLayers.Class(OpenLayers.Format, {
-
- /**
- * APIProperty: defaultStyle
- * defaultStyle allows one to control the default styling of the features.
- * It should be a symbolizer hash. By default, this is set to match the
- * Layer.Text behavior, which is to use the default OpenLayers Icon.
- */
- defaultStyle: null,
-
- /**
- * APIProperty: extractStyles
- * set to true to extract styles from the TSV files, using information
- * from the image or icon, iconSize and iconOffset fields. This will result
- * in features with a symbolizer (style) property set, using the
- * default symbolizer specified in <defaultStyle>. Set to false if you
- * wish to use a styleMap or OpenLayers.Style options to style your
- * layer instead.
- */
- extractStyles: true,
-
- /**
- * Constructor: OpenLayers.Format.Text
- * Create a new parser for TSV Text.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- options = options || {};
-
- if(options.extractStyles !== false) {
- options.defaultStyle = {
- 'externalGraphic': OpenLayers.Util.getImageLocation("marker.png"),
- 'graphicWidth': 21,
- 'graphicHeight': 25,
- 'graphicXOffset': -10.5,
- 'graphicYOffset': -12.5
- };
- }
-
- OpenLayers.Format.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Return a list of features from a Tab Seperated Values text string.
- *
- * Parameters:
- * text - {String}
- *
- * Returns:
- * Array({<OpenLayers.Feature.Vector>})
- */
- read: function(text) {
- var lines = text.split('\n');
- var columns;
- var features = [];
- // length - 1 to allow for trailing new line
- for (var lcv = 0; lcv < (lines.length - 1); lcv++) {
- var currLine = lines[lcv].replace(/^\s*/,'').replace(/\s*$/,'');
-
- if (currLine.charAt(0) != '#') { /* not a comment */
-
- if (!columns) {
- //First line is columns
- columns = currLine.split('\t');
- } else {
- var vals = currLine.split('\t');
- var geometry = new OpenLayers.Geometry.Point(0,0);
- var attributes = {};
- var style = this.defaultStyle ?
- OpenLayers.Util.applyDefaults({}, this.defaultStyle) :
- null;
- var icon, iconSize, iconOffset, overflow;
- var set = false;
- for (var valIndex = 0; valIndex < vals.length; valIndex++) {
- if (vals[valIndex]) {
- if (columns[valIndex] == 'point') {
- var coords = vals[valIndex].split(',');
- geometry.y = parseFloat(coords[0]);
- geometry.x = parseFloat(coords[1]);
- set = true;
- } else if (columns[valIndex] == 'lat') {
- geometry.y = parseFloat(vals[valIndex]);
- set = true;
- } else if (columns[valIndex] == 'lon') {
- geometry.x = parseFloat(vals[valIndex]);
- set = true;
- } else if (columns[valIndex] == 'title')
- attributes['title'] = vals[valIndex];
- else if (columns[valIndex] == 'image' ||
- columns[valIndex] == 'icon' && style) {
- style['externalGraphic'] = vals[valIndex];
- } else if (columns[valIndex] == 'iconSize' && style) {
- var size = vals[valIndex].split(',');
- style['graphicWidth'] = parseFloat(size[0]);
- style['graphicHeight'] = parseFloat(size[1]);
- } else if (columns[valIndex] == 'iconOffset' && style) {
- var offset = vals[valIndex].split(',');
- style['graphicXOffset'] = parseFloat(offset[0]);
- style['graphicYOffset'] = parseFloat(offset[1]);
- } else if (columns[valIndex] == 'description') {
- attributes['description'] = vals[valIndex];
- } else if (columns[valIndex] == 'overflow') {
- attributes['overflow'] = vals[valIndex];
- } else {
- // For StyleMap filtering, allow additional
- // columns to be stored as attributes.
- attributes[columns[valIndex]] = vals[valIndex];
- }
- }
- }
- if (set) {
- if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- var feature = new OpenLayers.Feature.Vector(geometry, attributes, style);
- features.push(feature);
- }
- }
- }
- }
- return features;
- },
-
- CLASS_NAME: "OpenLayers.Format.Text"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js b/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js
deleted file mode 100644
index 934aaa5..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.WCSCapabilities
- * Read WCS Capabilities.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.WCSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.1.0".
- */
- defaultVersion: "1.1.0",
-
- /**
- * Constructor: OpenLayers.Format.WCSCapabilities
- * Create a new parser for WCS capabilities.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return a list of coverages.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named coverages.
- */
-
- CLASS_NAME: "OpenLayers.Format.WCSCapabilities"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js b/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js
deleted file mode 100644
index bf8da3b..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WCSCapabilities.js
- */
-
-/**
- * Class: OpenLayers.Format.WCSCapabilities.v1
- * Abstract class not to be instantiated directly.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WCSCapabilities.v1 = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- splitSpace: (/\s+/)
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "wcs",
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return a list of coverages.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named coverages.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var raw = data;
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var capabilities = {};
- this.readNode(data, capabilities);
- return capabilities;
- },
-
- CLASS_NAME: "OpenLayers.Format.WCSCapabilities.v1"
-
-}); \ No newline at end of file
diff --git a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js
deleted file mode 100644
index 4dfa0b8..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_0_0.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WCSCapabilities/v1.js
- * @requires OpenLayers/Format/GML/v3.js
- */
-
-/**
- * Class: OpenLayers.Format.WCSCapabilities/v1_0_0
- * Read WCS Capabilities version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WCSCapabilities.v1>
- */
-OpenLayers.Format.WCSCapabilities.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.WCSCapabilities.v1, {
-
- /**
- * Constructor: OpenLayers.Format.WCSCapabilities.v1_0_0
- * Create a new parser for WCS capabilities version 1.0.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- wcs: "http://www.opengis.net/wcs",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance",
- ows: "http://www.opengis.net/ows"
- },
-
- /**
- * Property: errorProperty
- * {String} Which property of the returned object to check for in order to
- * determine whether or not parsing has failed. In the case that the
- * errorProperty is undefined on the returned object, the document will be
- * run through an OGCExceptionReport parser.
- */
- errorProperty: "service",
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wcs": {
- "WCS_Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Service": function(node, obj) {
- obj.service = {};
- this.readChildNodes(node, obj.service);
- },
- "name": function(node, service) {
- service.name = this.getChildValue(node);
- },
- "label": function(node, service) {
- service.label = this.getChildValue(node);
- },
- "keywords": function(node, service) {
- service.keywords = [];
- this.readChildNodes(node, service.keywords);
- },
- "keyword": function(node, keywords) {
- // Append the keyword to the keywords list
- keywords.push(this.getChildValue(node));
- },
- "responsibleParty": function(node, service) {
- service.responsibleParty = {};
- this.readChildNodes(node, service.responsibleParty);
- },
- "individualName": function(node, responsibleParty) {
- responsibleParty.individualName = this.getChildValue(node);
- },
- "organisationName": function(node, responsibleParty) {
- responsibleParty.organisationName = this.getChildValue(node);
- },
- "positionName": function(node, responsibleParty) {
- responsibleParty.positionName = this.getChildValue(node);
- },
- "contactInfo": function(node, responsibleParty) {
- responsibleParty.contactInfo = {};
- this.readChildNodes(node, responsibleParty.contactInfo);
- },
- "phone": function(node, contactInfo) {
- contactInfo.phone = {};
- this.readChildNodes(node, contactInfo.phone);
- },
- "voice": function(node, phone) {
- phone.voice = this.getChildValue(node);
- },
- "facsimile": function(node, phone) {
- phone.facsimile = this.getChildValue(node);
- },
- "address": function(node, contactInfo) {
- contactInfo.address = {};
- this.readChildNodes(node, contactInfo.address);
- },
- "deliveryPoint": function(node, address) {
- address.deliveryPoint = this.getChildValue(node);
- },
- "city": function(node, address) {
- address.city = this.getChildValue(node);
- },
- "postalCode": function(node, address) {
- address.postalCode = this.getChildValue(node);
- },
- "country": function(node, address) {
- address.country = this.getChildValue(node);
- },
- "electronicMailAddress": function(node, address) {
- address.electronicMailAddress = this.getChildValue(node);
- },
- "fees": function(node, service) {
- service.fees = this.getChildValue(node);
- },
- "accessConstraints": function(node, service) {
- service.accessConstraints = this.getChildValue(node);
- },
- "ContentMetadata": function(node, obj) {
- obj.contentMetadata = [];
- this.readChildNodes(node, obj.contentMetadata);
- },
- "CoverageOfferingBrief": function(node, contentMetadata) {
- var coverageOfferingBrief = {};
- this.readChildNodes(node, coverageOfferingBrief);
- contentMetadata.push(coverageOfferingBrief);
- },
- "name": function(node, coverageOfferingBrief) {
- coverageOfferingBrief.name = this.getChildValue(node);
- },
- "label": function(node, coverageOfferingBrief) {
- coverageOfferingBrief.label = this.getChildValue(node);
- },
- "lonLatEnvelope": function(node, coverageOfferingBrief) {
- var nodeList = this.getElementsByTagNameNS(node, "http://www.opengis.net/gml", "pos");
-
- // We expect two nodes here, to create the corners of a bounding box
- if(nodeList.length == 2) {
- var min = {};
- var max = {};
-
- OpenLayers.Format.GML.v3.prototype.readers["gml"].pos.apply(this, [nodeList[0], min]);
- OpenLayers.Format.GML.v3.prototype.readers["gml"].pos.apply(this, [nodeList[1], max]);
-
- coverageOfferingBrief.lonLatEnvelope = {};
- coverageOfferingBrief.lonLatEnvelope.srsName = node.getAttribute("srsName");
- coverageOfferingBrief.lonLatEnvelope.min = min.points[0];
- coverageOfferingBrief.lonLatEnvelope.max = max.points[0];
- }
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.WCSCapabilities.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js
deleted file mode 100644
index 1753c51..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WCSCapabilities/v1_1_0.js
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WCSCapabilities/v1.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WCSCapabilities/v1_1_0
- * Read WCS Capabilities version 1.1.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WCSCapabilities.v1>
- */
-OpenLayers.Format.WCSCapabilities.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.WCSCapabilities.v1, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- wcs: "http://www.opengis.net/wcs/1.1",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance",
- ows: "http://www.opengis.net/ows/1.1"
- },
-
- /**
- * APIProperty: errorProperty
- * {String} Which property of the returned object to check for in order to
- * determine whether or not parsing has failed. In the case that the
- * errorProperty is undefined on the returned object, the document will be
- * run through an OGCExceptionReport parser.
- */
- errorProperty: "operationsMetadata",
-
- /**
- * Constructor: OpenLayers.Format.WCSCapabilities.v1_1_0
- * Create a new parser for WCS capabilities version 1.1.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wcs": OpenLayers.Util.applyDefaults({
- // In 1.0.0, this was WCS_Capabilties, in 1.1.0, it's Capabilities
- "Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Contents": function(node, request) {
- request.contentMetadata = [];
- this.readChildNodes(node, request.contentMetadata);
- },
- "CoverageSummary": function(node, contentMetadata) {
- var coverageSummary = {};
- // Read the summary:
- this.readChildNodes(node, coverageSummary);
-
- // Add it to the contentMetadata array:
- contentMetadata.push(coverageSummary);
- },
- "Identifier": function(node, coverageSummary) {
- coverageSummary.identifier = this.getChildValue(node);
- },
- "Title": function(node, coverageSummary) {
- coverageSummary.title = this.getChildValue(node);
- },
- "Abstract": function(node, coverageSummary) {
- coverageSummary["abstract"] = this.getChildValue(node);
- },
- "SupportedCRS": function(node, coverageSummary) {
- var crs = this.getChildValue(node);
- if(crs) {
- if(!coverageSummary.supportedCRS) {
- coverageSummary.supportedCRS = [];
- }
- coverageSummary.supportedCRS.push(crs);
- }
- },
- "SupportedFormat": function(node, coverageSummary) {
- var format = this.getChildValue(node);
- if(format) {
- if(!coverageSummary.supportedFormat) {
- coverageSummary.supportedFormat = [];
- }
- coverageSummary.supportedFormat.push(format);
- }
- }
- }, OpenLayers.Format.WCSCapabilities.v1.prototype.readers["wcs"]),
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WCSCapabilities.v1_1_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js b/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js
deleted file mode 100644
index 2817f28..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WCSGetCoverage.js
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WCSGetCoverage version 1.1.0
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WCSGetCoverage = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows/1.1",
- wcs: "http://www.opengis.net/wcs/1.1",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constant: VERSION
- * {String} 1.1.2
- */
- VERSION: "1.1.2",
-
- /**
- * Property: schemaLocation
- * {String} Schema location
- */
- schemaLocation: "http://www.opengis.net/wcs/1.1 http://schemas.opengis.net/wcs/1.1/wcsGetCoverage.xsd",
-
- /**
- * Constructor: OpenLayers.Format.WCSGetCoverage
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: write
- *
- * Parameters:
- * options - {Object} Optional object.
- *
- * Returns:
- * {String} A WCS GetCoverage request XML string.
- */
- write: function(options) {
- var node = this.writeNode("wcs:GetCoverage", options);
- this.setAttributeNS(
- node, this.namespaces.xsi,
- "xsi:schemaLocation", this.schemaLocation
- );
- return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "wcs": {
- "GetCoverage": function(options) {
- var node = this.createElementNSPlus("wcs:GetCoverage", {
- attributes: {
- version: options.version || this.VERSION,
- service: 'WCS'
- }
- });
- this.writeNode("ows:Identifier", options.identifier, node);
- this.writeNode("wcs:DomainSubset", options.domainSubset, node);
- this.writeNode("wcs:Output", options.output, node);
- return node;
- },
- "DomainSubset": function(domainSubset) {
- var node = this.createElementNSPlus("wcs:DomainSubset", {});
- this.writeNode("ows:BoundingBox", domainSubset.boundingBox, node);
- if (domainSubset.temporalSubset) {
- this.writeNode("wcs:TemporalSubset", domainSubset.temporalSubset, node);
- }
- return node;
- },
- "TemporalSubset": function(temporalSubset) {
- var node = this.createElementNSPlus("wcs:TemporalSubset", {});
- for (var i=0, len=temporalSubset.timePeriods.length; i<len; ++i) {
- this.writeNode("wcs:TimePeriod", temporalSubset.timePeriods[i], node);
- }
- return node;
- },
- "TimePeriod": function(timePeriod) {
- var node = this.createElementNSPlus("wcs:TimePeriod", {});
- this.writeNode("wcs:BeginPosition", timePeriod.begin, node);
- this.writeNode("wcs:EndPosition", timePeriod.end, node);
- if (timePeriod.resolution) {
- this.writeNode("wcs:TimeResolution", timePeriod.resolution, node);
- }
- return node;
- },
- "BeginPosition": function(begin) {
- var node = this.createElementNSPlus("wcs:BeginPosition", {
- value: begin
- });
- return node;
- },
- "EndPosition": function(end) {
- var node = this.createElementNSPlus("wcs:EndPosition", {
- value: end
- });
- return node;
- },
- "TimeResolution": function(resolution) {
- var node = this.createElementNSPlus("wcs:TimeResolution", {
- value: resolution
- });
- return node;
- },
- "Output": function(output) {
- var node = this.createElementNSPlus("wcs:Output", {
- attributes: {
- format: output.format,
- store: output.store
- }
- });
- if (output.gridCRS) {
- this.writeNode("wcs:GridCRS", output.gridCRS, node);
- }
- return node;
- },
- "GridCRS": function(gridCRS) {
- var node = this.createElementNSPlus("wcs:GridCRS", {});
- this.writeNode("wcs:GridBaseCRS", gridCRS.baseCRS, node);
- if (gridCRS.type) {
- this.writeNode("wcs:GridType", gridCRS.type, node);
- }
- if (gridCRS.origin) {
- this.writeNode("wcs:GridOrigin", gridCRS.origin, node);
- }
- this.writeNode("wcs:GridOffsets", gridCRS.offsets, node);
- if (gridCRS.CS) {
- this.writeNode("wcs:GridCS", gridCRS.CS, node);
- }
- return node;
- },
- "GridBaseCRS": function(baseCRS) {
- return this.createElementNSPlus("wcs:GridBaseCRS", {
- value: baseCRS
- });
- },
- "GridOrigin": function(origin) {
- return this.createElementNSPlus("wcs:GridOrigin", {
- value: origin
- });
- },
- "GridType": function(type) {
- return this.createElementNSPlus("wcs:GridType", {
- value: type
- });
- },
- "GridOffsets": function(offsets) {
- return this.createElementNSPlus("wcs:GridOffsets", {
- value: offsets
- });
- },
- "GridCS": function(CS) {
- return this.createElementNSPlus("wcs:GridCS", {
- value: CS
- });
- }
- },
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows
- },
-
- CLASS_NAME: "OpenLayers.Format.WCSGetCoverage"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFS.js b/misc/openlayers/lib/OpenLayers/Format/WFS.js
deleted file mode 100644
index 44b03a3..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFS.js
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/GML.js
- * @requires OpenLayers/Console.js
- * @requires OpenLayers/Lang.js
- */
-
-/**
- * Class: OpenLayers.Format.WFS
- * Read/Write WFS.
- *
- * Inherits from:
- * - <OpenLayers.Format.GML>
- */
-OpenLayers.Format.WFS = OpenLayers.Class(OpenLayers.Format.GML, {
-
- /**
- * Property: layer
- * {<OpenLayers.Layer>}
- */
- layer: null,
-
- /**
- * APIProperty: wfsns
- * {String}
- */
- wfsns: "http://www.opengis.net/wfs",
-
- /**
- * Property: ogcns
- * {String}
- */
- ogcns: "http://www.opengis.net/ogc",
-
- /**
- * Constructor: OpenLayers.Format.WFS
- * Create a WFS-T formatter. This requires a layer: that layer should
- * have two properties: geometry_column and typename. The parser
- * for this format is subclassed entirely from GML: There is a writer
- * only, which uses most of the code from the GML layer, and wraps
- * it in transactional elements.
- *
- * Parameters:
- * options - {Object}
- * layer - {<OpenLayers.Layer>}
- */
- initialize: function(options, layer) {
- OpenLayers.Format.GML.prototype.initialize.apply(this, [options]);
- this.layer = layer;
- if (this.layer.featureNS) {
- this.featureNS = this.layer.featureNS;
- }
- if (this.layer.options.geometry_column) {
- this.geometryName = this.layer.options.geometry_column;
- }
- if (this.layer.options.typename) {
- this.featureName = this.layer.options.typename;
- }
- },
-
- /**
- * Method: write
- * Takes a feature list, and generates a WFS-T Transaction
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
- */
- write: function(features) {
-
- var transaction = this.createElementNS(this.wfsns, 'wfs:Transaction');
- transaction.setAttribute("version","1.0.0");
- transaction.setAttribute("service","WFS");
- for (var i=0; i < features.length; i++) {
- switch (features[i].state) {
- case OpenLayers.State.INSERT:
- transaction.appendChild(this.insert(features[i]));
- break;
- case OpenLayers.State.UPDATE:
- transaction.appendChild(this.update(features[i]));
- break;
- case OpenLayers.State.DELETE:
- transaction.appendChild(this.remove(features[i]));
- break;
- }
- }
-
- return OpenLayers.Format.XML.prototype.write.apply(this,[transaction]);
- },
-
- /**
- * Method: createFeatureXML
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- */
- createFeatureXML: function(feature) {
- var geometryNode = this.buildGeometryNode(feature.geometry);
- var geomContainer = this.createElementNS(this.featureNS, "feature:" + this.geometryName);
- geomContainer.appendChild(geometryNode);
- var featureContainer = this.createElementNS(this.featureNS, "feature:" + this.featureName);
- featureContainer.appendChild(geomContainer);
- for(var attr in feature.attributes) {
- var attrText = this.createTextNode(feature.attributes[attr]);
- var nodename = attr;
- if (attr.search(":") != -1) {
- nodename = attr.split(":")[1];
- }
- var attrContainer = this.createElementNS(this.featureNS, "feature:" + nodename);
- attrContainer.appendChild(attrText);
- featureContainer.appendChild(attrContainer);
- }
- return featureContainer;
- },
-
- /**
- * Method: insert
- * Takes a feature, and generates a WFS-T Transaction "Insert"
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- */
- insert: function(feature) {
- var insertNode = this.createElementNS(this.wfsns, 'wfs:Insert');
- insertNode.appendChild(this.createFeatureXML(feature));
- return insertNode;
- },
-
- /**
- * Method: update
- * Takes a feature, and generates a WFS-T Transaction "Update"
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- */
- update: function(feature) {
- if (!feature.fid) { OpenLayers.Console.userError(OpenLayers.i18n("noFID")); }
- var updateNode = this.createElementNS(this.wfsns, 'wfs:Update');
- updateNode.setAttribute("typeName", this.featurePrefix + ':' + this.featureName);
- updateNode.setAttribute("xmlns:" + this.featurePrefix, this.featureNS);
-
- var propertyNode = this.createElementNS(this.wfsns, 'wfs:Property');
- var nameNode = this.createElementNS(this.wfsns, 'wfs:Name');
-
- var txtNode = this.createTextNode(this.geometryName);
- nameNode.appendChild(txtNode);
- propertyNode.appendChild(nameNode);
-
- var valueNode = this.createElementNS(this.wfsns, 'wfs:Value');
-
- var geometryNode = this.buildGeometryNode(feature.geometry);
-
- if(feature.layer){
- geometryNode.setAttribute(
- "srsName", feature.layer.projection.getCode()
- );
- }
-
- valueNode.appendChild(geometryNode);
-
- propertyNode.appendChild(valueNode);
- updateNode.appendChild(propertyNode);
-
- // add in attributes
- for(var propName in feature.attributes) {
- propertyNode = this.createElementNS(this.wfsns, 'wfs:Property');
- nameNode = this.createElementNS(this.wfsns, 'wfs:Name');
- nameNode.appendChild(this.createTextNode(propName));
- propertyNode.appendChild(nameNode);
- valueNode = this.createElementNS(this.wfsns, 'wfs:Value');
- valueNode.appendChild(this.createTextNode(feature.attributes[propName]));
- propertyNode.appendChild(valueNode);
- updateNode.appendChild(propertyNode);
- }
-
-
- var filterNode = this.createElementNS(this.ogcns, 'ogc:Filter');
- var filterIdNode = this.createElementNS(this.ogcns, 'ogc:FeatureId');
- filterIdNode.setAttribute("fid", feature.fid);
- filterNode.appendChild(filterIdNode);
- updateNode.appendChild(filterNode);
-
- return updateNode;
- },
-
- /**
- * Method: remove
- * Takes a feature, and generates a WFS-T Transaction "Delete"
- *
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- */
- remove: function(feature) {
- if (!feature.fid) {
- OpenLayers.Console.userError(OpenLayers.i18n("noFID"));
- return false;
- }
- var deleteNode = this.createElementNS(this.wfsns, 'wfs:Delete');
- deleteNode.setAttribute("typeName", this.featurePrefix + ':' + this.featureName);
- deleteNode.setAttribute("xmlns:" + this.featurePrefix, this.featureNS);
-
- var filterNode = this.createElementNS(this.ogcns, 'ogc:Filter');
- var filterIdNode = this.createElementNS(this.ogcns, 'ogc:FeatureId');
- filterIdNode.setAttribute("fid", feature.fid);
- filterNode.appendChild(filterIdNode);
- deleteNode.appendChild(filterNode);
-
- return deleteNode;
- },
-
- /**
- * APIMethod: destroy
- * Remove ciruclar ref to layer
- */
- destroy: function() {
- this.layer = null;
- },
-
- CLASS_NAME: "OpenLayers.Format.WFS"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js b/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js
deleted file mode 100644
index 61af085..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.WFSCapabilities
- * Read WFS Capabilities.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.1.0".
- */
- defaultVersion: "1.1.0",
-
- /**
- * Constructor: OpenLayers.Format.WFSCapabilities
- * Create a new parser for WFS capabilities.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return a list of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named layers.
- */
-
- CLASS_NAME: "OpenLayers.Format.WFSCapabilities"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js b/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js
deleted file mode 100644
index c4ec517..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WFSCapabilities.js
- */
-
-/**
- * Class: OpenLayers.Format.WFSCapabilities.v1
- * Abstract class not to be instantiated directly.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WFSCapabilities.v1 = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- wfs: "http://www.opengis.net/wfs",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance",
- ows: "http://www.opengis.net/ows"
- },
-
-
- /**
- * APIProperty: errorProperty
- * {String} Which property of the returned object to check for in order to
- * determine whether or not parsing has failed. In the case that the
- * errorProperty is undefined on the returned object, the document will be
- * run through an OGCExceptionReport parser.
- */
- errorProperty: "featureTypeList",
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "wfs",
-
- /**
- * Constructor: OpenLayers.Format.WFSCapabilities.v1_1
- * Create an instance of one of the subclasses.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return a list of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named layers.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var raw = data;
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var capabilities = {};
- this.readNode(data, capabilities);
- return capabilities;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wfs": {
- "WFS_Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "FeatureTypeList": function(node, request) {
- request.featureTypeList = {
- featureTypes: []
- };
- this.readChildNodes(node, request.featureTypeList);
- },
- "FeatureType": function(node, featureTypeList) {
- var featureType = {};
- this.readChildNodes(node, featureType);
- featureTypeList.featureTypes.push(featureType);
- },
- "Name": function(node, obj) {
- var name = this.getChildValue(node);
- if(name) {
- var parts = name.split(":");
- obj.name = parts.pop();
- if(parts.length > 0) {
- obj.featureNS = this.lookupNamespaceURI(node, parts[0]);
- }
- }
- },
- "Title": function(node, obj) {
- var title = this.getChildValue(node);
- if(title) {
- obj.title = title;
- }
- },
- "Abstract": function(node, obj) {
- var abst = this.getChildValue(node);
- if(abst) {
- obj["abstract"] = abst;
- }
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.WFSCapabilities.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
deleted file mode 100644
index 6b202c7..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WFSCapabilities/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.WFSCapabilities/v1_0_0
- * Read WFS Capabilities version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WFSCapabilities.v1>
- */
-OpenLayers.Format.WFSCapabilities.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.WFSCapabilities.v1, {
-
- /**
- * Constructor: OpenLayers.Format.WFSCapabilities.v1_0_0
- * Create a new parser for WFS capabilities version 1.0.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wfs": OpenLayers.Util.applyDefaults({
- "Service": function(node, capabilities) {
- capabilities.service = {};
- this.readChildNodes(node, capabilities.service);
- },
- "Fees": function(node, service) {
- var fees = this.getChildValue(node);
- if (fees && fees.toLowerCase() != "none") {
- service.fees = fees;
- }
- },
- "AccessConstraints": function(node, service) {
- var constraints = this.getChildValue(node);
- if (constraints && constraints.toLowerCase() != "none") {
- service.accessConstraints = constraints;
- }
- },
- "OnlineResource": function(node, service) {
- var onlineResource = this.getChildValue(node);
- if (onlineResource && onlineResource.toLowerCase() != "none") {
- service.onlineResource = onlineResource;
- }
- },
- "Keywords": function(node, service) {
- var keywords = this.getChildValue(node);
- if (keywords && keywords.toLowerCase() != "none") {
- service.keywords = keywords.split(', ');
- }
- },
- "Capability": function(node, capabilities) {
- capabilities.capability = {};
- this.readChildNodes(node, capabilities.capability);
- },
- "Request": function(node, obj) {
- obj.request = {};
- this.readChildNodes(node, obj.request);
- },
- "GetFeature": function(node, request) {
- request.getfeature = {
- href: {}, // DCPType
- formats: [] // ResultFormat
- };
- this.readChildNodes(node, request.getfeature);
- },
- "ResultFormat": function(node, obj) {
- var children = node.childNodes;
- var childNode;
- for(var i=0; i<children.length; i++) {
- childNode = children[i];
- if(childNode.nodeType == 1) {
- obj.formats.push(childNode.nodeName);
- }
- }
- },
- "DCPType": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "HTTP": function(node, obj) {
- this.readChildNodes(node, obj.href);
- },
- "Get": function(node, obj) {
- obj.get = node.getAttribute("onlineResource");
- },
- "Post": function(node, obj) {
- obj.post = node.getAttribute("onlineResource");
- },
- "SRS": function(node, obj) {
- var srs = this.getChildValue(node);
- if (srs) {
- obj.srs = srs;
- }
- }
- }, OpenLayers.Format.WFSCapabilities.v1.prototype.readers["wfs"])
- },
-
- CLASS_NAME: "OpenLayers.Format.WFSCapabilities.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
deleted file mode 100644
index 84f6b4b..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WFSCapabilities/v1.js
- * @requires OpenLayers/Format/OWSCommon/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.WFSCapabilities/v1_1_0
- * Read WFS Capabilities version 1.1.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WFSCapabilities>
- */
-OpenLayers.Format.WFSCapabilities.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.WFSCapabilities.v1, {
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constructor: OpenLayers.Format.WFSCapabilities.v1_1_0
- * Create a new parser for WFS capabilities version 1.1.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wfs": OpenLayers.Util.applyDefaults({
- "DefaultSRS": function(node, obj) {
- var defaultSRS = this.getChildValue(node);
- if (defaultSRS) {
- obj.srs = defaultSRS;
- }
- }
- }, OpenLayers.Format.WFSCapabilities.v1.prototype.readers["wfs"]),
- "ows": OpenLayers.Format.OWSCommon.v1.prototype.readers.ows
- },
-
- CLASS_NAME: "OpenLayers.Format.WFSCapabilities.v1_1_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js b/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js
deleted file mode 100644
index 416e845..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFSDescribeFeatureType.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/OGCExceptionReport.js
- */
-
-/**
- * Class: OpenLayers.Format.WFSDescribeFeatureType
- * Read WFS DescribeFeatureType response
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WFSDescribeFeatureType = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g)
- },
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- xsd: "http://www.w3.org/2001/XMLSchema"
- },
-
- /**
- * Constructor: OpenLayers.Format.WFSDescribeFeatureType
- * Create a new parser for WFS DescribeFeatureType responses.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "xsd": {
- "schema": function(node, obj) {
- var complexTypes = [];
- var customTypes = {};
- var schema = {
- complexTypes: complexTypes,
- customTypes: customTypes
- };
- var i, len;
-
- this.readChildNodes(node, schema);
-
- var attributes = node.attributes;
- var attr, name;
- for(i=0, len=attributes.length; i<len; ++i) {
- attr = attributes[i];
- name = attr.name;
- if(name.indexOf("xmlns") === 0) {
- this.setNamespace(name.split(":")[1] || "", attr.value);
- } else {
- obj[name] = attr.value;
- }
- }
- obj.featureTypes = complexTypes;
- obj.targetPrefix = this.namespaceAlias[obj.targetNamespace];
-
- // map complexTypes to names of customTypes
- var complexType, customType;
- for(i=0, len=complexTypes.length; i<len; ++i) {
- complexType = complexTypes[i];
- customType = customTypes[complexType.typeName];
- if(customTypes[complexType.typeName]) {
- complexType.typeName = customType.name;
- }
- }
- },
- "complexType": function(node, obj) {
- var complexType = {
- // this is a temporary typeName, it will be overwritten by
- // the schema reader with the metadata found in the
- // customTypes hash
- "typeName": node.getAttribute("name")
- };
- this.readChildNodes(node, complexType);
- obj.complexTypes.push(complexType);
- },
- "complexContent": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "extension": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "sequence": function(node, obj) {
- var sequence = {
- elements: []
- };
- this.readChildNodes(node, sequence);
- obj.properties = sequence.elements;
- },
- "element": function(node, obj) {
- var type;
- if(obj.elements) {
- var element = {};
- var attributes = node.attributes;
- var attr;
- for(var i=0, len=attributes.length; i<len; ++i) {
- attr = attributes[i];
- element[attr.name] = attr.value;
- }
-
- type = element.type;
- if(!type) {
- type = {};
- this.readChildNodes(node, type);
- element.restriction = type;
- element.type = type.base;
- }
- var fullType = type.base || type;
- element.localType = fullType.split(":").pop();
- obj.elements.push(element);
- this.readChildNodes(node, element);
- }
-
- if(obj.complexTypes) {
- type = node.getAttribute("type");
- var localType = type.split(":").pop();
- obj.customTypes[localType] = {
- "name": node.getAttribute("name"),
- "type": type
- };
- }
- },
- "annotation": function(node, obj) {
- obj.annotation = {};
- this.readChildNodes(node, obj.annotation);
- },
- "appinfo": function(node, obj) {
- if (!obj.appinfo) {
- obj.appinfo = [];
- }
- obj.appinfo.push(this.getChildValue(node));
- },
- "documentation": function(node, obj) {
- if (!obj.documentation) {
- obj.documentation = [];
- }
- var value = this.getChildValue(node);
- obj.documentation.push({
- lang: node.getAttribute("xml:lang"),
- textContent: value.replace(this.regExes.trimSpace, "")
- });
- },
- "simpleType": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "restriction": function(node, obj) {
- obj.base = node.getAttribute("base");
- this.readRestriction(node, obj);
- }
- }
- },
-
- /**
- * Method: readRestriction
- * Reads restriction defined in the child nodes of a restriction element
- *
- * Parameters:
- * node - {DOMElement} the node to parse
- * obj - {Object} the object that receives the read result
- */
- readRestriction: function(node, obj) {
- var children = node.childNodes;
- var child, nodeName, value;
- for(var i=0, len=children.length; i<len; ++i) {
- child = children[i];
- if(child.nodeType == 1) {
- nodeName = child.nodeName.split(":").pop();
- value = child.getAttribute("value");
- if(!obj[nodeName]) {
- obj[nodeName] = value;
- } else {
- if(typeof obj[nodeName] == "string") {
- obj[nodeName] = [obj[nodeName]];
- }
- obj[nodeName].push(value);
- }
- }
- }
- },
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {DOMElement|String} A WFS DescribeFeatureType document.
- *
- * Returns:
- * {Object} An object representing the WFS DescribeFeatureType response.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var schema = {};
- if (data.nodeName.split(":").pop() === 'ExceptionReport') {
- // an exception must have occurred, so parse it
- var parser = new OpenLayers.Format.OGCExceptionReport();
- schema.error = parser.read(data);
- } else {
- this.readNode(data, schema);
- }
- return schema;
- },
-
- CLASS_NAME: "OpenLayers.Format.WFSDescribeFeatureType"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFST.js b/misc/openlayers/lib/OpenLayers/Format/WFST.js
deleted file mode 100644
index eb3d9d9..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFST.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format.js
- */
-
-/**
- * Function: OpenLayers.Format.WFST
- * Used to create a versioned WFS protocol. Default version is 1.0.0.
- *
- * Returns:
- * {<OpenLayers.Format>} A WFST format of the given version.
- */
-OpenLayers.Format.WFST = function(options) {
- options = OpenLayers.Util.applyDefaults(
- options, OpenLayers.Format.WFST.DEFAULTS
- );
- var cls = OpenLayers.Format.WFST["v"+options.version.replace(/\./g, "_")];
- if(!cls) {
- throw "Unsupported WFST version: " + options.version;
- }
- return new cls(options);
-};
-
-/**
- * Constant: OpenLayers.Format.WFST.DEFAULTS
- * {Object} Default properties for the WFST format.
- */
-OpenLayers.Format.WFST.DEFAULTS = {
- "version": "1.0.0"
-};
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js b/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js
deleted file mode 100644
index 306ba6f..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFST/v1.js
+++ /dev/null
@@ -1,446 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/WFST.js
- * @requires OpenLayers/Filter/Spatial.js
- * @requires OpenLayers/Filter/FeatureId.js
- */
-
-/**
- * Class: OpenLayers.Format.WFST.v1
- * Superclass for WFST parsers.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance",
- wfs: "http://www.opengis.net/wfs",
- gml: "http://www.opengis.net/gml",
- ogc: "http://www.opengis.net/ogc",
- ows: "http://www.opengis.net/ows"
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "wfs",
-
- /**
- * Property: version
- * {String} WFS version number.
- */
- version: null,
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocations: null,
-
- /**
- * APIProperty: srsName
- * {String} URI for spatial reference system.
- */
- srsName: null,
-
- /**
- * APIProperty: extractAttributes
- * {Boolean} Extract attributes from GML. Default is true.
- */
- extractAttributes: true,
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x)
- * Changing is not recommended, a new Format should be instantiated.
- */
- xy: true,
-
- /**
- * Property: stateName
- * {Object} Maps feature states to node names.
- */
- stateName: null,
-
- /**
- * Constructor: OpenLayers.Format.WFST.v1
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.WFST.v1_0_0> or <OpenLayers.Format.WFST.v1_1_0>
- * constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- // set state name mapping
- this.stateName = {};
- this.stateName[OpenLayers.State.INSERT] = "wfs:Insert";
- this.stateName[OpenLayers.State.UPDATE] = "wfs:Update";
- this.stateName[OpenLayers.State.DELETE] = "wfs:Delete";
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Method: getSrsName
- */
- getSrsName: function(feature, options) {
- var srsName = options && options.srsName;
- if(!srsName) {
- if(feature && feature.layer) {
- srsName = feature.layer.projection.getCode();
- } else {
- srsName = this.srsName;
- }
- }
- return srsName;
- },
-
- /**
- * APIMethod: read
- * Parse the response from a transaction. Because WFS is split into
- * Transaction requests (create, update, and delete) and GetFeature
- * requests (read), this method handles parsing of both types of
- * responses.
- *
- * Parameters:
- * data - {String | Document} The WFST document to read
- * options - {Object} Options for the reader
- *
- * Valid options properties:
- * output - {String} either "features" or "object". The default is
- * "features", which means that the method will return an array of
- * features. If set to "object", an object with a "features" property
- * and other properties read by the parser will be returned.
- *
- * Returns:
- * {Array | Object} Output depending on the output option.
- */
- read: function(data, options) {
- options = options || {};
- OpenLayers.Util.applyDefaults(options, {
- output: "features"
- });
-
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var obj = {};
- if(data) {
- this.readNode(data, obj, true);
- }
- if(obj.features && options.output === "features") {
- obj = obj.features;
- }
- return obj;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wfs": {
- "FeatureCollection": function(node, obj) {
- obj.features = [];
- this.readChildNodes(node, obj);
- }
- }
- },
-
- /**
- * Method: write
- * Given an array of features, write a WFS transaction. This assumes
- * the features have a state property that determines the operation
- * type - insert, update, or delete.
- *
- * Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)} A list of features. See
- * below for a more detailed description of the influence of the
- * feature's *modified* property.
- * options - {Object}
- *
- * feature.modified rules:
- * If a feature has a modified property set, the following checks will be
- * made before a feature's geometry or attribute is included in an Update
- * transaction:
- * - *modified* is not set at all: The geometry and all attributes will be
- * included.
- * - *modified.geometry* is set (null or a geometry): The geometry will be
- * included. If *modified.attributes* is not set, all attributes will
- * be included.
- * - *modified.attributes* is set: Only the attributes set (i.e. to null or
- * a value) in *modified.attributes* will be included.
- * If *modified.geometry* is not set, the geometry will not be included.
- *
- * Valid options include:
- * - *multi* {Boolean} If set to true, geometries will be casted to
- * Multi geometries before writing.
- *
- * Returns:
- * {String} A serialized WFS transaction.
- */
- write: function(features, options) {
- var node = this.writeNode("wfs:Transaction", {
- features:features,
- options: options
- });
- var value = this.schemaLocationAttr();
- if(value) {
- this.setAttributeNS(
- node, this.namespaces["xsi"], "xsi:schemaLocation", value
- );
- }
- return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "wfs": {
- "GetFeature": function(options) {
- var node = this.createElementNSPlus("wfs:GetFeature", {
- attributes: {
- service: "WFS",
- version: this.version,
- handle: options && options.handle,
- outputFormat: options && options.outputFormat,
- maxFeatures: options && options.maxFeatures,
- "xsi:schemaLocation": this.schemaLocationAttr(options)
- }
- });
- if (typeof this.featureType == "string") {
- this.writeNode("Query", options, node);
- } else {
- for (var i=0,len = this.featureType.length; i<len; i++) {
- options.featureType = this.featureType[i];
- this.writeNode("Query", options, node);
- }
- }
- return node;
- },
- "Transaction": function(obj) {
- obj = obj || {};
- var options = obj.options || {};
- var node = this.createElementNSPlus("wfs:Transaction", {
- attributes: {
- service: "WFS",
- version: this.version,
- handle: options.handle
- }
- });
- var i, len;
- var features = obj.features;
- if(features) {
- // temporarily re-assigning geometry types
- if (options.multi === true) {
- OpenLayers.Util.extend(this.geometryTypes, {
- "OpenLayers.Geometry.Point": "MultiPoint",
- "OpenLayers.Geometry.LineString": (this.multiCurve === true) ? "MultiCurve": "MultiLineString",
- "OpenLayers.Geometry.Polygon": (this.multiSurface === true) ? "MultiSurface" : "MultiPolygon"
- });
- }
- var name, feature;
- for(i=0, len=features.length; i<len; ++i) {
- feature = features[i];
- name = this.stateName[feature.state];
- if(name) {
- this.writeNode(name, {
- feature: feature,
- options: options
- }, node);
- }
- }
- // switch back to original geometry types assignment
- if (options.multi === true) {
- this.setGeometryTypes();
- }
- }
- if (options.nativeElements) {
- for (i=0, len=options.nativeElements.length; i<len; ++i) {
- this.writeNode("wfs:Native",
- options.nativeElements[i], node);
- }
- }
- return node;
- },
- "Native": function(nativeElement) {
- var node = this.createElementNSPlus("wfs:Native", {
- attributes: {
- vendorId: nativeElement.vendorId,
- safeToIgnore: nativeElement.safeToIgnore
- },
- value: nativeElement.value
- });
- return node;
- },
- "Insert": function(obj) {
- var feature = obj.feature;
- var options = obj.options;
- var node = this.createElementNSPlus("wfs:Insert", {
- attributes: {
- handle: options && options.handle
- }
- });
- this.srsName = this.getSrsName(feature);
- this.writeNode("feature:_typeName", feature, node);
- return node;
- },
- "Update": function(obj) {
- var feature = obj.feature;
- var options = obj.options;
- var node = this.createElementNSPlus("wfs:Update", {
- attributes: {
- handle: options && options.handle,
- typeName: (this.featureNS ? this.featurePrefix + ":" : "") +
- this.featureType
- }
- });
- if(this.featureNS) {
- node.setAttribute("xmlns:" + this.featurePrefix, this.featureNS);
- }
-
- // add in geometry
- var modified = feature.modified;
- if (this.geometryName !== null && (!modified || modified.geometry !== undefined)) {
- this.srsName = this.getSrsName(feature);
- this.writeNode(
- "Property", {name: this.geometryName, value: feature.geometry}, node
- );
- }
-
- // add in attributes
- for(var key in feature.attributes) {
- if(feature.attributes[key] !== undefined &&
- (!modified || !modified.attributes ||
- (modified.attributes && modified.attributes[key] !== undefined))) {
- this.writeNode(
- "Property", {name: key, value: feature.attributes[key]}, node
- );
- }
- }
-
- // add feature id filter
- this.writeNode("ogc:Filter", new OpenLayers.Filter.FeatureId({
- fids: [feature.fid]
- }), node);
-
- return node;
- },
- "Property": function(obj) {
- var node = this.createElementNSPlus("wfs:Property");
- this.writeNode("Name", obj.name, node);
- if(obj.value !== null) {
- this.writeNode("Value", obj.value, node);
- }
- return node;
- },
- "Name": function(name) {
- return this.createElementNSPlus("wfs:Name", {value: name});
- },
- "Value": function(obj) {
- var node;
- if(obj instanceof OpenLayers.Geometry) {
- node = this.createElementNSPlus("wfs:Value");
- var geom = this.writeNode("feature:_geometry", obj).firstChild;
- node.appendChild(geom);
- } else {
- node = this.createElementNSPlus("wfs:Value", {value: obj});
- }
- return node;
- },
- "Delete": function(obj) {
- var feature = obj.feature;
- var options = obj.options;
- var node = this.createElementNSPlus("wfs:Delete", {
- attributes: {
- handle: options && options.handle,
- typeName: (this.featureNS ? this.featurePrefix + ":" : "") +
- this.featureType
- }
- });
- if(this.featureNS) {
- node.setAttribute("xmlns:" + this.featurePrefix, this.featureNS);
- }
- this.writeNode("ogc:Filter", new OpenLayers.Filter.FeatureId({
- fids: [feature.fid]
- }), node);
- return node;
- }
- }
- },
-
- /**
- * Method: schemaLocationAttr
- * Generate the xsi:schemaLocation attribute value.
- *
- * Returns:
- * {String} The xsi:schemaLocation attribute or undefined if none.
- */
- schemaLocationAttr: function(options) {
- options = OpenLayers.Util.extend({
- featurePrefix: this.featurePrefix,
- schema: this.schema
- }, options);
- var schemaLocations = OpenLayers.Util.extend({}, this.schemaLocations);
- if(options.schema) {
- schemaLocations[options.featurePrefix] = options.schema;
- }
- var parts = [];
- var uri;
- for(var key in schemaLocations) {
- uri = this.namespaces[key];
- if(uri) {
- parts.push(uri + " " + schemaLocations[key]);
- }
- }
- var value = parts.join(" ") || undefined;
- return value;
- },
-
- /**
- * Method: setFilterProperty
- * Set the property of each spatial filter.
- *
- * Parameters:
- * filter - {<OpenLayers.Filter>}
- */
- setFilterProperty: function(filter) {
- if(filter.filters) {
- for(var i=0, len=filter.filters.length; i<len; ++i) {
- OpenLayers.Format.WFST.v1.prototype.setFilterProperty.call(this, filter.filters[i]);
- }
- } else {
- if(filter instanceof OpenLayers.Filter.Spatial && !filter.property) {
- // got a spatial filter without property, so set it
- filter.property = this.geometryName;
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.WFST.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js
deleted file mode 100644
index ed81a2d..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFST/v1_0_0.js
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WFST/v1.js
- * @requires OpenLayers/Format/Filter/v1_0_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WFST.v1_0_0
- * A format for creating WFS v1.0.0 transactions. Create a new instance with the
- * <OpenLayers.Format.WFST.v1_0_0> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.Filter.v1_0_0>
- * - <OpenLayers.Format.WFST.v1>
- */
-OpenLayers.Format.WFST.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.Filter.v1_0_0, OpenLayers.Format.WFST.v1, {
-
- /**
- * Property: version
- * {String} WFS version number.
- */
- version: "1.0.0",
-
- /**
- * APIProperty: srsNameInQuery
- * {Boolean} If true the reference system is passed in Query requests
- * via the "srsName" attribute to the "wfs:Query" element, this
- * property defaults to false as it isn't WFS 1.0.0 compliant.
- */
- srsNameInQuery: false,
-
- /**
- * Property: schemaLocations
- * {Object} Properties are namespace aliases, values are schema locations.
- */
- schemaLocations: {
- "wfs": "http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"
- },
-
- /**
- * Constructor: OpenLayers.Format.WFST.v1_0_0
- * A class for parsing and generating WFS v1.0.0 transactions.
- *
- * Parameters:
- * options - {Object} Optional object whose properties will be set on the
- * instance.
- *
- * Valid options properties:
- * featureType - {String} Local (without prefix) feature typeName (required).
- * featureNS - {String} Feature namespace (optional).
- * featurePrefix - {String} Feature namespace alias (optional - only used
- * if featureNS is provided). Default is 'feature'.
- * geometryName - {String} Name of geometry attribute. Default is 'the_geom'.
- */
- initialize: function(options) {
- OpenLayers.Format.Filter.v1_0_0.prototype.initialize.apply(this, [options]);
- OpenLayers.Format.WFST.v1.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Method: readNode
- * Shorthand for applying one of the named readers given the node
- * namespace and local name. Readers take two args (node, obj) and
- * generally extend or modify the second.
- *
- * Parameters:
- * node - {DOMElement} The node to be read (required).
- * obj - {Object} The object to be modified (optional).
- * first - {Boolean} Should be set to true for the first node read. This
- * is usually the readNode call in the read method. Without this being
- * set, auto-configured properties will stick on subsequent reads.
- *
- * Returns:
- * {Object} The input object, modified (or a new one if none was provided).
- */
- readNode: function(node, obj, first) {
- // Not the superclass, only the mixin classes inherit from
- // Format.GML.v2. We need this because we don't want to get readNode
- // from the superclass's superclass, which is OpenLayers.Format.XML.
- return OpenLayers.Format.GML.v2.prototype.readNode.apply(this, arguments);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wfs": OpenLayers.Util.applyDefaults({
- "WFS_TransactionResponse": function(node, obj) {
- obj.insertIds = [];
- obj.success = false;
- this.readChildNodes(node, obj);
- },
- "InsertResult": function(node, container) {
- var obj = {fids: []};
- this.readChildNodes(node, obj);
- container.insertIds = container.insertIds.concat(obj.fids);
- },
- "TransactionResult": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Status": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "SUCCESS": function(node, obj) {
- obj.success = true;
- }
- }, OpenLayers.Format.WFST.v1.prototype.readers["wfs"]),
- "gml": OpenLayers.Format.GML.v2.prototype.readers["gml"],
- "feature": OpenLayers.Format.GML.v2.prototype.readers["feature"],
- "ogc": OpenLayers.Format.Filter.v1_0_0.prototype.readers["ogc"]
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "wfs": OpenLayers.Util.applyDefaults({
- "Query": function(options) {
- options = OpenLayers.Util.extend({
- featureNS: this.featureNS,
- featurePrefix: this.featurePrefix,
- featureType: this.featureType,
- srsName: this.srsName,
- srsNameInQuery: this.srsNameInQuery
- }, options);
- var prefix = options.featurePrefix;
- var node = this.createElementNSPlus("wfs:Query", {
- attributes: {
- typeName: (prefix ? prefix + ":" : "") +
- options.featureType
- }
- });
- if(options.srsNameInQuery && options.srsName) {
- node.setAttribute("srsName", options.srsName);
- }
- if(options.featureNS) {
- node.setAttribute("xmlns:" + prefix, options.featureNS);
- }
- if(options.propertyNames) {
- for(var i=0,len = options.propertyNames.length; i<len; i++) {
- this.writeNode(
- "ogc:PropertyName",
- {property: options.propertyNames[i]},
- node
- );
- }
- }
- if(options.filter) {
- this.setFilterProperty(options.filter);
- this.writeNode("ogc:Filter", options.filter, node);
- }
- return node;
- }
- }, OpenLayers.Format.WFST.v1.prototype.writers["wfs"]),
- "gml": OpenLayers.Format.GML.v2.prototype.writers["gml"],
- "feature": OpenLayers.Format.GML.v2.prototype.writers["feature"],
- "ogc": OpenLayers.Format.Filter.v1_0_0.prototype.writers["ogc"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WFST.v1_0_0"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js
deleted file mode 100644
index ff2a88d..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WFST/v1_1_0.js
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WFST/v1.js
- * @requires OpenLayers/Format/Filter/v1_1_0.js
- * @requires OpenLayers/Format/OWSCommon/v1_0_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WFST.v1_1_0
- * A format for creating WFS v1.1.0 transactions. Create a new instance with the
- * <OpenLayers.Format.WFST.v1_1_0> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format.Filter.v1_1_0>
- * - <OpenLayers.Format.WFST.v1>
- */
-OpenLayers.Format.WFST.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.Filter.v1_1_0, OpenLayers.Format.WFST.v1, {
-
- /**
- * Property: version
- * {String} WFS version number.
- */
- version: "1.1.0",
-
- /**
- * Property: schemaLocations
- * {Object} Properties are namespace aliases, values are schema locations.
- */
- schemaLocations: {
- "wfs": "http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"
- },
-
- /**
- * Constructor: OpenLayers.Format.WFST.v1_1_0
- * A class for parsing and generating WFS v1.1.0 transactions.
- *
- * To read additional information like hit count (numberOfFeatures) from
- * the FeatureCollection, call the <OpenLayers.Format.WFST.v1.read> method
- * with {output: "object"} as 2nd argument. Note that it is possible to
- * just request the hit count from a WFS 1.1.0 server with the
- * resultType="hits" request parameter.
- *
- * Parameters:
- * options - {Object} Optional object whose properties will be set on the
- * instance.
- *
- * Valid options properties:
- * featureType - {String} Local (without prefix) feature typeName (required).
- * featureNS - {String} Feature namespace (optional).
- * featurePrefix - {String} Feature namespace alias (optional - only used
- * if featureNS is provided). Default is 'feature'.
- * geometryName - {String} Name of geometry attribute. Default is 'the_geom'.
- */
- initialize: function(options) {
- OpenLayers.Format.Filter.v1_1_0.prototype.initialize.apply(this, [options]);
- OpenLayers.Format.WFST.v1.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Method: readNode
- * Shorthand for applying one of the named readers given the node
- * namespace and local name. Readers take two args (node, obj) and
- * generally extend or modify the second.
- *
- * Parameters:
- * node - {DOMElement} The node to be read (required).
- * obj - {Object} The object to be modified (optional).
- * first - {Boolean} Should be set to true for the first node read. This
- * is usually the readNode call in the read method. Without this being
- * set, auto-configured properties will stick on subsequent reads.
- *
- * Returns:
- * {Object} The input object, modified (or a new one if none was provided).
- */
- readNode: function(node, obj, first) {
- // Not the superclass, only the mixin classes inherit from
- // Format.GML.v3. We need this because we don't want to get readNode
- // from the superclass's superclass, which is OpenLayers.Format.XML.
- return OpenLayers.Format.GML.v3.prototype.readNode.apply(this, arguments);
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wfs": OpenLayers.Util.applyDefaults({
- "FeatureCollection": function(node, obj) {
- obj.numberOfFeatures = parseInt(node.getAttribute(
- "numberOfFeatures"));
- OpenLayers.Format.WFST.v1.prototype.readers["wfs"]["FeatureCollection"].apply(
- this, arguments);
- },
- "TransactionResponse": function(node, obj) {
- obj.insertIds = [];
- obj.success = false;
- this.readChildNodes(node, obj);
- },
- "TransactionSummary": function(node, obj) {
- // this is a limited test of success
- obj.success = true;
- },
- "InsertResults": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Feature": function(node, container) {
- var obj = {fids: []};
- this.readChildNodes(node, obj);
- container.insertIds.push(obj.fids[0]);
- }
- }, OpenLayers.Format.WFST.v1.prototype.readers["wfs"]),
- "gml": OpenLayers.Format.GML.v3.prototype.readers["gml"],
- "feature": OpenLayers.Format.GML.v3.prototype.readers["feature"],
- "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.readers["ogc"],
- "ows": OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers["ows"]
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "wfs": OpenLayers.Util.applyDefaults({
- "GetFeature": function(options) {
- var node = OpenLayers.Format.WFST.v1.prototype.writers["wfs"]["GetFeature"].apply(this, arguments);
- options && this.setAttributes(node, {
- resultType: options.resultType,
- startIndex: options.startIndex,
- count: options.count
- });
- return node;
- },
- "Query": function(options) {
- options = OpenLayers.Util.extend({
- featureNS: this.featureNS,
- featurePrefix: this.featurePrefix,
- featureType: this.featureType,
- srsName: this.srsName
- }, options);
- var prefix = options.featurePrefix;
- var node = this.createElementNSPlus("wfs:Query", {
- attributes: {
- typeName: (prefix ? prefix + ":" : "") +
- options.featureType,
- srsName: options.srsName
- }
- });
- if(options.featureNS) {
- node.setAttribute("xmlns:" + prefix, options.featureNS);
- }
- if(options.propertyNames) {
- for(var i=0,len = options.propertyNames.length; i<len; i++) {
- this.writeNode(
- "wfs:PropertyName",
- {property: options.propertyNames[i]},
- node
- );
- }
- }
- if(options.filter) {
- OpenLayers.Format.WFST.v1_1_0.prototype.setFilterProperty.call(this, options.filter);
- this.writeNode("ogc:Filter", options.filter, node);
- }
- return node;
- },
- "PropertyName": function(obj) {
- return this.createElementNSPlus("wfs:PropertyName", {
- value: obj.property
- });
- }
- }, OpenLayers.Format.WFST.v1.prototype.writers["wfs"]),
- "gml": OpenLayers.Format.GML.v3.prototype.writers["gml"],
- "feature": OpenLayers.Format.GML.v3.prototype.writers["feature"],
- "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.writers["ogc"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WFST.v1_1_0"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WKT.js b/misc/openlayers/lib/OpenLayers/Format/WKT.js
deleted file mode 100644
index a7a7b2e..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WKT.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format.js
- * @requires OpenLayers/Feature/Vector.js
- * @requires OpenLayers/Geometry/Point.js
- * @requires OpenLayers/Geometry/MultiPoint.js
- * @requires OpenLayers/Geometry/LineString.js
- * @requires OpenLayers/Geometry/MultiLineString.js
- * @requires OpenLayers/Geometry/Polygon.js
- * @requires OpenLayers/Geometry/MultiPolygon.js
- */
-
-/**
- * Class: OpenLayers.Format.WKT
- * Class for reading and writing Well-Known Text. Create a new instance
- * with the <OpenLayers.Format.WKT> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
-
- /**
- * Constructor: OpenLayers.Format.WKT
- * Create a new parser for WKT
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance
- *
- * Returns:
- * {<OpenLayers.Format.WKT>} A new WKT parser.
- */
- initialize: function(options) {
- this.regExes = {
- 'typeStr': /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,
- 'spaces': /\s+/,
- 'parenComma': /\)\s*,\s*\(/,
- 'doubleParenComma': /\)\s*\)\s*,\s*\(\s*\(/, // can't use {2} here
- 'trimParens': /^\s*\(?(.*?)\)?\s*$/
- };
- OpenLayers.Format.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Deserialize a WKT string and return a vector feature or an
- * array of vector features. Supports WKT for POINT, MULTIPOINT,
- * LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, and
- * GEOMETRYCOLLECTION.
- *
- * Parameters:
- * wkt - {String} A WKT string
- *
- * Returns:
- * {<OpenLayers.Feature.Vector>|Array} A feature or array of features for
- * GEOMETRYCOLLECTION WKT.
- */
- read: function(wkt) {
- var features, type, str;
- wkt = wkt.replace(/[\n\r]/g, " ");
- var matches = this.regExes.typeStr.exec(wkt);
- if(matches) {
- type = matches[1].toLowerCase();
- str = matches[2];
- if(this.parse[type]) {
- features = this.parse[type].apply(this, [str]);
- }
- if (this.internalProjection && this.externalProjection) {
- if (features &&
- features.CLASS_NAME == "OpenLayers.Feature.Vector") {
- features.geometry.transform(this.externalProjection,
- this.internalProjection);
- } else if (features &&
- type != "geometrycollection" &&
- typeof features == "object") {
- for (var i=0, len=features.length; i<len; i++) {
- var component = features[i];
- component.geometry.transform(this.externalProjection,
- this.internalProjection);
- }
- }
- }
- }
- return features;
- },
-
- /**
- * APIMethod: write
- * Serialize a feature or array of features into a WKT string.
- *
- * Parameters:
- * features - {<OpenLayers.Feature.Vector>|Array} A feature or array of
- * features
- *
- * Returns:
- * {String} The WKT string representation of the input geometries
- */
- write: function(features) {
- var collection, geometry, isCollection;
- if (features.constructor == Array) {
- collection = features;
- isCollection = true;
- } else {
- collection = [features];
- isCollection = false;
- }
- var pieces = [];
- if (isCollection) {
- pieces.push('GEOMETRYCOLLECTION(');
- }
- for (var i=0, len=collection.length; i<len; ++i) {
- if (isCollection && i>0) {
- pieces.push(',');
- }
- geometry = collection[i].geometry;
- pieces.push(this.extractGeometry(geometry));
- }
- if (isCollection) {
- pieces.push(')');
- }
- return pieces.join('');
- },
-
- /**
- * Method: extractGeometry
- * Entry point to construct the WKT for a single Geometry object.
- *
- * Parameters:
- * geometry - {<OpenLayers.Geometry.Geometry>}
- *
- * Returns:
- * {String} A WKT string of representing the geometry
- */
- extractGeometry: function(geometry) {
- var type = geometry.CLASS_NAME.split('.')[2].toLowerCase();
- if (!this.extract[type]) {
- return null;
- }
- if (this.internalProjection && this.externalProjection) {
- geometry = geometry.clone();
- geometry.transform(this.internalProjection, this.externalProjection);
- }
- var wktType = type == 'collection' ? 'GEOMETRYCOLLECTION' : type.toUpperCase();
- var data = wktType + '(' + this.extract[type].apply(this, [geometry]) + ')';
- return data;
- },
-
- /**
- * Object with properties corresponding to the geometry types.
- * Property values are functions that do the actual data extraction.
- */
- extract: {
- /**
- * Return a space delimited string of point coordinates.
- * @param {OpenLayers.Geometry.Point} point
- * @returns {String} A string of coordinates representing the point
- */
- 'point': function(point) {
- return point.x + ' ' + point.y;
- },
-
- /**
- * Return a comma delimited string of point coordinates from a multipoint.
- * @param {OpenLayers.Geometry.MultiPoint} multipoint
- * @returns {String} A string of point coordinate strings representing
- * the multipoint
- */
- 'multipoint': function(multipoint) {
- var array = [];
- for(var i=0, len=multipoint.components.length; i<len; ++i) {
- array.push('(' +
- this.extract.point.apply(this, [multipoint.components[i]]) +
- ')');
- }
- return array.join(',');
- },
-
- /**
- * Return a comma delimited string of point coordinates from a line.
- * @param {OpenLayers.Geometry.LineString} linestring
- * @returns {String} A string of point coordinate strings representing
- * the linestring
- */
- 'linestring': function(linestring) {
- var array = [];
- for(var i=0, len=linestring.components.length; i<len; ++i) {
- array.push(this.extract.point.apply(this, [linestring.components[i]]));
- }
- return array.join(',');
- },
-
- /**
- * Return a comma delimited string of linestring strings from a multilinestring.
- * @param {OpenLayers.Geometry.MultiLineString} multilinestring
- * @returns {String} A string of of linestring strings representing
- * the multilinestring
- */
- 'multilinestring': function(multilinestring) {
- var array = [];
- for(var i=0, len=multilinestring.components.length; i<len; ++i) {
- array.push('(' +
- this.extract.linestring.apply(this, [multilinestring.components[i]]) +
- ')');
- }
- return array.join(',');
- },
-
- /**
- * Return a comma delimited string of linear ring arrays from a polygon.
- * @param {OpenLayers.Geometry.Polygon} polygon
- * @returns {String} An array of linear ring arrays representing the polygon
- */
- 'polygon': function(polygon) {
- var array = [];
- for(var i=0, len=polygon.components.length; i<len; ++i) {
- array.push('(' +
- this.extract.linestring.apply(this, [polygon.components[i]]) +
- ')');
- }
- return array.join(',');
- },
-
- /**
- * Return an array of polygon arrays from a multipolygon.
- * @param {OpenLayers.Geometry.MultiPolygon} multipolygon
- * @returns {String} An array of polygon arrays representing
- * the multipolygon
- */
- 'multipolygon': function(multipolygon) {
- var array = [];
- for(var i=0, len=multipolygon.components.length; i<len; ++i) {
- array.push('(' +
- this.extract.polygon.apply(this, [multipolygon.components[i]]) +
- ')');
- }
- return array.join(',');
- },
-
- /**
- * Return the WKT portion between 'GEOMETRYCOLLECTION(' and ')' for an <OpenLayers.Geometry.Collection>
- * @param {OpenLayers.Geometry.Collection} collection
- * @returns {String} internal WKT representation of the collection
- */
- 'collection': function(collection) {
- var array = [];
- for(var i=0, len=collection.components.length; i<len; ++i) {
- array.push(this.extractGeometry.apply(this, [collection.components[i]]));
- }
- return array.join(',');
- }
-
- },
-
- /**
- * Object with properties corresponding to the geometry types.
- * Property values are functions that do the actual parsing.
- */
- parse: {
- /**
- * Return point feature given a point WKT fragment.
- * @param {String} str A WKT fragment representing the point
- * @returns {OpenLayers.Feature.Vector} A point feature
- * @private
- */
- 'point': function(str) {
- var coords = OpenLayers.String.trim(str).split(this.regExes.spaces);
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Point(coords[0], coords[1])
- );
- },
-
- /**
- * Return a multipoint feature given a multipoint WKT fragment.
- * @param {String} str A WKT fragment representing the multipoint
- * @returns {OpenLayers.Feature.Vector} A multipoint feature
- * @private
- */
- 'multipoint': function(str) {
- var point;
- var points = OpenLayers.String.trim(str).split(',');
- var components = [];
- for(var i=0, len=points.length; i<len; ++i) {
- point = points[i].replace(this.regExes.trimParens, '$1');
- components.push(this.parse.point.apply(this, [point]).geometry);
- }
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.MultiPoint(components)
- );
- },
-
- /**
- * Return a linestring feature given a linestring WKT fragment.
- * @param {String} str A WKT fragment representing the linestring
- * @returns {OpenLayers.Feature.Vector} A linestring feature
- * @private
- */
- 'linestring': function(str) {
- var points = OpenLayers.String.trim(str).split(',');
- var components = [];
- for(var i=0, len=points.length; i<len; ++i) {
- components.push(this.parse.point.apply(this, [points[i]]).geometry);
- }
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.LineString(components)
- );
- },
-
- /**
- * Return a multilinestring feature given a multilinestring WKT fragment.
- * @param {String} str A WKT fragment representing the multilinestring
- * @returns {OpenLayers.Feature.Vector} A multilinestring feature
- * @private
- */
- 'multilinestring': function(str) {
- var line;
- var lines = OpenLayers.String.trim(str).split(this.regExes.parenComma);
- var components = [];
- for(var i=0, len=lines.length; i<len; ++i) {
- line = lines[i].replace(this.regExes.trimParens, '$1');
- components.push(this.parse.linestring.apply(this, [line]).geometry);
- }
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.MultiLineString(components)
- );
- },
-
- /**
- * Return a polygon feature given a polygon WKT fragment.
- * @param {String} str A WKT fragment representing the polygon
- * @returns {OpenLayers.Feature.Vector} A polygon feature
- * @private
- */
- 'polygon': function(str) {
- var ring, linestring, linearring;
- var rings = OpenLayers.String.trim(str).split(this.regExes.parenComma);
- var components = [];
- for(var i=0, len=rings.length; i<len; ++i) {
- ring = rings[i].replace(this.regExes.trimParens, '$1');
- linestring = this.parse.linestring.apply(this, [ring]).geometry;
- linearring = new OpenLayers.Geometry.LinearRing(linestring.components);
- components.push(linearring);
- }
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Polygon(components)
- );
- },
-
- /**
- * Return a multipolygon feature given a multipolygon WKT fragment.
- * @param {String} str A WKT fragment representing the multipolygon
- * @returns {OpenLayers.Feature.Vector} A multipolygon feature
- * @private
- */
- 'multipolygon': function(str) {
- var polygon;
- var polygons = OpenLayers.String.trim(str).split(this.regExes.doubleParenComma);
- var components = [];
- for(var i=0, len=polygons.length; i<len; ++i) {
- polygon = polygons[i].replace(this.regExes.trimParens, '$1');
- components.push(this.parse.polygon.apply(this, [polygon]).geometry);
- }
- return new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.MultiPolygon(components)
- );
- },
-
- /**
- * Return an array of features given a geometrycollection WKT fragment.
- * @param {String} str A WKT fragment representing the geometrycollection
- * @returns {Array} An array of OpenLayers.Feature.Vector
- * @private
- */
- 'geometrycollection': function(str) {
- // separate components of the collection with |
- str = str.replace(/,\s*([A-Za-z])/g, '|$1');
- var wktArray = OpenLayers.String.trim(str).split('|');
- var components = [];
- for(var i=0, len=wktArray.length; i<len; ++i) {
- components.push(OpenLayers.Format.WKT.prototype.read.apply(this,[wktArray[i]]));
- }
- return components;
- }
-
- },
-
- CLASS_NAME: "OpenLayers.Format.WKT"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMC.js b/misc/openlayers/lib/OpenLayers/Format/WMC.js
deleted file mode 100644
index ded1b3a..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMC.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/Context.js
- */
-
-/**
- * Class: OpenLayers.Format.WMC
- * Read and write Web Map Context documents.
- *
- * Inherits from:
- * - <OpenLayers.Format.Context>
- */
-OpenLayers.Format.WMC = OpenLayers.Class(OpenLayers.Format.Context, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.1.0".
- */
- defaultVersion: "1.1.0",
-
- /**
- * Constructor: OpenLayers.Format.WMC
- * Create a new parser for Web Map Context documents.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: layerToContext
- * Create a layer context object given a wms layer object.
- *
- * Parameters:
- * layer - {<OpenLayers.Layer.WMS>} The layer.
- *
- * Returns:
- * {Object} A layer context object.
- */
- layerToContext: function(layer) {
- var parser = this.getParser();
- var layerContext = {
- queryable: layer.queryable,
- visibility: layer.visibility,
- name: layer.params["LAYERS"],
- title: layer.name,
- "abstract": layer.metadata["abstract"],
- dataURL: layer.metadata.dataURL,
- metadataURL: layer.metadataURL,
- server: {
- version: layer.params["VERSION"],
- url: layer.url
- },
- maxExtent: layer.maxExtent,
- transparent: layer.params["TRANSPARENT"],
- numZoomLevels: layer.numZoomLevels,
- units: layer.units,
- isBaseLayer: layer.isBaseLayer,
- opacity: layer.opacity == 1 ? undefined : layer.opacity,
- displayInLayerSwitcher: layer.displayInLayerSwitcher,
- singleTile: layer.singleTile,
- tileSize: (layer.singleTile || !layer.tileSize) ?
- undefined : {width: layer.tileSize.w, height: layer.tileSize.h},
- minScale : (layer.options.resolutions ||
- layer.options.scales ||
- layer.options.maxResolution ||
- layer.options.minScale) ?
- layer.minScale : undefined,
- maxScale : (layer.options.resolutions ||
- layer.options.scales ||
- layer.options.minResolution ||
- layer.options.maxScale) ?
- layer.maxScale : undefined,
- formats: [],
- styles: [],
- srs: layer.srs,
- dimensions: layer.dimensions
- };
-
-
- if (layer.metadata.servertitle) {
- layerContext.server.title = layer.metadata.servertitle;
- }
-
- if (layer.metadata.formats && layer.metadata.formats.length > 0) {
- for (var i=0, len=layer.metadata.formats.length; i<len; i++) {
- var format = layer.metadata.formats[i];
- layerContext.formats.push({
- value: format.value,
- current: (format.value == layer.params["FORMAT"])
- });
- }
- } else {
- layerContext.formats.push({
- value: layer.params["FORMAT"],
- current: true
- });
- }
-
- if (layer.metadata.styles && layer.metadata.styles.length > 0) {
- for (var i=0, len=layer.metadata.styles.length; i<len; i++) {
- var style = layer.metadata.styles[i];
- if ((style.href == layer.params["SLD"]) ||
- (style.body == layer.params["SLD_BODY"]) ||
- (style.name == layer.params["STYLES"])) {
- style.current = true;
- } else {
- style.current = false;
- }
- layerContext.styles.push(style);
- }
- } else {
- layerContext.styles.push({
- href: layer.params["SLD"],
- body: layer.params["SLD_BODY"],
- name: layer.params["STYLES"] || parser.defaultStyleName,
- title: parser.defaultStyleTitle,
- current: true
- });
- }
-
- return layerContext;
- },
-
- /**
- * Method: toContext
- * Create a context object free from layer given a map or a
- * context object.
- *
- * Parameters:
- * obj - {<OpenLayers.Map> | Object} The map or context.
- *
- * Returns:
- * {Object} A context object.
- */
- toContext: function(obj) {
- var context = {};
- var layers = obj.layers;
- if (obj.CLASS_NAME == "OpenLayers.Map") {
- var metadata = obj.metadata || {};
- context.size = obj.getSize();
- context.bounds = obj.getExtent();
- context.projection = obj.projection;
- context.title = obj.title;
- context.keywords = metadata.keywords;
- context["abstract"] = metadata["abstract"];
- context.logo = metadata.logo;
- context.descriptionURL = metadata.descriptionURL;
- context.contactInformation = metadata.contactInformation;
- context.maxExtent = obj.maxExtent;
- } else {
- // copy all obj properties except the "layers" property
- OpenLayers.Util.applyDefaults(context, obj);
- if (context.layers != undefined) {
- delete(context.layers);
- }
- }
-
- if (context.layersContext == undefined) {
- context.layersContext = [];
- }
-
- // let's convert layers into layersContext object (if any)
- if (layers != undefined && OpenLayers.Util.isArray(layers)) {
- for (var i=0, len=layers.length; i<len; i++) {
- var layer = layers[i];
- if (layer instanceof OpenLayers.Layer.WMS) {
- context.layersContext.push(this.layerToContext(layer));
- }
- }
- }
- return context;
- },
-
- CLASS_NAME: "OpenLayers.Format.WMC"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js b/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js
deleted file mode 100644
index 6c9a5c3..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMC/v1.js
+++ /dev/null
@@ -1,1267 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMC.js
- * @requires OpenLayers/Format/XML.js
- */
-
-/**
- * Class: OpenLayers.Format.WMC.v1
- * Superclass for WMC version 1 parsers.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WMC.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ol: "http://openlayers.org/context",
- wmc: "http://www.opengis.net/context",
- sld: "http://www.opengis.net/sld",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocation: "",
-
- /**
- * Method: getNamespacePrefix
- * Get the namespace prefix for a given uri from the <namespaces> object.
- *
- * Returns:
- * {String} A namespace prefix or null if none found.
- */
- getNamespacePrefix: function(uri) {
- var prefix = null;
- if(uri == null) {
- prefix = this.namespaces[this.defaultPrefix];
- } else {
- for(prefix in this.namespaces) {
- if(this.namespaces[prefix] == uri) {
- break;
- }
- }
- }
- return prefix;
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "wmc",
-
- /**
- * Property: rootPrefix
- * {String} Prefix on the root node that maps to the context namespace URI.
- */
- rootPrefix: null,
-
- /**
- * Property: defaultStyleName
- * {String} Style name used if layer has no style param. Default is "".
- */
- defaultStyleName: "",
-
- /**
- * Property: defaultStyleTitle
- * {String} Default style title. Default is "Default".
- */
- defaultStyleTitle: "Default",
-
- /**
- * Constructor: OpenLayers.Format.WMC.v1
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.WMC> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * Method: read
- * Read capabilities data from a string, and return a list of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named layers.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var root = data.documentElement;
- this.rootPrefix = root.prefix;
- var context = {
- version: root.getAttribute("version")
- };
- this.runChildNodes(context, root);
- return context;
- },
-
- /**
- * Method: runChildNodes
- */
- runChildNodes: function(obj, node) {
- var children = node.childNodes;
- var childNode, processor, prefix, local;
- for(var i=0, len=children.length; i<len; ++i) {
- childNode = children[i];
- if(childNode.nodeType == 1) {
- prefix = this.getNamespacePrefix(childNode.namespaceURI);
- local = childNode.nodeName.split(":").pop();
- processor = this["read_" + prefix + "_" + local];
- if(processor) {
- processor.apply(this, [obj, childNode]);
- }
- }
- }
- },
-
- /**
- * Method: read_wmc_General
- */
- read_wmc_General: function(context, node) {
- this.runChildNodes(context, node);
- },
-
- /**
- * Method: read_wmc_BoundingBox
- */
- read_wmc_BoundingBox: function(context, node) {
- context.projection = node.getAttribute("SRS");
- context.bounds = new OpenLayers.Bounds(
- node.getAttribute("minx"), node.getAttribute("miny"),
- node.getAttribute("maxx"), node.getAttribute("maxy")
- );
- },
-
- /**
- * Method: read_wmc_LayerList
- */
- read_wmc_LayerList: function(context, node) {
- // layersContext is an array containing info for each layer
- context.layersContext = [];
- this.runChildNodes(context, node);
- },
-
- /**
- * Method: read_wmc_Layer
- */
- read_wmc_Layer: function(context, node) {
- var layerContext = {
- visibility: (node.getAttribute("hidden") != "1"),
- queryable: (node.getAttribute("queryable") == "1"),
- formats: [],
- styles: [],
- metadata: {}
- };
-
- this.runChildNodes(layerContext, node);
- // set properties common to multiple objects on layer options/params
- context.layersContext.push(layerContext);
- },
-
- /**
- * Method: read_wmc_Extension
- */
- read_wmc_Extension: function(obj, node) {
- this.runChildNodes(obj, node);
- },
-
- /**
- * Method: read_ol_units
- */
- read_ol_units: function(layerContext, node) {
- layerContext.units = this.getChildValue(node);
- },
-
- /**
- * Method: read_ol_maxExtent
- */
- read_ol_maxExtent: function(obj, node) {
- var bounds = new OpenLayers.Bounds(
- node.getAttribute("minx"), node.getAttribute("miny"),
- node.getAttribute("maxx"), node.getAttribute("maxy")
- );
- obj.maxExtent = bounds;
- },
-
- /**
- * Method: read_ol_transparent
- */
- read_ol_transparent: function(layerContext, node) {
- layerContext.transparent = this.getChildValue(node);
- },
-
- /**
- * Method: read_ol_numZoomLevels
- */
- read_ol_numZoomLevels: function(layerContext, node) {
- layerContext.numZoomLevels = parseInt(this.getChildValue(node));
- },
-
- /**
- * Method: read_ol_opacity
- */
- read_ol_opacity: function(layerContext, node) {
- layerContext.opacity = parseFloat(this.getChildValue(node));
- },
-
- /**
- * Method: read_ol_singleTile
- */
- read_ol_singleTile: function(layerContext, node) {
- layerContext.singleTile = (this.getChildValue(node) == "true");
- },
-
- /**
- * Method: read_ol_tileSize
- */
- read_ol_tileSize: function(layerContext, node) {
- var obj = {"width": node.getAttribute("width"), "height": node.getAttribute("height")};
- layerContext.tileSize = obj;
- },
-
- /**
- * Method: read_ol_isBaseLayer
- */
- read_ol_isBaseLayer: function(layerContext, node) {
- layerContext.isBaseLayer = (this.getChildValue(node) == "true");
- },
-
- /**
- * Method: read_ol_displayInLayerSwitcher
- */
- read_ol_displayInLayerSwitcher: function(layerContext, node) {
- layerContext.displayInLayerSwitcher = (this.getChildValue(node) == "true");
- },
-
- /**
- * Method: read_wmc_Server
- */
- read_wmc_Server: function(layerContext, node) {
- layerContext.version = node.getAttribute("version");
- layerContext.url = this.getOnlineResource_href(node);
- layerContext.metadata.servertitle = node.getAttribute("title");
- },
-
- /**
- * Method: read_wmc_FormatList
- */
- read_wmc_FormatList: function(layerContext, node) {
- this.runChildNodes(layerContext, node);
- },
-
- /**
- * Method: read_wmc_Format
- */
- read_wmc_Format: function(layerContext, node) {
- var format = {
- value: this.getChildValue(node)
- };
- if(node.getAttribute("current") == "1") {
- format.current = true;
- }
- layerContext.formats.push(format);
- },
-
- /**
- * Method: read_wmc_StyleList
- */
- read_wmc_StyleList: function(layerContext, node) {
- this.runChildNodes(layerContext, node);
- },
-
- /**
- * Method: read_wmc_Style
- */
- read_wmc_Style: function(layerContext, node) {
- var style = {};
- this.runChildNodes(style, node);
- if(node.getAttribute("current") == "1") {
- style.current = true;
- }
- layerContext.styles.push(style);
- },
-
- /**
- * Method: read_wmc_SLD
- */
- read_wmc_SLD: function(style, node) {
- this.runChildNodes(style, node);
- // style either comes back with an href or a body property
- },
-
- /**
- * Method: read_sld_StyledLayerDescriptor
- */
- read_sld_StyledLayerDescriptor: function(sld, node) {
- var xml = OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- sld.body = xml;
- },
-
- /**
- * Method: read_sld_FeatureTypeStyle
- */
- read_sld_FeatureTypeStyle: function(sld, node) {
- var xml = OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- sld.body = xml;
- },
-
- /**
- * Method: read_wmc_OnlineResource
- */
- read_wmc_OnlineResource: function(obj, node) {
- obj.href = this.getAttributeNS(
- node, this.namespaces.xlink, "href"
- );
- },
-
- /**
- * Method: read_wmc_Name
- */
- read_wmc_Name: function(obj, node) {
- var name = this.getChildValue(node);
- if(name) {
- obj.name = name;
- }
- },
-
- /**
- * Method: read_wmc_Title
- */
- read_wmc_Title: function(obj, node) {
- var title = this.getChildValue(node);
- if(title) {
- obj.title = title;
- }
- },
-
- /**
- * Method: read_wmc_MetadataURL
- */
- read_wmc_MetadataURL: function(layerContext, node) {
- layerContext.metadataURL = this.getOnlineResource_href(node);
- },
-
- /**
- * Method: read_wmc_KeywordList
- */
- read_wmc_KeywordList: function(context, node) {
- context.keywords = [];
- this.runChildNodes(context.keywords, node);
- },
-
- /**
- * Method: read_wmc_Keyword
- */
- read_wmc_Keyword: function(keywords, node) {
- keywords.push(this.getChildValue(node));
- },
-
- /**
- * Method: read_wmc_Abstract
- */
- read_wmc_Abstract: function(obj, node) {
- var abst = this.getChildValue(node);
- if(abst) {
- obj["abstract"] = abst;
- }
- },
-
- /**
- * Method: read_wmc_LogoURL
- */
- read_wmc_LogoURL: function(context, node) {
- context.logo = {
- width: node.getAttribute("width"),
- height: node.getAttribute("height"),
- format: node.getAttribute("format"),
- href: this.getOnlineResource_href(node)
- };
- },
-
- /**
- * Method: read_wmc_DescriptionURL
- */
- read_wmc_DescriptionURL: function(context, node) {
- context.descriptionURL = this.getOnlineResource_href(node);
- },
-
- /**
- * Method: read_wmc_ContactInformation
- */
- read_wmc_ContactInformation: function(obj, node) {
- var contact = {};
- this.runChildNodes(contact, node);
- obj.contactInformation = contact;
- },
-
- /**
- * Method: read_wmc_ContactPersonPrimary
- */
- read_wmc_ContactPersonPrimary: function(contact, node) {
- var personPrimary = {};
- this.runChildNodes(personPrimary, node);
- contact.personPrimary = personPrimary;
- },
-
- /**
- * Method: read_wmc_ContactPerson
- */
- read_wmc_ContactPerson: function(primaryPerson, node) {
- var person = this.getChildValue(node);
- if (person) {
- primaryPerson.person = person;
- }
- },
-
- /**
- * Method: read_wmc_ContactOrganization
- */
- read_wmc_ContactOrganization: function(primaryPerson, node) {
- var organization = this.getChildValue(node);
- if (organization) {
- primaryPerson.organization = organization;
- }
- },
-
- /**
- * Method: read_wmc_ContactPosition
- */
- read_wmc_ContactPosition: function(contact, node) {
- var position = this.getChildValue(node);
- if (position) {
- contact.position = position;
- }
- },
-
- /**
- * Method: read_wmc_ContactAddress
- */
- read_wmc_ContactAddress: function(contact, node) {
- var contactAddress = {};
- this.runChildNodes(contactAddress, node);
- contact.contactAddress = contactAddress;
- },
-
- /**
- * Method: read_wmc_AddressType
- */
- read_wmc_AddressType: function(contactAddress, node) {
- var type = this.getChildValue(node);
- if (type) {
- contactAddress.type = type;
- }
- },
-
- /**
- * Method: read_wmc_Address
- */
- read_wmc_Address: function(contactAddress, node) {
- var address = this.getChildValue(node);
- if (address) {
- contactAddress.address = address;
- }
- },
-
- /**
- * Method: read_wmc_City
- */
- read_wmc_City: function(contactAddress, node) {
- var city = this.getChildValue(node);
- if (city) {
- contactAddress.city = city;
- }
- },
-
- /**
- * Method: read_wmc_StateOrProvince
- */
- read_wmc_StateOrProvince: function(contactAddress, node) {
- var stateOrProvince = this.getChildValue(node);
- if (stateOrProvince) {
- contactAddress.stateOrProvince = stateOrProvince;
- }
- },
-
- /**
- * Method: read_wmc_PostCode
- */
- read_wmc_PostCode: function(contactAddress, node) {
- var postcode = this.getChildValue(node);
- if (postcode) {
- contactAddress.postcode = postcode;
- }
- },
-
- /**
- * Method: read_wmc_Country
- */
- read_wmc_Country: function(contactAddress, node) {
- var country = this.getChildValue(node);
- if (country) {
- contactAddress.country = country;
- }
- },
-
- /**
- * Method: read_wmc_ContactVoiceTelephone
- */
- read_wmc_ContactVoiceTelephone: function(contact, node) {
- var phone = this.getChildValue(node);
- if (phone) {
- contact.phone = phone;
- }
- },
-
- /**
- * Method: read_wmc_ContactFacsimileTelephone
- */
- read_wmc_ContactFacsimileTelephone: function(contact, node) {
- var fax = this.getChildValue(node);
- if (fax) {
- contact.fax = fax;
- }
- },
-
- /**
- * Method: read_wmc_ContactElectronicMailAddress
- */
- read_wmc_ContactElectronicMailAddress: function(contact, node) {
- var email = this.getChildValue(node);
- if (email) {
- contact.email = email;
- }
- },
-
- /**
- * Method: read_wmc_DataURL
- */
- read_wmc_DataURL: function(layerContext, node) {
- layerContext.dataURL = this.getOnlineResource_href(node);
- },
-
- /**
- * Method: read_wmc_LegendURL
- */
- read_wmc_LegendURL: function(style, node) {
- var legend = {
- width: node.getAttribute('width'),
- height: node.getAttribute('height'),
- format: node.getAttribute('format'),
- href: this.getOnlineResource_href(node)
- };
- style.legend = legend;
- },
-
- /**
- * Method: read_wmc_DimensionList
- */
- read_wmc_DimensionList: function(layerContext, node) {
- layerContext.dimensions = {};
- this.runChildNodes(layerContext.dimensions, node);
- },
- /**
- * Method: read_wmc_Dimension
- */
- read_wmc_Dimension: function(dimensions, node) {
- var name = node.getAttribute("name").toLowerCase();
-
- var dim = {
- name: name,
- units: node.getAttribute("units") || "",
- unitSymbol: node.getAttribute("unitSymbol") || "",
- userValue: node.getAttribute("userValue") || "",
- nearestValue: node.getAttribute("nearestValue") === "1",
- multipleValues: node.getAttribute("multipleValues") === "1",
- current: node.getAttribute("current") === "1",
- "default": node.getAttribute("default") || ""
- };
- var values = this.getChildValue(node);
- dim.values = values.split(",");
-
- dimensions[dim.name] = dim;
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * context - {Object} An object representing the map context.
- * options - {Object} Optional object.
- *
- * Returns:
- * {String} A WMC document string.
- */
- write: function(context, options) {
- var root = this.createElementDefaultNS("ViewContext");
- this.setAttributes(root, {
- version: this.VERSION,
- id: (options && typeof options.id == "string") ?
- options.id :
- OpenLayers.Util.createUniqueID("OpenLayers_Context_")
- });
-
- // add schemaLocation attribute
- this.setAttributeNS(
- root, this.namespaces.xsi,
- "xsi:schemaLocation", this.schemaLocation
- );
-
- // required General element
- root.appendChild(this.write_wmc_General(context));
-
- // required LayerList element
- root.appendChild(this.write_wmc_LayerList(context));
-
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- },
-
- /**
- * Method: createElementDefaultNS
- * Shorthand for createElementNS with namespace from <defaultPrefix>.
- * Can optionally be used to set attributes and a text child value.
- *
- * Parameters:
- * name - {String} The qualified node name.
- * childValue - {String} Optional value for text child node.
- * attributes - {Object} Optional object representing attributes.
- *
- * Returns:
- * {Element} An element node.
- */
- createElementDefaultNS: function(name, childValue, attributes) {
- var node = this.createElementNS(
- this.namespaces[this.defaultPrefix],
- name
- );
- if(childValue) {
- node.appendChild(this.createTextNode(childValue));
- }
- if(attributes) {
- this.setAttributes(node, attributes);
- }
- return node;
- },
-
- /**
- * Method: setAttributes
- * Set multiple attributes given key value pairs from an object.
- *
- * Parameters:
- * node - {Element} An element node.
- * obj - {Object} An object whose properties represent attribute names and
- * values represent attribute values.
- */
- setAttributes: function(node, obj) {
- var value;
- for(var name in obj) {
- value = obj[name].toString();
- if(value.match(/[A-Z]/)) {
- // safari lowercases attributes with setAttribute
- this.setAttributeNS(node, null, name, value);
- } else {
- node.setAttribute(name, value);
- }
- }
- },
-
- /**
- * Method: write_wmc_General
- * Create a General node given an context object.
- *
- * Parameters:
- * context - {Object} Context object.
- *
- * Returns:
- * {Element} A WMC General element node.
- */
- write_wmc_General: function(context) {
- var node = this.createElementDefaultNS("General");
-
- // optional Window element
- if(context.size) {
- node.appendChild(this.createElementDefaultNS(
- "Window", null,
- {
- width: context.size.w,
- height: context.size.h
- }
- ));
- }
-
- // required BoundingBox element
- var bounds = context.bounds;
- node.appendChild(this.createElementDefaultNS(
- "BoundingBox", null,
- {
- minx: bounds.left.toPrecision(18),
- miny: bounds.bottom.toPrecision(18),
- maxx: bounds.right.toPrecision(18),
- maxy: bounds.top.toPrecision(18),
- SRS: context.projection
- }
- ));
-
- // required Title element
- node.appendChild(this.createElementDefaultNS(
- "Title", context.title
- ));
-
- // optional KeywordList element
- if (context.keywords) {
- node.appendChild(this.write_wmc_KeywordList(context.keywords));
- }
-
- // optional Abstract element
- if (context["abstract"]) {
- node.appendChild(this.createElementDefaultNS(
- "Abstract", context["abstract"]
- ));
- }
-
- // Optional LogoURL element
- if (context.logo) {
- node.appendChild(this.write_wmc_URLType("LogoURL", context.logo.href, context.logo));
- }
-
- // Optional DescriptionURL element
- if (context.descriptionURL) {
- node.appendChild(this.write_wmc_URLType("DescriptionURL", context.descriptionURL));
- }
-
- // Optional ContactInformation element
- if (context.contactInformation) {
- node.appendChild(this.write_wmc_ContactInformation(context.contactInformation));
- }
-
- // OpenLayers specific map properties
- node.appendChild(this.write_ol_MapExtension(context));
-
- return node;
- },
-
- /**
- * Method: write_wmc_KeywordList
- */
- write_wmc_KeywordList: function(keywords) {
- var node = this.createElementDefaultNS("KeywordList");
-
- for (var i=0, len=keywords.length; i<len; i++) {
- node.appendChild(this.createElementDefaultNS(
- "Keyword", keywords[i]
- ));
- }
- return node;
- },
- /**
- * Method: write_wmc_ContactInformation
- */
- write_wmc_ContactInformation: function(contact) {
- var node = this.createElementDefaultNS("ContactInformation");
-
- if (contact.personPrimary) {
- node.appendChild(this.write_wmc_ContactPersonPrimary(contact.personPrimary));
- }
- if (contact.position) {
- node.appendChild(this.createElementDefaultNS(
- "ContactPosition", contact.position
- ));
- }
- if (contact.contactAddress) {
- node.appendChild(this.write_wmc_ContactAddress(contact.contactAddress));
- }
- if (contact.phone) {
- node.appendChild(this.createElementDefaultNS(
- "ContactVoiceTelephone", contact.phone
- ));
- }
- if (contact.fax) {
- node.appendChild(this.createElementDefaultNS(
- "ContactFacsimileTelephone", contact.fax
- ));
- }
- if (contact.email) {
- node.appendChild(this.createElementDefaultNS(
- "ContactElectronicMailAddress", contact.email
- ));
- }
- return node;
- },
-
- /**
- * Method: write_wmc_ContactPersonPrimary
- */
- write_wmc_ContactPersonPrimary: function(personPrimary) {
- var node = this.createElementDefaultNS("ContactPersonPrimary");
- if (personPrimary.person) {
- node.appendChild(this.createElementDefaultNS(
- "ContactPerson", personPrimary.person
- ));
- }
- if (personPrimary.organization) {
- node.appendChild(this.createElementDefaultNS(
- "ContactOrganization", personPrimary.organization
- ));
- }
- return node;
- },
-
- /**
- * Method: write_wmc_ContactAddress
- */
- write_wmc_ContactAddress: function(contactAddress) {
- var node = this.createElementDefaultNS("ContactAddress");
- if (contactAddress.type) {
- node.appendChild(this.createElementDefaultNS(
- "AddressType", contactAddress.type
- ));
- }
- if (contactAddress.address) {
- node.appendChild(this.createElementDefaultNS(
- "Address", contactAddress.address
- ));
- }
- if (contactAddress.city) {
- node.appendChild(this.createElementDefaultNS(
- "City", contactAddress.city
- ));
- }
- if (contactAddress.stateOrProvince) {
- node.appendChild(this.createElementDefaultNS(
- "StateOrProvince", contactAddress.stateOrProvince
- ));
- }
- if (contactAddress.postcode) {
- node.appendChild(this.createElementDefaultNS(
- "PostCode", contactAddress.postcode
- ));
- }
- if (contactAddress.country) {
- node.appendChild(this.createElementDefaultNS(
- "Country", contactAddress.country
- ));
- }
- return node;
- },
-
- /**
- * Method: write_ol_MapExtension
- */
- write_ol_MapExtension: function(context) {
- var node = this.createElementDefaultNS("Extension");
-
- var bounds = context.maxExtent;
- if(bounds) {
- var maxExtent = this.createElementNS(
- this.namespaces.ol, "ol:maxExtent"
- );
- this.setAttributes(maxExtent, {
- minx: bounds.left.toPrecision(18),
- miny: bounds.bottom.toPrecision(18),
- maxx: bounds.right.toPrecision(18),
- maxy: bounds.top.toPrecision(18)
- });
- node.appendChild(maxExtent);
- }
-
- return node;
- },
-
- /**
- * Method: write_wmc_LayerList
- * Create a LayerList node given an context object.
- *
- * Parameters:
- * context - {Object} Context object.
- *
- * Returns:
- * {Element} A WMC LayerList element node.
- */
- write_wmc_LayerList: function(context) {
- var list = this.createElementDefaultNS("LayerList");
-
- for(var i=0, len=context.layersContext.length; i<len; ++i) {
- list.appendChild(this.write_wmc_Layer(context.layersContext[i]));
- }
-
- return list;
- },
-
- /**
- * Method: write_wmc_Layer
- * Create a Layer node given a layer context object.
- *
- * Parameters:
- * context - {Object} A layer context object.}
- *
- * Returns:
- * {Element} A WMC Layer element node.
- */
- write_wmc_Layer: function(context) {
- var node = this.createElementDefaultNS(
- "Layer", null, {
- queryable: context.queryable ? "1" : "0",
- hidden: context.visibility ? "0" : "1"
- }
- );
-
- // required Server element
- node.appendChild(this.write_wmc_Server(context));
-
- // required Name element
- node.appendChild(this.createElementDefaultNS(
- "Name", context.name
- ));
-
- // required Title element
- node.appendChild(this.createElementDefaultNS(
- "Title", context.title
- ));
-
- // optional Abstract element
- if (context["abstract"]) {
- node.appendChild(this.createElementDefaultNS(
- "Abstract", context["abstract"]
- ));
- }
-
- // optional DataURL element
- if (context.dataURL) {
- node.appendChild(this.write_wmc_URLType("DataURL", context.dataURL));
- }
-
- // optional MetadataURL element
- if (context.metadataURL) {
- node.appendChild(this.write_wmc_URLType("MetadataURL", context.metadataURL));
- }
-
- return node;
- },
-
- /**
- * Method: write_wmc_LayerExtension
- * Add OpenLayers specific layer parameters to an Extension element.
- *
- * Parameters:
- * context - {Object} A layer context object.
- *
- * Returns:
- * {Element} A WMC Extension element (for a layer).
- */
- write_wmc_LayerExtension: function(context) {
- var node = this.createElementDefaultNS("Extension");
-
- var bounds = context.maxExtent;
- var maxExtent = this.createElementNS(
- this.namespaces.ol, "ol:maxExtent"
- );
- this.setAttributes(maxExtent, {
- minx: bounds.left.toPrecision(18),
- miny: bounds.bottom.toPrecision(18),
- maxx: bounds.right.toPrecision(18),
- maxy: bounds.top.toPrecision(18)
- });
- node.appendChild(maxExtent);
-
- if (context.tileSize && !context.singleTile) {
- var size = this.createElementNS(
- this.namespaces.ol, "ol:tileSize"
- );
- this.setAttributes(size, context.tileSize);
- node.appendChild(size);
- }
-
- var properties = [
- "transparent", "numZoomLevels", "units", "isBaseLayer",
- "opacity", "displayInLayerSwitcher", "singleTile"
- ];
- var child;
- for(var i=0, len=properties.length; i<len; ++i) {
- child = this.createOLPropertyNode(context, properties[i]);
- if(child) {
- node.appendChild(child);
- }
- }
-
- return node;
- },
-
- /**
- * Method: createOLPropertyNode
- * Create a node representing an OpenLayers property. If the property is
- * null or undefined, null will be returned.
- *
- * Parameters:
- * obj - {Object} An object.
- * prop - {String} A property.
- *
- * Returns:
- * {Element} A property node.
- */
- createOLPropertyNode: function(obj, prop) {
- var node = null;
- if(obj[prop] != null) {
- node = this.createElementNS(this.namespaces.ol, "ol:" + prop);
- node.appendChild(this.createTextNode(obj[prop].toString()));
- }
- return node;
- },
-
- /**
- * Method: write_wmc_Server
- * Create a Server node given a layer context object.
- *
- * Parameters:
- * context - {Object} Layer context object.
- *
- * Returns:
- * {Element} A WMC Server element node.
- */
- write_wmc_Server: function(context) {
- var server = context.server;
- var node = this.createElementDefaultNS("Server");
- var attributes = {
- service: "OGC:WMS",
- version: server.version
- };
- if (server.title) {
- attributes.title = server.title;
- }
- this.setAttributes(node, attributes);
-
- // required OnlineResource element
- node.appendChild(this.write_wmc_OnlineResource(server.url));
-
- return node;
- },
-
- /**
- * Method: write_wmc_URLType
- * Create a LogoURL/DescriptionURL/MetadataURL/DataURL/LegendURL node given a object and elementName.
- *
- * Parameters:
- * elName - {String} Name of element (LogoURL/DescriptionURL/MetadataURL/LegendURL)
- * url - {String} URL string value
- * attr - {Object} Optional attributes (width, height, format)
- *
- * Returns:
- * {Element} A WMC element node.
- */
- write_wmc_URLType: function(elName, url, attr) {
- var node = this.createElementDefaultNS(elName);
- node.appendChild(this.write_wmc_OnlineResource(url));
- if (attr) {
- var optionalAttributes = ["width", "height", "format"];
- for (var i=0; i<optionalAttributes.length; i++) {
- if (optionalAttributes[i] in attr) {
- node.setAttribute(optionalAttributes[i], attr[optionalAttributes[i]]);
- }
- }
- }
- return node;
- },
-
- /**
- * Method: write_wmc_DimensionList
- */
- write_wmc_DimensionList: function(context) {
- var node = this.createElementDefaultNS("DimensionList");
- var required_attributes = {
- name: true,
- units: true,
- unitSymbol: true,
- userValue: true
- };
- for (var dim in context.dimensions) {
- var attributes = {};
- var dimension = context.dimensions[dim];
- for (var name in dimension) {
- if (typeof dimension[name] == "boolean") {
- attributes[name] = Number(dimension[name]);
- } else {
- attributes[name] = dimension[name];
- }
- }
- var values = "";
- if (attributes.values) {
- values = attributes.values.join(",");
- delete attributes.values;
- }
-
- node.appendChild(this.createElementDefaultNS(
- "Dimension", values, attributes
- ));
- }
- return node;
- },
-
- /**
- * Method: write_wmc_FormatList
- * Create a FormatList node given a layer context.
- *
- * Parameters:
- * context - {Object} Layer context object.
- *
- * Returns:
- * {Element} A WMC FormatList element node.
- */
- write_wmc_FormatList: function(context) {
- var node = this.createElementDefaultNS("FormatList");
- for (var i=0, len=context.formats.length; i<len; i++) {
- var format = context.formats[i];
- node.appendChild(this.createElementDefaultNS(
- "Format",
- format.value,
- (format.current && format.current == true) ?
- {current: "1"} : null
- ));
- }
-
- return node;
- },
-
- /**
- * Method: write_wmc_StyleList
- * Create a StyleList node given a layer context.
- *
- * Parameters:
- * layer - {Object} Layer context object.
- *
- * Returns:
- * {Element} A WMC StyleList element node.
- */
- write_wmc_StyleList: function(layer) {
- var node = this.createElementDefaultNS("StyleList");
-
- var styles = layer.styles;
- if (styles && OpenLayers.Util.isArray(styles)) {
- var sld;
- for (var i=0, len=styles.length; i<len; i++) {
- var s = styles[i];
- // three style types to consider
- // [1] linked SLD
- // [2] inline SLD
- // [3] named style
- // running child nodes always gets name, optionally gets href or body
- var style = this.createElementDefaultNS(
- "Style",
- null,
- (s.current && s.current == true) ?
- {current: "1"} : null
- );
- if(s.href) { // [1]
- sld = this.createElementDefaultNS("SLD");
- // Name is optional.
- if (s.name) {
- sld.appendChild(this.createElementDefaultNS("Name", s.name));
- }
- // Title is optional.
- if (s.title) {
- sld.appendChild(this.createElementDefaultNS("Title", s.title));
- }
- // LegendURL is optional
- if (s.legend) {
- sld.appendChild(this.write_wmc_URLType("LegendURL", s.legend.href, s.legend));
- }
-
- var link = this.write_wmc_OnlineResource(s.href);
- sld.appendChild(link);
- style.appendChild(sld);
- } else if(s.body) { // [2]
- sld = this.createElementDefaultNS("SLD");
- // Name is optional.
- if (s.name) {
- sld.appendChild(this.createElementDefaultNS("Name", s.name));
- }
- // Title is optional.
- if (s.title) {
- sld.appendChild(this.createElementDefaultNS("Title", s.title));
- }
- // LegendURL is optional
- if (s.legend) {
- sld.appendChild(this.write_wmc_URLType("LegendURL", s.legend.href, s.legend));
- }
-
- // read in body as xml doc - assume proper namespace declarations
- var doc = OpenLayers.Format.XML.prototype.read.apply(this, [s.body]);
- // append to StyledLayerDescriptor node
- var imported = doc.documentElement;
- if(sld.ownerDocument && sld.ownerDocument.importNode) {
- imported = sld.ownerDocument.importNode(imported, true);
- }
- sld.appendChild(imported);
- style.appendChild(sld);
- } else { // [3]
- // both Name and Title are required.
- style.appendChild(this.createElementDefaultNS("Name", s.name));
- style.appendChild(this.createElementDefaultNS("Title", s.title));
- // Abstract is optional
- if (s['abstract']) { // abstract is a js keyword
- style.appendChild(this.createElementDefaultNS(
- "Abstract", s['abstract']
- ));
- }
- // LegendURL is optional
- if (s.legend) {
- style.appendChild(this.write_wmc_URLType("LegendURL", s.legend.href, s.legend));
- }
- }
- node.appendChild(style);
- }
- }
-
- return node;
- },
-
- /**
- * Method: write_wmc_OnlineResource
- * Create an OnlineResource node given a URL.
- *
- * Parameters:
- * href - {String} URL for the resource.
- *
- * Returns:
- * {Element} A WMC OnlineResource element node.
- */
- write_wmc_OnlineResource: function(href) {
- var node = this.createElementDefaultNS("OnlineResource");
- this.setAttributeNS(node, this.namespaces.xlink, "xlink:type", "simple");
- this.setAttributeNS(node, this.namespaces.xlink, "xlink:href", href);
- return node;
- },
-
- /**
- * Method: getOnlineResource_href
- */
- getOnlineResource_href: function(node) {
- var object = {};
- var links = node.getElementsByTagName("OnlineResource");
- if(links.length > 0) {
- this.read_wmc_OnlineResource(object, links[0]);
- }
- return object.href;
- },
-
-
- CLASS_NAME: "OpenLayers.Format.WMC.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js
deleted file mode 100644
index ace0d95..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMC/v1_0_0.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMC/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMC.v1_0_0
- * Read and write WMC version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WMC.v1>
- */
-OpenLayers.Format.WMC.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.WMC.v1, {
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/context
- * http://schemas.opengis.net/context/1.0.0/context.xsd
- */
- schemaLocation: "http://www.opengis.net/context http://schemas.opengis.net/context/1.0.0/context.xsd",
-
- /**
- * Constructor: OpenLayers.Format.WMC.v1_0_0
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.WMC> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.WMC.v1.prototype.initialize.apply(
- this, [options]
- );
- },
-
- /**
- * Method: read_wmc_SRS
- */
- read_wmc_SRS: function(layerContext, node) {
- var srs = this.getChildValue(node);
- if (typeof layerContext.projections != "object") {
- layerContext.projections = {};
- }
- var values = srs.split(/ +/);
- for (var i=0, len=values.length; i<len; i++) {
- layerContext.projections[values[i]] = true;
- }
- },
-
- /**
- * Method: write_wmc_Layer
- * Create a Layer node given a layer context object. This method adds
- * elements specific to version 1.0.0.
- *
- * Parameters:
- * context - {Object} A layer context object.}
- *
- * Returns:
- * {Element} A WMC Layer element node.
- */
- write_wmc_Layer: function(context) {
- var node = OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
- this, [context]
- );
-
- // optional SRS element(s)
- if (context.srs) {
- var projections = [];
- for(var name in context.srs) {
- projections.push(name);
- }
- node.appendChild(this.createElementDefaultNS("SRS", projections.join(" ")));
- }
-
- // optional FormatList element
- node.appendChild(this.write_wmc_FormatList(context));
-
- // optional StyleList element
- node.appendChild(this.write_wmc_StyleList(context));
-
- // optional DimensionList element
- if (context.dimensions) {
- node.appendChild(this.write_wmc_DimensionList(context));
- }
-
- // OpenLayers specific properties go in an Extension element
- node.appendChild(this.write_wmc_LayerExtension(context));
- },
-
- CLASS_NAME: "OpenLayers.Format.WMC.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js
deleted file mode 100644
index e5efc3e..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMC/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMC.v1_1_0
- * Read and write WMC version 1.1.0.
- *
- * Differences between 1.1.0 and 1.0.0:
- * - 1.1.0 Layers have optional sld:MinScaleDenominator and
- * sld:MaxScaleDenominator
- *
- * Inherits from:
- * - <OpenLayers.Format.WMC.v1>
- */
-OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.WMC.v1, {
-
- /**
- * Constant: VERSION
- * {String} 1.1.0
- */
- VERSION: "1.1.0",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/context
- * http://schemas.opengis.net/context/1.1.0/context.xsd
- */
- schemaLocation: "http://www.opengis.net/context http://schemas.opengis.net/context/1.1.0/context.xsd",
-
- /**
- * Constructor: OpenLayers.Format.WMC.v1_1_0
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.WMC> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.WMC.v1.prototype.initialize.apply(
- this, [options]
- );
- },
-
- /**
- * Method: read_sld_MinScaleDenominator
- * Read a sld:MinScaleDenominator node.
- *
- * Parameters:
- * layerContext - {Object} An object representing a layer.
- * node - {Element} An element node.
- */
- read_sld_MinScaleDenominator: function(layerContext, node) {
- var minScaleDenominator = parseFloat(this.getChildValue(node));
- if (minScaleDenominator > 0) {
- layerContext.maxScale = minScaleDenominator;
- }
- },
-
- /**
- * Method: read_sld_MaxScaleDenominator
- * Read a sld:MaxScaleDenominator node.
- *
- * Parameters:
- * layerContext - {Object} An object representing a layer.
- * node - {Element} An element node.
- */
- read_sld_MaxScaleDenominator: function(layerContext, node) {
- layerContext.minScale = parseFloat(this.getChildValue(node));
- },
-
- /**
- * Method: read_wmc_SRS
- */
- read_wmc_SRS: function(layerContext, node) {
- if (! ("srs" in layerContext)) {
- layerContext.srs = {};
- }
- layerContext.srs[this.getChildValue(node)] = true;
- },
-
- /**
- * Method: write_wmc_Layer
- * Create a Layer node given a layer context object. This method adds
- * elements specific to version 1.1.0.
- *
- * Parameters:
- * context - {Object} A layer context object.}
- *
- * Returns:
- * {Element} A WMC Layer element node.
- */
- write_wmc_Layer: function(context) {
- var node = OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
- this, [context]
- );
-
- // min/max scale denominator elements go before the 4th element in v1
- if(context.maxScale) {
- var minSD = this.createElementNS(
- this.namespaces.sld, "sld:MinScaleDenominator"
- );
- minSD.appendChild(this.createTextNode(context.maxScale.toPrecision(16)));
- node.appendChild(minSD);
- }
-
- if(context.minScale) {
- var maxSD = this.createElementNS(
- this.namespaces.sld, "sld:MaxScaleDenominator"
- );
- maxSD.appendChild(this.createTextNode(context.minScale.toPrecision(16)));
- node.appendChild(maxSD);
- }
-
- // optional SRS element(s)
- if (context.srs) {
- for(var name in context.srs) {
- node.appendChild(this.createElementDefaultNS("SRS", name));
- }
- }
-
- // optional FormatList element
- node.appendChild(this.write_wmc_FormatList(context));
-
- // optional StyleList element
- node.appendChild(this.write_wmc_StyleList(context));
-
- // optional DimensionList element
- if (context.dimensions) {
- node.appendChild(this.write_wmc_DimensionList(context));
- }
-
- // OpenLayers specific properties go in an Extension element
- node.appendChild(this.write_wmc_LayerExtension(context));
-
- return node;
-
- },
-
- CLASS_NAME: "OpenLayers.Format.WMC.v1_1_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js
deleted file mode 100644
index 2bf3cef..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities
- * Read WMS Capabilities.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.WMSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.1.1".
- */
- defaultVersion: "1.1.1",
-
- /**
- * APIProperty: profile
- * {String} If provided, use a custom profile.
- *
- * Currently supported profiles:
- * - WMSC - parses vendor specific capabilities for WMS-C.
- */
- profile: null,
-
- /**
- * Constructor: OpenLayers.Format.WMSCapabilities
- * Create a new parser for WMS capabilities.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return a list of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named layers.
- */
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js
deleted file mode 100644
index ef5c133..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1.js
+++ /dev/null
@@ -1,368 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities.js
- * @requires OpenLayers/Format/OGCExceptionReport.js
- * @requires OpenLayers/Format/XML.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities.v1
- * Abstract class not to be instantiated directly. Creates
- * the common parts for both WMS 1.1.X and WMS 1.3.X.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WMSCapabilities.v1 = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- wms: "http://www.opengis.net/wms",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "wms",
-
- /**
- * Constructor: OpenLayers.Format.WMSCapabilities.v1
- * Create an instance of one of the subclasses.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return a list of layers.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} List of named layers.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var raw = data;
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var capabilities = {};
- this.readNode(data, capabilities);
- if (capabilities.service === undefined) {
- // an exception must have occurred, so parse it
- var parser = new OpenLayers.Format.OGCExceptionReport();
- capabilities.error = parser.read(raw);
- }
- return capabilities;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wms": {
- "Service": function(node, obj) {
- obj.service = {};
- this.readChildNodes(node, obj.service);
- },
- "Name": function(node, obj) {
- obj.name = this.getChildValue(node);
- },
- "Title": function(node, obj) {
- obj.title = this.getChildValue(node);
- },
- "Abstract": function(node, obj) {
- obj["abstract"] = this.getChildValue(node);
- },
- "BoundingBox": function(node, obj) {
- var bbox = {};
- bbox.bbox = [
- parseFloat(node.getAttribute("minx")),
- parseFloat(node.getAttribute("miny")),
- parseFloat(node.getAttribute("maxx")),
- parseFloat(node.getAttribute("maxy"))
- ];
- var res = {
- x: parseFloat(node.getAttribute("resx")),
- y: parseFloat(node.getAttribute("resy"))
- };
-
- if (! (isNaN(res.x) && isNaN(res.y))) {
- bbox.res = res;
- }
- // return the bbox so that descendant classes can set the
- // CRS and SRS and add it to the obj
- return bbox;
- },
- "OnlineResource": function(node, obj) {
- obj.href = this.getAttributeNS(node, this.namespaces.xlink,
- "href");
- },
- "ContactInformation": function(node, obj) {
- obj.contactInformation = {};
- this.readChildNodes(node, obj.contactInformation);
- },
- "ContactPersonPrimary": function(node, obj) {
- obj.personPrimary = {};
- this.readChildNodes(node, obj.personPrimary);
- },
- "ContactPerson": function(node, obj) {
- obj.person = this.getChildValue(node);
- },
- "ContactOrganization": function(node, obj) {
- obj.organization = this.getChildValue(node);
- },
- "ContactPosition": function(node, obj) {
- obj.position = this.getChildValue(node);
- },
- "ContactAddress": function(node, obj) {
- obj.contactAddress = {};
- this.readChildNodes(node, obj.contactAddress);
- },
- "AddressType": function(node, obj) {
- obj.type = this.getChildValue(node);
- },
- "Address": function(node, obj) {
- obj.address = this.getChildValue(node);
- },
- "City": function(node, obj) {
- obj.city = this.getChildValue(node);
- },
- "StateOrProvince": function(node, obj) {
- obj.stateOrProvince = this.getChildValue(node);
- },
- "PostCode": function(node, obj) {
- obj.postcode = this.getChildValue(node);
- },
- "Country": function(node, obj) {
- obj.country = this.getChildValue(node);
- },
- "ContactVoiceTelephone": function(node, obj) {
- obj.phone = this.getChildValue(node);
- },
- "ContactFacsimileTelephone": function(node, obj) {
- obj.fax = this.getChildValue(node);
- },
- "ContactElectronicMailAddress": function(node, obj) {
- obj.email = this.getChildValue(node);
- },
- "Fees": function(node, obj) {
- var fees = this.getChildValue(node);
- if (fees && fees.toLowerCase() != "none") {
- obj.fees = fees;
- }
- },
- "AccessConstraints": function(node, obj) {
- var constraints = this.getChildValue(node);
- if (constraints && constraints.toLowerCase() != "none") {
- obj.accessConstraints = constraints;
- }
- },
- "Capability": function(node, obj) {
- obj.capability = {
- nestedLayers: [],
- layers: []
- };
- this.readChildNodes(node, obj.capability);
- },
- "Request": function(node, obj) {
- obj.request = {};
- this.readChildNodes(node, obj.request);
- },
- "GetCapabilities": function(node, obj) {
- obj.getcapabilities = {formats: []};
- this.readChildNodes(node, obj.getcapabilities);
- },
- "Format": function(node, obj) {
- if (OpenLayers.Util.isArray(obj.formats)) {
- obj.formats.push(this.getChildValue(node));
- } else {
- obj.format = this.getChildValue(node);
- }
- },
- "DCPType": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "HTTP": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Get": function(node, obj) {
- obj.get = {};
- this.readChildNodes(node, obj.get);
- // backwards compatibility
- if (!obj.href) {
- obj.href = obj.get.href;
- }
- },
- "Post": function(node, obj) {
- obj.post = {};
- this.readChildNodes(node, obj.post);
- // backwards compatibility
- if (!obj.href) {
- obj.href = obj.get.href;
- }
- },
- "GetMap": function(node, obj) {
- obj.getmap = {formats: []};
- this.readChildNodes(node, obj.getmap);
- },
- "GetFeatureInfo": function(node, obj) {
- obj.getfeatureinfo = {formats: []};
- this.readChildNodes(node, obj.getfeatureinfo);
- },
- "Exception": function(node, obj) {
- obj.exception = {formats: []};
- this.readChildNodes(node, obj.exception);
- },
- "Layer": function(node, obj) {
- var parentLayer, capability;
- if (obj.capability) {
- capability = obj.capability;
- parentLayer = obj;
- } else {
- capability = obj;
- }
- var attrNode = node.getAttributeNode("queryable");
- var queryable = (attrNode && attrNode.specified) ?
- node.getAttribute("queryable") : null;
- attrNode = node.getAttributeNode("cascaded");
- var cascaded = (attrNode && attrNode.specified) ?
- node.getAttribute("cascaded") : null;
- attrNode = node.getAttributeNode("opaque");
- var opaque = (attrNode && attrNode.specified) ?
- node.getAttribute('opaque') : null;
- var noSubsets = node.getAttribute('noSubsets');
- var fixedWidth = node.getAttribute('fixedWidth');
- var fixedHeight = node.getAttribute('fixedHeight');
- var parent = parentLayer || {},
- extend = OpenLayers.Util.extend;
- var layer = {
- nestedLayers: [],
- styles: parentLayer ? [].concat(parentLayer.styles) : [],
- srs: parentLayer ? extend({}, parent.srs) : {},
- metadataURLs: [],
- bbox: parentLayer ? extend({}, parent.bbox) : {},
- llbbox: parent.llbbox,
- dimensions: parentLayer ? extend({}, parent.dimensions) : {},
- authorityURLs: parentLayer ? extend({}, parent.authorityURLs) : {},
- identifiers: {},
- keywords: [],
- queryable: (queryable && queryable !== "") ?
- (queryable === "1" || queryable === "true" ) :
- (parent.queryable || false),
- cascaded: (cascaded !== null) ? parseInt(cascaded) :
- (parent.cascaded || 0),
- opaque: opaque ?
- (opaque === "1" || opaque === "true" ) :
- (parent.opaque || false),
- noSubsets: (noSubsets !== null) ?
- (noSubsets === "1" || noSubsets === "true" ) :
- (parent.noSubsets || false),
- fixedWidth: (fixedWidth != null) ?
- parseInt(fixedWidth) : (parent.fixedWidth || 0),
- fixedHeight: (fixedHeight != null) ?
- parseInt(fixedHeight) : (parent.fixedHeight || 0),
- minScale: parent.minScale,
- maxScale: parent.maxScale,
- attribution: parent.attribution
- };
- obj.nestedLayers.push(layer);
- layer.capability = capability;
- this.readChildNodes(node, layer);
- delete layer.capability;
- if(layer.name) {
- var parts = layer.name.split(":"),
- request = capability.request,
- gfi = request.getfeatureinfo;
- if(parts.length > 0) {
- layer.prefix = parts[0];
- }
- capability.layers.push(layer);
- if (layer.formats === undefined) {
- layer.formats = request.getmap.formats;
- }
- if (layer.infoFormats === undefined && gfi) {
- layer.infoFormats = gfi.formats;
- }
- }
- },
- "Attribution": function(node, obj) {
- obj.attribution = {};
- this.readChildNodes(node, obj.attribution);
- },
- "LogoURL": function(node, obj) {
- obj.logo = {
- width: node.getAttribute("width"),
- height: node.getAttribute("height")
- };
- this.readChildNodes(node, obj.logo);
- },
- "Style": function(node, obj) {
- var style = {};
- obj.styles.push(style);
- this.readChildNodes(node, style);
- },
- "LegendURL": function(node, obj) {
- var legend = {
- width: node.getAttribute("width"),
- height: node.getAttribute("height")
- };
- obj.legend = legend;
- this.readChildNodes(node, legend);
- },
- "MetadataURL": function(node, obj) {
- var metadataURL = {type: node.getAttribute("type")};
- obj.metadataURLs.push(metadataURL);
- this.readChildNodes(node, metadataURL);
- },
- "DataURL": function(node, obj) {
- obj.dataURL = {};
- this.readChildNodes(node, obj.dataURL);
- },
- "FeatureListURL": function(node, obj) {
- obj.featureListURL = {};
- this.readChildNodes(node, obj.featureListURL);
- },
- "AuthorityURL": function(node, obj) {
- var name = node.getAttribute("name");
- var authority = {};
- this.readChildNodes(node, authority);
- obj.authorityURLs[name] = authority.href;
- },
- "Identifier": function(node, obj) {
- var authority = node.getAttribute("authority");
- obj.identifiers[authority] = this.getChildValue(node);
- },
- "KeywordList": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "SRS": function(node, obj) {
- obj.srs[this.getChildValue(node)] = true;
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
deleted file mode 100644
index 0e15d38..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities.v1_1
- * Abstract class not to be instantiated directly.
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSCapabilities.v1>
- */
-OpenLayers.Format.WMSCapabilities.v1_1 = OpenLayers.Class(
- OpenLayers.Format.WMSCapabilities.v1, {
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wms": OpenLayers.Util.applyDefaults({
- "WMT_MS_Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Keyword": function(node, obj) {
- if (obj.keywords) {
- obj.keywords.push(this.getChildValue(node));
- }
- },
- "DescribeLayer": function(node, obj) {
- obj.describelayer = {formats: []};
- this.readChildNodes(node, obj.describelayer);
- },
- "GetLegendGraphic": function(node, obj) {
- obj.getlegendgraphic = {formats: []};
- this.readChildNodes(node, obj.getlegendgraphic);
- },
- "GetStyles": function(node, obj) {
- obj.getstyles = {formats: []};
- this.readChildNodes(node, obj.getstyles);
- },
- "PutStyles": function(node, obj) {
- obj.putstyles = {formats: []};
- this.readChildNodes(node, obj.putstyles);
- },
- "UserDefinedSymbolization": function(node, obj) {
- var userSymbols = {
- supportSLD: parseInt(node.getAttribute("SupportSLD")) == 1,
- userLayer: parseInt(node.getAttribute("UserLayer")) == 1,
- userStyle: parseInt(node.getAttribute("UserStyle")) == 1,
- remoteWFS: parseInt(node.getAttribute("RemoteWFS")) == 1
- };
- obj.userSymbols = userSymbols;
- },
- "LatLonBoundingBox": function(node, obj) {
- obj.llbbox = [
- parseFloat(node.getAttribute("minx")),
- parseFloat(node.getAttribute("miny")),
- parseFloat(node.getAttribute("maxx")),
- parseFloat(node.getAttribute("maxy"))
- ];
- },
- "BoundingBox": function(node, obj) {
- var bbox = OpenLayers.Format.WMSCapabilities.v1.prototype.readers["wms"].BoundingBox.apply(this, [node, obj]);
- bbox.srs = node.getAttribute("SRS");
- obj.bbox[bbox.srs] = bbox;
- },
- "ScaleHint": function(node, obj) {
- var min = node.getAttribute("min");
- var max = node.getAttribute("max");
- var rad2 = Math.pow(2, 0.5);
- var ipm = OpenLayers.INCHES_PER_UNIT["m"];
- if (min != 0) {
- obj.maxScale = parseFloat(
- ((min / rad2) * ipm *
- OpenLayers.DOTS_PER_INCH).toPrecision(13)
- );
- }
- if (max != Number.POSITIVE_INFINITY) {
- obj.minScale = parseFloat(
- ((max / rad2) * ipm *
- OpenLayers.DOTS_PER_INCH).toPrecision(13)
- );
- }
- },
- "Dimension": function(node, obj) {
- var name = node.getAttribute("name").toLowerCase();
- var dim = {
- name: name,
- units: node.getAttribute("units"),
- unitsymbol: node.getAttribute("unitSymbol")
- };
- obj.dimensions[dim.name] = dim;
- },
- "Extent": function(node, obj) {
- var name = node.getAttribute("name").toLowerCase();
- if (name in obj["dimensions"]) {
- var extent = obj.dimensions[name];
- extent.nearestVal =
- node.getAttribute("nearestValue") === "1";
- extent.multipleVal =
- node.getAttribute("multipleValues") === "1";
- extent.current = node.getAttribute("current") === "1";
- extent["default"] = node.getAttribute("default") || "";
- var values = this.getChildValue(node);
- extent.values = values.split(",");
- }
- }
- }, OpenLayers.Format.WMSCapabilities.v1.prototype.readers["wms"])
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
deleted file mode 100644
index a1c6279..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_0.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities/v1_1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities/v1_1_0
- * Read WMS Capabilities version 1.1.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSCapabilities.v1_1>
- */
-OpenLayers.Format.WMSCapabilities.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.WMSCapabilities.v1_1, {
-
- /**
- * Property: version
- * {String} The specific parser version.
- */
- version: "1.1.0",
-
- /**
- * Constructor: OpenLayers.Format.WMSCapabilities.v1_1_0
- * Create a new parser for WMS capabilities version 1.1.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wms": OpenLayers.Util.applyDefaults({
- "SRS": function(node, obj) {
- var srs = this.getChildValue(node);
- var values = srs.split(/ +/);
- for (var i=0, len=values.length; i<len; i++) {
- obj.srs[values[i]] = true;
- }
- }
- }, OpenLayers.Format.WMSCapabilities.v1_1.prototype.readers["wms"])
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
deleted file mode 100644
index 459572b..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities/v1_1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities/v1_1_1
- * Read WMS Capabilities version 1.1.1.
- *
- * Note on <ScaleHint> parsing: If the 'min' attribute is set to "0", no
- * maxScale will be set on the layer object. If the 'max' attribute is set to
- * "Infinity", no minScale will be set. This makes it easy to create proper
- * {<OpenLayers.Layer.WMS>} configurations directly from the layer object
- * literals returned by this format, because no minScale/maxScale modifications
- * need to be made.
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSCapabilities.v1_1>
- */
-OpenLayers.Format.WMSCapabilities.v1_1_1 = OpenLayers.Class(
- OpenLayers.Format.WMSCapabilities.v1_1, {
-
- /**
- * Property: version
- * {String} The specific parser version.
- */
- version: "1.1.1",
-
- /**
- * Constructor: OpenLayers.Format.WMSCapabilities.v1_1_1
- * Create a new parser for WMS capabilities version 1.1.1.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wms": OpenLayers.Util.applyDefaults({
- "SRS": function(node, obj) {
- obj.srs[this.getChildValue(node)] = true;
- }
- }, OpenLayers.Format.WMSCapabilities.v1_1.prototype.readers["wms"])
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1_1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js
deleted file mode 100644
index e58e4f7..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1_1_WMSC.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities/v1_1_1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities/v1_1_1_WMSC
- * Read WMS-C Capabilities version 1.1.1.
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSCapabilities.v1_1_1>
- */
-OpenLayers.Format.WMSCapabilities.v1_1_1_WMSC = OpenLayers.Class(
- OpenLayers.Format.WMSCapabilities.v1_1_1, {
-
- /**
- * Property: version
- * {String} The specific parser version.
- */
- version: "1.1.1",
-
- /**
- * Property: profile
- * {String} The specific profile
- */
- profile: "WMSC",
-
- /**
- * Constructor: OpenLayers.Format.WMSCapabilities.v1_1_1
- * Create a new parser for WMS-C capabilities version 1.1.1.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wms": OpenLayers.Util.applyDefaults({
- "VendorSpecificCapabilities": function(node, obj) {
- obj.vendorSpecific = {tileSets: []};
- this.readChildNodes(node, obj.vendorSpecific);
- },
- "TileSet": function(node, vendorSpecific) {
- var tileset = {srs: {}, bbox: {}, resolutions: []};
- this.readChildNodes(node, tileset);
- vendorSpecific.tileSets.push(tileset);
- },
- "Resolutions": function(node, tileset) {
- var res = this.getChildValue(node).split(" ");
- for (var i=0, len=res.length; i<len; i++) {
- if (res[i] != "") {
- tileset.resolutions.push(parseFloat(res[i]));
- }
- }
- },
- "Width": function(node, tileset) {
- tileset.width = parseInt(this.getChildValue(node));
- },
- "Height": function(node, tileset) {
- tileset.height = parseInt(this.getChildValue(node));
- },
- "Layers": function(node, tileset) {
- tileset.layers = this.getChildValue(node);
- },
- "Styles": function(node, tileset) {
- tileset.styles = this.getChildValue(node);
- }
- }, OpenLayers.Format.WMSCapabilities.v1_1_1.prototype.readers["wms"])
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1_1_WMSC"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
deleted file mode 100644
index 57aee1a..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities/v1_3
- * Abstract base class for WMS Capabilities version 1.3.X.
- * SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic,
- * see: http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSCapabilities.v1>
- */
-OpenLayers.Format.WMSCapabilities.v1_3 = OpenLayers.Class(
- OpenLayers.Format.WMSCapabilities.v1, {
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wms": OpenLayers.Util.applyDefaults({
- "WMS_Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "LayerLimit": function(node, obj) {
- obj.layerLimit = parseInt(this.getChildValue(node));
- },
- "MaxWidth": function(node, obj) {
- obj.maxWidth = parseInt(this.getChildValue(node));
- },
- "MaxHeight": function(node, obj) {
- obj.maxHeight = parseInt(this.getChildValue(node));
- },
- "BoundingBox": function(node, obj) {
- var bbox = OpenLayers.Format.WMSCapabilities.v1.prototype.readers["wms"].BoundingBox.apply(this, [node, obj]);
- bbox.srs = node.getAttribute("CRS");
- obj.bbox[bbox.srs] = bbox;
- },
- "CRS": function(node, obj) {
- // CRS is the synonym of SRS
- this.readers.wms.SRS.apply(this, [node, obj]);
- },
- "EX_GeographicBoundingBox": function(node, obj) {
- // replacement of LatLonBoundingBox
- obj.llbbox = [];
- this.readChildNodes(node, obj.llbbox);
-
- },
- "westBoundLongitude": function(node, obj) {
- obj[0] = this.getChildValue(node);
- },
- "eastBoundLongitude": function(node, obj) {
- obj[2] = this.getChildValue(node);
- },
- "southBoundLatitude": function(node, obj) {
- obj[1] = this.getChildValue(node);
- },
- "northBoundLatitude": function(node, obj) {
- obj[3] = this.getChildValue(node);
- },
- "MinScaleDenominator": function(node, obj) {
- obj.maxScale = parseFloat(this.getChildValue(node)).toPrecision(16);
- },
- "MaxScaleDenominator": function(node, obj) {
- obj.minScale = parseFloat(this.getChildValue(node)).toPrecision(16);
- },
- "Dimension": function(node, obj) {
- // dimension has extra attributes: default, multipleValues,
- // nearestValue, current which used to be part of Extent. It now
- // also contains the values.
- var name = node.getAttribute("name").toLowerCase();
- var dim = {
- name: name,
- units: node.getAttribute("units"),
- unitsymbol: node.getAttribute("unitSymbol"),
- nearestVal: node.getAttribute("nearestValue") === "1",
- multipleVal: node.getAttribute("multipleValues") === "1",
- "default": node.getAttribute("default") || "",
- current: node.getAttribute("current") === "1",
- values: this.getChildValue(node).split(",")
-
- };
- // Theoretically there can be more dimensions with the same
- // name, but with a different unit. Until we meet such a case,
- // let's just keep the same structure as the WMS 1.1
- // GetCapabilities parser uses. We will store the last
- // one encountered.
- obj.dimensions[dim.name] = dim;
- },
- "Keyword": function(node, obj) {
- // TODO: should we change the structure of keyword in v1.js?
- // Make it an object with a value instead of a string?
- var keyword = {value: this.getChildValue(node),
- vocabulary: node.getAttribute("vocabulary")};
- if (obj.keywords) {
- obj.keywords.push(keyword);
- }
- }
- }, OpenLayers.Format.WMSCapabilities.v1.prototype.readers["wms"]),
- "sld": {
- "UserDefinedSymbolization": function(node, obj) {
- this.readers.wms.UserDefinedSymbolization.apply(this, [node, obj]);
- // add the two extra attributes
- obj.userSymbols.inlineFeature = parseInt(node.getAttribute("InlineFeature")) == 1;
- obj.userSymbols.remoteWCS = parseInt(node.getAttribute("RemoteWCS")) == 1;
- },
- "DescribeLayer": function(node, obj) {
- this.readers.wms.DescribeLayer.apply(this, [node, obj]);
- },
- "GetLegendGraphic": function(node, obj) {
- this.readers.wms.GetLegendGraphic.apply(this, [node, obj]);
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_3"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js b/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
deleted file mode 100644
index c2c4ca4..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSCapabilities/v1_3.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSCapabilities/v1_3_0
- * Read WMS Capabilities version 1.3.0.
- * SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic,
- * see: http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSCapabilities.v1_3>
- */
-OpenLayers.Format.WMSCapabilities.v1_3_0 = OpenLayers.Class(
- OpenLayers.Format.WMSCapabilities.v1_3, {
-
- /**
- * Property: version
- * {String} The specific parser version.
- */
- version: "1.3.0",
-
- CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_3_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js b/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js
deleted file mode 100644
index 296262c..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSDescribeLayer
- * Read SLD WMS DescribeLayer response
- * DescribeLayer is meant to couple WMS to WFS and WCS
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.WMSDescribeLayer = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.1.1".
- */
- defaultVersion: "1.1.1",
-
- /**
- * Constructor: OpenLayers.Format.WMSDescribeLayer
- * Create a new parser for WMS DescribeLayer responses.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read DescribeLayer data from a string, and return the response.
- * The OGC currently defines 2 formats which are allowed for output,
- * so we need to parse these 2 types
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array} Array of {<LayerDescription>} objects which have:
- * - {String} owsType: WFS/WCS
- * - {String} owsURL: the online resource
- * - {String} typeName: the name of the typename on the service
- */
-
- CLASS_NAME: "OpenLayers.Format.WMSDescribeLayer"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js b/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
deleted file mode 100644
index 3929d4b..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMSDescribeLayer.js
- * @requires OpenLayers/Format/OGCExceptionReport.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSDescribeLayer.v1_1_1
- * Read SLD WMS DescribeLayer response for WMS 1.1.X
- * WMS 1.1.X is tightly coupled to SLD 1.0.0
- *
- * Example DescribeLayer request:
- * http://demo.opengeo.org/geoserver/wms?request=DescribeLayer&version=1.1.1&layers=topp:states
- *
- * Inherits from:
- * - <OpenLayers.Format.WMSDescribeLayer>
- */
-OpenLayers.Format.WMSDescribeLayer.v1_1_1 = OpenLayers.Class(
- OpenLayers.Format.WMSDescribeLayer, {
-
- /**
- * Constructor: OpenLayers.Format.WMSDescribeLayer
- * Create a new parser for WMS DescribeLayer responses.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.WMSDescribeLayer.prototype.initialize.apply(this,
- [options]);
- },
-
- /**
- * APIMethod: read
- * Read DescribeLayer data from a string, and return the response.
- * The OGC defines 2 formats which are allowed for output,
- * so we need to parse these 2 types for version 1.1.X
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Object with a layerDescriptions property, which holds an Array
- * of {<LayerDescription>} objects which have:
- * - {String} owsType: WFS/WCS
- * - {String} owsURL: the online resource
- * - {String} typeName: the name of the typename on the owsType service
- * - {String} layerName: the name of the WMS layer we did a lookup for
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var root = data.documentElement;
- var children = root.childNodes;
- var describelayer = {layerDescriptions: []};
- var childNode, nodeName;
- for(var i=0; i<children.length; ++i) {
- childNode = children[i];
- nodeName = childNode.nodeName;
- if (nodeName == 'LayerDescription') {
- var layerName = childNode.getAttribute('name');
- var owsType = '';
- var owsURL = '';
- var typeName = '';
- // check for owsType and owsURL attributes
- if (childNode.getAttribute('owsType')) {
- owsType = childNode.getAttribute('owsType');
- owsURL = childNode.getAttribute('owsURL');
- } else {
- // look for wfs or wcs attribute
- if (childNode.getAttribute('wfs') != '') {
- owsType = 'WFS';
- owsURL = childNode.getAttribute('wfs');
- } else if (childNode.getAttribute('wcs') != '') {
- owsType = 'WCS';
- owsURL = childNode.getAttribute('wcs');
- }
- }
- // look for Query child
- var query = childNode.getElementsByTagName('Query');
- if(query.length > 0) {
- typeName = query[0].getAttribute('typeName');
- if (!typeName) {
- // because of Ionic bug
- typeName = query[0].getAttribute('typename');
- }
- }
- var layerDescription = {
- layerName: layerName, owsType: owsType,
- owsURL: owsURL, typeName: typeName
- };
- describelayer.layerDescriptions.push(layerDescription);
-
- //TODO do this in deprecated.js instead:
- // array style index for backwards compatibility
- describelayer.length = describelayer.layerDescriptions.length;
- describelayer[describelayer.length - 1] = layerDescription;
-
- } else if (nodeName == 'ServiceException') {
- // an exception must have occurred, so parse it
- var parser = new OpenLayers.Format.OGCExceptionReport();
- return {
- error: parser.read(data)
- };
- }
- }
- return describelayer;
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSDescribeLayer.v1_1_1"
-
-});
-
-// Version alias - workaround for http://trac.osgeo.org/mapserver/ticket/2257
-OpenLayers.Format.WMSDescribeLayer.v1_1_0 =
- OpenLayers.Format.WMSDescribeLayer.v1_1_1;
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js b/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js
deleted file mode 100644
index 57eb219..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js
+++ /dev/null
@@ -1,296 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- */
-
-/**
- * Class: OpenLayers.Format.WMSGetFeatureInfo
- * Class to read GetFeatureInfo responses from Web Mapping Services
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WMSGetFeatureInfo = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * APIProperty: layerIdentifier
- * {String} All xml nodes containing this search criteria will populate an
- * internal array of layer nodes.
- */
- layerIdentifier: '_layer',
-
- /**
- * APIProperty: featureIdentifier
- * {String} All xml nodes containing this search criteria will populate an
- * internal array of feature nodes for each layer node found.
- */
- featureIdentifier: '_feature',
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Property: gmlFormat
- * {<OpenLayers.Format.GML>} internal GML format for parsing geometries
- * in msGMLOutput
- */
- gmlFormat: null,
-
- /**
- * Constructor: OpenLayers.Format.WMSGetFeatureInfo
- * Create a new parser for WMS GetFeatureInfo responses
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read WMS GetFeatureInfo data from a string, and return an array of features
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Array(<OpenLayers.Feature.Vector>)} An array of features.
- */
- read: function(data) {
- var result;
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var root = data.documentElement;
- if(root) {
- var scope = this;
- var read = this["read_" + root.nodeName];
- if(read) {
- result = read.call(this, root);
- } else {
- // fall-back to GML since this is a common output format for WMS
- // GetFeatureInfo responses
- result = new OpenLayers.Format.GML((this.options ? this.options : {})).read(data);
- }
- } else {
- result = data;
- }
- return result;
- },
-
-
- /**
- * Method: read_msGMLOutput
- * Parse msGMLOutput nodes.
- *
- * Parameters:
- * data - {DOMElement}
- *
- * Returns:
- * {Array}
- */
- read_msGMLOutput: function(data) {
- var response = [];
- var layerNodes = this.getSiblingNodesByTagCriteria(data,
- this.layerIdentifier);
- if (layerNodes) {
- for (var i=0, len=layerNodes.length; i<len; ++i) {
- var node = layerNodes[i];
- var layerName = node.nodeName;
- if (node.prefix) {
- layerName = layerName.split(':')[1];
- }
- var layerName = layerName.replace(this.layerIdentifier, '');
- var featureNodes = this.getSiblingNodesByTagCriteria(node,
- this.featureIdentifier);
- if (featureNodes) {
- for (var j = 0; j < featureNodes.length; j++) {
- var featureNode = featureNodes[j];
- var geomInfo = this.parseGeometry(featureNode);
- var attributes = this.parseAttributes(featureNode);
- var feature = new OpenLayers.Feature.Vector(geomInfo.geometry,
- attributes, null);
- feature.bounds = geomInfo.bounds;
- feature.type = layerName;
- response.push(feature);
- }
- }
- }
- }
- return response;
- },
-
- /**
- * Method: read_FeatureInfoResponse
- * Parse FeatureInfoResponse nodes.
- *
- * Parameters:
- * data - {DOMElement}
- *
- * Returns:
- * {Array}
- */
- read_FeatureInfoResponse: function(data) {
- var response = [];
- var featureNodes = this.getElementsByTagNameNS(data, '*',
- 'FIELDS');
-
- for(var i=0, len=featureNodes.length;i<len;i++) {
- var featureNode = featureNodes[i];
- var geom = null;
-
- // attributes can be actual attributes on the FIELDS tag,
- // or FIELD children
- var attributes = {};
- var j;
- var jlen = featureNode.attributes.length;
- if (jlen > 0) {
- for(j=0; j<jlen; j++) {
- var attribute = featureNode.attributes[j];
- attributes[attribute.nodeName] = attribute.nodeValue;
- }
- } else {
- var nodes = featureNode.childNodes;
- for (j=0, jlen=nodes.length; j<jlen; ++j) {
- var node = nodes[j];
- if (node.nodeType != 3) {
- attributes[node.getAttribute("name")] =
- node.getAttribute("value");
- }
- }
- }
-
- response.push(
- new OpenLayers.Feature.Vector(geom, attributes, null)
- );
- }
- return response;
- },
-
- /**
- * Method: getSiblingNodesByTagCriteria
- * Recursively searches passed xml node and all it's descendant levels for
- * nodes whose tagName contains the passed search string. This returns an
- * array of all sibling nodes which match the criteria from the highest
- * hierarchial level from which a match is found.
- *
- * Parameters:
- * node - {DOMElement} An xml node
- * criteria - {String} Search string which will match some part of a tagName
- *
- * Returns:
- * Array({DOMElement}) An array of sibling xml nodes
- */
- getSiblingNodesByTagCriteria: function(node, criteria){
- var nodes = [];
- var children, tagName, n, matchNodes, child;
- if (node && node.hasChildNodes()) {
- children = node.childNodes;
- n = children.length;
-
- for(var k=0; k<n; k++){
- child = children[k];
- while (child && child.nodeType != 1) {
- child = child.nextSibling;
- k++;
- }
- tagName = (child ? child.nodeName : '');
- if (tagName.length > 0 && tagName.indexOf(criteria) > -1) {
- nodes.push(child);
- } else {
- matchNodes = this.getSiblingNodesByTagCriteria(
- child, criteria);
-
- if(matchNodes.length > 0){
- (nodes.length == 0) ?
- nodes = matchNodes : nodes.push(matchNodes);
- }
- }
- }
-
- }
- return nodes;
- },
-
- /**
- * Method: parseAttributes
- *
- * Parameters:
- * node - {<DOMElement>}
- *
- * Returns:
- * {Object} An attributes object.
- *
- * Notes:
- * Assumes that attributes are direct child xml nodes of the passed node
- * and contain only a single text node.
- */
- parseAttributes: function(node){
- var attributes = {};
- if (node.nodeType == 1) {
- var children = node.childNodes;
- var n = children.length;
- for (var i = 0; i < n; ++i) {
- var child = children[i];
- if (child.nodeType == 1) {
- var grandchildren = child.childNodes;
- var name = (child.prefix) ?
- child.nodeName.split(":")[1] : child.nodeName;
- if (grandchildren.length == 0) {
- attributes[name] = null;
- } else if (grandchildren.length == 1) {
- var grandchild = grandchildren[0];
- if (grandchild.nodeType == 3 ||
- grandchild.nodeType == 4) {
- var value = grandchild.nodeValue.replace(
- this.regExes.trimSpace, "");
- attributes[name] = value;
- }
- }
- }
- }
- }
- return attributes;
- },
-
- /**
- * Method: parseGeometry
- * Parse the geometry and the feature bounds out of the node using
- * Format.GML
- *
- * Parameters:
- * node - {<DOMElement>}
- *
- * Returns:
- * {Object} An object containing the geometry and the feature bounds
- */
- parseGeometry: function(node) {
- // we need to use the old Format.GML parser since we do not know the
- // geometry name
- if (!this.gmlFormat) {
- this.gmlFormat = new OpenLayers.Format.GML();
- }
- var feature = this.gmlFormat.parseFeature(node);
- var geometry, bounds = null;
- if (feature) {
- geometry = feature.geometry && feature.geometry.clone();
- bounds = feature.bounds && feature.bounds.clone();
- feature.destroy();
- }
- return {geometry: geometry, bounds: bounds};
- },
-
- CLASS_NAME: "OpenLayers.Format.WMSGetFeatureInfo"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js b/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js
deleted file mode 100644
index 9cff69c..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities.js
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.WMTSCapabilities
- * Read WMTS Capabilities.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.WMTSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.0.0".
- */
- defaultVersion: "1.0.0",
-
- /**
- * APIProperty: yx
- * {Object} Members in the yx object are used to determine if a CRS URN
- * corresponds to a CRS with y,x axis order. Member names are CRS URNs
- * and values are boolean. By default, the following CRS URN are
- * assumed to correspond to a CRS with y,x axis order:
- *
- * * urn:ogc:def:crs:EPSG::4326
- */
- yx: {
- "urn:ogc:def:crs:EPSG::4326": true
- },
-
- /**
- * Constructor: OpenLayers.Format.WMTSCapabilities
- * Create a new parser for WMTS capabilities.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return information about
- * the service (offering and observedProperty mostly).
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Info about the WMTS Capabilities
- */
-
- /**
- * APIMethod: createLayer
- * Create a WMTS layer given a capabilities object.
- *
- * Parameters:
- * capabilities - {Object} The object returned from a <read> call to this
- * format.
- * config - {Object} Configuration properties for the layer. Defaults for
- * the layer will apply if not provided.
- *
- * Required config properties:
- * layer - {String} The layer identifier.
- *
- * Optional config properties:
- * matrixSet - {String} The matrix set identifier, required if there is
- * more than one matrix set in the layer capabilities.
- * style - {String} The name of the style
- * format - {String} Image format for the layer. Default is the first
- * format returned in the GetCapabilities response.
- * param - {Object} The dimensions values eg: {"Year": "2012"}
- *
- * Returns:
- * {<OpenLayers.Layer.WMTS>} A properly configured WMTS layer. Throws an
- * error if an incomplete config is provided. Returns undefined if no
- * layer could be created with the provided config.
- */
- createLayer: function(capabilities, config) {
- var layer;
-
- // confirm required properties are supplied in config
- if (!('layer' in config)) {
- throw new Error("Missing property 'layer' in configuration.");
- }
-
- var contents = capabilities.contents;
-
- // find the layer definition with the given identifier
- var layers = contents.layers;
- var layerDef;
- for (var i=0, ii=contents.layers.length; i<ii; ++i) {
- if (contents.layers[i].identifier === config.layer) {
- layerDef = contents.layers[i];
- break;
- }
- }
- if (!layerDef) {
- throw new Error("Layer not found");
- }
-
- var format = config.format;
- if (!format && layerDef.formats && layerDef.formats.length) {
- format = layerDef.formats[0];
- }
-
- // find the matrixSet definition
- var matrixSet;
- if (config.matrixSet) {
- matrixSet = contents.tileMatrixSets[config.matrixSet];
- } else if (layerDef.tileMatrixSetLinks.length >= 1) {
- matrixSet = contents.tileMatrixSets[
- layerDef.tileMatrixSetLinks[0].tileMatrixSet];
- }
- if (!matrixSet) {
- throw new Error("matrixSet not found");
- }
-
- // get the default style for the layer
- var style;
- for (var i=0, ii=layerDef.styles.length; i<ii; ++i) {
- style = layerDef.styles[i];
- if (style.isDefault) {
- break;
- }
- }
-
- var requestEncoding = config.requestEncoding;
- if (!requestEncoding) {
- requestEncoding = "KVP";
- if (capabilities.operationsMetadata.GetTile.dcp.http) {
- var http = capabilities.operationsMetadata.GetTile.dcp.http;
- // Get first get method
- if (http.get[0].constraints) {
- var constraints = http.get[0].constraints;
- var allowedValues = constraints.GetEncoding.allowedValues;
-
- // The OGC documentation is not clear if we should use
- // REST or RESTful, ArcGis use RESTful,
- // and OpenLayers use REST.
- if (!allowedValues.KVP &&
- (allowedValues.REST || allowedValues.RESTful)) {
- requestEncoding = "REST";
- }
- }
- }
- }
-
- var dimensions = [];
- var params = config.params || {};
- // to don't overwrite the changes in the applyDefaults
- delete config.params;
- for (var id = 0, ld = layerDef.dimensions.length ; id < ld ; id++) {
- var dimension = layerDef.dimensions[id];
- dimensions.push(dimension.identifier);
- if (!params.hasOwnProperty(dimension.identifier)) {
- params[dimension.identifier] = dimension['default'];
- }
- }
-
- var projection = config.projection || matrixSet.supportedCRS.replace(
- /urn:ogc:def:crs:(\w+):(.*:)?(\w+)$/, "$1:$3");
- var units = config.units ||
- (projection === "EPSG:4326" ? "degrees" : "m");
-
- var resolutions = [];
- for (var mid in matrixSet.matrixIds) {
- if (matrixSet.matrixIds.hasOwnProperty(mid)) {
- resolutions.push(
- matrixSet.matrixIds[mid].scaleDenominator * 0.28E-3 /
- OpenLayers.METERS_PER_INCH /
- OpenLayers.INCHES_PER_UNIT[units]);
- }
- }
-
- var url;
- if (requestEncoding === "REST" && layerDef.resourceUrls) {
- url = [];
- var resourceUrls = layerDef.resourceUrls,
- resourceUrl;
- for (var t = 0, tt = layerDef.resourceUrls.length; t < tt; ++t) {
- resourceUrl = layerDef.resourceUrls[t];
- if (resourceUrl.format === format && resourceUrl.resourceType === "tile") {
- url.push(resourceUrl.template);
- }
- }
- }
- else {
- var httpGet = capabilities.operationsMetadata.GetTile.dcp.http.get;
- url = [];
- var constraint;
- for (var i = 0, ii = httpGet.length; i < ii; i++) {
- constraint = httpGet[i].constraints;
- if (!constraint || (constraint && constraint.
- GetEncoding.allowedValues[requestEncoding])) {
- url.push(httpGet[i].url);
- }
- }
- }
-
- return new OpenLayers.Layer.WMTS(
- OpenLayers.Util.applyDefaults(config, {
- url: url,
- requestEncoding: requestEncoding,
- name: layerDef.title,
- style: style.identifier,
- format: format,
- matrixIds: matrixSet.matrixIds,
- matrixSet: matrixSet.identifier,
- projection: projection,
- units: units,
- resolutions: config.isBaseLayer === false ? undefined :
- resolutions,
- serverResolutions: resolutions,
- tileFullExtent: matrixSet.bounds,
- dimensions: dimensions,
- params: params
- })
- );
- },
-
- CLASS_NAME: "OpenLayers.Format.WMTSCapabilities"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
deleted file mode 100644
index fda2584..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WMTSCapabilities/v1_0_0.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WMTSCapabilities.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WMTSCapabilities.v1_0_0
- * Read WMTS Capabilities version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.WMTSCapabilities>
- */
-OpenLayers.Format.WMTSCapabilities.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.OWSCommon.v1_1_0, {
-
- /**
- * Property: version
- * {String} The parser version ("1.0.0").
- */
- version: "1.0.0",
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows/1.1",
- wmts: "http://www.opengis.net/wmts/1.0",
- xlink: "http://www.w3.org/1999/xlink"
- },
-
- /**
- * Property: yx
- * {Object} Members in the yx object are used to determine if a CRS URN
- * corresponds to a CRS with y,x axis order. Member names are CRS URNs
- * and values are boolean. Defaults come from the
- * <OpenLayers.Format.WMTSCapabilities> prototype.
- */
- yx: null,
-
- /**
- * Property: defaultPrefix
- * {String} The default namespace alias for creating element nodes.
- */
- defaultPrefix: "wmts",
-
- /**
- * Constructor: OpenLayers.Format.WMTSCapabilities.v1_0_0
- * Create a new parser for WMTS capabilities version 1.0.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- this.options = options;
- var yx = OpenLayers.Util.extend(
- {}, OpenLayers.Format.WMTSCapabilities.prototype.yx
- );
- this.yx = OpenLayers.Util.extend(yx, this.yx);
- },
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return info about the WMTS.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Information about the SOS service.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var capabilities = {};
- this.readNode(data, capabilities);
- capabilities.version = this.version;
- return capabilities;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wmts": {
- "Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "Contents": function(node, obj) {
- obj.contents = {};
- obj.contents.layers = [];
- obj.contents.tileMatrixSets = {};
- this.readChildNodes(node, obj.contents);
- },
- "Layer": function(node, obj) {
- var layer = {
- styles: [],
- formats: [],
- dimensions: [],
- tileMatrixSetLinks: []
- };
- layer.layers = [];
- this.readChildNodes(node, layer);
- obj.layers.push(layer);
- },
- "Style": function(node, obj) {
- var style = {};
- style.isDefault = (node.getAttribute("isDefault") === "true");
- this.readChildNodes(node, style);
- obj.styles.push(style);
- },
- "Format": function(node, obj) {
- obj.formats.push(this.getChildValue(node));
- },
- "TileMatrixSetLink": function(node, obj) {
- var tileMatrixSetLink = {};
- this.readChildNodes(node, tileMatrixSetLink);
- obj.tileMatrixSetLinks.push(tileMatrixSetLink);
- },
- "TileMatrixSet": function(node, obj) {
- // node could be child of wmts:Contents or wmts:TileMatrixSetLink
- // duck type wmts:Contents by looking for layers
- if (obj.layers) {
- // TileMatrixSet as object type in schema
- var tileMatrixSet = {
- matrixIds: []
- };
- this.readChildNodes(node, tileMatrixSet);
- obj.tileMatrixSets[tileMatrixSet.identifier] = tileMatrixSet;
- } else {
- // TileMatrixSet as string type in schema
- obj.tileMatrixSet = this.getChildValue(node);
- }
- },
- "TileMatrix": function(node, obj) {
- var tileMatrix = {
- supportedCRS: obj.supportedCRS
- };
- this.readChildNodes(node, tileMatrix);
- obj.matrixIds.push(tileMatrix);
- },
- "ScaleDenominator": function(node, obj) {
- obj.scaleDenominator = parseFloat(this.getChildValue(node));
- },
- "TopLeftCorner": function(node, obj) {
- var topLeftCorner = this.getChildValue(node);
- var coords = topLeftCorner.split(" ");
- // decide on axis order for the given CRS
- var yx;
- if (obj.supportedCRS) {
- // extract out version from URN
- var crs = obj.supportedCRS.replace(
- /urn:ogc:def:crs:(\w+):.+:(\w+)$/,
- "urn:ogc:def:crs:$1::$2"
- );
- yx = !!this.yx[crs];
- }
- if (yx) {
- obj.topLeftCorner = new OpenLayers.LonLat(
- coords[1], coords[0]
- );
- } else {
- obj.topLeftCorner = new OpenLayers.LonLat(
- coords[0], coords[1]
- );
- }
- },
- "TileWidth": function(node, obj) {
- obj.tileWidth = parseInt(this.getChildValue(node));
- },
- "TileHeight": function(node, obj) {
- obj.tileHeight = parseInt(this.getChildValue(node));
- },
- "MatrixWidth": function(node, obj) {
- obj.matrixWidth = parseInt(this.getChildValue(node));
- },
- "MatrixHeight": function(node, obj) {
- obj.matrixHeight = parseInt(this.getChildValue(node));
- },
- "ResourceURL": function(node, obj) {
- obj.resourceUrl = obj.resourceUrl || {};
- var resourceType = node.getAttribute("resourceType");
- if (!obj.resourceUrls) {
- obj.resourceUrls = [];
- }
- var resourceUrl = obj.resourceUrl[resourceType] = {
- format: node.getAttribute("format"),
- template: node.getAttribute("template"),
- resourceType: resourceType
- };
- obj.resourceUrls.push(resourceUrl);
- },
- // not used for now, can be added in the future though
- /*"Themes": function(node, obj) {
- obj.themes = [];
- this.readChildNodes(node, obj.themes);
- },
- "Theme": function(node, obj) {
- var theme = {};
- this.readChildNodes(node, theme);
- obj.push(theme);
- },*/
- "WSDL": function(node, obj) {
- obj.wsdl = {};
- obj.wsdl.href = node.getAttribute("xlink:href");
- // TODO: other attributes of <WSDL> element
- },
- "ServiceMetadataURL": function(node, obj) {
- obj.serviceMetadataUrl = {};
- obj.serviceMetadataUrl.href = node.getAttribute("xlink:href");
- // TODO: other attributes of <ServiceMetadataURL> element
- },
- "LegendURL": function(node, obj) {
- obj.legend = {};
- obj.legend.href = node.getAttribute("xlink:href");
- obj.legend.format = node.getAttribute("format");
- },
- "Dimension": function(node, obj) {
- var dimension = {values: []};
- this.readChildNodes(node, dimension);
- obj.dimensions.push(dimension);
- },
- "Default": function(node, obj) {
- obj["default"] = this.getChildValue(node);
- },
- "Value": function(node, obj) {
- obj.values.push(this.getChildValue(node));
- }
- },
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WMTSCapabilities.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js b/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js
deleted file mode 100644
index f0d74db..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.WPSCapabilities
- * Read WPS Capabilities.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.WPSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.0.0".
- */
- defaultVersion: "1.0.0",
-
- /**
- * Constructor: OpenLayers.Format.WPSCapabilities
- * Create a new parser for WPS Capabilities.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return information about
- * the service.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Info about the WPS
- */
-
- CLASS_NAME: "OpenLayers.Format.WPSCapabilities"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js
deleted file mode 100644
index e6762a9..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WPSCapabilities/v1_0_0.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/WPSCapabilities.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WPSCapabilities.v1_0_0
- * Read WPS Capabilities version 1.0.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WPSCapabilities.v1_0_0 = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows/1.1",
- wps: "http://www.opengis.net/wps/1.0.0",
- xlink: "http://www.w3.org/1999/xlink"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constructor: OpenLayers.Format.WPSCapabilities.v1_0_0
- * Create a new parser for WPS capabilities version 1.0.0.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- },
-
- /**
- * APIMethod: read
- * Read capabilities data from a string, and return info about the WPS.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object} Information about the WPS service.
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var capabilities = {};
- this.readNode(data, capabilities);
- return capabilities;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wps": {
- "Capabilities": function(node, obj) {
- this.readChildNodes(node, obj);
- },
- "ProcessOfferings": function(node, obj) {
- obj.processOfferings = {};
- this.readChildNodes(node, obj.processOfferings);
- },
- "Process": function(node, processOfferings) {
- var processVersion = this.getAttributeNS(node, this.namespaces.wps, "processVersion");
- var process = {processVersion: processVersion};
- this.readChildNodes(node, process);
- processOfferings[process.identifier] = process;
- },
- "Languages": function(node, obj) {
- obj.languages = [];
- this.readChildNodes(node, obj.languages);
- },
- "Default": function(node, languages) {
- var language = {isDefault: true};
- this.readChildNodes(node, language);
- languages.push(language);
- },
- "Supported": function(node, languages) {
- var language = {};
- this.readChildNodes(node, language);
- languages.push(language);
- }
- },
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WPSCapabilities.v1_0_0"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js b/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js
deleted file mode 100644
index e8f96bb..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WPSDescribeProcess.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WPSDescribeProcess
- * Read WPS DescribeProcess responses.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WPSDescribeProcess = OpenLayers.Class(
- OpenLayers.Format.XML, {
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- wps: "http://www.opengis.net/wps/1.0.0",
- ows: "http://www.opengis.net/ows/1.1",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: schemaLocation
- * {String} Schema location
- */
- schemaLocation: "http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "wps",
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constructor: OpenLayers.Format.WPSDescribeProcess
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: read
- * Parse a WPS DescribeProcess and return an object with its information.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object}
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var info = {};
- this.readNode(data, info);
- return info;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wps": {
- "ProcessDescriptions": function(node, obj) {
- obj.processDescriptions = {};
- this.readChildNodes(node, obj.processDescriptions);
- },
- "ProcessDescription": function(node, processDescriptions) {
- var processVersion = this.getAttributeNS(node, this.namespaces.wps, "processVersion");
- var processDescription = {
- processVersion: processVersion,
- statusSupported: (node.getAttribute("statusSupported") === "true"),
- storeSupported: (node.getAttribute("storeSupported") === "true")
- };
- this.readChildNodes(node, processDescription);
- processDescriptions[processDescription.identifier] = processDescription;
- },
- "DataInputs": function(node, processDescription) {
- processDescription.dataInputs = [];
- this.readChildNodes(node, processDescription.dataInputs);
- },
- "ProcessOutputs": function(node, processDescription) {
- processDescription.processOutputs = [];
- this.readChildNodes(node, processDescription.processOutputs);
- },
- "Output": function(node, processOutputs) {
- var output = {};
- this.readChildNodes(node, output);
- processOutputs.push(output);
- },
- "ComplexOutput": function(node, output) {
- output.complexOutput = {};
- this.readChildNodes(node, output.complexOutput);
- },
- "LiteralOutput": function(node, output) {
- output.literalOutput = {};
- this.readChildNodes(node, output.literalOutput);
- },
- "Input": function(node, dataInputs) {
- var input = {
- maxOccurs: parseInt(node.getAttribute("maxOccurs")),
- minOccurs: parseInt(node.getAttribute("minOccurs"))
- };
- this.readChildNodes(node, input);
- dataInputs.push(input);
- },
- "BoundingBoxData": function(node, input) {
- input.boundingBoxData = {};
- this.readChildNodes(node, input.boundingBoxData);
- },
- "CRS": function(node, obj) {
- if (!obj.CRSs) {
- obj.CRSs = {};
- }
- obj.CRSs[this.getChildValue(node)] = true;
- },
- "LiteralData": function(node, input) {
- input.literalData = {};
- this.readChildNodes(node, input.literalData);
- },
- "ComplexData": function(node, input) {
- input.complexData = {};
- this.readChildNodes(node, input.complexData);
- },
- "Default": function(node, complexData) {
- complexData["default"] = {};
- this.readChildNodes(node, complexData["default"]);
- },
- "Supported": function(node, complexData) {
- complexData["supported"] = {};
- this.readChildNodes(node, complexData["supported"]);
- },
- "Format": function(node, obj) {
- var format = {};
- this.readChildNodes(node, format);
- if (!obj.formats) {
- obj.formats = {};
- }
- obj.formats[format.mimeType] = true;
- },
- "MimeType": function(node, format) {
- format.mimeType = this.getChildValue(node);
- }
- },
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WPSDescribeProcess"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js b/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js
deleted file mode 100644
index 0795b0d..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/WPSExecute.js
+++ /dev/null
@@ -1,395 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
- * @requires OpenLayers/Format/WCSGetCoverage.js
- * @requires OpenLayers/Format/WFST/v1_1_0.js
- */
-
-/**
- * Class: OpenLayers.Format.WPSExecute version 1.0.0
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.WPSExecute = OpenLayers.Class(OpenLayers.Format.XML,
- OpenLayers.Format.Filter.v1_1_0, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- ows: "http://www.opengis.net/ows/1.1",
- gml: "http://www.opengis.net/gml",
- wps: "http://www.opengis.net/wps/1.0.0",
- wfs: "http://www.opengis.net/wfs",
- ogc: "http://www.opengis.net/ogc",
- wcs: "http://www.opengis.net/wcs",
- xlink: "http://www.w3.org/1999/xlink",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * Constant: VERSION
- * {String} 1.0.0
- */
- VERSION: "1.0.0",
-
- /**
- * Property: schemaLocation
- * {String} Schema location
- */
- schemaLocation: "http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",
-
- schemaLocationAttr: function(options) {
- return undefined;
- },
-
- /**
- * Constructor: OpenLayers.Format.WPSExecute
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: write
- *
- * Parameters:
- * options - {Object} Optional object.
- *
- * Returns:
- * {String} An WPS Execute request XML string.
- */
- write: function(options) {
- var doc;
- if (window.ActiveXObject) {
- doc = new ActiveXObject("Microsoft.XMLDOM");
- this.xmldom = doc;
- } else {
- doc = document.implementation.createDocument("", "", null);
- }
- var node = this.writeNode("wps:Execute", options, doc);
- this.setAttributeNS(
- node, this.namespaces.xsi,
- "xsi:schemaLocation", this.schemaLocation
- );
- return OpenLayers.Format.XML.prototype.write.apply(this, [node]);
- },
-
- /**
- * APIMethod: read
- * Parse a WPS Execute and return an object with its information.
- *
- * Parameters:
- * data - {String} or {DOMElement} data to read/parse.
- *
- * Returns:
- * {Object}
- */
- read: function(data) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- if(data && data.nodeType == 9) {
- data = data.documentElement;
- }
- var info = {};
- this.readNode(data, info);
- return info;
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "wps": {
- "Execute": function(options) {
- var node = this.createElementNSPlus("wps:Execute", {
- attributes: {
- version: this.VERSION,
- service: 'WPS'
- }
- });
- this.writeNode("ows:Identifier", options.identifier, node);
- this.writeNode("wps:DataInputs", options.dataInputs, node);
- this.writeNode("wps:ResponseForm", options.responseForm, node);
- return node;
- },
- "ResponseForm": function(responseForm) {
- var node = this.createElementNSPlus("wps:ResponseForm", {});
- if (responseForm.rawDataOutput) {
- this.writeNode("wps:RawDataOutput", responseForm.rawDataOutput, node);
- }
- if (responseForm.responseDocument) {
- this.writeNode("wps:ResponseDocument", responseForm.responseDocument, node);
- }
- return node;
- },
- "ResponseDocument": function(responseDocument) {
- var node = this.createElementNSPlus("wps:ResponseDocument", {
- attributes: {
- storeExecuteResponse: responseDocument.storeExecuteResponse,
- lineage: responseDocument.lineage,
- status: responseDocument.status
- }
- });
- if (responseDocument.outputs) {
- for (var i = 0, len = responseDocument.outputs.length; i < len; i++) {
- this.writeNode("wps:Output", responseDocument.outputs[i], node);
- }
- }
- return node;
- },
- "Output": function(output) {
- var node = this.createElementNSPlus("wps:Output", {
- attributes: {
- asReference: output.asReference,
- mimeType: output.mimeType,
- encoding: output.encoding,
- schema: output.schema
- }
- });
- this.writeNode("ows:Identifier", output.identifier, node);
- this.writeNode("ows:Title", output.title, node);
- this.writeNode("ows:Abstract", output["abstract"], node);
- return node;
- },
- "RawDataOutput": function(rawDataOutput) {
- var node = this.createElementNSPlus("wps:RawDataOutput", {
- attributes: {
- mimeType: rawDataOutput.mimeType,
- encoding: rawDataOutput.encoding,
- schema: rawDataOutput.schema
- }
- });
- this.writeNode("ows:Identifier", rawDataOutput.identifier, node);
- return node;
- },
- "DataInputs": function(dataInputs) {
- var node = this.createElementNSPlus("wps:DataInputs", {});
- for (var i=0, ii=dataInputs.length; i<ii; ++i) {
- this.writeNode("wps:Input", dataInputs[i], node);
- }
- return node;
- },
- "Input": function(input) {
- var node = this.createElementNSPlus("wps:Input", {});
- this.writeNode("ows:Identifier", input.identifier, node);
- if (input.title) {
- this.writeNode("ows:Title", input.title, node);
- }
- if (input.data) {
- this.writeNode("wps:Data", input.data, node);
- }
- if (input.reference) {
- this.writeNode("wps:Reference", input.reference, node);
- }
- if (input.boundingBoxData) {
- this.writeNode("wps:BoundingBoxData", input.boundingBoxData, node);
- }
- return node;
- },
- "Data": function(data) {
- var node = this.createElementNSPlus("wps:Data", {});
- if (data.literalData) {
- this.writeNode("wps:LiteralData", data.literalData, node);
- } else if (data.complexData) {
- this.writeNode("wps:ComplexData", data.complexData, node);
- } else if (data.boundingBoxData) {
- this.writeNode("ows:BoundingBox", data.boundingBoxData, node);
- }
- return node;
- },
- "LiteralData": function(literalData) {
- var node = this.createElementNSPlus("wps:LiteralData", {
- attributes: {
- uom: literalData.uom
- },
- value: literalData.value
- });
- return node;
- },
- "ComplexData": function(complexData) {
- var node = this.createElementNSPlus("wps:ComplexData", {
- attributes: {
- mimeType: complexData.mimeType,
- encoding: complexData.encoding,
- schema: complexData.schema
- }
- });
- var data = complexData.value;
- if (typeof data === "string") {
- node.appendChild(
- this.getXMLDoc().createCDATASection(complexData.value)
- );
- } else {
- node.appendChild(data);
- }
- return node;
- },
- "Reference": function(reference) {
- var node = this.createElementNSPlus("wps:Reference", {
- attributes: {
- mimeType: reference.mimeType,
- "xlink:href": reference.href,
- method: reference.method,
- encoding: reference.encoding,
- schema: reference.schema
- }
- });
- if (reference.body) {
- this.writeNode("wps:Body", reference.body, node);
- }
- return node;
- },
- "BoundingBoxData": function(node, obj) {
- this.writers['ows']['BoundingBox'].apply(this, [node, obj, "wps:BoundingBoxData"]);
- },
- "Body": function(body) {
- var node = this.createElementNSPlus("wps:Body", {});
- if (body.wcs) {
- this.writeNode("wcs:GetCoverage", body.wcs, node);
- }
- else if (body.wfs) {
- // OpenLayers.Format.WFST expects these to be on the
- // instance and not in the options
- this.featureType = body.wfs.featureType;
- this.version = body.wfs.version;
- this.writeNode("wfs:GetFeature", body.wfs, node);
- } else {
- this.writeNode("wps:Execute", body, node);
- }
- return node;
- }
- },
- "wcs": OpenLayers.Format.WCSGetCoverage.prototype.writers.wcs,
- "wfs": OpenLayers.Format.WFST.v1_1_0.prototype.writers.wfs,
- "ogc": OpenLayers.Format.Filter.v1_1_0.prototype.writers.ogc,
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.writers.ows
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "wps": {
- "ExecuteResponse": function(node, obj) {
- obj.executeResponse = {
- lang: node.getAttribute("lang"),
- statusLocation: node.getAttribute("statusLocation"),
- serviceInstance: node.getAttribute("serviceInstance"),
- service: node.getAttribute("service")
- };
- this.readChildNodes(node, obj.executeResponse);
- },
- "Process":function(node,obj) {
- obj.process = {};
- this.readChildNodes(node, obj.process);
- },
- "Status":function(node,obj) {
- obj.status = {
- creationTime: node.getAttribute("creationTime")
- };
- this.readChildNodes(node, obj.status);
- },
- "ProcessSucceeded": function(node,obj) {
- obj.processSucceeded = true;
- },
- "ProcessOutputs": function(node, processDescription) {
- processDescription.processOutputs = [];
- this.readChildNodes(node, processDescription.processOutputs);
- },
- "Output": function(node, processOutputs) {
- var output = {};
- this.readChildNodes(node, output);
- processOutputs.push(output);
- },
- "Reference": function(node, output) {
- output.reference = {
- href: node.getAttribute("href"),
- mimeType: node.getAttribute("mimeType"),
- encoding: node.getAttribute("encoding"),
- schema: node.getAttribute("schema")
- };
- },
- "Data": function(node, output) {
- output.data = {};
- this.readChildNodes(node, output);
- },
- "LiteralData": function(node, output) {
- output.literalData = {
- dataType: node.getAttribute("dataType"),
- uom: node.getAttribute("uom"),
- value: this.getChildValue(node)
- };
- },
- "ComplexData": function(node, output) {
- output.complexData = {
- mimeType: node.getAttribute("mimeType"),
- schema: node.getAttribute("schema"),
- encoding: node.getAttribute("encoding"),
- value: ""
- };
-
- // try to get *some* value, ignore the empty text values
- if (this.isSimpleContent(node)) {
- var child;
- for(child=node.firstChild; child; child=child.nextSibling) {
- switch(child.nodeType) {
- case 3: // text node
- case 4: // cdata section
- output.complexData.value += child.nodeValue;
- }
- }
- }
- else {
- for(child=node.firstChild; child; child=child.nextSibling) {
- if (child.nodeType == 1) {
- output.complexData.value = child;
- }
- }
- }
-
- },
- "BoundingBox": function(node, output) {
- output.boundingBoxData = {
- dimensions: node.getAttribute("dimensions"),
- crs: node.getAttribute("crs")
- };
- this.readChildNodes(node, output.boundingBoxData);
- }
- },
-
- // TODO: we should add Exception parsing here
- "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
- },
-
- CLASS_NAME: "OpenLayers.Format.WPSExecute"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/XLS.js b/misc/openlayers/lib/OpenLayers/Format/XLS.js
deleted file mode 100644
index 76f3f10..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/XLS.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML/VersionedOGC.js
- */
-
-/**
- * Class: OpenLayers.Format.XLS
- * Read/Write XLS (OpenLS). Create a new instance with the <OpenLayers.Format.XLS>
- * constructor. Currently only implemented for Location Utility Services, more
- * specifically only for Geocoding. No support for Reverse Geocoding as yet.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML.VersionedOGC>
- */
-OpenLayers.Format.XLS = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found. Default is "1.1.0".
- */
- defaultVersion: "1.1.0",
-
- /**
- * APIProperty: stringifyOutput
- * {Boolean} If true, write will return a string otherwise a DOMElement.
- * Default is true.
- */
- stringifyOutput: true,
-
- /**
- * Constructor: OpenLayers.Format.XLS
- * Create a new parser for XLS.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * APIMethod: write
- * Write out an XLS request.
- *
- * Parameters:
- * request - {Object} An object representing the LUS request.
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} An XLS document string.
- */
-
- /**
- * APIMethod: read
- * Read an XLS doc and return an object representing the result.
- *
- * Parameters:
- * data - {String | DOMElement} Data to read.
- * options - {Object} Options for the reader.
- *
- * Returns:
- * {Object} An object representing the GeocodeResponse.
- */
-
- CLASS_NAME: "OpenLayers.Format.XLS"
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js b/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js
deleted file mode 100644
index 642474f..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/XLS/v1.js
+++ /dev/null
@@ -1,304 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XLS.js
- * @requires OpenLayers/Format/GML/v3.js
- */
-
-/**
- * Class: OpenLayers.Format.XLS.v1
- * Superclass for XLS version 1 parsers. Only supports GeocodeRequest for now.
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.XLS.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs.
- */
- namespaces: {
- xls: "http://www.opengis.net/xls",
- gml: "http://www.opengis.net/gml",
- xsi: "http://www.w3.org/2001/XMLSchema-instance"
- },
-
- /**
- * Property: regExes
- * Compiled regular expressions for manipulating strings.
- */
- regExes: {
- trimSpace: (/^\s*|\s*$/g),
- removeSpace: (/\s*/g),
- splitSpace: (/\s+/),
- trimComma: (/\s*,\s*/g)
- },
-
- /**
- * APIProperty: xy
- * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x)
- * Changing is not recommended, a new Format should be instantiated.
- */
- xy: true,
-
- /**
- * Property: defaultPrefix
- */
- defaultPrefix: "xls",
-
- /**
- * Property: schemaLocation
- * {String} Schema location for a particular minor version.
- */
- schemaLocation: null,
-
- /**
- * Constructor: OpenLayers.Format.XLS.v1
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.XLS> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- /**
- * Method: read
- *
- * Parameters:
- * data - {DOMElement} An XLS document element.
- * options - {Object} Options for the reader.
- *
- * Returns:
- * {Object} An object representing the XLSResponse.
- */
- read: function(data, options) {
- options = OpenLayers.Util.applyDefaults(options, this.options);
- var xls = {};
- this.readChildNodes(data, xls);
- return xls;
- },
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {
- "xls": {
- "XLS": function(node, xls) {
- xls.version = node.getAttribute("version");
- this.readChildNodes(node, xls);
- },
- "Response": function(node, xls) {
- this.readChildNodes(node, xls);
- },
- "GeocodeResponse": function(node, xls) {
- xls.responseLists = [];
- this.readChildNodes(node, xls);
- },
- "GeocodeResponseList": function(node, xls) {
- var responseList = {
- features: [],
- numberOfGeocodedAddresses:
- parseInt(node.getAttribute("numberOfGeocodedAddresses"))
- };
- xls.responseLists.push(responseList);
- this.readChildNodes(node, responseList);
- },
- "GeocodedAddress": function(node, responseList) {
- var feature = new OpenLayers.Feature.Vector();
- responseList.features.push(feature);
- this.readChildNodes(node, feature);
- // post-process geometry
- feature.geometry = feature.components[0];
- },
- "GeocodeMatchCode": function(node, feature) {
- feature.attributes.matchCode = {
- accuracy: parseFloat(node.getAttribute("accuracy")),
- matchType: node.getAttribute("matchType")
- };
- },
- "Address": function(node, feature) {
- var address = {
- countryCode: node.getAttribute("countryCode"),
- addressee: node.getAttribute("addressee"),
- street: [],
- place: []
- };
- feature.attributes.address = address;
- this.readChildNodes(node, address);
- },
- "freeFormAddress": function(node, address) {
- address.freeFormAddress = this.getChildValue(node);
- },
- "StreetAddress": function(node, address) {
- this.readChildNodes(node, address);
- },
- "Building": function(node, address) {
- address.building = {
- 'number': node.getAttribute("number"),
- subdivision: node.getAttribute("subdivision"),
- buildingName: node.getAttribute("buildingName")
- };
- },
- "Street": function(node, address) {
- // only support the built-in primitive type for now
- address.street.push(this.getChildValue(node));
- },
- "Place": function(node, address) {
- // type is one of CountrySubdivision,
- // CountrySecondarySubdivision, Municipality or
- // MunicipalitySubdivision
- address.place[node.getAttribute("type")] =
- this.getChildValue(node);
- },
- "PostalCode": function(node, address) {
- address.postalCode = this.getChildValue(node);
- }
- },
- "gml": OpenLayers.Format.GML.v3.prototype.readers.gml
- },
-
- /**
- * Method: write
- *
- * Parameters:
- * request - {Object} An object representing the geocode request.
- *
- * Returns:
- * {DOMElement} The root of an XLS document.
- */
- write: function(request) {
- return this.writers.xls.XLS.apply(this, [request]);
- },
-
- /**
- * Property: writers
- * As a compliment to the readers property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {
- "xls": {
- "XLS": function(request) {
- var root = this.createElementNSPlus(
- "xls:XLS",
- {attributes: {
- "version": this.VERSION,
- "xsi:schemaLocation": this.schemaLocation
- }}
- );
- this.writeNode("RequestHeader", request.header, root);
- this.writeNode("Request", request, root);
- return root;
- },
- "RequestHeader": function(header) {
- return this.createElementNSPlus("xls:RequestHeader");
- },
- "Request": function(request) {
- var node = this.createElementNSPlus("xls:Request", {
- attributes: {
- methodName: "GeocodeRequest",
- requestID: request.requestID || "",
- version: this.VERSION
- }
- });
- this.writeNode("GeocodeRequest", request.addresses, node);
- return node;
- },
- "GeocodeRequest": function(addresses) {
- var node = this.createElementNSPlus("xls:GeocodeRequest");
- for (var i=0, len=addresses.length; i<len; i++) {
- this.writeNode("Address", addresses[i], node);
- }
- return node;
- },
- "Address": function(address) {
- var node = this.createElementNSPlus("xls:Address", {
- attributes: {
- countryCode: address.countryCode
- }
- });
- if (address.freeFormAddress) {
- this.writeNode("freeFormAddress", address.freeFormAddress, node);
- } else {
- if (address.street) {
- this.writeNode("StreetAddress", address, node);
- }
- if (address.municipality) {
- this.writeNode("Municipality", address.municipality, node);
- }
- if (address.countrySubdivision) {
- this.writeNode("CountrySubdivision", address.countrySubdivision, node);
- }
- if (address.postalCode) {
- this.writeNode("PostalCode", address.postalCode, node);
- }
- }
- return node;
- },
- "freeFormAddress": function(freeFormAddress) {
- return this.createElementNSPlus("freeFormAddress",
- {value: freeFormAddress});
- },
- "StreetAddress": function(address) {
- var node = this.createElementNSPlus("xls:StreetAddress");
- if (address.building) {
- this.writeNode(node, "Building", address.building);
- }
- var street = address.street;
- if (!(OpenLayers.Util.isArray(street))) {
- street = [street];
- }
- for (var i=0, len=street.length; i < len; i++) {
- this.writeNode("Street", street[i], node);
- }
- return node;
- },
- "Building": function(building) {
- return this.createElementNSPlus("xls:Building", {
- attributes: {
- "number": building["number"],
- "subdivision": building.subdivision,
- "buildingName": building.buildingName
- }
- });
- },
- "Street": function(street) {
- return this.createElementNSPlus("xls:Street", {value: street});
- },
- "Municipality": function(municipality) {
- return this.createElementNSPlus("xls:Place", {
- attributes: {
- type: "Municipality"
- },
- value: municipality
- });
- },
- "CountrySubdivision": function(countrySubdivision) {
- return this.createElementNSPlus("xls:Place", {
- attributes: {
- type: "CountrySubdivision"
- },
- value: countrySubdivision
- });
- },
- "PostalCode": function(postalCode) {
- return this.createElementNSPlus("xls:PostalCode", {
- value: postalCode
- });
- }
- }
- },
-
- CLASS_NAME: "OpenLayers.Format.XLS.v1"
-
-});
diff --git a/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js
deleted file mode 100644
index 7ffca26..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/XLS/v1_1_0.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XLS/v1.js
- */
-
-/**
- * Class: OpenLayers.Format.XLS.v1_1_0
- * Read / write XLS version 1.1.0.
- *
- * Inherits from:
- * - <OpenLayers.Format.XLS.v1>
- */
-OpenLayers.Format.XLS.v1_1_0 = OpenLayers.Class(
- OpenLayers.Format.XLS.v1, {
-
- /**
- * Constant: VERSION
- * {String} 1.1
- */
- VERSION: "1.1",
-
- /**
- * Property: schemaLocation
- * {String} http://www.opengis.net/xls
- * http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd
- */
- schemaLocation: "http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd",
-
- /**
- * Constructor: OpenLayers.Format.XLS.v1_1_0
- * Instances of this class are not created directly. Use the
- * <OpenLayers.Format.XLS> constructor instead.
- *
- * Parameters:
- * options - {Object} An optional object whose properties will be set on
- * this instance.
- */
-
- CLASS_NAME: "OpenLayers.Format.XLS.v1_1_0"
-
-});
-
-// Support non standard implementation
-OpenLayers.Format.XLS.v1_1 = OpenLayers.Format.XLS.v1_1_0;
diff --git a/misc/openlayers/lib/OpenLayers/Format/XML.js b/misc/openlayers/lib/OpenLayers/Format/XML.js
deleted file mode 100644
index 56f5871..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/XML.js
+++ /dev/null
@@ -1,897 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format.js
- */
-
-/**
- * Class: OpenLayers.Format.XML
- * Read and write XML. For cross-browser XML generation, use methods on an
- * instance of the XML format class instead of on <code>document<end>.
- * The DOM creation and traversing methods exposed here all mimic the
- * W3C XML DOM methods. Create a new parser with the
- * <OpenLayers.Format.XML> constructor.
- *
- * Inherits from:
- * - <OpenLayers.Format>
- */
-OpenLayers.Format.XML = OpenLayers.Class(OpenLayers.Format, {
-
- /**
- * Property: namespaces
- * {Object} Mapping of namespace aliases to namespace URIs. Properties
- * of this object should not be set individually. Read-only. All
- * XML subclasses should have their own namespaces object. Use
- * <setNamespace> to add or set a namespace alias after construction.
- */
- namespaces: null,
-
- /**
- * Property: namespaceAlias
- * {Object} Mapping of namespace URI to namespace alias. This object
- * is read-only. Use <setNamespace> to add or set a namespace alias.
- */
- namespaceAlias: null,
-
- /**
- * Property: defaultPrefix
- * {String} The default namespace alias for creating element nodes.
- */
- defaultPrefix: null,
-
- /**
- * Property: readers
- * Contains public functions, grouped by namespace prefix, that will
- * be applied when a namespaced node is found matching the function
- * name. The function will be applied in the scope of this parser
- * with two arguments: the node being read and a context object passed
- * from the parent.
- */
- readers: {},
-
- /**
- * Property: writers
- * As a compliment to the <readers> property, this structure contains public
- * writing functions grouped by namespace alias and named like the
- * node names they produce.
- */
- writers: {},
-
- /**
- * Property: xmldom
- * {XMLDom} If this browser uses ActiveX, this will be set to a XMLDOM
- * object. It is not intended to be a browser sniffing property.
- * Instead, the xmldom property is used instead of <code>document<end>
- * where namespaced node creation methods are not supported. In all
- * other browsers, this remains null.
- */
- xmldom: null,
-
- /**
- * Constructor: OpenLayers.Format.XML
- * Construct an XML parser. The parser is used to read and write XML.
- * Reading XML from a string returns a DOM element. Writing XML from
- * a DOM element returns a string.
- *
- * Parameters:
- * options - {Object} Optional object whose properties will be set on
- * the object.
- */
- initialize: function(options) {
- if(window.ActiveXObject) {
- this.xmldom = new ActiveXObject("Microsoft.XMLDOM");
- }
- OpenLayers.Format.prototype.initialize.apply(this, [options]);
- // clone the namespace object and set all namespace aliases
- this.namespaces = OpenLayers.Util.extend({}, this.namespaces);
- this.namespaceAlias = {};
- for(var alias in this.namespaces) {
- this.namespaceAlias[this.namespaces[alias]] = alias;
- }
- },
-
- /**
- * APIMethod: destroy
- * Clean up.
- */
- destroy: function() {
- this.xmldom = null;
- OpenLayers.Format.prototype.destroy.apply(this, arguments);
- },
-
- /**
- * Method: setNamespace
- * Set a namespace alias and URI for the format.
- *
- * Parameters:
- * alias - {String} The namespace alias (prefix).
- * uri - {String} The namespace URI.
- */
- setNamespace: function(alias, uri) {
- this.namespaces[alias] = uri;
- this.namespaceAlias[uri] = alias;
- },
-
- /**
- * APIMethod: read
- * Deserialize a XML string and return a DOM node.
- *
- * Parameters:
- * text - {String} A XML string
-
- * Returns:
- * {DOMElement} A DOM node
- */
- read: function(text) {
- var index = text.indexOf('<');
- if(index > 0) {
- text = text.substring(index);
- }
- var node = OpenLayers.Util.Try(
- OpenLayers.Function.bind((
- function() {
- var xmldom;
- /**
- * Since we want to be able to call this method on the prototype
- * itself, this.xmldom may not exist even if in IE.
- */
- if(window.ActiveXObject && !this.xmldom) {
- xmldom = new ActiveXObject("Microsoft.XMLDOM");
- } else {
- xmldom = this.xmldom;
-
- }
- xmldom.loadXML(text);
- return xmldom;
- }
- ), this),
- function() {
- return new DOMParser().parseFromString(text, 'text/xml');
- },
- function() {
- var req = new XMLHttpRequest();
- req.open("GET", "data:" + "text/xml" +
- ";charset=utf-8," + encodeURIComponent(text), false);
- if(req.overrideMimeType) {
- req.overrideMimeType("text/xml");
- }
- req.send(null);
- return req.responseXML;
- }
- );
-
- if(this.keepData) {
- this.data = node;
- }
-
- return node;
- },
-
- /**
- * APIMethod: write
- * Serialize a DOM node into a XML string.
- *
- * Parameters:
- * node - {DOMElement} A DOM node.
- *
- * Returns:
- * {String} The XML string representation of the input node.
- */
- write: function(node) {
- var data;
- if(this.xmldom) {
- data = node.xml;
- } else {
- var serializer = new XMLSerializer();
- if (node.nodeType == 1) {
- // Add nodes to a document before serializing. Everything else
- // is serialized as is. This may need more work. See #1218 .
- var doc = document.implementation.createDocument("", "", null);
- if (doc.importNode) {
- node = doc.importNode(node, true);
- }
- doc.appendChild(node);
- data = serializer.serializeToString(doc);
- } else {
- data = serializer.serializeToString(node);
- }
- }
- return data;
- },
-
- /**
- * APIMethod: createElementNS
- * Create a new element with namespace. This node can be appended to
- * another node with the standard node.appendChild method. For
- * cross-browser support, this method must be used instead of
- * document.createElementNS.
- *
- * Parameters:
- * uri - {String} Namespace URI for the element.
- * name - {String} The qualified name of the element (prefix:localname).
- *
- * Returns:
- * {Element} A DOM element with namespace.
- */
- createElementNS: function(uri, name) {
- var element;
- if(this.xmldom) {
- if(typeof uri == "string") {
- element = this.xmldom.createNode(1, name, uri);
- } else {
- element = this.xmldom.createNode(1, name, "");
- }
- } else {
- element = document.createElementNS(uri, name);
- }
- return element;
- },
-
- /**
- * APIMethod: createDocumentFragment
- * Create a document fragment node that can be appended to another node
- * created by createElementNS. This will call
- * document.createDocumentFragment outside of IE. In IE, the ActiveX
- * object's createDocumentFragment method is used.
- *
- * Returns:
- * {Element} A document fragment.
- */
- createDocumentFragment: function() {
- var element;
- if (this.xmldom) {
- element = this.xmldom.createDocumentFragment();
- } else {
- element = document.createDocumentFragment();
- }
- return element;
- },
-
- /**
- * APIMethod: createTextNode
- * Create a text node. This node can be appended to another node with
- * the standard node.appendChild method. For cross-browser support,
- * this method must be used instead of document.createTextNode.
- *
- * Parameters:
- * text - {String} The text of the node.
- *
- * Returns:
- * {DOMElement} A DOM text node.
- */
- createTextNode: function(text) {
- var node;
- if (typeof text !== "string") {
- text = String(text);
- }
- if(this.xmldom) {
- node = this.xmldom.createTextNode(text);
- } else {
- node = document.createTextNode(text);
- }
- return node;
- },
-
- /**
- * APIMethod: getElementsByTagNameNS
- * Get a list of elements on a node given the namespace URI and local name.
- * To return all nodes in a given namespace, use '*' for the name
- * argument. To return all nodes of a given (local) name, regardless
- * of namespace, use '*' for the uri argument.
- *
- * Parameters:
- * node - {Element} Node on which to search for other nodes.
- * uri - {String} Namespace URI.
- * name - {String} Local name of the tag (without the prefix).
- *
- * Returns:
- * {NodeList} A node list or array of elements.
- */
- getElementsByTagNameNS: function(node, uri, name) {
- var elements = [];
- if(node.getElementsByTagNameNS) {
- elements = node.getElementsByTagNameNS(uri, name);
- } else {
- // brute force method
- var allNodes = node.getElementsByTagName("*");
- var potentialNode, fullName;
- for(var i=0, len=allNodes.length; i<len; ++i) {
- potentialNode = allNodes[i];
- fullName = (potentialNode.prefix) ?
- (potentialNode.prefix + ":" + name) : name;
- if((name == "*") || (fullName == potentialNode.nodeName)) {
- if((uri == "*") || (uri == potentialNode.namespaceURI)) {
- elements.push(potentialNode);
- }
- }
- }
- }
- return elements;
- },
-
- /**
- * APIMethod: getAttributeNodeNS
- * Get an attribute node given the namespace URI and local name.
- *
- * Parameters:
- * node - {Element} Node on which to search for attribute nodes.
- * uri - {String} Namespace URI.
- * name - {String} Local name of the attribute (without the prefix).
- *
- * Returns:
- * {DOMElement} An attribute node or null if none found.
- */
- getAttributeNodeNS: function(node, uri, name) {
- var attributeNode = null;
- if(node.getAttributeNodeNS) {
- attributeNode = node.getAttributeNodeNS(uri, name);
- } else {
- var attributes = node.attributes;
- var potentialNode, fullName;
- for(var i=0, len=attributes.length; i<len; ++i) {
- potentialNode = attributes[i];
- if(potentialNode.namespaceURI == uri) {
- fullName = (potentialNode.prefix) ?
- (potentialNode.prefix + ":" + name) : name;
- if(fullName == potentialNode.nodeName) {
- attributeNode = potentialNode;
- break;
- }
- }
- }
- }
- return attributeNode;
- },
-
- /**
- * APIMethod: getAttributeNS
- * Get an attribute value given the namespace URI and local name.
- *
- * Parameters:
- * node - {Element} Node on which to search for an attribute.
- * uri - {String} Namespace URI.
- * name - {String} Local name of the attribute (without the prefix).
- *
- * Returns:
- * {String} An attribute value or and empty string if none found.
- */
- getAttributeNS: function(node, uri, name) {
- var attributeValue = "";
- if(node.getAttributeNS) {
- attributeValue = node.getAttributeNS(uri, name) || "";
- } else {
- var attributeNode = this.getAttributeNodeNS(node, uri, name);
- if(attributeNode) {
- attributeValue = attributeNode.nodeValue;
- }
- }
- return attributeValue;
- },
-
- /**
- * APIMethod: getChildValue
- * Get the textual value of the node if it exists, or return an
- * optional default string. Returns an empty string if no first child
- * exists and no default value is supplied.
- *
- * Parameters:
- * node - {DOMElement} The element used to look for a first child value.
- * def - {String} Optional string to return in the event that no
- * first child value exists.
- *
- * Returns:
- * {String} The value of the first child of the given node.
- */
- getChildValue: function(node, def) {
- var value = def || "";
- if(node) {
- for(var child=node.firstChild; child; child=child.nextSibling) {
- switch(child.nodeType) {
- case 3: // text node
- case 4: // cdata section
- value += child.nodeValue;
- }
- }
- }
- return value;
- },
-
- /**
- * APIMethod: isSimpleContent
- * Test if the given node has only simple content (i.e. no child element
- * nodes).
- *
- * Parameters:
- * node - {DOMElement} An element node.
- *
- * Returns:
- * {Boolean} The node has no child element nodes (nodes of type 1).
- */
- isSimpleContent: function(node) {
- var simple = true;
- for(var child=node.firstChild; child; child=child.nextSibling) {
- if(child.nodeType === 1) {
- simple = false;
- break;
- }
- }
- return simple;
- },
-
- /**
- * APIMethod: contentType
- * Determine the content type for a given node.
- *
- * Parameters:
- * node - {DOMElement}
- *
- * Returns:
- * {Integer} One of OpenLayers.Format.XML.CONTENT_TYPE.{EMPTY,SIMPLE,COMPLEX,MIXED}
- * if the node has no, simple, complex, or mixed content.
- */
- contentType: function(node) {
- var simple = false,
- complex = false;
-
- var type = OpenLayers.Format.XML.CONTENT_TYPE.EMPTY;
-
- for(var child=node.firstChild; child; child=child.nextSibling) {
- switch(child.nodeType) {
- case 1: // element
- complex = true;
- break;
- case 8: // comment
- break;
- default:
- simple = true;
- }
- if(complex && simple) {
- break;
- }
- }
-
- if(complex && simple) {
- type = OpenLayers.Format.XML.CONTENT_TYPE.MIXED;
- } else if(complex) {
- return OpenLayers.Format.XML.CONTENT_TYPE.COMPLEX;
- } else if(simple) {
- return OpenLayers.Format.XML.CONTENT_TYPE.SIMPLE;
- }
- return type;
- },
-
- /**
- * APIMethod: hasAttributeNS
- * Determine whether a node has a particular attribute matching the given
- * name and namespace.
- *
- * Parameters:
- * node - {Element} Node on which to search for an attribute.
- * uri - {String} Namespace URI.
- * name - {String} Local name of the attribute (without the prefix).
- *
- * Returns:
- * {Boolean} The node has an attribute matching the name and namespace.
- */
- hasAttributeNS: function(node, uri, name) {
- var found = false;
- if(node.hasAttributeNS) {
- found = node.hasAttributeNS(uri, name);
- } else {
- found = !!this.getAttributeNodeNS(node, uri, name);
- }
- return found;
- },
-
- /**
- * APIMethod: setAttributeNS
- * Adds a new attribute or changes the value of an attribute with the given
- * namespace and name.
- *
- * Parameters:
- * node - {Element} Element node on which to set the attribute.
- * uri - {String} Namespace URI for the attribute.
- * name - {String} Qualified name (prefix:localname) for the attribute.
- * value - {String} Attribute value.
- */
- setAttributeNS: function(node, uri, name, value) {
- if(node.setAttributeNS) {
- node.setAttributeNS(uri, name, value);
- } else {
- if(this.xmldom) {
- if(uri) {
- var attribute = node.ownerDocument.createNode(
- 2, name, uri
- );
- attribute.nodeValue = value;
- node.setAttributeNode(attribute);
- } else {
- node.setAttribute(name, value);
- }
- } else {
- throw "setAttributeNS not implemented";
- }
- }
- },
-
- /**
- * Method: createElementNSPlus
- * Shorthand for creating namespaced elements with optional attributes and
- * child text nodes.
- *
- * Parameters:
- * name - {String} The qualified node name.
- * options - {Object} Optional object for node configuration.
- *
- * Valid options:
- * uri - {String} Optional namespace uri for the element - supply a prefix
- * instead if the namespace uri is a property of the format's namespace
- * object.
- * attributes - {Object} Optional attributes to be set using the
- * <setAttributes> method.
- * value - {String} Optional text to be appended as a text node.
- *
- * Returns:
- * {Element} An element node.
- */
- createElementNSPlus: function(name, options) {
- options = options || {};
- // order of prefix preference
- // 1. in the uri option
- // 2. in the prefix option
- // 3. in the qualified name
- // 4. from the defaultPrefix
- var uri = options.uri || this.namespaces[options.prefix];
- if(!uri) {
- var loc = name.indexOf(":");
- uri = this.namespaces[name.substring(0, loc)];
- }
- if(!uri) {
- uri = this.namespaces[this.defaultPrefix];
- }
- var node = this.createElementNS(uri, name);
- if(options.attributes) {
- this.setAttributes(node, options.attributes);
- }
- var value = options.value;
- if(value != null) {
- node.appendChild(this.createTextNode(value));
- }
- return node;
- },
-
- /**
- * Method: setAttributes
- * Set multiple attributes given key value pairs from an object.
- *
- * Parameters:
- * node - {Element} An element node.
- * obj - {Object || Array} An object whose properties represent attribute
- * names and values represent attribute values. If an attribute name
- * is a qualified name ("prefix:local"), the prefix will be looked up
- * in the parsers {namespaces} object. If the prefix is found,
- * setAttributeNS will be used instead of setAttribute.
- */
- setAttributes: function(node, obj) {
- var value, uri;
- for(var name in obj) {
- if(obj[name] != null && obj[name].toString) {
- value = obj[name].toString();
- // check for qualified attribute name ("prefix:local")
- uri = this.namespaces[name.substring(0, name.indexOf(":"))] || null;
- this.setAttributeNS(node, uri, name, value);
- }
- }
- },
-
- /**
- * Method: readNode
- * Shorthand for applying one of the named readers given the node
- * namespace and local name. Readers take two args (node, obj) and
- * generally extend or modify the second.
- *
- * Parameters:
- * node - {DOMElement} The node to be read (required).
- * obj - {Object} The object to be modified (optional).
- *
- * Returns:
- * {Object} The input object, modified (or a new one if none was provided).
- */
- readNode: function(node, obj) {
- if(!obj) {
- obj = {};
- }
- var group = this.readers[node.namespaceURI ? this.namespaceAlias[node.namespaceURI]: this.defaultPrefix];
- if(group) {
- var local = node.localName || node.nodeName.split(":").pop();
- var reader = group[local] || group["*"];
- if(reader) {
- reader.apply(this, [node, obj]);
- }
- }
- return obj;
- },
-
- /**
- * Method: readChildNodes
- * Shorthand for applying the named readers to all children of a node.
- * For each child of type 1 (element), <readSelf> is called.
- *
- * Parameters:
- * node - {DOMElement} The node to be read (required).
- * obj - {Object} The object to be modified (optional).
- *
- * Returns:
- * {Object} The input object, modified.
- */
- readChildNodes: function(node, obj) {
- if(!obj) {
- obj = {};
- }
- var children = node.childNodes;
- var child;
- for(var i=0, len=children.length; i<len; ++i) {
- child = children[i];
- if(child.nodeType == 1) {
- this.readNode(child, obj);
- }
- }
- return obj;
- },
-
- /**
- * Method: writeNode
- * Shorthand for applying one of the named writers and appending the
- * results to a node. If a qualified name is not provided for the
- * second argument (and a local name is used instead), the namespace
- * of the parent node will be assumed.
- *
- * Parameters:
- * name - {String} The name of a node to generate. If a qualified name
- * (e.g. "pre:Name") is used, the namespace prefix is assumed to be
- * in the <writers> group. If a local name is used (e.g. "Name") then
- * the namespace of the parent is assumed. If a local name is used
- * and no parent is supplied, then the default namespace is assumed.
- * obj - {Object} Structure containing data for the writer.
- * parent - {DOMElement} Result will be appended to this node. If no parent
- * is supplied, the node will not be appended to anything.
- *
- * Returns:
- * {DOMElement} The child node.
- */
- writeNode: function(name, obj, parent) {
- var prefix, local;
- var split = name.indexOf(":");
- if(split > 0) {
- prefix = name.substring(0, split);
- local = name.substring(split + 1);
- } else {
- if(parent) {
- prefix = this.namespaceAlias[parent.namespaceURI];
- } else {
- prefix = this.defaultPrefix;
- }
- local = name;
- }
- var child = this.writers[prefix][local].apply(this, [obj]);
- if(parent) {
- parent.appendChild(child);
- }
- return child;
- },
-
- /**
- * APIMethod: getChildEl
- * Get the first child element. Optionally only return the first child
- * if it matches the given name and namespace URI.
- *
- * Parameters:
- * node - {DOMElement} The parent node.
- * name - {String} Optional node name (local) to search for.
- * uri - {String} Optional namespace URI to search for.
- *
- * Returns:
- * {DOMElement} The first child. Returns null if no element is found, if
- * something significant besides an element is found, or if the element
- * found does not match the optional name and uri.
- */
- getChildEl: function(node, name, uri) {
- return node && this.getThisOrNextEl(node.firstChild, name, uri);
- },
-
- /**
- * APIMethod: getNextEl
- * Get the next sibling element. Optionally get the first sibling only
- * if it matches the given local name and namespace URI.
- *
- * Parameters:
- * node - {DOMElement} The node.
- * name - {String} Optional local name of the sibling to search for.
- * uri - {String} Optional namespace URI of the sibling to search for.
- *
- * Returns:
- * {DOMElement} The next sibling element. Returns null if no element is
- * found, something significant besides an element is found, or the
- * found element does not match the optional name and uri.
- */
- getNextEl: function(node, name, uri) {
- return node && this.getThisOrNextEl(node.nextSibling, name, uri);
- },
-
- /**
- * Method: getThisOrNextEl
- * Return this node or the next element node. Optionally get the first
- * sibling with the given local name or namespace URI.
- *
- * Parameters:
- * node - {DOMElement} The node.
- * name - {String} Optional local name of the sibling to search for.
- * uri - {String} Optional namespace URI of the sibling to search for.
- *
- * Returns:
- * {DOMElement} The next sibling element. Returns null if no element is
- * found, something significant besides an element is found, or the
- * found element does not match the query.
- */
- getThisOrNextEl: function(node, name, uri) {
- outer: for(var sibling=node; sibling; sibling=sibling.nextSibling) {
- switch(sibling.nodeType) {
- case 1: // Element
- if((!name || name === (sibling.localName || sibling.nodeName.split(":").pop())) &&
- (!uri || uri === sibling.namespaceURI)) {
- // matches
- break outer;
- }
- sibling = null;
- break outer;
- case 3: // Text
- if(/^\s*$/.test(sibling.nodeValue)) {
- break;
- }
- case 4: // CDATA
- case 6: // ENTITY_NODE
- case 12: // NOTATION_NODE
- case 10: // DOCUMENT_TYPE_NODE
- case 11: // DOCUMENT_FRAGMENT_NODE
- sibling = null;
- break outer;
- } // ignore comments and processing instructions
- }
- return sibling || null;
- },
-
- /**
- * APIMethod: lookupNamespaceURI
- * Takes a prefix and returns the namespace URI associated with it on the given
- * node if found (and null if not). Supplying null for the prefix will
- * return the default namespace.
- *
- * For browsers that support it, this calls the native lookupNamesapceURI
- * function. In other browsers, this is an implementation of
- * http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI.
- *
- * For browsers that don't support the attribute.ownerElement property, this
- * method cannot be called on attribute nodes.
- *
- * Parameters:
- * node - {DOMElement} The node from which to start looking.
- * prefix - {String} The prefix to lookup or null to lookup the default namespace.
- *
- * Returns:
- * {String} The namespace URI for the given prefix. Returns null if the prefix
- * cannot be found or the node is the wrong type.
- */
- lookupNamespaceURI: function(node, prefix) {
- var uri = null;
- if(node) {
- if(node.lookupNamespaceURI) {
- uri = node.lookupNamespaceURI(prefix);
- } else {
- outer: switch(node.nodeType) {
- case 1: // ELEMENT_NODE
- if(node.namespaceURI !== null && node.prefix === prefix) {
- uri = node.namespaceURI;
- break outer;
- }
- var len = node.attributes.length;
- if(len) {
- var attr;
- for(var i=0; i<len; ++i) {
- attr = node.attributes[i];
- if(attr.prefix === "xmlns" && attr.name === "xmlns:" + prefix) {
- uri = attr.value || null;
- break outer;
- } else if(attr.name === "xmlns" && prefix === null) {
- uri = attr.value || null;
- break outer;
- }
- }
- }
- uri = this.lookupNamespaceURI(node.parentNode, prefix);
- break outer;
- case 2: // ATTRIBUTE_NODE
- uri = this.lookupNamespaceURI(node.ownerElement, prefix);
- break outer;
- case 9: // DOCUMENT_NODE
- uri = this.lookupNamespaceURI(node.documentElement, prefix);
- break outer;
- case 6: // ENTITY_NODE
- case 12: // NOTATION_NODE
- case 10: // DOCUMENT_TYPE_NODE
- case 11: // DOCUMENT_FRAGMENT_NODE
- break outer;
- default:
- // TEXT_NODE (3), CDATA_SECTION_NODE (4), ENTITY_REFERENCE_NODE (5),
- // PROCESSING_INSTRUCTION_NODE (7), COMMENT_NODE (8)
- uri = this.lookupNamespaceURI(node.parentNode, prefix);
- break outer;
- }
- }
- }
- return uri;
- },
-
- /**
- * Method: getXMLDoc
- * Get an XML document for nodes that are not supported in HTML (e.g.
- * createCDATASection). On IE, this will either return an existing or
- * create a new <xmldom> on the instance. On other browsers, this will
- * either return an existing or create a new shared document (see
- * <OpenLayers.Format.XML.document>).
- *
- * Returns:
- * {XMLDocument}
- */
- getXMLDoc: function() {
- if (!OpenLayers.Format.XML.document && !this.xmldom) {
- if (document.implementation && document.implementation.createDocument) {
- OpenLayers.Format.XML.document =
- document.implementation.createDocument("", "", null);
- } else if (!this.xmldom && window.ActiveXObject) {
- this.xmldom = new ActiveXObject("Microsoft.XMLDOM");
- }
- }
- return OpenLayers.Format.XML.document || this.xmldom;
- },
-
- CLASS_NAME: "OpenLayers.Format.XML"
-
-});
-
-OpenLayers.Format.XML.CONTENT_TYPE = {EMPTY: 0, SIMPLE: 1, COMPLEX: 2, MIXED: 3};
-
-/**
- * APIFunction: OpenLayers.Format.XML.lookupNamespaceURI
- * Takes a prefix and returns the namespace URI associated with it on the given
- * node if found (and null if not). Supplying null for the prefix will
- * return the default namespace.
- *
- * For browsers that support it, this calls the native lookupNamesapceURI
- * function. In other browsers, this is an implementation of
- * http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI.
- *
- * For browsers that don't support the attribute.ownerElement property, this
- * method cannot be called on attribute nodes.
- *
- * Parameters:
- * node - {DOMElement} The node from which to start looking.
- * prefix - {String} The prefix to lookup or null to lookup the default namespace.
- *
- * Returns:
- * {String} The namespace URI for the given prefix. Returns null if the prefix
- * cannot be found or the node is the wrong type.
- */
-OpenLayers.Format.XML.lookupNamespaceURI = OpenLayers.Function.bind(
- OpenLayers.Format.XML.prototype.lookupNamespaceURI,
- OpenLayers.Format.XML.prototype
-);
-
-/**
- * Property: OpenLayers.Format.XML.document
- * {XMLDocument} XML document to reuse for creating non-HTML compliant nodes,
- * like document.createCDATASection.
- */
-OpenLayers.Format.XML.document = null;
diff --git a/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js b/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js
deleted file mode 100644
index e68d968..0000000
--- a/misc/openlayers/lib/OpenLayers/Format/XML/VersionedOGC.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
- * full list of contributors). Published under the 2-clause BSD license.
- * See license.txt in the OpenLayers distribution or repository for the
- * full text of the license. */
-
-/**
- * @requires OpenLayers/Format/XML.js
- * @requires OpenLayers/Format/OGCExceptionReport.js
- */
-
-/**
- * Class: OpenLayers.Format.XML.VersionedOGC
- * Base class for versioned formats, i.e. a format which supports multiple
- * versions.
- *
- * To enable checking if parsing succeeded, you will need to define a property
- * called errorProperty on the parser you want to check. The parser will then
- * check the returned object to see if that property is present. If it is, it
- * assumes the parsing was successful. If it is not present (or is null), it will
- * pass the document through an OGCExceptionReport parser.
- *
- * If errorProperty is undefined for the parser, this error checking mechanism
- * will be disabled.
- *
- *
- *
- * Inherits from:
- * - <OpenLayers.Format.XML>
- */
-OpenLayers.Format.XML.VersionedOGC = OpenLayers.Class(OpenLayers.Format.XML, {
-
- /**
- * APIProperty: defaultVersion
- * {String} Version number to assume if none found.
- */
- defaultVersion: null,
-
- /**
- * APIProperty: version
- * {String} Specify a version string if one is known.
- */
- version: null,
-
- /**
- * APIProperty: profile
- * {String} If provided, use a custom profile.
- */
- profile: null,
-
- /**
- * APIProperty: allowFallback
- * {Boolean} If a profiled parser cannot be found for the returned version,
- * use a non-profiled parser as the fallback. Application code using this
- * should take into account that the return object structure might be
- * missing the specifics of the profile. Defaults to false.
- */
- allowFallback: false,
-
- /**
- * Property: name
- * {String} The name of this parser, this is the part of the CLASS_NAME
- * except for "OpenLayers.Format."
- */
- name: null,
-
- /**
- * APIProperty: stringifyOutput
- * {Boolean} If true, write will return a string otherwise a DOMElement.
- * Default is false.
- */
- stringifyOutput: false,
-
- /**
- * Property: parser
- * {Object} Instance of the versioned parser. Cached for multiple read and
- * write calls of the same version.
- */
- parser: null,
-
- /**
- * Constructor: OpenLayers.Format.XML.VersionedOGC.
- * Constructor.
- *
- * Parameters:
- * options - {Object} Optional object whose properties will be set on
- * the object.
- */
- initialize: function(options) {
- OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
- var className = this.CLASS_NAME;
- this.name = className.substring(className.lastIndexOf(".")+1);
- },
-
- /**
- * Method: getVersion
- * Returns the version to use. Subclasses can override this function
- * if a different version detection is needed.
- *
- * Parameters:
- * root - {DOMElement}
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} The version to use.
- */
- getVersion: function(root, options) {
- var version;
- // read
- if (root) {
- version = this.version;
- if(!version) {
- version = root.getAttribute("version");
- if(!version) {
- version = this.defaultVersion;
- }
- }
- } else { // write
- version = (options && options.version) ||
- this.version || this.defaultVersion;
- }
- return version;
- },
-
- /**
- * Method: getParser
- * Get an instance of the cached parser if available, otherwise create one.
- *
- * Parameters:
- * version - {String}
- *
- * Returns:
- * {<OpenLayers.Format>}
- */
- getParser: function(version) {
- version = version || this.defaultVersion;
- var profile = this.profile ? "_" + this.profile : "";
- if(!this.parser || this.parser.VERSION != version) {
- var format = OpenLayers.Format[this.name][
- "v" + version.replace(/\./g, "_") + profile
- ];
- if(!format) {
- if (profile !== "" && this.allowFallback) {
- // fallback to the non-profiled version of the parser
- profile = "";
- format = OpenLayers.Format[this.name][
- "v" + version.replace(/\./g, "_")
- ];
- }
- if (!format) {
- throw "Can't find a " + this.name + " parser for version " +
- version + profile;
- }
- }
- this.parser = new format(this.options);
- }
- return this.parser;
- },
-
- /**
- * APIMethod: write
- * Write a document.
- *
- * Parameters:
- * obj - {Object} An object representing the document.
- * options - {Object} Optional configuration object.
- *
- * Returns:
- * {String} The document as a string
- */
- write: function(obj, options) {
- var version = this.getVersion(null, options);
- this.parser = this.getParser(version);
- var root = this.parser.write(obj, options);
- if (this.stringifyOutput === false) {
- return root;
- } else {
- return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
- }
- },
-
- /**
- * APIMethod: read
- * Read a doc and return an object representing the document.
- *
- * Parameters:
- * data - {String | DOMElement} Data to read.
- * options - {Object} Options for the reader.
- *
- * Returns:
- * {Object} An object representing the document.
- */
- read: function(data, options) {
- if(typeof data == "string") {
- data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
- }
- var root = data.documentElement;
- var version = this.getVersion(root);
- this.parser = this.getParser(version); // Select the parser
- var obj = this.parser.read(data, options); // Parse the data
-
- var errorProperty = this.parser.errorProperty || null;
- if (errorProperty !== null && obj[errorProperty] === undefined) {
- // an error must have happened, so parse it and report back
- var format = new OpenLayers.Format.OGCExceptionReport();
- obj.error = format.read(data);
- }
- obj.version = version;
- return obj;
- },
-
- CLASS_NAME: "OpenLayers.Format.XML.VersionedOGC"
-});