[fusion-commits] r2143 - sandbox/adsk/2.2gp/lib/OpenLayers
trunk/lib/OpenLayers
svn_fusion at osgeo.org
svn_fusion at osgeo.org
Thu Apr 15 16:05:31 EDT 2010
Author: chrisclaydon
Date: 2010-04-15 16:04:19 -0400 (Thu, 15 Apr 2010)
New Revision: 2143
Modified:
sandbox/adsk/2.2gp/lib/OpenLayers/OpenLayers.js
trunk/lib/OpenLayers/OpenLayers.js
Log:
Re #333 - Bing: Map with Bing maps doesn't refresh when browser maximize
Redraw non-base layers when Bing base layer finishes resizing.
Modified: sandbox/adsk/2.2gp/lib/OpenLayers/OpenLayers.js
===================================================================
--- sandbox/adsk/2.2gp/lib/OpenLayers/OpenLayers.js 2010-04-15 16:26:04 UTC (rev 2142)
+++ sandbox/adsk/2.2gp/lib/OpenLayers/OpenLayers.js 2010-04-15 20:04:19 UTC (rev 2143)
@@ -23,23 +23,23 @@
*
*--------------------------------------------------------------------------*/
-/**
-*
+/**
+*
* Contains portions of Rico <http://openrico.org/>
-*
-* Copyright 2005 Sabre Airline Solutions
-*
+*
+* Copyright 2005 Sabre Airline Solutions
+*
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
-* permissions and limitations under the License.
+* permissions and limitations under the License.
*
**/
@@ -111,11 +111,11 @@
* license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the
* full text of the license. */
-/*
+/*
* @requires OpenLayers/BaseTypes.js
* @requires OpenLayers/Lang/en.js
* @requires OpenLayers/Console.js
- */
+ */
(function() {
/**
@@ -125,13 +125,13 @@
* case with single file builds.
*/
var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);
-
+
/**
* Namespace: OpenLayers
* The OpenLayers object provides a namespace for all things OpenLayers
*/
window.OpenLayers = {
-
+
/**
* Property: _scriptName
* {String} Relative path of this script.
@@ -146,9 +146,9 @@
* {String} Path to this script
*/
_getScriptLocation: function () {
- var scriptLocation = "";
+ var scriptLocation = "";
var isOL = new RegExp("(^|(.*?\\/))(" + OpenLayers._scriptName + ")(\\?|$)");
-
+
var scripts = document.getElementsByTagName('script');
for (var i=0, len=scripts.length; i<len; i++) {
var src = scripts[i].getAttribute('src');
@@ -166,11 +166,11 @@
/**
* OpenLayers.singleFile is a flag indicating this file is being included
* in a Single File Library build of the OpenLayers Library.
- *
+ *
* When we are *not* part of a SFL build we dynamically include the
* OpenLayers library code.
- *
- * When we *are* part of a SFL build we do not dynamically include the
+ *
+ * When we *are* part of a SFL build we do not dynamically include the
* OpenLayers library code as it will be appended at the end of this file.
*/
if(!singleFile) {
@@ -282,7 +282,7 @@
"OpenLayers/Geometry/MultiPoint.js",
"OpenLayers/Geometry/Curve.js",
"OpenLayers/Geometry/LineString.js",
- "OpenLayers/Geometry/LinearRing.js",
+ "OpenLayers/Geometry/LinearRing.js",
"OpenLayers/Geometry/Polygon.js",
"OpenLayers/Geometry/MultiLineString.js",
"OpenLayers/Geometry/MultiPolygon.js",
@@ -382,16 +382,16 @@
if(docWrite) {
var allScriptTags = new Array(jsfiles.length);
}
- var host = OpenLayers._getScriptLocation() + "lib/";
+ var host = OpenLayers._getScriptLocation() + "lib/";
for (var i=0, len=jsfiles.length; i<len; i++) {
if (docWrite) {
allScriptTags[i] = "<script src='" + host + jsfiles[i] +
- "'></script>";
+ "'></script>";
} else {
var s = document.createElement("script");
s.src = host + jsfiles[i];
- var h = document.getElementsByTagName("head").length ?
- document.getElementsByTagName("head")[0] :
+ var h = document.getElementsByTagName("head").length ?
+ document.getElementsByTagName("head")[0] :
document.body;
h.appendChild(s);
}
@@ -423,7 +423,7 @@
*/
OpenLayers.Util = {};
-/**
+/**
* Function: getElement
* This is the old $() from prototype
*/
@@ -443,7 +443,7 @@
return elements;
};
-/**
+/**
* Maintain existing definition of $.
*/
if(typeof window.$ === "undefined") {
@@ -497,7 +497,7 @@
};
-/**
+/**
* Function: removeItem
* Remove an object from an array. Iterates through the array
* to find the item, then removes it.
@@ -505,7 +505,7 @@
* Parameters:
* array - {Array}
* item - {Object}
- *
+ *
* Return
* {Array} A reference to the array
*/
@@ -523,7 +523,7 @@
* Function: clearArray
* *Deprecated*. This function will disappear in 3.0.
* Please use "array.length = 0" instead.
- *
+ *
* Parameters:
* array - {Array}
*/
@@ -536,14 +536,14 @@
array.length = 0;
};
-/**
+/**
* Function: indexOf
* Seems to exist already in FF, but not in MOZ.
- *
+ *
* Parameters:
* array - {Array}
* obj - {Object}
- *
+ *
* Returns:
* {Integer} The index at, which the object was found in the array.
* If not found, returns -1.
@@ -555,29 +555,29 @@
return i;
}
}
- return -1;
+ return -1;
};
/**
* Function: modifyDOMElement
- *
- * Modifies many properties of a DOM element all at once. Passing in
+ *
+ * Modifies many properties of a DOM element all at once. Passing in
* null to an individual parameter will avoid setting the attribute.
*
* Parameters:
* id - {String} The element id attribute to set.
* px - {<OpenLayers.Pixel>} The left and top style position.
* sz - {<OpenLayers.Size>} The width and height style attributes.
- * position - {String} The position attribute. eg: absolute,
+ * position - {String} The position attribute. eg: absolute,
* relative, etc.
* border - {String} The style.border attribute. eg:
* solid black 2px
- * overflow - {String} The style.overview attribute.
+ * overflow - {String} The style.overview attribute.
* opacity - {Float} Fractional value (0.0 - 1.0)
*/
-OpenLayers.Util.modifyDOMElement = function(element, id, px, sz, position,
+OpenLayers.Util.modifyDOMElement = function(element, id, px, sz, position,
border, overflow, opacity) {
if (id) {
@@ -609,32 +609,32 @@
}
};
-/**
+/**
* Function: createDiv
* Creates a new div and optionally set some standard attributes.
* Null may be passed to each parameter if you do not wish to
* set a particular attribute.
* Note - zIndex is NOT set on the resulting div.
- *
+ *
* Parameters:
* id - {String} An identifier for this element. If no id is
- * passed an identifier will be created
+ * passed an identifier will be created
* automatically.
- * px - {<OpenLayers.Pixel>} The element left and top position.
+ * px - {<OpenLayers.Pixel>} The element left and top position.
* sz - {<OpenLayers.Size>} The element width and height.
- * imgURL - {String} A url pointing to an image to use as a
+ * imgURL - {String} A url pointing to an image to use as a
* background image.
* position - {String} The style.position value. eg: absolute,
* relative etc.
- * border - {String} The the style.border value.
+ * border - {String} The the style.border value.
* eg: 2px solid black
* overflow - {String} The style.overflow value. Eg. hidden
* opacity - {Float} Fractional value (0.0 - 1.0)
- *
- * Returns:
+ *
+ * Returns:
* {DOMElement} A DOM Div created with the specified attributes.
*/
-OpenLayers.Util.createDiv = function(id, px, sz, imgURL, position,
+OpenLayers.Util.createDiv = function(id, px, sz, imgURL, position,
border, overflow, opacity) {
var dom = document.createElement('div');
@@ -650,7 +650,7 @@
if (!position) {
position = "absolute";
}
- OpenLayers.Util.modifyDOMElement(dom, id, px, sz, position,
+ OpenLayers.Util.modifyDOMElement(dom, id, px, sz, position,
border, overflow, opacity);
return dom;
@@ -659,7 +659,7 @@
/**
* Function: createImage
* Creates an img element with specific attribute values.
- *
+ *
* Parameters:
* id - {String} The id field for the img. If none assigned one will be
* automatically generated.
@@ -671,7 +671,7 @@
* opacity - {Float} Fractional value (0.0 - 1.0)
* delayDisplay - {Boolean} If true waits until the image has been
* loaded.
- *
+ *
* Returns:
* {DOMElement} A DOM Image created with the specified attributes.
*/
@@ -687,18 +687,18 @@
if (!position) {
position = "relative";
}
- OpenLayers.Util.modifyDOMElement(image, id, px, sz, position,
+ OpenLayers.Util.modifyDOMElement(image, id, px, sz, position,
border, null, opacity);
if(delayDisplay) {
image.style.display = "none";
- OpenLayers.Event.observe(image, "load",
+ OpenLayers.Event.observe(image, "load",
OpenLayers.Function.bind(OpenLayers.Util.onImageLoad, image));
- OpenLayers.Event.observe(image, "error",
+ OpenLayers.Event.observe(image, "error",
OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError, image));
-
+
}
-
+
//set special properties
image.style.alt = id;
image.galleryImg = "no";
@@ -707,17 +707,17 @@
}
-
+
return image;
};
/**
* Function: setOpacity
- * *Deprecated*. This function has been deprecated. Instead, please use
- * <OpenLayers.Util.modifyDOMElement>
- * or
+ * *Deprecated*. This function has been deprecated. Instead, please use
+ * <OpenLayers.Util.modifyDOMElement>
+ * or
* <OpenLayers.Util.modifyAlphaImageDiv>
- *
+ *
* Set the opacity of a DOM Element
* Note that for this function to work in IE, elements must "have layout"
* according to:
@@ -739,23 +739,23 @@
*/
OpenLayers.Util.onImageLoad = function() {
// The complex check here is to solve issues described in #480.
- // Every time a map view changes, it increments the 'viewRequestID'
+ // Every time a map view changes, it increments the 'viewRequestID'
// property. As the requests for the images for the new map view are sent
- // out, they are tagged with this unique viewRequestID.
- //
- // If an image has no viewRequestID property set, we display it regardless,
- // but if it does have a viewRequestID property, we check that it matches
+ // out, they are tagged with this unique viewRequestID.
+ //
+ // If an image has no viewRequestID property set, we display it regardless,
+ // but if it does have a viewRequestID property, we check that it matches
// the viewRequestID set on the map.
- //
+ //
// If the viewRequestID on the map has changed, that means that the user
// has changed the map view since this specific request was sent out, and
// therefore this tile does not need to be displayed (so we do not execute
// this code that turns its display on).
//
if (!this.viewRequestID ||
- (this.map && this.viewRequestID == this.map.viewRequestID)) {
+ (this.map && this.viewRequestID == this.map.viewRequestID)) {
this.style.backgroundColor ="transparent";
- this.style.display = "";
+ this.style.display = "";
}
};
@@ -774,7 +774,7 @@
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 0;
/**
- * Function: onImageLoadError
+ * Function: onImageLoadError
*/
OpenLayers.Util.onImageLoadError = function() {
this._attempts = (this._attempts) ? (this._attempts + 1) : 1;
@@ -816,7 +816,7 @@
* Checks whether it's necessary (and possible) to use the png alpha
* hack which allows alpha transparency for png images under Internet
* Explorer.
- *
+ *
* Returns:
* {Boolean} true if the png alpha hack is necessary and possible, false otherwise.
*/
@@ -825,25 +825,25 @@
var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);
var filter = false;
-
- // IEs4Lin dies when trying to access document.body.filters, because
+
+ // IEs4Lin dies when trying to access document.body.filters, because
// the property is there, but requires a DLL that can't be provided. This
// means that we need to wrap this in a try/catch so that this can
// continue.
-
- try {
+
+ try {
filter = !!(document.body.filters);
- } catch (e) {}
-
- OpenLayers.Util.alphaHackNeeded = (filter &&
+ } catch (e) {}
+
+ OpenLayers.Util.alphaHackNeeded = (filter &&
(version >= 5.5) && (version < 7));
}
return OpenLayers.Util.alphaHackNeeded;
};
-/**
+/**
* Function: modifyAlphaImageDiv
- *
+ *
* div - {DOMElement} Div containing Alpha-adjusted Image
* id - {String}
* px - {<OpenLayers.Pixel>}
@@ -853,9 +853,9 @@
* border - {String}
* sizing {String} 'crop', 'scale', or 'image'. Default is "scale"
* opacity - {Float} Fractional value (0.0 - 1.0)
- */
-OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL,
- position, border, sizing,
+ */
+OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL,
+ position, border, sizing,
opacity) {
OpenLayers.Util.modifyDOMElement(div, id, px, sz, position,
@@ -866,9 +866,9 @@
if (imgURL) {
img.src = imgURL;
}
- OpenLayers.Util.modifyDOMElement(img, div.id + "_innerImage", null, sz,
+ OpenLayers.Util.modifyDOMElement(img, div.id + "_innerImage", null, sz,
"relative", border);
-
+
if (OpenLayers.Util.alphaHack()) {
if(div.style.display != "none") {
div.style.display = "inline-block";
@@ -876,11 +876,11 @@
if (sizing == null) {
sizing = "scale";
}
-
+
div.style.filter = "progid:DXImageTransform.Microsoft" +
".AlphaImageLoader(src='" + img.src + "', " +
"sizingMethod='" + sizing + "')";
- if (parseFloat(div.style.opacity) >= 0.0 &&
+ if (parseFloat(div.style.opacity) >= 0.0 &&
parseFloat(div.style.opacity) < 1.0) {
div.style.filter += " alpha(opacity=" + div.style.opacity * 100 + ")";
}
@@ -889,9 +889,9 @@
}
};
-/**
+/**
* Function: createAlphaImageDiv
- *
+ *
* id - {String}
* px - {<OpenLayers.Pixel>}
* sz - {<OpenLayers.Size>}
@@ -902,17 +902,17 @@
* opacity - {Float} Fractional value (0.0 - 1.0)
* delayDisplay - {Boolean} If true waits until the image has been
* loaded.
- *
+ *
* Returns:
- * {DOMElement} A DOM Div created with a DOM Image inside it. If the hack is
+ * {DOMElement} A DOM Div created with a DOM Image inside it. If the hack is
* needed for transparency in IE, it is added.
- */
-OpenLayers.Util.createAlphaImageDiv = function(id, px, sz, imgURL,
- position, border, sizing,
+ */
+OpenLayers.Util.createAlphaImageDiv = function(id, px, sz, imgURL,
+ position, border, sizing,
opacity, delayDisplay) {
-
+
var div = OpenLayers.Util.createDiv();
- var img = OpenLayers.Util.createImage(null, null, null, null, null, null,
+ var img = OpenLayers.Util.createImage(null, null, null, null, null, null,
null, false);
div.appendChild(img);
@@ -924,23 +924,23 @@
OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError, div));
}
- OpenLayers.Util.modifyAlphaImageDiv(div, id, px, sz, imgURL, position,
+ OpenLayers.Util.modifyAlphaImageDiv(div, id, px, sz, imgURL, position,
border, sizing, opacity);
-
+
return div;
};
-/**
+/**
* Function: upperCaseObject
- * Creates a new hashtable and copies over all the keys from the
+ * Creates a new hashtable and copies over all the keys from the
* passed-in object, but storing them under an uppercased
* version of the key at which they were stored.
- *
- * Parameters:
+ *
+ * Parameters:
* object - {Object}
- *
- * Returns:
+ *
+ * Returns:
* {Object} A new Object with all the same keys but uppercased
*/
OpenLayers.Util.upperCaseObject = function (object) {
@@ -951,12 +951,12 @@
return uObject;
};
-/**
+/**
* Function: applyDefaults
* Takes an object and copies any properties that don't exist from
* another properties, by analogy with OpenLayers.Util.extend() from
* Prototype.js.
- *
+ *
* Parameters:
* to - {Object} The destination object.
* from - {Object} The source object. Any properties of this object that
@@ -992,27 +992,27 @@
&& from.hasOwnProperty('toString') && !to.hasOwnProperty('toString')) {
to.toString = from.toString;
}
-
+
return to;
};
/**
* Function: getParameterString
- *
+ *
* Parameters:
* params - {Object}
- *
+ *
* Returns:
- * {String} A concatenation of the properties of an object in
- * http parameter notation.
+ * {String} A concatenation of the properties of an object in
+ * http parameter notation.
* (ex. <i>"key1=value1&key2=value2&key3=value3"</i>)
* If a parameter is actually a list, that parameter will then
* be set to a comma-seperated list of values (foo,bar) instead
- * of being URL escaped (foo%3Abar).
+ * of being URL escaped (foo%3Abar).
*/
OpenLayers.Util.getParameterString = function(params) {
var paramsArray = [];
-
+
for (var key in params) {
var value = params[key];
if ((value != null) && (typeof value != 'function')) {
@@ -1032,7 +1032,7 @@
paramsArray.push(encodeURIComponent(key) + "=" + encodedValue);
}
}
-
+
return paramsArray.join("&");
};
@@ -1042,9 +1042,9 @@
*/
OpenLayers.ImgPath = '';
-/**
+/**
* Function: getImagesLocation
- *
+ *
* Returns:
* {String} The fully formatted image location string
*/
@@ -1053,18 +1053,18 @@
};
-/**
+/**
* Function: Try
- * Execute functions until one of them doesn't throw an error.
+ * Execute functions until one of them doesn't throw an error.
* Capitalized because "try" is a reserved word in JavaScript.
* Taken directly from OpenLayers.Util.Try()
- *
+ *
* Parameters:
* [*] - {Function} Any number of parameters may be passed to Try()
- * It will attempt to execute each of them until one of them
- * successfully executes.
+ * It will attempt to execute each of them until one of them
+ * successfully executes.
* If none executes successfully, returns null.
- *
+ *
* Returns:
* {*} The value returned by the first successfully executed function.
*/
@@ -1083,15 +1083,15 @@
};
-/**
+/**
* Function: getNodes
- *
+ *
* These could/should be made namespace aware?
- *
+ *
* Parameters:
* p - {}
* tagName - {String}
- *
+ *
* Returns:
* {Array}
*/
@@ -1110,11 +1110,11 @@
/**
* Function: _getNodes
- *
+ *
* Parameters:
* nodes - {Array}
* tagName - {String}
- *
+ *
* Returns:
* {Array}
*/
@@ -1133,12 +1133,12 @@
/**
* Function: getTagText
- *
+ *
* Parameters:
* parent - {}
* item - {String}
* index - {Integer}
- *
+ *
* Returns:
* {String}
*/
@@ -1150,28 +1150,28 @@
index=0;
}
if (result[index].childNodes.length > 1) {
- return result.childNodes[1].nodeValue;
+ return result.childNodes[1].nodeValue;
}
else if (result[index].childNodes.length == 1) {
- return result[index].firstChild.nodeValue;
+ return result[index].firstChild.nodeValue;
}
- } else {
- return "";
+ } else {
+ return "";
}
};
/**
* Function: getXmlNodeValue
- *
+ *
* Parameters:
* node - {XMLNode}
- *
+ *
* Returns:
* {String} The text value of the given node, without breaking in firefox or IE
*/
OpenLayers.Util.getXmlNodeValue = function(node) {
var val = null;
- OpenLayers.Util.Try(
+ OpenLayers.Util.Try(
function() {
val = node.text;
if (!val) {
@@ -1180,20 +1180,20 @@
if (!val) {
val = node.firstChild.nodeValue;
}
- },
+ },
function() {
val = node.textContent;
- });
+ });
return val;
};
-/**
+/**
* Function: mouseLeft
- *
+ *
* Parameters:
* evt - {Event}
* div - {HTMLDivElement}
- *
+ *
* Returns:
* {Boolean}
*/
@@ -1255,10 +1255,10 @@
/**
* Function: rad
- *
+ *
* Parameters:
* x - {Float}
- *
+ *
* Returns:
* {Float}
*/
@@ -1269,11 +1269,11 @@
* Given two objects representing points with geographic coordinates, this
* calculates the distance between those points on the surface of an
* ellipsoid.
- *
+ *
* Parameters:
* p1 - {<OpenLayers.LonLat>} (or any object with both .lat, .lon properties)
* p2 - {<OpenLayers.LonLat>} (or any object with both .lat, .lon properties)
- *
+ *
* Returns:
* {Float} The distance (in km) between the two input points as measured on an
* ellipsoid. Note that the input point objects must be in geographic
@@ -1320,14 +1320,14 @@
/**
* Function: getParameters
- * Parse the parameters from a URL or from the current page itself into a
+ * Parse the parameters from a URL or from the current page itself into a
* JavaScript Object. Note that parameter values with commas are separated
* out into an Array.
- *
+ *
* Parameters:
* url - {String} Optional url used to extract the query string.
* If null, query string is taken from page location.
- *
+ *
* Returns:
* {Object} An object of key/value pairs from the query string.
*/
@@ -1343,7 +1343,7 @@
url.indexOf('#') : url.length;
paramsString = url.substring(start, end);
}
-
+
var parameters = {};
var pairs = paramsString.split(/[&;]/);
for(var i=0, len=pairs.length; i<len; ++i) {
@@ -1358,11 +1358,11 @@
value[j] = decodeURIComponent(value[j]);
}
- //if there's only one value, do not return as array
+ //if there's only one value, do not return as array
if (value.length == 1) {
value = value[0];
- }
-
+ }
+
parameters[key] = value;
}
}
@@ -1373,11 +1373,11 @@
* Function: getArgs
* *Deprecated*. Will be removed in 3.0. Please use instead
* <OpenLayers.Util.getParameters>
- *
+ *
* Parameters:
* url - {String} Optional url used to extract the query string.
* If null, query string is taken from page location.
- *
+ *
* Returns:
* {Object} An object of key/value pairs from the query string.
*/
@@ -1402,10 +1402,10 @@
* Create a unique identifier for this session. Each time this function
* is called, a counter is incremented. The return will be the optional
* prefix (defaults to "id_") appended with the counter value.
- *
+ *
* Parameters:
* prefix {String} Optionsal string to prefix unique id. Default is "id_".
- *
+ *
* Returns:
* {String} A unique id string, built on the passed in prefix.
*/
@@ -1413,8 +1413,8 @@
if (prefix == null) {
prefix = "id_";
}
- OpenLayers.Util.lastSeqID += 1;
- return prefix + OpenLayers.Util.lastSeqID;
+ OpenLayers.Util.lastSeqID += 1;
+ return prefix + OpenLayers.Util.lastSeqID;
};
/**
@@ -1426,7 +1426,7 @@
* The hardcoded table is maintain in a CS-MAP source code module named CSdataU.c
* The hardcoded table of PROJ.4 units are in pj_units.c.
*/
-OpenLayers.INCHES_PER_UNIT = {
+OpenLayers.INCHES_PER_UNIT = {
'inches': 1.0,
'ft': 12.0,
'mi': 63360.0,
@@ -1512,8 +1512,8 @@
"ch": OpenLayers.INCHES_PER_UNIT["IntnlChain"], //International Chain
"link": OpenLayers.INCHES_PER_UNIT["IntnlLink"], //International Link
"us-in": OpenLayers.INCHES_PER_UNIT["inches"], //U.S. Surveyor's Inch
- "us-ft": OpenLayers.INCHES_PER_UNIT["Foot"], //U.S. Surveyor's Foot
- "us-yd": OpenLayers.INCHES_PER_UNIT["Yard"], //U.S. Surveyor's Yard
+ "us-ft": OpenLayers.INCHES_PER_UNIT["Foot"], //U.S. Surveyor's Foot
+ "us-yd": OpenLayers.INCHES_PER_UNIT["Yard"], //U.S. Surveyor's Yard
"us-ch": OpenLayers.INCHES_PER_UNIT["GunterChain"], //U.S. Surveyor's Chain
"us-mi": OpenLayers.INCHES_PER_UNIT["Mile"], //U.S. Surveyor's Statute Mile
"ind-yd": OpenLayers.INCHES_PER_UNIT["IndianYd37"], //Indian Yard
@@ -1521,7 +1521,7 @@
"ind-ch": 20.11669506 / OpenLayers.METERS_PER_INCH //Indian Chain
});
-/**
+/**
* Constant: DOTS_PER_INCH
* {Integer} 72 (A sensible default)
*/
@@ -1529,32 +1529,32 @@
/**
* Function: normalizeScale
- *
+ *
* Parameters:
* scale - {float}
- *
+ *
* Returns:
- * {Float} A normalized scale value, in 1 / X format.
+ * {Float} A normalized scale value, in 1 / X format.
* This means that if a value less than one ( already 1/x) is passed
- * in, it just returns scale directly. Otherwise, it returns
+ * in, it just returns scale directly. Otherwise, it returns
* 1 / scale
*/
OpenLayers.Util.normalizeScale = function (scale) {
- var normScale = (scale > 1.0) ? (1.0 / scale)
+ var normScale = (scale > 1.0) ? (1.0 / scale)
: scale;
return normScale;
};
/**
* Function: getResolutionFromScale
- *
+ *
* Parameters:
* scale - {Float}
* units - {String} Index into OpenLayers.INCHES_PER_UNIT hashtable.
* Default is degrees
- *
+ *
* Returns:
- * {Float} The corresponding resolution given passed-in scale and unit
+ * {Float} The corresponding resolution given passed-in scale and unit
* parameters.
*/
OpenLayers.Util.getResolutionFromScale = function (scale, units) {
@@ -1572,14 +1572,14 @@
/**
* Function: getScaleFromResolution
- *
+ *
* Parameters:
* resolution - {Float}
* units - {String} Index into OpenLayers.INCHES_PER_UNIT hashtable.
* Default is degrees
- *
+ *
* Returns:
- * {Float} The corresponding scale given passed-in resolution and unit
+ * {Float} The corresponding scale given passed-in resolution and unit
* parameters.
*/
OpenLayers.Util.getScaleFromResolution = function (resolution, units) {
@@ -1595,13 +1595,13 @@
/**
* Function: safeStopPropagation
- * *Deprecated*. This function has been deprecated. Please use directly
- * <OpenLayers.Event.stop> passing 'true' as the 2nd
+ * *Deprecated*. This function has been deprecated. Please use directly
+ * <OpenLayers.Event.stop> passing 'true' as the 2nd
* argument (preventDefault)
- *
+ *
* Safely stop the propagation of an event *without* preventing
* the default browser action from occurring.
- *
+ *
* Parameter:
* evt - {Event}
*/
@@ -1611,11 +1611,11 @@
/**
* Function: pagePositon
- * Calculates the position of an element on the page.
+ * Calculates the position of an element on the page.
*
* Parameters:
* forElement - {DOMElement}
- *
+ *
* Returns:
* {Array} two item array, L value then T value.
*/
@@ -1631,7 +1631,7 @@
break;
}
}
-
+
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
@@ -1652,25 +1652,25 @@
valueL -= element.scrollLeft || 0;
element = element.parentNode;
}
-
+
return [valueL, valueT];
};
-/**
+/**
* Function: isEquivalentUrl
- * Test two URLs for equivalence.
- *
+ * Test two URLs for equivalence.
+ *
* Setting 'ignoreCase' allows for case-independent comparison.
- *
- * Comparison is based on:
+ *
+ * Comparison is based on:
* - Protocol
* - Host (evaluated without the port)
* - Port (set 'ignorePort80' to ignore "80" values)
* - Hash ( set 'ignoreHash' to disable)
- * - Pathname (for relative <-> absolute comparison)
+ * - Pathname (for relative <-> absolute comparison)
* - Arguments (so they can be out of order)
- *
+ *
* Parameters:
* url1 - {String}
* url2 - {String}
@@ -1714,22 +1714,22 @@
for(var key in urlObj2.args) {
return false;
}
-
+
return true;
};
/**
* Function: createUrlObject
- *
+ *
* Parameters:
* url - {String}
* options - {Object} A hash of options. Can be one of:
* ignoreCase: lowercase url,
* ignorePort80: don't include explicit port if port is 80,
* ignoreHash: Don't include part of url after the hash (#).
- *
+ *
* Returns:
- * {Object} An object with separate url, a, port, host, and args parsed out
+ * {Object} An object with separate url, a, port, host, and args parsed out
* and ready for comparison
*/
OpenLayers.Util.createUrlObject = function(url, options) {
@@ -1750,21 +1750,21 @@
url = fullUrl + parts.join("/") + "/" + url;
}
}
-
+
if (options.ignoreCase) {
- url = url.toLowerCase();
+ url = url.toLowerCase();
}
var a = document.createElement('a');
a.href = url;
-
+
var urlObject = {};
-
+
//host (without port)
urlObject.host = a.host.split(":").shift();
//protocol
- urlObject.protocol = a.protocol;
+ urlObject.protocol = a.protocol;
//port (get uniform browser behavior with port 80 here)
if(options.ignorePort80) {
@@ -1774,8 +1774,8 @@
}
//hash
- urlObject.hash = (options.ignoreHash || a.hash === "#") ? "" : a.hash;
-
+ urlObject.hash = (options.ignoreHash || a.hash === "#") ? "" : a.hash;
+
//args
var queryString = a.search;
if (!queryString) {
@@ -1786,30 +1786,30 @@
//pathname (uniform browser behavior with leading "/")
urlObject.pathname = (a.pathname.charAt(0) == "/") ? a.pathname : "/" + a.pathname;
-
- return urlObject;
+
+ return urlObject;
};
-
+
/**
* Function: removeTail
* Takes a url and removes everything after the ? and #
- *
+ *
* Parameters:
* url - {String} The url to process
- *
+ *
* Returns:
* {String} The string with all queryString and Hash removed
*/
OpenLayers.Util.removeTail = function(url) {
var head = null;
-
+
var qMark = url.indexOf("?");
var hashMark = url.indexOf("#");
if (qMark == -1) {
head = (hashMark != -1) ? url.substr(0,hashMark) : url;
} else {
- head = (hashMark != -1) ? url.substr(0,Math.min(qMark, hashMark))
+ head = (hashMark != -1) ? url.substr(0,Math.min(qMark, hashMark))
: url.substr(0, qMark);
}
return head;
@@ -1818,24 +1818,24 @@
/**
* Function: getBrowserName
- *
+ *
* Returns:
- * {String} A string which specifies which is the current
- * browser in which we are running.
- *
+ * {String} A string which specifies which is the current
+ * browser in which we are running.
+ *
* Currently-supported browser detection and codes:
* * 'opera' -- Opera
* * 'msie' -- Internet Explorer
* * 'safari' -- Safari
* * 'firefox' -- FireFox
* * 'mozilla' -- Mozilla
- *
- * If we are unable to property identify the browser, we
+ *
+ * If we are unable to property identify the browser, we
* return an empty string.
*/
OpenLayers.Util.getBrowserName = function() {
var browserName = "";
-
+
var ua = navigator.userAgent.toLowerCase();
if ( ua.indexOf( "opera" ) != -1 ) {
browserName = "opera";
@@ -1850,46 +1850,46 @@
browserName = "mozilla";
}
}
-
+
return browserName;
};
-
+
/**
* Method: getRenderedDimensions
* Renders the contentHTML offscreen to determine actual dimensions for
* popup sizing. As we need layout to determine dimensions the content
- * is rendered -9999px to the left and absolute to ensure the
+ * is rendered -9999px to the left and absolute to ensure the
* scrollbars do not flicker
- *
+ *
* Parameters:
* contentHTML
- * size - {<OpenLayers.Size>} If either the 'w' or 'h' properties is
- * specified, we fix that dimension of the div to be measured. This is
- * useful in the case where we have a limit in one dimension and must
+ * size - {<OpenLayers.Size>} If either the 'w' or 'h' properties is
+ * specified, we fix that dimension of the div to be measured. This is
+ * useful in the case where we have a limit in one dimension and must
* therefore meaure the flow in the other dimension.
* options - {Object}
* displayClass - {String} Optional parameter. A CSS class name(s) string
* to provide the CSS context of the rendered content.
- * containerElement - {DOMElement} Optional parameter. Insert the HTML to
- * this node instead of the body root when calculating dimensions.
- *
+ * containerElement - {DOMElement} Optional parameter. Insert the HTML to
+ * this node instead of the body root when calculating dimensions.
+ *
* Returns:
* {OpenLayers.Size}
*/
OpenLayers.Util.getRenderedDimensions = function(contentHTML, size, options) {
-
+
var w, h;
-
+
// create temp container div with restricted size
var container = document.createElement("div");
container.style.visibility = "hidden";
-
- var containerElement = (options && options.containerElement)
- ? options.containerElement : document.body;
+ var containerElement = (options && options.containerElement)
+ ? options.containerElement : document.body;
+
//fix a dimension, if specified.
if (size) {
if (size.w) {
@@ -1905,11 +1905,11 @@
if (options && options.displayClass) {
container.className = options.displayClass;
}
-
+
// create temp content div and assign content
var content = document.createElement("div");
content.innerHTML = contentHTML;
-
+
// we need overflow visible when calculating the size
content.style.overflow = "visible";
if (content.childNodes) {
@@ -1918,13 +1918,13 @@
content.childNodes[i].style.overflow = "visible";
}
}
-
- // add content to restricted container
+
+ // add content to restricted container
container.appendChild(content);
-
+
// append container to body for rendering
containerElement.appendChild(container);
-
+
// Opera and IE7 can't handle a node with position:aboslute if it inherits
// position:absolute from a parent.
var parentHasPositionAbsolute = false;
@@ -1943,14 +1943,14 @@
if(!parentHasPositionAbsolute) {
container.style.position = "absolute";
}
-
+
// calculate scroll width of content and add corners and shadow width
if (!w) {
w = parseInt(content.scrollWidth);
-
+
// update container width to allow height to adjust
container.style.width = w + "px";
- }
+ }
// capture height and add shadow and corner image widths
if (!h) {
h = parseInt(content.scrollHeight);
@@ -1959,35 +1959,35 @@
// remove elements
container.removeChild(content);
containerElement.removeChild(container);
-
+
return new OpenLayers.Size(w, h);
};
/**
* APIFunction: getScrollbarWidth
* This function has been modified by the OpenLayers from the original version,
- * written by Matthew Eernisse and released under the Apache 2
+ * written by Matthew Eernisse and released under the Apache 2
* license here:
- *
+ *
* http://www.fleegix.org/articles/2006/05/30/getting-the-scrollbar-width-in-pixels
- *
- * It has been modified simply to cache its value, since it is physically
- * impossible that this code could ever run in more than one browser at
- * once.
- *
+ *
+ * It has been modified simply to cache its value, since it is physically
+ * impossible that this code could ever run in more than one browser at
+ * once.
+ *
* Returns:
* {Integer}
*/
OpenLayers.Util.getScrollbarWidth = function() {
-
+
var scrollbarWidth = OpenLayers.Util._scrollbarWidth;
-
+
if (scrollbarWidth == null) {
var scr = null;
var inn = null;
var wNoScroll = 0;
var wScroll = 0;
-
+
// Outer scrolling div
scr = document.createElement('div');
scr.style.position = 'absolute';
@@ -1997,28 +1997,28 @@
scr.style.height = '50px';
// Start with no scrollbar
scr.style.overflow = 'hidden';
-
+
// Inner content div
inn = document.createElement('div');
inn.style.width = '100%';
inn.style.height = '200px';
-
+
// Put the inner div in the scrolling div
scr.appendChild(inn);
// Append the scrolling div to the doc
document.body.appendChild(scr);
-
+
// Width of the inner div sans scrollbar
wNoScroll = inn.offsetWidth;
-
+
// Add the scrollbar
scr.style.overflow = 'scroll';
// Width of the inner div width scrollbar
wScroll = inn.offsetWidth;
-
+
// Remove the scrolling div from the doc
document.body.removeChild(document.body.lastChild);
-
+
// Pixel width of the scroller
OpenLayers.Util._scrollbarWidth = (wNoScroll - wScroll);
scrollbarWidth = OpenLayers.Util._scrollbarWidth;
@@ -2046,7 +2046,7 @@
* Note that behavior will differ with the Firebug extention and Firebug Lite.
* Most notably, the Firebug Lite console does not currently allow for
* hyperlinks to code or for clicking on object to explore their properties.
- *
+ *
*/
OpenLayers.Console = {
/**
@@ -2055,7 +2055,7 @@
* included. We explicitly require the Firebug Lite script to trigger
* functionality of the OpenLayers.Console methods.
*/
-
+
/**
* APIFunction: log
* Log an object in the console. The Firebug Lite console logs string
@@ -2065,7 +2065,7 @@
* will be used in string substitution. Any additional arguments (beyond
* the number substituted in a format string) will be appended in a space-
* delimited line.
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2077,7 +2077,7 @@
* where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2089,7 +2089,7 @@
* coding and a hyperlink to the line where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2101,7 +2101,7 @@
* color coding and a hyperlink to the line where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2113,12 +2113,12 @@
* coding and a hyperlink to the line where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
error: function() {},
-
+
/**
* APIFunction: userError
* A single interface for showing error messages to the user. The default
@@ -2126,7 +2126,7 @@
* reassigning OpenLayers.Console.userError to a different function.
*
* Expects a single error message
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2140,7 +2140,7 @@
* the console and throw an exception.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2150,7 +2150,7 @@
* APIFunction: dir
* Prints an interactive listing of all properties of the object. This
* looks identical to the view that you would see in the DOM tab.
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2161,7 +2161,7 @@
* Prints the XML source tree of an HTML or XML element. This looks
* identical to the view that you would see in the HTML tab. You can click
* on any node to inspect it in the HTML tab.
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2174,7 +2174,7 @@
* as well as the values that were passed as arguments to each function.
* You can click each function to take you to its source in the Script tab,
* and click each argument value to inspect it in the DOM or HTML tabs.
- *
+ *
*/
trace: function() {},
@@ -2185,7 +2185,7 @@
* to close the block.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2197,7 +2197,7 @@
* OpenLayers.Console.group
*/
groupEnd: function() {},
-
+
/**
* APIFunction: time
* Creates a new timer under the given name. Call
@@ -2225,7 +2225,7 @@
* contain the text to be printed in the header of the profile report.
*
* This function is not currently implemented in Firebug Lite.
- *
+ *
* Parameters:
* title - {String} Optional title for the profiler
*/
@@ -2234,7 +2234,7 @@
/**
* APIFunction: profileEnd
* Turns off the JavaScript profiler and prints its report.
- *
+ *
* This function is not currently implemented in Firebug Lite.
*/
profileEnd: function() {},
@@ -2293,8 +2293,8 @@
* @requires OpenLayers/Lang/en.js
* @requires OpenLayers/Console.js
*/
-
-/**
+
+/**
* Header: OpenLayers Base Types
* OpenLayers custom string, number and function functions are described here.
*/
@@ -2307,12 +2307,12 @@
/**
* APIFunction: startsWith
- * Test whether a string starts with another string.
- *
+ * Test whether a string starts with another string.
+ *
* Parameters:
* str - {String} The string to test.
* sub - {Sring} The substring to look for.
- *
+ *
* Returns:
* {Boolean} The first string starts with the second.
*/
@@ -2323,43 +2323,43 @@
/**
* APIFunction: contains
* Test whether a string contains another string.
- *
+ *
* Parameters:
* str - {String} The string to test.
* sub - {String} The substring to look for.
- *
+ *
* Returns:
* {Boolean} The first string contains the second.
*/
contains: function(str, sub) {
return (str.indexOf(sub) != -1);
},
-
+
/**
* APIFunction: trim
* Removes leading and trailing whitespace characters from a string.
- *
+ *
* Parameters:
* str - {String} The (potentially) space padded string. This string is not
* modified.
- *
+ *
* Returns:
- * {String} A trimmed version of the string with all leading and
+ * {String} A trimmed version of the string with all leading and
* trailing spaces removed.
*/
trim: function(str) {
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
},
-
+
/**
* APIFunction: camelize
- * Camel-case a hyphenated string.
+ * Camel-case a hyphenated string.
* Ex. "chicken-head" becomes "chickenHead", and
* "-chicken-head" becomes "ChickenHead".
*
* Parameters:
* str - {String} The string to be camelized. The original is not modified.
- *
+ *
* Returns:
* {String} The string, camelized
*/
@@ -2372,7 +2372,7 @@
}
return camelizedString;
},
-
+
/**
* APIFunction: format
* Given a string with tokens in the form ${token}, return a string
@@ -2399,7 +2399,7 @@
context = window;
}
- // Example matching:
+ // Example matching:
// str = ${foo.bar}
// match = foo.bar
var replacer = function(str, match) {
@@ -2425,13 +2425,13 @@
}
// If replacement is undefined, return the string 'undefined'.
- // This is a workaround for a bugs in browsers not properly
+ // This is a workaround for a bugs in browsers not properly
// dealing with non-participating groups in regular expressions:
// http://blog.stevenlevithan.com/archives/npcg-javascript
if (typeof replacement == 'undefined') {
return 'undefined';
} else {
- return replacement;
+ return replacement;
}
};
@@ -2444,13 +2444,13 @@
* Examples: ${a}, ${a.b.c}, ${a-b}, ${5}
*/
tokenRegEx: /\$\{([\w.]+?)\}/g,
-
+
/**
* Property: OpenLayers.String.numberRegEx
* Used to test strings as numbers.
*/
numberRegEx: /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/,
-
+
/**
* APIFunction: OpenLayers.String.isNumeric
* Determine whether a string contains only a numeric value.
@@ -2469,14 +2469,14 @@
isNumeric: function(value) {
return OpenLayers.String.numberRegEx.test(value);
},
-
+
/**
* APIFunction: numericIf
* Converts a string that appears to be a numeric value into a number.
- *
+ *
* Returns
* {Number|String} a Number if the passed value is a number, a String
- * otherwise.
+ * otherwise.
*/
numericIf: function(value) {
return OpenLayers.String.isNumeric(value) ? parseFloat(value) : value;
@@ -2487,11 +2487,11 @@
if (!String.prototype.startsWith) {
/**
* APIMethod: String.startsWith
- * *Deprecated*. Whether or not a string starts with another string.
- *
+ * *Deprecated*. Whether or not a string starts with another string.
+ *
* Parameters:
* sStart - {Sring} The string we're testing for.
- *
+ *
* Returns:
* {Boolean} Whether or not this string starts with the string passed in.
*/
@@ -2506,10 +2506,10 @@
/**
* APIMethod: String.contains
* *Deprecated*. Whether or not a string contains another string.
- *
+ *
* Parameters:
* str - {String} The string that we're testing for.
- *
+ *
* Returns:
* {Boolean} Whether or not this string contains with the string passed in.
*/
@@ -2524,9 +2524,9 @@
/**
* APIMethod: String.trim
* *Deprecated*. Removes leading and trailing whitespace characters from a string.
- *
+ *
* Returns:
- * {String} A trimmed version of the string - all leading and
+ * {String} A trimmed version of the string - all leading and
* trailing spaces removed
*/
String.prototype.trim = function() {
@@ -2539,10 +2539,10 @@
if (!String.prototype.camelize) {
/**
* APIMethod: String.camelize
- * *Deprecated*. Camel-case a hyphenated string.
+ * *Deprecated*. Camel-case a hyphenated string.
* Ex. "chicken-head" becomes "chickenHead", and
* "-chicken-head" becomes "ChickenHead".
- *
+ *
* Returns:
* {String} The string, camelized
*/
@@ -2564,21 +2564,21 @@
* Decimal separator to use when formatting numbers.
*/
decimalSeparator: ".",
-
+
/**
* Property: thousandsSeparator
* Thousands separator to use when formatting numbers.
*/
thousandsSeparator: ",",
-
+
/**
* APIFunction: limitSigDigs
* Limit the number of significant digits on a float.
- *
+ *
* Parameters:
* num - {Float}
* sig - {Integer}
- *
+ *
* Returns:
* {Float} The number, rounded to the specified number of significant
* digits.
@@ -2590,11 +2590,11 @@
}
return fig;
},
-
+
/**
* APIFunction: format
* Formats a number for output.
- *
+ *
* Parameters:
* num - {Float}
* dec - {Integer} Number of decimal places to round to.
@@ -2608,9 +2608,9 @@
* {String} A string representing the formatted number.
*/
format: function(num, dec, tsep, dsep) {
- dec = (typeof dec != "undefined") ? dec : 0;
+ dec = (typeof dec != "undefined") ? dec : 0;
tsep = (typeof tsep != "undefined") ? tsep :
- OpenLayers.Number.thousandsSeparator;
+ OpenLayers.Number.thousandsSeparator;
dsep = (typeof dsep != "undefined") ? dsep :
OpenLayers.Number.decimalSeparator;
@@ -2623,15 +2623,15 @@
// integer where we do not want to touch the decimals
dec = 0;
}
-
+
var integer = parts[0];
if (tsep) {
- var thousands = /(-?[0-9]+)([0-9]{3})/;
- while(thousands.test(integer)) {
- integer = integer.replace(thousands, "$1" + tsep + "$2");
+ var thousands = /(-?[0-9]+)([0-9]{3})/;
+ while(thousands.test(integer)) {
+ integer = integer.replace(thousands, "$1" + tsep + "$2");
}
}
-
+
var str;
if (dec == 0) {
str = integer;
@@ -2651,10 +2651,10 @@
* APIMethod: Number.limitSigDigs
* *Deprecated*. Limit the number of significant digits on an integer. Does *not*
* work with floats!
- *
+ *
* Parameters:
* sig - {Integer}
- *
+ *
* Returns:
* {Integer} The number, rounded to the specified number of significant digits.
* If null, 0, or negative value passed in, returns 0
@@ -2675,11 +2675,11 @@
* APIFunction: bind
* Bind a function to an object. Method to easily create closures with
* 'this' altered.
- *
+ *
* Parameters:
* func - {Function} Input function.
* object - {Object} The object to bind to the input function (as this).
- *
+ *
* Returns:
* {Function} A closure with 'this' set to the passed in object.
*/
@@ -2695,16 +2695,16 @@
return func.apply(object, newArgs);
};
},
-
+
/**
* APIFunction: bindAsEventListener
* Bind a function to an object, and configure it to receive the event
- * object as first parameter when called.
- *
+ * object as first parameter when called.
+ *
* Parameters:
* func - {Function} Input function to serve as an event listener.
* object - {Object} A reference to this.
- *
+ *
* Returns:
* {Function}
*/
@@ -2718,12 +2718,12 @@
if (!Function.prototype.bind) {
/**
* APIMethod: Function.bind
- * *Deprecated*. Bind a function to an object.
+ * *Deprecated*. Bind a function to an object.
* Method to easily create closures with 'this' altered.
- *
+ *
* Parameters:
* object - {Object} the this parameter
- *
+ *
* Returns:
* {Function} A closure with 'this' altered to the first
* argument.
@@ -2741,11 +2741,11 @@
/**
* APIMethod: Function.bindAsEventListener
* *Deprecated*. Bind a function to an object, and configure it to receive the
- * event object as first parameter when called.
- *
+ * event object as first parameter when called.
+ *
* Parameters:
* object - {Object} A reference to this.
- *
+ *
* Returns:
* {Function}
*/
@@ -2802,11 +2802,11 @@
selected.push(val);
}
}
- }
+ }
}
return selected;
}
-
+
};
/* ======================================================================
OpenLayers/BaseTypes/Class.js
@@ -2818,13 +2818,13 @@
/**
* Constructor: OpenLayers.Class
- * Base class used to construct all other classes. Includes support for
- * multiple inheritance.
- *
- * This constructor is new in OpenLayers 2.5. At OpenLayers 3.0, the old
- * syntax for creating classes and dealing with inheritance
+ * Base class used to construct all other classes. Includes support for
+ * multiple inheritance.
+ *
+ * This constructor is new in OpenLayers 2.5. At OpenLayers 3.0, the old
+ * syntax for creating classes and dealing with inheritance
* will be removed.
- *
+ *
* To create a new OpenLayers-style class, use the following syntax:
* > var MyClass = OpenLayers.Class(prototype);
*
@@ -2945,7 +2945,7 @@
* {Number} width
*/
w: 0.0,
-
+
/**
* APIProperty: h
* {Number} height
@@ -2971,7 +2971,7 @@
* Return the string representation of a size object
*
* Returns:
- * {String} The string representation of OpenLayers.Size object.
+ * {String} The string representation of OpenLayers.Size object.
* (ex. <i>"w=55,h=66"</i>)
*/
toString:function() {
@@ -2998,7 +2998,7 @@
* Parameters:
* sz - {<OpenLayers.Size>}
*
- * Returns:
+ * Returns:
* {Boolean} The passed in size has the same h and w properties as this one.
* Note that if sz passed in is null, returns false.
*
@@ -3031,7 +3031,7 @@
* Instances of this class represent bounding boxes. Data stored as left,
* bottom, right, top floats. All values are initialized to null, however,
* you should make sure you set them before using the bounds for anything.
- *
+ *
* Possible use case:
* > bounds = new OpenLayers.Bounds();
* > bounds.extend(new OpenLayers.LonLat(4,5));
@@ -3063,7 +3063,7 @@
* {Number} Maximum vertical coordinate.
*/
top: null,
-
+
/**
* Property: centerLonLat
* {<OpenLayers.LonLat>} A cached center location. This should not be
@@ -3106,7 +3106,7 @@
* {<OpenLayers.Bounds>} A fresh copy of the bounds
*/
clone:function() {
- return new OpenLayers.Bounds(this.left, this.bottom,
+ return new OpenLayers.Bounds(this.left, this.bottom,
this.right, this.top);
},
@@ -3119,25 +3119,25 @@
*
* Returns:
* {Boolean} The passed-in bounds object has the same left,
- * right, top, bottom components as this. Note that if bounds
+ * right, top, bottom components as this. Note that if bounds
* passed in is null, returns false.
*/
equals:function(bounds) {
var equals = false;
if (bounds != null) {
- equals = ((this.left == bounds.left) &&
+ equals = ((this.left == bounds.left) &&
(this.right == bounds.right) &&
- (this.top == bounds.top) &&
+ (this.top == bounds.top) &&
(this.bottom == bounds.bottom));
}
return equals;
},
- /**
+ /**
* APIMethod: toString
- *
+ *
* Returns:
- * {String} String representation of bounds object.
+ * {String} String representation of bounds object.
* (ex.<i>"left-bottom=(5,42) right-top=(10,45)"</i>)
*/
toString:function() {
@@ -3153,32 +3153,32 @@
*/
toArray: function() {
return [this.left, this.bottom, this.right, this.top];
- },
+ },
- /**
+ /**
* APIMethod: toBBOX
- *
+ *
* Parameters:
* decimal - {Integer} How many significant digits in the bbox coords?
* Default is 6
- *
+ *
* Returns:
* {String} Simple String representation of bounds object.
* (ex. <i>"5,42,10,45"</i>)
*/
toBBOX:function(decimal) {
if (decimal== null) {
- decimal = 6;
+ decimal = 6;
}
var mult = Math.pow(10, decimal);
- var bbox = Math.round(this.left * mult) / mult + "," +
- Math.round(this.bottom * mult) / mult + "," +
- Math.round(this.right * mult) / mult + "," +
+ var bbox = Math.round(this.left * mult) / mult + "," +
+ Math.round(this.bottom * mult) / mult + "," +
+ Math.round(this.right * mult) / mult + "," +
Math.round(this.top * mult) / mult;
return bbox;
},
-
+
/**
* APIMethod: toGeometry
* Create a new polygon geometry based on this bounds.
@@ -3197,10 +3197,10 @@
])
]);
},
-
+
/**
* APIMethod: getWidth
- *
+ *
* Returns:
* {Float} The width of the bounds
*/
@@ -3210,7 +3210,7 @@
/**
* APIMethod: getHeight
- *
+ *
* Returns:
* {Float} The height of the bounds (top minus bottom).
*/
@@ -3220,7 +3220,7 @@
/**
* APIMethod: getSize
- *
+ *
* Returns:
* {<OpenLayers.Size>} The size of the box.
*/
@@ -3230,7 +3230,7 @@
/**
* APIMethod: getCenterPixel
- *
+ *
* Returns:
* {<OpenLayers.Pixel>} The center of the bounds in pixel space.
*/
@@ -3241,7 +3241,7 @@
/**
* APIMethod: getCenterLonLat
- *
+ *
* Returns:
* {<OpenLayers.LonLat>} The center of the bounds in map space.
*/
@@ -3256,12 +3256,12 @@
/**
* Method: scale
- * Scales the bounds around a pixel or lonlat. Note that the new
+ * Scales the bounds around a pixel or lonlat. Note that the new
* bounds may return non-integer properties, even if a pixel
- * is passed.
- *
+ * is passed.
+ *
* Parameters:
- * ratio - {Float}
+ * ratio - {Float}
* origin - {<OpenLayers.Pixel> or <OpenLayers.LonLat>}
* Default is center.
*
@@ -3276,7 +3276,7 @@
}
var bounds = [];
-
+
var origx,origy;
// get origin coordinates
@@ -3292,17 +3292,17 @@
var bottom = (this.bottom - origy) * ratio + origy;
var right = (this.right - origx) * ratio + origx;
var top = (this.top - origy) * ratio + origy;
-
+
return new OpenLayers.Bounds(left, bottom, right, top);
},
/**
* APIMethod: add
- *
+ *
* Parameters:
* x - {Float}
* y - {Float}
- *
+ *
* Returns:
* {<OpenLayers.Bounds>} A new bounds whose coordinates are the same as
* this, but shifted by the passed-in x and y values.
@@ -3316,13 +3316,13 @@
return new OpenLayers.Bounds(this.left + x, this.bottom + y,
this.right + x, this.top + y);
},
-
+
/**
* APIMethod: extend
* Extend the bounds to include the point, lonlat, or bounds specified.
* Note, this function assumes that left < right and bottom < top.
- *
- * Parameters:
+ *
+ * Parameters:
* object - {Object} Can be LonLat, Point, or Bounds
*/
extend:function(object) {
@@ -3330,7 +3330,7 @@
if (object) {
// clear cached center location
switch(object.CLASS_NAME) {
- case "OpenLayers.LonLat":
+ case "OpenLayers.LonLat":
bounds = new OpenLayers.Bounds(object.lon, object.lat,
object.lon, object.lat);
break;
@@ -3338,12 +3338,12 @@
bounds = new OpenLayers.Bounds(object.x, object.y,
object.x, object.y);
break;
-
- case "OpenLayers.Bounds":
+
+ case "OpenLayers.Bounds":
bounds = object;
break;
}
-
+
if (bounds) {
this.centerLonLat = null;
if ( (this.left == null) || (bounds.left < this.left)) {
@@ -3351,11 +3351,11 @@
}
if ( (this.bottom == null) || (bounds.bottom < this.bottom) ) {
this.bottom = bounds.bottom;
- }
+ }
if ( (this.right == null) || (bounds.right > this.right) ) {
this.right = bounds.right;
}
- if ( (this.top == null) || (bounds.top > this.top) ) {
+ if ( (this.top == null) || (bounds.top > this.top) ) {
this.top = bounds.top;
}
}
@@ -3364,7 +3364,7 @@
/**
* APIMethod: containsLonLat
- *
+ *
* Parameters:
* ll - {<OpenLayers.LonLat>}
* inclusive - {Boolean} Whether or not to include the border.
@@ -3379,7 +3379,7 @@
/**
* APIMethod: containsPixel
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
* inclusive - {Boolean} Whether or not to include the border. Default is
@@ -3391,10 +3391,10 @@
containsPixel:function(px, inclusive) {
return this.contains(px.x, px.y, inclusive);
},
-
+
/**
* APIMethod: contains
- *
+ *
* Parameters:
* x - {Float}
* y - {Float}
@@ -3420,12 +3420,12 @@
var contains = false;
if (inclusive) {
- contains = ((x >= this.left) && (x <= this.right) &&
+ contains = ((x >= this.left) && (x <= this.right) &&
(y >= this.bottom) && (y <= this.top));
} else {
- contains = ((x > this.left) && (x < this.right) &&
+ contains = ((x > this.left) && (x < this.right) &&
(y > this.bottom) && (y < this.top));
- }
+ }
return contains;
},
@@ -3434,7 +3434,7 @@
* Determine whether the target bounds intersects this bounds. Bounds are
* considered intersecting if any of their edges intersect or if one
* bounds contains the other.
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>} The target bounds.
* inclusive - {Boolean} Treat coincident borders as intersecting. Default
@@ -3455,7 +3455,7 @@
this.top == bounds.bottom ||
this.bottom == bounds.top
);
-
+
// if the two bounds only touch at an edge, and inclusive is false,
// then the bounds don't *really* intersect.
if (inclusive || !mightTouch) {
@@ -3481,11 +3481,11 @@
}
return intersects;
},
-
+
/**
* APIMethod: containsBounds
* Determine whether the target bounds is contained within this bounds.
- *
+ *
* bounds - {<OpenLayers.Bounds>} The target bounds.
* partial - {Boolean} If any of the target corners is within this bounds
* consider the bounds contained. Default is false. If true, the
@@ -3494,7 +3494,7 @@
* true.
*
* Returns:
- * {Boolean} The passed-in bounds object is contained within this bounds.
+ * {Boolean} The passed-in bounds object is contained within this bounds.
*/
containsBounds:function(bounds, partial, inclusive) {
if (partial == null) {
@@ -3507,39 +3507,39 @@
var bottomRight = this.contains(bounds.right, bounds.bottom, inclusive);
var topLeft = this.contains(bounds.left, bounds.top, inclusive);
var topRight = this.contains(bounds.right, bounds.top, inclusive);
-
+
return (partial) ? (bottomLeft || bottomRight || topLeft || topRight)
: (bottomLeft && bottomRight && topLeft && topRight);
},
- /**
+ /**
* APIMethod: determineQuadrant
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
* {String} The quadrant ("br" "tr" "tl" "bl") of the bounds in which the
* coordinate lies.
*/
determineQuadrant: function(lonlat) {
-
+
var quadrant = "";
var center = this.getCenterLonLat();
-
+
quadrant += (lonlat.lat < center.lat) ? "b" : "t";
quadrant += (lonlat.lon < center.lon) ? "l" : "r";
-
- return quadrant;
+
+ return quadrant;
},
-
+
/**
* APIMethod: transform
- * Transform the Bounds object from source to dest.
+ * Transform the Bounds object from source to dest.
*
- * Parameters:
- * source - {<OpenLayers.Projection>} Source projection.
- * dest - {<OpenLayers.Projection>} Destination projection.
+ * Parameters:
+ * source - {<OpenLayers.Projection>} Source projection.
+ * dest - {<OpenLayers.Projection>} Destination projection.
*
* Returns:
* {<OpenLayers.Bounds>} Itself, for use in chaining operations.
@@ -3564,68 +3564,68 @@
/**
* APIMethod: wrapDateLine
- *
+ *
* Parameters:
* maxExtent - {<OpenLayers.Bounds>}
* options - {Object} Some possible options are:
- * leftTolerance - {float} Allow for a margin of error
- * with the 'left' value of this
+ * leftTolerance - {float} Allow for a margin of error
+ * with the 'left' value of this
* bound.
* Default is 0.
- * rightTolerance - {float} Allow for a margin of error
- * with the 'right' value of
+ * rightTolerance - {float} Allow for a margin of error
+ * with the 'right' value of
* this bound.
* Default is 0.
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A copy of this bounds, but wrapped around the
- * "dateline" (as specified by the borders of
- * maxExtent). Note that this function only returns
- * a different bounds value if this bounds is
- * *entirely* outside of the maxExtent. If this
- * bounds straddles the dateline (is part in/part
- * out of maxExtent), the returned bounds will be
+ * {<OpenLayers.Bounds>} A copy of this bounds, but wrapped around the
+ * "dateline" (as specified by the borders of
+ * maxExtent). Note that this function only returns
+ * a different bounds value if this bounds is
+ * *entirely* outside of the maxExtent. If this
+ * bounds straddles the dateline (is part in/part
+ * out of maxExtent), the returned bounds will be
* merely a copy of this one.
*/
- wrapDateLine: function(maxExtent, options) {
+ wrapDateLine: function(maxExtent, options) {
options = options || {};
-
+
var leftTolerance = options.leftTolerance || 0;
var rightTolerance = options.rightTolerance || 0;
var newBounds = this.clone();
-
+
if (maxExtent) {
//shift right?
- while ( newBounds.left < maxExtent.left &&
- (newBounds.right - rightTolerance) <= maxExtent.left ) {
+ while ( newBounds.left < maxExtent.left &&
+ (newBounds.right - rightTolerance) <= maxExtent.left ) {
newBounds = newBounds.add(maxExtent.getWidth(), 0);
}
//shift left?
- while ( (newBounds.left + leftTolerance) >= maxExtent.right &&
- newBounds.right > maxExtent.right ) {
+ while ( (newBounds.left + leftTolerance) >= maxExtent.right &&
+ newBounds.right > maxExtent.right ) {
newBounds = newBounds.add(-maxExtent.getWidth(), 0);
}
}
-
+
return newBounds;
},
CLASS_NAME: "OpenLayers.Bounds"
});
-/**
+/**
* APIFunction: fromString
- * Alternative constructor that builds a new OpenLayers.Bounds from a
+ * Alternative constructor that builds a new OpenLayers.Bounds from a
* parameter string
- *
- * Parameters:
+ *
+ * Parameters:
* str - {String}Comma-separated bounds string. (ex. <i>"5,42,10,45"</i>)
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} New bounds object built from the
+ * {<OpenLayers.Bounds>} New bounds object built from the
* passed-in String.
*/
OpenLayers.Bounds.fromString = function(str) {
@@ -3633,11 +3633,11 @@
return OpenLayers.Bounds.fromArray(bounds);
};
-/**
+/**
* APIFunction: fromArray
* Alternative constructor that builds a new OpenLayers.Bounds
* from an array
- *
+ *
* Parameters:
* bbox - {Array(Float)} Array of bounds values (ex. <i>[5,42,10,45]</i>)
*
@@ -3651,13 +3651,13 @@
parseFloat(bbox[3]));
};
-/**
+/**
* APIFunction: fromSize
* Alternative constructor that builds a new OpenLayers.Bounds
* from a size
- *
+ *
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*
* Returns:
* {<OpenLayers.Bounds>} New bounds object built from the passed-in size.
@@ -3677,16 +3677,16 @@
* quadrant - {String} two character quadrant shortstring
*
* Returns:
- * {String} The opposing quadrant ("br" "tr" "tl" "bl"). For Example, if
- * you pass in "bl" it returns "tr", if you pass in "br" it
+ * {String} The opposing quadrant ("br" "tr" "tl" "bl"). For Example, if
+ * you pass in "bl" it returns "tr", if you pass in "br" it
* returns "tl", etc.
*/
OpenLayers.Bounds.oppositeQuadrant = function(quadrant) {
var opp = "";
-
+
opp += (quadrant.charAt(0) == 't') ? 'b' : 't';
opp += (quadrant.charAt(1) == 'l') ? 'r' : 'l';
-
+
return opp;
};
/* ======================================================================
@@ -3704,10 +3704,10 @@
/**
* APIFunction: visible
- *
- * Parameters:
+ *
+ * Parameters:
* element - {DOMElement}
- *
+ *
* Returns:
* {Boolean} Is the element visible?
*/
@@ -3718,14 +3718,14 @@
/**
* APIFunction: toggle
* Toggle the visibility of element(s) passed in
- *
+ *
* Parameters:
* element - {DOMElement} Actually user can pass any number of elements
*/
toggle: function() {
for (var i=0, len=arguments.length; i<len; i++) {
var element = OpenLayers.Util.getElement(arguments[i]);
- var display = OpenLayers.Element.visible(element) ? 'hide'
+ var display = OpenLayers.Element.visible(element) ? 'hide'
: 'show';
OpenLayers.Element[display](element);
}
@@ -3735,7 +3735,7 @@
/**
* APIFunction: hide
* Hide element(s) passed in
- *
+ *
* Parameters:
* element - {DOMElement} Actually user can pass any number of elements
*/
@@ -3749,7 +3749,7 @@
/**
* APIFunction: show
* Show element(s) passed in
- *
+ *
* Parameters:
* element - {DOMElement} Actually user can pass any number of elements
*/
@@ -3763,7 +3763,7 @@
/**
* APIFunction: remove
* Remove the specified element from the DOM.
- *
+ *
* Parameters:
* element - {DOMElement}
*/
@@ -3774,10 +3774,10 @@
/**
* APIFunction: getHeight
- *
+ *
* Parameters:
* element - {DOMElement}
- *
+ *
* Returns:
* {Integer} The offset height of the element passed in
*/
@@ -3788,12 +3788,12 @@
/**
* APIFunction: getDimensions
- *
+ *
* Parameters:
* element - {DOMElement}
- *
+ *
* Returns:
- * {Object} Object with 'width' and 'height' properties which are the
+ * {Object} Object with 'width' and 'height' properties which are the
* dimensions of the element passed in.
*/
getDimensions: function(element) {
@@ -3801,7 +3801,7 @@
if (OpenLayers.Element.getStyle(element, 'display') != 'none') {
return {width: element.offsetWidth, height: element.offsetHeight};
}
-
+
// All *Width and *Height properties give 0 on elements with display none,
// so enable the element temporarily
var els = element.style;
@@ -3833,7 +3833,7 @@
var names = element.className;
return (!!names && new RegExp("(^|\\s)" + name + "(\\s|$)").test(names));
},
-
+
/**
* Function: addClass
* Add a CSS class name to an element. Safe where element already has
@@ -3900,11 +3900,11 @@
/**
* APIFunction: getStyle
- *
+ *
* Parameters:
* element - {DOMElement}
* style - {?}
- *
+ *
* Returns:
* {?}
*/
@@ -3915,24 +3915,24 @@
if (element && element.style) {
value = element.style[OpenLayers.String.camelize(style)];
if (!value) {
- if (document.defaultView &&
+ if (document.defaultView &&
document.defaultView.getComputedStyle) {
-
+
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css.getPropertyValue(style) : null;
} else if (element.currentStyle) {
value = element.currentStyle[OpenLayers.String.camelize(style)];
}
}
-
+
var positions = ['left', 'top', 'right', 'bottom'];
if (window.opera &&
(OpenLayers.Util.indexOf(positions,style) != -1) &&
- (OpenLayers.Element.getStyle(element, 'position') == 'static')) {
+ (OpenLayers.Element.getStyle(element, 'position') == 'static')) {
value = 'auto';
}
}
-
+
return value == 'auto' ? null : value;
}
@@ -3955,13 +3955,13 @@
*/
OpenLayers.LonLat = OpenLayers.Class({
- /**
+ /**
* APIProperty: lon
* {Float} The x-axis coodinate in map units
*/
lon: 0.0,
-
- /**
+
+ /**
* APIProperty: lat
* {Float} The y-axis coordinate in map units
*/
@@ -3983,51 +3983,51 @@
this.lon = OpenLayers.Util.toFloat(lon);
this.lat = OpenLayers.Util.toFloat(lat);
},
-
+
/**
* Method: toString
* Return a readable string version of the lonlat
*
* Returns:
- * {String} String representation of OpenLayers.LonLat object.
+ * {String} String representation of OpenLayers.LonLat object.
* (ex. <i>"lon=5,lat=42"</i>)
*/
toString:function() {
return ("lon=" + this.lon + ",lat=" + this.lat);
},
- /**
+ /**
* APIMethod: toShortString
- *
+ *
* Returns:
- * {String} Shortened String representation of OpenLayers.LonLat object.
+ * {String} Shortened String representation of OpenLayers.LonLat object.
* (ex. <i>"5, 42"</i>)
*/
toShortString:function() {
return (this.lon + ", " + this.lat);
},
- /**
+ /**
* APIMethod: clone
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} New OpenLayers.LonLat object with the same lon
+ * {<OpenLayers.LonLat>} New OpenLayers.LonLat object with the same lon
* and lat values
*/
clone:function() {
return new OpenLayers.LonLat(this.lon, this.lat);
},
- /**
+ /**
* APIMethod: add
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} A new OpenLayers.LonLat object with the lon and
- * lat passed-in added to this's.
+ * {<OpenLayers.LonLat>} A new OpenLayers.LonLat object with the lon and
+ * lat passed-in added to this's.
*/
add:function(lon, lat) {
if ( (lon == null) || (lat == null) ) {
@@ -4038,15 +4038,15 @@
return new OpenLayers.LonLat(this.lon + lon, this.lat + lat);
},
- /**
+ /**
* APIMethod: equals
- *
+ *
* Parameters:
* ll - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
- * {Boolean} Boolean value indicating whether the passed-in
- * <OpenLayers.LonLat> object has the same lon and lat
+ * {Boolean} Boolean value indicating whether the passed-in
+ * <OpenLayers.LonLat> object has the same lon and lat
* components as this.
* Note: if ll passed in is null, returns false
*/
@@ -4064,9 +4064,9 @@
* Transform the LonLat object from source to dest. This transformation is
* *in place*: if you want a *new* lonlat, use .clone() first.
*
- * Parameters:
- * source - {<OpenLayers.Projection>} Source projection.
- * dest - {<OpenLayers.Projection>} Destination projection.
+ * Parameters:
+ * source - {<OpenLayers.Projection>} Source projection.
+ * dest - {<OpenLayers.Projection>} Destination projection.
*
* Returns:
* {<OpenLayers.LonLat>} Itself, for use in chaining operations.
@@ -4078,56 +4078,56 @@
this.lat = point.y;
return this;
},
-
+
/**
* APIMethod: wrapDateLine
- *
+ *
* Parameters:
* maxExtent - {<OpenLayers.Bounds>}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} A copy of this lonlat, but wrapped around the
- * "dateline" (as specified by the borders of
+ * {<OpenLayers.LonLat>} A copy of this lonlat, but wrapped around the
+ * "dateline" (as specified by the borders of
* maxExtent)
*/
- wrapDateLine: function(maxExtent) {
+ wrapDateLine: function(maxExtent) {
var newLonLat = this.clone();
-
+
if (maxExtent) {
//shift right?
while (newLonLat.lon < maxExtent.left) {
newLonLat.lon += maxExtent.getWidth();
- }
-
+ }
+
//shift left?
while (newLonLat.lon > maxExtent.right) {
newLonLat.lon -= maxExtent.getWidth();
- }
+ }
}
-
+
return newLonLat;
},
CLASS_NAME: "OpenLayers.LonLat"
});
-/**
+/**
* Function: fromString
- * Alternative constructor that builds a new <OpenLayers.LonLat> from a
+ * Alternative constructor that builds a new <OpenLayers.LonLat> from a
* parameter string
- *
+ *
* Parameters:
- * str - {String} Comma-separated Lon,Lat coordinate string.
+ * str - {String} Comma-separated Lon,Lat coordinate string.
* (ex. <i>"5,40"</i>)
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} New <OpenLayers.LonLat> object built from the
+ * {<OpenLayers.LonLat>} New <OpenLayers.LonLat> object built from the
* passed-in String.
*/
OpenLayers.LonLat.fromString = function(str) {
var pair = str.split(",");
- return new OpenLayers.LonLat(parseFloat(pair[0]),
+ return new OpenLayers.LonLat(parseFloat(pair[0]),
parseFloat(pair[1]));
};
/* ======================================================================
@@ -4147,7 +4147,7 @@
* This class represents a screen coordinate, in x and y coordinates
*/
OpenLayers.Pixel = OpenLayers.Class({
-
+
/**
* APIProperty: x
* {Number} The x coordinate
@@ -4159,7 +4159,7 @@
* {Number} The y coordinate
*/
y: 0.0,
-
+
/**
* Constructor: OpenLayers.Pixel
* Create a new OpenLayers.Pixel instance
@@ -4175,7 +4175,7 @@
this.x = parseFloat(x);
this.y = parseFloat(y);
},
-
+
/**
* Method: toString
* Cast this object into a string
@@ -4195,9 +4195,9 @@
* {<OpenLayers.Pixel>} A clone pixel
*/
clone:function() {
- return new OpenLayers.Pixel(this.x, this.y);
+ return new OpenLayers.Pixel(this.x, this.y);
},
-
+
/**
* APIMethod: equals
* Determine whether one pixel is equivalent to another
@@ -4226,7 +4226,7 @@
* y - {Integer}
*
* Returns:
- * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
+ * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
* values passed in.
*/
add:function(x, y) {
@@ -4240,12 +4240,12 @@
/**
* APIMethod: offset
- *
+ *
* Parameters
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
+ * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
* x&y values of the pixel passed in.
*/
offset:function(px) {
@@ -4269,62 +4269,62 @@
/**
* Class: OpenLayers.Icon
- *
+ *
* The icon represents a graphical icon on the screen. Typically used in
* conjunction with a <OpenLayers.Marker> to represent markers on a screen.
*
- * An icon has a url, size and position. It also contains an offset which
+ * An icon has a url, size and position. It also contains an offset which
* allows the center point to be represented correctly. This can be
* provided either as a fixed offset or a function provided to calculate
- * the desired offset.
- *
+ * the desired offset.
+ *
*/
OpenLayers.Icon = OpenLayers.Class({
-
- /**
- * Property: url
+
+ /**
+ * Property: url
* {String} image url
*/
url: null,
-
- /**
- * Property: size
- * {<OpenLayers.Size>}
+
+ /**
+ * Property: size
+ * {<OpenLayers.Size>}
*/
size: null,
- /**
- * Property: offset
+ /**
+ * Property: offset
* {<OpenLayers.Pixel>} distance in pixels to offset the image when being rendered
*/
- offset: null,
-
- /**
- * Property: calculateOffset
- * {<OpenLayers.Pixel>} Function to calculate the offset (based on the size)
+ offset: null,
+
+ /**
+ * Property: calculateOffset
+ * {<OpenLayers.Pixel>} Function to calculate the offset (based on the size)
*/
- calculateOffset: null,
-
- /**
- * Property: imageDiv
- * {DOMElement}
+ calculateOffset: null,
+
+ /**
+ * Property: imageDiv
+ * {DOMElement}
*/
imageDiv: null,
- /**
- * Property: px
- * {<OpenLayers.Pixel>}
+ /**
+ * Property: px
+ * {<OpenLayers.Pixel>}
*/
px: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Icon
- * Creates an icon, which is an image tag in a div.
+ * Creates an icon, which is an image tag in a div.
*
- * url - {String}
- * size - {<OpenLayers.Size>}
+ * url - {String}
+ * size - {<OpenLayers.Size>}
* offset - {<OpenLayers.Pixel>}
- * calculateOffset - {Function}
+ * calculateOffset - {Function}
*/
initialize: function(url, size, offset, calculateOffset) {
this.url = url;
@@ -4335,39 +4335,39 @@
var id = OpenLayers.Util.createUniqueID("OL_Icon_");
this.imageDiv = OpenLayers.Util.createAlphaImageDiv(id);
},
-
- /**
+
+ /**
* Method: destroy
- * Nullify references and remove event listeners to prevent circular
+ * Nullify references and remove event listeners to prevent circular
* references and memory leaks
*/
destroy: function() {
// erase any drawn elements
this.erase();
- OpenLayers.Event.stopObservingElement(this.imageDiv.firstChild);
+ OpenLayers.Event.stopObservingElement(this.imageDiv.firstChild);
this.imageDiv.innerHTML = "";
this.imageDiv = null;
},
- /**
+ /**
* Method: clone
- *
+ *
* Returns:
* {<OpenLayers.Icon>} A fresh copy of the icon.
*/
clone: function() {
- return new OpenLayers.Icon(this.url,
- this.size,
- this.offset,
+ return new OpenLayers.Icon(this.url,
+ this.size,
+ this.offset,
this.calculateOffset);
},
-
+
/**
* Method: setSize
- *
+ *
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*/
setSize: function(size) {
if (size != null) {
@@ -4375,12 +4375,12 @@
}
this.draw();
},
-
+
/**
* Method: setUrl
- *
+ *
* Parameters:
- * url - {String}
+ * url - {String}
*/
setUrl: function(url) {
if (url != null) {
@@ -4389,28 +4389,28 @@
this.draw();
},
- /**
+ /**
* Method: draw
* Move the div to the given pixel.
- *
+ *
* Parameters:
- * px - {<OpenLayers.Pixel>}
- *
+ * px - {<OpenLayers.Pixel>}
+ *
* Returns:
* {DOMElement} A new DOM Image of this icon set at the location passed-in
*/
draw: function(px) {
- OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
- null,
- null,
- this.size,
- this.url,
+ OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
+ null,
+ null,
+ this.size,
+ this.url,
"absolute");
this.moveTo(px);
return this.imageDiv;
- },
+ },
- /**
+ /**
* Method: erase
* Erase the underlying image element.
*
@@ -4419,27 +4419,27 @@
if (this.imageDiv != null && this.imageDiv.parentNode != null) {
OpenLayers.Element.remove(this.imageDiv);
}
- },
-
- /**
+ },
+
+ /**
* Method: setOpacity
* Change the icon's opacity
*
* Parameters:
- * opacity - {float}
+ * opacity - {float}
*/
setOpacity: function(opacity) {
- OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, null, null,
+ OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, null, null,
null, null, null, null, opacity);
},
-
+
/**
* Method: moveTo
* move icon to passed in px.
*
* Parameters:
- * px - {<OpenLayers.Pixel>}
+ * px - {<OpenLayers.Pixel>}
*/
moveTo: function (px) {
//if no px passed in, use stored location
@@ -4452,39 +4452,39 @@
this.display(false);
} else {
if (this.calculateOffset) {
- this.offset = this.calculateOffset(this.size);
+ this.offset = this.calculateOffset(this.size);
}
var offsetPx = this.px.offset(this.offset);
OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, offsetPx);
}
}
},
-
- /**
+
+ /**
* Method: display
* Hide or show the icon
*
* Parameters:
- * display - {Boolean}
+ * display - {Boolean}
*/
display: function(display) {
- this.imageDiv.style.display = (display) ? "" : "none";
+ this.imageDiv.style.display = (display) ? "" : "none";
},
-
+
/**
* APIMethod: isDrawn
- *
+ *
* Returns:
* {Boolean} Whether or not the icon is drawn.
*/
isDrawn: function() {
// nodeType 11 for ie, whose nodes *always* have a parentNode
// (of type document fragment)
- var isDrawn = (this.imageDiv && this.imageDiv.parentNode &&
- (this.imageDiv.parentNode.nodeType != 11));
+ var isDrawn = (this.imageDiv && this.imageDiv.parentNode &&
+ (this.imageDiv.parentNode.nodeType != 11));
- return isDrawn;
+ return isDrawn;
},
CLASS_NAME: "OpenLayers.Icon"
@@ -4501,104 +4501,104 @@
/**
* Class: OpenLayers.Popup
* A popup is a small div that can opened and closed on the map.
- * Typically opened in response to clicking on a marker.
+ * Typically opened in response to clicking on a marker.
* See <OpenLayers.Marker>. Popup's don't require their own
* layer and are added the the map using the <OpenLayers.Map.addPopup>
* method.
*
* Example:
* (code)
- * popup = new OpenLayers.Popup("chicken",
+ * popup = new OpenLayers.Popup("chicken",
* new OpenLayers.LonLat(5,40),
* new OpenLayers.Size(200,200),
* "example popup",
* true);
- *
+ *
* map.addPopup(popup);
* (end)
*/
OpenLayers.Popup = OpenLayers.Class({
- /**
- * Property: events
- * {<OpenLayers.Events>} custom event manager
+ /**
+ * Property: events
+ * {<OpenLayers.Events>} custom event manager
*/
events: null,
-
+
/** Property: id
* {String} the unique identifier assigned to this popup.
*/
id: "",
- /**
- * Property: lonlat
+ /**
+ * Property: lonlat
* {<OpenLayers.LonLat>} the position of this popup on the map
*/
lonlat: null,
- /**
- * Property: div
+ /**
+ * Property: div
* {DOMElement} the div that contains this popup.
*/
div: null,
- /**
- * Property: contentSize
+ /**
+ * Property: contentSize
* {<OpenLayers.Size>} the width and height of the content.
*/
- contentSize: null,
+ contentSize: null,
- /**
- * Property: size
+ /**
+ * Property: size
* {<OpenLayers.Size>} the width and height of the popup.
*/
- size: null,
+ size: null,
- /**
- * Property: contentHTML
+ /**
+ * Property: contentHTML
* {String} An HTML string for this popup to display.
*/
contentHTML: null,
-
- /**
- * Property: backgroundColor
+
+ /**
+ * Property: backgroundColor
* {String} the background color used by the popup.
*/
backgroundColor: "",
-
- /**
- * Property: opacity
+
+ /**
+ * Property: opacity
* {float} the opacity of this popup (between 0.0 and 1.0)
*/
opacity: "",
- /**
- * Property: border
+ /**
+ * Property: border
* {String} the border size of the popup. (eg 2px)
*/
border: "",
-
- /**
- * Property: contentDiv
+
+ /**
+ * Property: contentDiv
* {DOMElement} a reference to the element that holds the content of
* the div.
*/
contentDiv: null,
-
- /**
- * Property: groupDiv
+
+ /**
+ * Property: groupDiv
* {DOMElement} First and only child of 'div'. The group Div contains the
* 'contentDiv' and the 'closeDiv'.
*/
groupDiv: null,
- /**
+ /**
* Property: closeDiv
* {DOMElement} the optional closer image
*/
closeDiv: null,
- /**
+ /**
* APIProperty: autoSize
* {Boolean} Resize the popup to auto-fit the contents.
* Default is false.
@@ -4617,40 +4617,40 @@
*/
maxSize: null,
- /**
+ /**
* Property: displayClass
* {String} The CSS class of the popup.
*/
displayClass: "olPopup",
- /**
+ /**
* Property: contentDisplayClass
* {String} The CSS class of the popup content div.
*/
contentDisplayClass: "olPopupContent",
- /**
- * Property: padding
- * {int or <OpenLayers.Bounds>} An extra opportunity to specify internal
+ /**
+ * Property: padding
+ * {int or <OpenLayers.Bounds>} An extra opportunity to specify internal
* padding of the content div inside the popup. This was originally
- * confused with the css padding as specified in style.css's
+ * confused with the css padding as specified in style.css's
* 'olPopupContent' class. We would like to get rid of this altogether,
* except that it does come in handy for the framed and anchoredbubble
- * popups, who need to maintain yet another barrier between their
- * content and the outer border of the popup itself.
- *
- * Note that in order to not break API, we must continue to support
- * this property being set as an integer. Really, though, we'd like to
+ * popups, who need to maintain yet another barrier between their
+ * content and the outer border of the popup itself.
+ *
+ * Note that in order to not break API, we must continue to support
+ * this property being set as an integer. Really, though, we'd like to
* have this specified as a Bounds object so that user can specify
* distinct left, top, right, bottom paddings. With the 3.0 release
* we can make this only a bounds.
*/
padding: 0,
- /**
+ /**
* Property: disableFirefoxOverflowHack
- * {Boolean} The hack for overflow in Firefox causes all elements
- * to be re-drawn, which causes Flash elements to be
+ * {Boolean} The hack for overflow in Firefox causes all elements
+ * to be re-drawn, which causes Flash elements to be
* re-initialized, which is troublesome.
* With this property the hack can be disabled.
*/
@@ -4658,8 +4658,8 @@
/**
* Method: fixPadding
- * To be removed in 3.0, this function merely helps us to deal with the
- * case where the user may have set an integer value for padding,
+ * To be removed in 3.0, this function merely helps us to deal with the
+ * case where the user may have set an integer value for padding,
* instead of an <OpenLayers.Bounds> object.
*/
fixPadding: function() {
@@ -4677,17 +4677,17 @@
* Default is false.
*/
panMapIfOutOfView: false,
-
+
/**
- * APIProperty: keepInMap
- * {Boolean} If panMapIfOutOfView is false, and this property is true,
+ * APIProperty: keepInMap
+ * {Boolean} If panMapIfOutOfView is false, and this property is true,
* contrain the popup such that it always fits in the available map
* space. By default, this is not set on the base class. If you are
* creating popups that are near map edges and not allowing pannning,
* and especially if you have a popup which has a
* fixedRelativePosition, setting this to false may be a smart thing to
* do. Subclasses may want to override this setting.
- *
+ *
* Default is false.
*/
keepInMap: false,
@@ -4698,24 +4698,24 @@
* Default is false.
*/
closeOnMove: false,
-
- /**
- * Property: map
+
+ /**
+ * Property: map
* {<OpenLayers.Map>} this gets set in Map.js when the popup is added to the map
*/
map: null,
- /**
+ /**
* Constructor: OpenLayers.Popup
* Create a popup.
- *
- * Parameters:
+ *
+ * Parameters:
* id - {String} a unqiue identifier for this popup. If null is passed
- * an identifier will be automatically generated.
+ * an identifier will be automatically generated.
* lonlat - {<OpenLayers.LonLat>} The position on the map the popup will
* be shown.
* contentSize - {<OpenLayers.Size>} The size of the content.
- * contentHTML - {String} An HTML string to display inside the
+ * contentHTML - {String} An HTML string to display inside the
* popup.
* closeBox - {Boolean} Whether to display a close box inside
* the popup.
@@ -4729,28 +4729,28 @@
this.id = id;
this.lonlat = lonlat;
- this.contentSize = (contentSize != null) ? contentSize
+ this.contentSize = (contentSize != null) ? contentSize
: new OpenLayers.Size(
OpenLayers.Popup.WIDTH,
OpenLayers.Popup.HEIGHT);
- if (contentHTML != null) {
+ if (contentHTML != null) {
this.contentHTML = contentHTML;
}
this.backgroundColor = OpenLayers.Popup.COLOR;
this.opacity = OpenLayers.Popup.OPACITY;
this.border = OpenLayers.Popup.BORDER;
- this.div = OpenLayers.Util.createDiv(this.id, null, null,
+ this.div = OpenLayers.Util.createDiv(this.id, null, null,
null, null, null, "hidden");
this.div.className = this.displayClass;
-
+
var groupDivId = this.id + "_GroupDiv";
- this.groupDiv = OpenLayers.Util.createDiv(groupDivId, null, null,
+ this.groupDiv = OpenLayers.Util.createDiv(groupDivId, null, null,
null, "relative", null,
"hidden");
var id = this.div.id + "_contentDiv";
- this.contentDiv = OpenLayers.Util.createDiv(id, null, this.contentSize.clone(),
+ this.contentDiv = OpenLayers.Util.createDiv(id, null, this.contentSize.clone(),
null, "relative");
this.contentDiv.className = this.contentDisplayClass;
this.groupDiv.appendChild(this.contentDiv);
@@ -4758,12 +4758,12 @@
if (closeBox) {
this.addCloseBox(closeBoxCallback);
- }
+ }
this.registerEvents();
},
- /**
+ /**
* Method: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -4773,24 +4773,24 @@
this.lonlat = null;
this.size = null;
this.contentHTML = null;
-
+
this.backgroundColor = null;
this.opacity = null;
this.border = null;
-
+
if (this.closeOnMove && this.map) {
this.map.events.unregister("movestart", this, this.hide);
}
this.events.destroy();
this.events = null;
-
+
if (this.closeDiv) {
- OpenLayers.Event.stopObservingElement(this.closeDiv);
+ OpenLayers.Event.stopObservingElement(this.closeDiv);
this.groupDiv.removeChild(this.closeDiv);
}
this.closeDiv = null;
-
+
this.div.removeChild(this.groupDiv);
this.groupDiv = null;
@@ -4799,7 +4799,7 @@
}
this.map = null;
this.div = null;
-
+
this.autoSize = null;
this.minSize = null;
this.maxSize = null;
@@ -4807,13 +4807,13 @@
this.panMapIfOutOfView = null;
},
- /**
+ /**
* Method: draw
* Constructs the elements that make up the popup.
*
* Parameters:
* px - {<OpenLayers.Pixel>} the position the popup in pixels.
- *
+ *
* Returns:
* {DOMElement} Reference to a div that contains the drawn popup
*/
@@ -4824,12 +4824,12 @@
}
}
- // this assumes that this.map already exists, which is okay because
+ // this assumes that this.map already exists, which is okay because
// this.draw is only called once the popup has been added to the map.
if (this.closeOnMove) {
this.map.events.register("movestart", this, this.hide);
}
-
+
//listen to movestart, moveend to disable overflow (FF bug)
if (!this.disableFirefoxOverflowHack && OpenLayers.Util.getBrowserName() == 'firefox') {
this.map.events.register("movestart", this, function() {
@@ -4859,33 +4859,33 @@
this.setOpacity();
this.setBorder();
this.setContentHTML();
-
+
if (this.panMapIfOutOfView) {
this.panIntoView();
- }
+ }
return this.div;
},
- /**
+ /**
* Method: updatePosition
- * if the popup has a lonlat and its map members set,
+ * if the popup has a lonlat and its map members set,
* then have it move itself to its proper position
*/
updatePosition: function() {
if ((this.lonlat) && (this.map)) {
var px = this.map.getLayerPxFromLonLat(this.lonlat);
if (px) {
- this.moveTo(px);
- }
+ this.moveTo(px);
+ }
}
},
/**
* Method: moveTo
- *
+ *
* Parameters:
- * px - {<OpenLayers.Pixel>} the top and left position of the popup div.
+ * px - {<OpenLayers.Pixel>} the top and left position of the popup div.
*/
moveTo: function(px) {
if ((px != null) && (this.div != null)) {
@@ -4897,7 +4897,7 @@
/**
* Method: visible
*
- * Returns:
+ * Returns:
* {Boolean} Boolean indicating whether or not the popup is visible
*/
visible: function() {
@@ -4925,7 +4925,7 @@
if (this.panMapIfOutOfView) {
this.panIntoView();
- }
+ }
},
/**
@@ -4938,17 +4938,17 @@
/**
* Method: setSize
- * Used to adjust the size of the popup.
+ * Used to adjust the size of the popup.
*
* Parameters:
- * contentSize - {<OpenLayers.Size>} the new size for the popup's
+ * contentSize - {<OpenLayers.Size>} the new size for the popup's
* contents div (in pixels).
*/
- setSize:function(contentSize) {
- this.size = contentSize.clone();
-
- // if our contentDiv has a css 'padding' set on it by a stylesheet, we
- // must add that to the desired "size".
+ setSize:function(contentSize) {
+ this.size = contentSize.clone();
+
+ // if our contentDiv has a css 'padding' set on it by a stylesheet, we
+ // must add that to the desired "size".
var contentDivPadding = this.getContentDivPadding();
var wPadding = contentDivPadding.left + contentDivPadding.right;
var hPadding = contentDivPadding.top + contentDivPadding.bottom;
@@ -4964,18 +4964,18 @@
wPadding += closeDivWidth + contentDivPadding.right;
}
- //increase size of the main popup div to take into account the
- // users's desired padding and close div.
+ //increase size of the main popup div to take into account the
+ // users's desired padding and close div.
this.size.w += wPadding;
this.size.h += hPadding;
- //now if our browser is IE, we need to actually make the contents
- // div itself bigger to take its own padding into effect. this makes
+ //now if our browser is IE, we need to actually make the contents
+ // div itself bigger to take its own padding into effect. this makes
// me want to shoot someone, but so it goes.
if (OpenLayers.Util.getBrowserName() == "msie") {
- this.contentSize.w +=
+ this.contentSize.w +=
contentDivPadding.left + contentDivPadding.right;
- this.contentSize.h +=
+ this.contentSize.h +=
contentDivPadding.bottom + contentDivPadding.top;
}
@@ -4987,26 +4987,26 @@
this.contentDiv.style.width = contentSize.w + "px";
this.contentDiv.style.height = contentSize.h + "px";
}
- },
+ },
/**
* APIMethod: updateSize
- * Auto size the popup so that it precisely fits its contents (as
+ * Auto size the popup so that it precisely fits its contents (as
* determined by this.contentDiv.innerHTML). Popup size will, of
* course, be limited by the available space on the current map
*/
updateSize: function() {
-
+
// determine actual render dimensions of the contents by putting its
// contents into a fake contentDiv (for the CSS) and then measuring it
- var preparedHTML = "<div class='" + this.contentDisplayClass+ "'>" +
- this.contentDiv.innerHTML +
+ var preparedHTML = "<div class='" + this.contentDisplayClass+ "'>" +
+ this.contentDiv.innerHTML +
"</div>";
-
+
var containerElement = (this.map) ? this.map.layerContainerDiv
- : document.body;
+ : document.body;
var realSize = OpenLayers.Util.getRenderedDimensions(
- preparedHTML, null, {
+ preparedHTML, null, {
displayClass: this.displayClass,
containerElement: containerElement
}
@@ -5017,25 +5017,25 @@
var newSize = null;
if (safeSize.equals(realSize)) {
- //real size of content is small enough to fit on the map,
+ //real size of content is small enough to fit on the map,
// so we use real size.
newSize = realSize;
} else {
- //make a new OL.Size object with the clipped dimensions
+ //make a new OL.Size object with the clipped dimensions
// set or null if not clipped.
var fixedSize = new OpenLayers.Size();
fixedSize.w = (safeSize.w < realSize.w) ? safeSize.w : null;
fixedSize.h = (safeSize.h < realSize.h) ? safeSize.h : null;
-
+
if (fixedSize.w && fixedSize.h) {
- //content is too big in both directions, so we will use
- // max popup size (safeSize), knowing well that it will
- // overflow both ways.
+ //content is too big in both directions, so we will use
+ // max popup size (safeSize), knowing well that it will
+ // overflow both ways.
newSize = safeSize;
} else {
- //content is clipped in only one direction, so we need to
+ //content is clipped in only one direction, so we need to
// run getRenderedDimensions() again with a fixed dimension
var clippedSize = OpenLayers.Util.getRenderedDimensions(
preparedHTML, fixedSize, {
@@ -5043,17 +5043,17 @@
containerElement: containerElement
}
);
-
- //if the clipped size is still the same as the safeSize,
- // that means that our content must be fixed in the
- // offending direction. If overflow is 'auto', this means
- // we are going to have a scrollbar for sure, so we must
+
+ //if the clipped size is still the same as the safeSize,
+ // that means that our content must be fixed in the
+ // offending direction. If overflow is 'auto', this means
+ // we are going to have a scrollbar for sure, so we must
// adjust for that.
//
var currentOverflow = OpenLayers.Element.getStyle(
this.contentDiv, "overflow"
);
- if ( (currentOverflow != "hidden") &&
+ if ( (currentOverflow != "hidden") &&
(clippedSize.equals(safeSize)) ) {
var scrollBar = OpenLayers.Util.getScrollbarWidth();
if (fixedSize.w) {
@@ -5062,12 +5062,12 @@
clippedSize.w += scrollBar;
}
}
-
+
newSize = this.getSafeContentSize(clippedSize);
}
- }
- this.setSize(newSize);
- },
+ }
+ this.setSize(newSize);
+ },
/**
* Method: setBackgroundColor
@@ -5076,28 +5076,28 @@
* Parameters:
* color - {String} the background color. eg "#FFBBBB"
*/
- setBackgroundColor:function(color) {
+ setBackgroundColor:function(color) {
if (color != undefined) {
- this.backgroundColor = color;
+ this.backgroundColor = color;
}
-
+
if (this.div != null) {
this.div.style.backgroundColor = this.backgroundColor;
}
- },
-
+ },
+
/**
* Method: setOpacity
* Sets the opacity of the popup.
- *
+ *
* Parameters:
- * opacity - {float} A value between 0.0 (transparent) and 1.0 (solid).
+ * opacity - {float} A value between 0.0 (transparent) and 1.0 (solid).
*/
- setOpacity:function(opacity) {
+ setOpacity:function(opacity) {
if (opacity != undefined) {
- this.opacity = opacity;
+ this.opacity = opacity;
}
-
+
if (this.div != null) {
// for Mozilla and Safari
this.div.style.opacity = this.opacity;
@@ -5105,25 +5105,25 @@
// for IE
this.div.style.filter = 'alpha(opacity=' + this.opacity*100 + ')';
}
- },
-
+ },
+
/**
* Method: setBorder
* Sets the border style of the popup.
*
* Parameters:
- * border - {String} The border style value. eg 2px
+ * border - {String} The border style value. eg 2px
*/
- setBorder:function(border) {
+ setBorder:function(border) {
if (border != undefined) {
this.border = border;
}
-
+
if (this.div != null) {
this.div.style.border = this.border;
}
- },
-
+ },
+
/**
* Method: setContentHTML
* Allows the user to set the HTML content of the popup.
@@ -5136,15 +5136,15 @@
if (contentHTML != null) {
this.contentHTML = contentHTML;
}
-
- if ((this.contentDiv != null) &&
+
+ if ((this.contentDiv != null) &&
(this.contentHTML != null) &&
(this.contentHTML != this.contentDiv.innerHTML)) {
-
+
this.contentDiv.innerHTML = this.contentHTML;
-
+
if (this.autoSize) {
-
+
//if popup has images, listen for when they finish
// loading and resize accordingly
this.registerImageListeners();
@@ -5152,31 +5152,31 @@
//auto size the popup to its current contents
this.updateSize();
}
- }
+ }
},
-
+
/**
* Method: registerImageListeners
* Called when an image contained by the popup loaded. this function
* updates the popup size, then unregisters the image load listener.
- */
- registerImageListeners: function() {
+ */
+ registerImageListeners: function() {
- // As the images load, this function will call updateSize() to
+ // As the images load, this function will call updateSize() to
// resize the popup to fit the content div (which presumably is now
// bigger than when the image was not loaded).
- //
+ //
// If the 'panMapIfOutOfView' property is set, we will pan the newly
// resized popup back into view.
- //
- // Note that this function, when called, will have 'popup' and
+ //
+ // Note that this function, when called, will have 'popup' and
// 'img' properties in the context.
//
var onImgLoad = function() {
-
+
this.popup.updateSize();
-
+
if ( this.popup.visible() && this.popup.panMapIfOutOfView ) {
this.popup.panIntoView();
}
@@ -5184,12 +5184,12 @@
OpenLayers.Event.stopObserving(
this.img, "load", this.img._onImageLoad
);
-
+
};
- //cycle through the images and if their size is 0x0, that means that
- // they haven't been loaded yet, so we attach the listener, which
- // will fire when the images finish loading and will resize the
+ //cycle through the images and if their size is 0x0, that means that
+ // they haven't been loaded yet, so we attach the listener, which
+ // will fire when the images finish loading and will resize the
// popup accordingly to its new size.
var images = this.contentDiv.getElementsByTagName("img");
for (var i = 0, len = images.length; i < len; i++) {
@@ -5206,27 +5206,27 @@
img._onImgLoad = OpenLayers.Function.bind(onImgLoad, context);
OpenLayers.Event.observe(img, 'load', img._onImgLoad);
- }
- }
+ }
+ }
},
/**
* APIMethod: getSafeContentSize
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>} Desired size to make the popup.
- *
+ *
* Returns:
* {<OpenLayers.Size>} A size to make the popup which is neither smaller
- * than the specified minimum size, nor bigger than the maximum
+ * than the specified minimum size, nor bigger than the maximum
* size (which is calculated relative to the size of the viewport).
*/
getSafeContentSize: function(size) {
var safeContentSize = size.clone();
- // if our contentDiv has a css 'padding' set on it by a stylesheet, we
- // must add that to the desired "size".
+ // if our contentDiv has a css 'padding' set on it by a stylesheet, we
+ // must add that to the desired "size".
var contentDivPadding = this.getContentDivPadding();
var wPadding = contentDivPadding.left + contentDivPadding.right;
var hPadding = contentDivPadding.top + contentDivPadding.bottom;
@@ -5243,25 +5243,25 @@
// prevent the popup from being smaller than a specified minimal size
if (this.minSize) {
- safeContentSize.w = Math.max(safeContentSize.w,
+ safeContentSize.w = Math.max(safeContentSize.w,
(this.minSize.w - wPadding));
- safeContentSize.h = Math.max(safeContentSize.h,
+ safeContentSize.h = Math.max(safeContentSize.h,
(this.minSize.h - hPadding));
}
// prevent the popup from being bigger than a specified maximum size
if (this.maxSize) {
- safeContentSize.w = Math.min(safeContentSize.w,
+ safeContentSize.w = Math.min(safeContentSize.w,
(this.maxSize.w - wPadding));
- safeContentSize.h = Math.min(safeContentSize.h,
+ safeContentSize.h = Math.min(safeContentSize.h,
(this.maxSize.h - hPadding));
}
-
- //make sure the desired size to set doesn't result in a popup that
+
+ //make sure the desired size to set doesn't result in a popup that
// is bigger than the map's viewport.
//
if (this.map && this.map.size) {
-
+
var extraX = 0, extraY = 0;
if (this.keepInMap && !this.panMapIfOutOfView) {
var px = this.map.getPixelFromLonLat(this.lonlat);
@@ -5282,39 +5282,39 @@
extraX = px.x;
extraY = px.y;
break;
- default:
+ default:
extraX = px.x;
extraY = this.map.size.h - px.y;
break;
}
- }
-
- var maxY = this.map.size.h -
- this.map.paddingForPopups.top -
- this.map.paddingForPopups.bottom -
+ }
+
+ var maxY = this.map.size.h -
+ this.map.paddingForPopups.top -
+ this.map.paddingForPopups.bottom -
hPadding - extraY;
-
- var maxX = this.map.size.w -
- this.map.paddingForPopups.left -
- this.map.paddingForPopups.right -
+
+ var maxX = this.map.size.w -
+ this.map.paddingForPopups.left -
+ this.map.paddingForPopups.right -
wPadding - extraX;
-
+
safeContentSize.w = Math.min(safeContentSize.w, maxX);
safeContentSize.h = Math.min(safeContentSize.h, maxY);
}
-
+
return safeContentSize;
},
-
+
/**
* Method: getContentDivPadding
- * Glorious, oh glorious hack in order to determine the css 'padding' of
- * the contentDiv. IE/Opera return null here unless we actually add the
- * popup's main 'div' element (which contains contentDiv) to the DOM.
- * So we make it invisible and then add it to the document temporarily.
+ * Glorious, oh glorious hack in order to determine the css 'padding' of
+ * the contentDiv. IE/Opera return null here unless we actually add the
+ * popup's main 'div' element (which contains contentDiv) to the DOM.
+ * So we make it invisible and then add it to the document temporarily.
*
- * Once we've taken the padding readings we need, we then remove it
- * from the DOM (it will actually get added to the DOM in
+ * Once we've taken the padding readings we need, we then remove it
+ * from the DOM (it will actually get added to the DOM in
* Map.js's addPopup)
*
* Returns:
@@ -5326,27 +5326,27 @@
var contentDivPadding = this._contentDivPadding;
if (!contentDivPadding) {
- if (this.div.parentNode == null) {
- //make the div invisible and add it to the page
- this.div.style.display = "none";
- document.body.appendChild(this.div);
- }
-
- //read the padding settings from css, put them in an OL.Bounds
+ if (this.div.parentNode == null) {
+ //make the div invisible and add it to the page
+ this.div.style.display = "none";
+ document.body.appendChild(this.div);
+ }
+
+ //read the padding settings from css, put them in an OL.Bounds
contentDivPadding = new OpenLayers.Bounds(
OpenLayers.Element.getStyle(this.contentDiv, "padding-left"),
OpenLayers.Element.getStyle(this.contentDiv, "padding-bottom"),
OpenLayers.Element.getStyle(this.contentDiv, "padding-right"),
OpenLayers.Element.getStyle(this.contentDiv, "padding-top")
);
-
+
//cache the value
this._contentDivPadding = contentDivPadding;
if (this.div.parentNode == document.body) {
- //remove the div from the page and make it visible again
- document.body.removeChild(this.div);
- this.div.style.display = "";
+ //remove the div from the page and make it visible again
+ document.body.removeChild(this.div);
+ this.div.style.display = "";
}
}
return contentDivPadding;
@@ -5354,7 +5354,7 @@
/**
* Method: addCloseBox
- *
+ *
* Parameters:
* callback - {Function} The callback to be called when the close button
* is clicked.
@@ -5364,12 +5364,12 @@
this.closeDiv = OpenLayers.Util.createDiv(
this.id + "_close", null, new OpenLayers.Size(17, 17)
);
- this.closeDiv.className = "olPopupCloseBox";
-
+ this.closeDiv.className = "olPopupCloseBox";
+
// use the content div's css padding to determine if we should
// padd the close div
var contentDivPadding = this.getContentDivPadding();
-
+
this.closeDiv.style.right = contentDivPadding.right + "px";
this.closeDiv.style.top = contentDivPadding.top + "px";
this.groupDiv.appendChild(this.closeDiv);
@@ -5378,7 +5378,7 @@
this.hide();
OpenLayers.Event.stop(e);
};
- OpenLayers.Event.observe(this.closeDiv, "click",
+ OpenLayers.Event.observe(this.closeDiv, "click",
OpenLayers.Function.bindAsEventListener(closePopup, this));
},
@@ -5387,58 +5387,58 @@
* Pans the map such that the popup is totaly viewable (if necessary)
*/
panIntoView: function() {
-
+
var mapSize = this.map.getSize();
-
- //start with the top left corner of the popup, in px,
+
+ //start with the top left corner of the popup, in px,
// relative to the viewport
var origTL = this.map.getViewPortPxFromLayerPx( new OpenLayers.Pixel(
parseInt(this.div.style.left),
parseInt(this.div.style.top)
));
var newTL = origTL.clone();
-
+
//new left (compare to margins, using this.size to calculate right)
if (origTL.x < this.map.paddingForPopups.left) {
newTL.x = this.map.paddingForPopups.left;
- } else
+ } else
if ( (origTL.x + this.size.w) > (mapSize.w - this.map.paddingForPopups.right)) {
newTL.x = mapSize.w - this.map.paddingForPopups.right - this.size.w;
}
-
+
//new top (compare to margins, using this.size to calculate bottom)
if (origTL.y < this.map.paddingForPopups.top) {
newTL.y = this.map.paddingForPopups.top;
- } else
+ } else
if ( (origTL.y + this.size.h) > (mapSize.h - this.map.paddingForPopups.bottom)) {
newTL.y = mapSize.h - this.map.paddingForPopups.bottom - this.size.h;
}
-
+
var dx = origTL.x - newTL.x;
var dy = origTL.y - newTL.y;
-
+
this.map.pan(dx, dy);
},
- /**
+ /**
* Method: registerEvents
* Registers events on the popup.
*
- * Do this in a separate function so that subclasses can
+ * Do this in a separate function so that subclasses can
* choose to override it if they wish to deal differently
* with mouse events
- *
+ *
* Note in the following handler functions that some special
- * care is needed to deal correctly with mousing and popups.
- *
+ * care is needed to deal correctly with mousing and popups.
+ *
* Because the user might select the zoom-rectangle option and
* then drag it over a popup, we need a safe way to allow the
* mousemove and mouseup events to pass through the popup when
* they are initiated from outside.
- *
+ *
* Otherwise, we want to essentially kill the event propagation
- * for all other events, though we have to do so carefully,
- * without disabling basic html functionality, like clicking on
+ * for all other events, though we have to do so carefully,
+ * without disabling basic html functionality, like clicking on
* hyperlinks or drag-selecting text.
*/
registerEvents:function() {
@@ -5453,31 +5453,31 @@
"dblclick": this.ondblclick,
scope: this
});
-
+
},
- /**
- * Method: onmousedown
+ /**
+ * Method: onmousedown
* When mouse goes down within the popup, make a note of
- * it locally, and then do not propagate the mousedown
+ * it locally, and then do not propagate the mousedown
* (but do so safely so that user can select text inside)
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmousedown: function (evt) {
this.mousedown = true;
OpenLayers.Event.stop(evt, true);
},
- /**
+ /**
* Method: onmousemove
- * If the drag was started within the popup, then
+ * If the drag was started within the popup, then
* do not propagate the mousemove (but do so safely
* so that user can select text inside)
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmousemove: function (evt) {
if (this.mousedown) {
@@ -5485,15 +5485,15 @@
}
},
- /**
+ /**
* Method: onmouseup
- * When mouse comes up within the popup, after going down
- * in it, reset the flag, and then (once again) do not
- * propagate the event, but do so safely so that user can
+ * When mouse comes up within the popup, after going down
+ * in it, reset the flag, and then (once again) do not
+ * propagate the event, but do so safely so that user can
* select text inside
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmouseup: function (evt) {
if (this.mousedown) {
@@ -5505,32 +5505,32 @@
/**
* Method: onclick
* Ignore clicks, but allowing default browser handling
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onclick: function (evt) {
OpenLayers.Event.stop(evt, true);
},
- /**
+ /**
* Method: onmouseout
* When mouse goes out of the popup set the flag to false so that
* if they let go and then drag back in, we won't be confused.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmouseout: function (evt) {
this.mousedown = false;
},
-
- /**
+
+ /**
* Method: ondblclick
* Ignore double-clicks, but allowing default browser handling
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
ondblclick: function (evt) {
OpenLayers.Event.stop(evt, true);
@@ -5558,13 +5558,13 @@
* one of the protocol subclasses instead.
*/
OpenLayers.Protocol = OpenLayers.Class({
-
+
/**
* Property: format
* {<OpenLayers.Format>} The format used by this protocol.
*/
format: null,
-
+
/**
* Property: options
* {Object} Any options sent to the constructor.
@@ -5578,7 +5578,7 @@
* true.
*/
autoDestroy: true,
-
+
/**
* Constructor: OpenLayers.Protocol
* Abstract class for vector protocols. Create instances of a subclass.
@@ -5601,7 +5601,7 @@
this.options = null;
this.format = null;
},
-
+
/**
* APIMethod: read
* Construct a request for reading new features.
@@ -5616,8 +5616,8 @@
*/
read: function() {
},
-
-
+
+
/**
* APIMethod: create
* Construct a request for writing newly created features.
@@ -5634,7 +5634,7 @@
*/
create: function() {
},
-
+
/**
* APIMethod: update
* Construct a request updating modified features.
@@ -5651,7 +5651,7 @@
*/
update: function() {
},
-
+
/**
* APIMethod: delete
* Construct a request deleting a removed feature.
@@ -5699,8 +5699,8 @@
*/
abort: function(response) {
},
-
- CLASS_NAME: "OpenLayers.Protocol"
+
+ CLASS_NAME: "OpenLayers.Protocol"
});
/**
@@ -5784,37 +5784,37 @@
* full text of the license. */
/**
- * Class: OpenLayers.Renderer
+ * Class: OpenLayers.Renderer
* This is the base class for all renderers.
*
* This is based on a merger code written by Paul Spencer and Bertil Chapuis.
* It is largely composed of virtual functions that are to be implemented
* in technology-specific subclasses, but there is some generic code too.
- *
+ *
* The functions that *are* implemented here merely deal with the maintenance
- * of the size and extent variables, as well as the cached 'resolution'
- * value.
- *
+ * of the size and extent variables, as well as the cached 'resolution'
+ * value.
+ *
* A note to the user that all subclasses should use getResolution() instead
- * of directly accessing this.resolution in order to correctly use the
+ * of directly accessing this.resolution in order to correctly use the
* cacheing system.
*
*/
OpenLayers.Renderer = OpenLayers.Class({
- /**
+ /**
* Property: container
- * {DOMElement}
+ * {DOMElement}
*/
container: null,
-
+
/**
* Property: root
* {DOMElement}
*/
root: null,
- /**
+ /**
* Property: extent
* {<OpenLayers.Bounds>}
*/
@@ -5823,44 +5823,44 @@
/**
* Property: locked
* {Boolean} If the renderer is currently in a state where many things
- * are changing, the 'locked' property is set to true. This means
+ * are changing, the 'locked' property is set to true. This means
* that renderers can expect at least one more drawFeature event to be
* called with the 'locked' property set to 'true': In some renderers,
* this might make sense to use as a 'only update local information'
- * flag.
- */
+ * flag.
+ */
locked: false,
-
- /**
+
+ /**
* Property: size
- * {<OpenLayers.Size>}
+ * {<OpenLayers.Size>}
*/
size: null,
-
+
/**
* Property: resolution
* {Float} cache of current map resolution
*/
resolution: null,
-
+
/**
- * Property: map
+ * Property: map
* {<OpenLayers.Map>} Reference to the map -- this is set in Vector's setMap()
*/
map: null,
-
+
/**
- * Constructor: OpenLayers.Renderer
+ * Constructor: OpenLayers.Renderer
*
* Parameters:
- * containerID - {<String>}
+ * containerID - {<String>}
* options - {Object} options for this renderer. See sublcasses for
* supported options.
*/
initialize: function(containerID, options) {
this.container = OpenLayers.Util.getElement(containerID);
},
-
+
/**
* APIMethod: destroy
*/
@@ -5875,20 +5875,20 @@
/**
* APIMethod: supported
* This should be overridden by specific subclasses
- *
+ *
* Returns:
* {Boolean} Whether or not the browser supports the renderer class
*/
supported: function() {
return false;
- },
-
+ },
+
/**
* Method: setExtent
* Set the visible part of the layer.
*
- * Resolution has probably changed, so we nullify the resolution
- * cache (this.resolution) -- this way it will be re-computed when
+ * Resolution has probably changed, so we nullify the resolution
+ * cache (this.resolution) -- this way it will be re-computed when
* next it is needed.
* We nullify the resolution cache (this.resolution) if resolutionChanged
* is set to true - this way it will be re-computed on the next
@@ -5904,27 +5904,27 @@
this.resolution = null;
}
},
-
+
/**
* Method: setSize
* Sets the size of the drawing surface.
- *
- * Resolution has probably changed, so we nullify the resolution
- * cache (this.resolution) -- this way it will be re-computed when
+ *
+ * Resolution has probably changed, so we nullify the resolution
+ * cache (this.resolution) -- this way it will be re-computed when
* next it is needed.
*
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*/
setSize: function(size) {
this.size = size.clone();
this.resolution = null;
},
-
- /**
+
+ /**
* Method: getResolution
* Uses cached copy of resolution if available to minimize computing
- *
+ *
* Returns:
* The current map's resolution
*/
@@ -5932,7 +5932,7 @@
this.resolution = this.resolution || this.map.getResolution();
return this.resolution;
},
-
+
/**
* Method: drawFeature
* Draw the feature. The optional style argument can be used
@@ -5940,9 +5940,9 @@
* be called from layer.drawFeature().
*
* Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * feature - {<OpenLayers.Feature.Vector>}
* style - {<Object>}
- *
+ *
* Returns:
* {Boolean} true if the feature has been drawn completely, false if not,
* undefined if the feature had no geometry
@@ -5969,26 +5969,26 @@
},
- /**
+ /**
* Method: drawGeometry
- *
+ *
* Draw a geometry. This should only be called from the renderer itself.
* Use layer.drawFeature() from outside the renderer.
* virtual function
*
* Parameters:
- * geometry - {<OpenLayers.Geometry>}
- * style - {Object}
- * featureId - {<String>}
+ * geometry - {<OpenLayers.Geometry>}
+ * style - {Object}
+ * featureId - {<String>}
*/
drawGeometry: function(geometry, style, featureId) {},
-
+
/**
* Method: drawText
* Function for drawing text labels.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
* style -
* location - {<OpenLayers.Geometry.Point>}
@@ -5999,40 +5999,40 @@
* Method: removeText
* Function for removing text labels.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
*/
removeText: function(featureId) {},
-
+
/**
* Method: clear
* Clear all vectors from the renderer.
* virtual function.
- */
+ */
clear: function() {},
/**
* Method: getFeatureIdFromEvent
- * Returns a feature id from an event on the renderer.
+ * Returns a feature id from an event on the renderer.
* How this happens is specific to the renderer. This should be
* called from layer.getFeatureFromEvent().
* Virtual function.
- *
+ *
* Parameters:
- * evt - {<OpenLayers.Event>}
+ * evt - {<OpenLayers.Event>}
*
* Returns:
* {String} A feature id or null.
*/
getFeatureIdFromEvent: function(evt) {},
-
+
/**
- * Method: eraseFeatures
+ * Method: eraseFeatures
* This is called by the layer to erase features
- *
+ *
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
*/
eraseFeatures: function(features) {
if(!(features instanceof Array)) {
@@ -6043,23 +6043,23 @@
this.removeText(features[i].id);
}
},
-
+
/**
* Method: eraseGeometry
* Remove a geometry from the renderer (by id).
* virtual function.
- *
+ *
* Parameters:
- * geometry - {<OpenLayers.Geometry>}
+ * geometry - {<OpenLayers.Geometry>}
*/
eraseGeometry: function(geometry) {},
-
+
/**
* Method: moveRoot
* moves this renderer's root to a (different) renderer.
* To be implemented by subclasses that require a common renderer root for
* feature selection.
- *
+ *
* Parameters:
* renderer - {<OpenLayers.Renderer>} target renderer for the moved root
*/
@@ -6070,7 +6070,7 @@
* Gets the layer that this renderer's output appears on. If moveRoot was
* used, this will be different from the id of the layer containing the
* features rendered by this renderer.
- *
+ *
* Returns:
* {String} the id of the output layer.
*/
@@ -6094,21 +6094,21 @@
* one of the strategy subclasses instead.
*/
OpenLayers.Strategy = OpenLayers.Class({
-
+
/**
* Property: layer
* {<OpenLayers.Layer.Vector>} The layer this strategy belongs to.
*/
layer: null,
-
+
/**
* Property: options
* {Object} Any options sent to the constructor.
*/
options: null,
- /**
- * Property: active
+ /**
+ * Property: active
* {Boolean} The control is active.
*/
active: null,
@@ -6143,7 +6143,7 @@
// set the active property here, so that user cannot override it
this.active = false;
},
-
+
/**
* APIMethod: destroy
* Clean up the strategy.
@@ -6164,7 +6164,7 @@
setLayer: function(layer) {
this.layer = layer;
},
-
+
/**
* Method: activate
* Activate the strategy. Register any listeners, do appropriate setup.
@@ -6180,7 +6180,7 @@
}
return false;
},
-
+
/**
* Method: deactivate
* Deactivate the strategy. Unregister any listeners, do appropriate
@@ -6197,8 +6197,8 @@
}
return false;
},
-
- CLASS_NAME: "OpenLayers.Strategy"
+
+ CLASS_NAME: "OpenLayers.Strategy"
});
/* ======================================================================
OpenLayers/Control.js
@@ -6215,15 +6215,15 @@
/**
* Class: OpenLayers.Control
* Controls affect the display or behavior of the map. They allow everything
- * from panning and zooming to displaying a scale indicator. Controls by
+ * from panning and zooming to displaying a scale indicator. Controls by
* default are added to the map they are contained within however it is
* possible to add a control to an external div by passing the div in the
* options parameter.
- *
+ *
* Example:
* The following example shows how to add many of the common controls
* to a map.
- *
+ *
* > var map = new OpenLayers.Map('map', { controls: [] });
* >
* > map.addControl(new OpenLayers.Control.PanZoomBar());
@@ -6235,10 +6235,10 @@
* > map.addControl(new OpenLayers.Control.OverviewMap());
* > map.addControl(new OpenLayers.Control.KeyboardDefaults());
*
- * The next code fragment is a quick example of how to intercept
+ * The next code fragment is a quick example of how to intercept
* shift-mouse click to display the extent of the bounding box
* dragged out by the user. Usually controls are not created
- * in exactly this manner. See the source for a more complete
+ * in exactly this manner. See the source for a more complete
* example:
*
* > var control = new OpenLayers.Control();
@@ -6246,7 +6246,7 @@
* > draw: function () {
* > // this Handler.Box will intercept the shift-mousedown
* > // before Control.MouseDefault gets to see it
- * > this.box = new OpenLayers.Handler.Box( control,
+ * > this.box = new OpenLayers.Handler.Box( control,
* > {"done": this.notice},
* > {keyMask: OpenLayers.Handler.MOD_SHIFT});
* > this.box.activate();
@@ -6255,70 +6255,70 @@
* > notice: function (bounds) {
* > OpenLayers.Console.userError(bounds);
* > }
- * > });
+ * > });
* > map.addControl(control);
- *
+ *
*/
OpenLayers.Control = OpenLayers.Class({
- /**
- * Property: id
- * {String}
+ /**
+ * Property: id
+ * {String}
*/
id: null,
-
- /**
- * Property: map
+
+ /**
+ * Property: map
* {<OpenLayers.Map>} this gets set in the addControl() function in
- * OpenLayers.Map
+ * OpenLayers.Map
*/
map: null,
- /**
- * Property: div
- * {DOMElement}
+ /**
+ * Property: div
+ * {DOMElement}
*/
div: null,
- /**
- * Property: type
+ /**
+ * Property: type
* {OpenLayers.Control.TYPES} Controls can have a 'type'. The type
* determines the type of interactions which are possible with them when
- * they are placed into a toolbar.
+ * they are placed into a toolbar.
*/
- type: null,
+ type: null,
- /**
+ /**
* Property: allowSelection
* {Boolean} By deafault, controls do not allow selection, because
* it may interfere with map dragging. If this is true, OpenLayers
* will not prevent selection of the control.
* Default is false.
*/
- allowSelection: false,
+ allowSelection: false,
- /**
- * Property: displayClass
+ /**
+ * Property: displayClass
* {string} This property is used for CSS related to the drawing of the
- * Control.
+ * Control.
*/
displayClass: "",
-
+
/**
- * Property: title
- * {string} This property is used for showing a tooltip over the
- * Control.
- */
+ * Property: title
+ * {string} This property is used for showing a tooltip over the
+ * Control.
+ */
title: "",
- /**
- * Property: active
+ /**
+ * Property: active
* {Boolean} The control is active.
*/
active: null,
- /**
- * Property: handler
+ /**
+ * Property: handler
* {<OpenLayers.Handler>} null
*/
handler: null,
@@ -6332,7 +6332,7 @@
*/
eventListeners: null,
- /**
+ /**
* Property: events
* {<OpenLayers.Events>} Events instance for triggering control specific
* events.
@@ -6366,22 +6366,22 @@
* Constructor: OpenLayers.Control
* Create an OpenLayers Control. The options passed as a parameter
* directly extend the control. For example passing the following:
- *
+ *
* > var control = new OpenLayers.Control({div: myDiv});
*
* Overrides the default div attribute value of null.
- *
+ *
* Parameters:
- * options - {Object}
+ * options - {Object}
*/
initialize: function (options) {
// We do this before the extend so that instances can override
// className in options.
- this.displayClass =
+ this.displayClass =
this.CLASS_NAME.replace("OpenLayers.", "ol").replace(/\./g, "");
-
+
OpenLayers.Util.extend(this, options);
-
+
this.events = new OpenLayers.Events(this, null, this.EVENT_TYPES);
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
@@ -6427,14 +6427,14 @@
}
},
- /**
+ /**
* Method: setMap
* Set the map property for the control. This is done through an accessor
- * so that subclasses can override this and take special action once
- * they have their map variable set.
+ * so that subclasses can override this and take special action once
+ * they have their map variable set.
*
* Parameters:
- * map - {<OpenLayers.Map>}
+ * map - {<OpenLayers.Map>}
*/
setMap: function(map) {
this.map = map;
@@ -6442,13 +6442,13 @@
this.handler.setMap(map);
}
},
-
+
/**
* Method: draw
* The draw method is called when the control is ready to be displayed
* on the page. If a div has not been created one is created. Controls
- * with a visual component will almost always want to override this method
- * to customize the look of control.
+ * with a visual component will almost always want to override this method
+ * to customize the look of control.
*
* Parameters:
* px - {<OpenLayers.Pixel>} The top-left pixel position of the control
@@ -6464,8 +6464,8 @@
if (!this.allowSelection) {
this.div.className += " olControlNoSelect";
this.div.setAttribute("unselectable", "on", 0);
- this.div.onselectstart = function() { return(false); };
- }
+ this.div.onselectstart = function() { return(false); };
+ }
if (this.title != "") {
this.div.title = this.title;
}
@@ -6479,7 +6479,7 @@
/**
* Method: moveTo
- * Sets the left and top style attributes to the passed in pixel
+ * Sets the left and top style attributes to the passed in pixel
* coordinates.
*
* Parameters:
@@ -6497,7 +6497,7 @@
* Explicitly activates a control and it's associated
* handler if one has been set. Controls can be
* deactivated by calling the deactivate() method.
- *
+ *
* Returns:
* {Boolean} True if the control was successfully activated or
* false if the control was already active.
@@ -6519,12 +6519,12 @@
this.events.triggerEvent("activate");
return true;
},
-
+
/**
* Method: deactivate
* Deactivates a control and it's associated handler if any. The exact
* effect of this depends on the control itself.
- *
+ *
* Returns:
* {Boolean} True if the control was effectively deactivated or false
* if the control was already inactive.
@@ -6571,8 +6571,8 @@
* and methods to set and get the current language.
*/
OpenLayers.Lang = {
-
- /**
+
+ /**
* Property: code
* {String} Current language code to use in OpenLayers. Use the
* <setCode> method to set this value and the <getCode> method to
@@ -6580,13 +6580,13 @@
*/
code: null,
- /**
+ /**
* APIProperty: defaultCode
* {String} Default language to use when a specific language can't be
* found. Default is "en".
*/
defaultCode: "en",
-
+
/**
* APIFunction: getCode
* Get the current language code.
@@ -6600,7 +6600,7 @@
}
return OpenLayers.Lang.code;
},
-
+
/**
* APIFunction: setCode
* Set the language code for string translation. This code is used by
@@ -6639,7 +6639,7 @@
);
lang = OpenLayers.Lang.defaultCode;
}
-
+
OpenLayers.Lang.code = lang;
},
@@ -6653,7 +6653,7 @@
* key - {String} The key for an i18n string value in the dictionary.
* context - {Object} Optional context to be used with
* <OpenLayers.String.format>.
- *
+ *
* Returns:
* {String} A internationalized string.
*/
@@ -6669,7 +6669,7 @@
}
return message;
}
-
+
};
@@ -6684,7 +6684,7 @@
* key - {String} The key for an i18n string value in the dictionary.
* context - {Object} Optional context to be used with
* <OpenLayers.String.format>.
- *
+ *
* Returns:
* {String} A internationalized string.
*/
@@ -6704,28 +6704,28 @@
/**
* Class: OpenLayers.Popup.Anchored
- *
+ *
* Inherits from:
* - <OpenLayers.Popup>
*/
-OpenLayers.Popup.Anchored =
+OpenLayers.Popup.Anchored =
OpenLayers.Class(OpenLayers.Popup, {
- /**
+ /**
* Parameter: relativePosition
* {String} Relative position of the popup ("br", "tr", "tl" or "bl").
*/
relativePosition: null,
-
+
/**
- * APIProperty: keepInMap
- * {Boolean} If panMapIfOutOfView is false, and this property is true,
+ * APIProperty: keepInMap
+ * {Boolean} If panMapIfOutOfView is false, and this property is true,
* contrain the popup such that it always fits in the available map
* space. By default, this is set. If you are creating popups that are
* near map edges and not allowing pannning, and especially if you have
* a popup which has a fixedRelativePosition, setting this to false may
* be a smart thing to do.
- *
+ *
* For anchored popups, default is true, since subclasses will
* usually want this functionality.
*/
@@ -6733,20 +6733,20 @@
/**
* Parameter: anchor
- * {Object} Object to which we'll anchor the popup. Must expose a
+ * {Object} Object to which we'll anchor the popup. Must expose a
* 'size' (<OpenLayers.Size>) and 'offset' (<OpenLayers.Pixel>).
*/
anchor: null,
- /**
+ /**
* Constructor: OpenLayers.Popup.Anchored
- *
+ *
* Parameters:
* id - {String}
* lonlat - {<OpenLayers.LonLat>}
* contentSize - {<OpenLayers.Size>}
* contentHTML - {String}
- * anchor - {Object} Object which must expose a 'size' <OpenLayers.Size>
+ * anchor - {Object} Object which must expose a 'size' <OpenLayers.Size>
* and 'offset' <OpenLayers.Pixel> (generally an <OpenLayers.Icon>).
* closeBox - {Boolean}
* closeBoxCallback - {Function} Function to be called on closeBox click.
@@ -6758,7 +6758,7 @@
];
OpenLayers.Popup.prototype.initialize.apply(this, newArguments);
- this.anchor = (anchor != null) ? anchor
+ this.anchor = (anchor != null) ? anchor
: { size: new OpenLayers.Size(0,0),
offset: new OpenLayers.Pixel(0,0)};
},
@@ -6769,13 +6769,13 @@
destroy: function() {
this.anchor = null;
this.relativePosition = null;
-
- OpenLayers.Popup.prototype.destroy.apply(this, arguments);
+
+ OpenLayers.Popup.prototype.destroy.apply(this, arguments);
},
/**
* APIMethod: show
- * Overridden from Popup since user might hide popup and then show() it
+ * Overridden from Popup since user might hide popup and then show() it
* in a new location (meaning we might want to update the relative
* position on the show)
*/
@@ -6787,27 +6787,27 @@
/**
* Method: moveTo
* Since the popup is moving to a new px, it might need also to be moved
- * relative to where the marker is. We first calculate the new
- * relativePosition, and then we calculate the new px where we will
- * put the popup, based on the new relative position.
- *
- * If the relativePosition has changed, we must also call
- * updateRelativePosition() to make any visual changes to the popup
+ * relative to where the marker is. We first calculate the new
+ * relativePosition, and then we calculate the new px where we will
+ * put the popup, based on the new relative position.
+ *
+ * If the relativePosition has changed, we must also call
+ * updateRelativePosition() to make any visual changes to the popup
* which are associated with putting it in a new relativePosition.
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
*/
moveTo: function(px) {
var oldRelativePosition = this.relativePosition;
this.relativePosition = this.calculateRelativePosition(px);
-
+
var newPx = this.calculateNewPx(px);
-
- var newArguments = new Array(newPx);
+
+ var newArguments = new Array(newPx);
OpenLayers.Popup.prototype.moveTo.apply(this, newArguments);
-
- //if this move has caused the popup to change its relative position,
+
+ //if this move has caused the popup to change its relative position,
// we need to make the appropriate cosmetic changes.
if (this.relativePosition != oldRelativePosition) {
this.updateRelativePosition();
@@ -6816,76 +6816,76 @@
/**
* APIMethod: setSize
- *
+ *
* Parameters:
- * contentSize - {<OpenLayers.Size>} the new size for the popup's
+ * contentSize - {<OpenLayers.Size>} the new size for the popup's
* contents div (in pixels).
*/
- setSize:function(contentSize) {
+ setSize:function(contentSize) {
OpenLayers.Popup.prototype.setSize.apply(this, arguments);
if ((this.lonlat) && (this.map)) {
var px = this.map.getLayerPxFromLonLat(this.lonlat);
this.moveTo(px);
}
- },
-
- /**
+ },
+
+ /**
* Method: calculateRelativePosition
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {String} The relative position ("br" "tr" "tl" "bl") at which the popup
* should be placed.
*/
calculateRelativePosition:function(px) {
- var lonlat = this.map.getLonLatFromLayerPx(px);
-
+ var lonlat = this.map.getLonLatFromLayerPx(px);
+
var extent = this.map.getExtent();
var quadrant = extent.determineQuadrant(lonlat);
-
+
return OpenLayers.Bounds.oppositeQuadrant(quadrant);
- },
+ },
/**
* Method: updateRelativePosition
- * The popup has been moved to a new relative location, so we may want to
- * make some cosmetic adjustments to it.
- *
- * Note that in the classic Anchored popup, there is nothing to do
+ * The popup has been moved to a new relative location, so we may want to
+ * make some cosmetic adjustments to it.
+ *
+ * Note that in the classic Anchored popup, there is nothing to do
* here, since the popup looks exactly the same in all four positions.
- * Subclasses such as the AnchoredBubble and Framed, however, will
+ * Subclasses such as the AnchoredBubble and Framed, however, will
* want to do something special here.
*/
updateRelativePosition: function() {
//to be overridden by subclasses
},
- /**
+ /**
* Method: calculateNewPx
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Pixel>} The the new px position of the popup on the screen
* relative to the passed-in px.
*/
calculateNewPx:function(px) {
var newPx = px.offset(this.anchor.offset);
-
+
//use contentSize if size is not already set
var size = this.size || this.contentSize;
var top = (this.relativePosition.charAt(0) == 't');
newPx.y += (top) ? -size.h : this.anchor.size.h;
-
+
var left = (this.relativePosition.charAt(1) == 'l');
newPx.x += (left) ? -size.w : this.anchor.size.w;
- return newPx;
+ return newPx;
},
CLASS_NAME: "OpenLayers.Popup.Anchored"
@@ -6903,9 +6903,9 @@
*/
/**
- * Class: OpenLayers.Renderer.Canvas
+ * Class: OpenLayers.Renderer.Canvas
* A renderer based on the 2D 'canvas' drawing element.element
- *
+ *
* Inherits:
* - <OpenLayers.Renderer>
*/
@@ -6915,14 +6915,14 @@
* Property: canvas
* {Canvas} The canvas context object.
*/
- canvas: null,
-
+ canvas: null,
+
/**
* Property: features
* {Object} Internal object of feature/style pairs for use in redrawing the layer.
*/
- features: null,
-
+ features: null,
+
/**
* Property: geometryMap
* {Object} Geometry -> Feature lookup table. Used by eraseGeometry to
@@ -6930,12 +6930,12 @@
* when erasing geoms.
*/
geometryMap: null,
-
+
/**
* Constructor: OpenLayers.Renderer.Canvas
*
* Parameters:
- * containerID - {<String>}
+ * containerID - {<String>}
*/
initialize: function(containerID) {
OpenLayers.Renderer.prototype.initialize.apply(this, arguments);
@@ -6945,13 +6945,13 @@
this.features = {};
this.geometryMap = {};
},
-
- /**
+
+ /**
* Method: eraseGeometry
* Erase a geometry from the renderer. Because the Canvas renderer has
* 'memory' of the features that it has drawn, we have to remove the
- * feature so it doesn't redraw.
- *
+ * feature so it doesn't redraw.
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
*/
@@ -6961,31 +6961,31 @@
/**
* APIMethod: supported
- *
+ *
* Returns:
* {Boolean} Whether or not the browser supports the renderer class
*/
supported: function() {
var canvas = document.createElement("canvas");
return !!canvas.getContext;
- },
-
+ },
+
/**
* Method: setExtent
* Set the visible part of the layer.
*
- * Resolution has probably changed, so we nullify the resolution
- * cache (this.resolution), then redraw.
+ * Resolution has probably changed, so we nullify the resolution
+ * cache (this.resolution), then redraw.
*
* Parameters:
- * extent - {<OpenLayers.Bounds>}
+ * extent - {<OpenLayers.Bounds>}
*/
setExtent: function(extent) {
this.extent = extent.clone();
this.resolution = null;
this.redraw();
},
-
+
/**
* Method: setSize
* Sets the size of the drawing surface.
@@ -6993,7 +6993,7 @@
* Once the size is updated, redraw the canvas.
*
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*/
setSize: function(size) {
this.size = size.clone();
@@ -7003,15 +7003,15 @@
this.root.height = size.h;
this.resolution = null;
},
-
+
/**
* Method: drawFeature
* Draw the feature. Stores the feature in the features list,
- * then redraws the layer.
+ * then redraws the layer.
*
* Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- * style - {<Object>}
+ * feature - {<OpenLayers.Feature.Vector>}
+ * style - {<Object>}
*/
drawFeature: function(feature, style) {
if(style == null) {
@@ -7023,23 +7023,23 @@
'strokeWidth': 2,
'fillOpacity': 1,
'strokeOpacity': 1
- }, style);
- this.features[feature.id] = [feature, style];
- if (feature.geometry) {
+ }, style);
+ this.features[feature.id] = [feature, style];
+ if (feature.geometry) {
this.geometryMap[feature.geometry.id] = feature.id;
- }
+ }
this.redraw();
},
- /**
+ /**
* Method: drawGeometry
* Used when looping (in redraw) over the features; draws
- * the canvas.
+ * the canvas.
*
* Parameters:
- * geometry - {<OpenLayers.Geometry>}
- * style - {Object}
+ * geometry - {<OpenLayers.Geometry>}
+ * style - {Object}
*/
drawGeometry: function(geometry, style) {
var className = geometry.CLASS_NAME;
@@ -7072,18 +7072,18 @@
/**
* Method: drawExternalGraphic
- * Called to draw External graphics.
- *
- * Parameters:
+ * Called to draw External graphics.
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawExternalGraphic: function(pt, style) {
var img = new Image();
img.src = style.externalGraphic;
-
+
if(style.graphicTitle) {
- img.title=style.graphicTitle;
+ img.title=style.graphicTitle;
}
var width = style.graphicWidth || style.graphicHeight;
@@ -7095,18 +7095,18 @@
var yOffset = (style.graphicYOffset != undefined) ?
style.graphicYOffset : -(0.5 * height);
var opacity = style.graphicOpacity || style.fillOpacity;
-
- var context = { img: img,
- x: (pt[0]+xOffset),
- y: (pt[1]+yOffset),
- width: width,
- height: height,
+
+ var context = { img: img,
+ x: (pt[0]+xOffset),
+ y: (pt[1]+yOffset),
+ width: width,
+ height: height,
canvas: this.canvas };
img.onload = OpenLayers.Function.bind( function() {
- this.canvas.drawImage(this.img, this.x,
+ this.canvas.drawImage(this.img, this.x,
this.y, this.width, this.height);
- }, context);
+ }, context);
},
/**
@@ -7118,10 +7118,10 @@
* style - {Object} Symbolizer hash
*/
setCanvasStyle: function(type, style) {
- if (type == "fill") {
+ if (type == "fill") {
this.canvas.globalAlpha = style['fillOpacity'];
this.canvas.fillStyle = style['fillColor'];
- } else if (type == "stroke") {
+ } else if (type == "stroke") {
this.canvas.globalAlpha = style['strokeOpacity'];
this.canvas.strokeStyle = style['strokeColor'];
this.canvas.lineWidth = style['strokeWidth'];
@@ -7134,15 +7134,15 @@
/**
* Method: drawPoint
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawPoint: function(geometry, style) {
if(style.graphic !== false) {
var pt = this.getLocalXY(geometry);
-
+
if (style.externalGraphic) {
this.drawExternalGraphic(pt, style);
} else {
@@ -7152,7 +7152,7 @@
this.canvas.arc(pt[0], pt[1], 6, 0, Math.PI*2, true);
this.canvas.fill();
}
-
+
if(style.stroke !== false) {
this.setCanvasStyle("stroke", style);
this.canvas.beginPath();
@@ -7167,11 +7167,11 @@
/**
* Method: drawLineString
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawLineString: function(geometry, style) {
if(style.stroke !== false) {
this.setCanvasStyle("stroke", style);
@@ -7185,16 +7185,16 @@
this.canvas.stroke();
}
this.setCanvasStyle("reset");
- },
-
+ },
+
/**
* Method: drawLinearRing
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawLinearRing: function(geometry, style) {
if(style.fill !== false) {
this.setCanvasStyle("fill", style);
@@ -7207,9 +7207,9 @@
}
this.canvas.fill();
}
-
+
if(style.stroke !== false) {
- var oldWidth = this.canvas.lineWidth;
+ var oldWidth = this.canvas.lineWidth;
this.setCanvasStyle("stroke", style);
this.canvas.beginPath();
var start = this.getLocalXY(geometry.components[0]);
@@ -7221,29 +7221,29 @@
this.canvas.stroke();
}
this.setCanvasStyle("reset");
- },
-
+ },
+
/**
* Method: drawPolygon
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawPolygon: function(geometry, style) {
this.drawLinearRing(geometry.components[0], style);
for (var i = 1; i < geometry.components.length; i++) {
this.drawLinearRing(geometry.components[i], {
- fillOpacity: 0,
- strokeWidth: 0,
- strokeOpacity: 0,
- strokeColor: '#000000',
+ fillOpacity: 0,
+ strokeWidth: 0,
+ strokeOpacity: 0,
+ strokeColor: '#000000',
fillColor: '#000000'}
- ); // inner rings are 'empty'
+ ); // inner rings are 'empty'
}
},
-
+
/**
* Method: drawText
* This method is only called by the renderer itself.
@@ -7258,7 +7258,7 @@
labelAlign: "cm"
}, style);
var pt = this.getLocalXY(location);
-
+
this.setCanvasStyle("reset");
this.canvas.fillStyle = style.fontColor;
this.canvas.globalAlpha = 1;
@@ -7287,7 +7287,7 @@
pt[0] -= len / 2;
}
this.canvas.translate(pt[0], pt[1]);
-
+
this.canvas.mozDrawText(style.label);
this.canvas.translate(-1*pt[0], -1*pt[1]);
}
@@ -7298,7 +7298,7 @@
* Method: getLocalXY
* transform geographic xy into pixel xy
*
- * Parameters:
+ * Parameters:
* point - {<OpenLayers.Geometry.Point>}
*/
getLocalXY: function(point) {
@@ -7308,22 +7308,22 @@
var y = ((extent.top / resolution) - point.y / resolution);
return [x, y];
},
-
+
/**
* Method: clear
* Clear all vectors from the renderer.
* virtual function.
- */
+ */
clear: function() {
this.canvas.clearRect(0, 0, this.root.width, this.root.height);
},
/**
* Method: getFeatureIdFromEvent
- * Returns a feature id from an event on the renderer.
- *
+ * Returns a feature id from an event on the renderer.
+ *
* Parameters:
- * evt - {<OpenLayers.Event>}
+ * evt - {<OpenLayers.Event>}
*
* Returns:
* {String} A feature id or null.
@@ -7331,9 +7331,9 @@
getFeatureIdFromEvent: function(evt) {
var loc = this.map.getLonLatFromPixel(evt.xy);
var resolution = this.getResolution();
- var bounds = new OpenLayers.Bounds(loc.lon - resolution * 5,
- loc.lat - resolution * 5,
- loc.lon + resolution * 5,
+ var bounds = new OpenLayers.Bounds(loc.lon - resolution * 5,
+ loc.lat - resolution * 5,
+ loc.lon + resolution * 5,
loc.lat + resolution * 5);
var geom = bounds.toGeometry();
for (var feat in this.features) {
@@ -7341,17 +7341,17 @@
if (this.features[feat][0].geometry.intersects(geom)) {
return feat;
}
- }
+ }
return null;
},
-
+
/**
- * Method: eraseFeatures
+ * Method: eraseFeatures
* This is called by the layer to erase features; removes the feature from
* the list, then redraws the layer.
- *
+ *
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
*/
eraseFeatures: function(features) {
if(!(features instanceof Array)) {
@@ -7391,7 +7391,7 @@
item = labelMap[i];
this.drawText(item[0].geometry.getCentroid(), item[1]);
}
- }
+ }
},
CLASS_NAME: "OpenLayers.Renderer.Canvas"
@@ -7420,33 +7420,33 @@
/**
* Class: OpenLayers.ElementsIndexer
* This class takes care of figuring out which order elements should be
- * placed in the DOM based on given indexing methods.
+ * placed in the DOM based on given indexing methods.
*/
OpenLayers.ElementsIndexer = OpenLayers.Class({
-
+
/**
* Property: maxZIndex
* {Integer} This is the largest-most z-index value for a node
* contained within the indexer.
*/
maxZIndex: null,
-
+
/**
* Property: order
* {Array<String>} This is an array of node id's stored in the
* order that they should show up on screen. Id's higher up in the
* array (higher array index) represent nodes with higher z-indeces.
*/
- order: null,
-
+ order: null,
+
/**
* Property: indices
* {Object} This is a hash that maps node ids to their z-index value
- * stored in the indexer. This is done to make finding a nodes z-index
+ * stored in the indexer. This is done to make finding a nodes z-index
* value O(1).
*/
indices: null,
-
+
/**
* Property: compare
* {Function} This is the function used to determine placement of
@@ -7454,34 +7454,34 @@
* the Z_ORDER_DRAWING_ORDER comparison method.
*/
compare: null,
-
+
/**
* APIMethod: initialize
- * Create a new indexer with
- *
+ * Create a new indexer with
+ *
* Parameters:
* yOrdering - {Boolean} Whether to use y-ordering.
*/
initialize: function(yOrdering) {
- this.compare = yOrdering ?
+ this.compare = yOrdering ?
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER :
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER;
-
+
this.order = [];
this.indices = {};
this.maxZIndex = 0;
},
-
+
/**
* APIMethod: insert
- * Insert a new node into the indexer. In order to find the correct
- * positioning for the node to be inserted, this method uses a binary
- * search. This makes inserting O(log(n)).
- *
+ * Insert a new node into the indexer. In order to find the correct
+ * positioning for the node to be inserted, this method uses a binary
+ * search. This makes inserting O(log(n)).
+ *
* Parameters:
* newNode - {DOMElement} The new node to be inserted.
- *
+ *
* Returns
* {DOMElement} the node before which we should insert our newNode, or
* null if newNode can just be appended.
@@ -7492,40 +7492,40 @@
if (this.exists(newNode)) {
this.remove(newNode);
}
-
+
var nodeId = newNode.id;
-
- this.determineZIndex(newNode);
+ this.determineZIndex(newNode);
+
var leftIndex = -1;
var rightIndex = this.order.length;
var middle;
while (rightIndex - leftIndex > 1) {
middle = parseInt((leftIndex + rightIndex) / 2);
-
+
var placement = this.compare(this, newNode,
OpenLayers.Util.getElement(this.order[middle]));
-
+
if (placement > 0) {
leftIndex = middle;
} else {
rightIndex = middle;
- }
+ }
}
-
+
this.order.splice(rightIndex, 0, nodeId);
this.indices[nodeId] = this.getZIndex(newNode);
-
+
// If the new node should be before another in the index
// order, return the node before which we have to insert the new one;
// else, return null to indicate that the new node can be appended.
- return this.getNextElement(rightIndex);
+ return this.getNextElement(rightIndex);
},
-
+
/**
* APIMethod: remove
- *
+ *
* Parameters:
* node - {DOMElement} The node to be removed.
*/
@@ -7537,8 +7537,8 @@
// from the indeces hash.
this.order.splice(arrayIndex, 1);
delete this.indices[nodeId];
-
- // Reset the maxium z-index based on the last item in the
+
+ // Reset the maxium z-index based on the last item in the
// order array.
if (this.order.length > 0) {
var lastId = this.order[this.order.length - 1];
@@ -7548,7 +7548,7 @@
}
}
},
-
+
/**
* APIMethod: clear
*/
@@ -7557,7 +7557,7 @@
this.indices = {};
this.maxZIndex = 0;
},
-
+
/**
* APIMethod: exists
*
@@ -7574,29 +7574,29 @@
/**
* APIMethod: getZIndex
* Get the z-index value for the current node from the node data itself.
- *
+ *
* Parameters:
* node - {DOMElement} The node whose z-index to get.
- *
+ *
* Returns:
- * {Integer} The z-index value for the specified node (from the node
+ * {Integer} The z-index value for the specified node (from the node
* data itself).
*/
getZIndex: function(node) {
- return node._style.graphicZIndex;
+ return node._style.graphicZIndex;
},
-
+
/**
* Method: determineZIndex
- * Determine the z-index for the current node if there isn't one,
+ * Determine the z-index for the current node if there isn't one,
* and set the maximum value if we've found a new maximum.
- *
+ *
* Parameters:
- * node - {DOMElement}
+ * node - {DOMElement}
*/
determineZIndex: function(node) {
var zIndex = node._style.graphicZIndex;
-
+
// Everything must have a zIndex. If none is specified,
// this means the user *must* (hint: assumption) want this
// node to succomb to drawing order. To enforce drawing order
@@ -7604,59 +7604,59 @@
// greater than any currently in the indexer.
if (zIndex == null) {
zIndex = this.maxZIndex;
- node._style.graphicZIndex = zIndex;
+ node._style.graphicZIndex = zIndex;
} else if (zIndex > this.maxZIndex) {
this.maxZIndex = zIndex;
}
},
-
+
/**
* APIMethod: getNextElement
* Get the next element in the order stack.
- *
+ *
* Parameters:
* index - {Integer} The index of the current node in this.order.
- *
+ *
* Returns:
* {DOMElement} the node following the index passed in, or
* null.
*/
getNextElement: function(index) {
- var nextIndex = index + 1;
+ var nextIndex = index + 1;
if (nextIndex < this.order.length){
- var nextElement = OpenLayers.Util.getElement(this.order[nextIndex]);
- if (nextElement == undefined){
- nextElement = this.getNextElement(nextIndex);
- }
- return nextElement;
- } else {
- return null;
- }
- },
-
+ var nextElement = OpenLayers.Util.getElement(this.order[nextIndex]);
+ if (nextElement == undefined){
+ nextElement = this.getNextElement(nextIndex);
+ }
+ return nextElement;
+ } else {
+ return null;
+ }
+ },
+
CLASS_NAME: "OpenLayers.ElementsIndexer"
});
/**
* Namespace: OpenLayers.ElementsIndexer.IndexingMethods
- * These are the compare methods for figuring out where a new node should be
- * placed within the indexer. These methods are very similar to general
- * sorting methods in that they return -1, 0, and 1 to specify the
+ * These are the compare methods for figuring out where a new node should be
+ * placed within the indexer. These methods are very similar to general
+ * sorting methods in that they return -1, 0, and 1 to specify the
* direction in which new nodes fall in the ordering.
*/
OpenLayers.ElementsIndexer.IndexingMethods = {
-
+
/**
* Method: Z_ORDER
* This compare method is used by other comparison methods.
* It can be used individually for ordering, but is not recommended,
* because it doesn't subscribe to drawing order.
- *
+ *
* Parameters:
* indexer - {<OpenLayers.ElementsIndexer>}
* newNode - {DOMElement}
* nextNode - {DOMElement}
- *
+ *
* Returns:
* {Integer}
*/
@@ -7666,93 +7666,93 @@
var returnVal = 0;
if (nextNode) {
var nextZIndex = indexer.getZIndex(nextNode);
- returnVal = newZIndex - nextZIndex;
+ returnVal = newZIndex - nextZIndex;
}
-
+
return returnVal;
},
/**
* APIMethod: Z_ORDER_DRAWING_ORDER
* This method orders nodes by their z-index, but does so in a way
- * that, if there are other nodes with the same z-index, the newest
- * drawn will be the front most within that z-index. This is the
+ * that, if there are other nodes with the same z-index, the newest
+ * drawn will be the front most within that z-index. This is the
* default indexing method.
- *
+ *
* Parameters:
* indexer - {<OpenLayers.ElementsIndexer>}
* newNode - {DOMElement}
* nextNode - {DOMElement}
- *
+ *
* Returns:
* {Integer}
*/
Z_ORDER_DRAWING_ORDER: function(indexer, newNode, nextNode) {
var returnVal = OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(
- indexer,
- newNode,
+ indexer,
+ newNode,
nextNode
);
-
+
// Make Z_ORDER subscribe to drawing order by pushing it above
// all of the other nodes with the same z-index.
if (nextNode && returnVal == 0) {
returnVal = 1;
}
-
+
return returnVal;
},
/**
* APIMethod: Z_ORDER_Y_ORDER
* This one should really be called Z_ORDER_Y_ORDER_DRAWING_ORDER, as it
- * best describes which ordering methods have precedence (though, the
- * name would be too long). This method orders nodes by their z-index,
- * but does so in a way that, if there are other nodes with the same
- * z-index, the nodes with the lower y position will be "closer" than
- * those with a higher y position. If two nodes have the exact same y
- * position, however, then this method will revert to using drawing
+ * best describes which ordering methods have precedence (though, the
+ * name would be too long). This method orders nodes by their z-index,
+ * but does so in a way that, if there are other nodes with the same
+ * z-index, the nodes with the lower y position will be "closer" than
+ * those with a higher y position. If two nodes have the exact same y
+ * position, however, then this method will revert to using drawing
* order to decide placement.
- *
+ *
* Parameters:
* indexer - {<OpenLayers.ElementsIndexer>}
* newNode - {DOMElement}
* nextNode - {DOMElement}
- *
+ *
* Returns:
* {Integer}
*/
Z_ORDER_Y_ORDER: function(indexer, newNode, nextNode) {
var returnVal = OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(
- indexer,
- newNode,
+ indexer,
+ newNode,
nextNode
);
-
+
if (nextNode && returnVal == 0) {
var newLat = newNode._geometry.getBounds().bottom;
var nextLat = nextNode._geometry.getBounds().bottom;
-
+
var result = nextLat - newLat;
returnVal = (result ==0) ? 1 : result;
}
-
- return returnVal;
+
+ return returnVal;
}
};
/**
* Class: OpenLayers.Renderer.Elements
- * This is another virtual class in that it should never be instantiated by
- * itself as a Renderer. It exists because there is *tons* of shared
+ * This is another virtual class in that it should never be instantiated by
+ * itself as a Renderer. It exists because there is *tons* of shared
* functionality between different vector libraries which use nodes/elements
- * as a base for rendering vectors.
- *
- * The highlevel bits of code that are implemented here are the adding and
- * removing of geometries, which is essentially the same for any
+ * as a base for rendering vectors.
+ *
+ * The highlevel bits of code that are implemented here are the adding and
+ * removing of geometries, which is essentially the same for any
* element-based renderer. The details of creating each node and drawing the
- * paths are of course different, but the machinery is the same.
- *
+ * paths are of course different, but the machinery is the same.
+ *
* Inherits:
* - <OpenLayers.Renderer>
*/
@@ -7763,13 +7763,13 @@
* {DOMElement}
*/
rendererRoot: null,
-
+
/**
* Property: root
* {DOMElement}
*/
root: null,
-
+
/**
* Property: vectorRoot
* {DOMElement}
@@ -7785,29 +7785,29 @@
/**
* Property: xmlns
* {String}
- */
+ */
xmlns: null,
-
+
/**
* Property: Indexer
- * {<OpenLayers.ElementIndexer>} An instance of OpenLayers.ElementsIndexer
+ * {<OpenLayers.ElementIndexer>} An instance of OpenLayers.ElementsIndexer
* created upon initialization if the zIndexing or yOrdering options
* passed to this renderer's constructor are set to true.
*/
- indexer: null,
-
+ indexer: null,
+
/**
* Constant: BACKGROUND_ID_SUFFIX
* {String}
*/
BACKGROUND_ID_SUFFIX: "_background",
-
+
/**
* Constant: BACKGROUND_ID_SUFFIX
* {String}
*/
LABEL_ID_SUFFIX: "_label",
-
+
/**
* Property: minimumSymbolizer
* {Object}
@@ -7819,10 +7819,10 @@
fillOpacity: 1,
pointRadius: 0
},
-
+
/**
* Constructor: OpenLayers.Renderer.Elements
- *
+ *
* Parameters:
* containerID - {String}
* options - {Object} options for this renderer. Supported options are:
@@ -7837,24 +7837,24 @@
this.root = this.createRoot("_root");
this.vectorRoot = this.createRoot("_vroot");
this.textRoot = this.createRoot("_troot");
-
+
this.root.appendChild(this.vectorRoot);
this.root.appendChild(this.textRoot);
-
+
this.rendererRoot.appendChild(this.root);
this.container.appendChild(this.rendererRoot);
-
+
if(options && (options.zIndexing || options.yOrdering)) {
this.indexer = new OpenLayers.ElementsIndexer(options.yOrdering);
}
},
-
+
/**
* Method: destroy
*/
destroy: function() {
- this.clear();
+ this.clear();
this.rendererRoot = null;
this.root = null;
@@ -7862,11 +7862,11 @@
OpenLayers.Renderer.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: clear
* Remove all the elements from the root
- */
+ */
clear: function() {
if (this.vectorRoot) {
while (this.vectorRoot.childNodes.length > 0) {
@@ -7883,26 +7883,26 @@
}
},
- /**
+ /**
* Method: getNodeType
* This function is in charge of asking the specific renderer which type
* of node to create for the given geometry and style. All geometries
* in an Elements-based renderer consist of one node and some
* attributes. We have the nodeFactory() function which creates a node
* for us, but it takes a 'type' as input, and that is precisely what
- * this function tells us.
- *
+ * this function tells us.
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- *
+ *
* Returns:
* {String} The corresponding node type for the specified geometry
*/
getNodeType: function(geometry, style) { },
- /**
- * Method: drawGeometry
+ /**
+ * Method: drawGeometry
* Draw the geometry, creating new nodes, setting paths, setting style,
* setting featureId on the node. This method should only be called
* by the renderer itself.
@@ -7911,7 +7911,7 @@
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
* featureId - {String}
- *
+ *
* Returns:
* {Boolean} true if the geometry has been drawn completely; null if
* incomplete; false otherwise
@@ -7951,16 +7951,16 @@
}
return rendered;
},
-
+
/**
* Method: redrawNode
- *
+ *
* Parameters:
* id - {String}
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
* featureId - {String}
- *
+ *
* Returns:
* {Boolean} true if the complete geometry could be drawn, null if parts of
* the geometry could not be drawn, false otherwise
@@ -7968,7 +7968,7 @@
redrawNode: function(id, geometry, style, featureId) {
// Get the node if it's already on the map.
var node = this.nodeFactory(id, this.getNodeType(geometry, style));
-
+
// Set the data for the node, then draw it.
node._featureId = featureId;
node._geometry = geometry;
@@ -7979,9 +7979,9 @@
if(drawResult === false) {
return false;
}
-
+
node = drawResult.node;
-
+
// Insert the node into the indexer so it can show us where to
// place it. Note that this operation is O(log(n)). If there's a
// performance problem (when dragging, for instance) this is
@@ -7996,39 +7996,39 @@
} else {
// if there's no indexer, simply append the node to root,
// but only if the node is a new one
- if (node.parentNode !== this.vectorRoot){
+ if (node.parentNode !== this.vectorRoot){
this.vectorRoot.appendChild(node);
}
}
-
+
this.postDraw(node);
-
+
return drawResult.complete;
},
-
+
/**
* Method: redrawBackgroundNode
* Redraws the node using special 'background' style properties. Basically
- * just calls redrawNode(), but instead of directly using the
- * 'externalGraphic', 'graphicXOffset', 'graphicYOffset', and
- * 'graphicZIndex' properties directly from the specified 'style'
- * parameter, we create a new style object and set those properties
- * from the corresponding 'background'-prefixed properties from
+ * just calls redrawNode(), but instead of directly using the
+ * 'externalGraphic', 'graphicXOffset', 'graphicYOffset', and
+ * 'graphicZIndex' properties directly from the specified 'style'
+ * parameter, we create a new style object and set those properties
+ * from the corresponding 'background'-prefixed properties from
* specified 'style' parameter.
- *
+ *
* Parameters:
* id - {String}
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
* featureId - {String}
- *
+ *
* Returns:
* {Boolean} true if the complete geometry could be drawn, null if parts of
* the geometry could not be drawn, false otherwise
*/
redrawBackgroundNode: function(id, geometry, style, featureId) {
var backgroundStyle = OpenLayers.Util.extend({}, style);
-
+
// Set regular style attributes to apply to the background styles.
backgroundStyle.externalGraphic = backgroundStyle.backgroundGraphic;
backgroundStyle.graphicXOffset = backgroundStyle.backgroundXOffset;
@@ -8036,17 +8036,17 @@
backgroundStyle.graphicZIndex = backgroundStyle.backgroundGraphicZIndex;
backgroundStyle.graphicWidth = backgroundStyle.backgroundWidth || backgroundStyle.graphicWidth;
backgroundStyle.graphicHeight = backgroundStyle.backgroundHeight || backgroundStyle.graphicHeight;
-
+
// Erase background styles.
backgroundStyle.backgroundGraphic = null;
backgroundStyle.backgroundXOffset = null;
backgroundStyle.backgroundYOffset = null;
backgroundStyle.backgroundGraphicZIndex = null;
-
+
return this.redrawNode(
- id + this.BACKGROUND_ID_SUFFIX,
- geometry,
- backgroundStyle,
+ id + this.BACKGROUND_ID_SUFFIX,
+ geometry,
+ backgroundStyle,
null
);
},
@@ -8061,7 +8061,7 @@
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- *
+ *
* Returns:
* {Object} a hash with properties "node" (the drawn node) and "complete"
* (null if parts of the geometry could not be drawn, false if nothing
@@ -8108,8 +8108,8 @@
break;
}
- node._style = style;
- node._options = options;
+ node._style = style;
+ node._options = options;
//set style
//TBD simplify this
@@ -8122,129 +8122,129 @@
return false;
}
},
-
+
/**
* Method: postDraw
* Things that have do be done after the geometry node is appended
* to its parent node. To be overridden by subclasses.
- *
+ *
* Parameters:
* node - {DOMElement}
*/
postDraw: function(node) {},
-
+
/**
* Method: drawPoint
- * Virtual function for drawing Point Geometry.
+ * Virtual function for drawing Point Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the point
- */
+ */
drawPoint: function(node, geometry) {},
/**
* Method: drawLineString
- * Virtual function for drawing LineString Geometry.
+ * Virtual function for drawing LineString Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components of
* the linestring, or false if nothing could be drawn
- */
+ */
drawLineString: function(node, geometry) {},
/**
* Method: drawLinearRing
- * Virtual function for drawing LinearRing Geometry.
+ * Virtual function for drawing LinearRing Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the linear ring, or false if nothing could be drawn
- */
+ */
drawLinearRing: function(node, geometry) {},
/**
* Method: drawPolygon
- * Virtual function for drawing Polygon Geometry.
+ * Virtual function for drawing Polygon Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the polygon, or false if nothing could be drawn
- */
+ */
drawPolygon: function(node, geometry) {},
/**
* Method: drawRectangle
- * Virtual function for drawing Rectangle Geometry.
+ * Virtual function for drawing Rectangle Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the rectangle
- */
+ */
drawRectangle: function(node, geometry) {},
/**
* Method: drawCircle
- * Virtual function for drawing Circle Geometry.
+ * Virtual function for drawing Circle Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the circle
- */
+ */
drawCircle: function(node, geometry) {},
/**
* Method: drawSurface
- * Virtual function for drawing Surface Geometry.
+ * Virtual function for drawing Surface Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the surface
- */
+ */
drawSurface: function(node, geometry) {},
/**
* Method: removeText
* Removes a label
- *
+ *
* Parameters:
* featureId - {String}
*/
@@ -8257,12 +8257,12 @@
/**
* Method: getFeatureIdFromEvent
- *
+ *
* Parameters:
* evt - {Object} An <OpenLayers.Event> object
*
* Returns:
- * {<OpenLayers.Geometry>} A geometry from an event that
+ * {<OpenLayers.Geometry>} A geometry from an event that
* happened on a layer.
*/
getFeatureIdFromEvent: function(evt) {
@@ -8273,13 +8273,13 @@
return featureId;
},
- /**
+ /**
* Method: eraseGeometry
- * Erase a geometry from the renderer. In the case of a multi-geometry,
- * we cycle through and recurse on ourselves. Otherwise, we look for a
+ * Erase a geometry from the renderer. In the case of a multi-geometry,
+ * we cycle through and recurse on ourselves. Otherwise, we look for a
* node with the geometry.id, destroy its geometry, and remove it from
* the DOM.
- *
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
*/
@@ -8291,7 +8291,7 @@
for (var i=0, len=geometry.components.length; i<len; i++) {
this.eraseGeometry(geometry.components[i]);
}
- } else {
+ } else {
var element = OpenLayers.Util.getElement(geometry.id);
if (element && element.parentNode) {
if (element.geometry) {
@@ -8303,7 +8303,7 @@
if (this.indexer) {
this.indexer.remove(element);
}
-
+
if (element._style.backgroundGraphic) {
var backgroundId = geometry.id + this.BACKGROUND_ID_SUFFIX;
var bElem = OpenLayers.Util.getElement(backgroundId);
@@ -8317,17 +8317,17 @@
}
},
- /**
+ /**
* Method: nodeFactory
* Create new node of the specified type, with the (optional) specified id.
- *
+ *
* If node already exists with same ID and a different type, we remove it
* and then call ourselves again to recreate it.
- *
+ *
* Parameters:
* id - {String}
* type - {String} type Kind of node to draw.
- *
+ *
* Returns:
* {DOMElement} A new node of the given type and id.
*/
@@ -8343,27 +8343,27 @@
}
return node;
},
-
- /**
+
+ /**
* Method: nodeTypeCompare
- *
+ *
* Parameters:
* node - {DOMElement}
* type - {String} Kind of node
- *
+ *
* Returns:
* {Boolean} Whether or not the specified node is of the specified type
* This function must be overridden by subclasses.
*/
nodeTypeCompare: function(node, type) {},
-
- /**
+
+ /**
* Method: createNode
- *
+ *
* Parameters:
* type - {String} Kind of node to draw.
* id - {String} Id for node.
- *
+ *
* Returns:
* {DOMElement} A new node of the given type and id.
* This function must be overridden by subclasses.
@@ -8373,7 +8373,7 @@
/**
* Method: moveRoot
* moves this renderer's root to a different renderer.
- *
+ *
* Parameters:
* renderer - {<OpenLayers.Renderer>} target renderer for the moved root
*/
@@ -8385,27 +8385,27 @@
root.parentNode.removeChild(root);
renderer.rendererRoot.appendChild(root);
},
-
+
/**
* Method: getRenderLayerId
* Gets the layer that this renderer's output appears on. If moveRoot was
* used, this will be different from the id of the layer containing the
* features rendered by this renderer.
- *
+ *
* Returns:
* {String} the id of the output layer.
*/
getRenderLayerId: function() {
return this.root.parentNode.parentNode.id;
},
-
+
/**
* Method: isComplexSymbol
* Determines if a symbol cannot be rendered using drawCircle
- *
+ *
* Parameters:
* graphicName - {String}
- *
+ *
* Returns
* {Boolean} true if the symbol is complex, false if not
*/
@@ -8450,7 +8450,7 @@
* - <OpenLayers.Strategy>
*/
OpenLayers.Strategy.Fixed = OpenLayers.Class(OpenLayers.Strategy, {
-
+
/**
* APIProperty: preload
* {Boolean} Load data before layer made visible. Enabling this may result
@@ -8505,11 +8505,11 @@
}
return false;
},
-
+
/**
* Method: deactivate
* Deactivate the strategy. Undo what is done in <activate>.
- *
+ *
* Returns:
* {Boolean} The strategy was successfully deactivated.
*/
@@ -8586,38 +8586,38 @@
* Namespace: OpenLayers.Tween
*/
OpenLayers.Tween = OpenLayers.Class({
-
+
/**
* Constant: INTERVAL
* {int} Interval in milliseconds between 2 steps
*/
INTERVAL: 10,
-
+
/**
* APIProperty: easing
* {<OpenLayers.Easing>(Function)} Easing equation used for the animation
* Defaultly set to OpenLayers.Easing.Expo.easeOut
*/
easing: null,
-
+
/**
* APIProperty: begin
* {Object} Values to start the animation with
*/
begin: null,
-
+
/**
* APIProperty: finish
* {Object} Values to finish the animation with
*/
finish: null,
-
+
/**
* APIProperty: duration
* {int} duration of the tween (number of steps)
*/
duration: null,
-
+
/**
* APIProperty: callbacks
* {Object} An object with start, eachStep and done properties whose values
@@ -8625,40 +8625,40 @@
* current computed value as argument.
*/
callbacks: null,
-
+
/**
* Property: time
* {int} Step counter
*/
time: null,
-
+
/**
* Property: interval
* {int} Interval id returned by window.setInterval
*/
interval: null,
-
+
/**
* Property: playing
* {Boolean} Tells if the easing is currently playing
*/
playing: false,
-
- /**
+
+ /**
* Constructor: OpenLayers.Tween
* Creates a Tween.
*
* Parameters:
* easing - {<OpenLayers.Easing>(Function)} easing function method to use
- */
+ */
initialize: function(easing) {
this.easing = (easing) ? easing : OpenLayers.Easing.Expo.easeOut;
},
-
+
/**
* APIMethod: start
* Plays the Tween, and calls the callback method on each step
- *
+ *
* Parameters:
* begin - {Object} values to start the animation with
* finish - {Object} values to finish the animation with
@@ -8682,7 +8682,7 @@
this.interval = window.setInterval(
OpenLayers.Function.bind(this.play, this), this.INTERVAL);
},
-
+
/**
* APIMethod: stop
* Stops the Tween, and calls the done callback
@@ -8692,7 +8692,7 @@
if (!this.playing) {
return;
}
-
+
if (this.callbacks && this.callbacks.done) {
this.callbacks.done.call(this, this.finish);
}
@@ -8700,7 +8700,7 @@
this.interval = null;
this.playing = false;
},
-
+
/**
* Method: play
* Calls the appropriate easing method
@@ -8713,16 +8713,16 @@
if (b == null || f == null || isNaN(b) || isNaN(f)) {
OpenLayers.Console.error('invalid value for Tween');
}
-
+
var c = f - b;
value[i] = this.easing.apply(this, [this.time, b, c, this.duration]);
}
this.time++;
-
+
if (this.callbacks && this.callbacks.eachStep) {
this.callbacks.eachStep.call(this, value);
}
-
+
if (this.time > this.duration) {
if (this.callbacks && this.callbacks.done) {
this.callbacks.done.call(this, this.finish);
@@ -8732,7 +8732,7 @@
this.interval = null;
}
},
-
+
/**
* Create empty functions for all easing methods.
*/
@@ -8741,7 +8741,7 @@
/**
* Namespace: OpenLayers.Easing
- *
+ *
* Credits:
* Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>
*/
@@ -8756,10 +8756,10 @@
* Namespace: OpenLayers.Easing.Linear
*/
OpenLayers.Easing.Linear = {
-
+
/**
* Function: easeIn
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8769,10 +8769,10 @@
easeIn: function(t, b, c, d) {
return c*t/d + b;
},
-
+
/**
* Function: easeOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8782,10 +8782,10 @@
easeOut: function(t, b, c, d) {
return c*t/d + b;
},
-
+
/**
* Function: easeInOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8803,10 +8803,10 @@
* Namespace: OpenLayers.Easing.Expo
*/
OpenLayers.Easing.Expo = {
-
+
/**
* Function: easeIn
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8816,10 +8816,10 @@
easeIn: function(t, b, c, d) {
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
},
-
+
/**
* Function: easeOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8829,10 +8829,10 @@
easeOut: function(t, b, c, d) {
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
},
-
+
/**
* Function: easeInOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8853,10 +8853,10 @@
* Namespace: OpenLayers.Easing.Quad
*/
OpenLayers.Easing.Quad = {
-
+
/**
* Function: easeIn
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8866,10 +8866,10 @@
easeIn: function(t, b, c, d) {
return c*(t/=d)*t + b;
},
-
+
/**
* Function: easeOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8879,10 +8879,10 @@
easeOut: function(t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
},
-
+
/**
* Function: easeInOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8911,11 +8911,11 @@
/**
* Class: OpenLayers.Control.ArgParser
- * The ArgParser control adds location bar querystring parsing functionality
+ * The ArgParser control adds location bar querystring parsing functionality
* to an OpenLayers Map.
- * When added to a Map control, on a page load/refresh, the Map will
- * automatically take the href string and parse it for lon, lat, zoom, and
- * layers information.
+ * When added to a Map control, on a page load/refresh, the Map will
+ * automatically take the href string and parse it for lon, lat, zoom, and
+ * layers information.
*
* Inherits from:
* - <OpenLayers.Control>
@@ -8927,7 +8927,7 @@
* {<OpenLayers.LonLat>}
*/
center: null,
-
+
/**
* Parameter: zoom
* {int}
@@ -8935,14 +8935,14 @@
zoom: null,
/**
- * Parameter: layers
+ * Parameter: layers
* {Array(<OpenLayers.Layer>)}
*/
layers: null,
-
- /**
+
+ /**
* APIProperty: displayProjection
- * {<OpenLayers.Projection>} Requires proj4js support.
+ * {<OpenLayers.Projection>} Requires proj4js support.
* Projection used when reading the coordinates from the URL. This will
*
* reproject the map coordinates from the URL into the map's
@@ -8951,9 +8951,9 @@
* If you are using this functionality, be aware that any permalink
* which is added to the map will determine the coordinate type which
* is read from the URL, which means you should not add permalinks with
- * different displayProjections to the same map.
+ * different displayProjections to the same map.
*/
- displayProjection: null,
+ displayProjection: null,
/**
* Constructor: OpenLayers.Control.ArgParser
@@ -8967,10 +8967,10 @@
/**
* Method: setMap
- * Set the map property for the control.
- *
+ * Set the map property for the control.
+ *
* Parameters:
- * map - {<OpenLayers.Map>}
+ * map - {<OpenLayers.Map>}
*/
setMap: function(map) {
OpenLayers.Control.prototype.setMap.apply(this, arguments);
@@ -8980,14 +8980,14 @@
var control = this.map.controls[i];
if ( (control != this) &&
(control.CLASS_NAME == "OpenLayers.Control.ArgParser") ) {
-
- // If a second argparser is added to the map, then we
+
+ // If a second argparser is added to the map, then we
// override the displayProjection to be the one added to the
- // map.
+ // map.
if (control.displayProjection != this.displayProjection) {
this.displayProjection = control.displayProjection;
- }
-
+ }
+
break;
}
}
@@ -8997,9 +8997,9 @@
// Be careful to set layer first, to not trigger unnecessary layer loads
if (args.layers) {
this.layers = args.layers;
-
- // when we add a new layer, set its visibility
- this.map.events.register('addlayer', this,
+
+ // when we add a new layer, set its visibility
+ this.map.events.register('addlayer', this,
this.configureLayers);
this.configureLayers();
}
@@ -9009,51 +9009,51 @@
if (args.zoom) {
this.zoom = parseInt(args.zoom);
}
-
+
// when we add a new baselayer to see when we can set the center
- this.map.events.register('changebaselayer', this,
+ this.map.events.register('changebaselayer', this,
this.setCenter);
this.setCenter();
}
}
},
-
- /**
+
+ /**
* Method: setCenter
* As soon as a baseLayer has been loaded, we center and zoom
* ...and remove the handler.
*/
setCenter: function() {
-
+
if (this.map.baseLayer) {
//dont need to listen for this one anymore
- this.map.events.unregister('changebaselayer', this,
+ this.map.events.unregister('changebaselayer', this,
this.setCenter);
-
+
if (this.displayProjection) {
- this.center.transform(this.displayProjection,
- this.map.getProjectionObject());
- }
+ this.center.transform(this.displayProjection,
+ this.map.getProjectionObject());
+ }
this.map.setCenter(this.center, this.zoom);
}
},
- /**
+ /**
* Method: configureLayers
- * As soon as all the layers are loaded, cycle through them and
- * hide or show them.
+ * As soon as all the layers are loaded, cycle through them and
+ * hide or show them.
*/
configureLayers: function() {
- if (this.layers.length == this.map.layers.length) {
+ if (this.layers.length == this.map.layers.length) {
this.map.events.unregister('addlayer', this, this.configureLayers);
for(var i=0, len=this.layers.length; i<len; i++) {
-
+
var layer = this.map.layers[i];
var c = this.layers.charAt(i);
-
+
if (c == "B") {
this.map.setBaseLayer(layer);
} else if ( (c == "T") || (c == "F") ) {
@@ -9061,7 +9061,7 @@
}
}
}
- },
+ },
CLASS_NAME: "OpenLayers.Control.ArgParser"
});
@@ -9089,38 +9089,38 @@
*/
OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
- /**
+ /**
* APIProperty: slideFactor
- * {Integer} Number of pixels by which we'll pan the map in any direction
+ * {Integer} Number of pixels by which we'll pan the map in any direction
* on clicking the arrow buttons. If you want to pan by some ratio
* of the map dimensions, use <slideRatio> instead.
*/
slideFactor: 50,
- /**
+ /**
* APIProperty: slideRatio
- * {Number} The fraction of map width/height by which we'll pan the map
+ * {Number} The fraction of map width/height by which we'll pan the map
* on clicking the arrow buttons. Default is null. If set, will
* override <slideFactor>. E.g. if slideRatio is .5, then the Pan Up
- * button will pan up half the map height.
+ * button will pan up half the map height.
*/
slideRatio: null,
- /**
+ /**
* Property: buttons
- * {Array(DOMElement)} Array of Button Divs
+ * {Array(DOMElement)} Array of Button Divs
*/
buttons: null,
- /**
+ /**
* Property: position
- * {<OpenLayers.Pixel>}
+ * {<OpenLayers.Pixel>}
*/
position: null,
/**
* Constructor: OpenLayers.Control.PanZoom
- *
+ *
* Parameters:
* options - {Object}
*/
@@ -9144,8 +9144,8 @@
* Method: draw
*
* Parameters:
- * px - {<OpenLayers.Pixel>}
- *
+ * px - {<OpenLayers.Pixel>}
+ *
* Returns:
* {DOMElement} A reference to the container div for the PanZoom control.
*/
@@ -9164,26 +9164,26 @@
px.y = centered.y+sz.h;
this._addButton("panleft", "west-mini.png", px, sz);
this._addButton("panright", "east-mini.png", px.add(sz.w, 0), sz);
- this._addButton("pandown", "south-mini.png",
+ this._addButton("pandown", "south-mini.png",
centered.add(0, sz.h*2), sz);
- this._addButton("zoomin", "zoom-plus-mini.png",
+ this._addButton("zoomin", "zoom-plus-mini.png",
centered.add(0, sz.h*3+5), sz);
- this._addButton("zoomworld", "zoom-world-mini.png",
+ this._addButton("zoomworld", "zoom-world-mini.png",
centered.add(0, sz.h*4+5), sz);
- this._addButton("zoomout", "zoom-minus-mini.png",
+ this._addButton("zoomout", "zoom-minus-mini.png",
centered.add(0, sz.h*5+5), sz);
return this.div;
},
-
+
/**
* Method: _addButton
- *
+ *
* Parameters:
- * id - {String}
- * img - {String}
- * xy - {<OpenLayers.Pixel>}
- * sz - {<OpenLayers.Size>}
- *
+ * id - {String}
+ * img - {String}
+ * xy - {<OpenLayers.Pixel>}
+ * sz - {<OpenLayers.Size>}
+ *
* Returns:
* {DOMElement} A Div (an alphaImageDiv, to be precise) that contains the
* image of the button, and has all the proper event handlers set.
@@ -9191,21 +9191,21 @@
_addButton:function(id, img, xy, sz) {
var imgLocation = OpenLayers.Util.getImagesLocation() + img;
var btn = OpenLayers.Util.createAlphaImageDiv(
- this.id + "_" + id,
+ this.id + "_" + id,
xy, sz, imgLocation, "absolute");
//we want to add the outer div
this.div.appendChild(btn);
- OpenLayers.Event.observe(btn, "mousedown",
+ OpenLayers.Event.observe(btn, "mousedown",
OpenLayers.Function.bindAsEventListener(this.buttonDown, btn));
- OpenLayers.Event.observe(btn, "dblclick",
+ OpenLayers.Event.observe(btn, "dblclick",
OpenLayers.Function.bindAsEventListener(this.doubleClick, btn));
- OpenLayers.Event.observe(btn, "click",
+ OpenLayers.Event.observe(btn, "click",
OpenLayers.Function.bindAsEventListener(this.doubleClick, btn));
btn.action = id;
btn.map = this.map;
-
+
if(!this.slideRatio){
var slideFactorPixels = this.slideFactor;
var getSlideFactor = function() {
@@ -9224,10 +9224,10 @@
this.buttons.push(btn);
return btn;
},
-
+
/**
* Method: _removeButton
- *
+ *
* Parameters:
* btn - {Object}
*/
@@ -9237,7 +9237,7 @@
this.div.removeChild(btn);
OpenLayers.Util.removeItem(this.buttons, btn);
},
-
+
/**
* Method: removeButtons
*/
@@ -9246,12 +9246,12 @@
this._removeButton(this.buttons[i]);
}
},
-
+
/**
* Method: doubleClick
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -9260,12 +9260,12 @@
OpenLayers.Event.stop(evt);
return false;
},
-
+
/**
* Method: buttonDown
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
buttonDown: function (evt) {
if (!OpenLayers.Event.isLeftClick(evt)) {
@@ -9273,26 +9273,26 @@
}
switch (this.action) {
- case "panup":
+ case "panup":
this.map.pan(0, -this.getSlideFactor("h"));
break;
- case "pandown":
+ case "pandown":
this.map.pan(0, this.getSlideFactor("h"));
break;
- case "panleft":
+ case "panleft":
this.map.pan(-this.getSlideFactor("w"), 0);
break;
- case "panright":
+ case "panright":
this.map.pan(this.getSlideFactor("w"), 0);
break;
- case "zoomin":
- this.map.zoomIn();
+ case "zoomin":
+ this.map.zoomIn();
break;
- case "zoomout":
- this.map.zoomOut();
+ case "zoomout":
+ this.map.zoomOut();
break;
- case "zoomworld":
- this.map.zoomToMaxExtent();
+ case "zoomworld":
+ this.map.zoomToMaxExtent();
break;
}
@@ -9318,7 +9318,7 @@
====================================================================== */
/* Copyright (c) 2006-2007 MetaCarta, Inc., published under a modified BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
* for the full text of the license. */
/**
@@ -9327,13 +9327,13 @@
/**
* Class: OpenLayers.Control.ScaleLine
- * The ScaleLine displays a small line indicator representing the current
+ * The ScaleLine displays a small line indicator representing the current
* map scale on the map. By default it is drawn in the lower left corner of
* the map.
- *
+ *
* Inherits from:
* - <OpenLayers.Control>
- *
+ *
* Is a very close copy of:
* - <OpenLayers.Control.Scale>
*/
@@ -9350,7 +9350,7 @@
* {String} Units for zoomed out on top bar. Default is km.
*/
topOutUnits: "km",
-
+
/**
* Property: topInUnits
* {String} Units for zoomed in on top bar. Default is m.
@@ -9368,7 +9368,7 @@
* {String} Units for zoomed in on bottom bar. Default is ft.
*/
bottomInUnits: "ft",
-
+
/**
* Property: eTop
* {DOMElement}
@@ -9384,18 +9384,18 @@
/**
* Constructor: OpenLayers.Control.ScaleLine
* Create a new scale line control.
- *
+ *
* Parameters:
* options - {Object} An optional object whose properties will be used
* to extend the control.
*/
initialize: function(options) {
- OpenLayers.Control.prototype.initialize.apply(this, [options]);
+ OpenLayers.Control.prototype.initialize.apply(this, [options]);
},
/**
* Method: draw
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -9404,7 +9404,7 @@
if (!this.eTop) {
this.div.style.display = "block";
this.div.style.position = "absolute";
-
+
// stick in the top bar
this.eTop = document.createElement("div");
this.eTop.className = this.displayClass + "Top";
@@ -9431,14 +9431,14 @@
return this.div;
},
- /**
+ /**
* Method: getBarLen
* Given a number, round it down to the nearest 1,2,5 times a power of 10.
* That seems a fairly useful set of number groups to use.
- *
+ *
* Parameters:
* maxLen - {float} the number we're rounding down from
- *
+ *
* Returns:
* {Float} the rounded number (less than or equal to maxLen)
*/
@@ -9446,7 +9446,7 @@
// nearest power of 10 lower than maxLen
var digits = parseInt(Math.log(maxLen) / Math.log(10));
var pow10 = Math.pow(10, digits);
-
+
// ok, find first character
var firstChar = parseInt(maxLen / pow10);
@@ -9478,9 +9478,9 @@
var inches = OpenLayers.INCHES_PER_UNIT;
// convert maxWidth to map units
- var maxSizeData = this.maxWidth * res * inches[curMapUnits];
+ var maxSizeData = this.maxWidth * res * inches[curMapUnits];
- // decide whether to use large or small scale units
+ // decide whether to use large or small scale units
var topUnits;
var bottomUnits;
if(maxSizeData > 100000) {
@@ -9506,22 +9506,22 @@
// and to pixel units
var topPx = topMax / res;
var bottomPx = bottomMax / res;
-
+
// now set the pixel widths
// and the values inside them
-
+
if (this.eBottom.style.visibility == "visible"){
- this.eBottom.style.width = Math.round(bottomPx) + "px";
+ this.eBottom.style.width = Math.round(bottomPx) + "px";
this.eBottom.innerHTML = bottomRounded + " " + bottomUnits ;
}
-
+
if (this.eTop.style.visibility == "visible"){
this.eTop.style.width = Math.round(topPx) + "px";
this.eTop.innerHTML = topRounded + " " + topUnits;
}
-
- },
+ },
+
CLASS_NAME: "OpenLayers.Control.ScaleLine"
});
@@ -9544,64 +9544,64 @@
*/
OpenLayers.Event = {
- /**
- * Property: observers
+ /**
+ * Property: observers
* {Object} A hashtable cache of the event observers. Keyed by
- * element._eventCacheID
+ * element._eventCacheID
*/
observers: false,
-
- /**
- * Constant: KEY_BACKSPACE
- * {int}
+
+ /**
+ * Constant: KEY_BACKSPACE
+ * {int}
*/
KEY_BACKSPACE: 8,
- /**
- * Constant: KEY_TAB
- * {int}
+ /**
+ * Constant: KEY_TAB
+ * {int}
*/
KEY_TAB: 9,
- /**
- * Constant: KEY_RETURN
- * {int}
+ /**
+ * Constant: KEY_RETURN
+ * {int}
*/
KEY_RETURN: 13,
- /**
- * Constant: KEY_ESC
- * {int}
+ /**
+ * Constant: KEY_ESC
+ * {int}
*/
KEY_ESC: 27,
- /**
- * Constant: KEY_LEFT
- * {int}
+ /**
+ * Constant: KEY_LEFT
+ * {int}
*/
KEY_LEFT: 37,
- /**
- * Constant: KEY_UP
- * {int}
+ /**
+ * Constant: KEY_UP
+ * {int}
*/
KEY_UP: 38,
- /**
- * Constant: KEY_RIGHT
- * {int}
+ /**
+ * Constant: KEY_RIGHT
+ * {int}
*/
KEY_RIGHT: 39,
- /**
- * Constant: KEY_DOWN
- * {int}
+ /**
+ * Constant: KEY_DOWN
+ * {int}
*/
KEY_DOWN: 40,
- /**
- * Constant: KEY_DELETE
- * {int}
+ /**
+ * Constant: KEY_DELETE
+ * {int}
*/
KEY_DELETE: 46,
@@ -9609,12 +9609,12 @@
/**
* Method: element
* Cross browser event element detection.
- *
+ *
* Parameters:
- * event - {Event}
- *
+ * event - {Event}
+ *
* Returns:
- * {DOMElement} The element that caused the event
+ * {DOMElement} The element that caused the event
*/
element: function(event) {
return event.target || event.srcElement;
@@ -9622,11 +9622,11 @@
/**
* Method: isLeftClick
- * Determine whether event was caused by a left click.
+ * Determine whether event was caused by a left click.
*
* Parameters:
- * event - {Event}
- *
+ * event - {Event}
+ *
* Returns:
* {Boolean}
*/
@@ -9637,11 +9637,11 @@
/**
* Method: isRightClick
- * Determine whether event was caused by a right mouse click.
+ * Determine whether event was caused by a right mouse click.
*
* Parameters:
- * event - {Event}
- *
+ * event - {Event}
+ *
* Returns:
* {Boolean}
*/
@@ -9649,29 +9649,29 @@
return (((event.which) && (event.which == 3)) ||
((event.button) && (event.button == 2)));
},
-
+
/**
* Method: stop
- * Stops an event from propagating.
+ * Stops an event from propagating.
*
- * Parameters:
- * event - {Event}
- * allowDefault - {Boolean} If true, we stop the event chain but
- * still allow the default browser
- * behaviour (text selection, radio-button
+ * Parameters:
+ * event - {Event}
+ * allowDefault - {Boolean} If true, we stop the event chain but
+ * still allow the default browser
+ * behaviour (text selection, radio-button
* clicking, etc)
* Default false
*/
stop: function(event, allowDefault) {
-
- if (!allowDefault) {
+
+ if (!allowDefault) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
-
+
if (event.stopPropagation) {
event.stopPropagation();
} else {
@@ -9679,13 +9679,13 @@
}
},
- /**
+ /**
* Method: findElement
- *
+ *
* Parameters:
- * event - {Event}
- * tagName - {String}
- *
+ * event - {Event}
+ * tagName - {String}
+ *
* Returns:
* {DOMElement} The first node with the given tagName, starting from the
* node the event was triggered on and traversing the DOM upwards
@@ -9699,14 +9699,14 @@
return element;
},
- /**
+ /**
* Method: observe
- *
+ *
* Parameters:
- * elementParam - {DOMElement || String}
- * name - {String}
- * observer - {function}
- * useCapture - {Boolean}
+ * elementParam - {DOMElement || String}
+ * name - {String}
+ * observer - {function}
+ * useCapture - {Boolean}
*/
observe: function(elementParam, name, observer, useCapture) {
var element = OpenLayers.Util.getElement(elementParam);
@@ -9755,14 +9755,14 @@
}
},
- /**
+ /**
* Method: stopObservingElement
- * Given the id of an element to stop observing, cycle through the
- * element's cached observers, calling stopObserving on each one,
+ * Given the id of an element to stop observing, cycle through the
+ * element's cached observers, calling stopObserving on each one,
* skipping those entries which can no longer be removed.
- *
+ *
* parameters:
- * elementParam - {DOMElement || String}
+ * elementParam - {DOMElement || String}
*/
stopObservingElement: function(elementParam) {
var element = OpenLayers.Util.getElement(elementParam);
@@ -9775,8 +9775,8 @@
* Method: _removeElementObservers
*
* Parameters:
- * elementObservers - {Array(Object)} Array of (element, name,
- * observer, usecapture) objects,
+ * elementObservers - {Array(Object)} Array of (element, name,
+ * observer, usecapture) objects,
* taken directly from hashtable
*/
_removeElementObservers: function(elementObservers) {
@@ -9794,24 +9794,24 @@
/**
* Method: stopObserving
- *
+ *
* Parameters:
- * elementParam - {DOMElement || String}
- * name - {String}
- * observer - {function}
- * useCapture - {Boolean}
- *
+ * elementParam - {DOMElement || String}
+ * name - {String}
+ * observer - {function}
+ * useCapture - {Boolean}
+ *
* Returns:
* {Boolean} Whether or not the event observer was removed
*/
stopObserving: function(elementParam, name, observer, useCapture) {
useCapture = useCapture || false;
-
+
var element = OpenLayers.Util.getElement(elementParam);
var cacheID = element._eventCacheID;
if (name == 'keypress') {
- if ( navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
+ if ( navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
element.detachEvent) {
name = 'keydown';
}
@@ -9821,27 +9821,27 @@
var foundEntry = false;
var elementObservers = OpenLayers.Event.observers[cacheID];
if (elementObservers) {
-
+
// find the specific event type in the element's list
var i=0;
while(!foundEntry && i < elementObservers.length) {
var cacheEntry = elementObservers[i];
-
+
if ((cacheEntry.name == name) &&
(cacheEntry.observer == observer) &&
(cacheEntry.useCapture == useCapture)) {
-
+
elementObservers.splice(i, 1);
if (elementObservers.length == 0) {
delete OpenLayers.Event.observers[cacheID];
}
foundEntry = true;
- break;
+ break;
}
- i++;
+ i++;
}
}
-
+
//actually remove the event listener from browser
if (foundEntry) {
if (element.removeEventListener) {
@@ -9852,11 +9852,11 @@
}
return foundEntry;
},
-
- /**
+
+ /**
* Method: unloadCache
* Cycle through all the element entries in the events cache and call
- * stopObservingElement on each.
+ * stopObservingElement on each.
*/
unloadCache: function() {
// check for OpenLayers.Event before checking for observers, because
@@ -9865,7 +9865,7 @@
if (OpenLayers.Event && OpenLayers.Event.observers) {
for (var cacheID in OpenLayers.Event.observers) {
var elementObservers = OpenLayers.Event.observers[cacheID];
- OpenLayers.Event._removeElementObservers.apply(this,
+ OpenLayers.Event._removeElementObservers.apply(this,
[elementObservers]);
}
OpenLayers.Event.observers = false;
@@ -9891,65 +9891,65 @@
*/
OpenLayers.Events = OpenLayers.Class({
- /**
+ /**
* Constant: BROWSER_EVENTS
- * {Array(String)} supported events
+ * {Array(String)} supported events
*/
BROWSER_EVENTS: [
"mouseover", "mouseout",
- "mousedown", "mouseup", "mousemove",
+ "mousedown", "mouseup", "mousemove",
"click", "dblclick", "rightclick", "dblrightclick",
"resize", "focus", "blur"
],
- /**
- * Property: listeners
- * {Object} Hashtable of Array(Function): events listener functions
+ /**
+ * Property: listeners
+ * {Object} Hashtable of Array(Function): events listener functions
*/
listeners: null,
- /**
- * Property: object
- * {Object} the code object issuing application events
+ /**
+ * Property: object
+ * {Object} the code object issuing application events
*/
object: null,
- /**
- * Property: element
- * {DOMElement} the DOM element receiving browser events
+ /**
+ * Property: element
+ * {DOMElement} the DOM element receiving browser events
*/
element: null,
- /**
- * Property: eventTypes
- * {Array(String)} list of support application events
+ /**
+ * Property: eventTypes
+ * {Array(String)} list of support application events
*/
eventTypes: null,
- /**
- * Property: eventHandler
- * {Function} bound event handler attached to elements
+ /**
+ * Property: eventHandler
+ * {Function} bound event handler attached to elements
*/
eventHandler: null,
- /**
- * APIProperty: fallThrough
- * {Boolean}
+ /**
+ * APIProperty: fallThrough
+ * {Boolean}
*/
fallThrough: null,
- /**
+ /**
* APIProperty: includeXY
* {Boolean} Should the .xy property automatically be created for browser
* mouse events? In general, this should be false. If it is true, then
- * mouse events will automatically generate a '.xy' property on the
+ * mouse events will automatically generate a '.xy' property on the
* event object that is passed. (Prior to OpenLayers 2.7, this was true
* by default.) Otherwise, you can call the getMousePosition on the
* relevant events handler on the object available via the 'evt.object'
* property of the evt object. So, for most events, you can call:
- * function named(evt) {
- * this.xy = this.object.events.getMousePosition(evt)
- * }
+ * function named(evt) {
+ * this.xy = this.object.events.getMousePosition(evt)
+ * }
*
* This option typically defaults to false for performance reasons:
* when creating an events object whose primary purpose is to manage
@@ -9959,12 +9959,12 @@
* This option is also used to control whether the events object caches
* offsets. If this is false, it will not: the reason for this is that
* it is only expected to be called many times if the includeXY property
- * is set to true. If you set this to true, you are expected to clear
+ * is set to true. If you set this to true, you are expected to clear
* the offset cache manually (using this.clearMouseCache()) if:
* the border of the element changes
* the location of the element in the page changes
*/
- includeXY: false,
+ includeXY: false,
/**
* Method: clearMouseListener
@@ -9981,7 +9981,7 @@
* Parameters:
* object - {Object} The js object to which this Events object is being
* added element - {DOMElement} A dom element to respond to browser events
- * eventTypes - {Array(String)} Array of custom application events
+ * eventTypes - {Array(String)} Array of custom application events
* fallThrough - {Boolean} Allow events to fall through after these have
* been handled?
* options - {Object} Options for the events object.
@@ -9997,13 +9997,13 @@
this.eventHandler = OpenLayers.Function.bindAsEventListener(
this.handleBrowserEvent, this
);
-
+
// to be used with observe and stopObserving
this.clearMouseListener = OpenLayers.Function.bind(
this.clearMouseCache, this
);
- // if eventTypes is specified, create a listeners list for each
+ // if eventTypes is specified, create a listeners list for each
// custom application event.
this.eventTypes = [];
if (eventTypes != null) {
@@ -10011,8 +10011,8 @@
this.addEventType(eventTypes[i]);
}
}
-
- // if a dom element is specified, add a listeners list
+
+ // if a dom element is specified, add a listeners list
// for browser events on the element and register them
if (element != null) {
this.attachToElement(element);
@@ -10044,7 +10044,7 @@
* APIMethod: addEventType
* Add a new event type to this events object.
* If the event type has already been added, do nothing.
- *
+ *
* Parameters:
* eventName - {String}
*/
@@ -10069,17 +10069,17 @@
for (var i=0, len=this.BROWSER_EVENTS.length; i<len; i++) {
var eventType = this.BROWSER_EVENTS[i];
- // every browser event has a corresponding application event
+ // every browser event has a corresponding application event
// (whether it's listened for or not).
this.addEventType(eventType);
-
+
// use Prototype to register the event cross-browser
OpenLayers.Event.observe(element, eventType, this.eventHandler);
}
// disable dragstart in IE so that mousedown/move/up works normally
OpenLayers.Event.observe(element, "dragstart", OpenLayers.Event.stop);
},
-
+
/**
* Method: on
* Convenience method for registering listeners with a common scope.
@@ -10106,31 +10106,31 @@
* Register an event on the events object.
*
* When the event is triggered, the 'func' function will be called, in the
- * context of 'obj'. Imagine we were to register an event, specifying an
- * OpenLayers.Bounds Object as 'obj'. When the event is triggered, the
+ * context of 'obj'. Imagine we were to register an event, specifying an
+ * OpenLayers.Bounds Object as 'obj'. When the event is triggered, the
* context in the callback function will be our Bounds object. This means
- * that within our callback function, we can access the properties and
- * methods of the Bounds object through the "this" variable. So our
- * callback could execute something like:
+ * that within our callback function, we can access the properties and
+ * methods of the Bounds object through the "this" variable. So our
+ * callback could execute something like:
* : leftStr = "Left: " + this.left;
- *
+ *
* or
- *
+ *
* : centerStr = "Center: " + this.getCenterLonLat();
*
* Parameters:
* type - {String} Name of the event to register
* obj - {Object} The object to bind the context to for the callback#.
- * If no object is specified, default is the Events's
+ * If no object is specified, default is the Events's
* 'object' property.
- * func - {Function} The callback function. If no callback is
+ * func - {Function} The callback function. If no callback is
* specified, this function does nothing.
- *
- *
+ *
+ *
*/
register: function (type, obj, func) {
- if ( (func != null) &&
+ if ( (func != null) &&
(OpenLayers.Util.indexOf(this.eventTypes, type) != -1) ) {
if (obj == null) {
@@ -10145,17 +10145,17 @@
* APIMethod: registerPriority
* Same as register() but adds the new listener to the *front* of the
* events queue instead of to the end.
- *
- * TODO: get rid of this in 3.0 - Decide whether listeners should be
+ *
+ * TODO: get rid of this in 3.0 - Decide whether listeners should be
* called in the order they were registered or in reverse order.
*
*
* Parameters:
* type - {String} Name of the event to register
* obj - {Object} The object to bind the context to for the callback#.
- * If no object is specified, default is the Events's
+ * If no object is specified, default is the Events's
* 'object' property.
- * func - {Function} The callback function. If no callback is
+ * func - {Function} The callback function. If no callback is
* specified, this function does nothing.
*/
registerPriority: function (type, obj, func) {
@@ -10170,7 +10170,7 @@
}
}
},
-
+
/**
* Method: un
* Convenience method for unregistering listeners with a common scope.
@@ -10196,9 +10196,9 @@
* APIMethod: unregister
*
* Parameters:
- * type - {String}
+ * type - {String}
* obj - {Object} If none specified, defaults to this.object
- * func - {Function}
+ * func - {Function}
*/
unregister: function (type, obj, func) {
if (obj == null) {
@@ -10215,13 +10215,13 @@
}
},
- /**
+ /**
* Method: remove
* Remove all listeners for a given event type. If type is not registered,
* does nothing.
*
* Parameters:
- * type - {String}
+ * type - {String}
*/
remove: function(type) {
if (this.listeners[type] != null) {
@@ -10231,10 +10231,10 @@
/**
* APIMethod: triggerEvent
- * Trigger a specified registered event.
- *
+ * Trigger a specified registered event.
+ *
* Parameters:
- * type - {String}
+ * type - {String}
* evt - {Event}
*
* Returns:
@@ -10258,7 +10258,7 @@
if(!evt.type) {
evt.type = type;
}
-
+
// execute all callbacks registered for specified type
// get a clone of the listeners array to
// allow for splicing during callbacks
@@ -10274,7 +10274,7 @@
}
}
// don't fall through to other DOM elements
- if (!this.fallThrough) {
+ if (!this.fallThrough) {
OpenLayers.Event.stop(evt, true);
}
return continueChain;
@@ -10282,38 +10282,38 @@
/**
* Method: handleBrowserEvent
- * Basically just a wrapper to the triggerEvent() function, but takes
- * care to set a property 'xy' on the event with the current mouse
+ * Basically just a wrapper to the triggerEvent() function, but takes
+ * care to set a property 'xy' on the event with the current mouse
* position.
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
handleBrowserEvent: function (evt) {
if (this.includeXY) {
evt.xy = this.getMousePosition(evt);
- }
+ }
this.triggerEvent(evt.type, evt);
},
/**
* APIMethod: clearMouseCache
- * Clear cached data about the mouse position. This should be called any
- * time the element that events are registered on changes position
+ * Clear cached data about the mouse position. This should be called any
+ * time the element that events are registered on changes position
* within the page.
*/
- clearMouseCache: function() {
+ clearMouseCache: function() {
this.element.scrolls = null;
this.element.lefttop = null;
this.element.offsets = null;
- },
+ },
/**
* Method: getMousePosition
- *
+ *
* Parameters:
- * evt - {Event}
- *
+ * evt - {Event}
+ *
* Returns:
* {<OpenLayers.Pixel>} The current xy coordinate of the mouse, adjusted
* for offsets
@@ -10325,7 +10325,7 @@
OpenLayers.Event.observe(window, "scroll", this.clearMouseListener);
this.element.hasScrollEvent = true;
}
-
+
if (!this.element.scrolls) {
this.element.scrolls = [
(document.documentElement.scrollLeft
@@ -10341,7 +10341,7 @@
(document.documentElement.clientTop || 0)
];
}
-
+
if (!this.element.offsets) {
this.element.offsets = OpenLayers.Util.pagePosition(this.element);
this.element.offsets[0] += this.element.scrolls[0];
@@ -10349,10 +10349,10 @@
}
return new OpenLayers.Pixel(
(evt.clientX + this.element.scrolls[0]) - this.element.offsets[0]
- - this.element.lefttop[0],
+ - this.element.lefttop[0],
(evt.clientY + this.element.scrolls[1]) - this.element.offsets[1]
- this.element.lefttop[1]
- );
+ );
},
CLASS_NAME: "OpenLayers.Events"
@@ -10376,13 +10376,13 @@
* of OpenLayers.Format are expected to have read and write methods.
*/
OpenLayers.Format = OpenLayers.Class({
-
+
/**
* Property: options
* {Object} A reference to options passed to the constructor.
*/
options: null,
-
+
/**
* APIProperty: externalProjection
* {<OpenLayers.Projection>} When passed a externalProjection and
@@ -10390,7 +10390,7 @@
* reads or writes. The externalProjection is the projection used by
* the content which is passed into read or which comes out of write.
* In order to reproject, a projection transformation function for the
- * specified projections must be available. This support may be
+ * specified projections must be available. This support may be
* provided via proj4js or via a custom transformation function. See
* {<OpenLayers.Projection.addTransform>} for more information on
* custom transformations.
@@ -10444,7 +10444,7 @@
OpenLayers.Util.extend(this, options);
this.options = options;
},
-
+
/**
* APIMethod: destroy
* Clean up.
@@ -10455,8 +10455,8 @@
/**
* Method: read
* Read data from a string, and return an object whose type depends on the
- * subclass.
- *
+ * subclass.
+ *
* Parameters:
* data - {string} Data to read/parse.
*
@@ -10466,10 +10466,10 @@
read: function(data) {
OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));
},
-
+
/**
* Method: write
- * Accept an object, and return a string.
+ * Accept an object, and return a string.
*
* Parameters:
* object - {Object} Object to be serialized
@@ -10482,7 +10482,7 @@
},
CLASS_NAME: "OpenLayers.Format"
-});
+});
/* ======================================================================
OpenLayers/Lang/en.js
====================================================================== */
@@ -10579,7 +10579,7 @@
'reprojectDeprecated':
"You are using the 'reproject' option " +
"on the ${layerName} layer. This option is deprecated: " +
- "its use was designed to support displaying data over commercial " +
+ "its use was designed to support displaying data over commercial " +
"basemaps, but that functionality should now be achieved by using " +
"Spherical Mercator support. More information is available from " +
"http://trac.openlayers.org/wiki/SphericalMercator.",
@@ -10604,7 +10604,7 @@
// console message
'pagePositionFailed':
"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",
-
+
'end': '',
// console message
@@ -10625,36 +10625,36 @@
/**
* Class: OpenLayers.Popup.AnchoredBubble
- *
- * Inherits from:
+ *
+ * Inherits from:
* - <OpenLayers.Popup.Anchored>
*/
-OpenLayers.Popup.AnchoredBubble =
+OpenLayers.Popup.AnchoredBubble =
OpenLayers.Class(OpenLayers.Popup.Anchored, {
/**
* Property: rounded
* {Boolean} Has the popup been rounded yet?
*/
- rounded: false,
-
- /**
+ rounded: false,
+
+ /**
* Constructor: OpenLayers.Popup.AnchoredBubble
- *
+ *
* Parameters:
* id - {String}
* lonlat - {<OpenLayers.LonLat>}
* contentSize - {<OpenLayers.Size>}
* contentHTML - {String}
- * anchor - {Object} Object to which we'll anchor the popup. Must expose
- * a 'size' (<OpenLayers.Size>) and 'offset' (<OpenLayers.Pixel>)
+ * anchor - {Object} Object to which we'll anchor the popup. Must expose
+ * a 'size' (<OpenLayers.Size>) and 'offset' (<OpenLayers.Pixel>)
* (Note that this is generally an <OpenLayers.Icon>).
* closeBox - {Boolean}
* closeBoxCallback - {Function} Function to be called on closeBox click.
*/
initialize:function(id, lonlat, contentSize, contentHTML, anchor, closeBox,
closeBoxCallback) {
-
+
this.padding = new OpenLayers.Bounds(
0, OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,
0, OpenLayers.Popup.AnchoredBubble.CORNER_SIZE
@@ -10662,23 +10662,23 @@
OpenLayers.Popup.Anchored.prototype.initialize.apply(this, arguments);
},
- /**
+ /**
* Method: draw
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {DOMElement} Reference to a div that contains the drawn popup.
*/
draw: function(px) {
-
+
OpenLayers.Popup.Anchored.prototype.draw.apply(this, arguments);
this.setContentHTML();
-
- //set the popup color and opacity
- this.setBackgroundColor();
+
+ //set the popup color and opacity
+ this.setBackgroundColor();
this.setOpacity();
return this.div;
@@ -10695,71 +10695,71 @@
/**
* APIMethod: setSize
- *
+ *
* Parameters:
- * contentSize - {<OpenLayers.Size>} the new size for the popup's
+ * contentSize - {<OpenLayers.Size>} the new size for the popup's
* contents div (in pixels).
*/
- setSize:function(contentSize) {
+ setSize:function(contentSize) {
OpenLayers.Popup.Anchored.prototype.setSize.apply(this, arguments);
this.setRicoCorners();
- },
+ },
/**
* APIMethod: setBackgroundColor
- *
+ *
* Parameters:
* color - {String}
*/
- setBackgroundColor:function(color) {
+ setBackgroundColor:function(color) {
if (color != undefined) {
- this.backgroundColor = color;
+ this.backgroundColor = color;
}
-
+
if (this.div != null) {
if (this.contentDiv != null) {
this.div.style.background = "transparent";
- OpenLayers.Rico.Corner.changeColor(this.groupDiv,
+ OpenLayers.Rico.Corner.changeColor(this.groupDiv,
this.backgroundColor);
}
}
- },
-
+ },
+
/**
* APIMethod: setOpacity
- *
- * Parameters:
+ *
+ * Parameters:
* opacity - {float}
*/
- setOpacity:function(opacity) {
+ setOpacity:function(opacity) {
OpenLayers.Popup.Anchored.prototype.setOpacity.call(this, opacity);
-
+
if (this.div != null) {
if (this.groupDiv != null) {
- OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,
+ OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,
this.opacity);
}
}
- },
-
- /**
+ },
+
+ /**
* Method: setBorder
* Always sets border to 0. Bubble Popups can not have a border.
- *
+ *
* Parameters:
* border - {Integer}
*/
- setBorder:function(border) {
+ setBorder:function(border) {
this.border = 0;
- },
-
- /**
+ },
+
+ /**
* Method: setRicoCorners
* Update RICO corners according to the popup's current relative postion.
*/
setRicoCorners:function() {
-
+
var corners = this.getCornersToRound(this.relativePosition);
var options = {corners: corners,
color: this.backgroundColor,
@@ -10772,14 +10772,14 @@
} else {
OpenLayers.Rico.Corner.reRound(this.groupDiv, options);
//set the popup color and opacity
- this.setBackgroundColor();
+ this.setBackgroundColor();
this.setOpacity();
}
},
- /**
+ /**
* Method: getCornersToRound
- *
+ *
* Returns:
* {String} The proper corners string ("tr tl bl br") for rico to round.
*/
@@ -10787,7 +10787,7 @@
var corners = ['tl', 'tr', 'bl', 'br'];
- //we want to round all the corners _except_ the opposite one.
+ //we want to round all the corners _except_ the opposite one.
var corner = OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);
OpenLayers.Util.removeItem(corners, corner);
@@ -10808,7 +10808,7 @@
====================================================================== */
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under a modified BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
* for the full text of the license. */
/**
@@ -10818,7 +10818,7 @@
/**
* Class: OpenLayers.Projection
* Class for coordinate transforms between coordinate systems.
- * Depends on the proj4js library. If proj4js is not available,
+ * Depends on the proj4js library. If proj4js is not available,
* then this is just an empty stub.
*/
OpenLayers.Projection = OpenLayers.Class({
@@ -10828,7 +10828,7 @@
* {Object} Proj4js.Proj instance.
*/
proj: null,
-
+
/**
* Property: projCode
* {String}
@@ -10837,8 +10837,8 @@
/**
* Constructor: OpenLayers.Projection
- * This class offers several methods for interacting with a wrapped
- * pro4js projection object.
+ * This class offers several methods for interacting with a wrapped
+ * pro4js projection object.
*
* Parameters:
* projCode - {String} A string identifying the Well Known Identifier for
@@ -10856,7 +10856,7 @@
this.proj = new Proj4js.Proj(projCode);
}
},
-
+
/**
* APIMethod: getCode
* Get the string SRS code.
@@ -10867,10 +10867,10 @@
getCode: function() {
return this.proj ? this.proj.srsCode : this.projCode;
},
-
+
/**
* APIMethod: getUnits
- * Get the units string for the projection -- returns null if
+ * Get the units string for the projection -- returns null if
* proj4js is not available.
*
* Returns:
@@ -10904,7 +10904,7 @@
return this.getCode() == projection.getCode();
} else {
return false;
- }
+ }
},
/* Method: destroy
@@ -10914,21 +10914,21 @@
delete this.proj;
delete this.projCode;
},
-
- CLASS_NAME: "OpenLayers.Projection"
-});
+ CLASS_NAME: "OpenLayers.Projection"
+});
+
/**
* Property: transforms
* Transforms is an object, with from properties, each of which may
- * have a to property. This allows you to define projections without
+ * have a to property. This allows you to define projections without
* requiring support for proj4js to be included.
*
* This object has keys which correspond to a 'source' projection object. The
* keys should be strings, corresponding to the projection.getCode() value.
* Each source projection object should have a set of destination projection
- * keys included in the object.
- *
+ * keys included in the object.
+ *
* Each value in the destination object should be a transformation function,
* where the function is expected to be passed an object with a .x and a .y
* property. The function should return the object, with the .x and .y
@@ -10964,7 +10964,7 @@
* APIMethod: transform
* Transform a point coordinate from one projection to another. Note that
* the input point is transformed in place.
- *
+ *
* Parameters:
* point - {{OpenLayers.Geometry.Point> | Object} An object with x and y
* properties representing coordinates in those dimensions.
@@ -10977,10 +10977,10 @@
OpenLayers.Projection.transform = function(point, source, dest) {
if (source.proj && dest.proj) {
point = Proj4js.transform(source.proj, dest.proj, point);
- } else if (source && dest &&
- OpenLayers.Projection.transforms[source.getCode()] &&
+ } else if (source && dest &&
+ OpenLayers.Projection.transforms[source.getCode()] &&
OpenLayers.Projection.transforms[source.getCode()][dest.getCode()]) {
- OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);
+ OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);
}
return point;
};
@@ -10998,18 +10998,18 @@
/**
* Class: OpenLayers.Renderer.SVG
- *
+ *
* Inherits:
* - <OpenLayers.Renderer.Elements>
*/
OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
- /**
+ /**
* Property: xmlns
* {String}
*/
xmlns: "http://www.w3.org/2000/svg",
-
+
/**
* Property: xlinkns
* {String}
@@ -11018,8 +11018,8 @@
/**
* Constant: MAX_PIXEL
- * {Integer} Firefox has a limitation where values larger or smaller than
- * about 15000 in an SVG document lock the browser up. This
+ * {Integer} Firefox has a limitation where values larger or smaller than
+ * about 15000 in an SVG document lock the browser up. This
* works around it.
*/
MAX_PIXEL: 15000,
@@ -11029,13 +11029,13 @@
* {Object} Hash with "x" and "y" properties
*/
translationParameters: null,
-
+
/**
* Property: symbolSize
* {Object} Cache for symbol sizes according to their svg coordinate space
*/
symbolSize: {},
-
+
/**
* Property: isGecko
* {Boolean}
@@ -11052,15 +11052,15 @@
/**
* Constructor: OpenLayers.Renderer.SVG
- *
+ *
* Parameters:
* containerID - {String}
*/
initialize: function(containerID) {
- if (!this.supported()) {
- return;
+ if (!this.supported()) {
+ return;
}
- OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
+ OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
arguments);
this.translationParameters = {x: 0, y: 0};
this.supportUse = (navigator.userAgent.toLowerCase().indexOf("applewebkit/5") == -1);
@@ -11073,20 +11073,20 @@
destroy: function() {
OpenLayers.Renderer.Elements.prototype.destroy.apply(this, arguments);
},
-
+
/**
* APIMethod: supported
- *
+ *
* Returns:
* {Boolean} Whether or not the browser supports the SVG renderer
*/
supported: function() {
var svgFeature = "http://www.w3.org/TR/SVG11/feature#";
- return (document.implementation &&
- (document.implementation.hasFeature("org.w3c.svg", "1.0") ||
- document.implementation.hasFeature(svgFeature + "SVG", "1.1") ||
+ return (document.implementation &&
+ (document.implementation.hasFeature("org.w3c.svg", "1.0") ||
+ document.implementation.hasFeature(svgFeature + "SVG", "1.1") ||
document.implementation.hasFeature(svgFeature + "BasicStructure", "1.1") ));
- },
+ },
/**
* Method: inValidRange
@@ -11097,11 +11097,11 @@
* y - {Integer}
* xyOnly - {Boolean} whether or not to just check for x and y, which means
* to not take the current translation parameters into account if true.
- *
+ *
* Returns:
- * {Boolean} Whether or not the 'x' and 'y' coordinates are in the
+ * {Boolean} Whether or not the 'x' and 'y' coordinates are in the
* valid range.
- */
+ */
inValidRange: function(x, y, xyOnly) {
var left = x + (xyOnly ? 0 : this.translationParameters.x);
var top = y + (xyOnly ? 0 : this.translationParameters.y);
@@ -11111,20 +11111,20 @@
/**
* Method: setExtent
- *
+ *
* Parameters:
* extent - {<OpenLayers.Bounds>}
* resolutionChanged - {Boolean}
- *
+ *
* Returns:
* {Boolean} true to notify the layer that the new extent does not exceed
* the coordinate range, and the features will not need to be redrawn.
* False otherwise.
*/
setExtent: function(extent, resolutionChanged) {
- OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
+ OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
arguments);
-
+
var resolution = this.getResolution();
var left = -extent.left / resolution;
var top = extent.top / resolution;
@@ -11149,15 +11149,15 @@
return inRange;
}
},
-
+
/**
* Method: translate
* Transforms the SVG coordinate system
- *
+ *
* Parameters:
* x - {Float}
* y - {Float}
- *
+ *
* Returns:
* {Boolean} true if the translation parameters are in the valid coordinates
* range, false otherwise.
@@ -11179,24 +11179,24 @@
/**
* Method: setSize
* Sets the size of the drawing surface.
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>} The size of the drawing surface
*/
setSize: function(size) {
OpenLayers.Renderer.prototype.setSize.apply(this, arguments);
-
+
this.rendererRoot.setAttributeNS(null, "width", this.size.w);
this.rendererRoot.setAttributeNS(null, "height", this.size.h);
},
- /**
- * Method: getNodeType
- *
+ /**
+ * Method: getNodeType
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- *
+ *
* Returns:
* {String} The corresponding node type for the specified geometry
*/
@@ -11232,17 +11232,17 @@
return nodeType;
},
- /**
+ /**
* Method: setStyle
* Use to set all the style attributes to a SVG node.
- *
+ *
* Takes care to adjust stroke width and point radius to be
* resolution-relative
*
* Parameters:
* node - {SVGDomElement} An SVG element to decorate
* style - {Object}
- * options - {Object} Currently supported options include
+ * options - {Object} Currently supported options include
* 'isFilled' {Boolean} and
* 'isStroked' {Boolean}
*/
@@ -11258,8 +11258,8 @@
node.style.visibility = "hidden";
} else if (style.externalGraphic) {
pos = this.getPosition(node);
-
- if (style.graphicTitle) {
+
+ if (style.graphicTitle) {
node.setAttributeNS(null, "title", style.graphicTitle);
}
if (style.graphicWidth && style.graphicHeight) {
@@ -11275,7 +11275,7 @@
style.graphicYOffset : -(0.5 * height);
var opacity = style.graphicOpacity || style.fillOpacity;
-
+
node.setAttributeNS(null, "x", (pos.x + xOffset).toFixed());
node.setAttributeNS(null, "y", (pos.y + yOffset).toFixed());
node.setAttributeNS(null, "width", width);
@@ -11289,7 +11289,7 @@
var id = this.importSymbol(style.graphicName);
pos = this.getPosition(node);
widthFactor = this.symbolSize[id] / size;
-
+
// remove the node from the dom before we modify it. This
// prevents various rendering issues in Safari and FF
var parent = node.parentNode;
@@ -11297,7 +11297,7 @@
if(parent) {
parent.removeChild(node);
}
-
+
if(this.supportUse === false) {
// workaround for webkit versions that cannot do defs/use
// (see https://bugs.webkit.org/show_bug.cgi?id=33322):
@@ -11313,7 +11313,7 @@
node.setAttributeNS(null, "height", size);
node.setAttributeNS(null, "x", pos.x - offset);
node.setAttributeNS(null, "y", pos.y - offset);
-
+
// now that the node has all its new properties, insert it
// back into the dom where it was
if(nextSibling) {
@@ -11338,7 +11338,7 @@
}
}
}
-
+
if (options.isFilled) {
node.setAttributeNS(null, "fill", style.fillColor);
node.setAttributeNS(null, "fill-opacity", style.fillOpacity);
@@ -11359,25 +11359,25 @@
} else {
node.setAttributeNS(null, "stroke", "none");
}
-
+
if (style.pointerEvents) {
node.setAttributeNS(null, "pointer-events", style.pointerEvents);
}
-
+
if (style.cursor != null) {
node.setAttributeNS(null, "cursor", style.cursor);
}
-
+
return node;
},
- /**
+ /**
* Method: dashStyle
- *
+ *
* Parameters:
* style - {Object}
* widthFactor - {Number}
- *
+ *
* Returns:
* {String} A SVG compliant 'stroke-dasharray' value
*/
@@ -11401,14 +11401,14 @@
return OpenLayers.String.trim(str).replace(/\s+/g, ",");
}
},
-
- /**
+
+ /**
* Method: createNode
- *
+ *
* Parameters:
* type - {String} Kind of node to draw
* id - {String} Id for node
- *
+ *
* Returns:
* {DOMElement} A new node of the given type and id
*/
@@ -11417,26 +11417,26 @@
if (id) {
node.setAttributeNS(null, "id", id);
}
- return node;
+ return node;
},
-
- /**
+
+ /**
* Method: nodeTypeCompare
- *
+ *
* Parameters:
* node - {SVGDomElement} An SVG element
* type - {String} Kind of node
- *
+ *
* Returns:
* {Boolean} Whether or not the specified node is of the specified type
*/
nodeTypeCompare: function(node, type) {
return (type == node.nodeName);
},
-
+
/**
* Method: createRenderRoot
- *
+ *
* Returns:
* {DOMElement} The specific render engine's root element
*/
@@ -11446,10 +11446,10 @@
/**
* Method: createRoot
- *
+ *
* Parameter:
* suffix - {String} suffix to append to the id
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -11478,14 +11478,14 @@
/**
* Method: drawPoint
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the point
- */
+ */
drawPoint: function(node, geometry) {
return this.drawCircle(node, geometry, 1);
},
@@ -11493,12 +11493,12 @@
/**
* Method: drawCircle
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* radius - {Float}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the circle
*/
@@ -11507,73 +11507,73 @@
var x = (geometry.x / resolution + this.left);
var y = (this.top - geometry.y / resolution);
- if (this.inValidRange(x, y)) {
+ if (this.inValidRange(x, y)) {
node.setAttributeNS(null, "cx", x);
node.setAttributeNS(null, "cy", y);
node.setAttributeNS(null, "r", radius);
return node;
} else {
return false;
- }
-
+ }
+
},
-
+
/**
* Method: drawLineString
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components of
* the linestring, or false if nothing could be drawn
- */
+ */
drawLineString: function(node, geometry) {
var componentsResult = this.getComponentsString(geometry.components);
if (componentsResult.path) {
node.setAttributeNS(null, "points", componentsResult.path);
- return (componentsResult.complete ? node : null);
+ return (componentsResult.complete ? node : null);
} else {
return false;
}
},
-
+
/**
* Method: drawLinearRing
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the linear ring, or false if nothing could be drawn
- */
+ */
drawLinearRing: function(node, geometry) {
var componentsResult = this.getComponentsString(geometry.components);
if (componentsResult.path) {
node.setAttributeNS(null, "points", componentsResult.path);
- return (componentsResult.complete ? node : null);
+ return (componentsResult.complete ? node : null);
} else {
return false;
}
},
-
+
/**
* Method: drawPolygon
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the polygon, or false if nothing could be drawn
- */
+ */
drawPolygon: function(node, geometry) {
var d = "";
var draw = true;
@@ -11598,26 +11598,26 @@
return complete ? node : null;
} else {
return false;
- }
+ }
},
-
+
/**
* Method: drawRectangle
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the rectangle
- */
+ */
drawRectangle: function(node, geometry) {
var resolution = this.getResolution();
var x = (geometry.x / resolution + this.left);
var y = (this.top - geometry.y / resolution);
- if (this.inValidRange(x, y)) {
+ if (this.inValidRange(x, y)) {
node.setAttributeNS(null, "x", x);
node.setAttributeNS(null, "y", y);
node.setAttributeNS(null, "width", geometry.width / resolution);
@@ -11627,18 +11627,18 @@
return false;
}
},
-
+
/**
* Method: drawSurface
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the surface
- */
+ */
drawSurface: function(node, geometry) {
// create the svg path string representation
@@ -11665,30 +11665,30 @@
return node;
} else {
return false;
- }
+ }
},
-
+
/**
* Method: drawText
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
* style -
* location - {<OpenLayers.Geometry.Point>}
*/
drawText: function(featureId, style, location) {
var resolution = this.getResolution();
-
+
var x = (location.x / resolution + this.left);
var y = (location.y / resolution - this.top);
-
+
var label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, "text");
var tspan = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_tspan", "tspan");
label.setAttributeNS(null, "x", x);
label.setAttributeNS(null, "y", -y);
-
+
if (style.fontColor) {
label.setAttributeNS(null, "fill", style.fontColor);
}
@@ -11723,20 +11723,20 @@
}
tspan.textContent = style.label;
-
+
if(!label.parentNode) {
label.appendChild(tspan);
this.textRoot.appendChild(label);
- }
+ }
},
-
- /**
+
+ /**
* Method: getComponentString
- *
+ *
* Parameters:
* components - {Array(<OpenLayers.Geometry.Point>)} Array of points
* separator - {String} character between coordinate pairs. Defaults to ","
- *
+ *
* Returns:
* {Object} hash with properties "path" (the string created from the
* components and "complete" (false if the renderer was unable to
@@ -11780,13 +11780,13 @@
complete: complete
};
},
-
+
/**
* Method: clipLine
* Given two points (one inside the valid range, and one outside),
* clips the line betweeen the two points so that the new points are both
* inside the valid range.
- *
+ *
* Parameters:
* badComponent - {<OpenLayers.Geometry.Point>)} original geometry of the
* invalid point
@@ -11822,12 +11822,12 @@
return x2 + "," + y2;
},
- /**
+ /**
* Method: getShortString
- *
+ *
* Parameters:
* point - {<OpenLayers.Geometry.Point>}
- *
+ *
* Returns:
* {String} or false if point is outside the valid range
*/
@@ -11836,20 +11836,20 @@
var x = (point.x / resolution + this.left);
var y = (this.top - point.y / resolution);
- if (this.inValidRange(x, y)) {
+ if (this.inValidRange(x, y)) {
return x + "," + y;
} else {
return false;
}
},
-
+
/**
* Method: getPosition
* Finds the position of an svg node.
- *
+ *
* Parameters:
* node - {DOMElement}
- *
+ *
* Returns:
* {Object} hash with x and y properties, representing the coordinates
* within the svg coordinate system
@@ -11864,25 +11864,25 @@
/**
* Method: importSymbol
* add a new symbol definition from the rendererer's symbol hash
- *
+ *
* Parameters:
* graphicName - {String} name of the symbol to import
- *
+ *
* Returns:
* {String} - id of the imported symbol
- */
+ */
importSymbol: function (graphicName) {
if (!this.defs) {
// create svg defs tag
this.defs = this.createDefs();
}
var id = this.container.id + "-" + graphicName;
-
+
// check if symbol already exists in the defs
if (document.getElementById(id) != null) {
return id;
}
-
+
var symbol = OpenLayers.Renderer.symbol[graphicName];
if (!symbol) {
throw new Error(graphicName + ' is not a valid symbol name');
@@ -11906,9 +11906,9 @@
symbolExtent.top = Math.max(symbolExtent.top, y);
points += " " + x + "," + y;
}
-
+
node.setAttributeNS(null, "points", points);
-
+
var width = symbolExtent.getWidth();
var height = symbolExtent.getHeight();
// create a viewBox three times as large as the symbol itself,
@@ -11917,19 +11917,19 @@
symbolExtent.bottom - height, width * 3, height * 3];
symbolNode.setAttributeNS(null, "viewBox", viewBox.join(" "));
this.symbolSize[id] = Math.max(width, height) * 3;
-
+
this.defs.appendChild(symbolNode);
return symbolNode.id;
},
-
+
/**
* Method: getFeatureIdFromEvent
- *
+ *
* Parameters:
* evt - {Object} An <OpenLayers.Event> object
*
* Returns:
- * {<OpenLayers.Geometry>} A geometry from an event that
+ * {<OpenLayers.Geometry>} A geometry from an event that
* happened on a layer.
*/
getFeatureIdFromEvent: function(evt) {
@@ -11967,7 +11967,7 @@
// bottom to the top of the baseline, so -35% moves the text to
// the center of the baseline.
"t": "-70%",
- "b": "0"
+ "b": "0"
};
/* ======================================================================
OpenLayers/Renderer/VML.js
@@ -11985,9 +11985,9 @@
* Class: OpenLayers.Renderer.VML
* Render vector features in browsers with VML capability. Construct a new
* VML renderer with the <OpenLayers.Renderer.VML> constructor.
- *
- * Note that for all calculations in this class, we use toFixed() to round a
- * float value to an integer. This is done because it seems that VML doesn't
+ *
+ * Note that for all calculations in this class, we use toFixed() to round a
+ * float value to an integer. This is done because it seems that VML doesn't
* support float values.
*
* Inherits from:
@@ -12000,7 +12000,7 @@
* {String} XML Namespace URN
*/
xmlns: "urn:schemas-microsoft-com:vml",
-
+
/**
* Property: symbolCache
* {DOMElement} node holding symbols. This hash is keyed by symbol name,
@@ -12013,7 +12013,7 @@
* {Object} Hash with "x" and "y" properties
*/
offset: null,
-
+
/**
* Constructor: OpenLayers.Renderer.VML
* Create a new VML renderer.
@@ -12022,21 +12022,21 @@
* containerID - {String} The id for the element that contains the renderer
*/
initialize: function(containerID) {
- if (!this.supported()) {
- return;
+ if (!this.supported()) {
+ return;
}
if (!document.namespaces.olv) {
document.namespaces.add("olv", this.xmlns);
var style = document.createStyleSheet();
- var shapes = ['shape','rect', 'oval', 'fill', 'stroke', 'imagedata', 'group','textbox'];
+ var shapes = ['shape','rect', 'oval', 'fill', 'stroke', 'imagedata', 'group','textbox'];
for (var i = 0, len = shapes.length; i < len; i++) {
style.addRule('olv\\:' + shapes[i], "behavior: url(#default#VML); " +
"position: absolute; display: inline-block;");
- }
+ }
}
-
- OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
+
+ OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
arguments);
this.offset = {x: 0, y: 0};
},
@@ -12058,7 +12058,7 @@
*/
supported: function() {
return !!(document.namespaces);
- },
+ },
/**
* Method: setExtent
@@ -12067,16 +12067,16 @@
* Parameters:
* extent - {<OpenLayers.Bounds>}
* resolutionChanged - {Boolean}
- *
+ *
* Returns:
* {Boolean} true to notify the layer that the new extent does not exceed
* the coordinate range, and the features will not need to be redrawn.
*/
setExtent: function(extent, resolutionChanged) {
- OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
+ OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
arguments);
var resolution = this.getResolution();
-
+
var left = extent.left/resolution;
var top = extent.top/resolution - this.size.h;
if (resolutionChanged) {
@@ -12088,7 +12088,7 @@
top = top - this.offset.y;
}
-
+
var org = left + " " + top;
this.root.coordorigin = org;
var roots = [this.root, this.vectorRoot, this.textRoot];
@@ -12098,12 +12098,12 @@
var size = this.size.w + " " + this.size.h;
root.coordsize = size;
-
+
}
- // flip the VML display Y axis upside down so it
+ // flip the VML display Y axis upside down so it
// matches the display Y axis of the map
this.root.style.flip = "y";
-
+
return true;
},
@@ -12117,7 +12117,7 @@
*/
setSize: function(size) {
OpenLayers.Renderer.prototype.setSize.apply(this, arguments);
-
+
// setting width and height on all roots to avoid flicker which we
// would get with 100% width and height on child roots
var roots = [
@@ -12182,7 +12182,7 @@
* Parameters:
* node - {DOMElement} An VML element to decorate
* style - {Object}
- * options - {Object} Currently supported options include
+ * options - {Object} Currently supported options include
* 'isFilled' {Boolean} and
* 'isStroked' {Boolean}
* geometry - {<OpenLayers.Geometry>}
@@ -12191,12 +12191,12 @@
style = style || node._style;
options = options || node._options;
var widthFactor = 1;
-
+
if (node._geometryClass == "OpenLayers.Geometry.Point") {
if (style.externalGraphic) {
- if (style.graphicTitle) {
+ if (style.graphicTitle) {
node.title=style.graphicTitle;
- }
+ }
var width = style.graphicWidth || style.graphicHeight;
var height = style.graphicHeight || style.graphicWidth;
width = width ? width : style.pointRadius*2;
@@ -12207,13 +12207,13 @@
style.graphicXOffset : -(0.5 * width);
var yOffset = (style.graphicYOffset != undefined) ?
style.graphicYOffset : -(0.5 * height);
-
+
node.style.left = ((geometry.x/resolution - this.offset.x)+xOffset).toFixed();
node.style.top = ((geometry.y/resolution - this.offset.y)-(yOffset+height)).toFixed();
node.style.width = width + "px";
node.style.height = height + "px";
node.style.flip = "y";
-
+
// modify style/options for fill and stroke styling below
style.fillColor = "none";
options.isStroked = false;
@@ -12222,7 +12222,7 @@
node.path = cache.path;
node.coordorigin = cache.left + "," + cache.bottom;
var size = cache.size;
- node.coordsize = size + "," + size;
+ node.coordsize = size + "," + size;
this.drawCircle(node, geometry, style.pointRadius);
node.style.flip = "y";
} else {
@@ -12230,11 +12230,11 @@
}
}
- // fill
- if (options.isFilled) {
- node.fillcolor = style.fillColor;
- } else {
- node.filled = "false";
+ // fill
+ if (options.isFilled) {
+ node.fillcolor = style.fillColor;
+ } else {
+ node.filled = "false";
}
var fills = node.getElementsByTagName("fill");
var fill = (fills.length == 0) ? null : fills[0];
@@ -12255,13 +12255,13 @@
if (style.graphicOpacity) {
fill.opacity = style.graphicOpacity;
}
-
+
fill.src = style.externalGraphic;
fill.type = "frame";
-
+
if (!(style.graphicWidth && style.graphicHeight)) {
fill.aspect = "atmost";
- }
+ }
}
if (fill.parentNode != node) {
node.appendChild(fill);
@@ -12282,12 +12282,12 @@
}
}
- // stroke
- if (options.isStroked) {
- node.strokecolor = style.strokeColor;
- node.strokeweight = style.strokeWidth + "px";
- } else {
- node.stroked = false;
+ // stroke
+ if (options.isStroked) {
+ node.strokecolor = style.strokeColor;
+ node.strokeweight = style.strokeWidth + "px";
+ } else {
+ node.stroked = false;
}
var strokes = node.getElementsByTagName("stroke");
var stroke = (strokes.length == 0) ? null : strokes[0];
@@ -12304,7 +12304,7 @@
stroke.endcap = !style.strokeLinecap || style.strokeLinecap == 'butt' ? 'flat' : style.strokeLinecap;
stroke.dashstyle = this.dashStyle(style);
}
-
+
if (style.cursor != "inherit" && style.cursor != null) {
node.style.cursor = style.cursor;
}
@@ -12324,7 +12324,7 @@
* insertion point of the rotated image, because DXImageTransform.Matrix
* does the rotation without the ability to specify a rotation center
* point.
- *
+ *
* Parameters:
* node - {DOMElement}
* xOffset - {Number} rotation center relative to image, x coordinate
@@ -12333,7 +12333,7 @@
graphicRotate: function(node, xOffset, yOffset) {
var style = style || node._style;
var options = node._options;
-
+
var aspectRatio, size;
if (!(style.graphicWidth && style.graphicHeight)) {
// load the image to determine its size
@@ -12342,7 +12342,7 @@
if(img.readyState == "complete" ||
img.readyState == "interactive") {
aspectRatio = img.width / img.height;
- size = Math.max(style.pointRadius * 2,
+ size = Math.max(style.pointRadius * 2,
style.graphicWidth || 0,
style.graphicHeight || 0);
xOffset = xOffset * aspectRatio;
@@ -12352,19 +12352,19 @@
}
}, this);
img.src = style.externalGraphic;
-
+
// will be called again by the onreadystate handler
return;
} else {
size = Math.max(style.graphicWidth, style.graphicHeight);
aspectRatio = style.graphicWidth / style.graphicHeight;
}
-
+
var width = Math.round(style.graphicWidth || size * aspectRatio);
var height = Math.round(style.graphicHeight || size);
node.style.width = width + "px";
node.style.height = height + "px";
-
+
// Three steps are required to remove artefacts for images with
// transparent backgrounds (resulting from using DXImageTransform
// filters on svg objects), while preserving awareness for browser
@@ -12383,7 +12383,7 @@
image.style.height = height + "px";
image.src = style.externalGraphic;
image.style.filter =
- "progid:DXImageTransform.Microsoft.AlphaImageLoader(" +
+ "progid:DXImageTransform.Microsoft.AlphaImageLoader(" +
"src='', sizingMethod='scale')";
var rotation = style.rotation * Math.PI / 180;
@@ -12399,8 +12399,8 @@
// set the opacity (needed for the imagedata)
var opacity = style.graphicOpacity || style.fillOpacity;
if (opacity && opacity != 1) {
- filter +=
- "progid:DXImageTransform.Microsoft.BasicImage(opacity=" +
+ filter +=
+ "progid:DXImageTransform.Microsoft.BasicImage(opacity=" +
opacity+")\n";
}
node.style.filter = filter;
@@ -12423,7 +12423,7 @@
* and strokecolor to "none" correctly before the fill node is appended to
* a visible vml node. This method takes care of that and sets fillcolor
* and strokecolor again if needed.
- *
+ *
* Parameters:
* node - {DOMElement}
*/
@@ -12443,9 +12443,9 @@
/**
* Method: setNodeDimension
- * Get the geometry's bounds, convert it to our vml coordinate system,
+ * Get the geometry's bounds, convert it to our vml coordinate system,
* then set the node's position, size, and local coordinate system.
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
@@ -12455,30 +12455,30 @@
var bbox = geometry.getBounds();
if(bbox) {
var resolution = this.getResolution();
-
- var scaledBox =
+
+ var scaledBox =
new OpenLayers.Bounds((bbox.left/resolution - this.offset.x).toFixed(),
(bbox.bottom/resolution - this.offset.y).toFixed(),
(bbox.right/resolution - this.offset.x).toFixed(),
(bbox.top/resolution - this.offset.y).toFixed());
-
+
// Set the internal coordinate system to draw the path
node.style.left = scaledBox.left + "px";
node.style.top = scaledBox.top + "px";
node.style.width = scaledBox.getWidth() + "px";
node.style.height = scaledBox.getHeight() + "px";
-
+
node.coordorigin = scaledBox.left + " " + scaledBox.top;
node.coordsize = scaledBox.getWidth()+ " " + scaledBox.getHeight();
}
},
-
- /**
+
+ /**
* Method: dashStyle
- *
+ *
* Parameters:
* style - {Object}
- *
+ *
* Returns:
* {String} A VML compliant 'stroke-dasharray' value
*/
@@ -12524,15 +12524,15 @@
if (id) {
node.id = id;
}
-
+
// IE hack to make elements unselectable, to prevent 'blue flash'
// while dragging vectors; #1410
node.unselectable = 'on';
node.onselectstart = function() { return(false); };
-
- return node;
+
+ return node;
},
-
+
/**
* Method: nodeTypeCompare
* Determine whether a node is of a given type
@@ -12577,7 +12577,7 @@
/**
* Method: createRoot
* Create the main root element
- *
+ *
* Parameters:
* suffix - {String} suffix to append to the id
*
@@ -12587,21 +12587,21 @@
createRoot: function(suffix) {
return this.nodeFactory(this.container.id + suffix, "olv:group");
},
-
+
/**************************************
* *
* GEOMETRY DRAWING FUNCTIONS *
* *
**************************************/
-
+
/**
* Method: drawPoint
* Render a point
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the point could not be drawn
*/
@@ -12613,12 +12613,12 @@
* Method: drawCircle
* Render a circle.
* Size and Center a circle given geometry (x,y center) and radius
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* radius - {float}
- *
+ *
* Returns:
* {DOMElement} or false if the circle could not ne drawn
*/
@@ -12628,9 +12628,9 @@
node.style.left = ((geometry.x /resolution - this.offset.x).toFixed() - radius) + "px";
node.style.top = ((geometry.y /resolution - this.offset.y).toFixed() - radius) + "px";
-
+
var diameter = radius * 2;
-
+
node.style.width = diameter + "px";
node.style.height = diameter + "px";
return node;
@@ -12642,11 +12642,11 @@
/**
* Method: drawLineString
* Render a linestring.
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12657,11 +12657,11 @@
/**
* Method: drawLinearRing
* Render a linearring
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12672,12 +12672,12 @@
/**
* Method: DrawLine
* Render a line.
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* closeLine - {Boolean} Close the line? (make it a ring?)
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12704,11 +12704,11 @@
/**
* Method: drawPolygon
* Render a polygon
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12716,7 +12716,7 @@
this.setNodeDimension(node, geometry);
var resolution = this.getResolution();
-
+
var path = [];
var linearRing, i, j, len, ilen, comp, x, y;
for (j = 0, len=geometry.components.length; j<len; j++) {
@@ -12742,30 +12742,30 @@
/**
* Method: drawRectangle
* Render a rectangle
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
drawRectangle: function(node, geometry) {
var resolution = this.getResolution();
-
+
node.style.left = (geometry.x/resolution - this.offset.x) + "px";
node.style.top = (geometry.y/resolution - this.offset.y) + "px";
node.style.width = geometry.width/resolution + "px";
node.style.height = geometry.height/resolution + "px";
-
+
return node;
},
-
+
/**
* Method: drawText
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
* style -
* location - {<OpenLayers.Geometry.Point>}
@@ -12773,7 +12773,7 @@
drawText: function(featureId, style, location) {
var label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, "olv:rect");
var textbox = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_textbox", "olv:textbox");
-
+
var resolution = this.getResolution();
label.style.left = (location.x/resolution - this.offset.x).toFixed() + "px";
label.style.top = (location.y/resolution - this.offset.y).toFixed() + "px";
@@ -12815,11 +12815,11 @@
/**
* Method: drawSurface
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12828,7 +12828,7 @@
this.setNodeDimension(node, geometry);
var resolution = this.getResolution();
-
+
var path = [];
var comp, x, y;
for (var i=0, len=geometry.components.length; i<len; i++) {
@@ -12847,17 +12847,17 @@
node.path = path.join("");
return node;
},
-
+
/**
* Method: moveRoot
* moves this renderer's root to a different renderer.
- *
+ *
* Parameters:
* renderer - {<OpenLayers.Renderer>} target renderer for the moved root
* root - {DOMElement} optional root node. To be used when this renderer
* holds roots from multiple layers to tell this method which one to
* detach
- *
+ *
* Returns:
* {Boolean} true if successful, false otherwise
*/
@@ -12870,26 +12870,26 @@
OpenLayers.Renderer.Elements.prototype.moveRoot.apply(this, arguments);
layer && layer.redraw();
},
-
+
/**
* Method: importSymbol
* add a new symbol definition from the rendererer's symbol hash
- *
+ *
* Parameters:
* graphicName - {String} name of the symbol to import
- *
+ *
* Returns:
* {Object} - hash of {DOMElement} "symbol" and {Number} "size"
- */
+ */
importSymbol: function (graphicName) {
var id = this.container.id + "-" + graphicName;
-
+
// check if symbol already exists in the cache
var cache = this.symbolCache[id];
if (cache) {
return cache;
}
-
+
var symbol = OpenLayers.Renderer.symbol[graphicName];
if (!symbol) {
throw new Error(graphicName + ' is not a valid symbol name');
@@ -12898,7 +12898,7 @@
var symbolExtent = new OpenLayers.Bounds(
Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
-
+
var pathitems = ["m"];
for (var i=0; i<symbol.length; i=i+2) {
x = symbol[i];
@@ -12925,7 +12925,7 @@
symbolExtent.left = symbolExtent.left - diff;
symbolExtent.right = symbolExtent.right + diff;
}
-
+
cache = {
path: path,
size: symbolExtent.getWidth(), // equals getHeight() now
@@ -12933,10 +12933,10 @@
bottom: symbolExtent.bottom
};
this.symbolCache[id] = cache;
-
+
return cache;
},
-
+
CLASS_NAME: "OpenLayers.Renderer.VML"
});
@@ -12967,70 +12967,70 @@
*/
/*
- * Class: OpenLayers.Tile
+ * Class: OpenLayers.Tile
* This is a class designed to designate a single tile, however
- * it is explicitly designed to do relatively little. Tiles store
+ * it is explicitly designed to do relatively little. Tiles store
* information about themselves -- such as the URL that they are related
- * to, and their size - but do not add themselves to the layer div
- * automatically, for example. Create a new tile with the
- * <OpenLayers.Tile> constructor, or a subclass.
- *
+ * to, and their size - but do not add themselves to the layer div
+ * automatically, for example. Create a new tile with the
+ * <OpenLayers.Tile> constructor, or a subclass.
+ *
* TBD 3.0 - remove reference to url in above paragraph
- *
+ *
*/
OpenLayers.Tile = OpenLayers.Class({
-
- /**
+
+ /**
* Constant: EVENT_TYPES
* {Array(String)} Supported application event types
*/
EVENT_TYPES: [ "loadstart", "loadend", "reload", "unload"],
-
+
/**
* APIProperty: events
- * {<OpenLayers.Events>} An events object that handles all
+ * {<OpenLayers.Events>} An events object that handles all
* events on the tile.
*/
events: null,
/**
- * Property: id
+ * Property: id
* {String} null
*/
id: null,
-
- /**
- * Property: layer
- * {<OpenLayers.Layer>} layer the tile is attached to
+
+ /**
+ * Property: layer
+ * {<OpenLayers.Layer>} layer the tile is attached to
*/
layer: null,
-
+
/**
* Property: url
* {String} url of the request.
*
- * TBD 3.0
- * Deprecated. The base tile class does not need an url. This should be
+ * TBD 3.0
+ * Deprecated. The base tile class does not need an url. This should be
* handled in subclasses. Does not belong here.
*/
url: null,
- /**
- * APIProperty: bounds
+ /**
+ * APIProperty: bounds
* {<OpenLayers.Bounds>} null
*/
bounds: null,
-
- /**
- * Property: size
+
+ /**
+ * Property: size
* {<OpenLayers.Size>} null
*/
size: null,
-
- /**
- * Property: position
+
+ /**
+ * Property: position
* {<OpenLayers.Pixel>} Top Left pixel of the tile
- */
+ */
position: null,
/**
@@ -13038,20 +13038,20 @@
* {Boolean} Is the tile loading?
*/
isLoading: false,
-
+
/** TBD 3.0 -- remove 'url' from the list of parameters to the constructor.
* there is no need for the base tile class to have a url.
- *
+ *
* Constructor: OpenLayers.Tile
* Constructor for a new <OpenLayers.Tile> instance.
- *
+ *
* Parameters:
* layer - {<OpenLayers.Layer>} layer that the tile will go in.
* position - {<OpenLayers.Pixel>}
* bounds - {<OpenLayers.Bounds>}
* url - {<String>}
* size - {<OpenLayers.Size>}
- */
+ */
initialize: function(layer, position, bounds, url, size) {
this.layer = layer;
this.position = position.clone();
@@ -13061,7 +13061,7 @@
//give the tile a unique id based on its BBOX.
this.id = OpenLayers.Util.createUniqueID("Tile_");
-
+
this.events = new OpenLayers.Events(this, null, this.EVENT_TYPES);
},
@@ -13073,13 +13073,13 @@
* still loading.
*/
unload: function() {
- if (this.isLoading) {
- this.isLoading = false;
- this.events.triggerEvent("unload");
+ if (this.isLoading) {
+ this.isLoading = false;
+ this.events.triggerEvent("unload");
}
},
-
- /**
+
+ /**
* APIMethod: destroy
* Nullify references to prevent circular references and memory leaks.
*/
@@ -13088,11 +13088,11 @@
this.bounds = null;
this.size = null;
this.position = null;
-
+
this.events.destroy();
this.events = null;
},
-
+
/**
* Method: clone
*
@@ -13104,27 +13104,27 @@
*/
clone: function (obj) {
if (obj == null) {
- obj = new OpenLayers.Tile(this.layer,
- this.position,
- this.bounds,
- this.url,
+ obj = new OpenLayers.Tile(this.layer,
+ this.position,
+ this.bounds,
+ this.url,
this.size);
- }
-
+ }
+
// catch any randomly tagged-on properties
OpenLayers.Util.applyDefaults(obj, this);
-
+
return obj;
},
/**
* Method: draw
- * Clear whatever is currently in the tile, then return whether or not
+ * Clear whatever is currently in the tile, then return whether or not
* it should actually be re-drawn.
- *
+ *
* Returns:
- * {Boolean} Whether or not the tile should actually be drawn. Note that
- * this is not really the best way of doing things, but such is
+ * {Boolean} Whether or not the tile should actually be drawn. Note that
+ * this is not really the best way of doing things, but such is
* the way the code has been developed. Subclasses call this and
* depend on the return to know if they should draw or not.
*/
@@ -13132,18 +13132,18 @@
var maxExtent = this.layer.maxExtent;
var withinMaxExtent = (maxExtent &&
this.bounds.intersectsBounds(maxExtent, false));
-
- // The only case where we *wouldn't* want to draw the tile is if the
+
+ // The only case where we *wouldn't* want to draw the tile is if the
// tile is outside its layer's maxExtent.
this.shouldDraw = (withinMaxExtent || this.layer.displayOutsideMaxExtent);
-
+
//clear tile's contents and mark as not drawn
this.clear();
-
+
return this.shouldDraw;
},
-
- /**
+
+ /**
* Method: moveTo
* Reposition the tile.
*
@@ -13165,75 +13165,75 @@
}
},
- /**
+ /**
* Method: clear
- * Clear the tile of any bounds/position-related data so that it can
+ * Clear the tile of any bounds/position-related data so that it can
* be reused in a new location. To be implemented by subclasses.
*/
clear: function() {
// to be implemented by subclasses
},
-
- /**
+
+ /**
* Method: getBoundsFromBaseLayer
- * Take the pixel locations of the corner of the tile, and pass them to
- * the base layer and ask for the location of those pixels, so that
+ * Take the pixel locations of the corner of the tile, and pass them to
+ * the base layer and ask for the location of those pixels, so that
* displaying tiles over Google works fine.
*
* Parameters:
* position - {<OpenLayers.Pixel>}
*
* Returns:
- * bounds - {<OpenLayers.Bounds>}
+ * bounds - {<OpenLayers.Bounds>}
*/
getBoundsFromBaseLayer: function(position) {
var msg = OpenLayers.i18n('reprojectDeprecated',
{'layerName':this.layer.name});
OpenLayers.Console.warn(msg);
- var topLeft = this.layer.map.getLonLatFromLayerPx(position);
+ var topLeft = this.layer.map.getLonLatFromLayerPx(position);
var bottomRightPx = position.clone();
bottomRightPx.x += this.size.w;
bottomRightPx.y += this.size.h;
- var bottomRight = this.layer.map.getLonLatFromLayerPx(bottomRightPx);
+ var bottomRight = this.layer.map.getLonLatFromLayerPx(bottomRightPx);
// Handle the case where the base layer wraps around the date line.
- // Google does this, and it breaks WMS servers to request bounds in
- // that fashion.
+ // Google does this, and it breaks WMS servers to request bounds in
+ // that fashion.
if (topLeft.lon > bottomRight.lon) {
if (topLeft.lon < 0) {
topLeft.lon = -180 - (topLeft.lon+180);
} else {
bottomRight.lon = 180+bottomRight.lon+180;
- }
+ }
}
- var bounds = new OpenLayers.Bounds(topLeft.lon,
- bottomRight.lat,
- bottomRight.lon,
- topLeft.lat);
+ var bounds = new OpenLayers.Bounds(topLeft.lon,
+ bottomRight.lat,
+ bottomRight.lon,
+ topLeft.lat);
return bounds;
- },
-
- /**
+ },
+
+ /**
* Method: showTile
* Show the tile only if it should be drawn.
*/
- showTile: function() {
+ showTile: function() {
if (this.shouldDraw) {
this.show();
}
},
-
- /**
+
+ /**
* Method: show
* Show the tile. To be implemented by subclasses.
*/
show: function() { },
-
- /**
+
+ /**
* Method: hide
* Hide the tile. To be implemented by subclasses.
*/
hide: function() { },
-
+
CLASS_NAME: "OpenLayers.Tile"
});
/* ======================================================================
@@ -13260,7 +13260,7 @@
* - <OpenLayers.Format>
*/
OpenLayers.Format.XML = OpenLayers.Class(OpenLayers.Format, {
-
+
/**
* Property: namespaces
* {Object} Mapping of namespace aliases to namespace URIs. Properties
@@ -13269,20 +13269,20 @@
* <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
@@ -13292,7 +13292,7 @@
* from the parent.
*/
readers: {},
-
+
/**
* Property: writers
* As a compliment to the <readers> property, this structure contains public
@@ -13333,7 +13333,7 @@
this.namespaceAlias[this.namespaces[alias]] = alias;
}
},
-
+
/**
* APIMethod: destroy
* Clean up.
@@ -13342,7 +13342,7 @@
this.xmldom = null;
OpenLayers.Format.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: setNamespace
* Set a namespace alias and URI for the format.
@@ -13362,7 +13362,7 @@
*
* Parameters:
* text - {String} A XML string
-
+
* Returns:
* {DOMElement} A DOM node
*/
@@ -13383,7 +13383,7 @@
xmldom = new ActiveXObject("Microsoft.XMLDOM");
} else {
xmldom = this.xmldom;
-
+
}
xmldom.loadXML(text);
return xmldom;
@@ -13414,7 +13414,7 @@
/**
* APIMethod: write
* Serialize a DOM node into a XML string.
- *
+ *
* Parameters:
* node - {DOMElement} A DOM node.
*
@@ -13453,7 +13453,7 @@
* 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.
*/
@@ -13476,11 +13476,11 @@
* 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:
+ *
+ * Returns:
* {DOMElement} A DOM text node.
*/
createTextNode: function(text) {
@@ -13499,12 +13499,12 @@
* 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.
*/
@@ -13533,12 +13533,12 @@
/**
* 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.
*/
@@ -13567,12 +13567,12 @@
/**
* 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.
*/
@@ -13588,7 +13588,7 @@
}
return attributeValue;
},
-
+
/**
* APIMethod: getChildValue
* Get the textual value of the node if it exists, or return an
@@ -13650,7 +13650,7 @@
}
return value;
},
-
+
/**
* APIMethod: isSimpleContent
* Test if the given node has only simple content (i.e. no child element
@@ -13660,7 +13660,7 @@
* node - {DOMElement} An element node.
*
* Returns:
- * {Boolean} The node has no child element nodes (nodes of type 1).
+ * {Boolean} The node has no child element nodes (nodes of type 1).
*/
isSimpleContent: function(node) {
var simple = true;
@@ -13672,7 +13672,7 @@
}
return simple;
},
-
+
/**
* APIMethod: contentType
* Determine the content type for a given node.
@@ -13687,7 +13687,7 @@
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) {
@@ -13704,7 +13704,7 @@
break;
}
}
-
+
if(complex && simple) {
type = OpenLayers.Format.XML.CONTENT_TYPE.MIXED;
} else if(complex) {
@@ -13719,12 +13719,12 @@
* 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.
*/
@@ -13737,7 +13737,7 @@
}
return found;
},
-
+
/**
* APIMethod: setAttributeNS
* Adds a new attribute or changes the value of an attribute with the given
@@ -13817,7 +13817,7 @@
}
return node;
},
-
+
/**
* Method: setAttributes
* Set multiple attributes given key value pairs from an object.
@@ -13956,7 +13956,7 @@
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
@@ -13975,7 +13975,7 @@
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
@@ -14017,7 +14017,7 @@
}
return sibling || null;
},
-
+
/**
* APIMethod: lookupNamespaceURI
* Takes a prefix and returns the namespace URI associated with it on the given
@@ -14030,11 +14030,11 @@
*
* 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.
@@ -14078,7 +14078,7 @@
case 10: // DOCUMENT_TYPE_NODE
case 11: // DOCUMENT_FRAGMENT_NODE
break outer;
- default:
+ 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);
@@ -14088,11 +14088,11 @@
}
return uri;
},
-
- CLASS_NAME: "OpenLayers.Format.XML"
-});
+ CLASS_NAME: "OpenLayers.Format.XML"
+});
+
OpenLayers.Format.XML.CONTENT_TYPE = {EMPTY: 0, SIMPLE: 1, COMPLEX: 2, MIXED: 3};
/**
@@ -14107,11 +14107,11 @@
*
* 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.
@@ -14147,7 +14147,7 @@
* correspond to these abstract events - so instead of listening for
* individual browser events, they only listen for the abstract events
* defined by the handler.
- *
+ *
* Handlers are created by controls, which ultimately have the responsibility
* of making changes to the the state of the application. Handlers
* themselves may make temporary changes, but in general are expected to
@@ -14160,7 +14160,7 @@
* {String}
*/
id: null,
-
+
/**
* APIProperty: control
* {<OpenLayers.Control>}. The control that initialized this handler. The
@@ -14199,7 +14199,7 @@
* {Boolean}
*/
active: false,
-
+
/**
* Property: evt
* {Event} This property references the last event handled by the handler.
@@ -14230,14 +14230,14 @@
this.control = control;
this.callbacks = callbacks;
if (control.map) {
- this.setMap(control.map);
+ this.setMap(control.map);
}
OpenLayers.Util.extend(this, options);
-
+
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
-
+
/**
* Method: setMap
*/
@@ -14263,7 +14263,7 @@
(evt.shiftKey ? OpenLayers.Handler.MOD_SHIFT : 0) |
(evt.ctrlKey ? OpenLayers.Handler.MOD_CTRL : 0) |
(evt.altKey ? OpenLayers.Handler.MOD_ALT : 0);
-
+
/* if it differs from the handler object's key mask,
bail out of the event handler */
return (keyModifiers == this.keyMask);
@@ -14272,8 +14272,8 @@
/**
* APIMethod: activate
* Turn on the handler. Returns false if the handler was already active.
- *
- * Returns:
+ *
+ * Returns:
* {Boolean} The handler was activated.
*/
activate: function() {
@@ -14284,17 +14284,17 @@
var events = OpenLayers.Events.prototype.BROWSER_EVENTS;
for (var i=0, len=events.length; i<len; i++) {
if (this[events[i]]) {
- this.register(events[i], this[events[i]]);
+ this.register(events[i], this[events[i]]);
}
- }
+ }
this.active = true;
return true;
},
-
+
/**
* APIMethod: deactivate
* Turn off the handler. Returns false if the handler was already inactive.
- *
+ *
* Returns:
* {Boolean} The handler was deactivated.
*/
@@ -14306,9 +14306,9 @@
var events = OpenLayers.Events.prototype.BROWSER_EVENTS;
for (var i=0, len=events.length; i<len; i++) {
if (this[events[i]]) {
- this.unregister(events[i], this[events[i]]);
+ this.unregister(events[i], this[events[i]]);
}
- }
+ }
this.active = false;
return true;
},
@@ -14320,7 +14320,7 @@
* Parameters:
* name - {String} The key for the callback that is one of the properties
* of the handler's callbacks object.
- * args - {Array(*)} An array of arguments (any type) with which to call
+ * args - {Array(*)} An array of arguments (any type) with which to call
* the callback (defined by the control).
*/
callback: function (name, args) {
@@ -14344,10 +14344,10 @@
* unregister an event from the map
*/
unregister: function (name, method) {
- this.map.events.unregister(name, this, method);
+ this.map.events.unregister(name, this, method);
this.map.events.unregister(name, this, this.setEvent);
},
-
+
/**
* Method: setEvent
* With each registered browser event, the handler sets its own evt
@@ -14378,7 +14378,7 @@
// unregister event listeners
this.deactivate();
// eliminate circular references
- this.control = this.map = null;
+ this.control = this.map = null;
},
CLASS_NAME: "OpenLayers.Handler"
@@ -14428,16 +14428,16 @@
* Class: OpenLayers.Map
* Instances of OpenLayers.Map are interactive maps embedded in a web page.
* Create a new map with the <OpenLayers.Map> constructor.
- *
+ *
* On their own maps do not provide much functionality. To extend a map
- * it's necessary to add controls (<OpenLayers.Control>) and
- * layers (<OpenLayers.Layer>) to the map.
+ * it's necessary to add controls (<OpenLayers.Control>) and
+ * layers (<OpenLayers.Layer>) to the map.
*/
OpenLayers.Map = OpenLayers.Class({
-
+
/**
* Constant: Z_INDEX_BASE
- * {Object} Base z-indexes for different classes of thing
+ * {Object} Base z-indexes for different classes of thing
*/
Z_INDEX_BASE: {
BaseLayer: 100,
@@ -14469,7 +14469,7 @@
*
* Supported map event types:
* - *preaddlayer* triggered before a layer has been added. The event
- * object will include a *layer* property that references the layer
+ * object will include a *layer* property that references the layer
* to be added.
* - *addlayer* triggered after a layer has been added. The event object
* will include a *layer* property that references the added layer.
@@ -14497,7 +14497,7 @@
* - *dragend* Does not work. Register for moveend instead.
* - *changebaselayer* triggered after the base layer changes
*/
- EVENT_TYPES: [
+ EVENT_TYPES: [
"preaddlayer", "addlayer", "removelayer", "changelayer", "movestart",
"move", "moveend", "zoomend", "popupopen", "popupclose",
"addmarker", "removemarker", "clearmarkers", "mouseover",
@@ -14509,7 +14509,7 @@
* {String} Unique identifier for the map
*/
id: null,
-
+
/**
* Property: fractionalZoom
* {Boolean} For a base layer that supports it, allow the map resolution
@@ -14528,14 +14528,14 @@
* former works for non-integer zoom levels.
*/
fractionalZoom: false,
-
+
/**
* APIProperty: events
- * {<OpenLayers.Events>} An events object that handles all
+ * {<OpenLayers.Events>} An events object that handles all
* events on the map
*/
events: null,
-
+
/**
* APIProperty: allOverlays
* {Boolean} Allow the map to function with "overlays" only. Defaults to
@@ -14562,13 +14562,13 @@
* div property may or may not be provided. If the div property
* is not provided, the map can be rendered to a container later
* using the <render> method.
- *
+ *
* Note: If you calling <render> after map construction, do not use
* <maxResolution> auto. Instead, divide your <maxExtent> by your
* maximum expected dimension.
*/
div: null,
-
+
/**
* Property: dragging
* {Boolean} The map is currently being dragged.
@@ -14580,7 +14580,7 @@
* {<OpenLayers.Size>} Size of the main div (this.div)
*/
size: null,
-
+
/**
* Property: viewPortDiv
* {HTMLDivElement} The element that represents the map viewport
@@ -14631,7 +14631,7 @@
* min/max zoom level, projection, etc.
*/
baseLayer: null,
-
+
/**
* Property: center
* {<OpenLayers.LonLat>} The current center of the map
@@ -14648,25 +14648,25 @@
* Property: zoom
* {Integer} The current zoom level of the map
*/
- zoom: 0,
+ zoom: 0,
/**
* Property: panRatio
* {Float} The ratio of the current extent within
* which panning will tween.
*/
- panRatio: 1.5,
+ panRatio: 1.5,
/**
* Property: viewRequestID
- * {String} Used to store a unique identifier that changes when the map
- * view changes. viewRequestID should be used when adding data
- * asynchronously to the map: viewRequestID is incremented when
- * you initiate your request (right now during changing of
- * baselayers and changing of zooms). It is stored here in the
- * map and also in the data that will be coming back
- * asynchronously. Before displaying this data on request
- * completion, we check that the viewRequestID of the data is
+ * {String} Used to store a unique identifier that changes when the map
+ * view changes. viewRequestID should be used when adding data
+ * asynchronously to the map: viewRequestID is incremented when
+ * you initiate your request (right now during changing of
+ * baselayers and changing of zooms). It is stored here in the
+ * map and also in the data that will be coming back
+ * asynchronously. Before displaying this data on request
+ * completion, we check that the viewRequestID of the data is
* still the same as that of the map. Fix for #480
*/
viewRequestID: 0,
@@ -14682,12 +14682,12 @@
/**
* APIProperty: projection
- * {String} Set in the map options to override the default projection
- * string this map - also set maxExtent, maxResolution, and
+ * {String} Set in the map options to override the default projection
+ * string this map - also set maxExtent, maxResolution, and
* units if appropriate. Default is "EPSG:4326".
*/
- projection: "EPSG:4326",
-
+ projection: "EPSG:4326",
+
/**
* APIProperty: units
* {String} The map units. Defaults to 'degrees'. Possible values are
@@ -14697,9 +14697,9 @@
/**
* APIProperty: resolutions
- * {Array(Float)} A list of map resolutions (map units per pixel) in
- * descending order. If this is not set in the layer constructor, it
- * will be set based on other resolution related properties
+ * {Array(Float)} A list of map resolutions (map units per pixel) in
+ * descending order. If this is not set in the layer constructor, it
+ * will be set based on other resolution related properties
* (maxExtent, maxResolution, maxScale, etc.).
*/
resolutions: null,
@@ -14707,8 +14707,8 @@
/**
* APIProperty: maxResolution
* {Float} Default max is 360 deg / 256 px, which corresponds to
- * zoom level 0 on gmaps. Specify a different value in the map
- * options if you are not using a geographic projection and
+ * zoom level 0 on gmaps. Specify a different value in the map
+ * options if you are not using a geographic projection and
* displaying the whole world.
*/
maxResolution: 1.40625,
@@ -14734,20 +14734,20 @@
/**
* APIProperty: maxExtent
* {<OpenLayers.Bounds>} The maximum extent for the map. Defaults to the
- * whole world in decimal degrees
+ * whole world in decimal degrees
* (-180, -90, 180, 90). Specify a different
- * extent in the map options if you are not using a
- * geographic projection and displaying the whole
+ * extent in the map options if you are not using a
+ * geographic projection and displaying the whole
* world.
*/
maxExtent: null,
-
+
/**
* APIProperty: minExtent
* {<OpenLayers.Bounds>}
*/
minExtent: null,
-
+
/**
* APIProperty: restrictedExtent
* {<OpenLayers.Bounds>} Limit map navigation to this extent where possible.
@@ -14769,18 +14769,18 @@
/**
* APIProperty: theme
* {String} Relative path to a CSS file from which to load theme styles.
- * Specify null in the map options (e.g. {theme: null}) if you
- * want to get cascading style declarations - by putting links to
+ * Specify null in the map options (e.g. {theme: null}) if you
+ * want to get cascading style declarations - by putting links to
* stylesheets or style declarations directly in your page.
*/
theme: null,
-
- /**
+
+ /**
* APIProperty: displayProjection
* {<OpenLayers.Projection>} Requires proj4js support.Projection used by
* several controls to display data to user. If this property is set,
* it will be set on any control which has a null displayProjection
- * property at the time the control is added to the map.
+ * property at the time the control is added to the map.
*/
displayProjection: null,
@@ -14791,7 +14791,7 @@
* Default is to fall through.
*/
fallThrough: true,
-
+
/**
* Property: panTween
* {OpenLayers.Tween} Animated panning tween object, see panTo()
@@ -14814,7 +14814,7 @@
* animated panning.
*/
panMethod: OpenLayers.Easing.Expo.easeOut,
-
+
/**
* Property: panDuration
* {Integer} The number of steps to be passed to the
@@ -14823,14 +14823,14 @@
* Default is 50.
*/
panDuration: 50,
-
+
/**
* Property: paddingForPopups
- * {<OpenLayers.Bounds>} Outside margin of the popup. Used to prevent
+ * {<OpenLayers.Bounds>} Outside margin of the popup. Used to prevent
* the popup from getting too close to the map border.
*/
paddingForPopups : null,
-
+
/**
* Constructor: OpenLayers.Map
* Constructor for a new OpenLayers.Map instance. There are two possible
@@ -14875,28 +14875,28 @@
* units: 'm',
* projection: "EPSG:41001"
* });
- */
+ */
initialize: function (div, options) {
-
+
// If only one argument is provided, check if it is an object.
if(arguments.length === 1 && typeof div === "object") {
options = div;
div = options && options.div;
}
- // Simple-type defaults are set in class definition.
- // Now set complex-type defaults
+ // Simple-type defaults are set in class definition.
+ // Now set complex-type defaults
this.tileSize = new OpenLayers.Size(OpenLayers.Map.TILE_WIDTH,
OpenLayers.Map.TILE_HEIGHT);
-
+
this.maxExtent = new OpenLayers.Bounds(-180, -90, 180, 90);
-
+
this.paddingForPopups = new OpenLayers.Bounds(15, 15, 15, 15);
- this.theme = OpenLayers._getScriptLocation() +
- 'theme/default/style.css';
+ this.theme = OpenLayers._getScriptLocation() +
+ 'theme/default/style.css';
- // now override default options
+ // now override default options
OpenLayers.Util.extend(this, options);
this.id = OpenLayers.Util.createUniqueID("OpenLayers.Map_");
@@ -14907,7 +14907,7 @@
this.div.style.height = "1px";
this.div.style.width = "1px";
}
-
+
OpenLayers.Element.addClass(this.div, 'olMap');
// the viewPortDiv is the outermost div we modify
@@ -14924,37 +14924,37 @@
id = this.div.id + "_OpenLayers_Container";
this.layerContainerDiv = OpenLayers.Util.createDiv(id);
this.layerContainerDiv.style.zIndex=this.Z_INDEX_BASE['Popup']-1;
-
+
this.viewPortDiv.appendChild(this.layerContainerDiv);
- this.events = new OpenLayers.Events(this,
- this.div,
- this.EVENT_TYPES,
- this.fallThrough,
+ this.events = new OpenLayers.Events(this,
+ this.div,
+ this.EVENT_TYPES,
+ this.fallThrough,
{includeXY: true});
this.updateSize();
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
}
-
+
// update the map size and location before the map moves
this.events.register("movestart", this, this.updateSize);
- // Because Mozilla does not support the "resize" event for elements
- // other than "window", we need to put a hack here.
+ // Because Mozilla does not support the "resize" event for elements
+ // other than "window", we need to put a hack here.
if (OpenLayers.String.contains(navigator.appName, "Microsoft")) {
// If IE, register the resize on the div
this.events.register("resize", this, this.updateSize);
} else {
// Else updateSize on catching the window's resize
- // Note that this is ok, as updateSize() does nothing if the
+ // Note that this is ok, as updateSize() does nothing if the
// map's size has not actually changed.
- this.updateSizeDestroy = OpenLayers.Function.bind(this.updateSize,
+ this.updateSizeDestroy = OpenLayers.Function.bind(this.updateSize,
this);
OpenLayers.Event.observe(window, 'resize',
this.updateSizeDestroy);
}
-
+
// only append link stylesheet if the theme property is set
if(this.theme) {
// check existing links for equivalent url
@@ -14979,7 +14979,7 @@
}
this.layers = [];
-
+
if (this.controls == null) {
if (OpenLayers.Control != null) { // running full or lite?
this.controls = [ new OpenLayers.Control.Navigation(),
@@ -14999,16 +14999,16 @@
this.popups = [];
this.unloadDestroy = OpenLayers.Function.bind(this.destroy, this);
-
+
// always call map.destroy()
OpenLayers.Event.observe(window, 'unload', this.unloadDestroy);
},
-
+
/**
* APIMethod: render
* Render the map to a specified container.
- *
+ *
* Parameters:
* div - {String|DOMElement} The container that the map should be rendered
* to. If different than the current container, the map viewport
@@ -15029,11 +15029,11 @@
* so that if map is manually destroyed, we can unregister this.
*/
unloadDestroy: null,
-
+
/**
* Method: updateSizeDestroy
* When the map is destroyed, we need to stop listening to updateSize
- * events: this method stores the function we need to unregister in
+ * events: this method stores the function we need to unregister in
* non-IE browsers.
*/
updateSizeDestroy: null,
@@ -15053,26 +15053,26 @@
this.unloadDestroy = null;
if (this.updateSizeDestroy) {
- OpenLayers.Event.stopObserving(window, 'resize',
+ OpenLayers.Event.stopObserving(window, 'resize',
this.updateSizeDestroy);
} else {
this.events.unregister("resize", this, this.updateSize);
- }
-
- this.paddingForPopups = null;
+ }
+ this.paddingForPopups = null;
+
if (this.controls != null) {
for (var i = this.controls.length - 1; i>=0; --i) {
this.controls[i].destroy();
- }
+ }
this.controls = null;
}
if (this.layers != null) {
for (var i = this.layers.length - 1; i>=0; --i) {
- //pass 'false' to destroy so that map wont try to set a new
+ //pass 'false' to destroy so that map wont try to set a new
// baselayer after each baselayer is removed
this.layers[i].destroy(false);
- }
+ }
this.layers = null;
}
if (this.viewPortDiv) {
@@ -15247,7 +15247,7 @@
/* The following functions deal with adding and */
/* removing Layers to and from the Map */
/* */
- /********************************************************/
+ /********************************************************/
/**
* APIMethod: getLayer
@@ -15257,7 +15257,7 @@
* id - {String} A layer id
*
* Returns:
- * {<OpenLayers.Layer>} The Layer with the corresponding id from the map's
+ * {<OpenLayers.Layer>} The Layer with the corresponding id from the map's
* layer collection, or null if not found.
*/
getLayer: function(id) {
@@ -15274,11 +15274,11 @@
/**
* Method: setLayerZIndex
- *
+ *
* Parameters:
- * layer - {<OpenLayers.Layer>}
- * zIdx - {int}
- */
+ * layer - {<OpenLayers.Layer>}
+ * zIdx - {int}
+ */
setLayerZIndex: function (layer, zIdx) {
layer.setZIndex(
this.Z_INDEX_BASE[layer.isBaseLayer ? 'BaseLayer' : 'Overlay']
@@ -15300,12 +15300,12 @@
* APIMethod: addLayer
*
* Parameters:
- * layer - {<OpenLayers.Layer>}
- */
+ * layer - {<OpenLayers.Layer>}
+ */
addLayer: function (layer) {
for(var i=0, len=this.layers.length; i <len; i++) {
if (this.layers[i] == layer) {
- var msg = OpenLayers.i18n('layerAlreadyAdded',
+ var msg = OpenLayers.i18n('layerAlreadyAdded',
{'layerName':layer.name});
OpenLayers.Console.warn(msg);
return false;
@@ -15316,7 +15316,7 @@
}
this.events.triggerEvent("preaddlayer", {layer: layer});
-
+
layer.div.className = "olLayerDiv";
layer.div.style.overflow = "";
this.setLayerZIndex(layer, this.layers.length);
@@ -15345,43 +15345,43 @@
},
/**
- * APIMethod: addLayers
+ * APIMethod: addLayers
*
* Parameters:
- * layers - {Array(<OpenLayers.Layer>)}
- */
+ * layers - {Array(<OpenLayers.Layer>)}
+ */
addLayers: function (layers) {
for (var i=0, len=layers.length; i<len; i++) {
this.addLayer(layers[i]);
}
},
- /**
+ /**
* APIMethod: removeLayer
- * Removes a layer from the map by removing its visual element (the
- * layer.div property), then removing it from the map's internal list
- * of layers, setting the layer's map property to null.
- *
+ * Removes a layer from the map by removing its visual element (the
+ * layer.div property), then removing it from the map's internal list
+ * of layers, setting the layer's map property to null.
+ *
* a "removelayer" event is triggered.
- *
+ *
* very worthy of mention is that simply removing a layer from a map
* will not cause the removal of any popups which may have been created
* by the layer. this is due to the fact that it was decided at some
- * point that popups would not belong to layers. thus there is no way
+ * point that popups would not belong to layers. thus there is no way
* for us to know here to which layer the popup belongs.
- *
+ *
* A simple solution to this is simply to call destroy() on the layer.
* the default OpenLayers.Layer class's destroy() function
* automatically takes care to remove itself from whatever map it has
- * been attached to.
- *
- * The correct solution is for the layer itself to register an
- * event-handler on "removelayer" and when it is called, if it
+ * been attached to.
+ *
+ * The correct solution is for the layer itself to register an
+ * event-handler on "removelayer" and when it is called, if it
* recognizes itself as the layer being removed, then it cycles through
* its own personal list of popups, removing them from the map.
- *
+ *
* Parameters:
- * layer - {<OpenLayers.Layer>}
+ * layer - {<OpenLayers.Layer>}
* setNewBaseLayer - {Boolean} Default is true
*/
removeLayer: function(layer, setNewBaseLayer) {
@@ -15419,7 +15419,7 @@
/**
* APIMethod: getNumLayers
- *
+ *
* Returns:
* {Int} The number of layers attached to the map.
*/
@@ -15427,7 +15427,7 @@
return this.layers.length;
},
- /**
+ /**
* APIMethod: getLayerIndex
*
* Parameters:
@@ -15440,8 +15440,8 @@
getLayerIndex: function (layer) {
return OpenLayers.Util.indexOf(this.layers, layer);
},
-
- /**
+
+ /**
* APIMethod: setLayerIndex
* Move the given layer to the specified (zero-based) index in the layer
* list, changing its z-index in the map display. Use
@@ -15450,8 +15450,8 @@
* raise base layers above overlays.
*
* Parameters:
- * layer - {<OpenLayers.Layer>}
- * idx - {int}
+ * layer - {<OpenLayers.Layer>}
+ * idx - {int}
*/
setLayerIndex: function (layer, idx) {
var base = this.getLayerIndex(layer);
@@ -15479,27 +15479,27 @@
}
},
- /**
+ /**
* APIMethod: raiseLayer
- * Change the index of the given layer by delta. If delta is positive,
+ * Change the index of the given layer by delta. If delta is positive,
* the layer is moved up the map's layer stack; if delta is negative,
* the layer is moved down. Again, note that this cannot (or at least
* should not) be effectively used to raise base layers above overlays.
*
* Paremeters:
- * layer - {<OpenLayers.Layer>}
- * delta - {int}
+ * layer - {<OpenLayers.Layer>}
+ * delta - {int}
*/
raiseLayer: function (layer, delta) {
var idx = this.getLayerIndex(layer) + delta;
this.setLayerIndex(layer, idx);
},
-
- /**
+
+ /**
* APIMethod: setBaseLayer
* Allows user to specify one of the currently-loaded layers as the Map's
* new base layer.
- *
+ *
* Parameters:
* newBaseLayer - {<OpenLayers.Layer>}
*/
@@ -15510,20 +15510,20 @@
}
if (newBaseLayer != this.baseLayer) {
-
+
// is newBaseLayer an already loaded layer?m
if (OpenLayers.Util.indexOf(this.layers, newBaseLayer) != -1) {
- // make the old base layer invisible
+ // make the old base layer invisible
if (this.baseLayer != null && !this.allOverlays) {
this.baseLayer.setVisibility(false);
}
// set new baselayer
this.baseLayer = newBaseLayer;
-
- // Increment viewRequestID since the baseLayer is
- // changing. This is used by tiles to check if they should
+
+ // Increment viewRequestID since the baseLayer is
+ // changing. This is used by tiles to check if they should
// draw themselves.
this.viewRequestID++;
if(!this.allOverlays) {
@@ -15535,14 +15535,14 @@
if (center != null) {
//either get the center from the old Extent or just from
- // the current center of the map.
- var newCenter = (oldExtent)
+ // the current center of the map.
+ var newCenter = (oldExtent)
? oldExtent.getCenterLonLat()
: center;
- //the new zoom will either come from the old Extent or
- // from the current resolution of the map
- var newZoom = (oldExtent)
+ //the new zoom will either come from the old Extent or
+ // from the current resolution of the map
+ var newZoom = (oldExtent)
? this.getZoomForExtent(oldExtent, true)
: this.getZoomForResolution(this.resolution, true);
@@ -15553,7 +15553,7 @@
this.events.triggerEvent("changebaselayer", {
layer: this.baseLayer
});
- }
+ }
}
},
@@ -15565,15 +15565,15 @@
/* The following functions deal with adding and */
/* removing Controls to and from the Map */
/* */
- /********************************************************/
+ /********************************************************/
/**
* APIMethod: addControl
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>}
* px - {<OpenLayers.Pixel>}
- */
+ */
addControl: function (control, px) {
this.controls.push(control);
this.addControlToMap(control, px);
@@ -15581,23 +15581,23 @@
/**
* Method: addControlToMap
- *
+ *
* Parameters:
- *
+ *
* control - {<OpenLayers.Control>}
* px - {<OpenLayers.Pixel>}
- */
+ */
addControlToMap: function (control, px) {
// If a control doesn't have a div at this point, it belongs in the
// viewport.
control.outsideViewport = (control.div != null);
-
- // If the map has a displayProjection, and the control doesn't, set
+
+ // If the map has a displayProjection, and the control doesn't, set
// the display projection.
if (this.displayProjection && !control.displayProjection) {
control.displayProjection = this.displayProjection;
- }
-
+ }
+
control.setMap(this);
var div = control.draw(px);
if (div) {
@@ -15608,18 +15608,18 @@
}
}
},
-
+
/**
* APIMethod: getControl
- *
+ *
* Parameters:
* id - {String} ID of the control to return.
- *
+ *
* Returns:
- * {<OpenLayers.Control>} The control from the map's list of controls
- * which has a matching 'id'. If none found,
+ * {<OpenLayers.Control>} The control from the map's list of controls
+ * which has a matching 'id'. If none found,
* returns null.
- */
+ */
getControl: function (id) {
var returnControl = null;
for(var i=0, len=this.controls.length; i<len; i++) {
@@ -15631,16 +15631,16 @@
}
return returnControl;
},
-
- /**
+
+ /**
* APIMethod: removeControl
- * Remove a control from the map. Removes the control both from the map
- * object's internal array of controls, as well as from the map's
+ * Remove a control from the map. Removes the control both from the map
+ * object's internal array of controls, as well as from the map's
* viewPort (assuming the control was not added outsideViewport)
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>} The control to remove.
- */
+ */
removeControl: function (control) {
//make sure control is non-null and actually part of our map
if ( (control) && (control == this.getControl(control.id)) ) {
@@ -15658,11 +15658,11 @@
/* The following functions deal with adding and */
/* removing Popups to and from the Map */
/* */
- /********************************************************/
+ /********************************************************/
- /**
+ /**
* APIMethod: addPopup
- *
+ *
* Parameters:
* popup - {<OpenLayers.Popup>}
* exclusive - {Boolean} If true, closes all other popups first
@@ -15685,10 +15685,10 @@
this.layerContainerDiv.appendChild(popupDiv);
}
},
-
- /**
+
+ /**
* APIMethod: removePopup
- *
+ *
* Parameters:
* popup - {<OpenLayers.Popup>}
*/
@@ -15709,15 +15709,15 @@
/* The following functions deal with the access to */
/* and maintenance of the size of the container div */
/* */
- /********************************************************/
+ /********************************************************/
/**
* APIMethod: getSize
- *
+ *
* Returns:
- * {<OpenLayers.Size>} An <OpenLayers.Size> object that represents the
- * size, in pixels, of the div into which OpenLayers
- * has been loaded.
+ * {<OpenLayers.Size>} An <OpenLayers.Size> object that represents the
+ * size, in pixels, of the div into which OpenLayers
+ * has been loaded.
* Note - A clone() of this locally cached variable is
* returned, so as not to allow users to modify it.
*/
@@ -15732,7 +15732,7 @@
/**
* APIMethod: updateSize
* This function should be called by any external code which dynamically
- * changes the size of the map div (because mozilla wont let us catch
+ * changes the size of the map div (because mozilla wont let us catch
* the "onresize" for an element)
*/
updateSize: function() {
@@ -15744,13 +15744,13 @@
this.size = oldSize = newSize;
}
if (!newSize.equals(oldSize)) {
-
+
// store the new size
this.size = newSize;
//notify layers of mapresize
for(var i=0, len=this.layers.length; i<len; i++) {
- this.layers[i].onMapResize();
+ this.layers[i].onMapResize();
}
if (this.baseLayer != null) {
@@ -15763,17 +15763,17 @@
}
},
-
+
/**
* Method: getCurrentSize
- *
+ *
* Returns:
- * {<OpenLayers.Size>} A new <OpenLayers.Size> object with the dimensions
+ * {<OpenLayers.Size>} A new <OpenLayers.Size> object with the dimensions
* of the map div
*/
getCurrentSize: function() {
- var size = new OpenLayers.Size(this.div.clientWidth,
+ var size = new OpenLayers.Size(this.div.clientWidth,
this.div.clientHeight);
// Workaround for the fact that hidden elements return 0 for size.
@@ -15789,39 +15789,39 @@
return size;
},
- /**
+ /**
* Method: calculateBounds
- *
+ *
* Parameters:
* center - {<OpenLayers.LonLat>} Default is this.getCenter()
- * resolution - {float} Default is this.getResolution()
- *
+ * resolution - {float} Default is this.getResolution()
+ *
* Returns:
- * {<OpenLayers.Bounds>} A bounds based on resolution, center, and
+ * {<OpenLayers.Bounds>} A bounds based on resolution, center, and
* current mapsize.
*/
calculateBounds: function(center, resolution) {
var extent = null;
-
+
if (center == null) {
center = this.getCenter();
- }
+ }
if (resolution == null) {
resolution = this.getResolution();
}
-
+
if ((center != null) && (resolution != null)) {
var size = this.getSize();
var w_deg = size.w * resolution;
var h_deg = size.h * resolution;
-
+
extent = new OpenLayers.Bounds(center.lon - w_deg / 2,
center.lat - h_deg / 2,
center.lon + w_deg / 2,
center.lat + h_deg / 2);
-
+
}
return extent;
@@ -15839,7 +15839,7 @@
/********************************************************/
/**
* APIMethod: getCenter
- *
+ *
* Returns:
* {<OpenLayers.LonLat>}
*/
@@ -15854,18 +15854,18 @@
/**
* APIMethod: getZoom
- *
+ *
* Returns:
* {Integer}
*/
getZoom: function () {
return this.zoom;
},
-
- /**
+
+ /**
* APIMethod: pan
* Allows user to pan by a value of screen pixels
- *
+ *
* Parameters:
* dx - {Integer}
* dy - {Integer}
@@ -15884,7 +15884,7 @@
// adjust
var newCenterPx = centerPx.add(dx, dy);
-
+
// only call setCenter if not dragging or there has been a change
if (!options.dragging || !newCenterPx.equals(centerPx)) {
var newCenterLonLat = this.getLonLatFromViewPortPx(newCenterPx);
@@ -15892,16 +15892,16 @@
this.panTo(newCenterLonLat);
} else {
this.setCenter(newCenterLonLat, null, options.dragging);
- }
+ }
}
},
-
- /**
+
+ /**
* APIMethod: panTo
* Allows user to pan to a new lonlat
* If the new lonlat is in the current extent the map will slide smoothly
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.Lonlat>}
*/
@@ -15955,13 +15955,13 @@
/**
* APIMethod: setCenter
* Set the map center (and optionally, the zoom level).
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>} The new center location.
* zoom - {Integer} Optional zoom level.
- * dragging - {Boolean} Specifies whether or not to trigger
+ * dragging - {Boolean} Specifies whether or not to trigger
* movestart/end events
- * forceZoomChange - {Boolean} Specifies whether or not to trigger zoom
+ * forceZoomChange - {Boolean} Specifies whether or not to trigger zoom
* change events (needed on baseLayer change)
*
* TBD: reconsider forceZoomChange in 3.0
@@ -15983,9 +15983,9 @@
* options - {Object}
*/
moveTo: function(lonlat, zoom, options) {
- if (!options) {
+ if (!options) {
options = {};
- }
+ }
// dragging is false by default
var dragging = options.dragging;
// forceZoomChange is false by default
@@ -15995,51 +15995,51 @@
if (this.panTween && options.caller == "setCenter") {
this.panTween.stop();
- }
-
+ }
+
if (!this.center && !this.isValidLonLat(lonlat)) {
lonlat = this.maxExtent.getCenterLonLat();
}
if(this.restrictedExtent != null) {
// In 3.0, decide if we want to change interpretation of maxExtent.
- if(lonlat == null) {
- lonlat = this.getCenter();
+ if(lonlat == null) {
+ lonlat = this.getCenter();
}
- if(zoom == null) {
- zoom = this.getZoom();
+ if(zoom == null) {
+ zoom = this.getZoom();
}
var resolution = this.getResolutionForZoom(zoom);
- var extent = this.calculateBounds(lonlat, resolution);
+ var extent = this.calculateBounds(lonlat, resolution);
if(!this.restrictedExtent.containsBounds(extent)) {
- var maxCenter = this.restrictedExtent.getCenterLonLat();
- if(extent.getWidth() > this.restrictedExtent.getWidth()) {
- lonlat = new OpenLayers.LonLat(maxCenter.lon, lonlat.lat);
+ var maxCenter = this.restrictedExtent.getCenterLonLat();
+ if(extent.getWidth() > this.restrictedExtent.getWidth()) {
+ lonlat = new OpenLayers.LonLat(maxCenter.lon, lonlat.lat);
} else if(extent.left < this.restrictedExtent.left) {
lonlat = lonlat.add(this.restrictedExtent.left -
- extent.left, 0);
- } else if(extent.right > this.restrictedExtent.right) {
+ extent.left, 0);
+ } else if(extent.right > this.restrictedExtent.right) {
lonlat = lonlat.add(this.restrictedExtent.right -
- extent.right, 0);
- }
- if(extent.getHeight() > this.restrictedExtent.getHeight()) {
- lonlat = new OpenLayers.LonLat(lonlat.lon, maxCenter.lat);
- } else if(extent.bottom < this.restrictedExtent.bottom) {
+ extent.right, 0);
+ }
+ if(extent.getHeight() > this.restrictedExtent.getHeight()) {
+ lonlat = new OpenLayers.LonLat(lonlat.lon, maxCenter.lat);
+ } else if(extent.bottom < this.restrictedExtent.bottom) {
lonlat = lonlat.add(0, this.restrictedExtent.bottom -
- extent.bottom);
- }
- else if(extent.top > this.restrictedExtent.top) {
+ extent.bottom);
+ }
+ else if(extent.top > this.restrictedExtent.top) {
lonlat = lonlat.add(0, this.restrictedExtent.top -
- extent.top);
- }
+ extent.top);
+ }
}
}
-
+
var zoomChanged = forceZoomChange || (
- (this.isValidZoomLevel(zoom)) &&
+ (this.isValidZoomLevel(zoom)) &&
(zoom != this.getZoom()) );
- var centerChanged = (this.isValidLonLat(lonlat)) &&
+ var centerChanged = (this.isValidLonLat(lonlat)) &&
(!lonlat.equals(this.center));
@@ -16051,7 +16051,7 @@
}
if (centerChanged) {
- if ((!zoomChanged) && (this.center)) {
+ if ((!zoomChanged) && (this.center)) {
// if zoom hasnt changed, just slide layerContainer
// (must be done before setting this.center to new value)
this.centerLayerContainer(lonlat);
@@ -16071,12 +16071,12 @@
this.resolution = this.getResolutionForZoom(zoom);
// zoom level has changed, increment viewRequestID.
this.viewRequestID++;
- }
-
+ }
+
var bounds = this.getExtent();
-
- //send the move call to the baselayer and all the overlays
+ //send the move call to the baselayer and all the overlays
+
if(this.baseLayer.visibility) {
this.baseLayer.moveTo(bounds, zoomChanged, dragging);
if(dragging) {
@@ -16087,9 +16087,9 @@
);
}
}
-
+
bounds = this.baseLayer.getExtent();
-
+
for (var i=0, len=this.layers.length; i<len; i++) {
var layer = this.layers[i];
if (layer !== this.baseLayer && !layer.isBaseLayer) {
@@ -16117,18 +16117,18 @@
);
}
}
- }
+ }
}
-
+
if (zoomChanged) {
//redraw popups
for (var i=0, len=this.popups.length; i<len; i++) {
this.popups[i].updatePosition();
}
- }
-
+ }
+
this.events.triggerEvent("move");
-
+
if (zoomChanged) { this.events.triggerEvent("zoomend"); }
}
@@ -16136,16 +16136,16 @@
if (!dragging && !noEvent) {
this.events.triggerEvent("moveend");
}
-
+
// Store the map dragging state for later use
- this.dragging = !!dragging;
+ this.dragging = !!dragging;
},
- /**
+ /**
* Method: centerLayerContainer
* This function takes care to recenter the layerContainerDiv.
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
*/
@@ -16162,26 +16162,26 @@
/**
* Method: isValidZoomLevel
- *
+ *
* Parameters:
* zoomLevel - {Integer}
- *
+ *
* Returns:
- * {Boolean} Whether or not the zoom level passed in is non-null and
+ * {Boolean} Whether or not the zoom level passed in is non-null and
* within the min/max range of zoom levels.
*/
isValidZoomLevel: function(zoomLevel) {
return ( (zoomLevel != null) &&
- (zoomLevel >= 0) &&
+ (zoomLevel >= 0) &&
(zoomLevel < this.getNumZoomLevels()) );
},
-
+
/**
* Method: isValidLonLat
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
* {Boolean} Whether or not the lonlat passed in is non-null and within
* the maxExtent bounds
@@ -16190,7 +16190,7 @@
var valid = false;
if (lonlat != null) {
var maxExtent = this.getMaxExtent();
- valid = maxExtent.containsLonLat(lonlat);
+ valid = maxExtent.containsLonLat(lonlat);
}
return valid;
},
@@ -16202,25 +16202,25 @@
/* Accessor functions to Layer Options parameters */
/* */
/********************************************************/
-
+
/**
* APIMethod: getProjection
- * This method returns a string representing the projection. In
+ * This method returns a string representing the projection. In
* the case of projection support, this will be the srsCode which
* is loaded -- otherwise it will simply be the string value that
* was passed to the projection at startup.
*
* FIXME: In 3.0, we will remove getProjectionObject, and instead
- * return a Projection object from this function.
- *
+ * return a Projection object from this function.
+ *
* Returns:
- * {String} The Projection string from the base layer or null.
+ * {String} The Projection string from the base layer or null.
*/
getProjection: function() {
var projection = this.getProjectionObject();
return projection ? projection.getCode() : null;
},
-
+
/**
* APIMethod: getProjectionObject
* Returns the projection obect from the baselayer.
@@ -16235,10 +16235,10 @@
}
return projection;
},
-
+
/**
* APIMethod: getMaxResolution
- *
+ *
* Returns:
* {String} The Map's Maximum Resolution
*/
@@ -16249,19 +16249,19 @@
}
return maxResolution;
},
-
+
/**
* APIMethod: getMaxExtent
*
* Parameters:
- * options - {Object}
- *
+ * options - {Object}
+ *
* Allowed Options:
- * restricted - {Boolean} If true, returns restricted extent (if it is
+ * restricted - {Boolean} If true, returns restricted extent (if it is
* available.)
*
* Returns:
- * {<OpenLayers.Bounds>} The maxExtent property as set on the current
+ * {<OpenLayers.Bounds>} The maxExtent property as set on the current
* baselayer, unless the 'restricted' option is set, in which case
* the 'restrictedExtent' option from the map is returned (if it
* is set).
@@ -16272,15 +16272,15 @@
maxExtent = this.restrictedExtent;
} else if (this.baseLayer != null) {
maxExtent = this.baseLayer.maxExtent;
- }
+ }
return maxExtent;
},
-
+
/**
* APIMethod: getNumZoomLevels
- *
+ *
* Returns:
- * {Integer} The total number of zoom levels that can be displayed by the
+ * {Integer} The total number of zoom levels that can be displayed by the
* current baseLayer.
*/
getNumZoomLevels: function() {
@@ -16304,10 +16304,10 @@
/**
* APIMethod: getExtent
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
- * bounds of the current viewPort.
+ * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
+ * bounds of the current viewPort.
* If no baselayer is set, returns null.
*/
getExtent: function () {
@@ -16320,9 +16320,9 @@
/**
* APIMethod: getResolution
- *
+ *
* Returns:
- * {Float} The current resolution of the map.
+ * {Float} The current resolution of the map.
* If no baselayer is set, returns null.
*/
getResolution: function () {
@@ -16335,9 +16335,9 @@
/**
* APIMethod: getUnits
- *
+ *
* Returns:
- * {Float} The current units of the map.
+ * {Float} The current units of the map.
* If no baselayer is set, returns null.
*/
getUnits: function () {
@@ -16350,9 +16350,9 @@
/**
* APIMethod: getScale
- *
+ *
* Returns:
- * {Float} The current scale denominator of the map.
+ * {Float} The current scale denominator of the map.
* If no baselayer is set, returns null.
*/
getScale: function () {
@@ -16368,14 +16368,14 @@
/**
* APIMethod: getZoomForExtent
- *
- * Parameters:
+ *
+ * Parameters:
* bounds - {<OpenLayers.Bounds>}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified bounds. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified bounds. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
- *
+ *
* Returns:
* {Integer} A suitable zoom level for the specified bounds.
* If no baselayer is set, returns null.
@@ -16390,10 +16390,10 @@
/**
* APIMethod: getResolutionForZoom
- *
+ *
* Parameter:
* zoom - {Float}
- *
+ *
* Returns:
* {Float} A suitable resolution for the specified zoom. If no baselayer
* is set, returns null.
@@ -16408,17 +16408,17 @@
/**
* APIMethod: getZoomForResolution
- *
+ *
* Parameter:
* resolution - {Float}
- * closest - {Boolean} Find the zoom level that corresponds to the absolute
+ * closest - {Boolean} Find the zoom level that corresponds to the absolute
* closest resolution, which may result in a zoom whose corresponding
* resolution is actually smaller than we would have desired (if this
* is being called from a getZoomForExtent() call, then this means that
- * the returned zoom index might not actually contain the entire
+ * the returned zoom index might not actually contain the entire
* extent specified... but it'll be close).
* Default is false.
- *
+ *
* Returns:
* {Integer} A suitable zoom level for the specified resolution.
* If no baselayer is set, returns null.
@@ -16440,11 +16440,11 @@
/* the setCenter() function */
/* */
/********************************************************/
-
- /**
+
+ /**
* APIMethod: zoomTo
* Zoom to a specific zoom level
- *
+ *
* Parameters:
* zoom - {Integer}
*/
@@ -16453,20 +16453,20 @@
this.setCenter(null, zoom);
}
},
-
+
/**
* APIMethod: zoomIn
- *
+ *
* Parameters:
* zoom - {int}
*/
zoomIn: function() {
this.zoomTo(this.getZoom() + 1);
},
-
+
/**
* APIMethod: zoomOut
- *
+ *
* Parameters:
* zoom - {int}
*/
@@ -16477,35 +16477,35 @@
/**
* APIMethod: zoomToExtent
* Zoom to the passed in bounds, recenter
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified bounds. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified bounds. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
- *
+ *
*/
zoomToExtent: function(bounds, closest) {
var center = bounds.getCenterLonLat();
if (this.baseLayer.wrapDateLine) {
var maxExtent = this.getMaxExtent();
- //fix straddling bounds (in the case of a bbox that straddles the
- // dateline, it's left and right boundaries will appear backwards.
+ //fix straddling bounds (in the case of a bbox that straddles the
+ // dateline, it's left and right boundaries will appear backwards.
// we fix this by allowing a right value that is greater than the
- // max value at the dateline -- this allows us to pass a valid
+ // max value at the dateline -- this allows us to pass a valid
// bounds to calculate zoom)
//
bounds = bounds.clone();
while (bounds.right < bounds.left) {
bounds.right += maxExtent.getWidth();
}
- //if the bounds was straddling (see above), then the center point
+ //if the bounds was straddling (see above), then the center point
// we got from it was wrong. So we take our new bounds and ask it
- // for the center. Because our new bounds is at least partially
- // outside the bounds of maxExtent, the new calculated center
- // might also be. We don't want to pass a bad center value to
+ // for the center. Because our new bounds is at least partially
+ // outside the bounds of maxExtent, the new calculated center
+ // might also be. We don't want to pass a bad center value to
// setCenter, so we have it wrap itself across the date line.
//
center = bounds.getCenterLonLat().wrapDateLine(maxExtent);
@@ -16513,15 +16513,15 @@
this.setCenter(center, this.getZoomForExtent(bounds, closest));
},
- /**
+ /**
* APIMethod: zoomToMaxExtent
* Zoom to the full extent and recenter.
*
* Parameters:
- * options -
- *
+ * options -
+ *
* Allowed Options:
- * restricted - {Boolean} True to zoom to restricted extent if it is
+ * restricted - {Boolean} True to zoom to restricted extent if it is
* set. Defaults to true.
*/
zoomToMaxExtent: function(options) {
@@ -16529,25 +16529,25 @@
var restricted = (options) ? options.restricted : true;
var maxExtent = this.getMaxExtent({
- 'restricted': restricted
+ 'restricted': restricted
});
this.zoomToExtent(maxExtent);
},
- /**
+ /**
* APIMethod: zoomToScale
- * Zoom to a specified scale
- *
+ * Zoom to a specified scale
+ *
* Parameters:
* scale - {float}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified scale. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified scale. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
- *
+ *
*/
zoomToScale: function(scale, closest) {
- var res = OpenLayers.Util.getResolutionFromScale(scale,
+ var res = OpenLayers.Util.getResolutionFromScale(scale,
this.baseLayer.units);
var size = this.getSize();
var w_deg = size.w * res;
@@ -16560,7 +16560,7 @@
center.lat + h_deg / 2);
this.zoomToExtent(extent, closest);
},
-
+
/********************************************************/
/* */
/* Translation Functions */
@@ -16569,24 +16569,24 @@
/* LonLat, LayerPx, and ViewPortPx */
/* */
/********************************************************/
-
+
//
// TRANSLATION: LonLat <-> ViewPortPx
//
/**
* Method: getLonLatFromViewPortPx
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in view
+ * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in view
* port <OpenLayers.Pixel>, translated into lon/lat
* by the current base layer.
*/
getLonLatFromViewPortPx: function (viewPortPx) {
- var lonlat = null;
+ var lonlat = null;
if (this.baseLayer != null) {
lonlat = this.baseLayer.getLonLatFromViewPortPx(viewPortPx);
}
@@ -16595,37 +16595,37 @@
/**
* APIMethod: getViewPortPxFromLonLat
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
- * <OpenLayers.LonLat>, translated into view port
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
+ * <OpenLayers.LonLat>, translated into view port
* pixels by the current base layer.
*/
getViewPortPxFromLonLat: function (lonlat) {
- var px = null;
+ var px = null;
if (this.baseLayer != null) {
px = this.baseLayer.getViewPortPxFromLonLat(lonlat);
}
return px;
},
-
+
//
// CONVENIENCE TRANSLATION FUNCTIONS FOR API
//
/**
* APIMethod: getLonLatFromPixel
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
*
* Returns:
* {<OpenLayers.LonLat>} An OpenLayers.LonLat corresponding to the given
- * OpenLayers.Pixel, translated into lon/lat by the
+ * OpenLayers.Pixel, translated into lon/lat by the
* current base layer
*/
getLonLatFromPixel: function (px) {
@@ -16637,12 +16637,12 @@
* Returns a pixel location given a map location. The map location is
* translated to an integer pixel location (in viewport pixel
* coordinates) by the current base layer.
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>} A map location.
- *
- * Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the
+ *
+ * Returns:
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the
* <OpenLayers.LonLat> translated into view port pixels by the current
* base layer.
*/
@@ -16661,12 +16661,12 @@
/**
* APIMethod: getViewPortPxFromLayerPx
- *
+ *
* Parameters:
* layerPx - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} Layer Pixel translated into ViewPort Pixel
+ * {<OpenLayers.Pixel>} Layer Pixel translated into ViewPort Pixel
* coordinates
*/
getViewPortPxFromLayerPx:function(layerPx) {
@@ -16674,19 +16674,19 @@
if (layerPx != null) {
var dX = parseInt(this.layerContainerDiv.style.left);
var dY = parseInt(this.layerContainerDiv.style.top);
- viewPortPx = layerPx.add(dX, dY);
+ viewPortPx = layerPx.add(dX, dY);
}
return viewPortPx;
},
-
+
/**
* APIMethod: getLayerPxFromViewPortPx
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} ViewPort Pixel translated into Layer Pixel
+ * {<OpenLayers.Pixel>} ViewPort Pixel translated into Layer Pixel
* coordinates
*/
getLayerPxFromViewPortPx:function(viewPortPx) {
@@ -16701,14 +16701,14 @@
}
return layerPx;
},
-
+
//
// TRANSLATION: LonLat <-> LayerPx
//
/**
* Method: getLonLatFromLayerPx
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
*
@@ -16718,24 +16718,24 @@
getLonLatFromLayerPx: function (px) {
//adjust for displacement of layerContainerDiv
px = this.getViewPortPxFromLayerPx(px);
- return this.getLonLatFromViewPortPx(px);
+ return this.getLonLatFromViewPortPx(px);
},
-
+
/**
* APIMethod: getLayerPxFromLonLat
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>} lonlat
*
* Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
- * <OpenLayers.LonLat>, translated into layer pixels
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
+ * <OpenLayers.LonLat>, translated into layer pixels
* by the current base layer
*/
getLayerPxFromLonLat: function (lonlat) {
//adjust for displacement of layerContainerDiv
var px = this.getPixelFromLonLat(lonlat);
- return this.getLayerPxFromViewPortPx(px);
+ return this.getLayerPxFromViewPortPx(px);
},
CLASS_NAME: "OpenLayers.Map"
@@ -16767,8 +16767,8 @@
/**
* Class: OpenLayers.Marker
- * Instances of OpenLayers.Marker are a combination of a
- * <OpenLayers.LonLat> and an <OpenLayers.Icon>.
+ * Instances of OpenLayers.Marker are a combination of a
+ * <OpenLayers.LonLat> and an <OpenLayers.Icon>.
*
* Markers are generally added to a special layer called
* <OpenLayers.Layer.Markers>.
@@ -16792,32 +16792,32 @@
* markers using that same icon.
*/
OpenLayers.Marker = OpenLayers.Class({
-
- /**
- * Property: icon
+
+ /**
+ * Property: icon
* {<OpenLayers.Icon>} The icon used by this marker.
*/
icon: null,
- /**
- * Property: lonlat
+ /**
+ * Property: lonlat
* {<OpenLayers.LonLat>} location of object
*/
lonlat: null,
-
- /**
- * Property: events
+
+ /**
+ * Property: events
* {<OpenLayers.Events>} the event handler.
*/
events: null,
-
- /**
- * Property: map
+
+ /**
+ * Property: map
* {<OpenLayers.Map>} the map this marker is attached to
*/
map: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Marker
* Parameters:
* lonlat - {<OpenLayers.LonLat>} the position of this marker
@@ -16825,7 +16825,7 @@
*/
initialize: function(lonlat, icon) {
this.lonlat = lonlat;
-
+
var newIcon = (icon) ? icon : OpenLayers.Marker.defaultIcon();
if (this.icon == null) {
this.icon = newIcon;
@@ -16837,10 +16837,10 @@
}
this.events = new OpenLayers.Events(this, this.icon.imageDiv, null);
},
-
+
/**
* APIMethod: destroy
- * Destroy the marker. You must first remove the marker from any
+ * Destroy the marker. You must first remove the marker from any
* layer which it has been added to, or you will get buggy behavior.
* (This can not be done within the marker since the marker does not
* know which layer it is attached to.)
@@ -16859,23 +16859,23 @@
this.icon = null;
}
},
-
- /**
+
+ /**
* Method: draw
* Calls draw on the icon, and returns that output.
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {DOMElement} A new DOM Image with this marker's icon set at the
+ * {DOMElement} A new DOM Image with this marker's icon set at the
* location passed-in
*/
draw: function(px) {
return this.icon.draw(px);
- },
+ },
- /**
+ /**
* Method: erase
* Erases any drawn elements for this marker.
*/
@@ -16883,7 +16883,7 @@
if (this.icon != null) {
this.icon.erase();
}
- },
+ },
/**
* Method: moveTo
@@ -16895,19 +16895,19 @@
moveTo: function (px) {
if ((px != null) && (this.icon != null)) {
this.icon.moveTo(px);
- }
+ }
this.lonlat = this.map.getLonLatFromLayerPx(px);
},
/**
* APIMethod: isDrawn
- *
+ *
* Returns:
* {Boolean} Whether or not the marker is drawn.
*/
isDrawn: function() {
var isDrawn = (this.icon && this.icon.isDrawn());
- return isDrawn;
+ return isDrawn;
},
/**
@@ -16917,15 +16917,15 @@
* {Boolean} Whether or not the marker is currently visible on screen.
*/
onScreen:function() {
-
+
var onScreen = false;
if (this.map) {
var screenBounds = this.map.getExtent();
onScreen = screenBounds.containsLonLat(this.lonlat);
- }
+ }
return onScreen;
},
-
+
/**
* Method: inflate
* Englarges the markers icon by the specified ratio.
@@ -16939,14 +16939,14 @@
var newSize = new OpenLayers.Size(this.icon.size.w * inflate,
this.icon.size.h * inflate);
this.icon.setSize(newSize);
- }
+ }
},
-
- /**
+
+ /**
* Method: setOpacity
- * Change the opacity of the marker by changin the opacity of
+ * Change the opacity of the marker by changin the opacity of
* its icon
- *
+ *
* Parameters:
* opacity - {float} Specified as fraction (0.4, etc)
*/
@@ -16957,18 +16957,18 @@
/**
* Method: setUrl
* Change URL of the Icon Image.
- *
- * url - {String}
+ *
+ * url - {String}
*/
setUrl: function(url) {
this.icon.setUrl(url);
- },
+ },
- /**
+ /**
* Method: display
* Hide or show the icon
- *
- * display - {Boolean}
+ *
+ * display - {Boolean}
*/
display: function(display) {
this.icon.display(display);
@@ -16981,7 +16981,7 @@
/**
* Function: defaultIcon
* Creates a default <OpenLayers.Icon>.
- *
+ *
* Returns:
* {<OpenLayers.Icon>} A default OpenLayers.Icon to use for a marker
*/
@@ -16992,10 +16992,10 @@
return new OpenLayers.Pixel(-(size.w/2), -size.h);
};
- return new OpenLayers.Icon(url, size, null, calculateOffset);
+ return new OpenLayers.Icon(url, size, null, calculateOffset);
};
-
+
/* ======================================================================
OpenLayers/Request.js
====================================================================== */
@@ -17015,7 +17015,7 @@
* W3C compliant <OpenLayers.Request.XMLHttpRequest> class.
*/
OpenLayers.Request = {
-
+
/**
* Constant: DEFAULT_CONFIG
* {Object} Default configuration for all requests.
@@ -17035,17 +17035,17 @@
failure: null,
scope: null
},
-
+
/**
* APIProperty: events
- * {<OpenLayers.Events>} An events object that handles all
+ * {<OpenLayers.Events>} An events object that handles all
* events on the {<OpenLayers.Request>} object.
*
* All event listeners will receive an event object with three properties:
* request - {<OpenLayers.Request.XMLHttpRequest>} The request object.
* config - {Object} The config object sent to the specific request method.
* requestUrl - {String} The request url.
- *
+ *
* Supported event types:
* complete - Triggered when we have a response from the request, if a
* listener returns false, no further response processing will take
@@ -17054,7 +17054,7 @@
* failure - Triggered when the HTTP response does not have a success code.
*/
events: new OpenLayers.Events(this, null, ["complete", "success", "failure"]),
-
+
/**
* APIMethod: issue
* Create a new XMLHttpRequest object, open it, set any headers, bind
@@ -17111,7 +17111,7 @@
* {XMLHttpRequest} Request object. To abort the request before a response
* is received, call abort() on the request object.
*/
- issue: function(config) {
+ issue: function(config) {
// apply default config - proxy host may have changed
var defaultConfig = OpenLayers.Util.extend(
this.DEFAULT_CONFIG,
@@ -17143,7 +17143,7 @@
var complete = (config.scope) ?
OpenLayers.Function.bind(config.callback, config.scope) :
config.callback;
-
+
// optional success callback
var success;
if(config.success) {
@@ -17159,9 +17159,9 @@
OpenLayers.Function.bind(config.failure, config.scope) :
config.failure;
}
-
+
var events = this.events;
-
+
request.onreadystatechange = function() {
if(request.readyState == OpenLayers.Request.XMLHttpRequest.DONE) {
var proceed = events.triggerEvent(
@@ -17179,7 +17179,7 @@
success(request);
}
}
- if(request.status && (request.status < 200 || request.status >= 300)) {
+ if(request.status && (request.status < 200 || request.status >= 300)) {
events.triggerEvent(
"failure",
{request: request, config: config, requestUrl: url}
@@ -17191,7 +17191,7 @@
}
}
};
-
+
// send request (optionally with data) and return
// call in a timeout for asynchronous requests so the return is
// available before readyState == 4 for cached docs
@@ -17204,7 +17204,7 @@
}
return request;
},
-
+
/**
* APIMethod: GET
* Send an HTTP GET request. Additional configuration properties are
@@ -17215,7 +17215,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17223,7 +17223,7 @@
config = OpenLayers.Util.extend(config, {method: "GET"});
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: POST
* Send a POST request. Additional configuration properties are
@@ -17235,7 +17235,7 @@
* See the <issue> method for documentation of allowed properties. The
* default "Content-Type" header will be set to "application-xml" if
* none is provided. This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17248,7 +17248,7 @@
}
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: PUT
* Send an HTTP PUT request. Additional configuration properties are
@@ -17260,7 +17260,7 @@
* See the <issue> method for documentation of allowed properties. The
* default "Content-Type" header will be set to "application-xml" if
* none is provided. This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17273,7 +17273,7 @@
}
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: DELETE
* Send an HTTP DELETE request. Additional configuration properties are
@@ -17284,7 +17284,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17292,7 +17292,7 @@
config = OpenLayers.Util.extend(config, {method: "DELETE"});
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: HEAD
* Send an HTTP HEAD request. Additional configuration properties are
@@ -17303,7 +17303,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17311,7 +17311,7 @@
config = OpenLayers.Util.extend(config, {method: "HEAD"});
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: OPTIONS
* Send an HTTP OPTIONS request. Additional configuration properties are
@@ -17322,7 +17322,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17356,14 +17356,14 @@
*/
OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
- /**
+ /**
* Property: url
* {String} The URL of the image being requested. No default. Filled in by
- * layer.getURL() function.
+ * layer.getURL() function.
*/
url: null,
-
- /**
+
+ /**
* Property: imgDiv
* {DOMElement} The div element which wraps the image.
*/
@@ -17372,22 +17372,22 @@
/**
* Property: frame
* {DOMElement} The image element is appended to the frame. Any gutter on
- * the image will be hidden behind the frame.
- */
- frame: null,
-
+ * the image will be hidden behind the frame.
+ */
+ frame: null,
+
/**
* Property: layerAlphaHack
* {Boolean} True if the png alpha hack needs to be applied on the layer's div.
*/
layerAlphaHack: null,
-
+
/**
* Property: isBackBuffer
* {Boolean} Is this tile a back buffer tile?
*/
isBackBuffer: false,
-
+
/**
* Property: lastRatio
* {Float} Used in transition code only. This is the previous ratio
@@ -17406,7 +17406,7 @@
* tiles that have been loaded can be used.
*/
isFirstDraw: true,
-
+
/**
* Property: backBufferTile
* {<OpenLayers.Tile>} A clone of the tile used to create transition
@@ -17414,33 +17414,33 @@
*/
backBufferTile: null,
- /** TBD 3.0 - reorder the parameters to the init function to remove
- * URL. the getUrl() function on the layer gets called on
+ /** TBD 3.0 - reorder the parameters to the init function to remove
+ * URL. the getUrl() function on the layer gets called on
* each draw(), so no need to specify it here.
- *
+ *
* Constructor: OpenLayers.Tile.Image
* Constructor for a new <OpenLayers.Tile.Image> instance.
- *
+ *
* Parameters:
* layer - {<OpenLayers.Layer>} layer that the tile will go in.
* position - {<OpenLayers.Pixel>}
* bounds - {<OpenLayers.Bounds>}
* url - {<String>} Deprecated. Remove me in 3.0.
* size - {<OpenLayers.Size>}
- */
+ */
initialize: function(layer, position, bounds, url, size) {
OpenLayers.Tile.prototype.initialize.apply(this, arguments);
this.url = url; //deprecated remove me
-
- this.frame = document.createElement('div');
- this.frame.style.overflow = 'hidden';
- this.frame.style.position = 'absolute';
+ this.frame = document.createElement('div');
+ this.frame.style.overflow = 'hidden';
+ this.frame.style.position = 'absolute';
+
this.layerAlphaHack = this.layer.alpha && OpenLayers.Util.alphaHack();
},
- /**
+ /**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -17448,13 +17448,13 @@
if (this.imgDiv != null) {
if (this.layerAlphaHack) {
// unregister the "load" handler
- OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0].id);
+ OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0].id);
}
// unregister the "load" and "error" handlers. Only the "error" handler if
// this.layerAlphaHack is true.
OpenLayers.Event.stopObservingElement(this.imgDiv.id);
-
+
if (this.imgDiv.parentNode == this.frame) {
this.frame.removeChild(this.imgDiv);
this.imgDiv.map = null;
@@ -17464,19 +17464,19 @@
this.imgDiv.src = OpenLayers.Util.getImagesLocation() + "blank.gif";
}
this.imgDiv = null;
- if ((this.frame != null) && (this.frame.parentNode == this.layer.div)) {
- this.layer.div.removeChild(this.frame);
+ if ((this.frame != null) && (this.frame.parentNode == this.layer.div)) {
+ this.layer.div.removeChild(this.frame);
}
- this.frame = null;
-
+ this.frame = null;
+
/* clean up the backBufferTile if it exists */
if (this.backBufferTile) {
this.backBufferTile.destroy();
this.backBufferTile = null;
}
-
+
this.layer.events.unregister("loadend", this, this.resetBackBuffer);
-
+
OpenLayers.Tile.prototype.destroy.apply(this, arguments);
},
@@ -17491,27 +17491,27 @@
*/
clone: function (obj) {
if (obj == null) {
- obj = new OpenLayers.Tile.Image(this.layer,
- this.position,
- this.bounds,
- this.url,
- this.size);
- }
-
+ obj = new OpenLayers.Tile.Image(this.layer,
+ this.position,
+ this.bounds,
+ this.url,
+ this.size);
+ }
+
//pick up properties from superclass
obj = OpenLayers.Tile.prototype.clone.apply(this, [obj]);
-
+
//dont want to directly copy the image div
obj.imgDiv = null;
-
-
+
+
return obj;
},
-
+
/**
* Method: draw
* Check that a tile should be drawn, and draw it.
- *
+ *
* Returns:
* {Boolean} Always returns true.
*/
@@ -17520,7 +17520,7 @@
this.bounds = this.getBoundsFromBaseLayer(this.position);
}
var drawTile = OpenLayers.Tile.prototype.draw.apply(this, arguments);
-
+
if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS, this.layer.transitionEffect) != -1) {
if (drawTile) {
//we use a clone of this tile to create a double buffer for visual
@@ -17534,10 +17534,10 @@
// the backBufferTile behind the main tile so the tiles can
// load over top and display as soon as they are loaded.
this.backBufferTile.isBackBuffer = true;
-
+
// potentially end any transition effects when the tile loads
this.events.register('loadend', this, this.resetBackBuffer);
-
+
// clear transition back buffer tile only after all tiles in
// this layer have loaded to avoid visual glitches
this.layer.events.register("loadend", this, this.resetBackBuffer);
@@ -17555,45 +17555,45 @@
if (drawTile && this.isFirstDraw) {
this.events.register('loadend', this, this.showTile);
this.isFirstDraw = false;
- }
- }
-
+ }
+ }
+
if (!drawTile) {
return false;
}
-
+
if (this.isLoading) {
//if we're already loading, send 'reload' instead of 'loadstart'.
- this.events.triggerEvent("reload");
+ this.events.triggerEvent("reload");
} else {
this.isLoading = true;
this.events.triggerEvent("loadstart");
}
-
+
return this.renderTile();
},
-
- /**
+
+ /**
* Method: resetBackBuffer
* Triggered by two different events, layer loadend, and tile loadend.
- * In any of these cases, we check to see if we can hide the
- * backBufferTile yet and update its parameters to match the
+ * In any of these cases, we check to see if we can hide the
+ * backBufferTile yet and update its parameters to match the
* foreground tile.
*
* Basic logic:
* - If the backBufferTile hasn't been drawn yet, reset it
* - If layer is still loading, show foreground tile but don't hide
* the backBufferTile yet
- * - If layer is done loading, reset backBuffer tile and show
+ * - If layer is done loading, reset backBuffer tile and show
* foreground tile
*/
resetBackBuffer: function() {
this.showTile();
- if (this.backBufferTile &&
+ if (this.backBufferTile &&
(this.isFirstDraw || !this.layer.numLoadingTiles)) {
this.isFirstDraw = false;
// check to see if the backBufferTile is within the max extents
- // before rendering it
+ // before rendering it
var maxExtent = this.layer.maxExtent;
var withinMaxExtent = (maxExtent &&
this.bounds.intersectsBounds(maxExtent, false));
@@ -17610,7 +17610,7 @@
this.backBufferTile.hide();
}
},
-
+
/**
* Method: renderTile
* Internal function to actually initialize the image tile,
@@ -17622,7 +17622,7 @@
}
this.imgDiv.viewRequestID = this.layer.map.viewRequestID;
-
+
if (this.layer.async) {
// Asyncronous image requests call the asynchronous getURL method
// on the layer to fetch an image that covers 'this.bounds', in the scope of
@@ -17632,16 +17632,16 @@
} else {
// syncronous image requests get the url and position the frame immediately,
// and don't wait for an image request to come back.
-
+
// needed for changing to a different server for onload error
if (this.layer.url instanceof Array) {
this.imgDiv.urls = this.layer.url.slice();
}
-
+
this.url = this.layer.getURL(this.bounds);
-
+
// position the frame immediately
- this.positionImage();
+ this.positionImage();
}
return true;
},
@@ -17657,12 +17657,12 @@
// returned, do not attempt to use it for size computation
if ( this.layer == null )
return;
-
- // position the frame
- OpenLayers.Util.modifyDOMElement(this.frame,
- null, this.position, this.size);
- var imageSize = this.layer.getImageSize();
+ // position the frame
+ OpenLayers.Util.modifyDOMElement(this.frame,
+ null, this.position, this.size);
+
+ var imageSize = this.layer.getImageSize();
if (this.layerAlphaHack) {
OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,
null, null, imageSize, this.url);
@@ -17673,17 +17673,17 @@
}
},
- /**
+ /**
* Method: clear
- * Clear the tile of any bounds/position-related data so that it can
+ * Clear the tile of any bounds/position-related data so that it can
* be reused in a new location.
*/
clear: function() {
if(this.imgDiv) {
this.hide();
- if (OpenLayers.Tile.Image.useBlankTile) {
+ if (OpenLayers.Tile.Image.useBlankTile) {
this.imgDiv.src = OpenLayers.Util.getImagesLocation() + "blank.gif";
- }
+ }
}
},
@@ -17692,10 +17692,10 @@
* Creates the imgDiv property on the tile.
*/
initImgDiv: function() {
-
- var offset = this.layer.imageOffset;
- var size = this.layer.getImageSize();
-
+
+ var offset = this.layer.imageOffset;
+ var size = this.layer.getImageSize();
+
if (this.layerAlphaHack) {
this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null,
offset,
@@ -17716,7 +17716,7 @@
null,
true);
}
-
+
this.imgDiv.className = 'olTileImage';
/* checkImgURL used to be used to called as a work around, but it
@@ -17728,43 +17728,43 @@
OpenLayers.Function.bind(this.checkImgURL, this) );
*/
this.frame.style.zIndex = this.isBackBuffer ? 0 : 1;
- this.frame.appendChild(this.imgDiv);
- this.layer.div.appendChild(this.frame);
+ this.frame.appendChild(this.imgDiv);
+ this.layer.div.appendChild(this.frame);
if(this.layer.opacity != null) {
-
+
OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null, null,
- null, null, null,
+ null, null, null,
this.layer.opacity);
}
// we need this reference to check back the viewRequestID
this.imgDiv.map = this.layer.map;
- //bind a listener to the onload of the image div so that we
+ //bind a listener to the onload of the image div so that we
// can register when a tile has finished loading.
var onload = function() {
-
- //normally isLoading should always be true here but there are some
+
+ //normally isLoading should always be true here but there are some
// right funky conditions where loading and then reloading a tile
- // with the same url *really*fast*. this check prevents sending
+ // with the same url *really*fast*. this check prevents sending
// a 'loadend' if the msg has already been sent
//
- if (this.isLoading) {
- this.isLoading = false;
- this.events.triggerEvent("loadend");
+ if (this.isLoading) {
+ this.isLoading = false;
+ this.events.triggerEvent("loadend");
}
};
-
- if (this.layerAlphaHack) {
- OpenLayers.Event.observe(this.imgDiv.childNodes[0], 'load',
- OpenLayers.Function.bind(onload, this));
- } else {
- OpenLayers.Event.observe(this.imgDiv, 'load',
- OpenLayers.Function.bind(onload, this));
- }
-
+ if (this.layerAlphaHack) {
+ OpenLayers.Event.observe(this.imgDiv.childNodes[0], 'load',
+ OpenLayers.Function.bind(onload, this));
+ } else {
+ OpenLayers.Event.observe(this.imgDiv, 'load',
+ OpenLayers.Function.bind(onload, this));
+ }
+
+
// Bind a listener to the onerror of the image div so that we
// can registere when a tile has finished loading with errors.
var onerror = function() {
@@ -17790,18 +17790,18 @@
* the imgDiv display to 'none', as either (a) it will be reset to visible
* when the new URL loads in the image, or (b) we don't want to display
* this tile after all because its new bounds are outside our maxExtent.
- *
+ *
* This function should no longer be neccesary with the improvements to
* Grid.js in OpenLayers 2.3. The lack of a good isEquivilantURL function
- * caused problems in 2.2, but it's possible that with the improved
+ * caused problems in 2.2, but it's possible that with the improved
* isEquivilant URL function, this might be neccesary at some point.
- *
- * See discussion in the thread at
+ *
+ * See discussion in the thread at
* http://openlayers.org/pipermail/dev/2007-January/000205.html
*/
checkImgURL: function () {
// Sometimes our image will load after it has already been removed
- // from the map, in which case this check is not needed.
+ // from the map, in which case this check is not needed.
if (this.layer) {
var loaded = this.layerAlphaHack ? this.imgDiv.firstChild.src : this.imgDiv.src;
if (!OpenLayers.Util.isEquivalentUrl(loaded, this.url)) {
@@ -17809,7 +17809,7 @@
}
}
},
-
+
/**
* Method: startTransition
* This method is invoked on tiles that are backBuffers for tiles in the
@@ -17831,15 +17831,15 @@
if (this.backBufferTile.resolution) {
ratio = this.backBufferTile.resolution / this.layer.getResolution();
}
-
+
// if the ratio is not the same as it was last time (i.e. we are
// zooming), then we need to adjust the backBuffer tile
if (ratio != this.lastRatio) {
if (this.layer.transitionEffect == 'resize') {
- // In this case, we can just immediately resize the
+ // In this case, we can just immediately resize the
// backBufferTile.
var upperLeft = new OpenLayers.LonLat(
- this.backBufferTile.bounds.left,
+ this.backBufferTile.bounds.left,
this.backBufferTile.bounds.top
);
var size = new OpenLayers.Size(
@@ -17848,10 +17848,10 @@
);
var px = this.layer.map.getLayerPxFromLonLat(upperLeft);
- OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,
+ OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,
null, px, size);
var imageSize = this.backBufferTile.imageSize;
- imageSize = new OpenLayers.Size(imageSize.w * ratio,
+ imageSize = new OpenLayers.Size(imageSize.w * ratio,
imageSize.h * ratio);
var imageOffset = this.backBufferTile.imageOffset;
if(imageOffset) {
@@ -17880,8 +17880,8 @@
this.lastRatio = ratio;
},
-
- /**
+
+ /**
* Method: show
* Show the tile by showing its frame.
*/
@@ -17889,29 +17889,29 @@
this.frame.style.display = '';
// Force a reflow on gecko based browsers to actually show the element
// before continuing execution.
- if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,
+ if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,
this.layer.transitionEffect) != -1) {
- if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
- this.frame.scrollLeft = this.frame.scrollLeft;
- }
+ if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
+ this.frame.scrollLeft = this.frame.scrollLeft;
+ }
}
},
-
- /**
+
+ /**
* Method: hide
* Hide the tile by hiding its frame.
*/
hide: function() {
this.frame.style.display = 'none';
},
-
+
CLASS_NAME: "OpenLayers.Tile.Image"
}
);
-OpenLayers.Tile.Image.useBlankTile = (
- OpenLayers.Util.getBrowserName() == "safari" ||
- OpenLayers.Util.getBrowserName() == "opera");
+OpenLayers.Tile.Image.useBlankTile = (
+ OpenLayers.Util.getBrowserName() == "safari" ||
+ OpenLayers.Util.getBrowserName() == "opera");
/* ======================================================================
OpenLayers/Control/OverviewMap.js
====================================================================== */
@@ -17920,7 +17920,7 @@
* license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the
* full text of the license. */
-/**
+/**
* @requires OpenLayers/Control.js
* @requires OpenLayers/BaseTypes.js
* @requires OpenLayers/Events.js
@@ -17928,8 +17928,8 @@
/**
* Class: OpenLayers.Control.OverviewMap
- * The OverMap control creates a small overview map, useful to display the
- * extent of a zoomed map and your main map and provide additional
+ * The OverMap control creates a small overview map, useful to display the
+ * extent of a zoomed map and your main map and provide additional
* navigation options to the User. By default the overview map is drawn in
* the lower right corner of the main map. Create a new overview map with the
* <OpenLayers.Control.OverviewMap> constructor.
@@ -17944,7 +17944,7 @@
* {DOMElement} The DOM element that contains the overview map
*/
element: null,
-
+
/**
* APIProperty: ovmap
* {<OpenLayers.Map>} A reference to the overview map itself.
@@ -17966,7 +17966,7 @@
* If none are sent at construction, the base layer for the main map is used.
*/
layers: null,
-
+
/**
* APIProperty: minRectSize
* {Integer} The minimum width or height (in pixels) of the extent
@@ -17975,7 +17975,7 @@
* <minRectDisplayClass> property. Default is 15 pixels.
*/
minRectSize: 15,
-
+
/**
* APIProperty: minRectDisplayClass
* {String} Replacement style class name for the extent rectangle when
@@ -18008,7 +18008,7 @@
* resolution at which to zoom farther in on the overview map.
*/
maxRatio: 32,
-
+
/**
* APIProperty: mapOptions
* {Object} An object containing any non-default properties to be sent to
@@ -18025,7 +18025,7 @@
* to the center.
*/
autoPan: false,
-
+
/**
* Property: handlers
* {Object}
@@ -18052,7 +18052,7 @@
this.handlers = {};
OpenLayers.Control.prototype.initialize.apply(this, [options]);
},
-
+
/**
* APIMethod: destroy
* Deconstruct the control
@@ -18070,7 +18070,7 @@
this.ovmap.destroy();
this.ovmap = null;
-
+
this.element.removeChild(this.mapDiv);
this.mapDiv = null;
@@ -18082,26 +18082,26 @@
this.div.removeChild(this.maximizeDiv);
this.maximizeDiv = null;
}
-
+
if (this.minimizeDiv) {
OpenLayers.Event.stopObservingElement(this.minimizeDiv);
this.div.removeChild(this.minimizeDiv);
this.minimizeDiv = null;
}
-
+
this.map.events.un({
"moveend": this.update,
"changebaselayer": this.baseLayerDraw,
scope: this
});
- OpenLayers.Control.prototype.destroy.apply(this, arguments);
+ OpenLayers.Control.prototype.destroy.apply(this, arguments);
},
/**
* Method: draw
* Render the control in the browser.
- */
+ */
draw: function() {
OpenLayers.Control.prototype.draw.apply(this, arguments);
if(!(this.layers.length > 0)) {
@@ -18125,14 +18125,14 @@
this.mapDiv.style.position = 'relative';
this.mapDiv.style.overflow = 'hidden';
this.mapDiv.id = OpenLayers.Util.createUniqueID('overviewMap');
-
+
this.extentRectangle = document.createElement('div');
this.extentRectangle.style.position = 'absolute';
this.extentRectangle.style.zIndex = 1000; //HACK
this.extentRectangle.className = this.displayClass+'ExtentRectangle';
this.mapDiv.appendChild(this.extentRectangle);
- this.element.appendChild(this.mapDiv);
+ this.element.appendChild(this.mapDiv);
this.div.appendChild(this.element);
@@ -18144,48 +18144,48 @@
// maximize button div
var img = imgLocation + 'layer-switcher-maximize.png';
this.maximizeDiv = OpenLayers.Util.createAlphaImageDiv(
- this.displayClass + 'MaximizeButton',
- null,
- new OpenLayers.Size(18,18),
- img,
+ this.displayClass + 'MaximizeButton',
+ null,
+ new OpenLayers.Size(18,18),
+ img,
'absolute');
this.maximizeDiv.style.display = 'none';
this.maximizeDiv.className = this.displayClass + 'MaximizeButton';
- OpenLayers.Event.observe(this.maximizeDiv, 'click',
+ OpenLayers.Event.observe(this.maximizeDiv, 'click',
OpenLayers.Function.bindAsEventListener(this.maximizeControl,
this)
);
this.div.appendChild(this.maximizeDiv);
-
+
// minimize button div
var img = imgLocation + 'layer-switcher-minimize.png';
this.minimizeDiv = OpenLayers.Util.createAlphaImageDiv(
- 'OpenLayers_Control_minimizeDiv',
- null,
- new OpenLayers.Size(18,18),
- img,
+ 'OpenLayers_Control_minimizeDiv',
+ null,
+ new OpenLayers.Size(18,18),
+ img,
'absolute');
this.minimizeDiv.style.display = 'none';
this.minimizeDiv.className = this.displayClass + 'MinimizeButton';
- OpenLayers.Event.observe(this.minimizeDiv, 'click',
+ OpenLayers.Event.observe(this.minimizeDiv, 'click',
OpenLayers.Function.bindAsEventListener(this.minimizeControl,
this)
);
this.div.appendChild(this.minimizeDiv);
-
+
var eventsToStop = ['dblclick','mousedown'];
-
+
for (var i=0, len=eventsToStop.length; i<len; i++) {
- OpenLayers.Event.observe(this.maximizeDiv,
- eventsToStop[i],
+ OpenLayers.Event.observe(this.maximizeDiv,
+ eventsToStop[i],
OpenLayers.Event.stop);
OpenLayers.Event.observe(this.minimizeDiv,
- eventsToStop[i],
+ eventsToStop[i],
OpenLayers.Event.stop);
}
-
+
this.minimizeControl();
} else {
// show the overview map
@@ -18194,12 +18194,12 @@
if(this.map.getExtent()) {
this.update();
}
-
+
this.map.events.register('moveend', this, this.update);
return this.div;
},
-
+
/**
* Method: baseLayerDraw
* Draw the base layer - called if unable to complete in the initial draw
@@ -18237,7 +18237,7 @@
newTop));
}
},
-
+
/**
* Method: mapDivClick
* Handle browser events
@@ -18275,15 +18275,15 @@
this.element.style.display = '';
this.showToggle(false);
if (e != null) {
- OpenLayers.Event.stop(e);
+ OpenLayers.Event.stop(e);
}
},
/**
* Method: minimizeControl
- * Hide all the contents of the control, shrink the size,
+ * Hide all the contents of the control, shrink the size,
* add the maximize icon
- *
+ *
* Parameters:
* e - {<OpenLayers.Event>}
*/
@@ -18291,7 +18291,7 @@
this.element.style.display = 'none';
this.showToggle(true);
if (e != null) {
- OpenLayers.Event.stop(e);
+ OpenLayers.Event.stop(e);
}
},
@@ -18300,7 +18300,7 @@
* Hide/Show the toggle depending on whether the control is minimized
*
* Parameters:
- * minimize - {Boolean}
+ * minimize - {Boolean}
*/
showToggle: function(minimize) {
this.maximizeDiv.style.display = minimize ? '' : 'none';
@@ -18315,15 +18315,15 @@
if(this.ovmap == null) {
this.createMap();
}
-
+
if(this.autoPan || !this.isSuitableOverview()) {
this.updateOverview();
}
-
+
// update extent rectangle
this.updateRectToMap();
},
-
+
/**
* Method: isSuitableOverview
* Determines if the overview map is suitable given the extent and
@@ -18336,7 +18336,7 @@
Math.max(mapExtent.left, maxExtent.left),
Math.max(mapExtent.bottom, maxExtent.bottom),
Math.min(mapExtent.right, maxExtent.right),
- Math.min(mapExtent.top, maxExtent.top));
+ Math.min(mapExtent.top, maxExtent.top));
if (this.ovmap.getProjection() != this.map.getProjection()) {
testExtent = testExtent.transform(
@@ -18349,7 +18349,7 @@
(resRatio <= this.maxRatio) &&
(this.ovmap.getExtent().containsBounds(testExtent)));
},
-
+
/**
* Method updateOverview
* Called by <update> if <isSuitableOverview> returns true
@@ -18360,7 +18360,7 @@
var resRatio = targetRes / mapRes;
if(resRatio > this.maxRatio) {
// zoom in overview map
- targetRes = this.minRatio * mapRes;
+ targetRes = this.minRatio * mapRes;
} else if(resRatio <= this.minRatio) {
// zoom out overview map
targetRes = this.maxRatio * mapRes;
@@ -18377,7 +18377,7 @@
targetRes * this.resolutionFactor));
this.updateRectToMap();
},
-
+
/**
* Method: createMap
* Construct the map that this control contains
@@ -18385,14 +18385,14 @@
createMap: function() {
// create the overview map
var options = OpenLayers.Util.extend(
- {controls: [], maxResolution: 'auto',
+ {controls: [], maxResolution: 'auto',
fallThrough: false}, this.mapOptions);
this.ovmap = new OpenLayers.Map(this.mapDiv, options);
-
+
// prevent ovmap from being destroyed when the page unloads, because
// the OverviewMap control has to do this (and does it).
OpenLayers.Event.stopObserving(window, 'unload', this.ovmap.unloadDestroy);
-
+
this.ovmap.addLayers(this.layers);
this.ovmap.zoomToMaxExtent();
// check extent rectangle border width
@@ -18422,7 +18422,7 @@
}
);
this.handlers.click.activate();
-
+
this.rectEvents = new OpenLayers.Events(this, this.extentRectangle,
null, true);
this.rectEvents.register("mouseover", this, function(e) {
@@ -18446,7 +18446,7 @@
OpenLayers.INCHES_PER_UNIT[targetUnits] : 1;
}
},
-
+
/**
* Method: updateRectToMap
* Updates the extent rectangle position and size to match the map extent
@@ -18456,7 +18456,7 @@
var bounds;
if (this.ovmap.getProjection() != this.map.getProjection()) {
bounds = this.map.getExtent().transform(
- this.map.getProjectionObject(),
+ this.map.getProjectionObject(),
this.ovmap.getProjectionObject() );
} else {
bounds = this.map.getExtent();
@@ -18466,7 +18466,7 @@
this.setRectPxBounds(pxBounds);
}
},
-
+
/**
* Method: updateMapToRect
* Updates the map extent to match the extent rectangle position and size
@@ -18583,12 +18583,12 @@
var size = this.ovmap.size;
var res = this.ovmap.getResolution();
var center = this.ovmap.getExtent().getCenterLonLat();
-
+
var delta_x = overviewMapPx.x - (size.w / 2);
var delta_y = overviewMapPx.y - (size.h / 2);
-
+
return new OpenLayers.LonLat(center.lon + delta_x * res ,
- center.lat - delta_y * res);
+ center.lat - delta_y * res);
},
/**
@@ -18599,7 +18599,7 @@
* lonlat - {<OpenLayers.LonLat>}
*
* Returns:
- * {<OpenLayers.Pixel>} Location which is the passed-in OpenLayers.LonLat,
+ * {<OpenLayers.Pixel>} Location which is the passed-in OpenLayers.LonLat,
* translated into overview map pixels
*/
getOverviewPxFromLonLat: function(lonlat) {
@@ -18610,7 +18610,7 @@
px = new OpenLayers.Pixel(
Math.round(1/res * (lonlat.lon - extent.left)),
Math.round(1/res * (extent.top - lonlat.lat)));
- }
+ }
return px;
},
@@ -18638,33 +18638,33 @@
*/
OpenLayers.Feature = OpenLayers.Class({
- /**
- * Property: layer
- * {<OpenLayers.Layer>}
+ /**
+ * Property: layer
+ * {<OpenLayers.Layer>}
*/
layer: null,
- /**
- * Property: id
- * {String}
+ /**
+ * Property: id
+ * {String}
*/
id: null,
-
- /**
- * Property: lonlat
- * {<OpenLayers.LonLat>}
+
+ /**
+ * Property: lonlat
+ * {<OpenLayers.LonLat>}
*/
lonlat: null,
- /**
- * Property: data
- * {Object}
+ /**
+ * Property: data
+ * {Object}
*/
data: null,
- /**
- * Property: marker
- * {<OpenLayers.Marker>}
+ /**
+ * Property: marker
+ * {<OpenLayers.Marker>}
*/
marker: null,
@@ -18675,21 +18675,21 @@
*/
popupClass: OpenLayers.Popup.AnchoredBubble,
- /**
- * Property: popup
- * {<OpenLayers.Popup>}
+ /**
+ * Property: popup
+ * {<OpenLayers.Popup>}
*/
popup: null,
- /**
+ /**
* Constructor: OpenLayers.Feature
* Constructor for features.
*
* Parameters:
- * layer - {<OpenLayers.Layer>}
- * lonlat - {<OpenLayers.LonLat>}
- * data - {Object}
- *
+ * layer - {<OpenLayers.Layer>}
+ * lonlat - {<OpenLayers.LonLat>}
+ * data - {Object}
+ *
* Returns:
* {<OpenLayers.Feature>}
*/
@@ -18697,10 +18697,10 @@
this.layer = layer;
this.lonlat = lonlat;
this.data = (data != null) ? data : {};
- this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
+ this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
- /**
+ /**
* Method: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -18726,36 +18726,36 @@
this.popup = null;
}
},
-
+
/**
* Method: onScreen
- *
+ *
* Returns:
* {Boolean} Whether or not the feature is currently visible on screen
* (based on its 'lonlat' property)
*/
onScreen:function() {
-
+
var onScreen = false;
if ((this.layer != null) && (this.layer.map != null)) {
var screenBounds = this.layer.map.getExtent();
onScreen = screenBounds.containsLonLat(this.lonlat);
- }
+ }
return onScreen;
},
-
+
/**
* Method: createMarker
* Based on the data associated with the Feature, create and return a marker object.
*
- * Returns:
+ * Returns:
* {<OpenLayers.Marker>} A Marker Object created from the 'lonlat' and 'icon' properties
* set in this.data. If no 'lonlat' is set, returns null. If no
* 'icon' is set, OpenLayers.Marker() will load the default image.
- *
+ *
* Note - this.marker is set to return value
- *
+ *
*/
createMarker: function() {
@@ -18772,64 +18772,64 @@
* to also specify an alternative function for destroying it
*/
destroyMarker: function() {
- this.marker.destroy();
+ this.marker.destroy();
},
/**
* Method: createPopup
* Creates a popup object created from the 'lonlat', 'popupSize',
* and 'popupContentHTML' properties set in this.data. It uses
- * this.marker.icon as default anchor.
- *
- * If no 'lonlat' is set, returns null.
+ * this.marker.icon as default anchor.
+ *
+ * If no 'lonlat' is set, returns null.
* If no this.marker has been created, no anchor is sent.
*
* Note - the returned popup object is 'owned' by the feature, so you
* cannot use the popup's destroy method to discard the popup.
* Instead, you must use the feature's destroyPopup
- *
+ *
* Note - this.popup is set to return value
- *
- * Parameters:
+ *
+ * Parameters:
* closeBox - {Boolean} create popup with closebox or not
- *
+ *
* Returns:
* {<OpenLayers.Popup>} Returns the created popup, which is also set
* as 'popup' property of this feature. Will be of whatever type
* specified by this feature's 'popupClass' property, but must be
* of type <OpenLayers.Popup>.
- *
+ *
*/
createPopup: function(closeBox) {
if (this.lonlat != null) {
-
+
var id = this.id + "_popup";
var anchor = (this.marker) ? this.marker.icon : null;
if (!this.popup) {
- this.popup = new this.popupClass(id,
+ this.popup = new this.popupClass(id,
this.lonlat,
this.data.popupSize,
this.data.popupContentHTML,
- anchor,
- closeBox);
- }
+ anchor,
+ closeBox);
+ }
if (this.data.overflow != null) {
this.popup.contentDiv.style.overflow = this.data.overflow;
- }
-
+ }
+
this.popup.feature = this;
- }
+ }
return this.popup;
},
-
+
/**
* Method: destroyPopup
* Destroys the popup created via createPopup.
*
- * As with the marker, if user overrides the createPopup() function, s/he
+ * As with the marker, if user overrides the createPopup() function, s/he
* should also be able to override the destruction
*/
destroyPopup: function() {
@@ -18837,7 +18837,7 @@
this.popup.feature = null;
this.popup.destroy();
this.popup = null;
- }
+ }
},
CLASS_NAME: "OpenLayers.Feature"
@@ -18847,7 +18847,7 @@
====================================================================== */
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the clear BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt
* for the full text of the license. */
/**
@@ -18864,9 +18864,9 @@
* click. By setting a <pixelTolerance>, controls can also ignore clicks
* that include a drag. Create a new instance with the
* <OpenLayers.Handler.Click> constructor.
- *
+ *
* Inherits from:
- * - <OpenLayers.Handler>
+ * - <OpenLayers.Handler>
*/
OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
@@ -18876,20 +18876,20 @@
* considered a double-click.
*/
delay: 300,
-
+
/**
* APIProperty: single
* {Boolean} Handle single clicks. Default is true. If false, clicks
* will not be reported. If true, single-clicks will be reported.
*/
single: true,
-
+
/**
* APIProperty: double
* {Boolean} Handle double-clicks. Default is false.
*/
'double': false,
-
+
/**
* APIProperty: pixelTolerance
* {Number} Maximum number of pixels between mouseup and mousedown for an
@@ -18899,7 +18899,7 @@
* constructed.
*/
pixelTolerance: 0,
-
+
/**
* APIProperty: stopSingle
* {Boolean} Stop other listeners from being notified of clicks. Default
@@ -18908,13 +18908,13 @@
* or single clicks).
*/
stopSingle: false,
-
+
/**
* APIProperty: stopDouble
* {Boolean} Stop other listeners from being notified of double-clicks.
* Default is false. If true, any click listeners registered before
* this one will not be notified of *any* double-click events.
- *
+ *
* The one caveat with stopDouble is that given a map with two click
* handlers, one with stopDouble true and the other with stopSingle
* true, the stopSingle handler should be activated last to get
@@ -18930,24 +18930,24 @@
* {Number} The id of the timeout waiting to clear the <delayedCall>.
*/
timerId: null,
-
+
/**
* Property: down
* {<OpenLayers.Pixel>} The pixel location of the last mousedown.
*/
down: null,
-
+
/**
* Property: rightclickTimerId
- * {Number} The id of the right mouse timeout waiting to clear the
+ * {Number} The id of the right mouse timeout waiting to clear the
* <delayedEvent>.
*/
rightclickTimerId: null,
-
+
/**
* Constructor: OpenLayers.Handler.Click
* Create a new click handler.
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>} The control that is making use of
* this handler. If a handler is being used without a control, the
@@ -18970,7 +18970,7 @@
};
}
},
-
+
/**
* Method: mousedown
* Handle mousedown. Only registered as a listener if pixelTolerance is
@@ -18984,7 +18984,7 @@
/**
* Method: mouseup
* Handle mouseup. Installed to support collection of right mouse events.
- *
+ *
* Returns:
* {Boolean} Continue propagating this event.
*/
@@ -18994,55 +18994,55 @@
// Collect right mouse clicks from the mouseup
// IE - ignores the second right click in mousedown so using
// mouseup instead
- if (this.checkModifiers(evt) &&
- this.control.handleRightClicks &&
+ if (this.checkModifiers(evt) &&
+ this.control.handleRightClicks &&
OpenLayers.Event.isRightClick(evt)) {
propagate = this.rightclick(evt);
}
return propagate;
},
-
+
/**
* Method: rightclick
- * Handle rightclick. For a dblrightclick, we get two clicks so we need
- * to always register for dblrightclick to properly handle single
+ * Handle rightclick. For a dblrightclick, we get two clicks so we need
+ * to always register for dblrightclick to properly handle single
* clicks.
- *
+ *
* Returns:
* {Boolean} Continue propagating this event.
*/
rightclick: function(evt) {
if(this.passesTolerance(evt)) {
if(this.rightclickTimerId != null) {
- //Second click received before timeout this must be
+ //Second click received before timeout this must be
// a double click
- this.clearTimer();
+ this.clearTimer();
this.callback('dblrightclick', [evt]);
return !this.stopDouble;
- } else {
- //Set the rightclickTimerId, send evt only if double is
+ } else {
+ //Set the rightclickTimerId, send evt only if double is
// true else trigger single
var clickEvent = this['double'] ?
- OpenLayers.Util.extend({}, evt) :
+ OpenLayers.Util.extend({}, evt) :
this.callback('rightclick', [evt]);
var delayedRightCall = OpenLayers.Function.bind(
- this.delayedRightCall,
- this,
+ this.delayedRightCall,
+ this,
clickEvent
);
this.rightclickTimerId = window.setTimeout(
delayedRightCall, this.delay
);
- }
+ }
}
return !this.stopSingle;
},
-
+
/**
* Method: delayedRightCall
- * Sets <rightclickTimerId> to null. And optionally triggers the
+ * Sets <rightclickTimerId> to null. And optionally triggers the
* rightclick callback if evt is set.
*/
delayedRightCall: function(evt) {
@@ -19052,13 +19052,13 @@
}
return !this.stopSingle;
},
-
+
/**
* Method: dblclick
* Handle dblclick. For a dblclick, we get two clicks in some browsers
* (FF) and one in others (IE). So we need to always register for
* dblclick to properly handle single clicks.
- *
+ *
* Returns:
* {Boolean} Continue propagating this event.
*/
@@ -19071,7 +19071,7 @@
}
return !this.stopDouble;
},
-
+
/**
* Method: click
* Handle click.
@@ -19086,7 +19086,7 @@
this.clearTimer();
} else {
// set the timer, send evt only if single is true
- //use a clone of the event object because it will no longer
+ //use a clone of the event object because it will no longer
//be a valid event object in IE in the timer callback
var clickEvent = this.single ?
OpenLayers.Util.extend({}, evt) : null;
@@ -19098,7 +19098,7 @@
}
return !this.stopSingle;
},
-
+
/**
* Method: passesTolerance
* Determine whether the event is within the optional pixel tolerance. Note
@@ -19138,7 +19138,7 @@
this.rightclickTimerId = null;
}
},
-
+
/**
* Method: delayedCall
* Sets <timerId> to null. And optionally triggers the click callback if
@@ -19204,14 +19204,14 @@
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
-
- /**
+
+ /**
* Property: started
* {Boolean} When a mousedown event is received, we want to record it, but
- * not set 'dragging' until the mouse moves after starting.
+ * not set 'dragging' until the mouse moves after starting.
*/
started: false,
-
+
/**
* Property: stopDown
* {Boolean} Stop propagation of mousedown events from getting to listeners
@@ -19219,19 +19219,19 @@
*/
stopDown: true,
- /**
- * Property: dragging
- * {Boolean}
+ /**
+ * Property: dragging
+ * {Boolean}
*/
dragging: false,
- /**
+ /**
* Property: last
* {<OpenLayers.Pixel>} The last pixel location of the drag.
*/
last: null,
- /**
+ /**
* Property: start
* {<OpenLayers.Pixel>} The first pixel location of the drag.
*/
@@ -19242,17 +19242,17 @@
* {Function}
*/
oldOnselectstart: null,
-
+
/**
* Property: interval
- * {Integer} In order to increase performance, an interval (in
- * milliseconds) can be set to reduce the number of drag events
- * called. If set, a new drag event will not be set until the
- * interval has passed.
- * Defaults to 0, meaning no interval.
+ * {Integer} In order to increase performance, an interval (in
+ * milliseconds) can be set to reduce the number of drag events
+ * called. If set, a new drag event will not be set until the
+ * interval has passed.
+ * Defaults to 0, meaning no interval.
*/
interval: 0,
-
+
/**
* Property: timeoutId
* {String} The id of the timeout used for the mousedown interval.
@@ -19263,7 +19263,7 @@
/**
* Constructor: OpenLayers.Handler.Drag
* Returns OpenLayers.Handler.Drag
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>} The control that is making use of
* this handler. If a handler is being used without a control, the
@@ -19274,17 +19274,17 @@
* expect to recieve a single argument, the pixel location of the event.
* Callbacks for 'move' and 'done' are supported. You can also speficy
* callbacks for 'down', 'up', and 'out' to respond to those events.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
},
-
+
/**
* The four methods below (down, move, up, and out) are used by subclasses
* to do their own processing related to these mouse events.
*/
-
+
/**
* Method: down
* This method is called during the handling of the mouse down event.
@@ -19295,7 +19295,7 @@
*/
down: function(evt) {
},
-
+
/**
* Method: move
* This method is called during the handling of the mouse move event.
@@ -19341,7 +19341,7 @@
* Handle mousedown events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19359,12 +19359,12 @@
this.down(evt);
this.callback("down", [evt.xy]);
OpenLayers.Event.stop(evt);
-
+
if(!this.oldOnselectstart) {
this.oldOnselectstart = (document.onselectstart) ? document.onselectstart : function() { return true; };
document.onselectstart = function() {return false;};
}
-
+
propagate = !this.stopDown;
} else {
this.started = false;
@@ -19379,7 +19379,7 @@
* Handle mousemove events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19400,7 +19400,7 @@
}
return true;
},
-
+
/**
* Method: removeTimeout
* Private. Called by mousemove() to remove the drag timeout.
@@ -19414,7 +19414,7 @@
* Handle mouseup events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19442,7 +19442,7 @@
* Handle mouseout events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19450,7 +19450,7 @@
mouseout: function (evt) {
if (this.started && OpenLayers.Util.mouseLeft(evt, this.map.div)) {
var dragged = (this.start != this.last);
- this.started = false;
+ this.started = false;
this.dragging = false;
OpenLayers.Element.removeClass(
this.map.viewPortDiv, "olDragDown"
@@ -19470,12 +19470,12 @@
/**
* Method: click
* The drag handler captures the click event. If something else registers
- * for clicks on the same element, its listener will not be called
+ * for clicks on the same element, its listener will not be called
* after a drag.
- *
- * Parameters:
- * evt - {Event}
- *
+ *
+ * Parameters:
+ * evt - {Event}
+ *
* Returns:
* {Boolean} Let the event propagate.
*/
@@ -19487,7 +19487,7 @@
/**
* Method: activate
* Activate the handler.
- *
+ *
* Returns:
* {Boolean} The handler was successfully activated.
*/
@@ -19501,9 +19501,9 @@
},
/**
- * Method: deactivate
+ * Method: deactivate
* Deactivate the handler.
- *
+ *
* Returns:
* {Boolean} The handler was successfully deactivated.
*/
@@ -19538,7 +19538,7 @@
*/
/**
- * Class: OpenLayers.Handler.Feature
+ * Class: OpenLayers.Handler.Feature
* Handler to respond to mouse events related to a drawn feature. Callbacks
* with the following keys will be notified of the following events
* associated with features: click, clickout, over, out, and dblclick.
@@ -19584,7 +19584,7 @@
* {<OpenLayers.Pixel>} The location of the last mouseup.
*/
up: null,
-
+
/**
* Property: clickTolerance
* {Number} The number of pixels the mouse can move between mousedown
@@ -19598,7 +19598,7 @@
* Property: geometryTypes
* To restrict dragging to a limited set of geometry types, send a list
* of strings corresponding to the geometry class names.
- *
+ *
* @type Array(String)
*/
geometryTypes: null,
@@ -19629,17 +19629,17 @@
* value of stopUp. Defaults to false.
*/
stopUp: false,
-
+
/**
* Constructor: OpenLayers.Handler.Feature
*
* Parameters:
- * control - {<OpenLayers.Control>}
+ * control - {<OpenLayers.Control>}
* layer - {<OpenLayers.Layer.Vector>}
* callbacks - {Object} An object with a 'over' property whos value is
- * a function to be called when the mouse is over a feature. The
+ * a function to be called when the mouse is over a feature. The
* callback should expect to recieve a single argument, the feature.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, layer, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, [control, callbacks, options]);
@@ -19651,22 +19651,22 @@
* Method: mousedown
* Handle mouse down. Stop propagation if a feature is targeted by this
* event (stops map dragging during feature selection).
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
mousedown: function(evt) {
this.down = evt.xy;
return this.handle(evt) ? !this.stopDown : true;
},
-
+
/**
* Method: mouseup
* Handle mouse up. Stop propagation if a feature is targeted by this
* event.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
mouseup: function(evt) {
this.up = evt.xy;
@@ -19677,9 +19677,9 @@
* Method: click
* Handle click. Call the "click" callback if click on a feature,
* or the "clickout" callback if click outside any feature.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -19687,14 +19687,14 @@
click: function(evt) {
return this.handle(evt) ? !this.stopClick : true;
},
-
+
/**
* Method: mousemove
* Handle mouse moves. Call the "over" callback if moving in to a feature,
* or the "out" callback if moving out of a feature.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -19702,17 +19702,17 @@
mousemove: function(evt) {
if (!this.callbacks['over'] && !this.callbacks['out']) {
return true;
- }
+ }
this.handle(evt);
return true;
},
-
+
/**
* Method: dblclick
* Handle dblclick. Call the "dblclick" callback if dblclick on a feature.
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -19801,7 +19801,7 @@
}
return handled;
},
-
+
/**
* Method: triggerCallback
* Call the callback keyed in the event map with the supplied arguments.
@@ -19829,7 +19829,7 @@
},
/**
- * Method: activate
+ * Method: activate
* Turn on the handler. Returns false if the handler was already active.
*
* Returns:
@@ -19848,12 +19848,12 @@
}
return activated;
},
-
+
/**
- * Method: deactivate
+ * Method: deactivate
* Turn off the handler. Returns false if the handler was already active.
*
- * Returns:
+ * Returns:
* {Boolean}
*/
deactivate: function() {
@@ -19873,10 +19873,10 @@
}
return deactivated;
},
-
+
/**
* Method handleMapEvents
- *
+ *
* Parameters:
* evt - {Object}
*/
@@ -19885,7 +19885,7 @@
this.moveLayerToTop();
}
},
-
+
/**
* Method: moveLayerToTop
* Moves the layer for this handler to the top, so mouse events can reach
@@ -19895,9 +19895,9 @@
var index = Math.max(this.map.Z_INDEX_BASE['Feature'] - 1,
this.layer.getZIndex()) + 1;
this.layer.setZIndex(index);
-
+
},
-
+
/**
* Method: moveLayerBack
* Moves the layer back to the position determined by the map's layers
@@ -19920,7 +19920,7 @@
====================================================================== */
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the clear BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt
* for the full text of the license. */
/**
@@ -19933,9 +19933,9 @@
* on the map that aren't DOM elements. For example one can use
* this handler to send WMS/GetFeatureInfo requests as the user
* moves the mouve over the map.
- *
+ *
* Inherits from:
- * - <OpenLayers.Handler>
+ * - <OpenLayers.Handler>
*/
OpenLayers.Handler.Hover = OpenLayers.Class(OpenLayers.Handler, {
@@ -19945,7 +19945,7 @@
* the event is considered a hover. Default is 500.
*/
delay: 500,
-
+
/**
* APIProperty: pixelTolerance
* {Integer} - Maximum number of pixels between mousemoves for
@@ -19972,7 +19972,7 @@
* {Number} - The id of the timer.
*/
timerId: null,
-
+
/**
* Constructor: OpenLayers.Handler.Hover
* Construct a hover handler.
@@ -20116,18 +20116,18 @@
/**
* Class: OpenLayers.Handler.MouseWheel
* Handler for wheel up/down events.
- *
+ *
* Inherits from:
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.MouseWheel = OpenLayers.Class(OpenLayers.Handler, {
- /**
- * Property: wheelListener
- * {function}
+ /**
+ * Property: wheelListener
+ * {function}
*/
wheelListener: null,
- /**
+ /**
* Property: mousePosition
* {<OpenLayers.Pixel>} mousePosition is necessary because
* evt.clientX/Y is buggy in Moz on wheel events, so we cache and use the
@@ -20139,12 +20139,12 @@
* Constructor: OpenLayers.Handler.MouseWheel
*
* Parameters:
- * control - {<OpenLayers.Control>}
+ * control - {<OpenLayers.Control>}
* callbacks - {Object} An object containing a single function to be
* called when the drag operation is finished.
* The callback should expect to recieve a single
* argument, the point geometry.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
@@ -20155,7 +20155,7 @@
/**
* Method: destroy
- */
+ */
destroy: function() {
OpenLayers.Handler.prototype.destroy.apply(this, arguments);
this.wheelListener = null;
@@ -20165,22 +20165,22 @@
* Mouse ScrollWheel code thanks to http://adomas.org/javascript-mouse-wheel/
*/
- /**
+ /**
* Method: onWheelEvent
* Catch the wheel event and handle it xbrowserly
- *
+ *
* Parameters:
- * e - {Event}
+ * e - {Event}
*/
onWheelEvent: function(e){
-
+
// make sure we have a map and check keyboard modifiers
if (!this.map || !this.checkModifiers(e)) {
return;
}
-
- // Ride up the element's DOM hierarchy to determine if it or any of
- // its ancestors was:
+
+ // Ride up the element's DOM hierarchy to determine if it or any of
+ // its ancestors was:
// * specifically marked as scrollable
// * one of our layer divs
// * the map div
@@ -20188,7 +20188,7 @@
var overScrollableDiv = false;
var overLayerDiv = false;
var overMapDiv = false;
-
+
var elem = OpenLayers.Event.element(e);
while((elem != null) && !overMapDiv && !overScrollableDiv) {
@@ -20197,14 +20197,14 @@
if (elem.currentStyle) {
overflow = elem.currentStyle["overflow"];
} else {
- var style =
+ var style =
document.defaultView.getComputedStyle(elem, null);
var overflow = style.getPropertyValue("overflow");
}
- overScrollableDiv = ( overflow &&
+ overScrollableDiv = ( overflow &&
(overflow == "auto") || (overflow == "scroll") );
} catch(err) {
- //sometimes when scrolling in a popup, this causes
+ //sometimes when scrolling in a popup, this causes
// obscure browser error
}
}
@@ -20212,10 +20212,10 @@
if (!overLayerDiv) {
for(var i=0, len=this.map.layers.length; i<len; i++) {
// Are we in the layer div? Note that we have two cases
- // here: one is to catch EventPane layers, which have a
+ // here: one is to catch EventPane layers, which have a
// pane above the layer (layer.pane)
- if (elem == this.map.layers[i].div
- || elem == this.map.layers[i].pane) {
+ if (elem == this.map.layers[i].div
+ || elem == this.map.layers[i].pane) {
overLayerDiv = true;
break;
}
@@ -20225,22 +20225,22 @@
elem = elem.parentNode;
}
-
+
// Logic below is the following:
//
// If we are over a scrollable div or not over the map div:
// * do nothing (let the browser handle scrolling)
//
- // otherwise
- //
- // If we are over the layer div:
+ // otherwise
+ //
+ // If we are over the layer div:
// * zoom/in out
// then
// * kill event (so as not to also scroll the page after zooming)
//
// otherwise
//
- // Kill the event (dont scroll the page if we wheel over the
+ // Kill the event (dont scroll the page if we wheel over the
// layerswitcher or the pan/zoom control)
//
if (!overScrollableDiv && overMapDiv) {
@@ -20255,18 +20255,18 @@
* Method: wheelZoom
* Given the wheel event, we carry out the appropriate zooming in or out,
* based on the 'wheelDelta' or 'detail' property of the event.
- *
+ *
* Parameters:
* e - {Event}
*/
wheelZoom: function(e) {
-
+
var delta = 0;
if (!e) {
e = window.event;
}
if (e.wheelDelta) {
- delta = e.wheelDelta/120;
+ delta = e.wheelDelta/120;
if (window.opera && window.opera.version() < 9.2) {
delta = -delta;
}
@@ -20274,18 +20274,18 @@
delta = -e.detail / 3;
}
if (delta) {
- // add the mouse position to the event because mozilla has
- // a bug with clientX and clientY (see
+ // add the mouse position to the event because mozilla has
+ // a bug with clientX and clientY (see
// https://bugzilla.mozilla.org/show_bug.cgi?id=352179)
// getLonLatFromViewPortPx(e) returns wrong values
if (this.mousePosition) {
e.xy = this.mousePosition;
- }
+ }
if (!e.xy) {
// If the mouse hasn't moved over the map yet, then
// we don't have a mouse position (in FF), so we just
// act as if the mouse was at the center of the map.
- // Note that we can tell we are in the map -- and
+ // Note that we can tell we are in the map -- and
// this.map is ensured to be true above.
e.xy = this.map.getPixelFromLonLat(
this.map.getCenter()
@@ -20298,15 +20298,15 @@
}
}
},
-
+
/**
* Method: mousemove
* Update the stored mousePosition on every move.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousemove: function (evt) {
@@ -20314,7 +20314,7 @@
},
/**
- * Method: activate
+ * Method: activate
*/
activate: function (evt) {
if (OpenLayers.Handler.prototype.activate.apply(this, arguments)) {
@@ -20330,7 +20330,7 @@
},
/**
- * Method: deactivate
+ * Method: deactivate
*/
deactivate: function (evt) {
if (OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
@@ -20372,13 +20372,13 @@
*/
id: null,
- /**
+ /**
* APIProperty: name
* {String}
*/
name: null,
- /**
+ /**
* APIProperty: div
* {DOMElement}
*/
@@ -20392,20 +20392,20 @@
/**
* APIProperty: alwaysInRange
- * {Boolean} If a layer's display should not be scale-based, this should
- * be set to true. This will cause the layer, as an overlay, to always
- * be 'active', by always returning true from the calculateInRange()
- * function.
- *
- * If not explicitly specified for a layer, its value will be
- * determined on startup in initResolutions() based on whether or not
- * any scale-specific properties have been set as options on the
- * layer. If no scale-specific options have been set on the layer, we
+ * {Boolean} If a layer's display should not be scale-based, this should
+ * be set to true. This will cause the layer, as an overlay, to always
+ * be 'active', by always returning true from the calculateInRange()
+ * function.
+ *
+ * If not explicitly specified for a layer, its value will be
+ * determined on startup in initResolutions() based on whether or not
+ * any scale-specific properties have been set as options on the
+ * layer. If no scale-specific options have been set on the layer, we
* assume that it should always be in range.
- *
+ *
* See #987 for more info.
*/
- alwaysInRange: null,
+ alwaysInRange: null,
/**
* Constant: EVENT_TYPES
@@ -20435,7 +20435,7 @@
*/
EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
"move", "moveend"],
-
+
/**
* APIProperty: events
* {<OpenLayers.Events>}
@@ -20444,25 +20444,25 @@
/**
* APIProperty: map
- * {<OpenLayers.Map>} This variable is set when the layer is added to
+ * {<OpenLayers.Map>} This variable is set when the layer is added to
* the map, via the accessor function setMap().
*/
map: null,
-
+
/**
* APIProperty: isBaseLayer
- * {Boolean} Whether or not the layer is a base layer. This should be set
+ * {Boolean} Whether or not the layer is a base layer. This should be set
* individually by all subclasses. Default is false
*/
isBaseLayer: false,
-
+
/**
* Property: alpha
- * {Boolean} The layer's images have an alpha channel. Default is false.
+ * {Boolean} The layer's images have an alpha channel. Default is false.
*/
alpha: false,
- /**
+ /**
* APIProperty: displayInLayerSwitcher
* {Boolean} Display the layer's name in the layer switcher. Default is
* true.
@@ -20477,36 +20477,36 @@
/**
* APIProperty: attribution
- * {String} Attribution string, displayed when an
+ * {String} Attribution string, displayed when an
* <OpenLayers.Control.Attribution> has been added to the map.
*/
- attribution: null,
+ attribution: null,
- /**
+ /**
* Property: inRange
- * {Boolean} The current map resolution is within the layer's min/max
- * range. This is set in <OpenLayers.Map.setCenter> whenever the zoom
+ * {Boolean} The current map resolution is within the layer's min/max
+ * range. This is set in <OpenLayers.Map.setCenter> whenever the zoom
* changes.
*/
inRange: false,
-
+
/**
* Propery: imageSize
- * {<OpenLayers.Size>} For layers with a gutter, the image is larger than
+ * {<OpenLayers.Size>} For layers with a gutter, the image is larger than
* the tile by twice the gutter in each dimension.
*/
imageSize: null,
-
+
/**
* Property: imageOffset
- * {<OpenLayers.Pixel>} For layers with a gutter, the image offset
+ * {<OpenLayers.Pixel>} For layers with a gutter, the image offset
* represents displacement due to the gutter.
*/
imageOffset: null,
// OPTIONS
- /**
+ /**
* Property: options
* {Object} An optional object whose properties will be set on the layer.
* Any of the layer properties can be set as a property of the options
@@ -20532,8 +20532,8 @@
* at tile edges to be ignored. Set a gutter value that is equal to
* half the size of the widest symbol that needs to be displayed.
* Defaults to zero. Non-tiled layers always have zero gutter.
- */
- gutter: 0,
+ */
+ gutter: 0,
/**
* APIProperty: projection
@@ -20541,10 +20541,10 @@
* override the default projection string this layer - also set maxExtent,
* maxResolution, and units if appropriate. Can be either a string or
* an <OpenLayers.Projection> object when created -- will be converted
- * to an object when setMap is called if a string is passed.
+ * to an object when setMap is called if a string is passed.
*/
- projection: null,
-
+ projection: null,
+
/**
* APIProperty: units
* {String} The layer map units. Defaults to 'degrees'. Possible values
@@ -20571,7 +20571,7 @@
* maxResolution, maxScale, etc.).
*/
resolutions: null,
-
+
/**
* APIProperty: maxExtent
* {<OpenLayers.Bounds>} The center of these bounds will not stray outside
@@ -20580,18 +20580,18 @@
* requested that falls completely outside of these bounds.
*/
maxExtent: null,
-
+
/**
* APIProperty: minExtent
* {<OpenLayers.Bounds>}
*/
minExtent: null,
-
+
/**
* APIProperty: maxResolution
* {Float} Default max is 360 deg / 256 px, which corresponds to
- * zoom level 0 on gmaps. Specify a different value in the layer
- * options if you are not using a geographic projection and
+ * zoom level 0 on gmaps. Specify a different value in the layer
+ * options if you are not using a geographic projection and
* displaying the whole world.
*/
maxResolution: null,
@@ -20607,13 +20607,13 @@
* {Integer}
*/
numZoomLevels: null,
-
+
/**
* APIProperty: minScale
* {Float}
*/
minScale: null,
-
+
/**
* APIProperty: maxScale
* {Float}
@@ -20622,21 +20622,21 @@
/**
* APIProperty: displayOutsideMaxExtent
- * {Boolean} Request map tiles that are completely outside of the max
+ * {Boolean} Request map tiles that are completely outside of the max
* extent for this layer. Defaults to false.
*/
displayOutsideMaxExtent: false,
/**
* APIProperty: wrapDateLine
- * {Boolean} #487 for more info.
+ * {Boolean} #487 for more info.
*/
wrapDateLine: false,
-
+
/**
* APIProperty: transitionEffect
* {String} The transition effect to use when the map is panned or
- * zoomed.
+ * zoomed.
*
* There are currently two supported values:
* - *null* No transition effect (the default).
@@ -20646,14 +20646,14 @@
* resized tiles.
*/
transitionEffect: null,
-
+
/**
* Property: SUPPORTED_TRANSITIONS
- * {Array} An immutable (that means don't change it!) list of supported
+ * {Array} An immutable (that means don't change it!) list of supported
* transitionEffect values.
*/
SUPPORTED_TRANSITIONS: ['resize'],
-
+
/**
* Constructor: OpenLayers.Layer
*
@@ -20666,7 +20666,7 @@
this.addOptions(options);
this.name = name;
-
+
if (this.id == null) {
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
@@ -20676,7 +20676,7 @@
this.div.style.height = "100%";
this.div.dir = "ltr";
- this.events = new OpenLayers.Events(this, this.div,
+ this.events = new OpenLayers.Events(this, this.div,
this.EVENT_TYPES);
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
@@ -20688,7 +20688,7 @@
this.displayOutsideMaxExtent = true;
}
},
-
+
/**
* Method: destroy
* Destroy is a destructor: this is to alleviate cyclic references which
@@ -20720,7 +20720,7 @@
this.eventListeners = null;
this.events = null;
},
-
+
/**
* Method: clone
*
@@ -20731,22 +20731,22 @@
* {<OpenLayers.Layer>} An exact clone of this <OpenLayers.Layer>
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer(this.name, this.options);
- }
-
+ }
+
// catch any randomly tagged-on properties
OpenLayers.Util.applyDefaults(obj, this);
-
+
// a cloned layer should never have its map property set
- // because it has not been added to a map yet.
+ // because it has not been added to a map yet.
obj.map = null;
-
+
return obj;
},
-
- /**
+
+ /**
* APIMethod: setName
* Sets the new layer name for this layer. Can trigger a changelayer event
* on the map.
@@ -20764,33 +20764,33 @@
});
}
}
- },
-
+ },
+
/**
* APIMethod: addOptions
- *
+ *
* Parameters:
* newOptions - {Object}
*/
addOptions: function (newOptions) {
-
+
if (this.options == null) {
this.options = {};
}
-
+
// update our copy for clone
OpenLayers.Util.extend(this.options, newOptions);
// add new options to this
OpenLayers.Util.extend(this, newOptions);
},
-
+
/**
* APIMethod: onMapResize
* This function can be implemented by subclasses
*/
onMapResize: function() {
- //this function can be implemented by subclasses
+ //this function can be implemented by subclasses
},
/**
@@ -20823,7 +20823,7 @@
/**
* Method: moveTo
- *
+ *
* Parameters:
* bound - {<OpenLayers.Bounds>}
* zoomChanged - {Boolean} Tells when zoom has changed, as layers have to
@@ -20841,47 +20841,47 @@
/**
* Method: setMap
* Set the map property for the layer. This is done through an accessor
- * so that subclasses can override this and take special action once
- * they have their map variable set.
- *
- * Here we take care to bring over any of the necessary default
- * properties from the map.
- *
+ * so that subclasses can override this and take special action once
+ * they have their map variable set.
+ *
+ * Here we take care to bring over any of the necessary default
+ * properties from the map.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
setMap: function(map) {
if (this.map == null) {
-
+
this.map = map;
-
+
// grab some essential layer data from the map if it hasn't already
// been set
this.maxExtent = this.maxExtent || this.map.maxExtent;
this.projection = this.projection || this.map.projection;
-
+
if (this.projection && typeof this.projection == "string") {
this.projection = new OpenLayers.Projection(this.projection);
}
-
+
// Check the projection to see if we can get units -- if not, refer
// to properties.
this.units = this.projection.getUnits() ||
this.units || this.map.units;
-
+
this.initResolutions();
-
+
if (!this.isBaseLayer) {
this.inRange = this.calculateInRange();
var show = ((this.visibility) && (this.inRange));
this.div.style.display = show ? "" : "none";
}
-
+
// deal with gutters
this.setTileSize();
}
},
-
+
/**
* Method: afterAdd
* Called at the end of the map.addLayer sequence. At this point, the map
@@ -20889,39 +20889,39 @@
*/
afterAdd: function() {
},
-
+
/**
* APIMethod: removeMap
- * Just as setMap() allows each layer the possibility to take a
+ * Just as setMap() allows each layer the possibility to take a
* personalized action on being added to the map, removeMap() allows
- * each layer to take a personalized action on being removed from it.
+ * each layer to take a personalized action on being removed from it.
* For now, this will be mostly unused, except for the EventPane layer,
* which needs this hook so that it can remove the special invisible
- * pane.
- *
+ * pane.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
removeMap: function(map) {
//to be overridden by subclasses
},
-
+
/**
* APIMethod: getImageSize
- *
+ *
* Returns:
- * {<OpenLayers.Size>} The size that the image should be, taking into
+ * {<OpenLayers.Size>} The size that the image should be, taking into
* account gutters.
- */
- getImageSize: function() {
- return (this.imageSize || this.tileSize);
- },
-
+ */
+ getImageSize: function() {
+ return (this.imageSize || this.tileSize);
+ },
+
/**
* APIMethod: setTileSize
* Set the tile size based on the map size. This also sets layer.imageSize
* and layer.imageOffset for use by Tile.Image.
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>}
*/
@@ -20937,16 +20937,16 @@
// this.name + ": layers with " +
// "gutters need non-null tile sizes");
//}
- this.imageOffset = new OpenLayers.Pixel(-this.gutter,
- -this.gutter);
- this.imageSize = new OpenLayers.Size(tileSize.w + (2*this.gutter),
- tileSize.h + (2*this.gutter));
+ this.imageOffset = new OpenLayers.Pixel(-this.gutter,
+ -this.gutter);
+ this.imageSize = new OpenLayers.Size(tileSize.w + (2*this.gutter),
+ tileSize.h + (2*this.gutter));
}
},
/**
* APIMethod: getVisibility
- *
+ *
* Returns:
* {Boolean} The layer should be displayed (if in range).
*/
@@ -20954,18 +20954,18 @@
return this.visibility;
},
- /**
+ /**
* APIMethod: setVisibility
- * Set the visibility flag for the layer and hide/show & redraw
+ * Set the visibility flag for the layer and hide/show & redraw
* accordingly. Fire event unless otherwise specified
- *
+ *
* Note that visibility is no longer simply whether or not the layer's
- * style.display is set to "block". Now we store a 'visibility' state
- * property on the layer class, this allows us to remember whether or
- * not we *desire* for a layer to be visible. In the case where the
- * map's resolution is out of the layer's range, this desire may be
+ * style.display is set to "block". Now we store a 'visibility' state
+ * property on the layer class, this allows us to remember whether or
+ * not we *desire* for a layer to be visible. In the case where the
+ * map's resolution is out of the layer's range, this desire may be
* subverted.
- *
+ *
* Parameters:
* visible - {Boolean} Whether or not to display the layer (if in range)
*/
@@ -20984,10 +20984,10 @@
}
},
- /**
+ /**
* APIMethod: display
* Hide or show the Layer
- *
+ *
* Parameters:
* display - {Boolean}
*/
@@ -21000,10 +21000,10 @@
/**
* APIMethod: calculateInRange
- *
+ *
* Returns:
* {Boolean} The layer is displayable at the current map's current
- * resolution. Note that if 'alwaysInRange' is true for the layer,
+ * resolution. Note that if 'alwaysInRange' is true for the layer,
* this function will always return true.
*/
calculateInRange: function() {
@@ -21021,9 +21021,9 @@
return inRange;
},
- /**
+ /**
* APIMethod: setIsBaseLayer
- *
+ *
* Parameters:
* isBaseLayer - {Boolean}
*/
@@ -21043,73 +21043,73 @@
/* Baselayer Functions */
/* */
/********************************************************/
-
- /**
+
+ /**
* Method: initResolutions
- * This method's responsibility is to set up the 'resolutions' array
+ * This method's responsibility is to set up the 'resolutions' array
* for the layer -- this array is what the layer will use to interface
- * between the zoom levels of the map and the resolution display
+ * between the zoom levels of the map and the resolution display
* of the layer.
- *
+ *
* The user has several options that determine how the array is set up.
- *
- * For a detailed explanation, see the following wiki from the
+ *
+ * For a detailed explanation, see the following wiki from the
* openlayers.org homepage:
* http://trac.openlayers.org/wiki/SettingZoomLevels
*/
initResolutions: function() {
- // These are the relevant options which are used for calculating
+ // These are the relevant options which are used for calculating
// resolutions information.
//
var props = new Array(
'projection', 'units',
'scales', 'resolutions',
- 'maxScale', 'minScale',
- 'maxResolution', 'minResolution',
+ 'maxScale', 'minScale',
+ 'maxResolution', 'minResolution',
'minExtent', 'maxExtent',
'numZoomLevels', 'maxZoomLevel'
);
- //these are the properties which do *not* imply that user wishes
+ //these are the properties which do *not* imply that user wishes
// this layer to be scale-dependant
- var notScaleProps = ['projection', 'units'];
+ var notScaleProps = ['projection', 'units'];
- //should the layer be scale-dependant? default is false -- this will
+ //should the layer be scale-dependant? default is false -- this will
// only be set true if we find that the user has specified a property
// from the 'props' array that is not in 'notScaleProps'
var useInRange = false;
- // First we create a new object where we will store all of the
+ // First we create a new object where we will store all of the
// resolution-related properties that we find in either the layer's
// 'options' array or from the map.
//
- var confProps = {};
+ var confProps = {};
for(var i=0, len=props.length; i<len; i++) {
var property = props[i];
-
- // If the layer had one of these properties set *and* it is
+
+ // If the layer had one of these properties set *and* it is
// a scale property (is not a non-scale property), then we assume
// the user did intend to use scale-dependant display (useInRange).
- if (this.options[property] &&
+ if (this.options[property] &&
OpenLayers.Util.indexOf(notScaleProps, property) == -1) {
useInRange = true;
}
-
+
confProps[property] = this.options[property] || this.map[property];
}
- //only automatically set 'alwaysInRange' if the user hasn't already
+ //only automatically set 'alwaysInRange' if the user hasn't already
// set it (to true or false, since the default is null). If user did
// not intend to use scale-dependant display then we set they layer
- // as alwaysInRange. This means calculateInRange() will always return
+ // as alwaysInRange. This means calculateInRange() will always return
// true and the layer will never be turned off due to scale changes.
//
if (this.alwaysInRange == null) {
this.alwaysInRange = !useInRange;
}
- // Do not use the scales array set at the map level if
+ // Do not use the scales array set at the map level if
// either minScale or maxScale or both are set at the
// layer level
if ((this.options.minScale != null ||
@@ -21118,7 +21118,7 @@
confProps.scales = null;
}
- // Do not use the resolutions array set at the map level if
+ // Do not use the resolutions array set at the map level if
// either minResolution or maxResolution or both are set at the
// layer level
if ((this.options.minResolution != null ||
@@ -21128,14 +21128,14 @@
confProps.resolutions = null;
}
- // If numZoomLevels hasn't been set and the maxZoomLevel *has*,
+ // If numZoomLevels hasn't been set and the maxZoomLevel *has*,
// then use maxZoomLevel to calculate numZoomLevels
//
if ( (!confProps.numZoomLevels) && (confProps.maxZoomLevel) ) {
confProps.numZoomLevels = confProps.maxZoomLevel + 1;
}
- // First off, we take whatever hodge-podge of values we have and
+ // First off, we take whatever hodge-podge of values we have and
// calculate/distill them down into a resolutions[] array
//
if ((confProps.scales != null) || (confProps.resolutions != null)) {
@@ -21144,8 +21144,8 @@
confProps.resolutions = [];
for(var i=0, len=confProps.scales.length; i<len; i++) {
var scale = confProps.scales[i];
- confProps.resolutions[i] =
- OpenLayers.Util.getResolutionFromScale(scale,
+ confProps.resolutions[i] =
+ OpenLayers.Util.getResolutionFromScale(scale,
confProps.units);
}
}
@@ -21156,39 +21156,39 @@
// determine maxResolution
if (confProps.minScale) {
- confProps.maxResolution =
- OpenLayers.Util.getResolutionFromScale(confProps.minScale,
+ confProps.maxResolution =
+ OpenLayers.Util.getResolutionFromScale(confProps.minScale,
confProps.units);
} else if (confProps.maxResolution == "auto") {
var viewSize = this.map.getSize();
var wRes = confProps.maxExtent.getWidth() / viewSize.w;
var hRes = confProps.maxExtent.getHeight()/ viewSize.h;
confProps.maxResolution = Math.max(wRes, hRes);
- }
+ }
// determine minResolution
- if (confProps.maxScale != null) {
- confProps.minResolution =
- OpenLayers.Util.getResolutionFromScale(confProps.maxScale,
+ if (confProps.maxScale != null) {
+ confProps.minResolution =
+ OpenLayers.Util.getResolutionFromScale(confProps.maxScale,
confProps.units);
- } else if ( (confProps.minResolution == "auto") &&
+ } else if ( (confProps.minResolution == "auto") &&
(confProps.minExtent != null) ) {
var viewSize = this.map.getSize();
var wRes = confProps.minExtent.getWidth() / viewSize.w;
var hRes = confProps.minExtent.getHeight()/ viewSize.h;
confProps.minResolution = Math.max(wRes, hRes);
- }
+ }
// determine numZoomLevels if not already set on the layer
// this gives numZoomLevels assuming approximately base 2 scaling
if (confProps.minResolution != null &&
this.options.numZoomLevels == undefined) {
var ratio = confProps.maxResolution / confProps.minResolution;
- confProps.numZoomLevels =
+ confProps.numZoomLevels =
Math.floor(Math.log(ratio) / Math.log(2)) + 1;
}
-
- // now we have numZoomLevels and maxResolution,
+
+ // now we have numZoomLevels and maxResolution,
// we can populate the resolutions array
confProps.resolutions = new Array(confProps.numZoomLevels);
var base = 2;
@@ -21210,15 +21210,15 @@
confProps.resolutions[i] = res;
}
}
-
+
//sort resolutions array ascendingly
//
confProps.resolutions.sort( function(a, b) { return(b-a); } );
- // now set our newly calculated values back to the layer
- // Note: We specifically do *not* set them to layer.options, which we
- // will preserve as it was when we added this layer to the map.
- // this way cloned layers reset themselves to new map div
+ // now set our newly calculated values back to the layer
+ // Note: We specifically do *not* set them to layer.options, which we
+ // will preserve as it was when we added this layer to the map.
+ // this way cloned layers reset themselves to new map div
// dimensions)
//
@@ -21226,22 +21226,22 @@
this.maxResolution = confProps.resolutions[0];
var lastIndex = confProps.resolutions.length - 1;
this.minResolution = confProps.resolutions[lastIndex];
-
+
this.scales = [];
for(var i=0, len=confProps.resolutions.length; i<len; i++) {
- this.scales[i] =
- OpenLayers.Util.getScaleFromResolution(confProps.resolutions[i],
+ this.scales[i] =
+ OpenLayers.Util.getScaleFromResolution(confProps.resolutions[i],
confProps.units);
}
this.minScale = this.scales[0];
this.maxScale = this.scales[this.scales.length - 1];
-
+
this.numZoomLevels = confProps.numZoomLevels;
},
/**
* APIMethod: getResolution
- *
+ *
* Returns:
* {Float} The currently selected resolution of the map, taken from the
* resolutions array, indexed by current zoom level.
@@ -21251,11 +21251,11 @@
return this.getResolutionForZoom(zoom);
},
- /**
+ /**
* APIMethod: getExtent
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
+ * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
* bounds of the current viewPort.
*/
getExtent: function() {
@@ -21267,18 +21267,18 @@
/**
* APIMethod: getZoomForExtent
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified bounds. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified bounds. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
*
* Returns:
- * {Integer} The index of the zoomLevel (entry in the resolutions array)
- * for the passed-in extent. We do this by calculating the ideal
- * resolution for the given extent (based on the map size) and then
+ * {Integer} The index of the zoomLevel (entry in the resolutions array)
+ * for the passed-in extent. We do this by calculating the ideal
+ * resolution for the given extent (based on the map size) and then
* calling getZoomForResolution(), passing along the 'closest'
* parameter.
*/
@@ -21289,12 +21289,12 @@
return this.getZoomForResolution(idealResolution, closest);
},
-
- /**
+
+ /**
* Method: getDataExtent
* Calculates the max extent which includes all of the data for the layer.
* This function is to be implemented by subclasses.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
@@ -21304,10 +21304,10 @@
/**
* APIMethod: getResolutionForZoom
- *
+ *
* Parameter:
* zoom - {Float}
- *
+ *
* Returns:
* {Float} A suitable resolution for the specified zoom.
*/
@@ -21327,20 +21327,20 @@
/**
* APIMethod: getZoomForResolution
- *
+ *
* Parameters:
* resolution - {Float}
- * closest - {Boolean} Find the zoom level that corresponds to the absolute
+ * closest - {Boolean} Find the zoom level that corresponds to the absolute
* closest resolution, which may result in a zoom whose corresponding
* resolution is actually smaller than we would have desired (if this
* is being called from a getZoomForExtent() call, then this means that
- * the returned zoom index might not actually contain the entire
+ * the returned zoom index might not actually contain the entire
* extent specified... but it'll be close).
* Default is false.
- *
+ *
* Returns:
- * {Integer} The index of the zoomLevel (entry in the resolutions array)
- * that corresponds to the best fit resolution given the passed in
+ * {Integer} The index of the zoomLevel (entry in the resolutions array)
+ * that corresponds to the best fit resolution given the passed in
* value and the 'closest' specification.
*/
getZoomForResolution: function(resolution, closest) {
@@ -21372,7 +21372,7 @@
} else {
var diff;
var minDiff = Number.POSITIVE_INFINITY;
- for(var i=0, len=this.resolutions.length; i<len; i++) {
+ for(var i=0, len=this.resolutions.length; i<len; i++) {
if (closest) {
diff = Math.abs(this.resolutions[i] - resolution);
if (diff > minDiff) {
@@ -21389,15 +21389,15 @@
}
return zoom;
},
-
+
/**
* APIMethod: getLonLatFromViewPortPx
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
*
* Returns:
- * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in
+ * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in
* view port <OpenLayers.Pixel>, translated into lon/lat by the layer.
*/
getLonLatFromViewPortPx: function (viewPortPx) {
@@ -21407,12 +21407,12 @@
var center = this.map.getCenter();
if (center) {
var res = this.map.getResolution();
-
+
var delta_x = viewPortPx.x - (size.w / 2);
var delta_y = viewPortPx.y - (size.h / 2);
-
+
lonlat = new OpenLayers.LonLat(center.lon + delta_x * res ,
- center.lat - delta_y * res);
+ center.lat - delta_y * res);
if (this.wrapDateLine) {
lonlat = lonlat.wrapDateLine(this.maxExtent);
@@ -21426,31 +21426,31 @@
* APIMethod: getViewPortPxFromLonLat
* Returns a pixel location given a map location. This method will return
* fractional pixel values.
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
*
- * Returns:
- * {<OpenLayers.Pixel>} An <OpenLayers.Pixel> which is the passed-in
+ * Returns:
+ * {<OpenLayers.Pixel>} An <OpenLayers.Pixel> which is the passed-in
* <OpenLayers.LonLat>,translated into view port pixels.
*/
getViewPortPxFromLonLat: function (lonlat) {
- var px = null;
+ var px = null;
if (lonlat != null) {
var resolution = this.map.getResolution();
var extent = this.map.getExtent();
px = new OpenLayers.Pixel(
(1/resolution * (lonlat.lon - extent.left)),
(1/resolution * (extent.top - lonlat.lat))
- );
+ );
}
return px;
},
-
+
/**
* APIMethod: setOpacity
* Sets the opacity for the entire layer (all images)
- *
+ *
* Parameter:
* opacity - {Float}
*/
@@ -21459,7 +21459,7 @@
this.opacity = opacity;
for(var i=0, len=this.div.childNodes.length; i<len; ++i) {
var element = this.div.childNodes[i].firstChild;
- OpenLayers.Util.modifyDOMElement(element, null, null, null,
+ OpenLayers.Util.modifyDOMElement(element, null, null, null,
null, null, null, opacity);
}
}
@@ -21467,20 +21467,20 @@
/**
* Method: getZIndex
- *
- * Returns:
+ *
+ * Returns:
* {Integer} the z-index of this layer
- */
+ */
getZIndex: function () {
return this.div.style.zIndex;
},
/**
* Method: setZIndex
- *
- * Parameters:
+ *
+ * Parameters:
* zIndex - {Integer}
- */
+ */
setZIndex: function (zIndex) {
this.div.style.zIndex = zIndex;
},
@@ -21488,18 +21488,18 @@
/**
* Method: adjustBounds
* This function will take a bounds, and if wrapDateLine option is set
- * on the layer, it will return a bounds which is wrapped around the
- * world. We do not wrap for bounds which *cross* the
- * maxExtent.left/right, only bounds which are entirely to the left
+ * on the layer, it will return a bounds which is wrapped around the
+ * world. We do not wrap for bounds which *cross* the
+ * maxExtent.left/right, only bounds which are entirely to the left
* or entirely to the right.
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
adjustBounds: function (bounds) {
if (this.gutter) {
- // Adjust the extent of a bounds in map units by the
+ // Adjust the extent of a bounds in map units by the
// layer's gutter in pixels.
var mapGutter = this.gutter * this.map.getResolution();
bounds = new OpenLayers.Bounds(bounds.left - mapGutter,
@@ -21510,11 +21510,11 @@
if (this.wrapDateLine) {
// wrap around the date line, within the limits of rounding error
- var wrappingOptions = {
+ var wrappingOptions = {
'rightTolerance':this.getResolution()
- };
+ };
bounds = bounds.wrapDateLine(this.maxExtent, wrappingOptions);
-
+
}
return bounds;
},
@@ -21538,29 +21538,29 @@
* Class: OpenLayers.Marker.Box
*
* Inherits from:
- * - <OpenLayers.Marker>
+ * - <OpenLayers.Marker>
*/
OpenLayers.Marker.Box = OpenLayers.Class(OpenLayers.Marker, {
- /**
- * Property: bounds
- * {<OpenLayers.Bounds>}
+ /**
+ * Property: bounds
+ * {<OpenLayers.Bounds>}
*/
bounds: null,
- /**
- * Property: div
- * {DOMElement}
+ /**
+ * Property: div
+ * {DOMElement}
*/
div: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Marker.Box
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>}
- * borderColor - {String}
- * borderWidth - {int}
+ * bounds - {<OpenLayers.Bounds>}
+ * borderColor - {String}
+ * borderWidth - {int}
*/
initialize: function(bounds, borderColor, borderWidth) {
this.bounds = bounds;
@@ -21571,8 +21571,8 @@
},
/**
- * Method: destroy
- */
+ * Method: destroy
+ */
destroy: function() {
this.bounds = null;
@@ -21581,10 +21581,10 @@
OpenLayers.Marker.prototype.destroy.apply(this, arguments);
},
- /**
+ /**
* Method: setBorder
* Allow the user to change the box's color and border width
- *
+ *
* Parameters:
* color - {String} Default is "red"
* width - {int} Default is 2
@@ -21598,26 +21598,26 @@
}
this.div.style.border = width + "px solid " + color;
},
-
- /**
+
+ /**
* Method: draw
- *
+ *
* Parameters:
- * px - {<OpenLayers.Pixel>}
- * sz - {<OpenLayers.Size>}
- *
- * Returns:
- * {DOMElement} A new DOM Image with this marker´s icon set at the
+ * px - {<OpenLayers.Pixel>}
+ * sz - {<OpenLayers.Size>}
+ *
+ * Returns:
+ * {DOMElement} A new DOM Image with this marker´s icon set at the
* location passed-in
*/
draw: function(px, sz) {
OpenLayers.Util.modifyDOMElement(this.div, null, px, sz);
return this.div;
- },
+ },
/**
* Method: onScreen
- *
+ *
* Rreturn:
* {Boolean} Whether or not the marker is currently visible on screen.
*/
@@ -21626,16 +21626,16 @@
if (this.map) {
var screenBounds = this.map.getExtent();
onScreen = screenBounds.containsBounds(this.bounds, true, true);
- }
+ }
return onScreen;
},
-
+
/**
* Method: display
* Hide or show the icon
- *
+ *
* Parameters:
- * display - {Boolean}
+ * display - {Boolean}
*/
display: function(display) {
this.div.style.display = (display) ? "" : "none";
@@ -21983,19 +21983,19 @@
* @uri url to do remote XML http get
* @param {String} 'get' format params (x=y&a=b...)
* @who object to handle callbacks for this request
- * @complete the function to be called on success
+ * @complete the function to be called on success
* @failure the function to be called on failure
- *
+ *
* example usage from a caller:
- *
+ *
* caps: function(request) {
- * -blah-
+ * -blah-
* },
- *
+ *
* OpenLayers.loadURL(url,params,this,caps);
*
* Notice the above example does not provide an error handler; a default empty
- * handler is provided which merely logs the error if a failure handler is not
+ * handler is provided which merely logs the error if a failure handler is not
* supplied
*
*/
@@ -22009,7 +22009,7 @@
OpenLayers.Console.userError(OpenLayers.i18n("unhandledRequest", {'statusText':request.statusText}));
};
-/**
+/**
* APIFunction: loadURL
* Background load a document. For more flexibility in using XMLHttpRequest,
* see the <OpenLayers.Request> methods.
@@ -22023,7 +22023,7 @@
* onComplete - {Function} Optional callback for success. The callback
* will be called with this set to caller and will receive the request
* object as an argument. Note that if you do not specify an onComplete
- * function, <OpenLayers.nullHandler> will be called (which pops up a
+ * function, <OpenLayers.nullHandler> will be called (which pops up a
* user friendly error message dialog).
* onFailure - {Function} Optional callback for failure. In the event of
* a failure, the callback will be called with this set to caller and will
@@ -22037,26 +22037,26 @@
*/
OpenLayers.loadURL = function(uri, params, caller,
onComplete, onFailure) {
-
+
if(typeof params == 'string') {
params = OpenLayers.Util.getParameters(params);
}
var success = (onComplete) ? onComplete : OpenLayers.nullHandler;
var failure = (onFailure) ? onFailure : OpenLayers.nullHandler;
-
+
return OpenLayers.Request.GET({
url: uri, params: params,
success: success, failure: failure, scope: caller
});
};
-/**
+/**
* Function: parseXMLString
* Parse XML into a doc structure
- *
+ *
* Parameters:
- * text - {String}
- *
+ * text - {String}
+ *
* Returns:
* {?} Parsed AJAX Responsev
*/
@@ -22105,8 +22105,8 @@
/**
* Method: getTransport
- *
- * Returns:
+ *
+ * Returns:
* {Object} Transport mechanism for whichever browser we're in, or false if
* none available.
*/
@@ -22130,7 +22130,7 @@
* {Object}
*/
OpenLayers.Ajax.Responders = {
-
+
/**
* Property: responders
* {Array}
@@ -22139,7 +22139,7 @@
/**
* Method: register
- *
+ *
* Parameters:
* responderToAdd - {?}
*/
@@ -22154,7 +22154,7 @@
/**
* Method: unregister
- *
+ *
* Parameters:
* responderToRemove - {?}
*/
@@ -22164,7 +22164,7 @@
/**
* Method: dispatch
- *
+ *
* Parameters:
* callback - {?}
* request - {?}
@@ -22174,11 +22174,11 @@
var responder;
for (var i = 0; i < this.responders.length; i++) {
responder = this.responders[i];
-
- if (responder[callback] &&
+
+ if (responder[callback] &&
typeof responder[callback] == 'function') {
try {
- responder[callback].apply(responder,
+ responder[callback].apply(responder,
[request, transport]);
} catch (e) {}
}
@@ -22187,7 +22187,7 @@
};
OpenLayers.Ajax.Responders.register({
- /**
+ /**
* Function: onCreate
*/
onCreate: function() {
@@ -22206,11 +22206,11 @@
* Class: OpenLayers.Ajax.Base
*/
OpenLayers.Ajax.Base = OpenLayers.Class({
-
+
/**
* Constructor: OpenLayers.Ajax.Base
- *
- * Parameters:
+ *
+ * Parameters:
* options - {Object}
*/
initialize: function(options) {
@@ -22221,11 +22221,11 @@
parameters: ''
};
OpenLayers.Util.extend(this.options, options || {});
-
+
this.options.method = this.options.method.toLowerCase();
-
+
if (typeof this.options.parameters == 'string') {
- this.options.parameters =
+ this.options.parameters =
OpenLayers.Util.getParameters(this.options.parameters);
}
}
@@ -22246,28 +22246,28 @@
* {Boolean}
*/
_complete: false,
-
+
/**
* Constructor: OpenLayers.Ajax.Request
- *
- * Parameters:
+ *
+ * Parameters:
* url - {String}
* options - {Object}
*/
initialize: function(url, options) {
OpenLayers.Ajax.Base.prototype.initialize.apply(this, [options]);
-
+
if (OpenLayers.ProxyHost && OpenLayers.String.startsWith(url, "http")) {
url = OpenLayers.ProxyHost + encodeURIComponent(url);
}
-
+
this.transport = OpenLayers.Ajax.getTransport();
this.request(url);
},
/**
* Method: request
- *
+ *
* Parameters:
* url - {String}
*/
@@ -22275,15 +22275,15 @@
this.url = url;
this.method = this.options.method;
var params = OpenLayers.Util.extend({}, this.options.parameters);
-
+
if (this.method != 'get' && this.method != 'post') {
// simulate other verbs over post
params['_method'] = this.method;
this.method = 'post';
}
- this.parameters = params;
-
+ this.parameters = params;
+
if (params = OpenLayers.Util.getParameterString(params)) {
// when GET, append parameters to URL
if (this.method == 'get') {
@@ -22297,31 +22297,31 @@
if (this.options.onCreate) {
this.options.onCreate(response);
}
-
- OpenLayers.Ajax.Responders.dispatch('onCreate',
- this,
+
+ OpenLayers.Ajax.Responders.dispatch('onCreate',
+ this,
response);
-
- this.transport.open(this.method.toUpperCase(),
+
+ this.transport.open(this.method.toUpperCase(),
this.url,
this.options.asynchronous);
-
+
if (this.options.asynchronous) {
window.setTimeout(
OpenLayers.Function.bind(this.respondToReadyState, this, 1),
10);
}
-
- this.transport.onreadystatechange =
- OpenLayers.Function.bind(this.onStateChange, this);
+
+ this.transport.onreadystatechange =
+ OpenLayers.Function.bind(this.onStateChange, this);
this.setRequestHeaders();
-
+
this.body = this.method == 'post' ?
(this.options.postBody || params) : null;
this.transport.send(this.body);
-
+
// Force Firefox to handle ready state 4 for synchronous requests
- if (!this.options.asynchronous &&
+ if (!this.options.asynchronous &&
this.transport.overrideMimeType) {
this.onStateChange();
}
@@ -22339,7 +22339,7 @@
this.respondToReadyState(this.transport.readyState);
}
},
-
+
/**
* Method: setRequestHeaders
*/
@@ -22353,7 +22353,7 @@
if (this.method == 'post') {
headers['Content-type'] = this.options.contentType +
(this.options.encoding ? '; charset=' + this.options.encoding : '');
-
+
/* Force "Connection: close" for older Mozilla browsers to work
* around a bug where XMLHttpRequest sends an incorrect
* Content-length header. See Mozilla Bugzilla #246651.
@@ -22364,9 +22364,9 @@
}
}
// user-defined headers
- if (typeof this.options.requestHeaders == 'object') {
+ if (typeof this.options.requestHeaders == 'object') {
var extras = this.options.requestHeaders;
-
+
if (typeof extras.push == 'function') {
for (var i = 0, length = extras.length; i < length; i += 2) {
headers[extras[i]] = extras[i+1];
@@ -22377,23 +22377,23 @@
}
}
}
-
+
for (var name in headers) {
this.transport.setRequestHeader(name, headers[name]);
}
},
-
+
/**
* Method: success
*
* Returns:
- * {Boolean} -
+ * {Boolean} -
*/
success: function() {
var status = this.getStatus();
return !status || (status >=200 && status < 300);
},
-
+
/**
* Method: getStatus
*
@@ -22417,7 +22417,7 @@
respondToReadyState: function(readyState) {
var state = OpenLayers.Ajax.Request.Events[readyState];
var response = new OpenLayers.Ajax.Response(this);
-
+
if (state == 'Complete') {
try {
this._complete = true;
@@ -22427,29 +22427,29 @@
} catch (e) {
this.dispatchException(e);
}
-
+
var contentType = response.getHeader('Content-type');
}
-
+
try {
- (this.options['on' + state] ||
+ (this.options['on' + state] ||
OpenLayers.Ajax.emptyFunction)(response);
- OpenLayers.Ajax.Responders.dispatch('on' + state,
- this,
+ OpenLayers.Ajax.Responders.dispatch('on' + state,
+ this,
response);
} catch (e) {
this.dispatchException(e);
}
-
+
if (state == 'Complete') {
// avoid memory leak in MSIE: clean up
this.transport.onreadystatechange = OpenLayers.Ajax.emptyFunction;
}
},
-
+
/**
* Method: getHeader
- *
+ *
* Parameters:
* name - {String} Header name
*
@@ -22469,7 +22469,7 @@
* If the optional onException function is set, execute it
* and then dispatch the call to any other listener registered
* for onException.
- *
+ *
* If no optional onException function is set, we suspect that
* the user may have also not used
* OpenLayers.Ajax.Responders.register to register a listener
@@ -22481,7 +22481,7 @@
* request.options.onException to an empty function (function(){})
* or register an empty function with <OpenLayers.Ajax.Responders>
* for onException.
- *
+ *
* Parameters:
* exception - {?}
*/
@@ -22512,7 +22512,7 @@
}
});
-/**
+/**
* Property: Events
* {Array(String)}
*/
@@ -22530,26 +22530,26 @@
* {Integer}
*/
status: 0,
-
+
/**
* Property: statusText
*
* {String}
*/
statusText: '',
-
+
/**
* Constructor: OpenLayers.Ajax.Response
- *
- * Parameters:
+ *
+ * Parameters:
* request - {Object}
*/
initialize: function(request) {
this.request = request;
var transport = this.transport = request.transport,
readyState = this.readyState = transport.readyState;
-
+
if ((readyState > 2 &&
!(!!(window.attachEvent && !window.opera))) ||
readyState == 4) {
@@ -22558,18 +22558,18 @@
this.responseText = transport.responseText == null ?
'' : String(transport.responseText);
}
-
+
if(readyState == 4) {
var xml = transport.responseXML;
this.responseXML = xml === undefined ? null : xml;
}
},
-
+
/**
* Method: getStatus
*/
getStatus: OpenLayers.Ajax.Request.prototype.getStatus,
-
+
/**
* Method: getStatustext
*
@@ -22583,13 +22583,13 @@
return '';
}
},
-
+
/**
* Method: getHeader
*/
getHeader: OpenLayers.Ajax.Request.prototype.getHeader,
-
- /**
+
+ /**
* Method: getResponseHeader
*
* Returns:
@@ -22603,17 +22603,17 @@
/**
* Function: getElementsByTagNameNS
- *
+ *
* Parameters:
* parentnode - {?}
* nsuri - {?}
* nsprefix - {?}
* tagname - {?}
- *
+ *
* Returns:
* {?}
*/
-OpenLayers.Ajax.getElementsByTagNameNS = function(parentnode, nsuri,
+OpenLayers.Ajax.getElementsByTagNameNS = function(parentnode, nsuri,
nsprefix, tagname) {
var elem = null;
if (parentnode.getElementsByTagNameNS) {
@@ -22631,9 +22631,9 @@
* IE/Safari. We need to come up with a way to serialize in those browser:
* for now, these browsers will just fail. #535, #536
*
- * Parameters:
+ * Parameters:
* xmldom {XMLNode} xml dom to serialize
- *
+ *
* Returns:
* {?}
*/
@@ -22664,31 +22664,31 @@
*/
OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
- /**
+ /**
* Property: type
* {OpenLayers.Control.TYPES}
*/
type: OpenLayers.Control.TYPE_TOOL,
-
+
/**
* Property: panned
* {Boolean} The map moved.
*/
panned: false,
-
+
/**
* Property: interval
* {Integer} The number of milliseconds that should ellapse before
* panning the map again. Set this to increase dragging performance.
* Defaults to 25 milliseconds.
*/
- interval: 25,
-
+ interval: 25,
+
/**
* Method: draw
* Creates a Drag handler, using <panMap> and
* <panMapDone> as callbacks.
- */
+ */
draw: function() {
this.handler = new OpenLayers.Handler.Drag(this, {
"move": this.panMap,
@@ -22713,7 +22713,7 @@
{dragging: this.handler.dragging, animate: false}
);
},
-
+
/**
* Method: panMapDone
* Finish the panning operation. Only call setCenter (through <panMap>)
@@ -22757,28 +22757,28 @@
* Class: OpenLayers.Feature.Vector
* Vector features use the OpenLayers.Geometry classes as geometry description.
* They have an 'attributes' property, which is the data object, and a 'style'
- * property, the default values of which are defined in the
+ * property, the default values of which are defined in the
* <OpenLayers.Feature.Vector.style> objects.
- *
+ *
* Inherits from:
* - <OpenLayers.Feature>
*/
OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
- /**
- * Property: fid
- * {String}
+ /**
+ * Property: fid
+ * {String}
*/
fid: null,
-
- /**
- * APIProperty: geometry
- * {<OpenLayers.Geometry>}
+
+ /**
+ * APIProperty: geometry
+ * {<OpenLayers.Geometry>}
*/
geometry: null,
- /**
- * APIProperty: attributes
+ /**
+ * APIProperty: attributes
* {Object} This object holds arbitrary properties that describe the
* feature.
*/
@@ -22789,37 +22789,37 @@
* {<OpenLayers.Bounds>} The box bounding that feature's geometry, that
* property can be set by an <OpenLayers.Format> object when
* deserializing the feature, so in most cases it represents an
- * information set by the server.
+ * information set by the server.
*/
bounds: null,
- /**
- * Property: state
- * {String}
+ /**
+ * Property: state
+ * {String}
*/
state: null,
-
- /**
- * APIProperty: style
- * {Object}
+
+ /**
+ * APIProperty: style
+ * {Object}
*/
style: null,
-
+
/**
* Property: renderIntent
* {String} rendering intent currently being used
*/
renderIntent: "default",
- /**
+ /**
* Constructor: OpenLayers.Feature.Vector
- * Create a vector feature.
- *
+ * Create a vector feature.
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>} The geometry that this feature
* represents.
* attributes - {Object} An optional object that will be mapped to the
- * <attributes> property.
+ * <attributes> property.
* style - {Object} An optional style object.
*/
initialize: function(geometry, attributes, style) {
@@ -22833,10 +22833,10 @@
this.attributes = OpenLayers.Util.extend(this.attributes,
attributes);
}
- this.style = style ? style : null;
+ this.style = style ? style : null;
},
-
- /**
+
+ /**
* Method: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -22845,11 +22845,11 @@
this.layer.removeFeatures(this);
this.layer = null;
}
-
+
this.geometry = null;
OpenLayers.Feature.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: clone
* Create a clone of this vector feature. Does not set any non-standard
@@ -22877,7 +22877,7 @@
* boundsOnly - {Boolean} Only test whether a feature's bounds intersects
* the viewport bounds. Default is false. If false, the feature's
* geometry must intersect the viewport for onScreen to return true.
- *
+ *
* Returns:
* {Boolean} The feature is currently visible on screen (optionally
* based on its bounds if boundsOnly is true).
@@ -22893,15 +22893,15 @@
var screenPoly = screenBounds.toGeometry();
onScreen = screenPoly.intersects(this.geometry);
}
- }
+ }
return onScreen;
},
-
+
/**
* Method: createMarker
* HACK - we need to decide if all vector features should be able to
* create markers
- *
+ *
* Returns:
* {<OpenLayers.Marker>} For now just returns null
*/
@@ -22913,7 +22913,7 @@
* Method: destroyMarker
* HACK - we need to decide if all vector features should be able to
* delete markers
- *
+ *
* If user overrides the createMarker() function, s/he should be able
* to also specify an alternative function for destroying it
*/
@@ -22925,7 +22925,7 @@
* Method: createPopup
* HACK - we need to decide if all vector features should be able to
* create popups
- *
+ *
* Returns:
* {<OpenLayers.Popup>} For now just returns null
*/
@@ -22936,19 +22936,19 @@
/**
* Method: atPoint
* Determins whether the feature intersects with the specified location.
- *
- * Parameters:
- * lonlat - {<OpenLayers.LonLat>}
+ *
+ * Parameters:
+ * lonlat - {<OpenLayers.LonLat>}
* toleranceLon - {float} Optional tolerance in Geometric Coords
* toleranceLat - {float} Optional tolerance in Geographic Coords
- *
+ *
* Returns:
* {Boolean} Whether or not the feature is at the specified location
*/
atPoint: function(lonlat, toleranceLon, toleranceLat) {
var atPoint = false;
if(this.geometry) {
- atPoint = this.geometry.atPoint(lonlat, toleranceLon,
+ atPoint = this.geometry.atPoint(lonlat, toleranceLon,
toleranceLat);
}
return atPoint;
@@ -22984,7 +22984,7 @@
} else {
pixel = location;
}
-
+
var lastPixel = this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());
var res = this.layer.map.getResolution();
this.geometry.move(res * (pixel.x - lastPixel.x),
@@ -22992,13 +22992,13 @@
this.layer.drawFeature(this);
return lastPixel;
},
-
+
/**
* Method: toState
* Sets the new state
*
* Parameters:
- * state - {String}
+ * state - {String}
*/
toState: function(state) {
if (state == OpenLayers.State.UPDATE) {
@@ -23035,24 +23035,24 @@
this.state = state;
}
},
-
+
CLASS_NAME: "OpenLayers.Feature.Vector"
});
/**
* Constant: OpenLayers.Feature.Vector.style
- * OpenLayers features can have a number of style attributes. The 'default'
+ * OpenLayers features can have a number of style attributes. The 'default'
* style will typically be used if no other style is specified. These
* styles correspond for the most part, to the styling properties defined
- * by the SVG standard.
+ * by the SVG standard.
* Information on fill properties: http://www.w3.org/TR/SVG/painting.html#FillProperties
* Information on stroke properties: http://www.w3.org/TR/SVG/painting.html#StrokeProperties
*
* Symbolizer properties:
* fill - {Boolean} Set to false if no fill is desired.
* fillColor - {String} Hex fill color. Default is "#ee9900".
- * fillOpacity - {Number} Fill opacity (0-1). Default is 0.4
+ * fillOpacity - {Number} Fill opacity (0-1). Default is 0.4
* stroke - {Boolean} Set to false if no stroke is desired.
* strokeColor - {String} Hex stroke color. Default is "#ee9900".
* strokeOpacity - {Number} Stroke opacity (0-1). Default is 1.
@@ -23091,11 +23091,11 @@
* fontSize - {String} The font size for the label, to be provided like in CSS.
* fontWeight - {String} The font weight for the label, to be provided like in CSS.
* display - {String} Symbolizers will have no effect if display is set to "none". All other values have no effect.
- */
+ */
OpenLayers.Feature.Vector.style = {
'default': {
fillColor: "#ee9900",
- fillOpacity: 0.4,
+ fillOpacity: 0.4,
hoverFillColor: "white",
hoverFillOpacity: 0.8,
strokeColor: "#ee9900",
@@ -23114,7 +23114,7 @@
},
'select': {
fillColor: "blue",
- fillOpacity: 0.4,
+ fillOpacity: 0.4,
hoverFillColor: "white",
hoverFillOpacity: 0.8,
strokeColor: "blue",
@@ -23133,7 +23133,7 @@
},
'temporary': {
fillColor: "#66cccc",
- fillOpacity: 0.2,
+ fillOpacity: 0.2,
hoverFillColor: "white",
hoverFillOpacity: 0.8,
strokeColor: "#66cccc",
@@ -23153,7 +23153,7 @@
'delete': {
display: "none"
}
-};
+};
/* ======================================================================
OpenLayers/Handler/Box.js
====================================================================== */
@@ -23169,17 +23169,17 @@
/**
* Class: OpenLayers.Handler.Box
- * Handler for dragging a rectangle across the map. Box is displayed
+ * Handler for dragging a rectangle across the map. Box is displayed
* on mouse down, moves on mouse move, and is finished on mouse up.
*
* Inherits from:
- * - <OpenLayers.Handler>
+ * - <OpenLayers.Handler>
*/
OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
- /**
- * Property: dragHandler
- * {<OpenLayers.Handler.Drag>}
+ /**
+ * Property: dragHandler
+ * {<OpenLayers.Handler.Drag>}
*/
dragHandler: null,
@@ -23189,7 +23189,7 @@
* olHandlerBoxZoomBox
*/
boxDivClassName: 'olHandlerBoxZoomBox',
-
+
/**
* Property: boxCharacteristics
* {Object} Caches some box characteristics from css. This is used
@@ -23201,18 +23201,18 @@
* Constructor: OpenLayers.Handler.Box
*
* Parameters:
- * control - {<OpenLayers.Control>}
+ * control - {<OpenLayers.Control>}
* callbacks - {Object} An object containing a single function to be
* called when the drag operation is finished.
* The callback should expect to recieve a single
* argument, the point geometry.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
var callbacks = {
- "down": this.startBox,
- "move": this.moveBox,
+ "down": this.startBox,
+ "move": this.moveBox,
"out": this.removeBox,
"up": this.endBox
};
@@ -23234,12 +23234,12 @@
* Method: startBox
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
startBox: function (xy) {
this.zoomBox = OpenLayers.Util.createDiv('zoomBox',
this.dragHandler.start);
- this.zoomBox.className = this.boxDivClassName;
+ this.zoomBox.className = this.boxDivClassName;
this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1;
this.map.viewPortDiv.appendChild(this.zoomBox);
@@ -23281,8 +23281,8 @@
*/
endBox: function(end) {
var result;
- if (Math.abs(this.dragHandler.start.x - end.x) > 5 ||
- Math.abs(this.dragHandler.start.y - end.y) > 5) {
+ if (Math.abs(this.dragHandler.start.x - end.x) > 5 ||
+ Math.abs(this.dragHandler.start.y - end.y) > 5) {
var start = this.dragHandler.start;
var top = Math.min(start.y, end.y);
var bottom = Math.max(start.y, end.y);
@@ -23291,7 +23291,7 @@
result = new OpenLayers.Bounds(left, bottom, right, top);
} else {
result = this.dragHandler.start.clone(); // i.e. OL.Pixel
- }
+ }
this.removeBox();
this.callback("done", [result]);
@@ -23334,11 +23334,11 @@
return false;
}
},
-
+
/**
* Method: getCharacteristics
* Determines offset and box model for a box.
- *
+ *
* Returns:
* {Object} a hash with the following properties:
* - xOffset - Corner offset in x-direction
@@ -23386,12 +23386,12 @@
* down, moves or is modified on mouse move, and is finished on mouse up.
* The handler triggers callbacks for 'done' and 'cancel'. Create a new
* instance with the <OpenLayers.Handler.RegularPolygon> constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.RegularPolygon = OpenLayers.Class(OpenLayers.Handler.Drag, {
-
+
/**
* APIProperty: sides
* {Integer} Number of sides for the regular polygon. Needs to be greater
@@ -23408,15 +23408,15 @@
* default.
*/
radius: null,
-
+
/**
* APIProperty: snapAngle
* {Float} If set to a non-zero value, the handler will snap the polygon
* rotation to multiples of the snapAngle. Value is an angle measured
- * in degrees counterclockwise from the positive x-axis.
+ * in degrees counterclockwise from the positive x-axis.
*/
snapAngle: null,
-
+
/**
* APIProperty: snapToggle
* {String} If set, snapToggle is checked on mouse events and will set
@@ -23427,7 +23427,7 @@
* non-zero value.
*/
snapToggle: 'shiftKey',
-
+
/**
* APIProperty: persist
* {Boolean} Leave the feature rendered until clear is called. Default
@@ -23509,18 +23509,18 @@
[control, callbacks, options]);
this.options = (options) ? options : new Object();
},
-
+
/**
* APIMethod: setOptions
- *
+ *
* Parameters:
- * newOptions - {Object}
+ * newOptions - {Object}
*/
setOptions: function (newOptions) {
OpenLayers.Util.extend(this.options, newOptions);
OpenLayers.Util.extend(this, newOptions);
},
-
+
/**
* APIMethod: activate
* Turn on the handler.
@@ -23578,7 +23578,7 @@
}
return deactivated;
},
-
+
/**
* Method: down
* Start drawing a new feature
@@ -23605,7 +23605,7 @@
this.layer.addFeatures([this.feature], {silent: true});
this.layer.drawFeature(this.feature, this.style);
},
-
+
/**
* Method: move
* Respond to drag move events
@@ -23685,7 +23685,7 @@
this.origin, this.radius, this.sides, this.snapAngle
);
},
-
+
/**
* Method: modifyGeometry
* Modify the polygon geometry in place.
@@ -23706,7 +23706,7 @@
point.clearBounds();
}
},
-
+
/**
* Method: calculateAngle
* Calculate the angle based on settings.
@@ -23755,7 +23755,7 @@
this.layer.renderer.clear();
this.layer.destroyFeatures();
},
-
+
/**
* Method: callback
* Trigger the control's named callback with the given arguments
@@ -23799,21 +23799,21 @@
* Class: OpenLayers.Layer.EventPane
* Base class for 3rd party layers. Create a new event pane layer with the
* <OpenLayers.Layer.EventPane> constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Layer>
*/
OpenLayers.Layer.EventPane = OpenLayers.Class(OpenLayers.Layer, {
-
+
/**
* APIProperty: smoothDragPan
* {Boolean} smoothDragPan determines whether non-public/internal API
- * methods are used for better performance while dragging EventPane
- * layers. When not in sphericalMercator mode, the smoother dragging
- * doesn't actually move north/south directly with the number of
- * pixels moved, resulting in a slight offset when you drag your mouse
- * north south with this option on. If this visual disparity bothers
- * you, you should turn this option off, or use spherical mercator.
+ * methods are used for better performance while dragging EventPane
+ * layers. When not in sphericalMercator mode, the smoother dragging
+ * doesn't actually move north/south directly with the number of
+ * pixels moved, resulting in a slight offset when you drag your mouse
+ * north south with this option on. If this visual disparity bothers
+ * you, you should turn this option off, or use spherical mercator.
* Default is on.
*/
smoothDragPan: true,
@@ -23821,13 +23821,13 @@
/**
* Property: isBaseLayer
* {Boolean} EventPaned layers are always base layers, by necessity.
- */
+ */
isBaseLayer: true,
/**
* APIProperty: isFixed
* {Boolean} EventPaned layers are fixed by default.
- */
+ */
isFixed: true,
/**
@@ -23840,9 +23840,9 @@
/**
* Property: mapObject
* {Object} This is the object which will be used to load the 3rd party library
- * in the case of the google layer, this will be of type GMap,
+ * in the case of the google layer, this will be of type GMap,
* in the case of the ve layer, this will be of type VEMap
- */
+ */
mapObject: null,
@@ -23860,35 +23860,35 @@
this.pane = OpenLayers.Util.createDiv(this.div.id + "_EventPane");
}
},
-
+
/**
* APIMethod: destroy
* Deconstruct this layer.
*/
destroy: function() {
this.mapObject = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: setMap
* Set the map property for the layer. This is done through an accessor
- * so that subclasses can override this and take special action once
- * they have their map variable set.
+ * so that subclasses can override this and take special action once
+ * they have their map variable set.
*
* Parameters:
* map - {<OpenLayers.Map>}
*/
setMap: function(map) {
OpenLayers.Layer.prototype.setMap.apply(this, arguments);
-
+
this.pane.style.zIndex = parseInt(this.div.style.zIndex) + 1;
this.pane.style.display = this.div.style.display;
this.pane.style.width="100%";
this.pane.style.height="100%";
if (OpenLayers.Util.getBrowserName() == "msie") {
- this.pane.style.background =
+ this.pane.style.background =
"url(" + OpenLayers.Util.getImagesLocation() + "blank.gif)";
}
@@ -23900,7 +23900,7 @@
// once our layer has been added to the map, we can load it
this.loadMapObject();
-
+
// if map didn't load, display warning
if (this.mapObject == null) {
this.loadWarningMessage();
@@ -23910,8 +23910,8 @@
/**
* APIMethod: removeMap
* On being removed from the map, we'll like to remove the invisible 'pane'
- * div that we added to it on creation.
- *
+ * div that we added to it on creation.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -23922,14 +23922,14 @@
}
OpenLayers.Layer.prototype.removeMap.apply(this, arguments);
},
-
+
/**
* Method: loadWarningMessage
- * If we can't load the map lib, then display an error message to the
+ * If we can't load the map lib, then display an error message to the
* user and tell them where to go for help.
- *
+ *
* This function sets up the layout for the warning message. Each 3rd
- * party layer must implement its own getWarningHTML() function to
+ * party layer must implement its own getWarningHTML() function to
* provide the actual warning message.
*/
loadWarningMessage:function() {
@@ -23937,17 +23937,17 @@
this.div.style.backgroundColor = "darkblue";
var viewSize = this.map.getSize();
-
+
var msgW = Math.min(viewSize.w, 300);
var msgH = Math.min(viewSize.h, 200);
var size = new OpenLayers.Size(msgW, msgH);
var centerPx = new OpenLayers.Pixel(viewSize.w/2, viewSize.h/2);
- var topLeft = centerPx.add(-size.w/2, -size.h/2);
+ var topLeft = centerPx.add(-size.w/2, -size.h/2);
- var div = OpenLayers.Util.createDiv(this.name + "_warning",
- topLeft,
+ var div = OpenLayers.Util.createDiv(this.name + "_warning",
+ topLeft,
size,
null,
null,
@@ -23960,11 +23960,11 @@
div.innerHTML = this.getWarningHTML();
this.div.appendChild(div);
},
-
- /**
+
+ /**
* Method: getWarningHTML
* To be implemented by subclasses.
- *
+ *
* Returns:
* {String} String with information on why layer is broken, how to get
* it working.
@@ -23973,7 +23973,7 @@
//should be implemented by subclasses
return "";
},
-
+
/**
* Method: display
* Set the display on the pane
@@ -23985,11 +23985,11 @@
OpenLayers.Layer.prototype.display.apply(this, arguments);
this.pane.style.display = this.div.style.display;
},
-
+
/**
* Method: setZIndex
* Set the z-index order for the pane.
- *
+ *
* Parameters:
* zIndex - {int}
*/
@@ -24001,7 +24001,7 @@
/**
* Method: moveTo
* Handle calls to move the layer.
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* zoomChanged - {Boolean}
@@ -24023,10 +24023,10 @@
var moOldZoom = this.getMapObjectZoom();
var oldZoom= this.getOLZoomFromMapObjectZoom(moOldZoom);
- if ( !(newCenter.equals(oldCenter)) ||
+ if ( !(newCenter.equals(oldCenter)) ||
!(newZoom == oldZoom) ) {
- if (dragging && this.dragPanMapObject &&
+ if (dragging && this.dragPanMapObject &&
this.smoothDragPan) {
var oldPx = this.map.getViewPortPxFromLonLat(oldCenter);
var newPx = this.map.getViewPortPxFromLonLat(newCenter);
@@ -24051,7 +24051,7 @@
/**
* Method: getLonLatFromViewPortPx
* Get a map location from a pixel location
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
*
@@ -24062,7 +24062,7 @@
*/
getLonLatFromViewPortPx: function (viewPortPx) {
var lonlat = null;
- if ( (this.mapObject != null) &&
+ if ( (this.mapObject != null) &&
(this.getMapObjectCenter() != null) ) {
var moPixel = this.getMapObjectPixelFromOLPixel(viewPortPx);
var moLonLat = this.getMapObjectLonLatFromMapObjectPixel(moPixel);
@@ -24071,7 +24071,7 @@
return lonlat;
},
-
+
/**
* Method: getViewPortPxFromLonLat
* Get a pixel location from a map location
@@ -24086,12 +24086,12 @@
*/
getViewPortPxFromLonLat: function (lonlat) {
var viewPortPx = null;
- if ( (this.mapObject != null) &&
+ if ( (this.mapObject != null) &&
(this.getMapObjectCenter() != null) ) {
var moLonLat = this.getMapObjectLonLatFromOLLonLat(lonlat);
var moPixel = this.getMapObjectPixelFromMapObjectLonLat(moLonLat);
-
+
viewPortPx = this.getOLPixelFromMapObjectPixel(moPixel);
}
return viewPortPx;
@@ -24116,9 +24116,9 @@
*
* Parameters
* moLonLat - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} An OpenLayers.LonLat, translated from the passed in
+ * {<OpenLayers.LonLat>} An OpenLayers.LonLat, translated from the passed in
* MapObject LonLat
* Returns null if null value is passed in
*/
@@ -24138,9 +24138,9 @@
*
* Parameters:
* olLonLat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
- * {Object} A MapObject LonLat, translated from the passed in
+ * {Object} A MapObject LonLat, translated from the passed in
* OpenLayers.LonLat
* Returns null if null value is passed in
*/
@@ -24164,9 +24164,9 @@
*
* Parameters:
* moPixel - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel, translated from the passed in
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel, translated from the passed in
* MapObject Pixel
* Returns null if null value is passed in
*/
@@ -24186,9 +24186,9 @@
*
* Parameters:
* olPixel - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {Object} A MapObject Pixel, translated from the passed in
+ * {Object} A MapObject Pixel, translated from the passed in
* OpenLayers.Pixel
* Returns null if null value is passed in
*/
@@ -24216,47 +24216,47 @@
/**
* Class: OpenLayers.Layer.FixedZoomLevels
- * Some Layers will already have established zoom levels (like google
+ * Some Layers will already have established zoom levels (like google
* or ve). Instead of trying to determine them and populate a resolutions[]
* Array with those values, we will hijack the resolution functionality
* here.
- *
- * When you subclass FixedZoomLevels:
- *
- * The initResolutions() call gets nullified, meaning no resolutions[] array
- * is set up. Which would be a big problem getResolution() in Layer, since
+ *
+ * When you subclass FixedZoomLevels:
+ *
+ * The initResolutions() call gets nullified, meaning no resolutions[] array
+ * is set up. Which would be a big problem getResolution() in Layer, since
* it merely takes map.zoom and indexes into resolutions[]... but....
- *
- * The getResolution() call is also overridden. Instead of using the
+ *
+ * The getResolution() call is also overridden. Instead of using the
* resolutions[] array, we simply calculate the current resolution based
* on the current extent and the current map size. But how will we be able
* to calculate the current extent without knowing the resolution...?
- *
+ *
* The getExtent() function is also overridden. Instead of calculating extent
- * based on the center point and the current resolution, we instead
- * calculate the extent by getting the lonlats at the top-left and
+ * based on the center point and the current resolution, we instead
+ * calculate the extent by getting the lonlats at the top-left and
* bottom-right by using the getLonLatFromViewPortPx() translation function,
- * taken from the pixel locations (0,0) and the size of the map. But how
+ * taken from the pixel locations (0,0) and the size of the map. But how
* will we be able to do lonlat-px translation without resolution....?
- *
+ *
* The getZoomForResolution() method is overridden. Instead of indexing into
* the resolutions[] array, we call OpenLayers.Layer.getExent(), passing in
- * the desired resolution. With this extent, we then call getZoomForExtent()
- *
- *
- * Whenever you implement a layer using OpenLayers.Layer.FixedZoomLevels,
+ * the desired resolution. With this extent, we then call getZoomForExtent()
+ *
+ *
+ * Whenever you implement a layer using OpenLayers.Layer.FixedZoomLevels,
* it is your responsibility to provide the following three functions:
- *
+ *
* - getLonLatFromViewPortPx
* - getViewPortPxFromLonLat
* - getZoomForExtent
- *
- * ...those three functions should generally be provided by any reasonable
+ *
+ * ...those three functions should generally be provided by any reasonable
* API that you might be working from.
*
*/
OpenLayers.Layer.FixedZoomLevels = OpenLayers.Class({
-
+
/********************************************************/
/* */
/* Baselayer Functions */
@@ -24265,19 +24265,19 @@
/* by all base layers */
/* */
/********************************************************/
-
+
/**
* Constructor: OpenLayers.Layer.FixedZoomLevels
* Create a new fixed zoom levels layer.
*/
initialize: function() {
- //this class is only just to add the following functions...
+ //this class is only just to add the following functions...
// nothing to actually do here... but it is probably a good
- // idea to have layers that use these functions call this
- // inititalize() anyways, in case at some point we decide we
- // do want to put some functionality or state in here.
+ // idea to have layers that use these functions call this
+ // inititalize() anyways, in case at some point we decide we
+ // do want to put some functionality or state in here.
},
-
+
/**
* Method: initResolutions
* Populate the resolutions array
@@ -24285,64 +24285,64 @@
initResolutions: function() {
var props = new Array('minZoomLevel', 'maxZoomLevel', 'numZoomLevels');
-
+
for(var i=0, len=props.length; i<len; i++) {
var property = props[i];
- this[property] = (this.options[property] != null)
- ? this.options[property]
+ this[property] = (this.options[property] != null)
+ ? this.options[property]
: this.map[property];
}
if ( (this.minZoomLevel == null) ||
(this.minZoomLevel < this.MIN_ZOOM_LEVEL) ){
this.minZoomLevel = this.MIN_ZOOM_LEVEL;
- }
+ }
//
// At this point, we know what the minimum desired zoom level is, and
- // we must calculate the total number of zoom levels.
- //
+ // we must calculate the total number of zoom levels.
+ //
// Because we allow for the setting of either the 'numZoomLevels'
- // or the 'maxZoomLevel' properties... on either the layer or the
+ // or the 'maxZoomLevel' properties... on either the layer or the
// map, we have to define some rules to see which we take into
- // account first in this calculation.
+ // account first in this calculation.
//
// The following is the precedence list for these properties:
- //
+ //
// (1) numZoomLevels set on layer
// (2) maxZoomLevel set on layer
// (3) numZoomLevels set on map
// (4) maxZoomLevel set on map*
// (5) none of the above*
//
- // *Note that options (4) and (5) are only possible if the user
- // _explicitly_ sets the 'numZoomLevels' property on the map to
- // null, since it is set by default to 16.
+ // *Note that options (4) and (5) are only possible if the user
+ // _explicitly_ sets the 'numZoomLevels' property on the map to
+ // null, since it is set by default to 16.
//
//
- // Note to future: In 3.0, I think we should remove the default
- // value of 16 for map.numZoomLevels. Rather, I think that value
+ // Note to future: In 3.0, I think we should remove the default
+ // value of 16 for map.numZoomLevels. Rather, I think that value
// should be set as a default on the Layer.WMS class. If someone
- // creates a 3rd party layer and does not specify any 'minZoomLevel',
- // 'maxZoomLevel', or 'numZoomLevels', and has not explicitly
+ // creates a 3rd party layer and does not specify any 'minZoomLevel',
+ // 'maxZoomLevel', or 'numZoomLevels', and has not explicitly
// specified any of those on the map object either.. then I think
// it is fair to say that s/he wants all the zoom levels available.
- //
- // By making map.numZoomLevels *null* by default, that will be the
+ //
+ // By making map.numZoomLevels *null* by default, that will be the
// case. As it is, I don't feel comfortable changing that right now
// as it would be a glaring API change and actually would probably
- // break many peoples' codes.
+ // break many peoples' codes.
//
//the number of zoom levels we'd like to have.
var desiredZoomLevels;
- //this is the maximum number of zoom levels the layer will allow,
+ //this is the maximum number of zoom levels the layer will allow,
// given the specified starting minimum zoom level.
var limitZoomLevels = this.MAX_ZOOM_LEVEL - this.minZoomLevel + 1;
- if ( ((this.options.numZoomLevels == null) &&
+ if ( ((this.options.numZoomLevels == null) &&
(this.options.maxZoomLevel != null)) // (2)
||
((this.numZoomLevels == null) &&
@@ -24359,18 +24359,18 @@
if (desiredZoomLevels != null) {
//Now that we know what we would *like* the number of zoom levels
// to be, based on layer or map options, we have to make sure that
- // it does not conflict with the actual limit, as specified by
+ // it does not conflict with the actual limit, as specified by
// the constants on the layer itself (and calculated into the
- // 'limitZoomLevels' variable).
+ // 'limitZoomLevels' variable).
this.numZoomLevels = Math.min(desiredZoomLevels, limitZoomLevels);
} else {
- // case (5) -- neither 'numZoomLevels' not 'maxZoomLevel' was
- // set on either the layer or the map. So we just use the
+ // case (5) -- neither 'numZoomLevels' not 'maxZoomLevel' was
+ // set on either the layer or the map. So we just use the
// maximum limit as calculated by the layer's constants.
this.numZoomLevels = limitZoomLevels;
}
- //now that the 'numZoomLevels' is appropriately, safely set,
+ //now that the 'numZoomLevels' is appropriately, safely set,
// we go back and re-calculate the 'maxZoomLevel'.
this.maxZoomLevel = this.minZoomLevel + this.numZoomLevels - 1;
@@ -24378,17 +24378,17 @@
var resolutionsIndex = 0;
this.resolutions = [];
for(var i= this.minZoomLevel; i <= this.maxZoomLevel; i++) {
- this.resolutions[resolutionsIndex++] = this.RESOLUTIONS[i];
+ this.resolutions[resolutionsIndex++] = this.RESOLUTIONS[i];
}
this.maxResolution = this.resolutions[0];
this.minResolution = this.resolutions[this.resolutions.length - 1];
- }
+ }
},
-
+
/**
* APIMethod: getResolution
* Get the current map resolution
- *
+ *
* Returns:
* {Float} Map units per Pixel
*/
@@ -24398,10 +24398,10 @@
return OpenLayers.Layer.prototype.getResolution.apply(this, arguments);
} else {
var resolution = null;
-
+
var viewSize = this.map.getSize();
var extent = this.getExtent();
-
+
if ((viewSize != null) && (extent != null)) {
resolution = Math.max( extent.getWidth() / viewSize.w,
extent.getHeight() / viewSize.h );
@@ -24412,29 +24412,29 @@
/**
* APIMethod: getExtent
- * Calculates using px-> lonlat translation functions on tl and br
+ * Calculates using px-> lonlat translation functions on tl and br
* corners of viewport
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
+ * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
* bounds of the current viewPort.
*/
getExtent: function () {
var extent = null;
-
-
+
+
var size = this.map.getSize();
-
+
var tlPx = new OpenLayers.Pixel(0,0);
var tlLL = this.getLonLatFromViewPortPx(tlPx);
var brPx = new OpenLayers.Pixel(size.w, size.h);
var brLL = this.getLonLatFromViewPortPx(brPx);
-
+
if ((tlLL != null) && (brLL != null)) {
- extent = new OpenLayers.Bounds(tlLL.lon,
- brLL.lat,
- brLL.lon,
+ extent = new OpenLayers.Bounds(tlLL.lon,
+ brLL.lat,
+ brLL.lon,
tlLL.lat);
}
@@ -24453,7 +24453,7 @@
* If no baselayer is set, returns null.
*/
getZoomForResolution: function(resolution) {
-
+
if (this.resolutions != null) {
return OpenLayers.Layer.prototype.getZoomForResolution.apply(this, arguments);
} else {
@@ -24464,28 +24464,28 @@
-
+
/********************************************************/
/* */
/* Translation Functions */
/* */
- /* The following functions translate GMaps and OL */
+ /* The following functions translate GMaps and OL */
/* formats for Pixel, LonLat, Bounds, and Zoom */
/* */
/********************************************************/
-
-
+
+
//
// TRANSLATION: MapObject Zoom <-> OpenLayers Zoom
//
-
+
/**
* Method: getOLZoomFromMapObjectZoom
* Get the OL zoom index from the map object zoom level
*
* Parameters:
* moZoom - {Integer}
- *
+ *
* Returns:
* {Integer} An OpenLayers Zoom level, translated from the passed in zoom
* Returns null if null value is passed in
@@ -24497,20 +24497,20 @@
}
return zoom;
},
-
+
/**
* Method: getMapObjectZoomFromOLZoom
* Get the map object zoom level from the OL zoom level
*
* Parameters:
* olZoom - {Integer}
- *
+ *
* Returns:
* {Integer} A MapObject level, translated from the passed in olZoom
* Returns null if null value is passed in
*/
getMapObjectZoomFromOLZoom: function(olZoom) {
- var zoom = null;
+ var zoom = null;
if (olZoom != null) {
zoom = olZoom + this.minZoomLevel;
}
@@ -24535,47 +24535,47 @@
/**
* Class: OpenLayers.Layer.HTTPRequest
- *
- * Inherits from:
+ *
+ * Inherits from:
* - <OpenLayers.Layer>
*/
OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, {
- /**
+ /**
* Constant: URL_HASH_FACTOR
* {Float} Used to hash URL param strings for multi-WMS server selection.
* Set to the Golden Ratio per Knuth's recommendation.
*/
URL_HASH_FACTOR: (Math.sqrt(5) - 1) / 2,
- /**
+ /**
* Property: url
- * {Array(String) or String} This is either an array of url strings or
- * a single url string.
+ * {Array(String) or String} This is either an array of url strings or
+ * a single url string.
*/
url: null,
- /**
+ /**
* Property: params
* {Object} Hashtable of key/value parameters
*/
params: null,
-
- /**
+
+ /**
* APIProperty: reproject
* *Deprecated*. See http://trac.openlayers.org/wiki/SpatialMercator
- * for information on the replacement for this functionality.
- * {Boolean} Whether layer should reproject itself based on base layer
- * locations. This allows reprojection onto commercial layers.
- * Default is false: Most layers can't reproject, but layers
+ * for information on the replacement for this functionality.
+ * {Boolean} Whether layer should reproject itself based on base layer
+ * locations. This allows reprojection onto commercial layers.
+ * Default is false: Most layers can't reproject, but layers
* which can create non-square geographic pixels can, like WMS.
- *
+ *
*/
reproject: false,
/**
* Constructor: OpenLayers.Layer.HTTPRequest
- *
+ *
* Parameters:
* name - {String}
* url - {Array(String) or String}
@@ -24596,39 +24596,39 @@
destroy: function() {
this.url = null;
this.params = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.prototype.destroy.apply(this, arguments);
},
-
+
/**
* APIMethod: clone
- *
+ *
* Parameters:
* obj - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.Layer.HTTPRequest>} An exact clone of this
+ * {<OpenLayers.Layer.HTTPRequest>} An exact clone of this
* <OpenLayers.Layer.HTTPRequest>
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer.HTTPRequest(this.name,
this.url,
this.params,
this.options);
}
-
+
//get all additions from superclasses
obj = OpenLayers.Layer.prototype.clone.apply(this, [obj]);
// copy/set any non-init, non-simple values here
-
+
return obj;
},
- /**
+ /**
* APIMethod: setUrl
- *
+ *
* Parameters:
* newUrl - {String}
*/
@@ -24638,7 +24638,7 @@
/**
* APIMethod: mergeNewParams
- *
+ *
* Parameters:
* newParams - {Object}
*
@@ -24660,18 +24660,18 @@
* Returns:
* {Boolean} The layer was redrawn.
*/
- redraw: function(force) {
+ redraw: function(force) {
if (force) {
return this.mergeNewParams({"_olSalt": Math.random()});
} else {
return OpenLayers.Layer.prototype.redraw.apply(this, []);
}
},
-
+
/**
* Method: selectUrl
* selectUrl() implements the standard floating-point multiplicative
- * hash function described by Knuth, and hashes the contents of the
+ * hash function described by Knuth, and hashes the contents of the
* given param string into a float between 0 and 1. This float is then
* scaled to the size of the provided urls array, and used to select
* a URL.
@@ -24679,60 +24679,60 @@
* Parameters:
* paramString - {String}
* urls - {Array(String)}
- *
+ *
* Returns:
* {String} An entry from the urls array, deterministically selected based
* on the paramString.
*/
selectUrl: function(paramString, urls) {
var product = 1;
- for (var i=0, len=paramString.length; i<len; i++) {
- product *= paramString.charCodeAt(i) * this.URL_HASH_FACTOR;
- product -= Math.floor(product);
+ for (var i=0, len=paramString.length; i<len; i++) {
+ product *= paramString.charCodeAt(i) * this.URL_HASH_FACTOR;
+ product -= Math.floor(product);
}
return urls[Math.floor(product * urls.length)];
},
- /**
+ /**
* Method: getFullRequestString
- * Combine url with layer's params and these newParams.
- *
- * does checking on the serverPath variable, allowing for cases when it
- * is supplied with trailing ? or &, as well as cases where not.
+ * Combine url with layer's params and these newParams.
*
+ * does checking on the serverPath variable, allowing for cases when it
+ * is supplied with trailing ? or &, as well as cases where not.
+ *
* return in formatted string like this:
* "server?key1=value1&key2=value2&key3=value3"
- *
+ *
* WARNING: The altUrl parameter is deprecated and will be removed in 3.0.
*
* Parameters:
* newParams - {Object}
* altUrl - {String} Use this as the url instead of the layer's url
- *
- * Returns:
+ *
+ * Returns:
* {String}
*/
getFullRequestString:function(newParams, altUrl) {
// if not altUrl passed in, use layer's url
var url = altUrl || this.url;
-
- // create a new params hashtable with all the layer params and the
+
+ // create a new params hashtable with all the layer params and the
// new params together. then convert to string
var allParams = OpenLayers.Util.extend({}, this.params);
allParams = OpenLayers.Util.extend(allParams, newParams);
var paramsString = OpenLayers.Util.getParameterString(allParams);
-
- // if url is not a string, it should be an array of strings,
- // in which case we will deterministically select one of them in
+
+ // if url is not a string, it should be an array of strings,
+ // in which case we will deterministically select one of them in
// order to evenly distribute requests to different urls.
//
if (url instanceof Array) {
url = this.selectUrl(paramsString, url);
- }
-
+ }
+
// ignore parameters that are already in the url search string
- var urlParams =
+ var urlParams =
OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));
for(var key in allParams) {
if(key.toUpperCase() in urlParams) {
@@ -24740,10 +24740,10 @@
}
}
paramsString = OpenLayers.Util.getParameterString(allParams);
-
+
// requestString always starts with url
- var requestString = url;
-
+ var requestString = url;
+
if (paramsString != "") {
var lastServerChar = url.charAt(url.length - 1);
if ((lastServerChar == "&") || (lastServerChar == "?")) {
@@ -24753,7 +24753,7 @@
//serverPath has no ? -- add one
requestString += '?' + paramsString;
} else {
- //serverPath contains ?, so must already have
+ //serverPath contains ?, so must already have
// paramsString at the end
requestString += '&' + paramsString;
}
@@ -24779,49 +24779,49 @@
/**
* Class: OpenLayers.Layer.Markers
- *
+ *
* Inherits from:
- * - <OpenLayers.Layer>
+ * - <OpenLayers.Layer>
*/
OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, {
-
- /**
- * APIProperty: isBaseLayer
- * {Boolean} Markers layer is never a base layer.
+
+ /**
+ * APIProperty: isBaseLayer
+ * {Boolean} Markers layer is never a base layer.
*/
isBaseLayer: false,
-
- /**
- * APIProperty: markers
- * {Array(<OpenLayers.Marker>)} internal marker list
+
+ /**
+ * APIProperty: markers
+ * {Array(<OpenLayers.Marker>)} internal marker list
*/
markers: null,
- /**
- * Property: drawn
+ /**
+ * Property: drawn
* {Boolean} internal state of drawing. This is a workaround for the fact
* that the map does not call moveTo with a zoomChanged when the map is
* first starting up. This lets us catch the case where we have *never*
* drawn the layer, and draw it even if the zoom hasn't changed.
*/
drawn: false,
-
+
/**
- * Constructor: OpenLayers.Layer.Markers
+ * Constructor: OpenLayers.Layer.Markers
* Create a Markers layer.
*
* Parameters:
- * name - {String}
+ * name - {String}
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, options) {
OpenLayers.Layer.prototype.initialize.apply(this, arguments);
this.markers = [];
},
-
+
/**
- * APIMethod: destroy
+ * APIMethod: destroy
*/
destroy: function() {
this.clearMarkers();
@@ -24832,7 +24832,7 @@
/**
* APIMethod: setOpacity
* Sets the opacity for all the markers.
- *
+ *
* Parameter:
* opacity - {Float}
*/
@@ -24845,13 +24845,13 @@
}
},
- /**
+ /**
* Method: moveTo
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>}
- * zoomChanged - {Boolean}
- * dragging - {Boolean}
+ * bounds - {<OpenLayers.Bounds>}
+ * zoomChanged - {Boolean}
+ * dragging - {Boolean}
*/
moveTo:function(bounds, zoomChanged, dragging) {
OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
@@ -24868,7 +24868,7 @@
* APIMethod: addMarker
*
* Parameters:
- * marker - {<OpenLayers.Marker>}
+ * marker - {<OpenLayers.Marker>}
*/
addMarker: function(marker) {
this.markers.push(marker);
@@ -24887,7 +24887,7 @@
* APIMethod: removeMarker
*
* Parameters:
- * marker - {<OpenLayers.Marker>}
+ * marker - {<OpenLayers.Marker>}
*/
removeMarker: function(marker) {
if (this.markers && this.markers.length) {
@@ -24909,13 +24909,13 @@
}
},
- /**
+ /**
* Method: drawMarker
- * Calculate the pixel location for the marker, create it, and
+ * Calculate the pixel location for the marker, create it, and
* add it to the layer's div
*
* Parameters:
- * marker - {<OpenLayers.Marker>}
+ * marker - {<OpenLayers.Marker>}
*/
drawMarker: function(marker) {
var px = this.map.getLayerPxFromLonLat(marker.lonlat);
@@ -24930,17 +24930,17 @@
}
}
},
-
- /**
+
+ /**
* APIMethod: getDataExtent
* Calculates the max extent which includes all of the markers.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
getDataExtent: function () {
var maxExtent = null;
-
+
if ( this.markers && (this.markers.length > 0)) {
var maxExtent = new OpenLayers.Bounds();
for(var i=0, len=this.markers.length; i<len; i++) {
@@ -24982,12 +24982,12 @@
*
* WKT:
* 900913=PROJCS["WGS84 / Simple Mercator", GEOGCS["WGS 84",
- * DATUM["WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]],
- * PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295],
+ * DATUM["WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]],
+ * PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295],
* AXIS["Longitude", EAST], AXIS["Latitude", NORTH]],
- * PROJECTION["Mercator_1SP_Google"],
- * PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0],
- * PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0],
+ * PROJECTION["Mercator_1SP_Google"],
+ * PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0],
+ * PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0],
* PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AXIS["x", EAST],
* AXIS["y", NORTH], AUTHORITY["EPSG","900913"]]
*/
@@ -25010,8 +25010,8 @@
return extent;
},
- /**
- * Method: initMercatorParameters
+ /**
+ * Method: initMercatorParameters
* Set up the mercator parameters on the layer: resolutions,
* projection, units.
*/
@@ -25031,9 +25031,9 @@
* Given a lon,lat in EPSG:4326, return a point in Spherical Mercator.
*
* Parameters:
- * lon - {float}
+ * lon - {float}
* lat - {float}
- *
+ *
* Returns:
* {<OpenLayers.LonLat>} The coordinates transformed to Mercator.
*/
@@ -25042,7 +25042,7 @@
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
-
+
return new OpenLayers.LonLat(x, y);
},
@@ -25053,7 +25053,7 @@
* Parameters:
* x - {float} A map x in Spherical Mercator.
* y - {float} A map y in Spherical Mercator.
- *
+ *
* Returns:
* {<OpenLayers.LonLat>} The coordinates transformed to EPSG:4326.
*/
@@ -25063,19 +25063,19 @@
var lat = (y / 20037508.34) * 180;
lat = 180/Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2);
-
+
return new OpenLayers.LonLat(lon, lat);
},
/**
- * Method: projectForward
+ * Method: projectForward
* Given an object with x and y properties in EPSG:4326, modify the x,y
* properties on the object to be the Spherical Mercator projected
* coordinates.
*
* Parameters:
- * point - {Object} An object with x and y properties.
- *
+ * point - {Object} An object with x and y properties.
+ *
* Returns:
* {Object} The point, with the x and y properties transformed to spherical
* mercator.
@@ -25086,15 +25086,15 @@
point.y = lonlat.lat;
return point;
},
-
+
/**
* Method: projectInverse
* Given an object with x and y properties in Spherical Mercator, modify
* the x,y properties on the object to be the unprojected coordinates.
*
* Parameters:
- * point - {Object} An object with x and y properties.
- *
+ * point - {Object} An object with x and y properties.
+ *
* Returns:
* {Object} The point, with the x and y properties transformed from
* spherical mercator to unprojected coordinates..
@@ -25140,7 +25140,7 @@
* - <OpenLayers.Control>
*/
OpenLayers.Control.DrawFeature = OpenLayers.Class(OpenLayers.Control, {
-
+
/**
* Property: layer
* {<OpenLayers.Layer.Vector>}
@@ -25152,7 +25152,7 @@
* {Object} The functions that are sent to the handler for callback
*/
callbacks: null,
-
+
/**
* Constant: EVENT_TYPES
*
@@ -25160,7 +25160,7 @@
* featureadded - Triggered when a feature is added
*/
EVENT_TYPES: ["featureadded"],
-
+
/**
* APIProperty: featureAdded
* {Function} Called after each feature is added
@@ -25172,23 +25172,23 @@
* {Object} Used to set non-default properties on the control's handler
*/
handlerOptions: null,
-
+
/**
* Constructor: OpenLayers.Control.DrawFeature
- *
+ *
* Parameters:
- * layer - {<OpenLayers.Layer.Vector>}
- * handler - {<OpenLayers.Handler>}
- * options - {Object}
+ * layer - {<OpenLayers.Layer.Vector>}
+ * handler - {<OpenLayers.Handler>}
+ * options - {Object}
*/
initialize: function(layer, handler, options) {
-
+
// concatenate events specific to vector with those from the base
this.EVENT_TYPES =
OpenLayers.Control.DrawFeature.prototype.EVENT_TYPES.concat(
OpenLayers.Control.prototype.EVENT_TYPES
);
-
+
OpenLayers.Control.prototype.initialize.apply(this, [options]);
this.callbacks = OpenLayers.Util.extend(
{
@@ -25284,20 +25284,20 @@
* {Object} Used to set non-default properties on the control's handler
*/
handlerOptions: null,
-
+
/**
* Property: callbacks
* {Object} The functions that are sent to the handler for callback
*/
callbacks: null,
-
+
/**
* Property: displaySystem
* {String} Display system for output measurements. Supported values
* are 'english', 'metric', and 'geographic'. Default is 'metric'.
*/
displaySystem: 'metric',
-
+
/**
* Property: geodesic
* {Boolean} Calculate geodesic metrics instead of planar metrics. This
@@ -25305,7 +25305,7 @@
* (if that is not already the map projection). Default is false.
*/
geodesic: false,
-
+
/**
* Property: displaySystemUnits
* {Object} Units for various measurement systems. Values are arrays
@@ -25334,7 +25334,7 @@
* {Number} Timeout id of trigger for measurepartial.
*/
delayedTrigger: null,
-
+
/**
* APIProperty: persist
* {Boolean} Keep the temporary measurement sketch drawn after the
@@ -25346,10 +25346,10 @@
/**
* Constructor: OpenLayers.Control.Measure
- *
+ *
* Parameters:
- * handler - {<OpenLayers.Handler>}
- * options - {Object}
+ * handler - {<OpenLayers.Handler>}
+ * options - {Object}
*/
initialize: function(handler, options) {
// concatenate events specific to measure with those from the base
@@ -25363,14 +25363,14 @@
this.callbacks
);
- // let the handler options override, so old code that passes 'persist'
+ // let the handler options override, so old code that passes 'persist'
// directly to the handler does not need an update
this.handlerOptions = OpenLayers.Util.extend(
{persist: this.persist}, this.handlerOptions
);
this.handler = new handler(this, this.callbacks, this.handlerOptions);
},
-
+
/**
* APIMethod: cancel
* Stop the control from measuring. If <persist> is true, the temporary
@@ -25379,7 +25379,7 @@
cancel: function() {
this.handler.cancel();
},
-
+
/**
* Method: updateHandler
*
@@ -25411,7 +25411,7 @@
}
this.measure(geometry, "measure");
},
-
+
/**
* Method: measurePartial
* Called each time a new point is added to the measurement sketch.
@@ -25452,7 +25452,7 @@
geometry: geometry
});
},
-
+
/**
* Method: getBestArea
* Based on the <displaySystem> returns the area of a geometry.
@@ -25476,7 +25476,7 @@
}
return [area, unit];
},
-
+
/**
* Method: getArea
*
@@ -25503,7 +25503,7 @@
}
return area;
},
-
+
/**
* Method: getBestLength
* Based on the <displaySystem> returns the length of a geometry.
@@ -25572,8 +25572,8 @@
/**
* Class: OpenLayers.Control.ZoomBox
- * The ZoomBox control enables zooming directly to a given extent, by drawing
- * a box on the map. The box is drawn by holding down shift, whilst dragging
+ * The ZoomBox control enables zooming directly to a given extent, by drawing
+ * a box on the map. The box is drawn by holding down shift, whilst dragging
* the mouse.
*
* Inherits from:
@@ -25594,13 +25594,13 @@
/**
* Property: alwaysZoom
- * {Boolean} Always zoom in/out, when box drawed
+ * {Boolean} Always zoom in/out, when box drawed
*/
alwaysZoom: false,
/**
* Method: draw
- */
+ */
draw: function() {
this.handler = new OpenLayers.Handler.Box( this,
{done: this.zoomBox}, {keyMask: this.keyMask} );
@@ -25635,11 +25635,11 @@
var ymax = center.lat + (extent.getHeight()/2)*zoomFactor;
var bounds = new OpenLayers.Bounds(xmin, ymin, xmax, ymax);
}
- // always zoom in/out
- var lastZoom = this.map.getZoom();
+ // always zoom in/out
+ var lastZoom = this.map.getZoom();
this.map.zoomToExtent(bounds);
- if (lastZoom == this.map.getZoom() && this.alwaysZoom == true){
- this.map.zoomTo(lastZoom + (this.out ? -1 : 1));
+ if (lastZoom == this.map.getZoom() && this.alwaysZoom == true){
+ this.map.zoomTo(lastZoom + (this.out ? -1 : 1));
}
} else { // it's a pixel
if (!this.out) {
@@ -25671,12 +25671,12 @@
* 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
@@ -25723,7 +25723,7 @@
features = this.parse[type].apply(this, [str]);
}
if (this.internalProjection && this.externalProjection) {
- if (features &&
+ if (features &&
features.CLASS_NAME == "OpenLayers.Feature.Vector") {
features.geometry.transform(this.externalProjection,
this.internalProjection);
@@ -25737,7 +25737,7 @@
}
}
}
- }
+ }
return features;
},
@@ -25776,9 +25776,9 @@
}
if (this.internalProjection && this.externalProjection) {
geometry = geometry.clone();
- geometry.transform(this.internalProjection,
+ geometry.transform(this.internalProjection,
this.externalProjection);
- }
+ }
data = this.extract[type].apply(this, [geometry]);
pieces.push(type.toUpperCase() + '(' + data + ')');
}
@@ -25787,7 +25787,7 @@
}
return pieces.join('');
},
-
+
/**
* Object with properties corresponding to the geometry types.
* Property values are functions that do the actual data extraction.
@@ -25815,7 +25815,7 @@
}
return array.join(',');
},
-
+
/**
* Return a comma delimited string of point coordinates from a line.
* @param {<OpenLayers.Geometry.LineString>} linestring
@@ -25845,7 +25845,7 @@
}
return array.join(',');
},
-
+
/**
* Return a comma delimited string of linear ring arrays from a polygon.
* @param {<OpenLayers.Geometry.Polygon>} polygon
@@ -25913,7 +25913,7 @@
new OpenLayers.Geometry.MultiPoint(components)
);
},
-
+
/**
* Return a linestring feature given a linestring WKT fragment.
* @param {String} A WKT fragment representing the linestring
@@ -25949,7 +25949,7 @@
new OpenLayers.Geometry.MultiLineString(components)
);
},
-
+
/**
* Return a polygon feature given a polygon WKT fragment.
* @param {String} A WKT fragment representing the polygon
@@ -26009,8 +26009,8 @@
},
- CLASS_NAME: "OpenLayers.Format.WKT"
-});
+ CLASS_NAME: "OpenLayers.Format.WKT"
+});
/* ======================================================================
OpenLayers/Layer/Google.js
====================================================================== */
@@ -26029,53 +26029,53 @@
/**
* Class: OpenLayers.Layer.Google
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.SphericalMercator>
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
*/
OpenLayers.Layer.Google = OpenLayers.Class(
- OpenLayers.Layer.EventPane,
+ OpenLayers.Layer.EventPane,
OpenLayers.Layer.FixedZoomLevels, {
-
- /**
+
+ /**
* Constant: MIN_ZOOM_LEVEL
- * {Integer} 0
+ * {Integer} 0
*/
MIN_ZOOM_LEVEL: 0,
-
- /**
+
+ /**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 19
*/
MAX_ZOOM_LEVEL: 19,
- /**
+ /**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
- 1.40625,
- 0.703125,
- 0.3515625,
- 0.17578125,
- 0.087890625,
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
0.0439453125,
- 0.02197265625,
- 0.010986328125,
- 0.0054931640625,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
0.00274658203125,
- 0.001373291015625,
- 0.0006866455078125,
+ 0.001373291015625,
+ 0.0006866455078125,
0.00034332275390625,
- 0.000171661376953125,
- 0.0000858306884765625,
+ 0.000171661376953125,
+ 0.0000858306884765625,
0.00004291534423828125,
- 0.00002145767211914062,
+ 0.00002145767211914062,
0.00001072883605957031,
- 0.00000536441802978515,
+ 0.00000536441802978515,
0.00000268220901489257
],
@@ -26088,34 +26088,34 @@
/**
* APIProperty: sphericalMercator
* {Boolean} Should the map act as a mercator-projected map? This will
- * cause all interactions with the map to be in the actual map
- * projection, which allows support for vector drawing, overlaying
- * other maps, etc.
+ * cause all interactions with the map to be in the actual map
+ * projection, which allows support for vector drawing, overlaying
+ * other maps, etc.
*/
- sphericalMercator: false,
-
+ sphericalMercator: false,
+
/**
* Property: dragObject
* {GDraggableObject} Since 2.93, Google has exposed the ability to get
* the maps GDraggableObject. We can now use this for smooth panning
*/
- dragObject: null,
+ dragObject: null,
/**
* Property: termsOfUse
* {DOMElement} Div for Google's copyright and terms of use link
*/
- termsOfUse: null,
+ termsOfUse: null,
/**
* Property: poweredBy
* {DOMElement} Div for Google's powered by logo and link
*/
- poweredBy: null,
+ poweredBy: null,
- /**
+ /**
* Constructor: OpenLayers.Layer.Google
- *
+ *
* Parameters:
* name - {String} A name for the layer.
* options - {Object} An optional object whose properties will be set
@@ -26123,27 +26123,27 @@
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
- OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
+ OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
this.addContainerPxFunction();
if (this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
- }
+ }
},
-
- /**
+
+ /**
* Method: loadMapObject
- * Load the GMap and register appropriate event listeners. If we can't
+ * Load the GMap and register appropriate event listeners. If we can't
* load GMap2, then display a warning message.
*/
loadMapObject:function() {
-
+
//has gmaps library has been loaded?
try {
// create GMap, hide nav controls
this.mapObject = new GMap2( this.div );
-
+
//since v 2.93 getDragObject is now available.
if(typeof this.mapObject.getDragObject == "function") {
this.dragObject = this.mapObject.getDragObject();
@@ -26176,21 +26176,21 @@
this.poweredBy.style.display = this.div.style.display;
this.poweredBy.style.right = "";
this.poweredBy.style.bottom = "";
- this.poweredBy.className = "olLayerGooglePoweredBy gmnoprint";
+ this.poweredBy.className = "olLayerGooglePoweredBy gmnoprint";
} catch (e) {
OpenLayers.Console.error(e);
}
-
+
},
- /**
+ /**
* APIMethod: setMap
- * Overridden from EventPane because if a map type has been specified,
- * we need to attach a listener for the first moveend -- this is how
- * we will know that the map has been centered. Only once the map has
- * been centered is it safe to change the gmap object's map type.
- *
+ * Overridden from EventPane because if a map type has been specified,
+ * we need to attach a listener for the first moveend -- this is how
+ * we will know that the map has been centered. Only once the map has
+ * been centered is it safe to change the gmap object's map type.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -26201,21 +26201,21 @@
this.map.events.register("moveend", this, this.setMapType);
}
},
-
- /**
+
+ /**
* Method: setMapType
- * The map has been centered, and a map type was specified, so we
+ * The map has been centered, and a map type was specified, so we
* set the map type on the gmap object, then unregister the listener
* so that we dont keep doing this every time the map moves.
*/
setMapType: function() {
if (this.mapObject.getCenter() != null) {
-
+
// Support for custom map types.
if (OpenLayers.Util.indexOf(this.mapObject.getMapTypes(),
this.type) == -1) {
this.mapObject.addMapType(this.type);
- }
+ }
this.mapObject.setMapType(this.type);
this.map.events.unregister("moveend", this, this.setMapType);
@@ -26224,7 +26224,7 @@
/**
* APIMethod: onMapResize
- *
+ *
* Parameters:
* evt - {Event}
*/
@@ -26266,7 +26266,7 @@
/**
* APIMethod: removeMap
* On being removed from the map, also remove termsOfUse and poweredBy divs
- *
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -26281,15 +26281,15 @@
}
OpenLayers.Layer.EventPane.prototype.removeMap.apply(this, arguments);
},
-
+
/**
* APIMethod: getZoomForExtent
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
- *
+ *
* Returns:
- * {Integer} Corresponding zoom level for a specified Bounds.
+ * {Integer} Corresponding zoom level for a specified Bounds.
* If mapObject is not loaded or not centered, returns null
*
getZoomForExtent: function (bounds) {
@@ -26298,29 +26298,29 @@
var moBounds = this.getMapObjectBoundsFromOLBounds(bounds);
var moZoom = this.getMapObjectZoomFromMapObjectBounds(moBounds);
- //make sure zoom is within bounds
- var moZoom = Math.min(Math.max(moZoom, this.minZoomLevel),
+ //make sure zoom is within bounds
+ var moZoom = Math.min(Math.max(moZoom, this.minZoomLevel),
this.maxZoomLevel);
zoom = this.getOLZoomFromMapObjectZoom(moZoom);
}
return zoom;
},
-
+
*/
-
+
//
// TRANSLATION: MapObject Bounds <-> OpenLayers.Bounds
//
/**
* APIMethod: getOLBoundsFromMapObjectBounds
- *
+ *
* Parameters:
* moBounds - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} An <OpenLayers.Bounds>, translated from the
+ * {<OpenLayers.Bounds>} An <OpenLayers.Bounds>, translated from the
* passed-in MapObject Bounds.
* Returns null if null value is passed in.
*/
@@ -26333,12 +26333,12 @@
sw = this.forwardMercator(sw.lng(), sw.lat());
ne = this.forwardMercator(ne.lng(), ne.lat());
} else {
- sw = new OpenLayers.LonLat(sw.lng(), sw.lat());
- ne = new OpenLayers.LonLat(ne.lng(), ne.lat());
- }
- olBounds = new OpenLayers.Bounds(sw.lon,
- sw.lat,
- ne.lon,
+ sw = new OpenLayers.LonLat(sw.lng(), sw.lat());
+ ne = new OpenLayers.LonLat(ne.lng(), ne.lat());
+ }
+ olBounds = new OpenLayers.Bounds(sw.lon,
+ sw.lat,
+ ne.lon,
ne.lat );
}
return olBounds;
@@ -26346,10 +26346,10 @@
/**
* APIMethod: getMapObjectBoundsFromOLBounds
- *
+ *
* Parameters:
* olBounds - {<OpenLayers.Bounds>}
- *
+ *
* Returns:
* {Object} A MapObject Bounds, translated from olBounds
* Returns null if null value is passed in
@@ -26357,11 +26357,11 @@
getMapObjectBoundsFromOLBounds: function(olBounds) {
var moBounds = null;
if (olBounds != null) {
- var sw = this.sphericalMercator ?
- this.inverseMercator(olBounds.bottom, olBounds.left) :
+ var sw = this.sphericalMercator ?
+ this.inverseMercator(olBounds.bottom, olBounds.left) :
new OpenLayers.LonLat(olBounds.bottom, olBounds.left);
- var ne = this.sphericalMercator ?
- this.inverseMercator(olBounds.top, olBounds.right) :
+ var ne = this.sphericalMercator ?
+ this.inverseMercator(olBounds.top, olBounds.right) :
new OpenLayers.LonLat(olBounds.top, olBounds.right);
moBounds = new GLatLngBounds(new GLatLng(sw.lat, sw.lon),
new GLatLng(ne.lat, ne.lon));
@@ -26369,41 +26369,41 @@
return moBounds;
},
- /**
+ /**
* Method: addContainerPxFunction
* Hack-on function because GMAPS does not give it to us
- *
- * Parameters:
+ *
+ * Parameters:
* gLatLng - {GLatLng}
- *
+ *
* Returns:
* {GPoint} A GPoint specifying gLatLng translated into "Container" coords
*/
addContainerPxFunction: function() {
- if ( (typeof GMap2 != "undefined") &&
+ if ( (typeof GMap2 != "undefined") &&
!GMap2.prototype.fromLatLngToContainerPixel) {
-
+
GMap2.prototype.fromLatLngToContainerPixel = function(gLatLng) {
-
+
// first we translate into "DivPixel"
var gPoint = this.fromLatLngToDivPixel(gLatLng);
-
+
// locate the sliding "Div" div
var div = this.getContainer().firstChild.firstChild;
-
+
// adjust by the offset of "Div" and voila!
gPoint.x += div.offsetLeft;
gPoint.y += div.offsetTop;
-
+
return gPoint;
};
}
},
- /**
+ /**
* APIMethod: getWarningHTML
- *
- * Returns:
+ *
+ * Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
@@ -26421,21 +26421,21 @@
// Get&Set Center, Zoom
- /**
+ /**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
- *
+ *
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
- this.mapObject.setCenter(center, zoom);
+ this.mapObject.setCenter(center, zoom);
},
-
+
/**
* APIMethod: dragPanMapObject
- *
+ *
* Parameters:
* dX - {Integer}
* dY - {Integer}
@@ -26446,17 +26446,17 @@
/**
* APIMethod: getMapObjectCenter
- *
- * Returns:
+ *
+ * Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
return this.mapObject.getCenter();
},
- /**
+ /**
* APIMethod: getMapObjectZoom
- *
+ *
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
@@ -26466,13 +26466,13 @@
// LonLat - Pixel Translation
-
+
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
@@ -26482,10 +26482,10 @@
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
@@ -26493,15 +26493,15 @@
return this.mapObject.fromLatLngToContainerPixel(moLonLat);
},
-
+
// Bounds
-
- /**
+
+ /**
* APIMethod: getMapObjectZoomFromMapObjectBounds
- *
+ *
* Parameters:
* moBounds - {Object} MapObject Bounds format
- *
+ *
* Returns:
* {Object} MapObject Zoom for specified MapObject Bounds
*/
@@ -26517,45 +26517,45 @@
// LonLat
-
+
/**
* APIMethod: getLongitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.lng(), moLonLat.lat()).lon :
- moLonLat.lng();
+ moLonLat.lng();
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
- var lat = this.sphericalMercator ?
+ var lat = this.sphericalMercator ?
this.forwardMercator(moLonLat.lng(), moLonLat.lat()).lat :
- moLonLat.lat();
- return lat;
+ moLonLat.lat();
+ return lat;
},
-
+
/**
* APIMethod: getMapObjectLonLatFromLonLat
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
@@ -26571,13 +26571,13 @@
},
// Pixel
-
+
/**
* APIMethod: getXFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} X value of the MapObject Pixel
*/
@@ -26587,10 +26587,10 @@
/**
* APIMethod: getYFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
@@ -26600,11 +26600,11 @@
/**
* APIMethod: getMapObjectPixelFromXY
- *
+ *
* Parameters:
* x - {Integer}
* y - {Integer}
- *
+ *
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
@@ -26637,38 +26637,38 @@
* - <OpenLayers.Layer.HTTPRequest>
*/
OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
-
+
/**
* APIProperty: tileSize
* {<OpenLayers.Size>}
*/
tileSize: null,
-
+
/**
* Property: grid
- * {Array(Array(<OpenLayers.Tile>))} This is an array of rows, each row is
+ * {Array(Array(<OpenLayers.Tile>))} This is an array of rows, each row is
* an array of tiles.
*/
grid: null,
/**
* APIProperty: singleTile
- * {Boolean} Moves the layer into single-tile mode, meaning that one tile
+ * {Boolean} Moves the layer into single-tile mode, meaning that one tile
* will be loaded. The tile's size will be determined by the 'ratio'
- * property. When the tile is dragged such that it does not cover the
+ * property. When the tile is dragged such that it does not cover the
* entire viewport, it is reloaded.
*/
singleTile: false,
/** APIProperty: ratio
- * {Float} Used only when in single-tile mode, this specifies the
+ * {Float} Used only when in single-tile mode, this specifies the
* ratio of the size of the single tile to the size of the map.
*/
ratio: 1.5,
/**
* APIProperty: buffer
- * {Integer} Used only when in gridded mode, this specifies the number of
+ * {Integer} Used only when in gridded mode, this specifies the number of
* extra rows and colums of tiles on each side which will
* surround the minimum grid tiles to cover the map.
*/
@@ -26691,10 +26691,10 @@
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, url, params, options) {
- OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,
+ OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,
arguments);
-
- //grid layers will trigger 'tileloaded' when each new tile is
+
+ //grid layers will trigger 'tileloaded' when each new tile is
// loaded, as a means of progress update to listeners.
// listeners can access 'numLoadingTiles' if they wish to keep track
// of the loading progress
@@ -26712,7 +26712,7 @@
this.clearGrid();
this.grid = null;
this.tileSize = null;
- OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this, arguments);
},
/**
@@ -26740,12 +26740,12 @@
*
* Parameters:
* obj - {Object} Is this ever used?
- *
+ *
* Returns:
* {<OpenLayers.Layer.Grid>} An exact clone of this OpenLayers.Layer.Grid
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer.Grid(this.name,
this.url,
@@ -26760,12 +26760,12 @@
if (this.tileSize != null) {
obj.tileSize = this.tileSize.clone();
}
-
+
// we do not want to copy reference to grid, so we make a new array
obj.grid = [];
return obj;
- },
+ },
/**
* Method: moveTo
@@ -26780,32 +26780,32 @@
*/
moveTo:function(bounds, zoomChanged, dragging) {
OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this, arguments);
-
+
bounds = bounds || this.map.getExtent();
if (bounds != null) {
-
+
// if grid is empty or zoom has changed, we *must* re-tile
var forceReTile = !this.grid.length || zoomChanged;
// total bounds of the tiles
- var tilesBounds = this.getTilesBounds();
-
+ var tilesBounds = this.getTilesBounds();
+
if (this.singleTile) {
-
- // We want to redraw whenever even the slightest part of the
+
+ // We want to redraw whenever even the slightest part of the
// current bounds is not contained by our tile.
// (thus, we do not specify partial -- its default is false)
- if ( forceReTile ||
+ if ( forceReTile ||
(!dragging && !tilesBounds.containsBounds(bounds))) {
this.initSingleTile(bounds);
}
} else {
-
- // if the bounds have changed such that they are not even
- // *partially* contained by our tiles (IE user has
- // programmatically panned to the other side of the earth)
- // then we want to reTile (thus, partial true).
+
+ // if the bounds have changed such that they are not even
+ // *partially* contained by our tiles (IE user has
+ // programmatically panned to the other side of the earth)
+ // then we want to reTile (thus, partial true).
//
if (forceReTile || !tilesBounds.containsBounds(bounds, true)) {
this.initGriddedTiles(bounds);
@@ -26816,32 +26816,32 @@
}
}
},
-
+
/**
* APIMethod: setTileSize
* Check if we are in singleTile mode and if so, set the size as a ratio
* of the map size (as specified by the layer's 'ratio' property).
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>}
*/
- setTileSize: function(size) {
+ setTileSize: function(size) {
if (this.singleTile) {
size = this.map.getSize().clone();
size.h = parseInt(size.h * this.ratio);
size.w = parseInt(size.w * this.ratio);
- }
+ }
OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this, [size]);
},
-
+
/**
* Method: getGridBounds
- * Deprecated. This function will be removed in 3.0. Please use
+ * Deprecated. This function will be removed in 3.0. Please use
* getTilesBounds() instead.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>} A Bounds object representing the bounds of all the
- * currently loaded tiles (including those partially or not at all seen
+ * currently loaded tiles (including those partially or not at all seen
* onscreen)
*/
getGridBounds: function() {
@@ -26857,32 +26857,32 @@
*
* Returns:
* {<OpenLayers.Bounds>} A Bounds object representing the bounds of all the
- * currently loaded tiles (including those partially or not at all seen
+ * currently loaded tiles (including those partially or not at all seen
* onscreen).
*/
- getTilesBounds: function() {
- var bounds = null;
-
+ getTilesBounds: function() {
+ var bounds = null;
+
if (this.grid.length) {
var bottom = this.grid.length - 1;
var bottomLeftTile = this.grid[bottom][0];
-
- var right = this.grid[0].length - 1;
+
+ var right = this.grid[0].length - 1;
var topRightTile = this.grid[0][right];
-
- bounds = new OpenLayers.Bounds(bottomLeftTile.bounds.left,
+
+ bounds = new OpenLayers.Bounds(bottomLeftTile.bounds.left,
bottomLeftTile.bounds.bottom,
- topRightTile.bounds.right,
+ topRightTile.bounds.right,
topRightTile.bounds.top);
-
- }
+
+ }
return bounds;
},
/**
* Method: initSingleTile
- *
- * Parameters:
+ *
+ * Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
initSingleTile: function(bounds) {
@@ -26891,13 +26891,13 @@
var center = bounds.getCenterLonLat();
var tileWidth = bounds.getWidth() * this.ratio;
var tileHeight = bounds.getHeight() * this.ratio;
-
- var tileBounds =
+
+ var tileBounds =
new OpenLayers.Bounds(center.lon - (tileWidth/2),
center.lat - (tileHeight/2),
center.lon + (tileWidth/2),
center.lat + (tileHeight/2));
-
+
var ul = new OpenLayers.LonLat(tileBounds.left, tileBounds.top);
var px = this.map.getLayerPxFromLonLat(ul);
@@ -26908,21 +26908,21 @@
var tile = this.grid[0][0];
if (!tile) {
tile = this.addTile(tileBounds, px);
-
+
this.addTileMonitoringHooks(tile);
tile.draw();
this.grid[0][0] = tile;
} else {
tile.moveTo(tileBounds, px);
- }
-
+ }
+
//remove all but our single tile
this.removeExcessTiles(1,1);
},
- /**
+ /**
* Method: calculateGridLayout
- * Generate parameters for the grid layout. This
+ * Generate parameters for the grid layout. This
*
* Parameters:
* bounds - {<OpenLayers.Bound>}
@@ -26936,20 +26936,20 @@
calculateGridLayout: function(bounds, extent, resolution) {
var tilelon = resolution * this.tileSize.w;
var tilelat = resolution * this.tileSize.h;
-
+
var offsetlon = bounds.left - extent.left;
var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
var tilecolremain = offsetlon/tilelon - tilecol;
var tileoffsetx = -tilecolremain * this.tileSize.w;
var tileoffsetlon = extent.left + tilecol * tilelon;
-
- var offsetlat = bounds.top - (extent.bottom + tilelat);
+
+ var offsetlat = bounds.top - (extent.bottom + tilelat);
var tilerow = Math.ceil(offsetlat/tilelat) + this.buffer;
var tilerowremain = tilerow - offsetlat/tilelat;
var tileoffsety = -tilerowremain * this.tileSize.h;
var tileoffsetlat = extent.bottom + tilerow * tilelat;
-
- return {
+
+ return {
tilelon: tilelon, tilelat: tilelat,
tileoffsetlon: tileoffsetlon, tileoffsetlat: tileoffsetlat,
tileoffsetx: tileoffsetx, tileoffsety: tileoffsety
@@ -26959,24 +26959,24 @@
/**
* Method: initGriddedTiles
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
initGriddedTiles:function(bounds) {
-
+
// work out mininum number of rows and columns; this is the number of
// tiles required to cover the viewport plus at least one for panning
var viewSize = this.map.getSize();
- var minRows = Math.ceil(viewSize.h/this.tileSize.h) +
+ var minRows = Math.ceil(viewSize.h/this.tileSize.h) +
Math.max(1, 2 * this.buffer);
var minCols = Math.ceil(viewSize.w/this.tileSize.w) +
Math.max(1, 2 * this.buffer);
-
+
var extent = this.maxExtent;
var resolution = this.map.getResolution();
-
+
var tileLayout = this.calculateGridLayout(bounds, extent, resolution);
var tileoffsetx = Math.round(tileLayout.tileoffsetx); // heaven help us
@@ -26984,21 +26984,21 @@
var tileoffsetlon = tileLayout.tileoffsetlon;
var tileoffsetlat = tileLayout.tileoffsetlat;
-
+
var tilelon = tileLayout.tilelon;
var tilelat = tileLayout.tilelat;
this.origin = new OpenLayers.Pixel(tileoffsetx, tileoffsety);
- var startX = tileoffsetx;
+ var startX = tileoffsetx;
var startLon = tileoffsetlon;
var rowidx = 0;
-
+
var layerContainerDivLeft = parseInt(this.map.layerContainerDiv.style.left);
var layerContainerDivTop = parseInt(this.map.layerContainerDiv.style.top);
-
-
+
+
do {
var row = this.grid[rowidx++];
if (!row) {
@@ -27009,11 +27009,11 @@
tileoffsetlon = startLon;
tileoffsetx = startX;
var colidx = 0;
-
+
do {
- var tileBounds =
- new OpenLayers.Bounds(tileoffsetlon,
- tileoffsetlat,
+ var tileBounds =
+ new OpenLayers.Bounds(tileoffsetlon,
+ tileoffsetlat,
tileoffsetlon + tilelon,
tileoffsetlat + tilelat);
@@ -27032,44 +27032,44 @@
} else {
tile.moveTo(tileBounds, px, false);
}
-
- tileoffsetlon += tilelon;
+
+ tileoffsetlon += tilelon;
tileoffsetx += this.tileSize.w;
} while ((tileoffsetlon <= bounds.right + tilelon * this.buffer)
|| colidx < minCols);
-
+
tileoffsetlat -= tilelat;
tileoffsety += this.tileSize.h;
} while((tileoffsetlat >= bounds.bottom - tilelat * this.buffer)
|| rowidx < minRows);
-
+
//shave off exceess rows and colums
this.removeExcessTiles(rowidx, colidx);
//now actually draw the tiles
this.spiralTileLoad();
},
-
+
/**
* Method: spiralTileLoad
- * Starts at the top right corner of the grid and proceeds in a spiral
- * towards the center, adding tiles one at a time to the beginning of a
- * queue.
- *
- * Once all the grid's tiles have been added to the queue, we go back
- * and iterate through the queue (thus reversing the spiral order from
- * outside-in to inside-out), calling draw() on each tile.
+ * Starts at the top right corner of the grid and proceeds in a spiral
+ * towards the center, adding tiles one at a time to the beginning of a
+ * queue.
+ *
+ * Once all the grid's tiles have been added to the queue, we go back
+ * and iterate through the queue (thus reversing the spiral order from
+ * outside-in to inside-out), calling draw() on each tile.
*/
spiralTileLoad: function() {
var tileQueue = [];
-
+
var directions = ["right", "down", "left", "up"];
var iRow = 0;
var iCell = -1;
var direction = OpenLayers.Util.indexOf(directions, "right");
var directionsTried = 0;
-
+
while( directionsTried < directions.length) {
var testRow = iRow;
@@ -27088,21 +27088,21 @@
case "up":
testRow--;
break;
- }
-
- // if the test grid coordinates are within the bounds of the
+ }
+
+ // if the test grid coordinates are within the bounds of the
// grid, get a reference to the tile.
var tile = null;
if ((testRow < this.grid.length) && (testRow >= 0) &&
(testCell < this.grid[0].length) && (testCell >= 0)) {
tile = this.grid[testRow][testCell];
}
-
+
if ((tile != null) && (!tile.queued)) {
//add tile to beginning of queue, mark it as queued.
tileQueue.unshift(tile);
tile.queued = true;
-
+
//restart the directions counter and take on the new coords
directionsTried = 0;
iRow = testRow;
@@ -27112,21 +27112,21 @@
direction = (direction + 1) % 4;
directionsTried++;
}
- }
-
+ }
+
// now we go through and draw the tiles in forward order
for(var i=0, len=tileQueue.length; i<len; i++) {
var tile = tileQueue[i];
tile.draw();
//mark tile as unqueued for the next time (since tiles are reused)
- tile.queued = false;
+ tile.queued = false;
}
},
/**
* APIMethod: addTile
- * Gives subclasses of Grid the opportunity to create an
- * OpenLayer.Tile of their choosing. The implementer should initialize
+ * Gives subclasses of Grid the opportunity to create an
+ * OpenLayer.Tile of their choosing. The implementer should initialize
* the new tile and take whatever steps necessary to display it.
*
* Parameters
@@ -27139,17 +27139,17 @@
addTile:function(bounds, position) {
// Should be implemented by subclasses
},
-
- /**
+
+ /**
* Method: addTileMonitoringHooks
- * This function takes a tile as input and adds the appropriate hooks to
+ * This function takes a tile as input and adds the appropriate hooks to
* the tile so that the layer can keep track of the loading tiles.
- *
- * Parameters:
+ *
+ * Parameters:
* tile - {<OpenLayers.Tile>}
*/
addTileMonitoringHooks: function(tile) {
-
+
tile.onLoadStart = function() {
//if that was first tile then trigger a 'loadstart' on the layer
if (this.numLoadingTiles == 0) {
@@ -27158,7 +27158,7 @@
this.numLoadingTiles++;
};
tile.events.register("loadstart", this, tile.onLoadStart);
-
+
tile.onLoadEnd = function() {
this.numLoadingTiles--;
this.events.triggerEvent("tileloaded");
@@ -27171,12 +27171,12 @@
tile.events.register("unload", this, tile.onLoadEnd);
},
- /**
+ /**
* Method: removeTileMonitoringHooks
- * This function takes a tile as input and removes the tile hooks
+ * This function takes a tile as input and removes the tile hooks
* that were added in addTileMonitoringHooks()
- *
- * Parameters:
+ *
+ * Parameters:
* tile - {<OpenLayers.Tile>}
*/
removeTileMonitoringHooks: function(tile) {
@@ -27188,10 +27188,10 @@
scope: this
});
},
-
+
/**
* Method: moveGriddedTiles
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
@@ -27199,7 +27199,7 @@
var buffer = this.buffer || 1;
while (true) {
var tlLayer = this.grid[0][0].position;
- var tlViewPort =
+ var tlViewPort =
this.map.getViewPortPxFromLayerPx(tlLayer);
if (tlViewPort.x > -this.tileSize.w * (buffer - 1)) {
this.shiftColumn(true);
@@ -27268,7 +27268,7 @@
var row = this.grid[i];
var modelTileIndex = (prepend) ? 0 : (row.length - 1);
var modelTile = row[modelTileIndex];
-
+
var bounds = modelTile.bounds.clone();
var position = modelTile.position.clone();
bounds.left = bounds.left + deltaLon;
@@ -27284,18 +27284,18 @@
}
}
},
-
+
/**
* Method: removeExcessTiles
* When the size of the map or the buffer changes, we may need to
* remove some excess rows and columns.
- *
+ *
* Parameters:
* rows - {Integer} Maximum number of rows we want our grid to have.
* colums - {Integer} Maximum number of columns we want our grid to have.
*/
removeExcessTiles: function(rows, columns) {
-
+
// remove extra rows
while (this.grid.length > rows) {
var row = this.grid.pop();
@@ -27305,7 +27305,7 @@
tile.destroy();
}
}
-
+
// remove extra columns
while (this.grid[0].length > columns) {
for (var i=0, l=this.grid.length; i<l; i++) {
@@ -27328,7 +27328,7 @@
this.setTileSize();
}
},
-
+
/**
* APIMethod: getTileBounds
* Returns The tile bounds for a layer given a pixel location.
@@ -27357,7 +27357,7 @@
tileLeft + tileMapWidth,
tileBottom + tileMapHeight);
},
-
+
CLASS_NAME: "OpenLayers.Layer.Grid"
});
/* ======================================================================
@@ -27376,7 +27376,7 @@
/**
* Class: OpenLayers.Layer.VirtualEarth
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
@@ -27384,40 +27384,40 @@
OpenLayers.Layer.VirtualEarth = OpenLayers.Class(
OpenLayers.Layer.EventPane,
OpenLayers.Layer.FixedZoomLevels, {
-
- /**
+
+ /**
* Constant: MIN_ZOOM_LEVEL
- * {Integer} 1
+ * {Integer} 1
*/
MIN_ZOOM_LEVEL: 1,
-
- /**
+
+ /**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 17
*/
MAX_ZOOM_LEVEL: 17,
- /**
+ /**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
- 1.40625,
- 0.703125,
- 0.3515625,
- 0.17578125,
- 0.087890625,
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
0.0439453125,
- 0.02197265625,
- 0.010986328125,
- 0.0054931640625,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
0.00274658203125,
- 0.001373291015625,
- 0.0006866455078125,
- 0.00034332275390625,
- 0.000171661376953125,
- 0.0000858306884765625,
+ 0.001373291015625,
+ 0.0006866455078125,
+ 0.00034332275390625,
+ 0.000171661376953125,
+ 0.0000858306884765625,
0.00004291534423828125,
0.00002145767211914062
],
@@ -27433,9 +27433,9 @@
* {Boolean} Should the map act as a mercator-projected map? This will
* cause all interactions with the map to be in the actual map
* projection, which allows support for vector drawing, overlaying
- * other maps, etc.
+ * other maps, etc.
*/
- sphericalMercator: false,
+ sphericalMercator: false,
/**
* APIProperty: animationEnabled
@@ -27443,25 +27443,25 @@
* animated. Set to false to match the zooming experience of other
* layer types. Default is true.
*/
- animationEnabled: true,
+ animationEnabled: true,
- /**
+ /**
* Constructor: OpenLayers.Layer.VirtualEarth
- *
+ *
* Parameters:
* name - {String}
* options - {Object}
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
- OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
+ OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
if(this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
}
},
-
+
/**
* Method: loadMapObject
*/
@@ -27481,21 +27481,23 @@
if (this.mapObject != null) {
try { // this is to catch a Mozilla bug without falling apart
- // The fourth argument is whether the map is 'fixed' -- not
- // draggable. See:
+ // The fourth argument is whether the map is 'fixed' -- not
+ // draggable. See:
// http://blogs.msdn.com/virtualearth/archive/2007/09/28/locking-a-virtual-earth-map.aspx
//
this.mapObject.LoadMap(null, null, this.type, true);
this.mapObject.AttachEvent("onmousedown", function() {return true; });
} catch (e) { }
+ this.mapObject.AttachEvent("onresize",
+ OpenLayers.Function.bindAsEventListener(this.redrawDependentLayers, this));
this.mapObject.HideDashboard();
if(typeof this.mapObject.SetAnimationEnabled == "function") {
this.mapObject.SetAnimationEnabled(this.animationEnabled);
}
}
- //can we do smooth panning? this is an unpublished method, so we need
+ //can we do smooth panning? this is an unpublished method, so we need
// to be careful
if ( !this.mapObject ||
!this.mapObject.vemapcontrol ||
@@ -27506,18 +27508,36 @@
}
},
-
+
/**
+ * Method: redrawDependentLayers
+ */
+ redrawDependentLayers: function(event) {
+ if(this.isBaseLayer)
+ {
+ for(var i=0, len=this.map.layers.length; i<len; i++)
+ {
+ var otherLayer = this.map.layers[i];
+ if(otherLayer != this)
+ {
+ otherLayer.redraw();
+ }
+ }
+ }
+ },
+
+
+ /**
* Method: onMapResize
*/
onMapResize: function() {
this.mapObject.Resize(this.map.size.w, this.map.size.h);
},
- /**
+ /**
* APIMethod: getWarningHTML
- *
- * Returns:
+ *
+ * Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
@@ -27538,22 +27558,22 @@
// Get&Set Center, Zoom
- /**
+ /**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
- *
+ *
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
- this.mapObject.SetCenterAndZoom(center, zoom);
+ this.mapObject.SetCenterAndZoom(center, zoom);
},
-
+
/**
* APIMethod: getMapObjectCenter
- *
- * Returns:
+ *
+ * Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
@@ -27562,7 +27582,7 @@
/**
* APIMethod: dragPanMapObject
- *
+ *
* Parameters:
* dX - {Integer}
* dY - {Integer}
@@ -27571,9 +27591,9 @@
this.mapObject.vemapcontrol.PanMap(dX, -dY);
},
- /**
+ /**
* APIMethod: getMapObjectZoom
- *
+ *
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
@@ -27583,29 +27603,29 @@
// LonLat - Pixel Translation
-
+
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
getMapObjectLonLatFromMapObjectPixel: function(moPixel) {
//the conditional here is to test if we are running the v6 of VE
- return (typeof VEPixel != 'undefined')
+ return (typeof VEPixel != 'undefined')
? this.mapObject.PixelToLatLong(moPixel)
: this.mapObject.PixelToLatLong(moPixel.x, moPixel.y);
},
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
@@ -27622,44 +27642,44 @@
// LonLat
-
+
/**
* APIMethod: getLongitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Longitude, moLonLat.Latitude).lon :
moLonLat.Longitude;
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Longitude, moLonLat.Latitude).lat :
moLonLat.Latitude;
},
/**
* APIMethod: getMapObjectLonLatFromLonLat
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
@@ -27675,13 +27695,13 @@
},
// Pixel
-
+
/**
* APIMethod: getXFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} X value of the MapObject Pixel
*/
@@ -27691,10 +27711,10 @@
/**
* APIMethod: getYFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
@@ -27704,11 +27724,11 @@
/**
* APIMethod: getMapObjectPixelFromXY
- *
+ *
* Parameters:
* x - {Integer}
* y - {Integer}
- *
+ *
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
@@ -27736,47 +27756,47 @@
/**
* Class: OpenLayers.Layer.Yahoo
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
*/
OpenLayers.Layer.Yahoo = OpenLayers.Class(
OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, {
-
- /**
+
+ /**
* Constant: MIN_ZOOM_LEVEL
- * {Integer} 0
+ * {Integer} 0
*/
MIN_ZOOM_LEVEL: 0,
-
- /**
+
+ /**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 17
*/
MAX_ZOOM_LEVEL: 17,
- /**
+ /**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
- 1.40625,
- 0.703125,
- 0.3515625,
- 0.17578125,
- 0.087890625,
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
0.0439453125,
- 0.02197265625,
- 0.010986328125,
- 0.0054931640625,
- 0.00274658203125,
- 0.001373291015625,
- 0.0006866455078125,
- 0.00034332275390625,
- 0.000171661376953125,
- 0.0000858306884765625,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 0.0006866455078125,
+ 0.00034332275390625,
+ 0.000171661376953125,
+ 0.0000858306884765625,
0.00004291534423828125,
0.00002145767211914062,
0.00001072883605957031
@@ -27787,69 +27807,69 @@
* {YahooMapType}
*/
type: null,
-
+
/**
* APIProperty: sphericalMercator
* {Boolean} Should the map act as a mercator-projected map? This will
* cause all interactions with the map to be in the actual map projection,
- * which allows support for vector drawing, overlaying other maps, etc.
+ * which allows support for vector drawing, overlaying other maps, etc.
*/
- sphericalMercator: false,
+ sphericalMercator: false,
- /**
+ /**
* Constructor: OpenLayers.Layer.Yahoo
- *
+ *
* Parameters:
* name - {String}
* options - {Object}
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
- OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
+ OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
if(this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
}
},
-
+
/**
* Method: loadMapObject
*/
loadMapObject:function() {
- try { //do not crash!
+ try { //do not crash!
var size = this.getMapObjectSizeFromOLSize(this.map.getSize());
this.mapObject = new YMap(this.div, this.type, size);
this.mapObject.disableKeyControls();
this.mapObject.disableDragMap();
//can we do smooth panning? (moveByXY is not an API function)
- if ( !this.mapObject.moveByXY ||
+ if ( !this.mapObject.moveByXY ||
(typeof this.mapObject.moveByXY != "function" ) ) {
this.dragPanMapObject = null;
- }
+ }
} catch(e) {}
},
/**
* Method: onMapResize
- *
+ *
*/
onMapResize: function() {
try {
var size = this.getMapObjectSizeFromOLSize(this.map.getSize());
this.mapObject.resizeTo(size);
- } catch(e) {}
- },
-
-
- /**
+ } catch(e) {}
+ },
+
+
+ /**
* APIMethod: setMap
* Overridden from EventPane because we need to remove this yahoo event
- * pane which prohibits our drag and drop, and we can only do this
+ * pane which prohibits our drag and drop, and we can only do this
* once the map has been loaded and centered.
- *
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -27859,7 +27879,7 @@
this.map.events.register("moveend", this, this.fixYahooEventPane);
},
- /**
+ /**
* Method: fixYahooEventPane
* The map has been centered, so the mysterious yahoo eventpane has been
* added. we remove it so that it doesnt mess with *our* event pane.
@@ -27870,15 +27890,15 @@
if (yahooEventPane.parentNode != null) {
yahooEventPane.parentNode.removeChild(yahooEventPane);
}
- this.map.events.unregister("moveend", this,
+ this.map.events.unregister("moveend", this,
this.fixYahooEventPane);
}
},
- /**
+ /**
* APIMethod: getWarningHTML
- *
- * Returns:
+ *
+ * Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
@@ -27892,7 +27912,7 @@
/* */
/* Translation Functions */
/* */
- /* The following functions translate GMaps and OL */
+ /* The following functions translate GMaps and OL */
/* formats for Pixel, LonLat, Bounds, and Zoom */
/* */
/********************************************************/
@@ -27901,13 +27921,13 @@
//
// TRANSLATION: MapObject Zoom <-> OpenLayers Zoom
//
-
+
/**
* APIMethod: getOLZoomFromMapObjectZoom
- *
+ *
* Parameters:
* gZoom - {Integer}
- *
+ *
* Returns:
* {Integer} An OpenLayers Zoom level, translated from the passed in gZoom
* Returns null if null value is passed in.
@@ -27920,19 +27940,19 @@
}
return zoom;
},
-
+
/**
* APIMethod: getMapObjectZoomFromOLZoom
- *
+ *
* Parameters:
* olZoom - {Integer}
- *
+ *
* Returns:
* {Integer} A MapObject level, translated from the passed in olZoom
* Returns null if null value is passed in
*/
getMapObjectZoomFromOLZoom: function(olZoom) {
- var zoom = null;
+ var zoom = null;
if (olZoom != null) {
zoom = OpenLayers.Layer.FixedZoomLevels.prototype.getMapObjectZoomFromOLZoom.apply(this, [olZoom]);
zoom = 18 - zoom;
@@ -27949,22 +27969,22 @@
// Get&Set Center, Zoom
- /**
+ /**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
- *
+ *
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
- this.mapObject.drawZoomAndCenter(center, zoom);
+ this.mapObject.drawZoomAndCenter(center, zoom);
},
-
+
/**
* APIMethod: getMapObjectCenter
- *
- * Returns:
+ *
+ * Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
@@ -27973,7 +27993,7 @@
/**
* APIMethod: dragPanMapObject
- *
+ *
* Parameters:
* dX - {Integer}
* dY - {Integer}
@@ -27984,10 +28004,10 @@
'y': dY
});
},
-
- /**
+
+ /**
* APIMethod: getMapObjectZoom
- *
+ *
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
@@ -27997,13 +28017,13 @@
// LonLat - Pixel Translation
-
+
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
@@ -28013,10 +28033,10 @@
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
@@ -28033,44 +28053,44 @@
// LonLat
-
+
/**
* APIMethod: getLongitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Lon, moLonLat.Lat).lon :
moLonLat.Lon;
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Lon, moLonLat.Lat).lat :
moLonLat.Lat;
},
/**
* APIMethod: getMapObjectLonLatFromLonLat
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
@@ -28086,13 +28106,13 @@
},
// Pixel
-
+
/**
* APIMethod: getXFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} X value of the MapObject Pixel
*/
@@ -28102,10 +28122,10 @@
/**
* APIMethod: getYFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
@@ -28115,33 +28135,33 @@
/**
* APIMethod: getMapObjectPixelFromXY
- *
+ *
* Parameters:
* x - {Integer}
* y - {Integer}
- *
+ *
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
getMapObjectPixelFromXY: function(x, y) {
return new YCoordPoint(x, y);
},
-
+
// Size
-
+
/**
* APIMethod: getMapObjectSizeFromOLSize
- *
+ *
* Parameters:
* olSize - {<OpenLayers.Size>}
- *
+ *
* Returns:
* {Object} MapObject Size from olSize parameter
*/
getMapObjectSizeFromOLSize: function(olSize) {
return new YSize(olSize.w, olSize.h);
},
-
+
CLASS_NAME: "OpenLayers.Layer.Yahoo"
});
/* ======================================================================
@@ -28189,7 +28209,7 @@
* Example: {'bbox': '5,5,5,5'}
*/
params: null,
-
+
/**
* Property: callback
* {Object} Function to be called when the <read>, <create>,
@@ -28222,7 +28242,7 @@
*
* Valid options include:
* url - {String}
- * headers - {Object}
+ * headers - {Object}
* params - {Object}
* format - {<OpenLayers.Format>}
* callback - {Function}
@@ -28233,7 +28253,7 @@
this.headers = {};
OpenLayers.Protocol.prototype.initialize.apply(this, arguments);
},
-
+
/**
* APIMethod: destroy
* Clean up the protocol.
@@ -28243,7 +28263,7 @@
this.headers = null;
OpenLayers.Protocol.prototype.destroy.apply(this);
},
-
+
/**
* Method: createCallback
* Returns a function that applies the given public method with resp and
@@ -28333,7 +28353,7 @@
handleRead: function(resp, options) {
this.handleResponse(resp, options);
},
-
+
/**
* APIMethod: create
* Construct a request for writing newly created features.
@@ -28346,7 +28366,7 @@
*
* Returns:
* {<OpenLayers.Protocol.Response>} An <OpenLayers.Protocol.Response>
- * object, whose "priv" property references the HTTP request, this
+ * object, whose "priv" property references the HTTP request, this
* object is also passed to the callback function when the request
* completes, its "features" property is then populated with the
* the features received from the server.
@@ -28394,7 +28414,7 @@
*
* Returns:
* {<OpenLayers.Protocol.Response>} An <OpenLayers.Protocol.Response>
- * object, whose "priv" property references the HTTP request, this
+ * object, whose "priv" property references the HTTP request, this
* object is also passed to the callback function when the request
* completes, its "features" property is then populated with the
* the feature received from the server.
@@ -28443,7 +28463,7 @@
*
* Returns:
* {<OpenLayers.Protocol.Response>} An <OpenLayers.Protocol.Response>
- * object, whose "priv" property references the HTTP request, this
+ * object, whose "priv" property references the HTTP request, this
* object is also passed to the callback function when the request
* completes.
*/
@@ -28554,7 +28574,7 @@
commit: function(features, options) {
options = OpenLayers.Util.applyDefaults(options, this.options);
var resp = [], nResponses = 0;
-
+
// Divide up features before issuing any requests. This properly
// counts requests in the event that any responses come in before
// all requests have been issued.
@@ -28568,42 +28588,42 @@
list = types[feature.state];
if(list) {
list.push(feature);
- requestFeatures.push(feature);
+ requestFeatures.push(feature);
}
}
// tally up number of requests
var nRequests = (types[OpenLayers.State.INSERT].length > 0 ? 1 : 0) +
types[OpenLayers.State.UPDATE].length +
types[OpenLayers.State.DELETE].length;
-
+
// This response will be sent to the final callback after all the others
// have been fired.
var success = true;
var finalResponse = new OpenLayers.Protocol.Response({
- reqFeatures: requestFeatures
+ reqFeatures: requestFeatures
});
-
+
function insertCallback(response) {
var len = response.features ? response.features.length : 0;
var fids = new Array(len);
for(var i=0; i<len; ++i) {
fids[i] = response.features[i].fid;
- }
+ }
finalResponse.insertIds = fids;
callback.apply(this, [response]);
}
-
+
function callback(response) {
this.callUserCallback(response, options);
success = success && response.success();
nResponses++;
if (nResponses >= nRequests) {
if (options.callback) {
- finalResponse.code = success ?
+ finalResponse.code = success ?
OpenLayers.Protocol.Response.SUCCESS :
OpenLayers.Protocol.Response.FAILURE;
options.callback.apply(options.scope, [finalResponse]);
- }
+ }
}
}
@@ -28667,7 +28687,7 @@
}
},
- CLASS_NAME: "OpenLayers.Protocol.HTTP"
+ CLASS_NAME: "OpenLayers.Protocol.HTTP"
});
/* ======================================================================
OpenLayers/Style.js
@@ -28695,13 +28715,13 @@
* {String}
*/
name: null,
-
+
/**
* Property: title
* {String} Title of this style (set if included in SLD)
*/
title: null,
-
+
/**
* Property: description
* {String} Description of this style (set if abstract is included in SLD)
@@ -28714,19 +28734,19 @@
* according to the NamedLayer attribute of an SLD document.
*/
layerName: null,
-
+
/**
* APIProperty: isDefault
* {Boolean}
*/
isDefault: false,
-
- /**
- * Property: rules
+
+ /**
+ * Property: rules
* {Array(<OpenLayers.Rule>)}
*/
rules: null,
-
+
/**
* Property: context
* {Object} An optional object with properties that symbolizers' property
@@ -28744,7 +28764,7 @@
* rules defined.
*/
defaultStyle: null,
-
+
/**
* Property: defaultsPerSymbolizer
* {Boolean} If set to true, the <defaultStyle> will extend the symbolizer
@@ -28753,16 +28773,16 @@
* graphic set to true. Default is false.
*/
defaultsPerSymbolizer: false,
-
+
/**
* Property: propertyStyles
* {Hash of Boolean} cache of style properties that need to be parsed for
* propertyNames. Property names are keys, values won't be used.
*/
propertyStyles: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Style
* Creates a UserStyle.
*
@@ -28777,7 +28797,7 @@
* Valid options:
* rules - {Array(<OpenLayers.Rule>)} List of rules to be added to the
* style.
- *
+ *
* Return:
* {<OpenLayers.Style>}
*/
@@ -28796,7 +28816,7 @@
},
- /**
+ /**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -28808,22 +28828,22 @@
this.rules = null;
this.defaultStyle = null;
},
-
+
/**
* Method: createSymbolizer
* creates a style by applying all feature-dependent rules to the base
* style.
- *
+ *
* Parameters:
* feature - {<OpenLayers.Feature>} feature to evaluate rules for
- *
+ *
* Returns:
* {Object} symbolizer hash
*/
createSymbolizer: function(feature) {
var style = this.defaultsPerSymbolizer ? {} : this.createLiterals(
OpenLayers.Util.extend({}, this.defaultStyle), feature);
-
+
var rules = this.rules;
var rule, context;
@@ -28833,7 +28853,7 @@
rule = rules[i];
// does the rule apply?
var applies = rule.evaluate(feature);
-
+
if(applies) {
if(rule instanceof OpenLayers.Rule && rule.elseFilter) {
elseRules.push(rule);
@@ -28843,7 +28863,7 @@
}
}
}
-
+
// if no other rules apply, apply the rules with else filters
if(appliedRules == false && elseRules.length > 0) {
appliedRules = true;
@@ -28856,10 +28876,10 @@
if(rules.length > 0 && appliedRules == false) {
style.display = "none";
}
-
+
return style;
},
-
+
/**
* Method: applySymbolizer
*
@@ -28877,7 +28897,7 @@
OpenLayers.Style.SYMBOLIZER_PREFIXES[0];
var symbolizer = rule.symbolizer[symbolizerPrefix] || rule.symbolizer;
-
+
if(this.defaultsPerSymbolizer === true) {
var defaults = this.defaultStyle;
OpenLayers.Util.applyDefaults(symbolizer, {
@@ -28916,35 +28936,35 @@
return this.createLiterals(
OpenLayers.Util.extend(style, symbolizer), feature);
},
-
+
/**
* Method: createLiterals
* creates literals for all style properties that have an entry in
* <this.propertyStyles>.
- *
+ *
* Parameters:
* style - {Object} style to create literals for. Will be modified
* inline.
* feature - {Object}
- *
+ *
* Returns:
* {Object} the modified style
*/
createLiterals: function(style, feature) {
var context = this.context || feature.attributes || feature.data;
-
+
for (var i in this.propertyStyles) {
style[i] = OpenLayers.Style.createLiteral(style[i], context, feature);
}
return style;
},
-
+
/**
* Method: findPropertyStyles
* Looks into all rules for this style and the defaultStyle to collect
* all the style hash property names containing ${...} strings that have
* to be replaced using the createLiteral method before returning them.
- *
+ *
* Returns:
* {Object} hash of property names that need createLiteral parsing. The
* name of the property is the key, and the value is true;
@@ -28975,15 +28995,15 @@
}
return propertyStyles;
},
-
+
/**
* Method: addPropertyStyles
- *
+ *
* Parameters:
* propertyStyles - {Object} hash to add new property styles to. Will be
* modified inline
* symbolizer - {Object} search this symbolizer for property styles
- *
+ *
* Returns:
* {Object} propertyStyles hash
*/
@@ -28998,11 +29018,11 @@
}
return propertyStyles;
},
-
+
/**
* APIMethod: addRules
* Adds rules to this style.
- *
+ *
* Parameters:
* rules - {Array(<OpenLayers.Rule>)}
*/
@@ -29010,27 +29030,27 @@
this.rules = this.rules.concat(rules);
this.propertyStyles = this.findPropertyStyles();
},
-
+
/**
* APIMethod: setDefaultStyle
* Sets the default style for this style object.
- *
+ *
* Parameters:
* style - {Object} Hash of style properties
*/
setDefaultStyle: function(style) {
- this.defaultStyle = style;
+ this.defaultStyle = style;
this.propertyStyles = this.findPropertyStyles();
},
-
+
/**
* Method: getSymbolizerPrefix
* Returns the correct symbolizer prefix according to the
* geometry type of the passed geometry
- *
+ *
* Parameters:
* geometry {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {String} key of the according symbolizer
*/
@@ -29042,7 +29062,7 @@
}
}
},
-
+
CLASS_NAME: "OpenLayers.Style"
});
@@ -29051,7 +29071,7 @@
* Function: createLiteral
* converts a style value holding a combination of PropertyName and Literal
* into a Literal, taking the property values from the passed features.
- *
+ *
* Parameters:
* value - {String} value to parse. If this string contains a construct like
* "foo ${bar}", then "foo " will be taken as literal, and "${bar}"
@@ -29060,7 +29080,7 @@
* context - {Object} context to take attribute values from
* feature - {OpenLayers.Feature.Vector} The feature that will be passed
* to <OpenLayers.String.format> for evaluating functions in the context.
- *
+ *
* Returns:
* {String} the parsed value. In the example of the value parameter above, the
* result would be "foo valueOfBar", assuming that the passed feature has an
@@ -29073,7 +29093,7 @@
}
return value;
};
-
+
/**
* Constant: OpenLayers.Style.SYMBOLIZER_PREFIXES
* {Array} prefixes of the sld symbolizers. These are the
@@ -29098,21 +29118,21 @@
/**
* Class: OpenLayers.Control.Navigation
* The navigation control handles map browsing with mouse events (dragging,
- * double-clicking, and scrolling the wheel). Create a new navigation
- * control with the <OpenLayers.Control.Navigation> control.
- *
- * Note that this control is added to the map by default (if no controls
- * array is sent in the options object to the <OpenLayers.Map>
+ * double-clicking, and scrolling the wheel). Create a new navigation
+ * control with the <OpenLayers.Control.Navigation> control.
+ *
+ * Note that this control is added to the map by default (if no controls
+ * array is sent in the options object to the <OpenLayers.Map>
* constructor).
- *
+ *
* Inherits:
* - <OpenLayers.Control>
*/
OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
- /**
+ /**
* Property: dragPan
- * {<OpenLayers.Control.DragPan>}
+ * {<OpenLayers.Control.DragPan>}
*/
dragPan: null,
@@ -29122,7 +29142,7 @@
*/
dragPanOptions: null,
- /**
+ /**
* Property: zoomBox
* {<OpenLayers.Control.ZoomBox>}
*/
@@ -29132,7 +29152,7 @@
* APIProperty: zoomWheelEnabled
* {Boolean} Whether the mousewheel should zoom the map
*/
- zoomWheelEnabled: true,
+ zoomWheelEnabled: true,
/**
* APIProperty: handleRightClicks
@@ -29143,18 +29163,18 @@
/**
* APIProperty: zoomBoxKeyMask
* {Integer} <OpenLayers.Handler> key code of the key, which has to be
- * pressed, while drawing the zoom box with the mouse on the screen.
+ * pressed, while drawing the zoom box with the mouse on the screen.
* You should probably set handleRightClicks to true if you use this
* with MOD_CTRL, to disable the context menu for machines which use
* CTRL-Click as a right click.
* Default: <OpenLayers.Handler.MOD_SHIFT
*/
zoomBoxKeyMask: OpenLayers.Handler.MOD_SHIFT,
-
+
/**
* Constructor: OpenLayers.Control.Navigation
* Create a new navigation control
- *
+ *
* Parameters:
* options - {Object} An optional object whose properties will be set on
* the control
@@ -29184,7 +29204,7 @@
this.zoomBox = null;
OpenLayers.Control.prototype.destroy.apply(this,arguments);
},
-
+
/**
* Method: activate
*/
@@ -29192,7 +29212,7 @@
this.dragPan.activate();
if (this.zoomWheelEnabled) {
this.handlers.wheel.activate();
- }
+ }
this.handlers.click.activate();
this.zoomBox.activate();
return OpenLayers.Control.prototype.activate.apply(this,arguments);
@@ -29208,7 +29228,7 @@
this.handlers.wheel.deactivate();
return OpenLayers.Control.prototype.deactivate.apply(this,arguments);
},
-
+
/**
* Method: draw
*/
@@ -29218,12 +29238,12 @@
this.map.viewPortDiv.oncontextmenu = function () { return false;};
}
- var clickCallbacks = {
- 'dblclick': this.defaultDblClick,
- 'dblrightclick': this.defaultDblRightClick
+ var clickCallbacks = {
+ 'dblclick': this.defaultDblClick,
+ 'dblrightclick': this.defaultDblRightClick
};
var clickOptions = {
- 'double': true,
+ 'double': true,
'stopDouble': true
};
this.handlers.click = new OpenLayers.Handler.Click(
@@ -29243,29 +29263,29 @@
},
/**
- * Method: defaultDblClick
- *
+ * Method: defaultDblClick
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
defaultDblClick: function (evt) {
- var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
+ var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
this.map.setCenter(newCenter, this.map.zoom + 1);
},
/**
- * Method: defaultDblRightClick
- *
+ * Method: defaultDblRightClick
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
defaultDblRightClick: function (evt) {
- var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
+ var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
this.map.setCenter(newCenter, this.map.zoom - 1);
},
-
+
/**
- * Method: wheelChange
+ * Method: wheelChange
*
* Parameters:
* evt - {Event}
@@ -29287,10 +29307,10 @@
this.map.setCenter( newCenter, newZoom );
},
- /**
+ /**
* Method: wheelUp
* User spun scroll wheel up
- *
+ *
* Parameters:
* evt - {Event}
*/
@@ -29298,35 +29318,35 @@
this.wheelChange(evt, 1);
},
- /**
+ /**
* Method: wheelDown
* User spun scroll wheel down
- *
+ *
* Parameters:
* evt - {Event}
*/
wheelDown: function(evt) {
this.wheelChange(evt, -1);
},
-
+
/**
* Method: disableZoomWheel
*/
-
+
disableZoomWheel : function() {
this.zoomWheelEnabled = false;
- this.handlers.wheel.deactivate();
+ this.handlers.wheel.deactivate();
},
-
+
/**
* Method: enableZoomWheel
*/
-
+
enableZoomWheel : function() {
this.zoomWheelEnabled = true;
if (this.active) {
this.handlers.wheel.activate();
- }
+ }
},
CLASS_NAME: "OpenLayers.Control.Navigation"
@@ -29338,7 +29358,7 @@
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the Clear BSD
* license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the
* full text of the license. */
-
+
/**
* @requires OpenLayers/Format/WKT.js
* @requires OpenLayers/Feature/Vector.js
@@ -29366,19 +29386,19 @@
parent: null,
/**
- * Property: bounds
+ * Property: bounds
* {<OpenLayers.Bounds>} The bounds of this geometry
*/
bounds: null,
/**
* Constructor: OpenLayers.Geometry
- * Creates a geometry object.
+ * Creates a geometry object.
*/
initialize: function() {
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME+ "_");
},
-
+
/**
* Method: destroy
* Destroy this geometry.
@@ -29387,31 +29407,31 @@
this.id = null;
this.bounds = null;
},
-
+
/**
* APIMethod: clone
* Create a clone of this geometry. Does not set any non-standard
* properties of the cloned geometry.
- *
+ *
* Returns:
* {<OpenLayers.Geometry>} An exact clone of this geometry.
*/
clone: function() {
return new OpenLayers.Geometry();
},
-
+
/**
* Set the bounds for this Geometry.
- *
+ *
* Parameters:
- * object - {<OpenLayers.Bounds>}
+ * object - {<OpenLayers.Bounds>}
*/
setBounds: function(bounds) {
if (bounds) {
this.bounds = bounds.clone();
}
},
-
+
/**
* Method: clearBounds
* Nullify this components bounds and that of its parent as well.
@@ -29420,16 +29440,16 @@
this.bounds = null;
if (this.parent) {
this.parent.clearBounds();
- }
+ }
},
-
+
/**
* Method: extendBounds
- * Extend the existing bounds to include the new bounds.
+ * Extend the existing bounds to include the new bounds.
* If geometry's bounds is not yet set, then set a new Bounds.
- *
+ *
* Parameters:
- * newBounds - {<OpenLayers.Bounds>}
+ * newBounds - {<OpenLayers.Bounds>}
*/
extendBounds: function(newBounds){
var bounds = this.getBounds();
@@ -29439,12 +29459,12 @@
this.bounds.extend(newBounds);
}
},
-
+
/**
* APIMethod: getBounds
- * Get the bounds for this Geometry. If bounds is not set, it
+ * Get the bounds for this Geometry. If bounds is not set, it
* is calculated again, this makes queries faster.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
@@ -29454,17 +29474,17 @@
}
return this.bounds;
},
-
- /**
+
+ /**
* APIMethod: calculateBounds
- * Recalculate the bounds for the geometry.
+ * Recalculate the bounds for the geometry.
*/
calculateBounds: function() {
//
// This should be overridden by subclasses.
//
},
-
+
/**
* APIMethod: distanceTo
* Calculate the closest distance between two geometries (on the x-y plane).
@@ -29475,7 +29495,7 @@
* calculation.
*
* Valid options depend on the specific geometry type.
- *
+ *
* Returns:
* {Number | Object} The distance between this geometry and the target.
* If details is true, the return will be an object with distance,
@@ -29486,7 +29506,7 @@
*/
distanceTo: function(geometry, options) {
},
-
+
/**
* APIMethod: getVertices
* Return a list of all points in this geometry.
@@ -29505,14 +29525,14 @@
/**
* Method: atPoint
- * Note - This is only an approximation based on the bounds of the
+ * Note - This is only an approximation based on the bounds of the
* geometry.
- *
+ *
* Parameters:
- * lonlat - {<OpenLayers.LonLat>}
+ * lonlat - {<OpenLayers.LonLat>}
* toleranceLon - {float} Optional tolerance in Geometric Coords
* toleranceLat - {float} Optional tolerance in Geographic Coords
- *
+ *
* Returns:
* {Boolean} Whether or not the geometry is at the specified location
*/
@@ -29523,8 +29543,8 @@
var dX = (toleranceLon != null) ? toleranceLon : 0;
var dY = (toleranceLat != null) ? toleranceLat : 0;
-
- var toleranceBounds =
+
+ var toleranceBounds =
new OpenLayers.Bounds(this.bounds.left - dX,
this.bounds.bottom - dY,
this.bounds.right + dX,
@@ -29534,12 +29554,12 @@
}
return atPoint;
},
-
+
/**
* Method: getLength
* Calculate the length of this geometry. This method is defined in
* subclasses.
- *
+ *
* Returns:
* {Float} The length of the collection by summing its parts
*/
@@ -29552,7 +29572,7 @@
/**
* Method: getArea
* Calculate the area of this geometry. This method is defined in subclasses.
- *
+ *
* Returns:
* {Float} The area of the collection by summing its parts
*/
@@ -29561,7 +29581,7 @@
//
return 0.0;
},
-
+
/**
* APIMethod: getCentroid
* Calculate the centroid of this geometry. This method is defined in subclasses.
@@ -29619,7 +29639,7 @@
}
return geom;
};
-
+
/**
* Method: OpenLayers.Geometry.segmentsIntersect
* Determine whether two line segments intersect. Optionally calculates
@@ -29718,7 +29738,7 @@
}
}
}
-
+
}
} else {
// no calculated intersection, but segments could be within
@@ -29813,52 +29833,52 @@
*/
OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
- /**
+ /**
* APIProperty: isBaseLayer
* {Boolean} Treat this layer as a base layer. Default is true.
**/
isBaseLayer: true,
-
+
/**
* APIProperty: useHttpTile
- * {Boolean} use a tile cache exposed directly via a webserver rather than the
- * via mapguide server. This does require extra configuration on the Mapguide Server,
- * and will only work when singleTile is false. The url for the layer must be set to the
- * webserver path rather than the Mapguide mapagent.
- * See http://trac.osgeo.org/mapguide/wiki/CodeSamples/Tiles/ServingTilesViaHttp
+ * {Boolean} use a tile cache exposed directly via a webserver rather than the
+ * via mapguide server. This does require extra configuration on the Mapguide Server,
+ * and will only work when singleTile is false. The url for the layer must be set to the
+ * webserver path rather than the Mapguide mapagent.
+ * See http://trac.osgeo.org/mapguide/wiki/CodeSamples/Tiles/ServingTilesViaHttp
**/
useHttpTile: false,
-
- /**
+
+ /**
* APIProperty: singleTile
- * {Boolean} use tile server or request single tile image.
+ * {Boolean} use tile server or request single tile image.
**/
singleTile: false,
-
- /**
+
+ /**
* APIProperty: useOverlay
* {Boolean} flag to indicate if the layer should be retrieved using
* GETMAPIMAGE (default) or using GETDYNAMICOVERLAY requests.
**/
useOverlay: false,
-
- /**
+
+ /**
* APIProperty: useAsyncOverlay
- * {Boolean} indicates if the MapGuide site supports the asynchronous
+ * {Boolean} indicates if the MapGuide site supports the asynchronous
* GETDYNAMICOVERLAY requests which is available in MapGuide Enterprise 2010
- * and MapGuide Open Source v2.0.3 or higher. The newer versions of MG
- * is called asynchronously, allows selections to be drawn separately from
+ * and MapGuide Open Source v2.0.3 or higher. The newer versions of MG
+ * is called asynchronously, allows selections to be drawn separately from
* the map and offers styling options.
- *
+ *
* With older versions of MapGuide, set useAsyncOverlay=false. Note that in
* this case a synchronous AJAX call is issued and the mapname and session
* parameters must be used to initialize the layer, not the mapdefinition
- * parameter. Also note that this will issue a synchronous AJAX request
+ * parameter. Also note that this will issue a synchronous AJAX request
* before the image request can be issued so the users browser may lock
* up if the MG Web tier does not respond in a timely fashion.
**/
useAsyncOverlay: true,
-
+
/**
* Constant: TILE_PARAMS
* {Object} Hashtable of default parameter key/value pairs for tiled layer
@@ -29879,7 +29899,7 @@
clip: '1',
version: '1.0.0'
},
-
+
/**
* Constant: OVERLAY_PARAMS
* {Object} Hashtable of default parameter key/value pairs for untiled layer
@@ -29891,11 +29911,11 @@
clip: '1',
version: '2.0.0'
},
-
- /**
+
+ /**
* Constant: FOLDER_PARAMS
- * {Object} Hashtable of parameter key/value pairs which describe
- * the folder structure for tiles as configured in the mapguide
+ * {Object} Hashtable of parameter key/value pairs which describe
+ * the folder structure for tiles as configured in the mapguide
* serverconfig.ini section [TileServiceProperties]
*/
FOLDER_PARAMS: {
@@ -29903,9 +29923,9 @@
tileRowsPerFolder: 30,
format: 'png',
querystring: null
- },
+ },
- /**
+ /**
* Property: defaultSize
* {<OpenLayers.Size>} Tile size as produced by MapGuide server
**/
@@ -29913,21 +29933,21 @@
/**
* Constructor: OpenLayers.Layer.MapGuide
- * Create a new Mapguide layer, either tiled or untiled.
+ * Create a new Mapguide layer, either tiled or untiled.
*
- * For tiled layers, the 'groupName' and 'mapDefinition' values
+ * For tiled layers, the 'groupName' and 'mapDefinition' values
* must be specified as parameters in the constructor.
*
* For untiled base layers, specify either combination of 'mapName' and
- * 'session', or 'mapDefinition' and 'locale'.
+ * 'session', or 'mapDefinition' and 'locale'.
*
- * For older versions of MapGuide and overlay layers, set useAsyncOverlay
- * to false and in this case mapName and session are required parameters
+ * For older versions of MapGuide and overlay layers, set useAsyncOverlay
+ * to false and in this case mapName and session are required parameters
* for the constructor.
*
- * NOTE: MapGuide OS uses a DPI value and degrees to meters conversion
- * factor that are different than the defaults used in OpenLayers,
- * so these must be adjusted accordingly in your application.
+ * NOTE: MapGuide OS uses a DPI value and degrees to meters conversion
+ * factor that are different than the defaults used in OpenLayers,
+ * so these must be adjusted accordingly in your application.
* See the MapGuide example for how to set these values for MGOS.
*
* Parameters:
@@ -29936,14 +29956,14 @@
* (e.g. http://localhost:8008/mapguide/mapagent/mapagent.fcgi)
* params - {Object} hashtable of additional parameters to use. Some
* parameters may require additional code on the server. The ones that
- * you may want to use are:
+ * you may want to use are:
* - mapDefinition - {String} The MapGuide resource definition
* (e.g. Library://Samples/Gmap/Maps/gmapTiled.MapDefinition)
- * - locale - Locale setting
+ * - locale - Locale setting
* (for untiled overlays layers only)
* - mapName - {String} Name of the map as stored in the MapGuide session.
* (for untiled layers with a session parameter only)
- * - session - { String} MapGuide session ID
+ * - session - { String} MapGuide session ID
* (for untiled overlays layers only)
* - basemaplayergroupname - {String} GroupName for tiled MapGuide layers only
* - format - Image format to be returned (for untiled overlay layers only)
@@ -29957,24 +29977,24 @@
* groups to hide eg: 'cvc-xcv34,453-345-345sdf'
* - selectionXml - {String} A selection xml string Some server plumbing
* is required to read such a value.
- * options - {Ojbect} Hashtable of extra options to tag onto the layer;
+ * options - {Ojbect} Hashtable of extra options to tag onto the layer;
* will vary depending if tiled or untiled maps are being requested
*/
initialize: function(name, url, params, options) {
-
+
OpenLayers.Layer.Grid.prototype.initialize.apply(this, arguments);
-
- // unless explicitly set in options, if the layer is transparent,
+
+ // unless explicitly set in options, if the layer is transparent,
// it will be an overlay
if (options == null || options.isBaseLayer == null) {
- this.isBaseLayer = ((this.transparent != "true") &&
+ this.isBaseLayer = ((this.transparent != "true") &&
(this.transparent != true));
}
if (options && options.useOverlay!=null) {
this.useOverlay = options.useOverlay;
}
-
+
//initialize for untiled layers
if (this.singleTile) {
if (this.useOverlay) {
@@ -29990,7 +30010,7 @@
this.params,
this.SINGLE_TILE_PARAMS
);
- }
+ }
} else {
//initialize for tiled layers
if (this.useHttpTile) {
@@ -30004,7 +30024,7 @@
this.TILE_PARAMS
);
}
- this.setTileSize(this.defaultSize);
+ this.setTileSize(this.defaultSize);
}
},
@@ -30030,17 +30050,17 @@
/**
* Method: addTile
- * Creates a tile, initializes it, and adds it to the layer div.
+ * Creates a tile, initializes it, and adds it to the layer div.
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* position - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
*/
addTile:function(bounds,position) {
- return new OpenLayers.Tile.Image(this, position, bounds,
+ return new OpenLayers.Tile.Image(this, position, bounds,
null, this.tileSize);
},
@@ -30049,12 +30069,12 @@
* Return a query string for this layer
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
+ * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
* for the request
*
* Returns:
- * {String} A string with the layer's url and parameters and also
- * the passed-in bounds and appropriate tile size specified
+ * {String} A string with the layer's url and parameters and also
+ * the passed-in bounds and appropriate tile size specified
* as parameters.
*/
getURL: function (bounds) {
@@ -30073,7 +30093,7 @@
setviewcentery: center.lat,
setviewscale: this.map.getScale()
};
-
+
if (this.useOverlay && !this.useAsyncOverlay) {
//first we need to call GETVISIBLEMAPEXTENT to set the extent
var getVisParams = {};
@@ -30084,7 +30104,7 @@
getVisParams.mapName = this.params.mapName;
getVisParams.format = 'text/xml';
url = this.getFullRequestString( getVisParams );
-
+
OpenLayers.Request.GET({url: url, async: false});
}
//construct the full URL
@@ -30099,13 +30119,13 @@
rowidx = Math.round(rowidx/this.tileSize.h);
if (this.useHttpTile){
- url = this.getImageFilePath(
+ url = this.getImageFilePath(
{
tilecol: colidx,
tilerow: rowidx,
scaleindex: this.resolutions.length - this.map.zoom - 1
});
-
+
} else {
url = this.getFullRequestString(
{
@@ -30120,7 +30140,7 @@
/**
* Method: getFullRequestString
- * getFullRequestString on MapGuide layers is special, because we
+ * getFullRequestString on MapGuide layers is special, because we
* do a regular expression replace on ',' in parameters to '+'.
* This is why it is subclassed here.
*
@@ -30133,17 +30153,17 @@
getFullRequestString:function(newParams, altUrl) {
// use layer's url unless altUrl passed in
var url = (altUrl == null) ? this.url : altUrl;
-
- // if url is not a string, it should be an array of strings,
+
+ // if url is not a string, it should be an array of strings,
// in which case we will randomly select one of them in order
// to evenly distribute requests to different urls.
if (typeof url == "object") {
url = url[Math.floor(Math.random()*url.length)];
- }
+ }
// requestString always starts with url
- var requestString = url;
+ var requestString = url;
- // create a new params hashtable with all the layer params and the
+ // create a new params hashtable with all the layer params and the
// new params together. then convert to string
var allParams = OpenLayers.Util.extend({}, this.params);
allParams = OpenLayers.Util.extend(allParams, newParams);
@@ -30156,7 +30176,7 @@
}
}
var paramsString = OpenLayers.Util.getParameterString(allParams);
-
+
/* MapGuide needs '+' seperating things like bounds/height/width.
Since typically this is URL encoded, we use a slight hack: we
depend on the list-like functionality of getParameterString to
@@ -30164,7 +30184,7 @@
encoded) then do a regular expression replace on the , characters
to '+' */
paramsString = paramsString.replace(/,/g, "+");
-
+
if (paramsString != "") {
var lastServerChar = url.charAt(url.length - 1);
if ((lastServerChar == "&") || (lastServerChar == "?")) {
@@ -30182,9 +30202,9 @@
return requestString;
},
- /**
+ /**
* Method: getImageFilePath
- * special handler to request mapguide tiles from an http exposed tilecache
+ * special handler to request mapguide tiles from an http exposed tilecache
*
* Parameters:
* altUrl - {String} Alternative base URL to use.
@@ -30195,58 +30215,58 @@
getImageFilePath:function(newParams, altUrl) {
// use layer's url unless altUrl passed in
var url = (altUrl == null) ? this.url : altUrl;
-
- // if url is not a string, it should be an array of strings,
+
+ // if url is not a string, it should be an array of strings,
// in which case we will randomly select one of them in order
// to evenly distribute requests to different urls.
if (typeof url == "object") {
url = url[Math.floor(Math.random()*url.length)];
- }
+ }
// requestString always starts with url
- var requestString = url;
+ var requestString = url;
var tileRowGroup = "";
var tileColGroup = "";
-
+
if (newParams.tilerow < 0) {
tileRowGroup = '-';
}
-
+
if (newParams.tilerow == 0 ) {
tileRowGroup += '0';
} else {
tileRowGroup += Math.floor(Math.abs(newParams.tilerow/this.params.tileRowsPerFolder)) * this.params.tileRowsPerFolder;
}
-
+
if (newParams.tilecol < 0) {
tileColGroup = '-';
}
-
+
if (newParams.tilecol == 0) {
tileColGroup += '0';
} else {
tileColGroup += Math.floor(Math.abs(newParams.tilecol/this.params.tileColumnsPerFolder)) * this.params.tileColumnsPerFolder;
- }
-
+ }
+
var tilePath = '/S' + Math.floor(newParams.scaleindex)
+ '/' + this.params.basemaplayergroupname
+ '/R' + tileRowGroup
+ '/C' + tileColGroup
- + '/' + (newParams.tilerow % this.params.tileRowsPerFolder)
- + '_' + (newParams.tilecol % this.params.tileColumnsPerFolder)
+ + '/' + (newParams.tilerow % this.params.tileRowsPerFolder)
+ + '_' + (newParams.tilecol % this.params.tileColumnsPerFolder)
+ '.' + this.params.format;
-
+
if (this.params.querystring) {
tilePath += "?" + this.params.querystring;
}
-
+
requestString += tilePath;
return requestString;
},
-
- /**
+
+ /**
* Method: calculateGridLayout
- * Generate parameters for the grid layout. This
+ * Generate parameters for the grid layout. This
*
* Parameters:
* bounds - {<OpenLayers.Bound>}
@@ -30260,26 +30280,26 @@
calculateGridLayout: function(bounds, extent, resolution) {
var tilelon = resolution * this.tileSize.w;
var tilelat = resolution * this.tileSize.h;
-
+
var offsetlon = bounds.left - extent.left;
var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
var tilecolremain = offsetlon/tilelon - tilecol;
var tileoffsetx = -tilecolremain * this.tileSize.w;
var tileoffsetlon = extent.left + tilecol * tilelon;
-
- var offsetlat = extent.top - bounds.top + tilelat;
+
+ var offsetlat = extent.top - bounds.top + tilelat;
var tilerow = Math.floor(offsetlat/tilelat) - this.buffer;
var tilerowremain = tilerow - offsetlat/tilelat;
var tileoffsety = tilerowremain * this.tileSize.h;
var tileoffsetlat = extent.top - tilelat*tilerow;
-
- return {
+
+ return {
tilelon: tilelon, tilelat: tilelat,
tileoffsetlon: tileoffsetlon, tileoffsetlat: tileoffsetlat,
tileoffsetx: tileoffsetx, tileoffsety: tileoffsety
};
},
-
+
CLASS_NAME: "OpenLayers.Layer.MapGuide"
});
/* ======================================================================
@@ -30306,7 +30326,7 @@
/**
* Constant: DEFAULT_PARAMS
- * {Object} Hashtable of default parameter key/value pairs
+ * {Object} Hashtable of default parameter key/value pairs
*/
DEFAULT_PARAMS: {
mode: "map",
@@ -30334,10 +30354,10 @@
this.params, this.DEFAULT_PARAMS
);
- // unless explicitly set in options, if the layer is transparent,
+ // unless explicitly set in options, if the layer is transparent,
// it will be an overlay
if (options == null || options.isBaseLayer == null) {
- this.isBaseLayer = ((this.params.transparent != "true") &&
+ this.isBaseLayer = ((this.params.transparent != "true") &&
(this.params.transparent != true));
}
},
@@ -30366,41 +30386,41 @@
/**
* Method: addTile
- * Creates a tile, initializes it, and adds it to the layer div.
+ * Creates a tile, initializes it, and adds it to the layer div.
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* position - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
*/
addTile:function(bounds,position) {
- return new OpenLayers.Tile.Image(this, position, bounds,
+ return new OpenLayers.Tile.Image(this, position, bounds,
null, this.tileSize);
},
-
+
/**
* Method: getURL
* Return a query string for this layer
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
+ * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
* for the request
*
* Returns:
- * {String} A string with the layer's url and parameters and also
- * the passed-in bounds and appropriate tile size specified
+ * {String} A string with the layer's url and parameters and also
+ * the passed-in bounds and appropriate tile size specified
* as parameters.
*/
getURL: function (bounds) {
bounds = this.adjustBounds(bounds);
- // Make a list, so that getFullRequestString uses literal ","
+ // Make a list, so that getFullRequestString uses literal ","
var extent = [bounds.left, bounds. bottom, bounds.right, bounds.top];
- var imageSize = this.getImageSize();
-
- // make lists, so that literal ','s are used
+ var imageSize = this.getImageSize();
+
+ // make lists, so that literal ','s are used
var url = this.getFullRequestString(
{mapext: extent,
imgext: extent,
@@ -30409,40 +30429,40 @@
imgy: imageSize.h / 2,
imgxy: [imageSize.w, imageSize.h]
});
-
+
return url;
},
-
- /**
+
+ /**
* Method: getFullRequestString
- * combine the layer's url with its params and these newParams.
- *
+ * combine the layer's url with its params and these newParams.
+ *
* Parameter:
- * newParams - {Object} New parameters that should be added to the
+ * newParams - {Object} New parameters that should be added to the
* request string.
- * altUrl - {String} (optional) Replace the URL in the full request
+ * altUrl - {String} (optional) Replace the URL in the full request
* string with the provided URL.
- *
- * Returns:
+ *
+ * Returns:
* {String} A string with the layer's url and parameters embedded in it.
*/
getFullRequestString:function(newParams, altUrl) {
// use layer's url unless altUrl passed in
var url = (altUrl == null) ? this.url : altUrl;
-
- // create a new params hashtable with all the layer params and the
+
+ // create a new params hashtable with all the layer params and the
// new params together. then convert to string
var allParams = OpenLayers.Util.extend({}, this.params);
allParams = OpenLayers.Util.extend(allParams, newParams);
var paramsString = OpenLayers.Util.getParameterString(allParams);
-
- // if url is not a string, it should be an array of strings,
- // in which case we will deterministically select one of them in
+
+ // if url is not a string, it should be an array of strings,
+ // in which case we will deterministically select one of them in
// order to evenly distribute requests to different urls.
if (url instanceof Array) {
url = this.selectUrl(paramsString, url);
- }
-
+ }
+
// ignore parameters that are already in the url search string
var urlParams = OpenLayers.Util.upperCaseObject(
OpenLayers.Util.getParameters(url));
@@ -30452,9 +30472,9 @@
}
}
paramsString = OpenLayers.Util.getParameterString(allParams);
-
+
// requestString always starts with url
- var requestString = url;
+ var requestString = url;
// MapServer needs '+' seperating things like bounds/height/width.
// Since typically this is URL encoded, we use a slight hack: we
@@ -30464,7 +30484,7 @@
// to '+'
//
paramsString = paramsString.replace(/,/g, "+");
-
+
if (paramsString != "") {
var lastServerChar = url.charAt(url.length - 1);
if ((lastServerChar == "&") || (lastServerChar == "?")) {
@@ -30503,7 +30523,7 @@
* Instances of OpenLayers.Layer.WMS are used to display data from OGC Web
* Mapping Services. Create a new WMS layer with the <OpenLayers.Layer.WMS>
* constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.Grid>
*/
@@ -30511,7 +30531,7 @@
/**
* Constant: DEFAULT_PARAMS
- * {Object} Hashtable of default parameter key/value pairs
+ * {Object} Hashtable of default parameter key/value pairs
*/
DEFAULT_PARAMS: { service: "WMS",
version: "1.1.1",
@@ -30520,48 +30540,48 @@
exceptions: "application/vnd.ogc.se_inimage",
format: "image/jpeg"
},
-
+
/**
* Property: reproject
* *Deprecated*. See http://trac.openlayers.org/wiki/SphericalMercator
- * for information on the replacement for this functionality.
+ * for information on the replacement for this functionality.
* {Boolean} Try to reproject this layer if its coordinate reference system
- * is different than that of the base layer. Default is true.
- * Set this in the layer options. Should be set to false in
+ * is different than that of the base layer. Default is true.
+ * Set this in the layer options. Should be set to false in
* most cases.
*/
reproject: false,
-
+
/**
* APIProperty: isBaseLayer
* {Boolean} Default is true for WMS layer
*/
isBaseLayer: true,
-
+
/**
* APIProperty: encodeBBOX
- * {Boolean} Should the BBOX commas be encoded? The WMS spec says 'no',
+ * {Boolean} Should the BBOX commas be encoded? The WMS spec says 'no',
* but some services want it that way. Default false.
*/
encodeBBOX: false,
-
- /**
- * APIProperty: noMagic
- * {Boolean} If true, the image format will not be automagicaly switched
- * from image/jpeg to image/png or image/gif when using
- * TRANSPARENT=TRUE. Also isBaseLayer will not changed by the
- * constructor. Default false.
- */
- noMagic: false,
-
+
/**
+ * APIProperty: noMagic
+ * {Boolean} If true, the image format will not be automagicaly switched
+ * from image/jpeg to image/png or image/gif when using
+ * TRANSPARENT=TRUE. Also isBaseLayer will not changed by the
+ * constructor. Default false.
+ */
+ noMagic: false,
+
+ /**
* Constructor: OpenLayers.Layer.WMS
* Create a new WMS layer object
*
* Example:
* (code)
* var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
- * "http://wms.jpl.nasa.gov/wms.cgi",
+ * "http://wms.jpl.nasa.gov/wms.cgi",
* {layers: "modis,global_mosaic"});
* (end)
*
@@ -30580,21 +30600,21 @@
newArguments.push(name, url, params, options);
OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
OpenLayers.Util.applyDefaults(
- this.params,
+ this.params,
OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)
);
- //layer is transparent
- if (!this.noMagic && this.params.TRANSPARENT &&
+ //layer is transparent
+ if (!this.noMagic && this.params.TRANSPARENT &&
this.params.TRANSPARENT.toString().toLowerCase() == "true") {
-
+
// unless explicitly set in options, make layer an overlay
if ( (options == null) || (!options.isBaseLayer) ) {
this.isBaseLayer = false;
- }
-
- // jpegs can never be transparent, so intelligently switch the
+ }
+
+ // jpegs can never be transparent, so intelligently switch the
// format, depending on teh browser's capabilities
if (this.params.FORMAT == "image/jpeg") {
this.params.FORMAT = OpenLayers.Util.alphaHack() ? "image/gif"
@@ -30602,18 +30622,18 @@
}
}
- },
+ },
/**
* Method: destroy
* Destroy this layer
*/
destroy: function() {
- // for now, nothing special to do here.
- OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);
+ // for now, nothing special to do here.
+ OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: clone
* Create a clone of this layer
@@ -30622,7 +30642,7 @@
* {<OpenLayers.Layer.WMS>} An exact clone of this layer
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer.WMS(this.name,
this.url,
@@ -30636,8 +30656,8 @@
// copy/set any non-init, non-simple values here
return obj;
- },
-
+ },
+
/**
* Method: getURL
* Return a GetMap query string for this layer
@@ -30648,13 +30668,13 @@
*
* Returns:
* {String} A string with the layer's url and parameters and also the
- * passed-in bounds and appropriate tile size specified as
+ * passed-in bounds and appropriate tile size specified as
* parameters.
*/
getURL: function (bounds) {
bounds = this.adjustBounds(bounds);
-
- var imageSize = this.getImageSize();
+
+ var imageSize = this.getImageSize();
var newParams = {
'BBOX': this.encodeBBOX ? bounds.toBBOX() : bounds.toArray(),
'WIDTH': imageSize.w,
@@ -30666,17 +30686,17 @@
/**
* Method: addTile
- * addTile creates a tile, initializes it, and adds it to the layer div.
+ * addTile creates a tile, initializes it, and adds it to the layer div.
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* position - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
*/
addTile:function(bounds,position) {
- return new OpenLayers.Tile.Image(this, position, bounds,
+ return new OpenLayers.Tile.Image(this, position, bounds,
null, this.tileSize);
},
@@ -30684,34 +30704,34 @@
* APIMethod: mergeNewParams
* Catch changeParams and uppercase the new params to be merged in
* before calling changeParams on the super class.
- *
+ *
* Once params have been changed, the tiles will be reloaded with
* the new parameters.
- *
+ *
* Parameters:
* newParams - {Object} Hashtable of new params to use
*/
mergeNewParams:function(newParams) {
var upperParams = OpenLayers.Util.upperCaseObject(newParams);
var newArguments = [upperParams];
- return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,
+ return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,
newArguments);
},
- /**
+ /**
* APIMethod: getFullRequestString
- * Combine the layer's url with its params and these newParams.
- *
+ * Combine the layer's url with its params and these newParams.
+ *
* Add the SRS parameter from projection -- this is probably
- * more eloquently done via a setProjection() method, but this
+ * more eloquently done via a setProjection() method, but this
* works for now and always.
*
* Parameters:
* newParams - {Object}
* altUrl - {String} Use this as the url instead of the layer's url
- *
+ *
* Returns:
- * {String}
+ * {String}
*/
getFullRequestString:function(newParams, altUrl) {
var projectionCode = this.map.getProjection();
@@ -30728,7 +30748,7 @@
====================================================================== */
/* Copyright (c) 2006 MetaCarta, Inc., published under a modified BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
* for the full text of the license. */
@@ -30742,25 +30762,25 @@
* This class represents an SLD Rule, as being used for rule-based SLD styling.
*/
OpenLayers.Rule = OpenLayers.Class({
-
+
/**
* Property: id
* {String} A unique id for this session.
*/
id: null,
-
+
/**
* APIProperty: name
* {String} name of this rule
*/
name: 'default',
-
+
/**
* Property: title
* {String} Title of this rule (set if included in SLD)
*/
title: null,
-
+
/**
* Property: description
* {String} Description of this rule (set if abstract is included in SLD)
@@ -30774,7 +30794,7 @@
* be used.
*/
context: null,
-
+
/**
* Property: filter
* {<OpenLayers.Filter>} Optional filter for the rule.
@@ -30784,13 +30804,13 @@
/**
* Property: elseFilter
* {Boolean} Determines whether this rule is only to be applied only if
- * no other rules match (ElseFilter according to the SLD specification).
+ * no other rules match (ElseFilter according to the SLD specification).
* Default is false. For instances of OpenLayers.Rule, if elseFilter is
- * false, the rule will always apply. For subclasses, the else property is
+ * false, the rule will always apply. For subclasses, the else property is
* ignored.
*/
elseFilter: false,
-
+
/**
* Property: symbolizer
* {Object} Symbolizer or hash of symbolizers for this rule. If hash of
@@ -30801,7 +30821,7 @@
* SLD.
*/
symbolizer: null,
-
+
/**
* APIProperty: minScaleDenominator
* {Number} or {String} minimum scale at which to draw the feature.
@@ -30817,15 +30837,15 @@
* propertyNames in the form "literal ${propertyName}"
*/
maxScaleDenominator: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Rule
* Creates a Rule.
*
* Parameters:
* options - {Object} An optional object with properties to set on the
* rule
- *
+ *
* Returns:
* {<OpenLayers.Rule>}
*/
@@ -30835,7 +30855,7 @@
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
- /**
+ /**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -30845,14 +30865,14 @@
}
this.symbolizer = null;
},
-
+
/**
* APIMethod: evaluate
* evaluates this rule for a specific feature
- *
+ *
* Parameters:
* feature - {<OpenLayers.Feature>} feature to apply the rule to.
- *
+ *
* Returns:
* {Boolean} true if the rule applies, false if it does not.
* This rule is the default rule and always returns true.
@@ -30864,7 +30884,7 @@
if (this.minScaleDenominator || this.maxScaleDenominator) {
var scale = feature.layer.map.getScale();
}
-
+
// check if within minScale/maxScale bounds
if (this.minScaleDenominator) {
applies = scale >= OpenLayers.Style.createLiteral(
@@ -30874,7 +30894,7 @@
applies = scale < OpenLayers.Style.createLiteral(
this.maxScaleDenominator, context);
}
-
+
// check if optional filter applies
if(applies && this.filter) {
// feature id filters get the feature, others get the context
@@ -30887,11 +30907,11 @@
return applies;
},
-
+
/**
* Method: getContext
* Gets the context for evaluating this rule
- *
+ *
* Paramters:
* feature - {<OpenLayers.Feature>} feature to take the context from if
* none is specified.
@@ -30906,11 +30926,11 @@
}
return context;
},
-
+
/**
* APIMethod: clone
* Clones this rule.
- *
+ *
* Returns:
* {<OpenLayers.Rule>} Clone of this rule.
*/
@@ -30933,7 +30953,7 @@
options.context = this.context && OpenLayers.Util.extend({}, this.context);
return new OpenLayers.Rule(options);
},
-
+
CLASS_NAME: "OpenLayers.Rule"
});
/* ======================================================================
@@ -30948,19 +30968,19 @@
* @requires OpenLayers/Style.js
* @requires OpenLayers/Feature/Vector.js
*/
-
+
/**
* Class: OpenLayers.StyleMap
*/
OpenLayers.StyleMap = OpenLayers.Class({
-
+
/**
* Property: styles
* Hash of {<OpenLayers.Style>}, keyed by names of well known
* rendering intents (e.g. "default", "temporary", "select", "delete").
*/
styles: null,
-
+
/**
* Property: extendDefault
* {Boolean} if true, every render intent will extend the symbolizers
@@ -30968,10 +30988,10 @@
* rendering intent will be treated as a completely independent style.
*/
extendDefault: true,
-
+
/**
* Constructor: OpenLayers.StyleMap
- *
+ *
* Parameters:
* style - {Object} Optional. Either a style hash, or a style object, or
* a hash of style objects (style hashes) keyed by rendering
@@ -30992,7 +31012,7 @@
"delete": new OpenLayers.Style(
OpenLayers.Feature.Vector.style["delete"])
};
-
+
// take whatever the user passed as style parameter and convert it
// into parts of stylemap.
if(style instanceof OpenLayers.Style) {
@@ -31031,11 +31051,11 @@
}
this.styles = null;
},
-
+
/**
* Method: createSymbolizer
* Creates the symbolizer for a feature for a render intent.
- *
+ *
* Parameters:
* feature - {<OpenLayers.Feature>} The feature to evaluate the rules
* of the intended style against.
@@ -31043,7 +31063,7 @@
* used to draw the feature. Well known intents are "default"
* (for just drawing the features), "select" (for selected
* features) and "temporary" (for drawing features).
- *
+ *
* Returns:
* {Object} symbolizer hash
*/
@@ -31062,20 +31082,20 @@
return OpenLayers.Util.extend(defaultSymbolizer,
this.styles[intent].createSymbolizer(feature));
},
-
+
/**
* Method: addUniqueValueRules
* Convenience method to create comparison rules for unique values of a
* property. The rules will be added to the style object for a specified
* rendering intent. This method is a shortcut for creating something like
* the "unique value legends" familiar from well known desktop GIS systems
- *
+ *
* Parameters:
* renderIntent - {String} rendering intent to add the rules to
* property - {String} values of feature attributes to create the
* rules for
* symbolizers - {Object} Hash of symbolizers, keyed by the desired
- * property values
+ * property values
* context - {Object} An optional object with properties that
* symbolizers' property values should be evaluated
* against. If no context is specified, feature.attributes
@@ -31113,21 +31133,21 @@
/**
* Class: OpenLayers.Geometry.Collection
- * A Collection is exactly what it sounds like: A collection of different
+ * A Collection is exactly what it sounds like: A collection of different
* Geometries. These are stored in the local parameter <components> (which
- * can be passed as a parameter to the constructor).
- *
- * As new geometries are added to the collection, they are NOT cloned.
- * When removing geometries, they need to be specified by reference (ie you
+ * can be passed as a parameter to the constructor).
+ *
+ * As new geometries are added to the collection, they are NOT cloned.
+ * When removing geometries, they need to be specified by reference (ie you
* have to pass in the *exact* geometry to be removed).
- *
+ *
* The <getArea> and <getLength> functions here merely iterate through
* the components, summing their respective areas and lengths.
*
* Create a new instance with the <OpenLayers.Geometry.Collection> constructor.
*
* Inerhits from:
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
@@ -31136,7 +31156,7 @@
* {Array(<OpenLayers.Geometry>)} The component parts of this geometry
*/
components: null,
-
+
/**
* Property: componentTypes
* {Array(String)} An array of class names representing the types of
@@ -31149,7 +31169,7 @@
* Constructor: OpenLayers.Geometry.Collection
* Creates a Geometry Collection -- a list of geoms.
*
- * Parameters:
+ * Parameters:
* components - {Array(<OpenLayers.Geometry>)} Optional array of geometries
*
*/
@@ -31182,31 +31202,31 @@
for(var i=0, len=this.components.length; i<len; i++) {
geometry.addComponent(this.components[i].clone());
}
-
+
// catch any randomly tagged-on properties
OpenLayers.Util.applyDefaults(geometry, this);
-
+
return geometry;
},
/**
* Method: getComponentsString
* Get a string representing the components for this collection
- *
+ *
* Returns:
* {String} A string representation of the components of this geometry
*/
getComponentsString: function(){
var strings = [];
for(var i=0, len=this.components.length; i<len; i++) {
- strings.push(this.components[i].toShortString());
+ strings.push(this.components[i].toShortString());
}
return strings.join(",");
},
/**
* APIMethod: calculateBounds
- * Recalculate the bounds by iterating through the components and
+ * Recalculate the bounds by iterating through the components and
* calling calling extendBounds() on each item.
*/
calculateBounds: function() {
@@ -31241,14 +31261,14 @@
* is set, then the component class name must be in the componentTypes array.
*
* The bounds cache is reset.
- *
+ *
* Parameters:
* component - {<OpenLayers.Geometry>} A geometry to add
* index - {int} Optional index into the array to insert the component
*
* Returns:
* {Boolean} The component geometry was successfully added
- */
+ */
addComponent: function(component, index) {
var added = false;
if(component) {
@@ -31258,7 +31278,7 @@
if(index != null && (index < this.components.length)) {
var components1 = this.components.slice(0, index);
- var components2 = this.components.slice(index,
+ var components2 = this.components.slice(index,
this.components.length);
components1.push(component);
this.components = components1.concat(components2);
@@ -31272,7 +31292,7 @@
}
return added;
},
-
+
/**
* APIMethod: removeComponents
* Remove components from this geometry.
@@ -31288,18 +31308,18 @@
this.removeComponent(components[i]);
}
},
-
+
/**
* Method: removeComponent
* Remove a component from this geometry.
*
* Parameters:
- * component - {<OpenLayers.Geometry>}
+ * component - {<OpenLayers.Geometry>}
*/
removeComponent: function(component) {
-
+
OpenLayers.Util.removeItem(this.components, component);
-
+
// clearBounds() so that it gets recalculated on the next call
// to this.getBounds();
this.clearBounds();
@@ -31319,7 +31339,7 @@
}
return length;
},
-
+
/**
* APIMethod: getArea
* Calculate the area of this geometry. Note how this function is overridden
@@ -31336,7 +31356,7 @@
return area;
},
- /**
+ /**
* APIMethod: getGeodesicArea
* Calculate the approximate area of the polygon were it projected onto
* the earth.
@@ -31345,7 +31365,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Reference:
* Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for
* Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion
@@ -31361,7 +31381,7 @@
}
return area;
},
-
+
/**
* APIMethod: getCentroid
*
@@ -31391,7 +31411,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Returns:
* {Float} The appoximate geodesic length of the geometry in meters.
*/
@@ -31410,7 +31430,7 @@
* bounds.
*
* Parameters:
- * x - {Float} Distance to move geometry in positive x direction.
+ * x - {Float} Distance to move geometry in positive x direction.
* y - {Float} Distance to move geometry in positive y direction.
*/
move: function(x, y) {
@@ -31446,9 +31466,9 @@
* will have four times the area).
* origin - {<OpenLayers.Geometry.Point>} Point of origin for resizing
* ratio - {Float} Optional x:y ratio for resizing. Default ratio is 1.
- *
+ *
* Returns:
- * {OpenLayers.Geometry} - The current geometry.
+ * {OpenLayers.Geometry} - The current geometry.
*/
resize: function(scale, origin, ratio) {
for(var i=0; i<this.components.length; ++i) {
@@ -31503,13 +31523,13 @@
return best;
},
- /**
+ /**
* APIMethod: equals
* Determine whether another geometry is equivalent to this one. Geometries
* are considered equivalent if all components have the same coordinates.
- *
+ *
* Parameters:
- * geom - {<OpenLayers.Geometry>} The geometry to test.
+ * geom - {<OpenLayers.Geometry>} The geometry to test.
*
* Returns:
* {Boolean} The supplied geometry is equivalent to this geometry.
@@ -31536,17 +31556,17 @@
/**
* APIMethod: transform
* Reproject the components geometry from source to dest.
- *
+ *
* Parameters:
- * source - {<OpenLayers.Projection>}
+ * source - {<OpenLayers.Projection>}
* dest - {<OpenLayers.Projection>}
- *
+ *
* Returns:
- * {<OpenLayers.Geometry>}
+ * {<OpenLayers.Geometry>}
*/
transform: function(source, dest) {
if (source && dest) {
- for (var i=0, len=this.components.length; i<len; i++) {
+ for (var i=0, len=this.components.length; i<len; i++) {
var component = this.components[i];
component.transform(source, dest);
}
@@ -31616,22 +31636,22 @@
/**
* Class: OpenLayers.Geometry.Point
- * Point geometry class.
- *
+ * Point geometry class.
+ *
* Inherits from:
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.Point = OpenLayers.Class(OpenLayers.Geometry, {
- /**
- * APIProperty: x
- * {float}
+ /**
+ * APIProperty: x
+ * {float}
*/
x: null,
- /**
- * APIProperty: y
- * {float}
+ /**
+ * APIProperty: y
+ * {float}
*/
y: null,
@@ -31640,20 +31660,20 @@
* Construct a point geometry.
*
* Parameters:
- * x - {float}
+ * x - {float}
* y - {float}
- *
+ *
*/
initialize: function(x, y) {
OpenLayers.Geometry.prototype.initialize.apply(this, arguments);
-
+
this.x = parseFloat(x);
this.y = parseFloat(y);
},
/**
* APIMethod: clone
- *
+ *
* Returns:
* {<OpenLayers.Geometry.Point>} An exact clone of this OpenLayers.Geometry.Point
*/
@@ -31668,7 +31688,7 @@
return obj;
},
- /**
+ /**
* Method: calculateBounds
* Create a new Bounds based on the lon/lat
*/
@@ -31729,14 +31749,14 @@
}
return result;
},
-
- /**
+
+ /**
* APIMethod: equals
* Determine whether another geometry is equivalent to this one. Geometries
* are considered equivalent if all components have the same coordinates.
- *
+ *
* Parameters:
- * geom - {<OpenLayers.Geometry.Point>} The geometry to test.
+ * geom - {<OpenLayers.Geometry.Point>} The geometry to test.
*
* Returns:
* {Boolean} The supplied geometry is equivalent to this geometry.
@@ -31749,18 +31769,18 @@
}
return equals;
},
-
+
/**
* Method: toShortString
*
* Returns:
- * {String} Shortened String representation of Point object.
+ * {String} Shortened String representation of Point object.
* (ex. <i>"5, 42"</i>)
*/
toShortString: function() {
return (this.x + ", " + this.y);
},
-
+
/**
* APIMethod: move
* Moves a geometry by the given displacement along positive x and y axes.
@@ -31768,7 +31788,7 @@
* bounds.
*
* Parameters:
- * x - {Float} Distance to move geometry in positive x direction.
+ * x - {Float} Distance to move geometry in positive x direction.
* y - {Float} Distance to move geometry in positive y direction.
*/
move: function(x, y) {
@@ -31794,7 +31814,7 @@
this.y = origin.y + (radius * Math.sin(theta));
this.clearBounds();
},
-
+
/**
* APIMethod: getCentroid
*
@@ -31817,9 +31837,9 @@
* distance between the point and origin.
* origin - {<OpenLayers.Geometry.Point>} Point of origin for resizing
* ratio - {Float} Optional x:y ratio for resizing. Default ratio is 1.
- *
+ *
* Returns:
- * {OpenLayers.Geometry} - The current geometry.
+ * {OpenLayers.Geometry} - The current geometry.
*/
resize: function(scale, origin, ratio) {
ratio = (ratio == undefined) ? 1 : ratio;
@@ -31828,7 +31848,7 @@
this.clearBounds();
return this;
},
-
+
/**
* APIMethod: intersects
* Determine if the input geometry intersects this one.
@@ -31848,24 +31868,24 @@
}
return intersect;
},
-
+
/**
* APIMethod: transform
* Translate the x,y properties of the point from source to dest.
- *
+ *
* Parameters:
- * source - {<OpenLayers.Projection>}
+ * source - {<OpenLayers.Projection>}
* dest - {<OpenLayers.Projection>}
- *
+ *
* Returns:
- * {<OpenLayers.Geometry>}
+ * {<OpenLayers.Geometry>}
*/
transform: function(source, dest) {
if ((source && dest)) {
OpenLayers.Projection.transform(
- this, source, dest);
+ this, source, dest);
this.bounds = null;
- }
+ }
return this;
},
@@ -31960,14 +31980,14 @@
* featureunselected - Triggered after a feature is unselected.
* Listeners will receive an object with a *feature* property
* referencing the unselected feature.
- * beforefeaturemodified - Triggered when a feature is selected to
- * be modified. Listeners will receive an object with a *feature*
+ * beforefeaturemodified - Triggered when a feature is selected to
+ * be modified. Listeners will receive an object with a *feature*
* property referencing the selected feature.
* featuremodified - Triggered when a feature has been modified.
- * Listeners will receive an object with a *feature* property referencing
+ * Listeners will receive an object with a *feature* property referencing
* the modified feature.
* afterfeaturemodified - Triggered when a feature is finished being modified.
- * Listeners will receive an object with a *feature* property referencing
+ * Listeners will receive an object with a *feature* property referencing
* the modified feature.
* vertexmodified - Triggered when a vertex within any feature geometry
* has been modified. Listeners will receive an object with a
@@ -31993,7 +32013,7 @@
EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded",
"featureadded", "featuresadded",
"beforefeatureremoved", "featureremoved", "featuresremoved",
- "beforefeatureselected", "featureselected", "featureunselected",
+ "beforefeatureselected", "featureselected", "featureunselected",
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
"vertexmodified", "sketchstarted", "sketchmodified",
"sketchcomplete", "refresh"],
@@ -32005,31 +32025,31 @@
*/
isBaseLayer: false,
- /**
+ /**
* APIProperty: isFixed
* {Boolean} Whether the layer remains in one place while dragging the
* map.
*/
isFixed: false,
- /**
+ /**
* APIProperty: isVector
* {Boolean} Whether the layer is a vector layer.
*/
isVector: true,
-
- /**
+
+ /**
* APIProperty: features
- * {Array(<OpenLayers.Feature.Vector>)}
+ * {Array(<OpenLayers.Feature.Vector>)}
*/
features: null,
-
- /**
+
+ /**
* Property: selectedFeatures
- * {Array(<OpenLayers.Feature.Vector>)}
+ * {Array(<OpenLayers.Feature.Vector>)}
*/
selectedFeatures: null,
-
+
/**
* Property: unrenderedFeatures
* {Object} hash of features, keyed by feature.id, that the renderer
@@ -32042,32 +32062,32 @@
* {Boolean} report friendly error message when loading of renderer
* fails.
*/
- reportError: true,
+ reportError: true,
- /**
+ /**
* APIProperty: style
* {Object} Default style for the layer
*/
style: null,
-
+
/**
* Property: styleMap
* {<OpenLayers.StyleMap>}
*/
styleMap: null,
-
+
/**
* Property: strategies
* {Array(<OpenLayers.Strategy>})} Optional list of strategies for the layer.
*/
strategies: null,
-
+
/**
* Property: protocol
* {<OpenLayers.Protocol>} Optional protocol for the layer.
*/
protocol: null,
-
+
/**
* Property: renderers
* {Array(String)} List of supported Renderer classes. Add to this list to
@@ -32076,21 +32096,21 @@
* method will be used, if not defined in the 'renderer' option.
*/
renderers: ['SVG', 'VML', 'Canvas'],
-
- /**
+
+ /**
* Property: renderer
* {<OpenLayers.Renderer>}
*/
renderer: null,
-
+
/**
* APIProperty: rendererOptions
* {Object} Options for the renderer. See {<OpenLayers.Renderer>} for
* supported options.
*/
rendererOptions: null,
-
- /**
+
+ /**
* APIProperty: geometryType
* {String} geometryType allows you to limit the types of geometries this
* layer supports. This should be set to something like
@@ -32098,7 +32118,7 @@
*/
geometryType: null,
- /**
+ /**
* Property: drawn
* {Boolean} Whether the Vector Layer features have been drawn yet.
*/
@@ -32117,7 +32137,7 @@
* {<OpenLayers.Layer.Vector>} A new vector layer
*/
initialize: function(name, options) {
-
+
// concatenate events specific to vector with those from the base
this.EVENT_TYPES =
OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(
@@ -32127,7 +32147,7 @@
OpenLayers.Layer.prototype.initialize.apply(this, arguments);
// allow user-set renderer, otherwise assign one
- if (!this.renderer || !this.renderer.supported()) {
+ if (!this.renderer || !this.renderer.supported()) {
this.assignRenderer();
}
@@ -32135,7 +32155,7 @@
if (!this.renderer || !this.renderer.supported()) {
this.renderer = null;
this.displayError();
- }
+ }
if (!this.styleMap) {
this.styleMap = new OpenLayers.StyleMap();
@@ -32144,7 +32164,7 @@
this.features = [];
this.selectedFeatures = [];
this.unrenderedFeatures = {};
-
+
// Allow for custom layer behavior
if(this.strategies){
for(var i=0, len=this.strategies.length; i<len; i++) {
@@ -32185,7 +32205,7 @@
this.renderer = null;
this.geometryType = null;
this.drawn = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.prototype.destroy.apply(this, arguments);
},
/**
@@ -32203,11 +32223,11 @@
}
},
- /**
+ /**
* Method: assignRenderer
- * Iterates through the available renderer implementations and selects
+ * Iterates through the available renderer implementations and selects
* and assigns the first one whose "supported()" function returns true.
- */
+ */
assignRenderer: function() {
for (var i=0, len=this.renderers.length; i<len; i++) {
var rendererClass = OpenLayers.Renderer[this.renderers[i]];
@@ -32215,32 +32235,32 @@
this.renderer = new rendererClass(this.div,
this.rendererOptions);
break;
- }
- }
+ }
+ }
},
- /**
- * Method: displayError
+ /**
+ * Method: displayError
* Let the user know their browser isn't supported.
*/
displayError: function() {
if (this.reportError) {
- OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",
+ OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",
{'renderers':this.renderers.join("\n")}));
- }
+ }
},
- /**
+ /**
* Method: setMap
- * The layer has been added to the map.
- *
+ * The layer has been added to the map.
+ *
* If there is no renderer set, the layer can't be used. Remove it.
* Otherwise, give the renderer a reference to the map and set its size.
- *
+ *
* Parameters:
- * map - {<OpenLayers.Map>}
+ * map - {<OpenLayers.Map>}
*/
- setMap: function(map) {
+ setMap: function(map) {
OpenLayers.Layer.prototype.setMap.apply(this, arguments);
if (!this.renderer) {
@@ -32287,11 +32307,11 @@
}
}
},
-
+
/**
* Method: onMapResize
- * Notify the renderer of the change in size.
- *
+ * Notify the renderer of the change in size.
+ *
*/
onMapResize: function() {
OpenLayers.Layer.prototype.onMapResize.apply(this, arguments);
@@ -32300,32 +32320,32 @@
/**
* Method: moveTo
- * Reset the vector layer's div so that it once again is lined up with
+ * Reset the vector layer's div so that it once again is lined up with
* the map. Notify the renderer of the change of extent, and in the
- * case of a change of zoom level (resolution), have the
+ * case of a change of zoom level (resolution), have the
* renderer redraw features.
- *
- * If the layer has not yet been drawn, cycle through the layer's
+ *
+ * If the layer has not yet been drawn, cycle through the layer's
* features and draw each one.
- *
+ *
* Parameters:
- * bounds - {<OpenLayers.Bounds>}
- * zoomChanged - {Boolean}
- * dragging - {Boolean}
+ * bounds - {<OpenLayers.Bounds>}
+ * zoomChanged - {Boolean}
+ * dragging - {Boolean}
*/
moveTo: function(bounds, zoomChanged, dragging) {
OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
-
+
var coordSysUnchanged = true;
if (!dragging) {
this.renderer.root.style.visibility = "hidden";
-
+
this.div.style.left = -parseInt(this.map.layerContainerDiv.style.left) + "px";
this.div.style.top = -parseInt(this.map.layerContainerDiv.style.top) + "px";
var extent = this.map.getExtent();
coordSysUnchanged = this.renderer.setExtent(extent, zoomChanged);
-
+
this.renderer.root.style.visibility = "visible";
// Force a reflow on gecko based browsers to prevent jump/flicker.
@@ -32334,7 +32354,7 @@
if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
this.div.scrollLeft = this.div.scrollLeft;
}
-
+
if(!zoomChanged && coordSysUnchanged) {
for(var i in this.unrenderedFeatures) {
var feature = this.unrenderedFeatures[i];
@@ -32342,7 +32362,7 @@
}
}
}
-
+
if (!this.drawn || zoomChanged || !coordSysUnchanged) {
this.drawn = true;
var feature;
@@ -32351,13 +32371,13 @@
feature = this.features[i];
this.drawFeature(feature);
}
- }
+ }
},
-
- /**
+
+ /**
* APIMethod: display
* Hide or show the Layer
- *
+ *
* Parameters:
* display - {Boolean}
*/
@@ -32376,14 +32396,14 @@
* Add Features to the layer.
*
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
* options - {Object}
*/
addFeatures: function(features, options) {
if (!(features instanceof Array)) {
features = [features];
}
-
+
var notify = !options || !options.silent;
if(notify) {
var event = {features: features};
@@ -32393,16 +32413,16 @@
}
features = event.features;
}
-
+
for (var i=0, len=features.length; i<len; i++) {
if (i != (features.length - 1)) {
this.renderer.locked = true;
} else {
this.renderer.locked = false;
- }
+ }
var feature = features[i];
-
+
if (this.geometryType &&
!(feature.geometry instanceof this.geometryType)) {
var throwStr = OpenLayers.i18n('componentShouldBe',
@@ -32411,7 +32431,7 @@
}
this.features.push(feature);
-
+
//give feature reference to its layer
feature.layer = this;
@@ -32428,7 +32448,7 @@
}
this.drawFeature(feature);
-
+
if (notify) {
this.events.triggerEvent("featureadded", {
feature: feature
@@ -32436,7 +32456,7 @@
this.onFeatureInsert(feature);
}
}
-
+
if(notify) {
this.events.triggerEvent("featuresadded", {features: features});
}
@@ -32450,7 +32470,7 @@
* and featureremoved events will be triggered for each feature. The
* featuresremoved event will be triggered after all features have
* been removed. To supress event triggering, use the silent option.
- *
+ *
* Parameters:
* features - {Array(<OpenLayers.Feature.Vector>)} List of features to be
* removed.
@@ -32479,15 +32499,15 @@
// because if all the features after the current one are 'null', we
// won't call eraseGeometry, so we break the 'renderer functions
// will always be called with locked=false *last*' rule. The end result
- // is a possible gratiutious unlocking to save a loop through the rest
+ // is a possible gratiutious unlocking to save a loop through the rest
// of the list checking the remaining features every time. So long as
- // null geoms are rare, this is probably okay.
+ // null geoms are rare, this is probably okay.
if (i != 0 && features[i-1].geometry) {
this.renderer.locked = true;
} else {
this.renderer.locked = false;
}
-
+
var feature = features[i];
delete this.unrenderedFeatures[feature.id];
@@ -32504,8 +32524,8 @@
if (feature.geometry) {
this.renderer.eraseFeatures(feature);
}
-
- //in the case that this feature is one of the selected features,
+
+ //in the case that this feature is one of the selected features,
// remove it from that array as well.
if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
OpenLayers.Util.removeItem(this.selectedFeatures, feature);
@@ -32553,20 +32573,20 @@
* is included, this style will be used. If no style is included, the
* feature's style will be used. If the feature doesn't have a style,
* the layer's style will be used.
- *
- * This function is not designed to be used when adding features to
+ *
+ * This function is not designed to be used when adding features to
* the layer (use addFeatures instead). It is meant to be used when
- * the style of a feature has changed, or in some other way needs to
+ * the style of a feature has changed, or in some other way needs to
* visually updated *after* it has already been added to a layer. You
- * must add the feature to the layer for most layer-related events to
+ * must add the feature to the layer for most layer-related events to
* happen.
*
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * Parameters:
+ * feature - {<OpenLayers.Feature.Vector>}
* style - {Object} Symbolizer hash or {String} renderIntent
*/
drawFeature: function(feature, style) {
- // don't try to draw the feature with the renderer if the layer is not
+ // don't try to draw the feature with the renderer if the layer is not
// drawn itself
if (!this.drawn) {
return
@@ -32581,20 +32601,20 @@
style = this.styleMap.createSymbolizer(feature, renderIntent);
}
}
-
+
if (!this.renderer.drawFeature(feature, style)) {
this.unrenderedFeatures[feature.id] = feature;
} else {
delete this.unrenderedFeatures[feature.id];
};
},
-
+
/**
* Method: eraseFeatures
* Erase features from the layer.
*
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
*/
eraseFeatures: function(features) {
this.renderer.eraseFeatures(features);
@@ -32606,26 +32626,26 @@
* Otherwise, return null.
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {<OpenLayers.Feature.Vector>} A feature if one was under the event.
*/
getFeatureFromEvent: function(evt) {
if (!this.renderer) {
- OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));
+ OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));
return null;
- }
+ }
var featureId = this.renderer.getFeatureIdFromEvent(evt);
return this.getFeatureById(featureId);
},
-
+
/**
* APIMethod: getFeatureById
* Given a feature id, return the feature if it exists in the features array
*
* Parameters:
- * featureId - {String}
+ * featureId - {String}
*
* Returns:
* {<OpenLayers.Feature.Vector>} A feature corresponding to the given
@@ -32642,7 +32662,7 @@
}
return feature;
},
-
+
/**
* Unselect the selected features
* i.e. clears the featureSelection array
@@ -32665,12 +32685,12 @@
* Does nothing by default. Override this if you
* need to do something on feature updates.
*
- * Paarameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * Paarameters:
+ * feature - {<OpenLayers.Feature.Vector>}
*/
onFeatureInsert: function(feature) {
},
-
+
/**
* APIMethod: preFeatureInsert
* method called before a feature is inserted.
@@ -32679,15 +32699,15 @@
* layer, but before they are drawn, such as adjust the style.
*
* Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * feature - {<OpenLayers.Feature.Vector>}
*/
preFeatureInsert: function(feature) {
},
- /**
+ /**
* APIMethod: getDataExtent
* Calculates the max extent which includes all of the features.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
@@ -32744,13 +32764,13 @@
* Create a new MultiPoint Geometry
*
* Parameters:
- * components - {Array(<OpenLayers.Geometry.Point>)}
+ * components - {Array(<OpenLayers.Geometry.Point>)}
*
* Returns:
* {<OpenLayers.Geometry.MultiPoint>}
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
arguments);
},
@@ -32765,7 +32785,7 @@
addPoint: function(point, index) {
this.addComponent(point, index);
},
-
+
/**
* APIMethod: removePoint
* Wrapper for <OpenLayers.Geometry.Collection.removeComponent>
@@ -32801,12 +32821,12 @@
* called with each change in the sketch and will receive the latest point
* drawn. Create a new instance with the <OpenLayers.Handler.Point>
* constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
-
+
/**
* Property: point
* {<OpenLayers.Feature.Vector>} The currently drawn point
@@ -32818,20 +32838,20 @@
* {<OpenLayers.Layer.Vector>} The temporary drawing layer
*/
layer: null,
-
+
/**
* Property: multi
* {Boolean} Cast features to multi-part geometries before passing to the
* layer. Default is false.
*/
multi: false,
-
+
/**
- * Property: drawing
+ * Property: drawing
* {Boolean} A point is being drawn
*/
drawing: false,
-
+
/**
* Property: mouseDown
* {Boolean} The mouse is down
@@ -32893,7 +32913,7 @@
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
},
-
+
/**
* APIMethod: activate
* turn on the handler
@@ -32916,7 +32936,7 @@
this.map.addLayer(this.layer);
return true;
},
-
+
/**
* Method: createFeature
* Add temporary features
@@ -32958,7 +32978,7 @@
this.layer = null;
return true;
},
-
+
/**
* Method: destroyFeature
* Destroy the temporary geometries
@@ -33002,11 +33022,11 @@
* Method: click
* Handle clicks. Clicks are stopped from propagating to other listeners
* on map.events or other dom elements.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
click: function(evt) {
@@ -33018,18 +33038,18 @@
* Method: dblclick
* Handle double-clicks. Double-clicks are stopped from propagating to other
* listeners on map.events or other dom elements.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
dblclick: function(evt) {
OpenLayers.Event.stop(evt);
return false;
},
-
+
/**
* Method: modifyFeature
* Modify the existing geometry given a pixel location.
@@ -33053,7 +33073,7 @@
drawFeature: function() {
this.layer.drawFeature(this.point, this.style);
},
-
+
/**
* Method: getGeometry
* Return the sketch geometry. If <multi> is true, this will return
@@ -33081,16 +33101,16 @@
var geom = this.getGeometry();
return geom && geom.clone();
},
-
+
/**
* Method: mousedown
* Handle mouse down. Adjust the geometry and redraw.
* Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousedown: function(evt) {
@@ -33119,11 +33139,11 @@
* Method: mousemove
* Handle mouse move. Adjust the geometry and redraw.
* Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousemove: function (evt) {
@@ -33141,7 +33161,7 @@
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mouseup: function (evt) {
@@ -33169,37 +33189,37 @@
/**
* Class: OpenLayers.Geometry.Curve
- * A Curve is a MultiPoint, whose points are assumed to be connected. To
- * this end, we provide a "getLength()" function, which iterates through
- * the points, summing the distances between them.
- *
- * Inherits:
+ * A Curve is a MultiPoint, whose points are assumed to be connected. To
+ * this end, we provide a "getLength()" function, which iterates through
+ * the points, summing the distances between them.
+ *
+ * Inherits:
* - <OpenLayers.Geometry.MultiPoint>
*/
OpenLayers.Geometry.Curve = OpenLayers.Class(OpenLayers.Geometry.MultiPoint, {
/**
* Property: componentTypes
- * {Array(String)} An array of class names representing the types of
- * components that the collection can include. A null
+ * {Array(String)} An array of class names representing the types of
+ * components that the collection can include. A null
* value means the component types are not restricted.
*/
componentTypes: ["OpenLayers.Geometry.Point"],
/**
* Constructor: OpenLayers.Geometry.Curve
- *
+ *
* Parameters:
* point - {Array(<OpenLayers.Geometry.Point>)}
*/
initialize: function(points) {
- OpenLayers.Geometry.MultiPoint.prototype.initialize.apply(this,
+ OpenLayers.Geometry.MultiPoint.prototype.initialize.apply(this,
arguments);
},
-
+
/**
* APIMethod: getLength
- *
+ *
* Returns:
* {Float} The length of the curve
*/
@@ -33221,7 +33241,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Returns:
* {Float} The appoximate geodesic length of the geometry in meters.
*/
@@ -33265,9 +33285,9 @@
/**
* Class: OpenLayers.Geometry.LineString
- * A LineString is a Curve which, once two points have been added to it, can
+ * A LineString is a Curve which, once two points have been added to it, can
* never be less than two points long.
- *
+ *
* Inherits from:
* - <OpenLayers.Geometry.Curve>
*/
@@ -33283,24 +33303,24 @@
*
*/
initialize: function(points) {
- OpenLayers.Geometry.Curve.prototype.initialize.apply(this, arguments);
+ OpenLayers.Geometry.Curve.prototype.initialize.apply(this, arguments);
},
/**
* APIMethod: removeComponent
- * Only allows removal of a point if there are three or more points in
+ * Only allows removal of a point if there are three or more points in
* the linestring. (otherwise the result would be just a single point)
*
- * Parameters:
+ * Parameters:
* point - {<OpenLayers.Geometry.Point>} The point to be removed
*/
removeComponent: function(point) {
if ( this.components && (this.components.length > 2)) {
- OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
arguments);
}
},
-
+
/**
* APIMethod: intersects
* Test for instersection between two geometries. This is a cheapo
@@ -33372,7 +33392,7 @@
}
return intersect;
},
-
+
/**
* Method: getSortedSegments
*
@@ -33410,7 +33430,7 @@
}
return segments.sort(byX1);
},
-
+
/**
* Method: splitWithSegment
* Split this geometry with the given segment.
@@ -33507,7 +33527,7 @@
/**
* Method: split
* Use this geometry (the source) to attempt to split a target geometry.
- *
+ *
* Parameters:
* target - {<OpenLayers.Geometry>} The target geometry.
* options - {Object} Properties of this object will be used to determine
@@ -33522,7 +33542,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -33626,7 +33646,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -33732,7 +33752,7 @@
} else {
best = best.distance;
}
- } else if(geometry instanceof OpenLayers.Geometry.LineString) {
+ } else if(geometry instanceof OpenLayers.Geometry.LineString) {
var segs0 = this.getSortedSegments();
var segs1 = geometry.getSortedSegments();
var seg0, seg1, intersection, x0, y0;
@@ -33820,14 +33840,14 @@
/**
* Class: OpenLayers.Geometry.LinearRing
- *
- * A Linear Ring is a special LineString which is closed. It closes itself
+ *
+ * A Linear Ring is a special LineString which is closed. It closes itself
* automatically on every addPoint/removePoint by adding a copy of the first
- * point as the last point.
- *
+ * point as the last point.
+ *
* Also, as it is the first in the line family to close itself, a getArea()
* function is defined to calculate the enclosed area of the linearRing
- *
+ *
* Inherits:
* - <OpenLayers.Geometry.LineString>
*/
@@ -33836,8 +33856,8 @@
/**
* Property: componentTypes
- * {Array(String)} An array of class names representing the types of
- * components that the collection can include. A null
+ * {Array(String)} An array of class names representing the types of
+ * components that the collection can include. A null
* value means the component types are not restricted.
*/
componentTypes: ["OpenLayers.Geometry.Point"],
@@ -33849,12 +33869,12 @@
* point does not equal the first point), the constructor will close
* the ring. If the ring is already closed (the last point does equal
* the first point), it will be left closed.
- *
+ *
* Parameters:
* points - {Array(<OpenLayers.Geometry.Point>)} points
*/
initialize: function(points) {
- OpenLayers.Geometry.LineString.prototype.initialize.apply(this,
+ OpenLayers.Geometry.LineString.prototype.initialize.apply(this,
arguments);
},
@@ -33862,16 +33882,16 @@
* APIMethod: addComponent
* Adds a point to geometry components. If the point is to be added to
* the end of the components array and it is the same as the last point
- * already in that array, the duplicate point is not added. This has
- * the effect of closing the ring if it is not already closed, and
- * doing the right thing if it is already closed. This behavior can
- * be overridden by calling the method with a non-null index as the
+ * already in that array, the duplicate point is not added. This has
+ * the effect of closing the ring if it is not already closed, and
+ * doing the right thing if it is already closed. This behavior can
+ * be overridden by calling the method with a non-null index as the
* second argument.
*
* Parameter:
* point - {<OpenLayers.Geometry.Point>}
* index - {Integer} Index into the array to insert the component
- *
+ *
* Returns:
* {Boolean} Was the Point successfully added?
*/
@@ -33884,18 +33904,18 @@
// given an index, add the point
// without an index only add non-duplicate points
if(index != null || !point.equals(lastPoint)) {
- added = OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
+ added = OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
arguments);
}
//append copy of first point
var firstPoint = this.components[0];
- OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
[firstPoint]);
-
+
return added;
},
-
+
/**
* APIMethod: removeComponent
* Removes a point from geometry components.
@@ -33908,17 +33928,17 @@
//remove last point
this.components.pop();
-
+
//remove our point
- OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
arguments);
//append copy of first point
var firstPoint = this.components[0];
- OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
[firstPoint]);
}
},
-
+
/**
* APIMethod: move
* Moves a geometry by the given displacement along positive x and y axes.
@@ -33926,7 +33946,7 @@
* bounds.
*
* Parameters:
- * x - {Float} Distance to move geometry in positive x direction.
+ * x - {Float} Distance to move geometry in positive x direction.
* y - {Float} Distance to move geometry in positive y direction.
*/
move: function(x, y) {
@@ -33962,9 +33982,9 @@
* will have four times the area).
* origin - {<OpenLayers.Geometry.Point>} Point of origin for resizing
* ratio - {Float} Optional x:y ratio for resizing. Default ratio is 1.
- *
+ *
* Returns:
- * {OpenLayers.Geometry} - The current geometry.
+ * {OpenLayers.Geometry} - The current geometry.
*/
resize: function(scale, origin, ratio) {
for(var i=0, len=this.components.length; i<len - 1; ++i) {
@@ -33972,7 +33992,7 @@
}
return this;
},
-
+
/**
* APIMethod: transform
* Reproject the components geometry from source to dest.
@@ -33980,9 +34000,9 @@
* Parameters:
* source - {<OpenLayers.Projection>}
* dest - {<OpenLayers.Projection>}
- *
+ *
* Returns:
- * {<OpenLayers.Geometry>}
+ * {<OpenLayers.Geometry>}
*/
transform: function(source, dest) {
if (source && dest) {
@@ -33994,7 +34014,7 @@
}
return this;
},
-
+
/**
* APIMethod: getCentroid
*
@@ -34022,7 +34042,7 @@
* APIMethod: getArea
* Note - The area is positive if the ring is oriented CW, otherwise
* it will be negative.
- *
+ *
* Returns:
* {Float} The signed area for a ring.
*/
@@ -34039,7 +34059,7 @@
}
return area;
},
-
+
/**
* APIMethod: getGeodesicArea
* Calculate the approximate area of the polygon were it projected onto
@@ -34050,7 +34070,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Reference:
* Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for
* Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion
@@ -34083,7 +34103,7 @@
}
return area;
},
-
+
/**
* Method: containsPoint
* Test if a point is inside a linear ring. For the case where a point
@@ -34115,7 +34135,7 @@
end = this.components[i + 1];
x2 = approx(end.x, digs);
y2 = approx(end.y, digs);
-
+
/**
* The following conditions enforce five edge-crossing rules:
* 1. points coincident with edges are considered contained;
@@ -34241,10 +34261,10 @@
* Class: OpenLayers.Geometry.MultiLineString
* A MultiLineString is a geometry with multiple <OpenLayers.Geometry.LineString>
* components.
- *
+ *
* Inherits from:
* - <OpenLayers.Geometry.Collection>
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.MultiLineString = OpenLayers.Class(
OpenLayers.Geometry.Collection, {
@@ -34261,19 +34281,19 @@
* Constructor: OpenLayers.Geometry.MultiLineString
* Constructor for a MultiLineString Geometry.
*
- * Parameters:
- * components - {Array(<OpenLayers.Geometry.LineString>)}
+ * Parameters:
+ * components - {Array(<OpenLayers.Geometry.LineString>)}
*
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
- arguments);
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ arguments);
},
-
+
/**
* Method: split
* Use this geometry (the source) to attempt to split a target geometry.
- *
+ *
* Parameters:
* target - {<OpenLayers.Geometry>} The target geometry.
* options - {Object} Properties of this object will be used to determine
@@ -34288,7 +34308,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -34308,7 +34328,7 @@
for(var i=0, len=this.components.length; i<len; ++i) {
sourceLine = this.components[i];
sourceSplit = false;
- for(var j=0; j < targetParts.length; ++j) {
+ for(var j=0; j < targetParts.length; ++j) {
splits = sourceLine.split(targetParts[j], options);
if(splits) {
if(mutual) {
@@ -34373,7 +34393,7 @@
}
return results;
},
-
+
/**
* Method: splitWith
* Split this geometry (the target) with the given geometry (the source).
@@ -34393,7 +34413,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -34443,7 +34463,7 @@
);
}
}
- targetSplit = true;
+ targetSplit = true;
}
}
if(!targetSplit) {
@@ -34461,7 +34481,7 @@
])
];
}
-
+
}
}
} else {
@@ -34513,13 +34533,13 @@
* - <OpenLayers.Handler.Point>
*/
OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
-
+
/**
* Property: line
* {<OpenLayers.Feature.Vector>}
*/
line: null,
-
+
/**
* Property: freehand
* {Boolean} In freehand mode, the handler starts the path on mouse down,
@@ -34528,7 +34548,7 @@
* click and double-click finishes the path.
*/
freehand: false,
-
+
/**
* Property: freehandToggle
* {String} If set, freehandToggle is checked on mouse events and will set
@@ -34563,7 +34583,7 @@
initialize: function(control, callbacks, options) {
OpenLayers.Handler.Point.prototype.initialize.apply(this, arguments);
},
-
+
/**
* Method: createFeature
* Add temporary geometries
@@ -34584,7 +34604,7 @@
this.point.geometry.clearBounds();
this.layer.addFeatures([this.line, this.point], {silent: true});
},
-
+
/**
* Method: destroyFeature
* Destroy temporary geometries
@@ -34603,7 +34623,7 @@
this.layer.removeFeatures([this.point]);
}
},
-
+
/**
* Method: addPoint
* Add point to geometry. Send the point index to override
@@ -34625,7 +34645,7 @@
this.callback("modify", [this.point.geometry, this.getSketch()]);
this.drawFeature();
},
-
+
/**
* Method: freehandMode
* Determine whether to behave in freehand mode or not.
@@ -34695,11 +34715,11 @@
* Method: mousedown
* Handle mouse down. Add a new point to the geometry and
* render it. Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousedown: function(evt) {
@@ -34725,15 +34745,15 @@
* Method: mousemove
* Handle mouse move. Adjust the geometry and redraw.
* Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousemove: function (evt) {
- if(this.drawing) {
+ if(this.drawing) {
if(this.mouseDown && this.freehandMode(evt)) {
this.addPoint(evt.xy);
} else {
@@ -34742,16 +34762,16 @@
}
return true;
},
-
+
/**
* Method: mouseup
* Handle mouse up. Send the latest point in the geometry to
* the control. Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mouseup: function (evt) {
@@ -34770,16 +34790,16 @@
}
return true;
},
-
+
/**
- * Method: dblclick
+ * Method: dblclick
* Handle double-clicks. Finish the geometry and send it back
* to the control.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
dblclick: function(evt) {
@@ -34808,12 +34828,12 @@
*/
/**
- * Class: OpenLayers.Geometry.Polygon
- * Polygon is a collection of Geometry.LinearRings.
- *
+ * Class: OpenLayers.Geometry.Polygon
+ * Polygon is a collection of Geometry.LinearRings.
+ *
* Inherits from:
- * - <OpenLayers.Geometry.Collection>
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry.Collection>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.Polygon = OpenLayers.Class(
OpenLayers.Geometry.Collection, {
@@ -34828,24 +34848,24 @@
/**
* Constructor: OpenLayers.Geometry.Polygon
- * Constructor for a Polygon geometry.
- * The first ring (this.component[0])is the outer bounds of the polygon and
+ * Constructor for a Polygon geometry.
+ * The first ring (this.component[0])is the outer bounds of the polygon and
* all subsequent rings (this.component[1-n]) are internal holes.
*
*
* Parameters:
- * components - {Array(<OpenLayers.Geometry.LinearRing>)}
+ * components - {Array(<OpenLayers.Geometry.LinearRing>)}
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
arguments);
},
-
- /**
+
+ /**
* APIMethod: getArea
- * Calculated by subtracting the areas of the internal holes from the
+ * Calculated by subtracting the areas of the internal holes from the
* area of the outer hole.
- *
+ *
* Returns:
* {float} The area of the geometry
*/
@@ -34860,7 +34880,7 @@
return area;
},
- /**
+ /**
* APIMethod: getGeodesicArea
* Calculate the approximate area of the polygon were it projected onto
* the earth.
@@ -34869,7 +34889,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Reference:
* Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for
* Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion
@@ -34920,7 +34940,7 @@
} else {
// in hole
contained = false;
- }
+ }
break;
}
}
@@ -35031,7 +35051,7 @@
/**
* APIMethod: createRegularPolygon
- * Create a regular polygon around a radius. Useful for creating circles
+ * Create a regular polygon around a radius. Useful for creating circles
* and the like.
*
* Parameters:
@@ -35040,7 +35060,7 @@
* sides - {Integer} Number of sides. 20 approximates a circle.
* rotation - {Float} original angle of rotation, in degrees.
*/
-OpenLayers.Geometry.Polygon.createRegularPolygon = function(origin, radius, sides, rotation) {
+OpenLayers.Geometry.Polygon.createRegularPolygon = function(origin, radius, sides, rotation) {
var angle = Math.PI * ((1/sides) - (1/2));
if(rotation) {
angle += (rotation / 180) * Math.PI;
@@ -35074,7 +35094,7 @@
* MultiPolygon is a geometry with multiple <OpenLayers.Geometry.Polygon>
* components. Create a new instance with the <OpenLayers.Geometry.MultiPolygon>
* constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Geometry.Collection>
*/
@@ -35099,7 +35119,7 @@
*
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
arguments);
},
@@ -35129,7 +35149,7 @@
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.Polygon = OpenLayers.Class(OpenLayers.Handler.Path, {
-
+
/**
* Parameter: polygon
* {<OpenLayers.Feature.Vector>}
@@ -35161,7 +35181,7 @@
initialize: function(control, callbacks, options) {
OpenLayers.Handler.Path.prototype.initialize.apply(this, arguments);
},
-
+
/**
* Method: createFeature
* Add temporary geometries
@@ -35203,7 +35223,7 @@
this.layer.drawFeature(this.polygon, this.style);
this.layer.drawFeature(this.point, this.style);
},
-
+
/**
* Method: getSketch
* Return the sketch feature.
@@ -35235,9 +35255,9 @@
* Method: dblclick
* Handle double-clicks. Finish the geometry and send it back
* to the control.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
dblclick: function(evt) {
if(!this.freehandMode(evt)) {
@@ -35276,50 +35296,50 @@
* Class: OpenLayers.Format.GML
* Read/Wite GML. Create a new instance with the <OpenLayers.Format.GML>
* constructor. Supports the GML simple features profile.
- *
+ *
* Inherits from:
* - <OpenLayers.Format>
*/
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",
-
+ 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.
@@ -35331,14 +35351,14 @@
* {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.
@@ -35360,8 +35380,8 @@
/**
* APIMethod: read
- * Read data from a string, and return a list of features.
- *
+ * Read data from a string, and return a list of features.
+ *
* Parameters:
* data - {String} or {DOMElement} data to read/parse.
*
@@ -35369,7 +35389,7 @@
* {Array(<OpenLayers.Feature.Vector>)} An array of features.
*/
read: function(data) {
- if(typeof data == "string") {
+ if(typeof data == "string") {
data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
}
var featureNodes = this.getElementsByTagNameNS(data.documentElement,
@@ -35384,15 +35404,15 @@
}
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.
+ * node - {DOMElement} A GML feature node.
*/
parseFeature: function(node) {
// only accept one geometry per feature - look for highest "order"
@@ -35409,9 +35429,9 @@
if(parser) {
geometry = parser.apply(this, [nodeList[0]]);
if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
+ geometry.transform(this.externalProjection,
+ this.internalProjection);
+ }
} else {
OpenLayers.Console.error(OpenLayers.i18n(
"unsupportedGeometryType", {'geomType':type}));
@@ -35420,20 +35440,20 @@
break;
}
}
-
+
// construct feature (optionally with attributes)
var attributes;
if(this.extractAttributes) {
attributes = this.parseAttributes(node);
}
var feature = new OpenLayers.Feature.Vector(geometry, attributes);
-
+
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;
@@ -35450,14 +35470,14 @@
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
@@ -35514,12 +35534,12 @@
}
}
}
-
+
// preserve third dimension
if(coords.length == 2) {
coords[2] = null;
}
-
+
if (this.xy) {
return new OpenLayers.Geometry.Point(coords[0], coords[1],
coords[2]);
@@ -35529,7 +35549,7 @@
coords[2]);
}
},
-
+
/**
* Method: parseGeometry.multipoint
* Given a GML node representing a multipoint geometry, create an
@@ -35556,7 +35576,7 @@
}
return new OpenLayers.Geometry.MultiPoint(components);
},
-
+
/**
* Method: parseGeometry.linestring
* Given a GML node representing a linestring geometry, create an
@@ -35638,7 +35658,7 @@
}
return line;
},
-
+
/**
* Method: parseGeometry.multilinestring
* Given a GML node representing a multilinestring geometry, create an
@@ -35666,7 +35686,7 @@
}
return new OpenLayers.Geometry.MultiLineString(components);
},
-
+
/**
* Method: parseGeometry.polygon
* Given a GML node representing a polygon geometry, create an
@@ -35695,7 +35715,7 @@
}
return new OpenLayers.Geometry.Polygon(components);
},
-
+
/**
* Method: parseGeometry.multipolygon
* Given a GML node representing a multipolygon geometry, create an
@@ -35723,22 +35743,22 @@
}
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;
}
@@ -35748,17 +35768,17 @@
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;
}
@@ -35768,21 +35788,21 @@
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;
+ return envelope;
}
},
-
+
/**
* Method: parseAttributes
*
@@ -35831,11 +35851,11 @@
}
return attributes;
},
-
+
/**
* APIMethod: write
- * Generate a GML document string given a list of features.
- *
+ * Generate a GML document string given a list of features.
+ *
* Parameters:
* features - {Array(<OpenLayers.Feature.Vector>)} List of features to
* serialize into a string.
@@ -35855,7 +35875,7 @@
return OpenLayers.Format.XML.prototype.write.apply(this, [gml]);
},
- /**
+ /**
* Method: createFeatureXML
* Accept an OpenLayers.Feature.Vector, and build a GML node for it.
*
@@ -35881,27 +35901,27 @@
featureContainer.setAttribute("fid", fid);
featureContainer.appendChild(geomContainer);
for(var attr in feature.attributes) {
- var attrText = this.createTextNode(feature.attributes[attr]);
+ 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,
+ geometry.transform(this.internalProjection,
this.externalProjection);
- }
+ }
var className = geometry.CLASS_NAME;
var type = className.substring(className.lastIndexOf(".") + 1);
var builder = this.buildGeometry[type.toLowerCase()];
@@ -35934,7 +35954,7 @@
gml.appendChild(this.buildCoordinatesNode(geometry));
return gml;
},
-
+
/**
* Method: buildGeometry.multipoint
* Given an OpenLayers multipoint geometry, create a GML multipoint.
@@ -35949,7 +35969,7 @@
var gml = this.createElementNS(this.gmlns, "gml:MultiPoint");
var points = geometry.components;
var pointMember, pointGeom;
- for(var i=0; i<points.length; i++) {
+ for(var i=0; i<points.length; i++) {
pointMember = this.createElementNS(this.gmlns,
"gml:pointMember");
pointGeom = this.buildGeometry.point.apply(this,
@@ -35957,9 +35977,9 @@
pointMember.appendChild(pointGeom);
gml.appendChild(pointMember);
}
- return gml;
+ return gml;
},
-
+
/**
* Method: buildGeometry.linestring
* Given an OpenLayers linestring geometry, create a GML linestring.
@@ -35975,7 +35995,7 @@
gml.appendChild(this.buildCoordinatesNode(geometry));
return gml;
},
-
+
/**
* Method: buildGeometry.multilinestring
* Given an OpenLayers multilinestring geometry, create a GML
@@ -36002,7 +36022,7 @@
}
return gml;
},
-
+
/**
* Method: buildGeometry.linearring
* Given an OpenLayers linearring geometry, create a GML linearring.
@@ -36018,7 +36038,7 @@
gml.appendChild(this.buildCoordinatesNode(geometry));
return gml;
},
-
+
/**
* Method: buildGeometry.polygon
* Given an OpenLayers polygon geometry, create a GML polygon.
@@ -36044,7 +36064,7 @@
}
return gml;
},
-
+
/**
* Method: buildGeometry.multipolygon
* Given an OpenLayers multipolygon geometry, create a GML multipolygon.
@@ -36071,7 +36091,7 @@
return gml;
},
-
+
/**
* Method: buildGeometry.bounds
* Given an OpenLayers bounds, create a GML box.
@@ -36095,8 +36115,8 @@
* (code)
* <gml:coordinates decimal="." cs="," ts=" ">...</gml:coordinates>
* (end)
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
+ * Parameters:
+ * geometry - {<OpenLayers.Geometry>}
*
* Returns:
* {XmlNode} created xmlNode
@@ -36116,17 +36136,17 @@
} else {
var points = (geometry.components) ? geometry.components : [geometry];
for(var i=0; i<points.length; i++) {
- parts.push(points[i].x + "," + points[i].y);
- }
+ parts.push(points[i].x + "," + points[i].y);
+ }
}
var txtNode = this.createTextNode(parts.join(" "));
coordinatesNode.appendChild(txtNode);
-
+
return coordinatesNode;
},
- CLASS_NAME: "OpenLayers.Format.GML"
+ CLASS_NAME: "OpenLayers.Format.GML"
});
/* ======================================================================
OpenLayers/Format/GML/Base.js
@@ -36157,7 +36177,7 @@
* - <OpenLayers.Format.XML>
*/
OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
-
+
/**
* Property: namespaces
* {Object} Mapping of namespace aliases to namespace URIs.
@@ -36168,7 +36188,7 @@
xsi: "http://www.w3.org/2001/XMLSchema-instance",
wfs: "http://www.opengis.net/wfs" // this is a convenience for reading wfs:FeatureCollection
},
-
+
/**
* Property: defaultPrefix
*/
@@ -36179,13 +36199,13 @@
* {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
@@ -36204,7 +36224,7 @@
* {Boolean} Extract attributes from GML. Default is true.
*/
extractAttributes: true,
-
+
/**
* APIProperty: srsName
* {String} URI for spatial reference system. This is optional for
@@ -36218,7 +36238,7 @@
* 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,
/**
@@ -36257,7 +36277,7 @@
* this instance.
*
* Valid options properties:
- * featureType - {Array(String) or String} Local (without prefix) feature
+ * featureType - {Array(String) or String} Local (without prefix) feature
* typeName(s) (required).
* featureNS - {String} Feature namespace (required).
* geometryName - {String} Geometry element name.
@@ -36270,7 +36290,7 @@
}
this.singleFeatureType = !options || (typeof options.featureType === "string");
},
-
+
/**
* Method: read
*
@@ -36282,7 +36302,7 @@
* {Array(<OpenLayers.Feature.Vector>)} An array of features.
*/
read: function(data) {
- if(typeof data == "string") {
+ if(typeof data == "string") {
data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
}
if(data && data.nodeType == 9) {
@@ -36312,7 +36332,7 @@
}
return features;
},
-
+
/**
* Property: readers
* Contains public functions, grouped by namespace prefix, that will
@@ -36327,7 +36347,7 @@
this.readChildNodes(node, obj);
},
"featureMembers": function(node, obj) {
- this.readChildNodes(node, obj);
+ this.readChildNodes(node, obj);
},
"name": function(node, obj) {
obj.name = this.getChildValue(node);
@@ -36465,7 +36485,7 @@
// geometry or attributes.
var name;
var local = node.localName || node.nodeName.split(":").pop();
- if (!this.singleFeatureType &&
+ if (!this.singleFeatureType &&
(OpenLayers.Util.indexOf(this.featureType, local) != -1)) {
name = "_typeName";
}
@@ -36532,7 +36552,7 @@
}
}
},
-
+
/**
* Method: write
*
@@ -36560,7 +36580,7 @@
return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
},
-
+
/**
* Property: writers
* As a compliment to the readers property, this structure contains public
@@ -36650,7 +36670,7 @@
geometry = geometry.clone().transform(
this.internalProjection, this.externalProjection
);
- }
+ }
var node = this.createElementNSPlus(
"feature:" + this.geometryName
);
@@ -36684,7 +36704,7 @@
}
}
},
-
+
/**
* Function: setGeometryTypes
* Sets the <geometryTypes> mapping.
@@ -36701,7 +36721,7 @@
};
},
- CLASS_NAME: "OpenLayers.Format.GML.Base"
+ CLASS_NAME: "OpenLayers.Format.GML.Base"
});
/* ======================================================================
@@ -36724,7 +36744,7 @@
* - <OpenLayers.Format.GML.Base>
*/
OpenLayers.Format.GML.v2 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
-
+
/**
* Property: schemaLocation
* {String} Schema location for a particular minor version.
@@ -36896,9 +36916,9 @@
"feature": OpenLayers.Format.GML.Base.prototype.writers["feature"],
"wfs": OpenLayers.Format.GML.Base.prototype.writers["wfs"]
},
-
- CLASS_NAME: "OpenLayers.Format.GML.v2"
+ CLASS_NAME: "OpenLayers.Format.GML.v2"
+
});
/* ======================================================================
OpenLayers/Format/GML/v3.js
@@ -36920,7 +36940,7 @@
* - <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
@@ -36937,7 +36957,7 @@
* instantiation).
*/
curve: false,
-
+
/**
* Property: multiCurve
* {Boolean} Write gml:MultiCurve instead of gml:MultiLineString. Since
@@ -36947,7 +36967,7 @@
* instantiation).
*/
multiCurve: true,
-
+
/**
* Property: surface
* {Boolean} Write gml:Surface instead of gml:Polygon elements. This also
@@ -37136,11 +37156,11 @@
this.readers.gml.pos.apply(this, [node, obj]);
container.points[1] = obj.points[0];
}
- }, OpenLayers.Format.GML.Base.prototype.readers["gml"]),
+ }, 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
*
@@ -37232,7 +37252,7 @@
}
return this.createElementNSPlus("gml:posList", {
value: parts.join(" ")
- });
+ });
},
"Surface": function(geometry) {
var node = this.createElementNSPlus("gml:Surface");
@@ -37361,7 +37381,7 @@
"OpenLayers.Geometry.Collection": "GeometryCollection"
};
},
-
- CLASS_NAME: "OpenLayers.Format.GML.v3"
+ CLASS_NAME: "OpenLayers.Format.GML.v3"
+
});
Modified: trunk/lib/OpenLayers/OpenLayers.js
===================================================================
--- trunk/lib/OpenLayers/OpenLayers.js 2010-04-15 16:26:04 UTC (rev 2142)
+++ trunk/lib/OpenLayers/OpenLayers.js 2010-04-15 20:04:19 UTC (rev 2143)
@@ -23,23 +23,23 @@
*
*--------------------------------------------------------------------------*/
-/**
-*
+/**
+*
* Contains portions of Rico <http://openrico.org/>
-*
-* Copyright 2005 Sabre Airline Solutions
-*
+*
+* Copyright 2005 Sabre Airline Solutions
+*
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
-* permissions and limitations under the License.
+* permissions and limitations under the License.
*
**/
@@ -111,11 +111,11 @@
* license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the
* full text of the license. */
-/*
+/*
* @requires OpenLayers/BaseTypes.js
* @requires OpenLayers/Lang/en.js
* @requires OpenLayers/Console.js
- */
+ */
(function() {
/**
@@ -125,13 +125,13 @@
* case with single file builds.
*/
var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);
-
+
/**
* Namespace: OpenLayers
* The OpenLayers object provides a namespace for all things OpenLayers
*/
window.OpenLayers = {
-
+
/**
* Property: _scriptName
* {String} Relative path of this script.
@@ -146,9 +146,9 @@
* {String} Path to this script
*/
_getScriptLocation: function () {
- var scriptLocation = "";
+ var scriptLocation = "";
var isOL = new RegExp("(^|(.*?\\/))(" + OpenLayers._scriptName + ")(\\?|$)");
-
+
var scripts = document.getElementsByTagName('script');
for (var i=0, len=scripts.length; i<len; i++) {
var src = scripts[i].getAttribute('src');
@@ -166,11 +166,11 @@
/**
* OpenLayers.singleFile is a flag indicating this file is being included
* in a Single File Library build of the OpenLayers Library.
- *
+ *
* When we are *not* part of a SFL build we dynamically include the
* OpenLayers library code.
- *
- * When we *are* part of a SFL build we do not dynamically include the
+ *
+ * When we *are* part of a SFL build we do not dynamically include the
* OpenLayers library code as it will be appended at the end of this file.
*/
if(!singleFile) {
@@ -282,7 +282,7 @@
"OpenLayers/Geometry/MultiPoint.js",
"OpenLayers/Geometry/Curve.js",
"OpenLayers/Geometry/LineString.js",
- "OpenLayers/Geometry/LinearRing.js",
+ "OpenLayers/Geometry/LinearRing.js",
"OpenLayers/Geometry/Polygon.js",
"OpenLayers/Geometry/MultiLineString.js",
"OpenLayers/Geometry/MultiPolygon.js",
@@ -382,16 +382,16 @@
if(docWrite) {
var allScriptTags = new Array(jsfiles.length);
}
- var host = OpenLayers._getScriptLocation() + "lib/";
+ var host = OpenLayers._getScriptLocation() + "lib/";
for (var i=0, len=jsfiles.length; i<len; i++) {
if (docWrite) {
allScriptTags[i] = "<script src='" + host + jsfiles[i] +
- "'></script>";
+ "'></script>";
} else {
var s = document.createElement("script");
s.src = host + jsfiles[i];
- var h = document.getElementsByTagName("head").length ?
- document.getElementsByTagName("head")[0] :
+ var h = document.getElementsByTagName("head").length ?
+ document.getElementsByTagName("head")[0] :
document.body;
h.appendChild(s);
}
@@ -423,7 +423,7 @@
*/
OpenLayers.Util = {};
-/**
+/**
* Function: getElement
* This is the old $() from prototype
*/
@@ -443,7 +443,7 @@
return elements;
};
-/**
+/**
* Maintain existing definition of $.
*/
if(typeof window.$ === "undefined") {
@@ -497,7 +497,7 @@
};
-/**
+/**
* Function: removeItem
* Remove an object from an array. Iterates through the array
* to find the item, then removes it.
@@ -505,7 +505,7 @@
* Parameters:
* array - {Array}
* item - {Object}
- *
+ *
* Return
* {Array} A reference to the array
*/
@@ -523,7 +523,7 @@
* Function: clearArray
* *Deprecated*. This function will disappear in 3.0.
* Please use "array.length = 0" instead.
- *
+ *
* Parameters:
* array - {Array}
*/
@@ -536,14 +536,14 @@
array.length = 0;
};
-/**
+/**
* Function: indexOf
* Seems to exist already in FF, but not in MOZ.
- *
+ *
* Parameters:
* array - {Array}
* obj - {Object}
- *
+ *
* Returns:
* {Integer} The index at, which the object was found in the array.
* If not found, returns -1.
@@ -555,29 +555,29 @@
return i;
}
}
- return -1;
+ return -1;
};
/**
* Function: modifyDOMElement
- *
- * Modifies many properties of a DOM element all at once. Passing in
+ *
+ * Modifies many properties of a DOM element all at once. Passing in
* null to an individual parameter will avoid setting the attribute.
*
* Parameters:
* id - {String} The element id attribute to set.
* px - {<OpenLayers.Pixel>} The left and top style position.
* sz - {<OpenLayers.Size>} The width and height style attributes.
- * position - {String} The position attribute. eg: absolute,
+ * position - {String} The position attribute. eg: absolute,
* relative, etc.
* border - {String} The style.border attribute. eg:
* solid black 2px
- * overflow - {String} The style.overview attribute.
+ * overflow - {String} The style.overview attribute.
* opacity - {Float} Fractional value (0.0 - 1.0)
*/
-OpenLayers.Util.modifyDOMElement = function(element, id, px, sz, position,
+OpenLayers.Util.modifyDOMElement = function(element, id, px, sz, position,
border, overflow, opacity) {
if (id) {
@@ -609,32 +609,32 @@
}
};
-/**
+/**
* Function: createDiv
* Creates a new div and optionally set some standard attributes.
* Null may be passed to each parameter if you do not wish to
* set a particular attribute.
* Note - zIndex is NOT set on the resulting div.
- *
+ *
* Parameters:
* id - {String} An identifier for this element. If no id is
- * passed an identifier will be created
+ * passed an identifier will be created
* automatically.
- * px - {<OpenLayers.Pixel>} The element left and top position.
+ * px - {<OpenLayers.Pixel>} The element left and top position.
* sz - {<OpenLayers.Size>} The element width and height.
- * imgURL - {String} A url pointing to an image to use as a
+ * imgURL - {String} A url pointing to an image to use as a
* background image.
* position - {String} The style.position value. eg: absolute,
* relative etc.
- * border - {String} The the style.border value.
+ * border - {String} The the style.border value.
* eg: 2px solid black
* overflow - {String} The style.overflow value. Eg. hidden
* opacity - {Float} Fractional value (0.0 - 1.0)
- *
- * Returns:
+ *
+ * Returns:
* {DOMElement} A DOM Div created with the specified attributes.
*/
-OpenLayers.Util.createDiv = function(id, px, sz, imgURL, position,
+OpenLayers.Util.createDiv = function(id, px, sz, imgURL, position,
border, overflow, opacity) {
var dom = document.createElement('div');
@@ -650,7 +650,7 @@
if (!position) {
position = "absolute";
}
- OpenLayers.Util.modifyDOMElement(dom, id, px, sz, position,
+ OpenLayers.Util.modifyDOMElement(dom, id, px, sz, position,
border, overflow, opacity);
return dom;
@@ -659,7 +659,7 @@
/**
* Function: createImage
* Creates an img element with specific attribute values.
- *
+ *
* Parameters:
* id - {String} The id field for the img. If none assigned one will be
* automatically generated.
@@ -671,7 +671,7 @@
* opacity - {Float} Fractional value (0.0 - 1.0)
* delayDisplay - {Boolean} If true waits until the image has been
* loaded.
- *
+ *
* Returns:
* {DOMElement} A DOM Image created with the specified attributes.
*/
@@ -687,18 +687,18 @@
if (!position) {
position = "relative";
}
- OpenLayers.Util.modifyDOMElement(image, id, px, sz, position,
+ OpenLayers.Util.modifyDOMElement(image, id, px, sz, position,
border, null, opacity);
if(delayDisplay) {
image.style.display = "none";
- OpenLayers.Event.observe(image, "load",
+ OpenLayers.Event.observe(image, "load",
OpenLayers.Function.bind(OpenLayers.Util.onImageLoad, image));
- OpenLayers.Event.observe(image, "error",
+ OpenLayers.Event.observe(image, "error",
OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError, image));
-
+
}
-
+
//set special properties
image.style.alt = id;
image.galleryImg = "no";
@@ -707,17 +707,17 @@
}
-
+
return image;
};
/**
* Function: setOpacity
- * *Deprecated*. This function has been deprecated. Instead, please use
- * <OpenLayers.Util.modifyDOMElement>
- * or
+ * *Deprecated*. This function has been deprecated. Instead, please use
+ * <OpenLayers.Util.modifyDOMElement>
+ * or
* <OpenLayers.Util.modifyAlphaImageDiv>
- *
+ *
* Set the opacity of a DOM Element
* Note that for this function to work in IE, elements must "have layout"
* according to:
@@ -739,23 +739,23 @@
*/
OpenLayers.Util.onImageLoad = function() {
// The complex check here is to solve issues described in #480.
- // Every time a map view changes, it increments the 'viewRequestID'
+ // Every time a map view changes, it increments the 'viewRequestID'
// property. As the requests for the images for the new map view are sent
- // out, they are tagged with this unique viewRequestID.
- //
- // If an image has no viewRequestID property set, we display it regardless,
- // but if it does have a viewRequestID property, we check that it matches
+ // out, they are tagged with this unique viewRequestID.
+ //
+ // If an image has no viewRequestID property set, we display it regardless,
+ // but if it does have a viewRequestID property, we check that it matches
// the viewRequestID set on the map.
- //
+ //
// If the viewRequestID on the map has changed, that means that the user
// has changed the map view since this specific request was sent out, and
// therefore this tile does not need to be displayed (so we do not execute
// this code that turns its display on).
//
if (!this.viewRequestID ||
- (this.map && this.viewRequestID == this.map.viewRequestID)) {
+ (this.map && this.viewRequestID == this.map.viewRequestID)) {
this.style.backgroundColor ="transparent";
- this.style.display = "";
+ this.style.display = "";
}
};
@@ -774,7 +774,7 @@
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 0;
/**
- * Function: onImageLoadError
+ * Function: onImageLoadError
*/
OpenLayers.Util.onImageLoadError = function() {
this._attempts = (this._attempts) ? (this._attempts + 1) : 1;
@@ -816,7 +816,7 @@
* Checks whether it's necessary (and possible) to use the png alpha
* hack which allows alpha transparency for png images under Internet
* Explorer.
- *
+ *
* Returns:
* {Boolean} true if the png alpha hack is necessary and possible, false otherwise.
*/
@@ -825,25 +825,25 @@
var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);
var filter = false;
-
- // IEs4Lin dies when trying to access document.body.filters, because
+
+ // IEs4Lin dies when trying to access document.body.filters, because
// the property is there, but requires a DLL that can't be provided. This
// means that we need to wrap this in a try/catch so that this can
// continue.
-
- try {
+
+ try {
filter = !!(document.body.filters);
- } catch (e) {}
-
- OpenLayers.Util.alphaHackNeeded = (filter &&
+ } catch (e) {}
+
+ OpenLayers.Util.alphaHackNeeded = (filter &&
(version >= 5.5) && (version < 7));
}
return OpenLayers.Util.alphaHackNeeded;
};
-/**
+/**
* Function: modifyAlphaImageDiv
- *
+ *
* div - {DOMElement} Div containing Alpha-adjusted Image
* id - {String}
* px - {<OpenLayers.Pixel>}
@@ -853,9 +853,9 @@
* border - {String}
* sizing {String} 'crop', 'scale', or 'image'. Default is "scale"
* opacity - {Float} Fractional value (0.0 - 1.0)
- */
-OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL,
- position, border, sizing,
+ */
+OpenLayers.Util.modifyAlphaImageDiv = function(div, id, px, sz, imgURL,
+ position, border, sizing,
opacity) {
OpenLayers.Util.modifyDOMElement(div, id, px, sz, position,
@@ -866,9 +866,9 @@
if (imgURL) {
img.src = imgURL;
}
- OpenLayers.Util.modifyDOMElement(img, div.id + "_innerImage", null, sz,
+ OpenLayers.Util.modifyDOMElement(img, div.id + "_innerImage", null, sz,
"relative", border);
-
+
if (OpenLayers.Util.alphaHack()) {
if(div.style.display != "none") {
div.style.display = "inline-block";
@@ -876,11 +876,11 @@
if (sizing == null) {
sizing = "scale";
}
-
+
div.style.filter = "progid:DXImageTransform.Microsoft" +
".AlphaImageLoader(src='" + img.src + "', " +
"sizingMethod='" + sizing + "')";
- if (parseFloat(div.style.opacity) >= 0.0 &&
+ if (parseFloat(div.style.opacity) >= 0.0 &&
parseFloat(div.style.opacity) < 1.0) {
div.style.filter += " alpha(opacity=" + div.style.opacity * 100 + ")";
}
@@ -889,9 +889,9 @@
}
};
-/**
+/**
* Function: createAlphaImageDiv
- *
+ *
* id - {String}
* px - {<OpenLayers.Pixel>}
* sz - {<OpenLayers.Size>}
@@ -902,17 +902,17 @@
* opacity - {Float} Fractional value (0.0 - 1.0)
* delayDisplay - {Boolean} If true waits until the image has been
* loaded.
- *
+ *
* Returns:
- * {DOMElement} A DOM Div created with a DOM Image inside it. If the hack is
+ * {DOMElement} A DOM Div created with a DOM Image inside it. If the hack is
* needed for transparency in IE, it is added.
- */
-OpenLayers.Util.createAlphaImageDiv = function(id, px, sz, imgURL,
- position, border, sizing,
+ */
+OpenLayers.Util.createAlphaImageDiv = function(id, px, sz, imgURL,
+ position, border, sizing,
opacity, delayDisplay) {
-
+
var div = OpenLayers.Util.createDiv();
- var img = OpenLayers.Util.createImage(null, null, null, null, null, null,
+ var img = OpenLayers.Util.createImage(null, null, null, null, null, null,
null, false);
div.appendChild(img);
@@ -924,23 +924,23 @@
OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError, div));
}
- OpenLayers.Util.modifyAlphaImageDiv(div, id, px, sz, imgURL, position,
+ OpenLayers.Util.modifyAlphaImageDiv(div, id, px, sz, imgURL, position,
border, sizing, opacity);
-
+
return div;
};
-/**
+/**
* Function: upperCaseObject
- * Creates a new hashtable and copies over all the keys from the
+ * Creates a new hashtable and copies over all the keys from the
* passed-in object, but storing them under an uppercased
* version of the key at which they were stored.
- *
- * Parameters:
+ *
+ * Parameters:
* object - {Object}
- *
- * Returns:
+ *
+ * Returns:
* {Object} A new Object with all the same keys but uppercased
*/
OpenLayers.Util.upperCaseObject = function (object) {
@@ -951,12 +951,12 @@
return uObject;
};
-/**
+/**
* Function: applyDefaults
* Takes an object and copies any properties that don't exist from
* another properties, by analogy with OpenLayers.Util.extend() from
* Prototype.js.
- *
+ *
* Parameters:
* to - {Object} The destination object.
* from - {Object} The source object. Any properties of this object that
@@ -992,27 +992,27 @@
&& from.hasOwnProperty('toString') && !to.hasOwnProperty('toString')) {
to.toString = from.toString;
}
-
+
return to;
};
/**
* Function: getParameterString
- *
+ *
* Parameters:
* params - {Object}
- *
+ *
* Returns:
- * {String} A concatenation of the properties of an object in
- * http parameter notation.
+ * {String} A concatenation of the properties of an object in
+ * http parameter notation.
* (ex. <i>"key1=value1&key2=value2&key3=value3"</i>)
* If a parameter is actually a list, that parameter will then
* be set to a comma-seperated list of values (foo,bar) instead
- * of being URL escaped (foo%3Abar).
+ * of being URL escaped (foo%3Abar).
*/
OpenLayers.Util.getParameterString = function(params) {
var paramsArray = [];
-
+
for (var key in params) {
var value = params[key];
if ((value != null) && (typeof value != 'function')) {
@@ -1032,7 +1032,7 @@
paramsArray.push(encodeURIComponent(key) + "=" + encodedValue);
}
}
-
+
return paramsArray.join("&");
};
@@ -1042,9 +1042,9 @@
*/
OpenLayers.ImgPath = '';
-/**
+/**
* Function: getImagesLocation
- *
+ *
* Returns:
* {String} The fully formatted image location string
*/
@@ -1053,18 +1053,18 @@
};
-/**
+/**
* Function: Try
- * Execute functions until one of them doesn't throw an error.
+ * Execute functions until one of them doesn't throw an error.
* Capitalized because "try" is a reserved word in JavaScript.
* Taken directly from OpenLayers.Util.Try()
- *
+ *
* Parameters:
* [*] - {Function} Any number of parameters may be passed to Try()
- * It will attempt to execute each of them until one of them
- * successfully executes.
+ * It will attempt to execute each of them until one of them
+ * successfully executes.
* If none executes successfully, returns null.
- *
+ *
* Returns:
* {*} The value returned by the first successfully executed function.
*/
@@ -1083,15 +1083,15 @@
};
-/**
+/**
* Function: getNodes
- *
+ *
* These could/should be made namespace aware?
- *
+ *
* Parameters:
* p - {}
* tagName - {String}
- *
+ *
* Returns:
* {Array}
*/
@@ -1110,11 +1110,11 @@
/**
* Function: _getNodes
- *
+ *
* Parameters:
* nodes - {Array}
* tagName - {String}
- *
+ *
* Returns:
* {Array}
*/
@@ -1133,12 +1133,12 @@
/**
* Function: getTagText
- *
+ *
* Parameters:
* parent - {}
* item - {String}
* index - {Integer}
- *
+ *
* Returns:
* {String}
*/
@@ -1150,28 +1150,28 @@
index=0;
}
if (result[index].childNodes.length > 1) {
- return result.childNodes[1].nodeValue;
+ return result.childNodes[1].nodeValue;
}
else if (result[index].childNodes.length == 1) {
- return result[index].firstChild.nodeValue;
+ return result[index].firstChild.nodeValue;
}
- } else {
- return "";
+ } else {
+ return "";
}
};
/**
* Function: getXmlNodeValue
- *
+ *
* Parameters:
* node - {XMLNode}
- *
+ *
* Returns:
* {String} The text value of the given node, without breaking in firefox or IE
*/
OpenLayers.Util.getXmlNodeValue = function(node) {
var val = null;
- OpenLayers.Util.Try(
+ OpenLayers.Util.Try(
function() {
val = node.text;
if (!val) {
@@ -1180,20 +1180,20 @@
if (!val) {
val = node.firstChild.nodeValue;
}
- },
+ },
function() {
val = node.textContent;
- });
+ });
return val;
};
-/**
+/**
* Function: mouseLeft
- *
+ *
* Parameters:
* evt - {Event}
* div - {HTMLDivElement}
- *
+ *
* Returns:
* {Boolean}
*/
@@ -1255,10 +1255,10 @@
/**
* Function: rad
- *
+ *
* Parameters:
* x - {Float}
- *
+ *
* Returns:
* {Float}
*/
@@ -1269,11 +1269,11 @@
* Given two objects representing points with geographic coordinates, this
* calculates the distance between those points on the surface of an
* ellipsoid.
- *
+ *
* Parameters:
* p1 - {<OpenLayers.LonLat>} (or any object with both .lat, .lon properties)
* p2 - {<OpenLayers.LonLat>} (or any object with both .lat, .lon properties)
- *
+ *
* Returns:
* {Float} The distance (in km) between the two input points as measured on an
* ellipsoid. Note that the input point objects must be in geographic
@@ -1320,14 +1320,14 @@
/**
* Function: getParameters
- * Parse the parameters from a URL or from the current page itself into a
+ * Parse the parameters from a URL or from the current page itself into a
* JavaScript Object. Note that parameter values with commas are separated
* out into an Array.
- *
+ *
* Parameters:
* url - {String} Optional url used to extract the query string.
* If null, query string is taken from page location.
- *
+ *
* Returns:
* {Object} An object of key/value pairs from the query string.
*/
@@ -1343,7 +1343,7 @@
url.indexOf('#') : url.length;
paramsString = url.substring(start, end);
}
-
+
var parameters = {};
var pairs = paramsString.split(/[&;]/);
for(var i=0, len=pairs.length; i<len; ++i) {
@@ -1358,11 +1358,11 @@
value[j] = decodeURIComponent(value[j]);
}
- //if there's only one value, do not return as array
+ //if there's only one value, do not return as array
if (value.length == 1) {
value = value[0];
- }
-
+ }
+
parameters[key] = value;
}
}
@@ -1373,11 +1373,11 @@
* Function: getArgs
* *Deprecated*. Will be removed in 3.0. Please use instead
* <OpenLayers.Util.getParameters>
- *
+ *
* Parameters:
* url - {String} Optional url used to extract the query string.
* If null, query string is taken from page location.
- *
+ *
* Returns:
* {Object} An object of key/value pairs from the query string.
*/
@@ -1402,10 +1402,10 @@
* Create a unique identifier for this session. Each time this function
* is called, a counter is incremented. The return will be the optional
* prefix (defaults to "id_") appended with the counter value.
- *
+ *
* Parameters:
* prefix {String} Optionsal string to prefix unique id. Default is "id_".
- *
+ *
* Returns:
* {String} A unique id string, built on the passed in prefix.
*/
@@ -1413,8 +1413,8 @@
if (prefix == null) {
prefix = "id_";
}
- OpenLayers.Util.lastSeqID += 1;
- return prefix + OpenLayers.Util.lastSeqID;
+ OpenLayers.Util.lastSeqID += 1;
+ return prefix + OpenLayers.Util.lastSeqID;
};
/**
@@ -1426,7 +1426,7 @@
* The hardcoded table is maintain in a CS-MAP source code module named CSdataU.c
* The hardcoded table of PROJ.4 units are in pj_units.c.
*/
-OpenLayers.INCHES_PER_UNIT = {
+OpenLayers.INCHES_PER_UNIT = {
'inches': 1.0,
'ft': 12.0,
'mi': 63360.0,
@@ -1512,8 +1512,8 @@
"ch": OpenLayers.INCHES_PER_UNIT["IntnlChain"], //International Chain
"link": OpenLayers.INCHES_PER_UNIT["IntnlLink"], //International Link
"us-in": OpenLayers.INCHES_PER_UNIT["inches"], //U.S. Surveyor's Inch
- "us-ft": OpenLayers.INCHES_PER_UNIT["Foot"], //U.S. Surveyor's Foot
- "us-yd": OpenLayers.INCHES_PER_UNIT["Yard"], //U.S. Surveyor's Yard
+ "us-ft": OpenLayers.INCHES_PER_UNIT["Foot"], //U.S. Surveyor's Foot
+ "us-yd": OpenLayers.INCHES_PER_UNIT["Yard"], //U.S. Surveyor's Yard
"us-ch": OpenLayers.INCHES_PER_UNIT["GunterChain"], //U.S. Surveyor's Chain
"us-mi": OpenLayers.INCHES_PER_UNIT["Mile"], //U.S. Surveyor's Statute Mile
"ind-yd": OpenLayers.INCHES_PER_UNIT["IndianYd37"], //Indian Yard
@@ -1521,7 +1521,7 @@
"ind-ch": 20.11669506 / OpenLayers.METERS_PER_INCH //Indian Chain
});
-/**
+/**
* Constant: DOTS_PER_INCH
* {Integer} 72 (A sensible default)
*/
@@ -1529,32 +1529,32 @@
/**
* Function: normalizeScale
- *
+ *
* Parameters:
* scale - {float}
- *
+ *
* Returns:
- * {Float} A normalized scale value, in 1 / X format.
+ * {Float} A normalized scale value, in 1 / X format.
* This means that if a value less than one ( already 1/x) is passed
- * in, it just returns scale directly. Otherwise, it returns
+ * in, it just returns scale directly. Otherwise, it returns
* 1 / scale
*/
OpenLayers.Util.normalizeScale = function (scale) {
- var normScale = (scale > 1.0) ? (1.0 / scale)
+ var normScale = (scale > 1.0) ? (1.0 / scale)
: scale;
return normScale;
};
/**
* Function: getResolutionFromScale
- *
+ *
* Parameters:
* scale - {Float}
* units - {String} Index into OpenLayers.INCHES_PER_UNIT hashtable.
* Default is degrees
- *
+ *
* Returns:
- * {Float} The corresponding resolution given passed-in scale and unit
+ * {Float} The corresponding resolution given passed-in scale and unit
* parameters.
*/
OpenLayers.Util.getResolutionFromScale = function (scale, units) {
@@ -1572,14 +1572,14 @@
/**
* Function: getScaleFromResolution
- *
+ *
* Parameters:
* resolution - {Float}
* units - {String} Index into OpenLayers.INCHES_PER_UNIT hashtable.
* Default is degrees
- *
+ *
* Returns:
- * {Float} The corresponding scale given passed-in resolution and unit
+ * {Float} The corresponding scale given passed-in resolution and unit
* parameters.
*/
OpenLayers.Util.getScaleFromResolution = function (resolution, units) {
@@ -1595,13 +1595,13 @@
/**
* Function: safeStopPropagation
- * *Deprecated*. This function has been deprecated. Please use directly
- * <OpenLayers.Event.stop> passing 'true' as the 2nd
+ * *Deprecated*. This function has been deprecated. Please use directly
+ * <OpenLayers.Event.stop> passing 'true' as the 2nd
* argument (preventDefault)
- *
+ *
* Safely stop the propagation of an event *without* preventing
* the default browser action from occurring.
- *
+ *
* Parameter:
* evt - {Event}
*/
@@ -1611,11 +1611,11 @@
/**
* Function: pagePositon
- * Calculates the position of an element on the page.
+ * Calculates the position of an element on the page.
*
* Parameters:
* forElement - {DOMElement}
- *
+ *
* Returns:
* {Array} two item array, L value then T value.
*/
@@ -1631,7 +1631,7 @@
break;
}
}
-
+
valueT += element.offsetTop || 0;
valueL += element.offsetLeft || 0;
@@ -1652,25 +1652,25 @@
valueL -= element.scrollLeft || 0;
element = element.parentNode;
}
-
+
return [valueL, valueT];
};
-/**
+/**
* Function: isEquivalentUrl
- * Test two URLs for equivalence.
- *
+ * Test two URLs for equivalence.
+ *
* Setting 'ignoreCase' allows for case-independent comparison.
- *
- * Comparison is based on:
+ *
+ * Comparison is based on:
* - Protocol
* - Host (evaluated without the port)
* - Port (set 'ignorePort80' to ignore "80" values)
* - Hash ( set 'ignoreHash' to disable)
- * - Pathname (for relative <-> absolute comparison)
+ * - Pathname (for relative <-> absolute comparison)
* - Arguments (so they can be out of order)
- *
+ *
* Parameters:
* url1 - {String}
* url2 - {String}
@@ -1714,22 +1714,22 @@
for(var key in urlObj2.args) {
return false;
}
-
+
return true;
};
/**
* Function: createUrlObject
- *
+ *
* Parameters:
* url - {String}
* options - {Object} A hash of options. Can be one of:
* ignoreCase: lowercase url,
* ignorePort80: don't include explicit port if port is 80,
* ignoreHash: Don't include part of url after the hash (#).
- *
+ *
* Returns:
- * {Object} An object with separate url, a, port, host, and args parsed out
+ * {Object} An object with separate url, a, port, host, and args parsed out
* and ready for comparison
*/
OpenLayers.Util.createUrlObject = function(url, options) {
@@ -1750,21 +1750,21 @@
url = fullUrl + parts.join("/") + "/" + url;
}
}
-
+
if (options.ignoreCase) {
- url = url.toLowerCase();
+ url = url.toLowerCase();
}
var a = document.createElement('a');
a.href = url;
-
+
var urlObject = {};
-
+
//host (without port)
urlObject.host = a.host.split(":").shift();
//protocol
- urlObject.protocol = a.protocol;
+ urlObject.protocol = a.protocol;
//port (get uniform browser behavior with port 80 here)
if(options.ignorePort80) {
@@ -1774,8 +1774,8 @@
}
//hash
- urlObject.hash = (options.ignoreHash || a.hash === "#") ? "" : a.hash;
-
+ urlObject.hash = (options.ignoreHash || a.hash === "#") ? "" : a.hash;
+
//args
var queryString = a.search;
if (!queryString) {
@@ -1786,30 +1786,30 @@
//pathname (uniform browser behavior with leading "/")
urlObject.pathname = (a.pathname.charAt(0) == "/") ? a.pathname : "/" + a.pathname;
-
- return urlObject;
+
+ return urlObject;
};
-
+
/**
* Function: removeTail
* Takes a url and removes everything after the ? and #
- *
+ *
* Parameters:
* url - {String} The url to process
- *
+ *
* Returns:
* {String} The string with all queryString and Hash removed
*/
OpenLayers.Util.removeTail = function(url) {
var head = null;
-
+
var qMark = url.indexOf("?");
var hashMark = url.indexOf("#");
if (qMark == -1) {
head = (hashMark != -1) ? url.substr(0,hashMark) : url;
} else {
- head = (hashMark != -1) ? url.substr(0,Math.min(qMark, hashMark))
+ head = (hashMark != -1) ? url.substr(0,Math.min(qMark, hashMark))
: url.substr(0, qMark);
}
return head;
@@ -1818,24 +1818,24 @@
/**
* Function: getBrowserName
- *
+ *
* Returns:
- * {String} A string which specifies which is the current
- * browser in which we are running.
- *
+ * {String} A string which specifies which is the current
+ * browser in which we are running.
+ *
* Currently-supported browser detection and codes:
* * 'opera' -- Opera
* * 'msie' -- Internet Explorer
* * 'safari' -- Safari
* * 'firefox' -- FireFox
* * 'mozilla' -- Mozilla
- *
- * If we are unable to property identify the browser, we
+ *
+ * If we are unable to property identify the browser, we
* return an empty string.
*/
OpenLayers.Util.getBrowserName = function() {
var browserName = "";
-
+
var ua = navigator.userAgent.toLowerCase();
if ( ua.indexOf( "opera" ) != -1 ) {
browserName = "opera";
@@ -1850,46 +1850,46 @@
browserName = "mozilla";
}
}
-
+
return browserName;
};
-
+
/**
* Method: getRenderedDimensions
* Renders the contentHTML offscreen to determine actual dimensions for
* popup sizing. As we need layout to determine dimensions the content
- * is rendered -9999px to the left and absolute to ensure the
+ * is rendered -9999px to the left and absolute to ensure the
* scrollbars do not flicker
- *
+ *
* Parameters:
* contentHTML
- * size - {<OpenLayers.Size>} If either the 'w' or 'h' properties is
- * specified, we fix that dimension of the div to be measured. This is
- * useful in the case where we have a limit in one dimension and must
+ * size - {<OpenLayers.Size>} If either the 'w' or 'h' properties is
+ * specified, we fix that dimension of the div to be measured. This is
+ * useful in the case where we have a limit in one dimension and must
* therefore meaure the flow in the other dimension.
* options - {Object}
* displayClass - {String} Optional parameter. A CSS class name(s) string
* to provide the CSS context of the rendered content.
- * containerElement - {DOMElement} Optional parameter. Insert the HTML to
- * this node instead of the body root when calculating dimensions.
- *
+ * containerElement - {DOMElement} Optional parameter. Insert the HTML to
+ * this node instead of the body root when calculating dimensions.
+ *
* Returns:
* {OpenLayers.Size}
*/
OpenLayers.Util.getRenderedDimensions = function(contentHTML, size, options) {
-
+
var w, h;
-
+
// create temp container div with restricted size
var container = document.createElement("div");
container.style.visibility = "hidden";
-
- var containerElement = (options && options.containerElement)
- ? options.containerElement : document.body;
+ var containerElement = (options && options.containerElement)
+ ? options.containerElement : document.body;
+
//fix a dimension, if specified.
if (size) {
if (size.w) {
@@ -1905,11 +1905,11 @@
if (options && options.displayClass) {
container.className = options.displayClass;
}
-
+
// create temp content div and assign content
var content = document.createElement("div");
content.innerHTML = contentHTML;
-
+
// we need overflow visible when calculating the size
content.style.overflow = "visible";
if (content.childNodes) {
@@ -1918,13 +1918,13 @@
content.childNodes[i].style.overflow = "visible";
}
}
-
- // add content to restricted container
+
+ // add content to restricted container
container.appendChild(content);
-
+
// append container to body for rendering
containerElement.appendChild(container);
-
+
// Opera and IE7 can't handle a node with position:aboslute if it inherits
// position:absolute from a parent.
var parentHasPositionAbsolute = false;
@@ -1943,14 +1943,14 @@
if(!parentHasPositionAbsolute) {
container.style.position = "absolute";
}
-
+
// calculate scroll width of content and add corners and shadow width
if (!w) {
w = parseInt(content.scrollWidth);
-
+
// update container width to allow height to adjust
container.style.width = w + "px";
- }
+ }
// capture height and add shadow and corner image widths
if (!h) {
h = parseInt(content.scrollHeight);
@@ -1959,35 +1959,35 @@
// remove elements
container.removeChild(content);
containerElement.removeChild(container);
-
+
return new OpenLayers.Size(w, h);
};
/**
* APIFunction: getScrollbarWidth
* This function has been modified by the OpenLayers from the original version,
- * written by Matthew Eernisse and released under the Apache 2
+ * written by Matthew Eernisse and released under the Apache 2
* license here:
- *
+ *
* http://www.fleegix.org/articles/2006/05/30/getting-the-scrollbar-width-in-pixels
- *
- * It has been modified simply to cache its value, since it is physically
- * impossible that this code could ever run in more than one browser at
- * once.
- *
+ *
+ * It has been modified simply to cache its value, since it is physically
+ * impossible that this code could ever run in more than one browser at
+ * once.
+ *
* Returns:
* {Integer}
*/
OpenLayers.Util.getScrollbarWidth = function() {
-
+
var scrollbarWidth = OpenLayers.Util._scrollbarWidth;
-
+
if (scrollbarWidth == null) {
var scr = null;
var inn = null;
var wNoScroll = 0;
var wScroll = 0;
-
+
// Outer scrolling div
scr = document.createElement('div');
scr.style.position = 'absolute';
@@ -1997,28 +1997,28 @@
scr.style.height = '50px';
// Start with no scrollbar
scr.style.overflow = 'hidden';
-
+
// Inner content div
inn = document.createElement('div');
inn.style.width = '100%';
inn.style.height = '200px';
-
+
// Put the inner div in the scrolling div
scr.appendChild(inn);
// Append the scrolling div to the doc
document.body.appendChild(scr);
-
+
// Width of the inner div sans scrollbar
wNoScroll = inn.offsetWidth;
-
+
// Add the scrollbar
scr.style.overflow = 'scroll';
// Width of the inner div width scrollbar
wScroll = inn.offsetWidth;
-
+
// Remove the scrolling div from the doc
document.body.removeChild(document.body.lastChild);
-
+
// Pixel width of the scroller
OpenLayers.Util._scrollbarWidth = (wNoScroll - wScroll);
scrollbarWidth = OpenLayers.Util._scrollbarWidth;
@@ -2046,7 +2046,7 @@
* Note that behavior will differ with the Firebug extention and Firebug Lite.
* Most notably, the Firebug Lite console does not currently allow for
* hyperlinks to code or for clicking on object to explore their properties.
- *
+ *
*/
OpenLayers.Console = {
/**
@@ -2055,7 +2055,7 @@
* included. We explicitly require the Firebug Lite script to trigger
* functionality of the OpenLayers.Console methods.
*/
-
+
/**
* APIFunction: log
* Log an object in the console. The Firebug Lite console logs string
@@ -2065,7 +2065,7 @@
* will be used in string substitution. Any additional arguments (beyond
* the number substituted in a format string) will be appended in a space-
* delimited line.
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2077,7 +2077,7 @@
* where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2089,7 +2089,7 @@
* coding and a hyperlink to the line where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2101,7 +2101,7 @@
* color coding and a hyperlink to the line where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2113,12 +2113,12 @@
* coding and a hyperlink to the line where it was called.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
error: function() {},
-
+
/**
* APIFunction: userError
* A single interface for showing error messages to the user. The default
@@ -2126,7 +2126,7 @@
* reassigning OpenLayers.Console.userError to a different function.
*
* Expects a single error message
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2140,7 +2140,7 @@
* the console and throw an exception.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2150,7 +2150,7 @@
* APIFunction: dir
* Prints an interactive listing of all properties of the object. This
* looks identical to the view that you would see in the DOM tab.
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2161,7 +2161,7 @@
* Prints the XML source tree of an HTML or XML element. This looks
* identical to the view that you would see in the HTML tab. You can click
* on any node to inspect it in the HTML tab.
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2174,7 +2174,7 @@
* as well as the values that were passed as arguments to each function.
* You can click each function to take you to its source in the Script tab,
* and click each argument value to inspect it in the DOM or HTML tabs.
- *
+ *
*/
trace: function() {},
@@ -2185,7 +2185,7 @@
* to close the block.
*
* May be called with multiple arguments as with OpenLayers.Console.log().
- *
+ *
* Parameters:
* object - {Object}
*/
@@ -2197,7 +2197,7 @@
* OpenLayers.Console.group
*/
groupEnd: function() {},
-
+
/**
* APIFunction: time
* Creates a new timer under the given name. Call
@@ -2225,7 +2225,7 @@
* contain the text to be printed in the header of the profile report.
*
* This function is not currently implemented in Firebug Lite.
- *
+ *
* Parameters:
* title - {String} Optional title for the profiler
*/
@@ -2234,7 +2234,7 @@
/**
* APIFunction: profileEnd
* Turns off the JavaScript profiler and prints its report.
- *
+ *
* This function is not currently implemented in Firebug Lite.
*/
profileEnd: function() {},
@@ -2293,8 +2293,8 @@
* @requires OpenLayers/Lang/en.js
* @requires OpenLayers/Console.js
*/
-
-/**
+
+/**
* Header: OpenLayers Base Types
* OpenLayers custom string, number and function functions are described here.
*/
@@ -2307,12 +2307,12 @@
/**
* APIFunction: startsWith
- * Test whether a string starts with another string.
- *
+ * Test whether a string starts with another string.
+ *
* Parameters:
* str - {String} The string to test.
* sub - {Sring} The substring to look for.
- *
+ *
* Returns:
* {Boolean} The first string starts with the second.
*/
@@ -2323,43 +2323,43 @@
/**
* APIFunction: contains
* Test whether a string contains another string.
- *
+ *
* Parameters:
* str - {String} The string to test.
* sub - {String} The substring to look for.
- *
+ *
* Returns:
* {Boolean} The first string contains the second.
*/
contains: function(str, sub) {
return (str.indexOf(sub) != -1);
},
-
+
/**
* APIFunction: trim
* Removes leading and trailing whitespace characters from a string.
- *
+ *
* Parameters:
* str - {String} The (potentially) space padded string. This string is not
* modified.
- *
+ *
* Returns:
- * {String} A trimmed version of the string with all leading and
+ * {String} A trimmed version of the string with all leading and
* trailing spaces removed.
*/
trim: function(str) {
return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
},
-
+
/**
* APIFunction: camelize
- * Camel-case a hyphenated string.
+ * Camel-case a hyphenated string.
* Ex. "chicken-head" becomes "chickenHead", and
* "-chicken-head" becomes "ChickenHead".
*
* Parameters:
* str - {String} The string to be camelized. The original is not modified.
- *
+ *
* Returns:
* {String} The string, camelized
*/
@@ -2372,7 +2372,7 @@
}
return camelizedString;
},
-
+
/**
* APIFunction: format
* Given a string with tokens in the form ${token}, return a string
@@ -2399,7 +2399,7 @@
context = window;
}
- // Example matching:
+ // Example matching:
// str = ${foo.bar}
// match = foo.bar
var replacer = function(str, match) {
@@ -2425,13 +2425,13 @@
}
// If replacement is undefined, return the string 'undefined'.
- // This is a workaround for a bugs in browsers not properly
+ // This is a workaround for a bugs in browsers not properly
// dealing with non-participating groups in regular expressions:
// http://blog.stevenlevithan.com/archives/npcg-javascript
if (typeof replacement == 'undefined') {
return 'undefined';
} else {
- return replacement;
+ return replacement;
}
};
@@ -2444,13 +2444,13 @@
* Examples: ${a}, ${a.b.c}, ${a-b}, ${5}
*/
tokenRegEx: /\$\{([\w.]+?)\}/g,
-
+
/**
* Property: OpenLayers.String.numberRegEx
* Used to test strings as numbers.
*/
numberRegEx: /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/,
-
+
/**
* APIFunction: OpenLayers.String.isNumeric
* Determine whether a string contains only a numeric value.
@@ -2469,14 +2469,14 @@
isNumeric: function(value) {
return OpenLayers.String.numberRegEx.test(value);
},
-
+
/**
* APIFunction: numericIf
* Converts a string that appears to be a numeric value into a number.
- *
+ *
* Returns
* {Number|String} a Number if the passed value is a number, a String
- * otherwise.
+ * otherwise.
*/
numericIf: function(value) {
return OpenLayers.String.isNumeric(value) ? parseFloat(value) : value;
@@ -2487,11 +2487,11 @@
if (!String.prototype.startsWith) {
/**
* APIMethod: String.startsWith
- * *Deprecated*. Whether or not a string starts with another string.
- *
+ * *Deprecated*. Whether or not a string starts with another string.
+ *
* Parameters:
* sStart - {Sring} The string we're testing for.
- *
+ *
* Returns:
* {Boolean} Whether or not this string starts with the string passed in.
*/
@@ -2506,10 +2506,10 @@
/**
* APIMethod: String.contains
* *Deprecated*. Whether or not a string contains another string.
- *
+ *
* Parameters:
* str - {String} The string that we're testing for.
- *
+ *
* Returns:
* {Boolean} Whether or not this string contains with the string passed in.
*/
@@ -2524,9 +2524,9 @@
/**
* APIMethod: String.trim
* *Deprecated*. Removes leading and trailing whitespace characters from a string.
- *
+ *
* Returns:
- * {String} A trimmed version of the string - all leading and
+ * {String} A trimmed version of the string - all leading and
* trailing spaces removed
*/
String.prototype.trim = function() {
@@ -2539,10 +2539,10 @@
if (!String.prototype.camelize) {
/**
* APIMethod: String.camelize
- * *Deprecated*. Camel-case a hyphenated string.
+ * *Deprecated*. Camel-case a hyphenated string.
* Ex. "chicken-head" becomes "chickenHead", and
* "-chicken-head" becomes "ChickenHead".
- *
+ *
* Returns:
* {String} The string, camelized
*/
@@ -2564,21 +2564,21 @@
* Decimal separator to use when formatting numbers.
*/
decimalSeparator: ".",
-
+
/**
* Property: thousandsSeparator
* Thousands separator to use when formatting numbers.
*/
thousandsSeparator: ",",
-
+
/**
* APIFunction: limitSigDigs
* Limit the number of significant digits on a float.
- *
+ *
* Parameters:
* num - {Float}
* sig - {Integer}
- *
+ *
* Returns:
* {Float} The number, rounded to the specified number of significant
* digits.
@@ -2590,11 +2590,11 @@
}
return fig;
},
-
+
/**
* APIFunction: format
* Formats a number for output.
- *
+ *
* Parameters:
* num - {Float}
* dec - {Integer} Number of decimal places to round to.
@@ -2608,9 +2608,9 @@
* {String} A string representing the formatted number.
*/
format: function(num, dec, tsep, dsep) {
- dec = (typeof dec != "undefined") ? dec : 0;
+ dec = (typeof dec != "undefined") ? dec : 0;
tsep = (typeof tsep != "undefined") ? tsep :
- OpenLayers.Number.thousandsSeparator;
+ OpenLayers.Number.thousandsSeparator;
dsep = (typeof dsep != "undefined") ? dsep :
OpenLayers.Number.decimalSeparator;
@@ -2623,15 +2623,15 @@
// integer where we do not want to touch the decimals
dec = 0;
}
-
+
var integer = parts[0];
if (tsep) {
- var thousands = /(-?[0-9]+)([0-9]{3})/;
- while(thousands.test(integer)) {
- integer = integer.replace(thousands, "$1" + tsep + "$2");
+ var thousands = /(-?[0-9]+)([0-9]{3})/;
+ while(thousands.test(integer)) {
+ integer = integer.replace(thousands, "$1" + tsep + "$2");
}
}
-
+
var str;
if (dec == 0) {
str = integer;
@@ -2651,10 +2651,10 @@
* APIMethod: Number.limitSigDigs
* *Deprecated*. Limit the number of significant digits on an integer. Does *not*
* work with floats!
- *
+ *
* Parameters:
* sig - {Integer}
- *
+ *
* Returns:
* {Integer} The number, rounded to the specified number of significant digits.
* If null, 0, or negative value passed in, returns 0
@@ -2675,11 +2675,11 @@
* APIFunction: bind
* Bind a function to an object. Method to easily create closures with
* 'this' altered.
- *
+ *
* Parameters:
* func - {Function} Input function.
* object - {Object} The object to bind to the input function (as this).
- *
+ *
* Returns:
* {Function} A closure with 'this' set to the passed in object.
*/
@@ -2695,16 +2695,16 @@
return func.apply(object, newArgs);
};
},
-
+
/**
* APIFunction: bindAsEventListener
* Bind a function to an object, and configure it to receive the event
- * object as first parameter when called.
- *
+ * object as first parameter when called.
+ *
* Parameters:
* func - {Function} Input function to serve as an event listener.
* object - {Object} A reference to this.
- *
+ *
* Returns:
* {Function}
*/
@@ -2718,12 +2718,12 @@
if (!Function.prototype.bind) {
/**
* APIMethod: Function.bind
- * *Deprecated*. Bind a function to an object.
+ * *Deprecated*. Bind a function to an object.
* Method to easily create closures with 'this' altered.
- *
+ *
* Parameters:
* object - {Object} the this parameter
- *
+ *
* Returns:
* {Function} A closure with 'this' altered to the first
* argument.
@@ -2741,11 +2741,11 @@
/**
* APIMethod: Function.bindAsEventListener
* *Deprecated*. Bind a function to an object, and configure it to receive the
- * event object as first parameter when called.
- *
+ * event object as first parameter when called.
+ *
* Parameters:
* object - {Object} A reference to this.
- *
+ *
* Returns:
* {Function}
*/
@@ -2802,11 +2802,11 @@
selected.push(val);
}
}
- }
+ }
}
return selected;
}
-
+
};
/* ======================================================================
OpenLayers/BaseTypes/Class.js
@@ -2818,13 +2818,13 @@
/**
* Constructor: OpenLayers.Class
- * Base class used to construct all other classes. Includes support for
- * multiple inheritance.
- *
- * This constructor is new in OpenLayers 2.5. At OpenLayers 3.0, the old
- * syntax for creating classes and dealing with inheritance
+ * Base class used to construct all other classes. Includes support for
+ * multiple inheritance.
+ *
+ * This constructor is new in OpenLayers 2.5. At OpenLayers 3.0, the old
+ * syntax for creating classes and dealing with inheritance
* will be removed.
- *
+ *
* To create a new OpenLayers-style class, use the following syntax:
* > var MyClass = OpenLayers.Class(prototype);
*
@@ -2945,7 +2945,7 @@
* {Number} width
*/
w: 0.0,
-
+
/**
* APIProperty: h
* {Number} height
@@ -2971,7 +2971,7 @@
* Return the string representation of a size object
*
* Returns:
- * {String} The string representation of OpenLayers.Size object.
+ * {String} The string representation of OpenLayers.Size object.
* (ex. <i>"w=55,h=66"</i>)
*/
toString:function() {
@@ -2998,7 +2998,7 @@
* Parameters:
* sz - {<OpenLayers.Size>}
*
- * Returns:
+ * Returns:
* {Boolean} The passed in size has the same h and w properties as this one.
* Note that if sz passed in is null, returns false.
*
@@ -3031,7 +3031,7 @@
* Instances of this class represent bounding boxes. Data stored as left,
* bottom, right, top floats. All values are initialized to null, however,
* you should make sure you set them before using the bounds for anything.
- *
+ *
* Possible use case:
* > bounds = new OpenLayers.Bounds();
* > bounds.extend(new OpenLayers.LonLat(4,5));
@@ -3063,7 +3063,7 @@
* {Number} Maximum vertical coordinate.
*/
top: null,
-
+
/**
* Property: centerLonLat
* {<OpenLayers.LonLat>} A cached center location. This should not be
@@ -3106,7 +3106,7 @@
* {<OpenLayers.Bounds>} A fresh copy of the bounds
*/
clone:function() {
- return new OpenLayers.Bounds(this.left, this.bottom,
+ return new OpenLayers.Bounds(this.left, this.bottom,
this.right, this.top);
},
@@ -3119,25 +3119,25 @@
*
* Returns:
* {Boolean} The passed-in bounds object has the same left,
- * right, top, bottom components as this. Note that if bounds
+ * right, top, bottom components as this. Note that if bounds
* passed in is null, returns false.
*/
equals:function(bounds) {
var equals = false;
if (bounds != null) {
- equals = ((this.left == bounds.left) &&
+ equals = ((this.left == bounds.left) &&
(this.right == bounds.right) &&
- (this.top == bounds.top) &&
+ (this.top == bounds.top) &&
(this.bottom == bounds.bottom));
}
return equals;
},
- /**
+ /**
* APIMethod: toString
- *
+ *
* Returns:
- * {String} String representation of bounds object.
+ * {String} String representation of bounds object.
* (ex.<i>"left-bottom=(5,42) right-top=(10,45)"</i>)
*/
toString:function() {
@@ -3153,32 +3153,32 @@
*/
toArray: function() {
return [this.left, this.bottom, this.right, this.top];
- },
+ },
- /**
+ /**
* APIMethod: toBBOX
- *
+ *
* Parameters:
* decimal - {Integer} How many significant digits in the bbox coords?
* Default is 6
- *
+ *
* Returns:
* {String} Simple String representation of bounds object.
* (ex. <i>"5,42,10,45"</i>)
*/
toBBOX:function(decimal) {
if (decimal== null) {
- decimal = 6;
+ decimal = 6;
}
var mult = Math.pow(10, decimal);
- var bbox = Math.round(this.left * mult) / mult + "," +
- Math.round(this.bottom * mult) / mult + "," +
- Math.round(this.right * mult) / mult + "," +
+ var bbox = Math.round(this.left * mult) / mult + "," +
+ Math.round(this.bottom * mult) / mult + "," +
+ Math.round(this.right * mult) / mult + "," +
Math.round(this.top * mult) / mult;
return bbox;
},
-
+
/**
* APIMethod: toGeometry
* Create a new polygon geometry based on this bounds.
@@ -3197,10 +3197,10 @@
])
]);
},
-
+
/**
* APIMethod: getWidth
- *
+ *
* Returns:
* {Float} The width of the bounds
*/
@@ -3210,7 +3210,7 @@
/**
* APIMethod: getHeight
- *
+ *
* Returns:
* {Float} The height of the bounds (top minus bottom).
*/
@@ -3220,7 +3220,7 @@
/**
* APIMethod: getSize
- *
+ *
* Returns:
* {<OpenLayers.Size>} The size of the box.
*/
@@ -3230,7 +3230,7 @@
/**
* APIMethod: getCenterPixel
- *
+ *
* Returns:
* {<OpenLayers.Pixel>} The center of the bounds in pixel space.
*/
@@ -3241,7 +3241,7 @@
/**
* APIMethod: getCenterLonLat
- *
+ *
* Returns:
* {<OpenLayers.LonLat>} The center of the bounds in map space.
*/
@@ -3256,12 +3256,12 @@
/**
* Method: scale
- * Scales the bounds around a pixel or lonlat. Note that the new
+ * Scales the bounds around a pixel or lonlat. Note that the new
* bounds may return non-integer properties, even if a pixel
- * is passed.
- *
+ * is passed.
+ *
* Parameters:
- * ratio - {Float}
+ * ratio - {Float}
* origin - {<OpenLayers.Pixel> or <OpenLayers.LonLat>}
* Default is center.
*
@@ -3276,7 +3276,7 @@
}
var bounds = [];
-
+
var origx,origy;
// get origin coordinates
@@ -3292,17 +3292,17 @@
var bottom = (this.bottom - origy) * ratio + origy;
var right = (this.right - origx) * ratio + origx;
var top = (this.top - origy) * ratio + origy;
-
+
return new OpenLayers.Bounds(left, bottom, right, top);
},
/**
* APIMethod: add
- *
+ *
* Parameters:
* x - {Float}
* y - {Float}
- *
+ *
* Returns:
* {<OpenLayers.Bounds>} A new bounds whose coordinates are the same as
* this, but shifted by the passed-in x and y values.
@@ -3316,13 +3316,13 @@
return new OpenLayers.Bounds(this.left + x, this.bottom + y,
this.right + x, this.top + y);
},
-
+
/**
* APIMethod: extend
* Extend the bounds to include the point, lonlat, or bounds specified.
* Note, this function assumes that left < right and bottom < top.
- *
- * Parameters:
+ *
+ * Parameters:
* object - {Object} Can be LonLat, Point, or Bounds
*/
extend:function(object) {
@@ -3330,7 +3330,7 @@
if (object) {
// clear cached center location
switch(object.CLASS_NAME) {
- case "OpenLayers.LonLat":
+ case "OpenLayers.LonLat":
bounds = new OpenLayers.Bounds(object.lon, object.lat,
object.lon, object.lat);
break;
@@ -3338,12 +3338,12 @@
bounds = new OpenLayers.Bounds(object.x, object.y,
object.x, object.y);
break;
-
- case "OpenLayers.Bounds":
+
+ case "OpenLayers.Bounds":
bounds = object;
break;
}
-
+
if (bounds) {
this.centerLonLat = null;
if ( (this.left == null) || (bounds.left < this.left)) {
@@ -3351,11 +3351,11 @@
}
if ( (this.bottom == null) || (bounds.bottom < this.bottom) ) {
this.bottom = bounds.bottom;
- }
+ }
if ( (this.right == null) || (bounds.right > this.right) ) {
this.right = bounds.right;
}
- if ( (this.top == null) || (bounds.top > this.top) ) {
+ if ( (this.top == null) || (bounds.top > this.top) ) {
this.top = bounds.top;
}
}
@@ -3364,7 +3364,7 @@
/**
* APIMethod: containsLonLat
- *
+ *
* Parameters:
* ll - {<OpenLayers.LonLat>}
* inclusive - {Boolean} Whether or not to include the border.
@@ -3379,7 +3379,7 @@
/**
* APIMethod: containsPixel
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
* inclusive - {Boolean} Whether or not to include the border. Default is
@@ -3391,10 +3391,10 @@
containsPixel:function(px, inclusive) {
return this.contains(px.x, px.y, inclusive);
},
-
+
/**
* APIMethod: contains
- *
+ *
* Parameters:
* x - {Float}
* y - {Float}
@@ -3420,12 +3420,12 @@
var contains = false;
if (inclusive) {
- contains = ((x >= this.left) && (x <= this.right) &&
+ contains = ((x >= this.left) && (x <= this.right) &&
(y >= this.bottom) && (y <= this.top));
} else {
- contains = ((x > this.left) && (x < this.right) &&
+ contains = ((x > this.left) && (x < this.right) &&
(y > this.bottom) && (y < this.top));
- }
+ }
return contains;
},
@@ -3434,7 +3434,7 @@
* Determine whether the target bounds intersects this bounds. Bounds are
* considered intersecting if any of their edges intersect or if one
* bounds contains the other.
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>} The target bounds.
* inclusive - {Boolean} Treat coincident borders as intersecting. Default
@@ -3455,7 +3455,7 @@
this.top == bounds.bottom ||
this.bottom == bounds.top
);
-
+
// if the two bounds only touch at an edge, and inclusive is false,
// then the bounds don't *really* intersect.
if (inclusive || !mightTouch) {
@@ -3481,11 +3481,11 @@
}
return intersects;
},
-
+
/**
* APIMethod: containsBounds
* Determine whether the target bounds is contained within this bounds.
- *
+ *
* bounds - {<OpenLayers.Bounds>} The target bounds.
* partial - {Boolean} If any of the target corners is within this bounds
* consider the bounds contained. Default is false. If true, the
@@ -3494,7 +3494,7 @@
* true.
*
* Returns:
- * {Boolean} The passed-in bounds object is contained within this bounds.
+ * {Boolean} The passed-in bounds object is contained within this bounds.
*/
containsBounds:function(bounds, partial, inclusive) {
if (partial == null) {
@@ -3507,39 +3507,39 @@
var bottomRight = this.contains(bounds.right, bounds.bottom, inclusive);
var topLeft = this.contains(bounds.left, bounds.top, inclusive);
var topRight = this.contains(bounds.right, bounds.top, inclusive);
-
+
return (partial) ? (bottomLeft || bottomRight || topLeft || topRight)
: (bottomLeft && bottomRight && topLeft && topRight);
},
- /**
+ /**
* APIMethod: determineQuadrant
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
* {String} The quadrant ("br" "tr" "tl" "bl") of the bounds in which the
* coordinate lies.
*/
determineQuadrant: function(lonlat) {
-
+
var quadrant = "";
var center = this.getCenterLonLat();
-
+
quadrant += (lonlat.lat < center.lat) ? "b" : "t";
quadrant += (lonlat.lon < center.lon) ? "l" : "r";
-
- return quadrant;
+
+ return quadrant;
},
-
+
/**
* APIMethod: transform
- * Transform the Bounds object from source to dest.
+ * Transform the Bounds object from source to dest.
*
- * Parameters:
- * source - {<OpenLayers.Projection>} Source projection.
- * dest - {<OpenLayers.Projection>} Destination projection.
+ * Parameters:
+ * source - {<OpenLayers.Projection>} Source projection.
+ * dest - {<OpenLayers.Projection>} Destination projection.
*
* Returns:
* {<OpenLayers.Bounds>} Itself, for use in chaining operations.
@@ -3564,68 +3564,68 @@
/**
* APIMethod: wrapDateLine
- *
+ *
* Parameters:
* maxExtent - {<OpenLayers.Bounds>}
* options - {Object} Some possible options are:
- * leftTolerance - {float} Allow for a margin of error
- * with the 'left' value of this
+ * leftTolerance - {float} Allow for a margin of error
+ * with the 'left' value of this
* bound.
* Default is 0.
- * rightTolerance - {float} Allow for a margin of error
- * with the 'right' value of
+ * rightTolerance - {float} Allow for a margin of error
+ * with the 'right' value of
* this bound.
* Default is 0.
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A copy of this bounds, but wrapped around the
- * "dateline" (as specified by the borders of
- * maxExtent). Note that this function only returns
- * a different bounds value if this bounds is
- * *entirely* outside of the maxExtent. If this
- * bounds straddles the dateline (is part in/part
- * out of maxExtent), the returned bounds will be
+ * {<OpenLayers.Bounds>} A copy of this bounds, but wrapped around the
+ * "dateline" (as specified by the borders of
+ * maxExtent). Note that this function only returns
+ * a different bounds value if this bounds is
+ * *entirely* outside of the maxExtent. If this
+ * bounds straddles the dateline (is part in/part
+ * out of maxExtent), the returned bounds will be
* merely a copy of this one.
*/
- wrapDateLine: function(maxExtent, options) {
+ wrapDateLine: function(maxExtent, options) {
options = options || {};
-
+
var leftTolerance = options.leftTolerance || 0;
var rightTolerance = options.rightTolerance || 0;
var newBounds = this.clone();
-
+
if (maxExtent) {
//shift right?
- while ( newBounds.left < maxExtent.left &&
- (newBounds.right - rightTolerance) <= maxExtent.left ) {
+ while ( newBounds.left < maxExtent.left &&
+ (newBounds.right - rightTolerance) <= maxExtent.left ) {
newBounds = newBounds.add(maxExtent.getWidth(), 0);
}
//shift left?
- while ( (newBounds.left + leftTolerance) >= maxExtent.right &&
- newBounds.right > maxExtent.right ) {
+ while ( (newBounds.left + leftTolerance) >= maxExtent.right &&
+ newBounds.right > maxExtent.right ) {
newBounds = newBounds.add(-maxExtent.getWidth(), 0);
}
}
-
+
return newBounds;
},
CLASS_NAME: "OpenLayers.Bounds"
});
-/**
+/**
* APIFunction: fromString
- * Alternative constructor that builds a new OpenLayers.Bounds from a
+ * Alternative constructor that builds a new OpenLayers.Bounds from a
* parameter string
- *
- * Parameters:
+ *
+ * Parameters:
* str - {String}Comma-separated bounds string. (ex. <i>"5,42,10,45"</i>)
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} New bounds object built from the
+ * {<OpenLayers.Bounds>} New bounds object built from the
* passed-in String.
*/
OpenLayers.Bounds.fromString = function(str) {
@@ -3633,11 +3633,11 @@
return OpenLayers.Bounds.fromArray(bounds);
};
-/**
+/**
* APIFunction: fromArray
* Alternative constructor that builds a new OpenLayers.Bounds
* from an array
- *
+ *
* Parameters:
* bbox - {Array(Float)} Array of bounds values (ex. <i>[5,42,10,45]</i>)
*
@@ -3651,13 +3651,13 @@
parseFloat(bbox[3]));
};
-/**
+/**
* APIFunction: fromSize
* Alternative constructor that builds a new OpenLayers.Bounds
* from a size
- *
+ *
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*
* Returns:
* {<OpenLayers.Bounds>} New bounds object built from the passed-in size.
@@ -3677,16 +3677,16 @@
* quadrant - {String} two character quadrant shortstring
*
* Returns:
- * {String} The opposing quadrant ("br" "tr" "tl" "bl"). For Example, if
- * you pass in "bl" it returns "tr", if you pass in "br" it
+ * {String} The opposing quadrant ("br" "tr" "tl" "bl"). For Example, if
+ * you pass in "bl" it returns "tr", if you pass in "br" it
* returns "tl", etc.
*/
OpenLayers.Bounds.oppositeQuadrant = function(quadrant) {
var opp = "";
-
+
opp += (quadrant.charAt(0) == 't') ? 'b' : 't';
opp += (quadrant.charAt(1) == 'l') ? 'r' : 'l';
-
+
return opp;
};
/* ======================================================================
@@ -3704,10 +3704,10 @@
/**
* APIFunction: visible
- *
- * Parameters:
+ *
+ * Parameters:
* element - {DOMElement}
- *
+ *
* Returns:
* {Boolean} Is the element visible?
*/
@@ -3718,14 +3718,14 @@
/**
* APIFunction: toggle
* Toggle the visibility of element(s) passed in
- *
+ *
* Parameters:
* element - {DOMElement} Actually user can pass any number of elements
*/
toggle: function() {
for (var i=0, len=arguments.length; i<len; i++) {
var element = OpenLayers.Util.getElement(arguments[i]);
- var display = OpenLayers.Element.visible(element) ? 'hide'
+ var display = OpenLayers.Element.visible(element) ? 'hide'
: 'show';
OpenLayers.Element[display](element);
}
@@ -3735,7 +3735,7 @@
/**
* APIFunction: hide
* Hide element(s) passed in
- *
+ *
* Parameters:
* element - {DOMElement} Actually user can pass any number of elements
*/
@@ -3749,7 +3749,7 @@
/**
* APIFunction: show
* Show element(s) passed in
- *
+ *
* Parameters:
* element - {DOMElement} Actually user can pass any number of elements
*/
@@ -3763,7 +3763,7 @@
/**
* APIFunction: remove
* Remove the specified element from the DOM.
- *
+ *
* Parameters:
* element - {DOMElement}
*/
@@ -3774,10 +3774,10 @@
/**
* APIFunction: getHeight
- *
+ *
* Parameters:
* element - {DOMElement}
- *
+ *
* Returns:
* {Integer} The offset height of the element passed in
*/
@@ -3788,12 +3788,12 @@
/**
* APIFunction: getDimensions
- *
+ *
* Parameters:
* element - {DOMElement}
- *
+ *
* Returns:
- * {Object} Object with 'width' and 'height' properties which are the
+ * {Object} Object with 'width' and 'height' properties which are the
* dimensions of the element passed in.
*/
getDimensions: function(element) {
@@ -3801,7 +3801,7 @@
if (OpenLayers.Element.getStyle(element, 'display') != 'none') {
return {width: element.offsetWidth, height: element.offsetHeight};
}
-
+
// All *Width and *Height properties give 0 on elements with display none,
// so enable the element temporarily
var els = element.style;
@@ -3833,7 +3833,7 @@
var names = element.className;
return (!!names && new RegExp("(^|\\s)" + name + "(\\s|$)").test(names));
},
-
+
/**
* Function: addClass
* Add a CSS class name to an element. Safe where element already has
@@ -3900,11 +3900,11 @@
/**
* APIFunction: getStyle
- *
+ *
* Parameters:
* element - {DOMElement}
* style - {?}
- *
+ *
* Returns:
* {?}
*/
@@ -3915,24 +3915,24 @@
if (element && element.style) {
value = element.style[OpenLayers.String.camelize(style)];
if (!value) {
- if (document.defaultView &&
+ if (document.defaultView &&
document.defaultView.getComputedStyle) {
-
+
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css.getPropertyValue(style) : null;
} else if (element.currentStyle) {
value = element.currentStyle[OpenLayers.String.camelize(style)];
}
}
-
+
var positions = ['left', 'top', 'right', 'bottom'];
if (window.opera &&
(OpenLayers.Util.indexOf(positions,style) != -1) &&
- (OpenLayers.Element.getStyle(element, 'position') == 'static')) {
+ (OpenLayers.Element.getStyle(element, 'position') == 'static')) {
value = 'auto';
}
}
-
+
return value == 'auto' ? null : value;
}
@@ -3955,13 +3955,13 @@
*/
OpenLayers.LonLat = OpenLayers.Class({
- /**
+ /**
* APIProperty: lon
* {Float} The x-axis coodinate in map units
*/
lon: 0.0,
-
- /**
+
+ /**
* APIProperty: lat
* {Float} The y-axis coordinate in map units
*/
@@ -3983,51 +3983,51 @@
this.lon = OpenLayers.Util.toFloat(lon);
this.lat = OpenLayers.Util.toFloat(lat);
},
-
+
/**
* Method: toString
* Return a readable string version of the lonlat
*
* Returns:
- * {String} String representation of OpenLayers.LonLat object.
+ * {String} String representation of OpenLayers.LonLat object.
* (ex. <i>"lon=5,lat=42"</i>)
*/
toString:function() {
return ("lon=" + this.lon + ",lat=" + this.lat);
},
- /**
+ /**
* APIMethod: toShortString
- *
+ *
* Returns:
- * {String} Shortened String representation of OpenLayers.LonLat object.
+ * {String} Shortened String representation of OpenLayers.LonLat object.
* (ex. <i>"5, 42"</i>)
*/
toShortString:function() {
return (this.lon + ", " + this.lat);
},
- /**
+ /**
* APIMethod: clone
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} New OpenLayers.LonLat object with the same lon
+ * {<OpenLayers.LonLat>} New OpenLayers.LonLat object with the same lon
* and lat values
*/
clone:function() {
return new OpenLayers.LonLat(this.lon, this.lat);
},
- /**
+ /**
* APIMethod: add
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} A new OpenLayers.LonLat object with the lon and
- * lat passed-in added to this's.
+ * {<OpenLayers.LonLat>} A new OpenLayers.LonLat object with the lon and
+ * lat passed-in added to this's.
*/
add:function(lon, lat) {
if ( (lon == null) || (lat == null) ) {
@@ -4038,15 +4038,15 @@
return new OpenLayers.LonLat(this.lon + lon, this.lat + lat);
},
- /**
+ /**
* APIMethod: equals
- *
+ *
* Parameters:
* ll - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
- * {Boolean} Boolean value indicating whether the passed-in
- * <OpenLayers.LonLat> object has the same lon and lat
+ * {Boolean} Boolean value indicating whether the passed-in
+ * <OpenLayers.LonLat> object has the same lon and lat
* components as this.
* Note: if ll passed in is null, returns false
*/
@@ -4064,9 +4064,9 @@
* Transform the LonLat object from source to dest. This transformation is
* *in place*: if you want a *new* lonlat, use .clone() first.
*
- * Parameters:
- * source - {<OpenLayers.Projection>} Source projection.
- * dest - {<OpenLayers.Projection>} Destination projection.
+ * Parameters:
+ * source - {<OpenLayers.Projection>} Source projection.
+ * dest - {<OpenLayers.Projection>} Destination projection.
*
* Returns:
* {<OpenLayers.LonLat>} Itself, for use in chaining operations.
@@ -4078,56 +4078,56 @@
this.lat = point.y;
return this;
},
-
+
/**
* APIMethod: wrapDateLine
- *
+ *
* Parameters:
* maxExtent - {<OpenLayers.Bounds>}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} A copy of this lonlat, but wrapped around the
- * "dateline" (as specified by the borders of
+ * {<OpenLayers.LonLat>} A copy of this lonlat, but wrapped around the
+ * "dateline" (as specified by the borders of
* maxExtent)
*/
- wrapDateLine: function(maxExtent) {
+ wrapDateLine: function(maxExtent) {
var newLonLat = this.clone();
-
+
if (maxExtent) {
//shift right?
while (newLonLat.lon < maxExtent.left) {
newLonLat.lon += maxExtent.getWidth();
- }
-
+ }
+
//shift left?
while (newLonLat.lon > maxExtent.right) {
newLonLat.lon -= maxExtent.getWidth();
- }
+ }
}
-
+
return newLonLat;
},
CLASS_NAME: "OpenLayers.LonLat"
});
-/**
+/**
* Function: fromString
- * Alternative constructor that builds a new <OpenLayers.LonLat> from a
+ * Alternative constructor that builds a new <OpenLayers.LonLat> from a
* parameter string
- *
+ *
* Parameters:
- * str - {String} Comma-separated Lon,Lat coordinate string.
+ * str - {String} Comma-separated Lon,Lat coordinate string.
* (ex. <i>"5,40"</i>)
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} New <OpenLayers.LonLat> object built from the
+ * {<OpenLayers.LonLat>} New <OpenLayers.LonLat> object built from the
* passed-in String.
*/
OpenLayers.LonLat.fromString = function(str) {
var pair = str.split(",");
- return new OpenLayers.LonLat(parseFloat(pair[0]),
+ return new OpenLayers.LonLat(parseFloat(pair[0]),
parseFloat(pair[1]));
};
/* ======================================================================
@@ -4147,7 +4147,7 @@
* This class represents a screen coordinate, in x and y coordinates
*/
OpenLayers.Pixel = OpenLayers.Class({
-
+
/**
* APIProperty: x
* {Number} The x coordinate
@@ -4159,7 +4159,7 @@
* {Number} The y coordinate
*/
y: 0.0,
-
+
/**
* Constructor: OpenLayers.Pixel
* Create a new OpenLayers.Pixel instance
@@ -4175,7 +4175,7 @@
this.x = parseFloat(x);
this.y = parseFloat(y);
},
-
+
/**
* Method: toString
* Cast this object into a string
@@ -4195,9 +4195,9 @@
* {<OpenLayers.Pixel>} A clone pixel
*/
clone:function() {
- return new OpenLayers.Pixel(this.x, this.y);
+ return new OpenLayers.Pixel(this.x, this.y);
},
-
+
/**
* APIMethod: equals
* Determine whether one pixel is equivalent to another
@@ -4226,7 +4226,7 @@
* y - {Integer}
*
* Returns:
- * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
+ * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
* values passed in.
*/
add:function(x, y) {
@@ -4240,12 +4240,12 @@
/**
* APIMethod: offset
- *
+ *
* Parameters
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
+ * {<OpenLayers.Pixel>} A new Pixel with this pixel's x&y augmented by the
* x&y values of the pixel passed in.
*/
offset:function(px) {
@@ -4269,62 +4269,62 @@
/**
* Class: OpenLayers.Icon
- *
+ *
* The icon represents a graphical icon on the screen. Typically used in
* conjunction with a <OpenLayers.Marker> to represent markers on a screen.
*
- * An icon has a url, size and position. It also contains an offset which
+ * An icon has a url, size and position. It also contains an offset which
* allows the center point to be represented correctly. This can be
* provided either as a fixed offset or a function provided to calculate
- * the desired offset.
- *
+ * the desired offset.
+ *
*/
OpenLayers.Icon = OpenLayers.Class({
-
- /**
- * Property: url
+
+ /**
+ * Property: url
* {String} image url
*/
url: null,
-
- /**
- * Property: size
- * {<OpenLayers.Size>}
+
+ /**
+ * Property: size
+ * {<OpenLayers.Size>}
*/
size: null,
- /**
- * Property: offset
+ /**
+ * Property: offset
* {<OpenLayers.Pixel>} distance in pixels to offset the image when being rendered
*/
- offset: null,
-
- /**
- * Property: calculateOffset
- * {<OpenLayers.Pixel>} Function to calculate the offset (based on the size)
+ offset: null,
+
+ /**
+ * Property: calculateOffset
+ * {<OpenLayers.Pixel>} Function to calculate the offset (based on the size)
*/
- calculateOffset: null,
-
- /**
- * Property: imageDiv
- * {DOMElement}
+ calculateOffset: null,
+
+ /**
+ * Property: imageDiv
+ * {DOMElement}
*/
imageDiv: null,
- /**
- * Property: px
- * {<OpenLayers.Pixel>}
+ /**
+ * Property: px
+ * {<OpenLayers.Pixel>}
*/
px: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Icon
- * Creates an icon, which is an image tag in a div.
+ * Creates an icon, which is an image tag in a div.
*
- * url - {String}
- * size - {<OpenLayers.Size>}
+ * url - {String}
+ * size - {<OpenLayers.Size>}
* offset - {<OpenLayers.Pixel>}
- * calculateOffset - {Function}
+ * calculateOffset - {Function}
*/
initialize: function(url, size, offset, calculateOffset) {
this.url = url;
@@ -4335,39 +4335,39 @@
var id = OpenLayers.Util.createUniqueID("OL_Icon_");
this.imageDiv = OpenLayers.Util.createAlphaImageDiv(id);
},
-
- /**
+
+ /**
* Method: destroy
- * Nullify references and remove event listeners to prevent circular
+ * Nullify references and remove event listeners to prevent circular
* references and memory leaks
*/
destroy: function() {
// erase any drawn elements
this.erase();
- OpenLayers.Event.stopObservingElement(this.imageDiv.firstChild);
+ OpenLayers.Event.stopObservingElement(this.imageDiv.firstChild);
this.imageDiv.innerHTML = "";
this.imageDiv = null;
},
- /**
+ /**
* Method: clone
- *
+ *
* Returns:
* {<OpenLayers.Icon>} A fresh copy of the icon.
*/
clone: function() {
- return new OpenLayers.Icon(this.url,
- this.size,
- this.offset,
+ return new OpenLayers.Icon(this.url,
+ this.size,
+ this.offset,
this.calculateOffset);
},
-
+
/**
* Method: setSize
- *
+ *
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*/
setSize: function(size) {
if (size != null) {
@@ -4375,12 +4375,12 @@
}
this.draw();
},
-
+
/**
* Method: setUrl
- *
+ *
* Parameters:
- * url - {String}
+ * url - {String}
*/
setUrl: function(url) {
if (url != null) {
@@ -4389,28 +4389,28 @@
this.draw();
},
- /**
+ /**
* Method: draw
* Move the div to the given pixel.
- *
+ *
* Parameters:
- * px - {<OpenLayers.Pixel>}
- *
+ * px - {<OpenLayers.Pixel>}
+ *
* Returns:
* {DOMElement} A new DOM Image of this icon set at the location passed-in
*/
draw: function(px) {
- OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
- null,
- null,
- this.size,
- this.url,
+ OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,
+ null,
+ null,
+ this.size,
+ this.url,
"absolute");
this.moveTo(px);
return this.imageDiv;
- },
+ },
- /**
+ /**
* Method: erase
* Erase the underlying image element.
*
@@ -4419,27 +4419,27 @@
if (this.imageDiv != null && this.imageDiv.parentNode != null) {
OpenLayers.Element.remove(this.imageDiv);
}
- },
-
- /**
+ },
+
+ /**
* Method: setOpacity
* Change the icon's opacity
*
* Parameters:
- * opacity - {float}
+ * opacity - {float}
*/
setOpacity: function(opacity) {
- OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, null, null,
+ OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, null, null,
null, null, null, null, opacity);
},
-
+
/**
* Method: moveTo
* move icon to passed in px.
*
* Parameters:
- * px - {<OpenLayers.Pixel>}
+ * px - {<OpenLayers.Pixel>}
*/
moveTo: function (px) {
//if no px passed in, use stored location
@@ -4452,39 +4452,39 @@
this.display(false);
} else {
if (this.calculateOffset) {
- this.offset = this.calculateOffset(this.size);
+ this.offset = this.calculateOffset(this.size);
}
var offsetPx = this.px.offset(this.offset);
OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv, null, offsetPx);
}
}
},
-
- /**
+
+ /**
* Method: display
* Hide or show the icon
*
* Parameters:
- * display - {Boolean}
+ * display - {Boolean}
*/
display: function(display) {
- this.imageDiv.style.display = (display) ? "" : "none";
+ this.imageDiv.style.display = (display) ? "" : "none";
},
-
+
/**
* APIMethod: isDrawn
- *
+ *
* Returns:
* {Boolean} Whether or not the icon is drawn.
*/
isDrawn: function() {
// nodeType 11 for ie, whose nodes *always* have a parentNode
// (of type document fragment)
- var isDrawn = (this.imageDiv && this.imageDiv.parentNode &&
- (this.imageDiv.parentNode.nodeType != 11));
+ var isDrawn = (this.imageDiv && this.imageDiv.parentNode &&
+ (this.imageDiv.parentNode.nodeType != 11));
- return isDrawn;
+ return isDrawn;
},
CLASS_NAME: "OpenLayers.Icon"
@@ -4501,104 +4501,104 @@
/**
* Class: OpenLayers.Popup
* A popup is a small div that can opened and closed on the map.
- * Typically opened in response to clicking on a marker.
+ * Typically opened in response to clicking on a marker.
* See <OpenLayers.Marker>. Popup's don't require their own
* layer and are added the the map using the <OpenLayers.Map.addPopup>
* method.
*
* Example:
* (code)
- * popup = new OpenLayers.Popup("chicken",
+ * popup = new OpenLayers.Popup("chicken",
* new OpenLayers.LonLat(5,40),
* new OpenLayers.Size(200,200),
* "example popup",
* true);
- *
+ *
* map.addPopup(popup);
* (end)
*/
OpenLayers.Popup = OpenLayers.Class({
- /**
- * Property: events
- * {<OpenLayers.Events>} custom event manager
+ /**
+ * Property: events
+ * {<OpenLayers.Events>} custom event manager
*/
events: null,
-
+
/** Property: id
* {String} the unique identifier assigned to this popup.
*/
id: "",
- /**
- * Property: lonlat
+ /**
+ * Property: lonlat
* {<OpenLayers.LonLat>} the position of this popup on the map
*/
lonlat: null,
- /**
- * Property: div
+ /**
+ * Property: div
* {DOMElement} the div that contains this popup.
*/
div: null,
- /**
- * Property: contentSize
+ /**
+ * Property: contentSize
* {<OpenLayers.Size>} the width and height of the content.
*/
- contentSize: null,
+ contentSize: null,
- /**
- * Property: size
+ /**
+ * Property: size
* {<OpenLayers.Size>} the width and height of the popup.
*/
- size: null,
+ size: null,
- /**
- * Property: contentHTML
+ /**
+ * Property: contentHTML
* {String} An HTML string for this popup to display.
*/
contentHTML: null,
-
- /**
- * Property: backgroundColor
+
+ /**
+ * Property: backgroundColor
* {String} the background color used by the popup.
*/
backgroundColor: "",
-
- /**
- * Property: opacity
+
+ /**
+ * Property: opacity
* {float} the opacity of this popup (between 0.0 and 1.0)
*/
opacity: "",
- /**
- * Property: border
+ /**
+ * Property: border
* {String} the border size of the popup. (eg 2px)
*/
border: "",
-
- /**
- * Property: contentDiv
+
+ /**
+ * Property: contentDiv
* {DOMElement} a reference to the element that holds the content of
* the div.
*/
contentDiv: null,
-
- /**
- * Property: groupDiv
+
+ /**
+ * Property: groupDiv
* {DOMElement} First and only child of 'div'. The group Div contains the
* 'contentDiv' and the 'closeDiv'.
*/
groupDiv: null,
- /**
+ /**
* Property: closeDiv
* {DOMElement} the optional closer image
*/
closeDiv: null,
- /**
+ /**
* APIProperty: autoSize
* {Boolean} Resize the popup to auto-fit the contents.
* Default is false.
@@ -4617,40 +4617,40 @@
*/
maxSize: null,
- /**
+ /**
* Property: displayClass
* {String} The CSS class of the popup.
*/
displayClass: "olPopup",
- /**
+ /**
* Property: contentDisplayClass
* {String} The CSS class of the popup content div.
*/
contentDisplayClass: "olPopupContent",
- /**
- * Property: padding
- * {int or <OpenLayers.Bounds>} An extra opportunity to specify internal
+ /**
+ * Property: padding
+ * {int or <OpenLayers.Bounds>} An extra opportunity to specify internal
* padding of the content div inside the popup. This was originally
- * confused with the css padding as specified in style.css's
+ * confused with the css padding as specified in style.css's
* 'olPopupContent' class. We would like to get rid of this altogether,
* except that it does come in handy for the framed and anchoredbubble
- * popups, who need to maintain yet another barrier between their
- * content and the outer border of the popup itself.
- *
- * Note that in order to not break API, we must continue to support
- * this property being set as an integer. Really, though, we'd like to
+ * popups, who need to maintain yet another barrier between their
+ * content and the outer border of the popup itself.
+ *
+ * Note that in order to not break API, we must continue to support
+ * this property being set as an integer. Really, though, we'd like to
* have this specified as a Bounds object so that user can specify
* distinct left, top, right, bottom paddings. With the 3.0 release
* we can make this only a bounds.
*/
padding: 0,
- /**
+ /**
* Property: disableFirefoxOverflowHack
- * {Boolean} The hack for overflow in Firefox causes all elements
- * to be re-drawn, which causes Flash elements to be
+ * {Boolean} The hack for overflow in Firefox causes all elements
+ * to be re-drawn, which causes Flash elements to be
* re-initialized, which is troublesome.
* With this property the hack can be disabled.
*/
@@ -4658,8 +4658,8 @@
/**
* Method: fixPadding
- * To be removed in 3.0, this function merely helps us to deal with the
- * case where the user may have set an integer value for padding,
+ * To be removed in 3.0, this function merely helps us to deal with the
+ * case where the user may have set an integer value for padding,
* instead of an <OpenLayers.Bounds> object.
*/
fixPadding: function() {
@@ -4677,17 +4677,17 @@
* Default is false.
*/
panMapIfOutOfView: false,
-
+
/**
- * APIProperty: keepInMap
- * {Boolean} If panMapIfOutOfView is false, and this property is true,
+ * APIProperty: keepInMap
+ * {Boolean} If panMapIfOutOfView is false, and this property is true,
* contrain the popup such that it always fits in the available map
* space. By default, this is not set on the base class. If you are
* creating popups that are near map edges and not allowing pannning,
* and especially if you have a popup which has a
* fixedRelativePosition, setting this to false may be a smart thing to
* do. Subclasses may want to override this setting.
- *
+ *
* Default is false.
*/
keepInMap: false,
@@ -4698,24 +4698,24 @@
* Default is false.
*/
closeOnMove: false,
-
- /**
- * Property: map
+
+ /**
+ * Property: map
* {<OpenLayers.Map>} this gets set in Map.js when the popup is added to the map
*/
map: null,
- /**
+ /**
* Constructor: OpenLayers.Popup
* Create a popup.
- *
- * Parameters:
+ *
+ * Parameters:
* id - {String} a unqiue identifier for this popup. If null is passed
- * an identifier will be automatically generated.
+ * an identifier will be automatically generated.
* lonlat - {<OpenLayers.LonLat>} The position on the map the popup will
* be shown.
* contentSize - {<OpenLayers.Size>} The size of the content.
- * contentHTML - {String} An HTML string to display inside the
+ * contentHTML - {String} An HTML string to display inside the
* popup.
* closeBox - {Boolean} Whether to display a close box inside
* the popup.
@@ -4729,28 +4729,28 @@
this.id = id;
this.lonlat = lonlat;
- this.contentSize = (contentSize != null) ? contentSize
+ this.contentSize = (contentSize != null) ? contentSize
: new OpenLayers.Size(
OpenLayers.Popup.WIDTH,
OpenLayers.Popup.HEIGHT);
- if (contentHTML != null) {
+ if (contentHTML != null) {
this.contentHTML = contentHTML;
}
this.backgroundColor = OpenLayers.Popup.COLOR;
this.opacity = OpenLayers.Popup.OPACITY;
this.border = OpenLayers.Popup.BORDER;
- this.div = OpenLayers.Util.createDiv(this.id, null, null,
+ this.div = OpenLayers.Util.createDiv(this.id, null, null,
null, null, null, "hidden");
this.div.className = this.displayClass;
-
+
var groupDivId = this.id + "_GroupDiv";
- this.groupDiv = OpenLayers.Util.createDiv(groupDivId, null, null,
+ this.groupDiv = OpenLayers.Util.createDiv(groupDivId, null, null,
null, "relative", null,
"hidden");
var id = this.div.id + "_contentDiv";
- this.contentDiv = OpenLayers.Util.createDiv(id, null, this.contentSize.clone(),
+ this.contentDiv = OpenLayers.Util.createDiv(id, null, this.contentSize.clone(),
null, "relative");
this.contentDiv.className = this.contentDisplayClass;
this.groupDiv.appendChild(this.contentDiv);
@@ -4758,12 +4758,12 @@
if (closeBox) {
this.addCloseBox(closeBoxCallback);
- }
+ }
this.registerEvents();
},
- /**
+ /**
* Method: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -4773,24 +4773,24 @@
this.lonlat = null;
this.size = null;
this.contentHTML = null;
-
+
this.backgroundColor = null;
this.opacity = null;
this.border = null;
-
+
if (this.closeOnMove && this.map) {
this.map.events.unregister("movestart", this, this.hide);
}
this.events.destroy();
this.events = null;
-
+
if (this.closeDiv) {
- OpenLayers.Event.stopObservingElement(this.closeDiv);
+ OpenLayers.Event.stopObservingElement(this.closeDiv);
this.groupDiv.removeChild(this.closeDiv);
}
this.closeDiv = null;
-
+
this.div.removeChild(this.groupDiv);
this.groupDiv = null;
@@ -4799,7 +4799,7 @@
}
this.map = null;
this.div = null;
-
+
this.autoSize = null;
this.minSize = null;
this.maxSize = null;
@@ -4807,13 +4807,13 @@
this.panMapIfOutOfView = null;
},
- /**
+ /**
* Method: draw
* Constructs the elements that make up the popup.
*
* Parameters:
* px - {<OpenLayers.Pixel>} the position the popup in pixels.
- *
+ *
* Returns:
* {DOMElement} Reference to a div that contains the drawn popup
*/
@@ -4824,12 +4824,12 @@
}
}
- // this assumes that this.map already exists, which is okay because
+ // this assumes that this.map already exists, which is okay because
// this.draw is only called once the popup has been added to the map.
if (this.closeOnMove) {
this.map.events.register("movestart", this, this.hide);
}
-
+
//listen to movestart, moveend to disable overflow (FF bug)
if (!this.disableFirefoxOverflowHack && OpenLayers.Util.getBrowserName() == 'firefox') {
this.map.events.register("movestart", this, function() {
@@ -4859,33 +4859,33 @@
this.setOpacity();
this.setBorder();
this.setContentHTML();
-
+
if (this.panMapIfOutOfView) {
this.panIntoView();
- }
+ }
return this.div;
},
- /**
+ /**
* Method: updatePosition
- * if the popup has a lonlat and its map members set,
+ * if the popup has a lonlat and its map members set,
* then have it move itself to its proper position
*/
updatePosition: function() {
if ((this.lonlat) && (this.map)) {
var px = this.map.getLayerPxFromLonLat(this.lonlat);
if (px) {
- this.moveTo(px);
- }
+ this.moveTo(px);
+ }
}
},
/**
* Method: moveTo
- *
+ *
* Parameters:
- * px - {<OpenLayers.Pixel>} the top and left position of the popup div.
+ * px - {<OpenLayers.Pixel>} the top and left position of the popup div.
*/
moveTo: function(px) {
if ((px != null) && (this.div != null)) {
@@ -4897,7 +4897,7 @@
/**
* Method: visible
*
- * Returns:
+ * Returns:
* {Boolean} Boolean indicating whether or not the popup is visible
*/
visible: function() {
@@ -4925,7 +4925,7 @@
if (this.panMapIfOutOfView) {
this.panIntoView();
- }
+ }
},
/**
@@ -4938,17 +4938,17 @@
/**
* Method: setSize
- * Used to adjust the size of the popup.
+ * Used to adjust the size of the popup.
*
* Parameters:
- * contentSize - {<OpenLayers.Size>} the new size for the popup's
+ * contentSize - {<OpenLayers.Size>} the new size for the popup's
* contents div (in pixels).
*/
- setSize:function(contentSize) {
- this.size = contentSize.clone();
-
- // if our contentDiv has a css 'padding' set on it by a stylesheet, we
- // must add that to the desired "size".
+ setSize:function(contentSize) {
+ this.size = contentSize.clone();
+
+ // if our contentDiv has a css 'padding' set on it by a stylesheet, we
+ // must add that to the desired "size".
var contentDivPadding = this.getContentDivPadding();
var wPadding = contentDivPadding.left + contentDivPadding.right;
var hPadding = contentDivPadding.top + contentDivPadding.bottom;
@@ -4964,18 +4964,18 @@
wPadding += closeDivWidth + contentDivPadding.right;
}
- //increase size of the main popup div to take into account the
- // users's desired padding and close div.
+ //increase size of the main popup div to take into account the
+ // users's desired padding and close div.
this.size.w += wPadding;
this.size.h += hPadding;
- //now if our browser is IE, we need to actually make the contents
- // div itself bigger to take its own padding into effect. this makes
+ //now if our browser is IE, we need to actually make the contents
+ // div itself bigger to take its own padding into effect. this makes
// me want to shoot someone, but so it goes.
if (OpenLayers.Util.getBrowserName() == "msie") {
- this.contentSize.w +=
+ this.contentSize.w +=
contentDivPadding.left + contentDivPadding.right;
- this.contentSize.h +=
+ this.contentSize.h +=
contentDivPadding.bottom + contentDivPadding.top;
}
@@ -4987,26 +4987,26 @@
this.contentDiv.style.width = contentSize.w + "px";
this.contentDiv.style.height = contentSize.h + "px";
}
- },
+ },
/**
* APIMethod: updateSize
- * Auto size the popup so that it precisely fits its contents (as
+ * Auto size the popup so that it precisely fits its contents (as
* determined by this.contentDiv.innerHTML). Popup size will, of
* course, be limited by the available space on the current map
*/
updateSize: function() {
-
+
// determine actual render dimensions of the contents by putting its
// contents into a fake contentDiv (for the CSS) and then measuring it
- var preparedHTML = "<div class='" + this.contentDisplayClass+ "'>" +
- this.contentDiv.innerHTML +
+ var preparedHTML = "<div class='" + this.contentDisplayClass+ "'>" +
+ this.contentDiv.innerHTML +
"</div>";
-
+
var containerElement = (this.map) ? this.map.layerContainerDiv
- : document.body;
+ : document.body;
var realSize = OpenLayers.Util.getRenderedDimensions(
- preparedHTML, null, {
+ preparedHTML, null, {
displayClass: this.displayClass,
containerElement: containerElement
}
@@ -5017,25 +5017,25 @@
var newSize = null;
if (safeSize.equals(realSize)) {
- //real size of content is small enough to fit on the map,
+ //real size of content is small enough to fit on the map,
// so we use real size.
newSize = realSize;
} else {
- //make a new OL.Size object with the clipped dimensions
+ //make a new OL.Size object with the clipped dimensions
// set or null if not clipped.
var fixedSize = new OpenLayers.Size();
fixedSize.w = (safeSize.w < realSize.w) ? safeSize.w : null;
fixedSize.h = (safeSize.h < realSize.h) ? safeSize.h : null;
-
+
if (fixedSize.w && fixedSize.h) {
- //content is too big in both directions, so we will use
- // max popup size (safeSize), knowing well that it will
- // overflow both ways.
+ //content is too big in both directions, so we will use
+ // max popup size (safeSize), knowing well that it will
+ // overflow both ways.
newSize = safeSize;
} else {
- //content is clipped in only one direction, so we need to
+ //content is clipped in only one direction, so we need to
// run getRenderedDimensions() again with a fixed dimension
var clippedSize = OpenLayers.Util.getRenderedDimensions(
preparedHTML, fixedSize, {
@@ -5043,17 +5043,17 @@
containerElement: containerElement
}
);
-
- //if the clipped size is still the same as the safeSize,
- // that means that our content must be fixed in the
- // offending direction. If overflow is 'auto', this means
- // we are going to have a scrollbar for sure, so we must
+
+ //if the clipped size is still the same as the safeSize,
+ // that means that our content must be fixed in the
+ // offending direction. If overflow is 'auto', this means
+ // we are going to have a scrollbar for sure, so we must
// adjust for that.
//
var currentOverflow = OpenLayers.Element.getStyle(
this.contentDiv, "overflow"
);
- if ( (currentOverflow != "hidden") &&
+ if ( (currentOverflow != "hidden") &&
(clippedSize.equals(safeSize)) ) {
var scrollBar = OpenLayers.Util.getScrollbarWidth();
if (fixedSize.w) {
@@ -5062,12 +5062,12 @@
clippedSize.w += scrollBar;
}
}
-
+
newSize = this.getSafeContentSize(clippedSize);
}
- }
- this.setSize(newSize);
- },
+ }
+ this.setSize(newSize);
+ },
/**
* Method: setBackgroundColor
@@ -5076,28 +5076,28 @@
* Parameters:
* color - {String} the background color. eg "#FFBBBB"
*/
- setBackgroundColor:function(color) {
+ setBackgroundColor:function(color) {
if (color != undefined) {
- this.backgroundColor = color;
+ this.backgroundColor = color;
}
-
+
if (this.div != null) {
this.div.style.backgroundColor = this.backgroundColor;
}
- },
-
+ },
+
/**
* Method: setOpacity
* Sets the opacity of the popup.
- *
+ *
* Parameters:
- * opacity - {float} A value between 0.0 (transparent) and 1.0 (solid).
+ * opacity - {float} A value between 0.0 (transparent) and 1.0 (solid).
*/
- setOpacity:function(opacity) {
+ setOpacity:function(opacity) {
if (opacity != undefined) {
- this.opacity = opacity;
+ this.opacity = opacity;
}
-
+
if (this.div != null) {
// for Mozilla and Safari
this.div.style.opacity = this.opacity;
@@ -5105,25 +5105,25 @@
// for IE
this.div.style.filter = 'alpha(opacity=' + this.opacity*100 + ')';
}
- },
-
+ },
+
/**
* Method: setBorder
* Sets the border style of the popup.
*
* Parameters:
- * border - {String} The border style value. eg 2px
+ * border - {String} The border style value. eg 2px
*/
- setBorder:function(border) {
+ setBorder:function(border) {
if (border != undefined) {
this.border = border;
}
-
+
if (this.div != null) {
this.div.style.border = this.border;
}
- },
-
+ },
+
/**
* Method: setContentHTML
* Allows the user to set the HTML content of the popup.
@@ -5136,15 +5136,15 @@
if (contentHTML != null) {
this.contentHTML = contentHTML;
}
-
- if ((this.contentDiv != null) &&
+
+ if ((this.contentDiv != null) &&
(this.contentHTML != null) &&
(this.contentHTML != this.contentDiv.innerHTML)) {
-
+
this.contentDiv.innerHTML = this.contentHTML;
-
+
if (this.autoSize) {
-
+
//if popup has images, listen for when they finish
// loading and resize accordingly
this.registerImageListeners();
@@ -5152,31 +5152,31 @@
//auto size the popup to its current contents
this.updateSize();
}
- }
+ }
},
-
+
/**
* Method: registerImageListeners
* Called when an image contained by the popup loaded. this function
* updates the popup size, then unregisters the image load listener.
- */
- registerImageListeners: function() {
+ */
+ registerImageListeners: function() {
- // As the images load, this function will call updateSize() to
+ // As the images load, this function will call updateSize() to
// resize the popup to fit the content div (which presumably is now
// bigger than when the image was not loaded).
- //
+ //
// If the 'panMapIfOutOfView' property is set, we will pan the newly
// resized popup back into view.
- //
- // Note that this function, when called, will have 'popup' and
+ //
+ // Note that this function, when called, will have 'popup' and
// 'img' properties in the context.
//
var onImgLoad = function() {
-
+
this.popup.updateSize();
-
+
if ( this.popup.visible() && this.popup.panMapIfOutOfView ) {
this.popup.panIntoView();
}
@@ -5184,12 +5184,12 @@
OpenLayers.Event.stopObserving(
this.img, "load", this.img._onImageLoad
);
-
+
};
- //cycle through the images and if their size is 0x0, that means that
- // they haven't been loaded yet, so we attach the listener, which
- // will fire when the images finish loading and will resize the
+ //cycle through the images and if their size is 0x0, that means that
+ // they haven't been loaded yet, so we attach the listener, which
+ // will fire when the images finish loading and will resize the
// popup accordingly to its new size.
var images = this.contentDiv.getElementsByTagName("img");
for (var i = 0, len = images.length; i < len; i++) {
@@ -5206,27 +5206,27 @@
img._onImgLoad = OpenLayers.Function.bind(onImgLoad, context);
OpenLayers.Event.observe(img, 'load', img._onImgLoad);
- }
- }
+ }
+ }
},
/**
* APIMethod: getSafeContentSize
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>} Desired size to make the popup.
- *
+ *
* Returns:
* {<OpenLayers.Size>} A size to make the popup which is neither smaller
- * than the specified minimum size, nor bigger than the maximum
+ * than the specified minimum size, nor bigger than the maximum
* size (which is calculated relative to the size of the viewport).
*/
getSafeContentSize: function(size) {
var safeContentSize = size.clone();
- // if our contentDiv has a css 'padding' set on it by a stylesheet, we
- // must add that to the desired "size".
+ // if our contentDiv has a css 'padding' set on it by a stylesheet, we
+ // must add that to the desired "size".
var contentDivPadding = this.getContentDivPadding();
var wPadding = contentDivPadding.left + contentDivPadding.right;
var hPadding = contentDivPadding.top + contentDivPadding.bottom;
@@ -5243,25 +5243,25 @@
// prevent the popup from being smaller than a specified minimal size
if (this.minSize) {
- safeContentSize.w = Math.max(safeContentSize.w,
+ safeContentSize.w = Math.max(safeContentSize.w,
(this.minSize.w - wPadding));
- safeContentSize.h = Math.max(safeContentSize.h,
+ safeContentSize.h = Math.max(safeContentSize.h,
(this.minSize.h - hPadding));
}
// prevent the popup from being bigger than a specified maximum size
if (this.maxSize) {
- safeContentSize.w = Math.min(safeContentSize.w,
+ safeContentSize.w = Math.min(safeContentSize.w,
(this.maxSize.w - wPadding));
- safeContentSize.h = Math.min(safeContentSize.h,
+ safeContentSize.h = Math.min(safeContentSize.h,
(this.maxSize.h - hPadding));
}
-
- //make sure the desired size to set doesn't result in a popup that
+
+ //make sure the desired size to set doesn't result in a popup that
// is bigger than the map's viewport.
//
if (this.map && this.map.size) {
-
+
var extraX = 0, extraY = 0;
if (this.keepInMap && !this.panMapIfOutOfView) {
var px = this.map.getPixelFromLonLat(this.lonlat);
@@ -5282,39 +5282,39 @@
extraX = px.x;
extraY = px.y;
break;
- default:
+ default:
extraX = px.x;
extraY = this.map.size.h - px.y;
break;
}
- }
-
- var maxY = this.map.size.h -
- this.map.paddingForPopups.top -
- this.map.paddingForPopups.bottom -
+ }
+
+ var maxY = this.map.size.h -
+ this.map.paddingForPopups.top -
+ this.map.paddingForPopups.bottom -
hPadding - extraY;
-
- var maxX = this.map.size.w -
- this.map.paddingForPopups.left -
- this.map.paddingForPopups.right -
+
+ var maxX = this.map.size.w -
+ this.map.paddingForPopups.left -
+ this.map.paddingForPopups.right -
wPadding - extraX;
-
+
safeContentSize.w = Math.min(safeContentSize.w, maxX);
safeContentSize.h = Math.min(safeContentSize.h, maxY);
}
-
+
return safeContentSize;
},
-
+
/**
* Method: getContentDivPadding
- * Glorious, oh glorious hack in order to determine the css 'padding' of
- * the contentDiv. IE/Opera return null here unless we actually add the
- * popup's main 'div' element (which contains contentDiv) to the DOM.
- * So we make it invisible and then add it to the document temporarily.
+ * Glorious, oh glorious hack in order to determine the css 'padding' of
+ * the contentDiv. IE/Opera return null here unless we actually add the
+ * popup's main 'div' element (which contains contentDiv) to the DOM.
+ * So we make it invisible and then add it to the document temporarily.
*
- * Once we've taken the padding readings we need, we then remove it
- * from the DOM (it will actually get added to the DOM in
+ * Once we've taken the padding readings we need, we then remove it
+ * from the DOM (it will actually get added to the DOM in
* Map.js's addPopup)
*
* Returns:
@@ -5326,27 +5326,27 @@
var contentDivPadding = this._contentDivPadding;
if (!contentDivPadding) {
- if (this.div.parentNode == null) {
- //make the div invisible and add it to the page
- this.div.style.display = "none";
- document.body.appendChild(this.div);
- }
-
- //read the padding settings from css, put them in an OL.Bounds
+ if (this.div.parentNode == null) {
+ //make the div invisible and add it to the page
+ this.div.style.display = "none";
+ document.body.appendChild(this.div);
+ }
+
+ //read the padding settings from css, put them in an OL.Bounds
contentDivPadding = new OpenLayers.Bounds(
OpenLayers.Element.getStyle(this.contentDiv, "padding-left"),
OpenLayers.Element.getStyle(this.contentDiv, "padding-bottom"),
OpenLayers.Element.getStyle(this.contentDiv, "padding-right"),
OpenLayers.Element.getStyle(this.contentDiv, "padding-top")
);
-
+
//cache the value
this._contentDivPadding = contentDivPadding;
if (this.div.parentNode == document.body) {
- //remove the div from the page and make it visible again
- document.body.removeChild(this.div);
- this.div.style.display = "";
+ //remove the div from the page and make it visible again
+ document.body.removeChild(this.div);
+ this.div.style.display = "";
}
}
return contentDivPadding;
@@ -5354,7 +5354,7 @@
/**
* Method: addCloseBox
- *
+ *
* Parameters:
* callback - {Function} The callback to be called when the close button
* is clicked.
@@ -5364,12 +5364,12 @@
this.closeDiv = OpenLayers.Util.createDiv(
this.id + "_close", null, new OpenLayers.Size(17, 17)
);
- this.closeDiv.className = "olPopupCloseBox";
-
+ this.closeDiv.className = "olPopupCloseBox";
+
// use the content div's css padding to determine if we should
// padd the close div
var contentDivPadding = this.getContentDivPadding();
-
+
this.closeDiv.style.right = contentDivPadding.right + "px";
this.closeDiv.style.top = contentDivPadding.top + "px";
this.groupDiv.appendChild(this.closeDiv);
@@ -5378,7 +5378,7 @@
this.hide();
OpenLayers.Event.stop(e);
};
- OpenLayers.Event.observe(this.closeDiv, "click",
+ OpenLayers.Event.observe(this.closeDiv, "click",
OpenLayers.Function.bindAsEventListener(closePopup, this));
},
@@ -5387,58 +5387,58 @@
* Pans the map such that the popup is totaly viewable (if necessary)
*/
panIntoView: function() {
-
+
var mapSize = this.map.getSize();
-
- //start with the top left corner of the popup, in px,
+
+ //start with the top left corner of the popup, in px,
// relative to the viewport
var origTL = this.map.getViewPortPxFromLayerPx( new OpenLayers.Pixel(
parseInt(this.div.style.left),
parseInt(this.div.style.top)
));
var newTL = origTL.clone();
-
+
//new left (compare to margins, using this.size to calculate right)
if (origTL.x < this.map.paddingForPopups.left) {
newTL.x = this.map.paddingForPopups.left;
- } else
+ } else
if ( (origTL.x + this.size.w) > (mapSize.w - this.map.paddingForPopups.right)) {
newTL.x = mapSize.w - this.map.paddingForPopups.right - this.size.w;
}
-
+
//new top (compare to margins, using this.size to calculate bottom)
if (origTL.y < this.map.paddingForPopups.top) {
newTL.y = this.map.paddingForPopups.top;
- } else
+ } else
if ( (origTL.y + this.size.h) > (mapSize.h - this.map.paddingForPopups.bottom)) {
newTL.y = mapSize.h - this.map.paddingForPopups.bottom - this.size.h;
}
-
+
var dx = origTL.x - newTL.x;
var dy = origTL.y - newTL.y;
-
+
this.map.pan(dx, dy);
},
- /**
+ /**
* Method: registerEvents
* Registers events on the popup.
*
- * Do this in a separate function so that subclasses can
+ * Do this in a separate function so that subclasses can
* choose to override it if they wish to deal differently
* with mouse events
- *
+ *
* Note in the following handler functions that some special
- * care is needed to deal correctly with mousing and popups.
- *
+ * care is needed to deal correctly with mousing and popups.
+ *
* Because the user might select the zoom-rectangle option and
* then drag it over a popup, we need a safe way to allow the
* mousemove and mouseup events to pass through the popup when
* they are initiated from outside.
- *
+ *
* Otherwise, we want to essentially kill the event propagation
- * for all other events, though we have to do so carefully,
- * without disabling basic html functionality, like clicking on
+ * for all other events, though we have to do so carefully,
+ * without disabling basic html functionality, like clicking on
* hyperlinks or drag-selecting text.
*/
registerEvents:function() {
@@ -5453,31 +5453,31 @@
"dblclick": this.ondblclick,
scope: this
});
-
+
},
- /**
- * Method: onmousedown
+ /**
+ * Method: onmousedown
* When mouse goes down within the popup, make a note of
- * it locally, and then do not propagate the mousedown
+ * it locally, and then do not propagate the mousedown
* (but do so safely so that user can select text inside)
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmousedown: function (evt) {
this.mousedown = true;
OpenLayers.Event.stop(evt, true);
},
- /**
+ /**
* Method: onmousemove
- * If the drag was started within the popup, then
+ * If the drag was started within the popup, then
* do not propagate the mousemove (but do so safely
* so that user can select text inside)
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmousemove: function (evt) {
if (this.mousedown) {
@@ -5485,15 +5485,15 @@
}
},
- /**
+ /**
* Method: onmouseup
- * When mouse comes up within the popup, after going down
- * in it, reset the flag, and then (once again) do not
- * propagate the event, but do so safely so that user can
+ * When mouse comes up within the popup, after going down
+ * in it, reset the flag, and then (once again) do not
+ * propagate the event, but do so safely so that user can
* select text inside
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmouseup: function (evt) {
if (this.mousedown) {
@@ -5505,32 +5505,32 @@
/**
* Method: onclick
* Ignore clicks, but allowing default browser handling
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onclick: function (evt) {
OpenLayers.Event.stop(evt, true);
},
- /**
+ /**
* Method: onmouseout
* When mouse goes out of the popup set the flag to false so that
* if they let go and then drag back in, we won't be confused.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
onmouseout: function (evt) {
this.mousedown = false;
},
-
- /**
+
+ /**
* Method: ondblclick
* Ignore double-clicks, but allowing default browser handling
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
ondblclick: function (evt) {
OpenLayers.Event.stop(evt, true);
@@ -5558,13 +5558,13 @@
* one of the protocol subclasses instead.
*/
OpenLayers.Protocol = OpenLayers.Class({
-
+
/**
* Property: format
* {<OpenLayers.Format>} The format used by this protocol.
*/
format: null,
-
+
/**
* Property: options
* {Object} Any options sent to the constructor.
@@ -5578,7 +5578,7 @@
* true.
*/
autoDestroy: true,
-
+
/**
* Constructor: OpenLayers.Protocol
* Abstract class for vector protocols. Create instances of a subclass.
@@ -5601,7 +5601,7 @@
this.options = null;
this.format = null;
},
-
+
/**
* APIMethod: read
* Construct a request for reading new features.
@@ -5616,8 +5616,8 @@
*/
read: function() {
},
-
-
+
+
/**
* APIMethod: create
* Construct a request for writing newly created features.
@@ -5634,7 +5634,7 @@
*/
create: function() {
},
-
+
/**
* APIMethod: update
* Construct a request updating modified features.
@@ -5651,7 +5651,7 @@
*/
update: function() {
},
-
+
/**
* APIMethod: delete
* Construct a request deleting a removed feature.
@@ -5699,8 +5699,8 @@
*/
abort: function(response) {
},
-
- CLASS_NAME: "OpenLayers.Protocol"
+
+ CLASS_NAME: "OpenLayers.Protocol"
});
/**
@@ -5784,37 +5784,37 @@
* full text of the license. */
/**
- * Class: OpenLayers.Renderer
+ * Class: OpenLayers.Renderer
* This is the base class for all renderers.
*
* This is based on a merger code written by Paul Spencer and Bertil Chapuis.
* It is largely composed of virtual functions that are to be implemented
* in technology-specific subclasses, but there is some generic code too.
- *
+ *
* The functions that *are* implemented here merely deal with the maintenance
- * of the size and extent variables, as well as the cached 'resolution'
- * value.
- *
+ * of the size and extent variables, as well as the cached 'resolution'
+ * value.
+ *
* A note to the user that all subclasses should use getResolution() instead
- * of directly accessing this.resolution in order to correctly use the
+ * of directly accessing this.resolution in order to correctly use the
* cacheing system.
*
*/
OpenLayers.Renderer = OpenLayers.Class({
- /**
+ /**
* Property: container
- * {DOMElement}
+ * {DOMElement}
*/
container: null,
-
+
/**
* Property: root
* {DOMElement}
*/
root: null,
- /**
+ /**
* Property: extent
* {<OpenLayers.Bounds>}
*/
@@ -5823,44 +5823,44 @@
/**
* Property: locked
* {Boolean} If the renderer is currently in a state where many things
- * are changing, the 'locked' property is set to true. This means
+ * are changing, the 'locked' property is set to true. This means
* that renderers can expect at least one more drawFeature event to be
* called with the 'locked' property set to 'true': In some renderers,
* this might make sense to use as a 'only update local information'
- * flag.
- */
+ * flag.
+ */
locked: false,
-
- /**
+
+ /**
* Property: size
- * {<OpenLayers.Size>}
+ * {<OpenLayers.Size>}
*/
size: null,
-
+
/**
* Property: resolution
* {Float} cache of current map resolution
*/
resolution: null,
-
+
/**
- * Property: map
+ * Property: map
* {<OpenLayers.Map>} Reference to the map -- this is set in Vector's setMap()
*/
map: null,
-
+
/**
- * Constructor: OpenLayers.Renderer
+ * Constructor: OpenLayers.Renderer
*
* Parameters:
- * containerID - {<String>}
+ * containerID - {<String>}
* options - {Object} options for this renderer. See sublcasses for
* supported options.
*/
initialize: function(containerID, options) {
this.container = OpenLayers.Util.getElement(containerID);
},
-
+
/**
* APIMethod: destroy
*/
@@ -5875,20 +5875,20 @@
/**
* APIMethod: supported
* This should be overridden by specific subclasses
- *
+ *
* Returns:
* {Boolean} Whether or not the browser supports the renderer class
*/
supported: function() {
return false;
- },
-
+ },
+
/**
* Method: setExtent
* Set the visible part of the layer.
*
- * Resolution has probably changed, so we nullify the resolution
- * cache (this.resolution) -- this way it will be re-computed when
+ * Resolution has probably changed, so we nullify the resolution
+ * cache (this.resolution) -- this way it will be re-computed when
* next it is needed.
* We nullify the resolution cache (this.resolution) if resolutionChanged
* is set to true - this way it will be re-computed on the next
@@ -5904,27 +5904,27 @@
this.resolution = null;
}
},
-
+
/**
* Method: setSize
* Sets the size of the drawing surface.
- *
- * Resolution has probably changed, so we nullify the resolution
- * cache (this.resolution) -- this way it will be re-computed when
+ *
+ * Resolution has probably changed, so we nullify the resolution
+ * cache (this.resolution) -- this way it will be re-computed when
* next it is needed.
*
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*/
setSize: function(size) {
this.size = size.clone();
this.resolution = null;
},
-
- /**
+
+ /**
* Method: getResolution
* Uses cached copy of resolution if available to minimize computing
- *
+ *
* Returns:
* The current map's resolution
*/
@@ -5932,7 +5932,7 @@
this.resolution = this.resolution || this.map.getResolution();
return this.resolution;
},
-
+
/**
* Method: drawFeature
* Draw the feature. The optional style argument can be used
@@ -5940,9 +5940,9 @@
* be called from layer.drawFeature().
*
* Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * feature - {<OpenLayers.Feature.Vector>}
* style - {<Object>}
- *
+ *
* Returns:
* {Boolean} true if the feature has been drawn completely, false if not,
* undefined if the feature had no geometry
@@ -5969,26 +5969,26 @@
},
- /**
+ /**
* Method: drawGeometry
- *
+ *
* Draw a geometry. This should only be called from the renderer itself.
* Use layer.drawFeature() from outside the renderer.
* virtual function
*
* Parameters:
- * geometry - {<OpenLayers.Geometry>}
- * style - {Object}
- * featureId - {<String>}
+ * geometry - {<OpenLayers.Geometry>}
+ * style - {Object}
+ * featureId - {<String>}
*/
drawGeometry: function(geometry, style, featureId) {},
-
+
/**
* Method: drawText
* Function for drawing text labels.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
* style -
* location - {<OpenLayers.Geometry.Point>}
@@ -5999,40 +5999,40 @@
* Method: removeText
* Function for removing text labels.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
*/
removeText: function(featureId) {},
-
+
/**
* Method: clear
* Clear all vectors from the renderer.
* virtual function.
- */
+ */
clear: function() {},
/**
* Method: getFeatureIdFromEvent
- * Returns a feature id from an event on the renderer.
+ * Returns a feature id from an event on the renderer.
* How this happens is specific to the renderer. This should be
* called from layer.getFeatureFromEvent().
* Virtual function.
- *
+ *
* Parameters:
- * evt - {<OpenLayers.Event>}
+ * evt - {<OpenLayers.Event>}
*
* Returns:
* {String} A feature id or null.
*/
getFeatureIdFromEvent: function(evt) {},
-
+
/**
- * Method: eraseFeatures
+ * Method: eraseFeatures
* This is called by the layer to erase features
- *
+ *
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
*/
eraseFeatures: function(features) {
if(!(features instanceof Array)) {
@@ -6043,23 +6043,23 @@
this.removeText(features[i].id);
}
},
-
+
/**
* Method: eraseGeometry
* Remove a geometry from the renderer (by id).
* virtual function.
- *
+ *
* Parameters:
- * geometry - {<OpenLayers.Geometry>}
+ * geometry - {<OpenLayers.Geometry>}
*/
eraseGeometry: function(geometry) {},
-
+
/**
* Method: moveRoot
* moves this renderer's root to a (different) renderer.
* To be implemented by subclasses that require a common renderer root for
* feature selection.
- *
+ *
* Parameters:
* renderer - {<OpenLayers.Renderer>} target renderer for the moved root
*/
@@ -6070,7 +6070,7 @@
* Gets the layer that this renderer's output appears on. If moveRoot was
* used, this will be different from the id of the layer containing the
* features rendered by this renderer.
- *
+ *
* Returns:
* {String} the id of the output layer.
*/
@@ -6094,21 +6094,21 @@
* one of the strategy subclasses instead.
*/
OpenLayers.Strategy = OpenLayers.Class({
-
+
/**
* Property: layer
* {<OpenLayers.Layer.Vector>} The layer this strategy belongs to.
*/
layer: null,
-
+
/**
* Property: options
* {Object} Any options sent to the constructor.
*/
options: null,
- /**
- * Property: active
+ /**
+ * Property: active
* {Boolean} The control is active.
*/
active: null,
@@ -6143,7 +6143,7 @@
// set the active property here, so that user cannot override it
this.active = false;
},
-
+
/**
* APIMethod: destroy
* Clean up the strategy.
@@ -6164,7 +6164,7 @@
setLayer: function(layer) {
this.layer = layer;
},
-
+
/**
* Method: activate
* Activate the strategy. Register any listeners, do appropriate setup.
@@ -6180,7 +6180,7 @@
}
return false;
},
-
+
/**
* Method: deactivate
* Deactivate the strategy. Unregister any listeners, do appropriate
@@ -6197,8 +6197,8 @@
}
return false;
},
-
- CLASS_NAME: "OpenLayers.Strategy"
+
+ CLASS_NAME: "OpenLayers.Strategy"
});
/* ======================================================================
OpenLayers/Control.js
@@ -6215,15 +6215,15 @@
/**
* Class: OpenLayers.Control
* Controls affect the display or behavior of the map. They allow everything
- * from panning and zooming to displaying a scale indicator. Controls by
+ * from panning and zooming to displaying a scale indicator. Controls by
* default are added to the map they are contained within however it is
* possible to add a control to an external div by passing the div in the
* options parameter.
- *
+ *
* Example:
* The following example shows how to add many of the common controls
* to a map.
- *
+ *
* > var map = new OpenLayers.Map('map', { controls: [] });
* >
* > map.addControl(new OpenLayers.Control.PanZoomBar());
@@ -6235,10 +6235,10 @@
* > map.addControl(new OpenLayers.Control.OverviewMap());
* > map.addControl(new OpenLayers.Control.KeyboardDefaults());
*
- * The next code fragment is a quick example of how to intercept
+ * The next code fragment is a quick example of how to intercept
* shift-mouse click to display the extent of the bounding box
* dragged out by the user. Usually controls are not created
- * in exactly this manner. See the source for a more complete
+ * in exactly this manner. See the source for a more complete
* example:
*
* > var control = new OpenLayers.Control();
@@ -6246,7 +6246,7 @@
* > draw: function () {
* > // this Handler.Box will intercept the shift-mousedown
* > // before Control.MouseDefault gets to see it
- * > this.box = new OpenLayers.Handler.Box( control,
+ * > this.box = new OpenLayers.Handler.Box( control,
* > {"done": this.notice},
* > {keyMask: OpenLayers.Handler.MOD_SHIFT});
* > this.box.activate();
@@ -6255,70 +6255,70 @@
* > notice: function (bounds) {
* > OpenLayers.Console.userError(bounds);
* > }
- * > });
+ * > });
* > map.addControl(control);
- *
+ *
*/
OpenLayers.Control = OpenLayers.Class({
- /**
- * Property: id
- * {String}
+ /**
+ * Property: id
+ * {String}
*/
id: null,
-
- /**
- * Property: map
+
+ /**
+ * Property: map
* {<OpenLayers.Map>} this gets set in the addControl() function in
- * OpenLayers.Map
+ * OpenLayers.Map
*/
map: null,
- /**
- * Property: div
- * {DOMElement}
+ /**
+ * Property: div
+ * {DOMElement}
*/
div: null,
- /**
- * Property: type
+ /**
+ * Property: type
* {OpenLayers.Control.TYPES} Controls can have a 'type'. The type
* determines the type of interactions which are possible with them when
- * they are placed into a toolbar.
+ * they are placed into a toolbar.
*/
- type: null,
+ type: null,
- /**
+ /**
* Property: allowSelection
* {Boolean} By deafault, controls do not allow selection, because
* it may interfere with map dragging. If this is true, OpenLayers
* will not prevent selection of the control.
* Default is false.
*/
- allowSelection: false,
+ allowSelection: false,
- /**
- * Property: displayClass
+ /**
+ * Property: displayClass
* {string} This property is used for CSS related to the drawing of the
- * Control.
+ * Control.
*/
displayClass: "",
-
+
/**
- * Property: title
- * {string} This property is used for showing a tooltip over the
- * Control.
- */
+ * Property: title
+ * {string} This property is used for showing a tooltip over the
+ * Control.
+ */
title: "",
- /**
- * Property: active
+ /**
+ * Property: active
* {Boolean} The control is active.
*/
active: null,
- /**
- * Property: handler
+ /**
+ * Property: handler
* {<OpenLayers.Handler>} null
*/
handler: null,
@@ -6332,7 +6332,7 @@
*/
eventListeners: null,
- /**
+ /**
* Property: events
* {<OpenLayers.Events>} Events instance for triggering control specific
* events.
@@ -6366,22 +6366,22 @@
* Constructor: OpenLayers.Control
* Create an OpenLayers Control. The options passed as a parameter
* directly extend the control. For example passing the following:
- *
+ *
* > var control = new OpenLayers.Control({div: myDiv});
*
* Overrides the default div attribute value of null.
- *
+ *
* Parameters:
- * options - {Object}
+ * options - {Object}
*/
initialize: function (options) {
// We do this before the extend so that instances can override
// className in options.
- this.displayClass =
+ this.displayClass =
this.CLASS_NAME.replace("OpenLayers.", "ol").replace(/\./g, "");
-
+
OpenLayers.Util.extend(this, options);
-
+
this.events = new OpenLayers.Events(this, null, this.EVENT_TYPES);
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
@@ -6427,14 +6427,14 @@
}
},
- /**
+ /**
* Method: setMap
* Set the map property for the control. This is done through an accessor
- * so that subclasses can override this and take special action once
- * they have their map variable set.
+ * so that subclasses can override this and take special action once
+ * they have their map variable set.
*
* Parameters:
- * map - {<OpenLayers.Map>}
+ * map - {<OpenLayers.Map>}
*/
setMap: function(map) {
this.map = map;
@@ -6442,13 +6442,13 @@
this.handler.setMap(map);
}
},
-
+
/**
* Method: draw
* The draw method is called when the control is ready to be displayed
* on the page. If a div has not been created one is created. Controls
- * with a visual component will almost always want to override this method
- * to customize the look of control.
+ * with a visual component will almost always want to override this method
+ * to customize the look of control.
*
* Parameters:
* px - {<OpenLayers.Pixel>} The top-left pixel position of the control
@@ -6464,8 +6464,8 @@
if (!this.allowSelection) {
this.div.className += " olControlNoSelect";
this.div.setAttribute("unselectable", "on", 0);
- this.div.onselectstart = function() { return(false); };
- }
+ this.div.onselectstart = function() { return(false); };
+ }
if (this.title != "") {
this.div.title = this.title;
}
@@ -6479,7 +6479,7 @@
/**
* Method: moveTo
- * Sets the left and top style attributes to the passed in pixel
+ * Sets the left and top style attributes to the passed in pixel
* coordinates.
*
* Parameters:
@@ -6497,7 +6497,7 @@
* Explicitly activates a control and it's associated
* handler if one has been set. Controls can be
* deactivated by calling the deactivate() method.
- *
+ *
* Returns:
* {Boolean} True if the control was successfully activated or
* false if the control was already active.
@@ -6519,12 +6519,12 @@
this.events.triggerEvent("activate");
return true;
},
-
+
/**
* Method: deactivate
* Deactivates a control and it's associated handler if any. The exact
* effect of this depends on the control itself.
- *
+ *
* Returns:
* {Boolean} True if the control was effectively deactivated or false
* if the control was already inactive.
@@ -6571,8 +6571,8 @@
* and methods to set and get the current language.
*/
OpenLayers.Lang = {
-
- /**
+
+ /**
* Property: code
* {String} Current language code to use in OpenLayers. Use the
* <setCode> method to set this value and the <getCode> method to
@@ -6580,13 +6580,13 @@
*/
code: null,
- /**
+ /**
* APIProperty: defaultCode
* {String} Default language to use when a specific language can't be
* found. Default is "en".
*/
defaultCode: "en",
-
+
/**
* APIFunction: getCode
* Get the current language code.
@@ -6600,7 +6600,7 @@
}
return OpenLayers.Lang.code;
},
-
+
/**
* APIFunction: setCode
* Set the language code for string translation. This code is used by
@@ -6639,7 +6639,7 @@
);
lang = OpenLayers.Lang.defaultCode;
}
-
+
OpenLayers.Lang.code = lang;
},
@@ -6653,7 +6653,7 @@
* key - {String} The key for an i18n string value in the dictionary.
* context - {Object} Optional context to be used with
* <OpenLayers.String.format>.
- *
+ *
* Returns:
* {String} A internationalized string.
*/
@@ -6669,7 +6669,7 @@
}
return message;
}
-
+
};
@@ -6684,7 +6684,7 @@
* key - {String} The key for an i18n string value in the dictionary.
* context - {Object} Optional context to be used with
* <OpenLayers.String.format>.
- *
+ *
* Returns:
* {String} A internationalized string.
*/
@@ -6704,28 +6704,28 @@
/**
* Class: OpenLayers.Popup.Anchored
- *
+ *
* Inherits from:
* - <OpenLayers.Popup>
*/
-OpenLayers.Popup.Anchored =
+OpenLayers.Popup.Anchored =
OpenLayers.Class(OpenLayers.Popup, {
- /**
+ /**
* Parameter: relativePosition
* {String} Relative position of the popup ("br", "tr", "tl" or "bl").
*/
relativePosition: null,
-
+
/**
- * APIProperty: keepInMap
- * {Boolean} If panMapIfOutOfView is false, and this property is true,
+ * APIProperty: keepInMap
+ * {Boolean} If panMapIfOutOfView is false, and this property is true,
* contrain the popup such that it always fits in the available map
* space. By default, this is set. If you are creating popups that are
* near map edges and not allowing pannning, and especially if you have
* a popup which has a fixedRelativePosition, setting this to false may
* be a smart thing to do.
- *
+ *
* For anchored popups, default is true, since subclasses will
* usually want this functionality.
*/
@@ -6733,20 +6733,20 @@
/**
* Parameter: anchor
- * {Object} Object to which we'll anchor the popup. Must expose a
+ * {Object} Object to which we'll anchor the popup. Must expose a
* 'size' (<OpenLayers.Size>) and 'offset' (<OpenLayers.Pixel>).
*/
anchor: null,
- /**
+ /**
* Constructor: OpenLayers.Popup.Anchored
- *
+ *
* Parameters:
* id - {String}
* lonlat - {<OpenLayers.LonLat>}
* contentSize - {<OpenLayers.Size>}
* contentHTML - {String}
- * anchor - {Object} Object which must expose a 'size' <OpenLayers.Size>
+ * anchor - {Object} Object which must expose a 'size' <OpenLayers.Size>
* and 'offset' <OpenLayers.Pixel> (generally an <OpenLayers.Icon>).
* closeBox - {Boolean}
* closeBoxCallback - {Function} Function to be called on closeBox click.
@@ -6758,7 +6758,7 @@
];
OpenLayers.Popup.prototype.initialize.apply(this, newArguments);
- this.anchor = (anchor != null) ? anchor
+ this.anchor = (anchor != null) ? anchor
: { size: new OpenLayers.Size(0,0),
offset: new OpenLayers.Pixel(0,0)};
},
@@ -6769,13 +6769,13 @@
destroy: function() {
this.anchor = null;
this.relativePosition = null;
-
- OpenLayers.Popup.prototype.destroy.apply(this, arguments);
+
+ OpenLayers.Popup.prototype.destroy.apply(this, arguments);
},
/**
* APIMethod: show
- * Overridden from Popup since user might hide popup and then show() it
+ * Overridden from Popup since user might hide popup and then show() it
* in a new location (meaning we might want to update the relative
* position on the show)
*/
@@ -6787,27 +6787,27 @@
/**
* Method: moveTo
* Since the popup is moving to a new px, it might need also to be moved
- * relative to where the marker is. We first calculate the new
- * relativePosition, and then we calculate the new px where we will
- * put the popup, based on the new relative position.
- *
- * If the relativePosition has changed, we must also call
- * updateRelativePosition() to make any visual changes to the popup
+ * relative to where the marker is. We first calculate the new
+ * relativePosition, and then we calculate the new px where we will
+ * put the popup, based on the new relative position.
+ *
+ * If the relativePosition has changed, we must also call
+ * updateRelativePosition() to make any visual changes to the popup
* which are associated with putting it in a new relativePosition.
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
*/
moveTo: function(px) {
var oldRelativePosition = this.relativePosition;
this.relativePosition = this.calculateRelativePosition(px);
-
+
var newPx = this.calculateNewPx(px);
-
- var newArguments = new Array(newPx);
+
+ var newArguments = new Array(newPx);
OpenLayers.Popup.prototype.moveTo.apply(this, newArguments);
-
- //if this move has caused the popup to change its relative position,
+
+ //if this move has caused the popup to change its relative position,
// we need to make the appropriate cosmetic changes.
if (this.relativePosition != oldRelativePosition) {
this.updateRelativePosition();
@@ -6816,76 +6816,76 @@
/**
* APIMethod: setSize
- *
+ *
* Parameters:
- * contentSize - {<OpenLayers.Size>} the new size for the popup's
+ * contentSize - {<OpenLayers.Size>} the new size for the popup's
* contents div (in pixels).
*/
- setSize:function(contentSize) {
+ setSize:function(contentSize) {
OpenLayers.Popup.prototype.setSize.apply(this, arguments);
if ((this.lonlat) && (this.map)) {
var px = this.map.getLayerPxFromLonLat(this.lonlat);
this.moveTo(px);
}
- },
-
- /**
+ },
+
+ /**
* Method: calculateRelativePosition
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {String} The relative position ("br" "tr" "tl" "bl") at which the popup
* should be placed.
*/
calculateRelativePosition:function(px) {
- var lonlat = this.map.getLonLatFromLayerPx(px);
-
+ var lonlat = this.map.getLonLatFromLayerPx(px);
+
var extent = this.map.getExtent();
var quadrant = extent.determineQuadrant(lonlat);
-
+
return OpenLayers.Bounds.oppositeQuadrant(quadrant);
- },
+ },
/**
* Method: updateRelativePosition
- * The popup has been moved to a new relative location, so we may want to
- * make some cosmetic adjustments to it.
- *
- * Note that in the classic Anchored popup, there is nothing to do
+ * The popup has been moved to a new relative location, so we may want to
+ * make some cosmetic adjustments to it.
+ *
+ * Note that in the classic Anchored popup, there is nothing to do
* here, since the popup looks exactly the same in all four positions.
- * Subclasses such as the AnchoredBubble and Framed, however, will
+ * Subclasses such as the AnchoredBubble and Framed, however, will
* want to do something special here.
*/
updateRelativePosition: function() {
//to be overridden by subclasses
},
- /**
+ /**
* Method: calculateNewPx
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Pixel>} The the new px position of the popup on the screen
* relative to the passed-in px.
*/
calculateNewPx:function(px) {
var newPx = px.offset(this.anchor.offset);
-
+
//use contentSize if size is not already set
var size = this.size || this.contentSize;
var top = (this.relativePosition.charAt(0) == 't');
newPx.y += (top) ? -size.h : this.anchor.size.h;
-
+
var left = (this.relativePosition.charAt(1) == 'l');
newPx.x += (left) ? -size.w : this.anchor.size.w;
- return newPx;
+ return newPx;
},
CLASS_NAME: "OpenLayers.Popup.Anchored"
@@ -6903,9 +6903,9 @@
*/
/**
- * Class: OpenLayers.Renderer.Canvas
+ * Class: OpenLayers.Renderer.Canvas
* A renderer based on the 2D 'canvas' drawing element.element
- *
+ *
* Inherits:
* - <OpenLayers.Renderer>
*/
@@ -6915,14 +6915,14 @@
* Property: canvas
* {Canvas} The canvas context object.
*/
- canvas: null,
-
+ canvas: null,
+
/**
* Property: features
* {Object} Internal object of feature/style pairs for use in redrawing the layer.
*/
- features: null,
-
+ features: null,
+
/**
* Property: geometryMap
* {Object} Geometry -> Feature lookup table. Used by eraseGeometry to
@@ -6930,12 +6930,12 @@
* when erasing geoms.
*/
geometryMap: null,
-
+
/**
* Constructor: OpenLayers.Renderer.Canvas
*
* Parameters:
- * containerID - {<String>}
+ * containerID - {<String>}
*/
initialize: function(containerID) {
OpenLayers.Renderer.prototype.initialize.apply(this, arguments);
@@ -6945,13 +6945,13 @@
this.features = {};
this.geometryMap = {};
},
-
- /**
+
+ /**
* Method: eraseGeometry
* Erase a geometry from the renderer. Because the Canvas renderer has
* 'memory' of the features that it has drawn, we have to remove the
- * feature so it doesn't redraw.
- *
+ * feature so it doesn't redraw.
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
*/
@@ -6961,31 +6961,31 @@
/**
* APIMethod: supported
- *
+ *
* Returns:
* {Boolean} Whether or not the browser supports the renderer class
*/
supported: function() {
var canvas = document.createElement("canvas");
return !!canvas.getContext;
- },
-
+ },
+
/**
* Method: setExtent
* Set the visible part of the layer.
*
- * Resolution has probably changed, so we nullify the resolution
- * cache (this.resolution), then redraw.
+ * Resolution has probably changed, so we nullify the resolution
+ * cache (this.resolution), then redraw.
*
* Parameters:
- * extent - {<OpenLayers.Bounds>}
+ * extent - {<OpenLayers.Bounds>}
*/
setExtent: function(extent) {
this.extent = extent.clone();
this.resolution = null;
this.redraw();
},
-
+
/**
* Method: setSize
* Sets the size of the drawing surface.
@@ -6993,7 +6993,7 @@
* Once the size is updated, redraw the canvas.
*
* Parameters:
- * size - {<OpenLayers.Size>}
+ * size - {<OpenLayers.Size>}
*/
setSize: function(size) {
this.size = size.clone();
@@ -7003,15 +7003,15 @@
this.root.height = size.h;
this.resolution = null;
},
-
+
/**
* Method: drawFeature
* Draw the feature. Stores the feature in the features list,
- * then redraws the layer.
+ * then redraws the layer.
*
* Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
- * style - {<Object>}
+ * feature - {<OpenLayers.Feature.Vector>}
+ * style - {<Object>}
*/
drawFeature: function(feature, style) {
if(style == null) {
@@ -7023,23 +7023,23 @@
'strokeWidth': 2,
'fillOpacity': 1,
'strokeOpacity': 1
- }, style);
- this.features[feature.id] = [feature, style];
- if (feature.geometry) {
+ }, style);
+ this.features[feature.id] = [feature, style];
+ if (feature.geometry) {
this.geometryMap[feature.geometry.id] = feature.id;
- }
+ }
this.redraw();
},
- /**
+ /**
* Method: drawGeometry
* Used when looping (in redraw) over the features; draws
- * the canvas.
+ * the canvas.
*
* Parameters:
- * geometry - {<OpenLayers.Geometry>}
- * style - {Object}
+ * geometry - {<OpenLayers.Geometry>}
+ * style - {Object}
*/
drawGeometry: function(geometry, style) {
var className = geometry.CLASS_NAME;
@@ -7072,18 +7072,18 @@
/**
* Method: drawExternalGraphic
- * Called to draw External graphics.
- *
- * Parameters:
+ * Called to draw External graphics.
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawExternalGraphic: function(pt, style) {
var img = new Image();
img.src = style.externalGraphic;
-
+
if(style.graphicTitle) {
- img.title=style.graphicTitle;
+ img.title=style.graphicTitle;
}
var width = style.graphicWidth || style.graphicHeight;
@@ -7095,18 +7095,18 @@
var yOffset = (style.graphicYOffset != undefined) ?
style.graphicYOffset : -(0.5 * height);
var opacity = style.graphicOpacity || style.fillOpacity;
-
- var context = { img: img,
- x: (pt[0]+xOffset),
- y: (pt[1]+yOffset),
- width: width,
- height: height,
+
+ var context = { img: img,
+ x: (pt[0]+xOffset),
+ y: (pt[1]+yOffset),
+ width: width,
+ height: height,
canvas: this.canvas };
img.onload = OpenLayers.Function.bind( function() {
- this.canvas.drawImage(this.img, this.x,
+ this.canvas.drawImage(this.img, this.x,
this.y, this.width, this.height);
- }, context);
+ }, context);
},
/**
@@ -7118,10 +7118,10 @@
* style - {Object} Symbolizer hash
*/
setCanvasStyle: function(type, style) {
- if (type == "fill") {
+ if (type == "fill") {
this.canvas.globalAlpha = style['fillOpacity'];
this.canvas.fillStyle = style['fillColor'];
- } else if (type == "stroke") {
+ } else if (type == "stroke") {
this.canvas.globalAlpha = style['strokeOpacity'];
this.canvas.strokeStyle = style['strokeColor'];
this.canvas.lineWidth = style['strokeWidth'];
@@ -7134,15 +7134,15 @@
/**
* Method: drawPoint
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawPoint: function(geometry, style) {
if(style.graphic !== false) {
var pt = this.getLocalXY(geometry);
-
+
if (style.externalGraphic) {
this.drawExternalGraphic(pt, style);
} else {
@@ -7152,7 +7152,7 @@
this.canvas.arc(pt[0], pt[1], 6, 0, Math.PI*2, true);
this.canvas.fill();
}
-
+
if(style.stroke !== false) {
this.setCanvasStyle("stroke", style);
this.canvas.beginPath();
@@ -7167,11 +7167,11 @@
/**
* Method: drawLineString
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawLineString: function(geometry, style) {
if(style.stroke !== false) {
this.setCanvasStyle("stroke", style);
@@ -7185,16 +7185,16 @@
this.canvas.stroke();
}
this.setCanvasStyle("reset");
- },
-
+ },
+
/**
* Method: drawLinearRing
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawLinearRing: function(geometry, style) {
if(style.fill !== false) {
this.setCanvasStyle("fill", style);
@@ -7207,9 +7207,9 @@
}
this.canvas.fill();
}
-
+
if(style.stroke !== false) {
- var oldWidth = this.canvas.lineWidth;
+ var oldWidth = this.canvas.lineWidth;
this.setCanvasStyle("stroke", style);
this.canvas.beginPath();
var start = this.getLocalXY(geometry.components[0]);
@@ -7221,29 +7221,29 @@
this.canvas.stroke();
}
this.setCanvasStyle("reset");
- },
-
+ },
+
/**
* Method: drawPolygon
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- */
+ */
drawPolygon: function(geometry, style) {
this.drawLinearRing(geometry.components[0], style);
for (var i = 1; i < geometry.components.length; i++) {
this.drawLinearRing(geometry.components[i], {
- fillOpacity: 0,
- strokeWidth: 0,
- strokeOpacity: 0,
- strokeColor: '#000000',
+ fillOpacity: 0,
+ strokeWidth: 0,
+ strokeOpacity: 0,
+ strokeColor: '#000000',
fillColor: '#000000'}
- ); // inner rings are 'empty'
+ ); // inner rings are 'empty'
}
},
-
+
/**
* Method: drawText
* This method is only called by the renderer itself.
@@ -7258,7 +7258,7 @@
labelAlign: "cm"
}, style);
var pt = this.getLocalXY(location);
-
+
this.setCanvasStyle("reset");
this.canvas.fillStyle = style.fontColor;
this.canvas.globalAlpha = 1;
@@ -7287,7 +7287,7 @@
pt[0] -= len / 2;
}
this.canvas.translate(pt[0], pt[1]);
-
+
this.canvas.mozDrawText(style.label);
this.canvas.translate(-1*pt[0], -1*pt[1]);
}
@@ -7298,7 +7298,7 @@
* Method: getLocalXY
* transform geographic xy into pixel xy
*
- * Parameters:
+ * Parameters:
* point - {<OpenLayers.Geometry.Point>}
*/
getLocalXY: function(point) {
@@ -7308,22 +7308,22 @@
var y = ((extent.top / resolution) - point.y / resolution);
return [x, y];
},
-
+
/**
* Method: clear
* Clear all vectors from the renderer.
* virtual function.
- */
+ */
clear: function() {
this.canvas.clearRect(0, 0, this.root.width, this.root.height);
},
/**
* Method: getFeatureIdFromEvent
- * Returns a feature id from an event on the renderer.
- *
+ * Returns a feature id from an event on the renderer.
+ *
* Parameters:
- * evt - {<OpenLayers.Event>}
+ * evt - {<OpenLayers.Event>}
*
* Returns:
* {String} A feature id or null.
@@ -7331,9 +7331,9 @@
getFeatureIdFromEvent: function(evt) {
var loc = this.map.getLonLatFromPixel(evt.xy);
var resolution = this.getResolution();
- var bounds = new OpenLayers.Bounds(loc.lon - resolution * 5,
- loc.lat - resolution * 5,
- loc.lon + resolution * 5,
+ var bounds = new OpenLayers.Bounds(loc.lon - resolution * 5,
+ loc.lat - resolution * 5,
+ loc.lon + resolution * 5,
loc.lat + resolution * 5);
var geom = bounds.toGeometry();
for (var feat in this.features) {
@@ -7341,17 +7341,17 @@
if (this.features[feat][0].geometry.intersects(geom)) {
return feat;
}
- }
+ }
return null;
},
-
+
/**
- * Method: eraseFeatures
+ * Method: eraseFeatures
* This is called by the layer to erase features; removes the feature from
* the list, then redraws the layer.
- *
+ *
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
*/
eraseFeatures: function(features) {
if(!(features instanceof Array)) {
@@ -7391,7 +7391,7 @@
item = labelMap[i];
this.drawText(item[0].geometry.getCentroid(), item[1]);
}
- }
+ }
},
CLASS_NAME: "OpenLayers.Renderer.Canvas"
@@ -7420,33 +7420,33 @@
/**
* Class: OpenLayers.ElementsIndexer
* This class takes care of figuring out which order elements should be
- * placed in the DOM based on given indexing methods.
+ * placed in the DOM based on given indexing methods.
*/
OpenLayers.ElementsIndexer = OpenLayers.Class({
-
+
/**
* Property: maxZIndex
* {Integer} This is the largest-most z-index value for a node
* contained within the indexer.
*/
maxZIndex: null,
-
+
/**
* Property: order
* {Array<String>} This is an array of node id's stored in the
* order that they should show up on screen. Id's higher up in the
* array (higher array index) represent nodes with higher z-indeces.
*/
- order: null,
-
+ order: null,
+
/**
* Property: indices
* {Object} This is a hash that maps node ids to their z-index value
- * stored in the indexer. This is done to make finding a nodes z-index
+ * stored in the indexer. This is done to make finding a nodes z-index
* value O(1).
*/
indices: null,
-
+
/**
* Property: compare
* {Function} This is the function used to determine placement of
@@ -7454,34 +7454,34 @@
* the Z_ORDER_DRAWING_ORDER comparison method.
*/
compare: null,
-
+
/**
* APIMethod: initialize
- * Create a new indexer with
- *
+ * Create a new indexer with
+ *
* Parameters:
* yOrdering - {Boolean} Whether to use y-ordering.
*/
initialize: function(yOrdering) {
- this.compare = yOrdering ?
+ this.compare = yOrdering ?
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_Y_ORDER :
OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER_DRAWING_ORDER;
-
+
this.order = [];
this.indices = {};
this.maxZIndex = 0;
},
-
+
/**
* APIMethod: insert
- * Insert a new node into the indexer. In order to find the correct
- * positioning for the node to be inserted, this method uses a binary
- * search. This makes inserting O(log(n)).
- *
+ * Insert a new node into the indexer. In order to find the correct
+ * positioning for the node to be inserted, this method uses a binary
+ * search. This makes inserting O(log(n)).
+ *
* Parameters:
* newNode - {DOMElement} The new node to be inserted.
- *
+ *
* Returns
* {DOMElement} the node before which we should insert our newNode, or
* null if newNode can just be appended.
@@ -7492,40 +7492,40 @@
if (this.exists(newNode)) {
this.remove(newNode);
}
-
+
var nodeId = newNode.id;
-
- this.determineZIndex(newNode);
+ this.determineZIndex(newNode);
+
var leftIndex = -1;
var rightIndex = this.order.length;
var middle;
while (rightIndex - leftIndex > 1) {
middle = parseInt((leftIndex + rightIndex) / 2);
-
+
var placement = this.compare(this, newNode,
OpenLayers.Util.getElement(this.order[middle]));
-
+
if (placement > 0) {
leftIndex = middle;
} else {
rightIndex = middle;
- }
+ }
}
-
+
this.order.splice(rightIndex, 0, nodeId);
this.indices[nodeId] = this.getZIndex(newNode);
-
+
// If the new node should be before another in the index
// order, return the node before which we have to insert the new one;
// else, return null to indicate that the new node can be appended.
- return this.getNextElement(rightIndex);
+ return this.getNextElement(rightIndex);
},
-
+
/**
* APIMethod: remove
- *
+ *
* Parameters:
* node - {DOMElement} The node to be removed.
*/
@@ -7537,8 +7537,8 @@
// from the indeces hash.
this.order.splice(arrayIndex, 1);
delete this.indices[nodeId];
-
- // Reset the maxium z-index based on the last item in the
+
+ // Reset the maxium z-index based on the last item in the
// order array.
if (this.order.length > 0) {
var lastId = this.order[this.order.length - 1];
@@ -7548,7 +7548,7 @@
}
}
},
-
+
/**
* APIMethod: clear
*/
@@ -7557,7 +7557,7 @@
this.indices = {};
this.maxZIndex = 0;
},
-
+
/**
* APIMethod: exists
*
@@ -7574,29 +7574,29 @@
/**
* APIMethod: getZIndex
* Get the z-index value for the current node from the node data itself.
- *
+ *
* Parameters:
* node - {DOMElement} The node whose z-index to get.
- *
+ *
* Returns:
- * {Integer} The z-index value for the specified node (from the node
+ * {Integer} The z-index value for the specified node (from the node
* data itself).
*/
getZIndex: function(node) {
- return node._style.graphicZIndex;
+ return node._style.graphicZIndex;
},
-
+
/**
* Method: determineZIndex
- * Determine the z-index for the current node if there isn't one,
+ * Determine the z-index for the current node if there isn't one,
* and set the maximum value if we've found a new maximum.
- *
+ *
* Parameters:
- * node - {DOMElement}
+ * node - {DOMElement}
*/
determineZIndex: function(node) {
var zIndex = node._style.graphicZIndex;
-
+
// Everything must have a zIndex. If none is specified,
// this means the user *must* (hint: assumption) want this
// node to succomb to drawing order. To enforce drawing order
@@ -7604,59 +7604,59 @@
// greater than any currently in the indexer.
if (zIndex == null) {
zIndex = this.maxZIndex;
- node._style.graphicZIndex = zIndex;
+ node._style.graphicZIndex = zIndex;
} else if (zIndex > this.maxZIndex) {
this.maxZIndex = zIndex;
}
},
-
+
/**
* APIMethod: getNextElement
* Get the next element in the order stack.
- *
+ *
* Parameters:
* index - {Integer} The index of the current node in this.order.
- *
+ *
* Returns:
* {DOMElement} the node following the index passed in, or
* null.
*/
getNextElement: function(index) {
- var nextIndex = index + 1;
+ var nextIndex = index + 1;
if (nextIndex < this.order.length){
- var nextElement = OpenLayers.Util.getElement(this.order[nextIndex]);
- if (nextElement == undefined){
- nextElement = this.getNextElement(nextIndex);
- }
- return nextElement;
- } else {
- return null;
- }
- },
-
+ var nextElement = OpenLayers.Util.getElement(this.order[nextIndex]);
+ if (nextElement == undefined){
+ nextElement = this.getNextElement(nextIndex);
+ }
+ return nextElement;
+ } else {
+ return null;
+ }
+ },
+
CLASS_NAME: "OpenLayers.ElementsIndexer"
});
/**
* Namespace: OpenLayers.ElementsIndexer.IndexingMethods
- * These are the compare methods for figuring out where a new node should be
- * placed within the indexer. These methods are very similar to general
- * sorting methods in that they return -1, 0, and 1 to specify the
+ * These are the compare methods for figuring out where a new node should be
+ * placed within the indexer. These methods are very similar to general
+ * sorting methods in that they return -1, 0, and 1 to specify the
* direction in which new nodes fall in the ordering.
*/
OpenLayers.ElementsIndexer.IndexingMethods = {
-
+
/**
* Method: Z_ORDER
* This compare method is used by other comparison methods.
* It can be used individually for ordering, but is not recommended,
* because it doesn't subscribe to drawing order.
- *
+ *
* Parameters:
* indexer - {<OpenLayers.ElementsIndexer>}
* newNode - {DOMElement}
* nextNode - {DOMElement}
- *
+ *
* Returns:
* {Integer}
*/
@@ -7666,93 +7666,93 @@
var returnVal = 0;
if (nextNode) {
var nextZIndex = indexer.getZIndex(nextNode);
- returnVal = newZIndex - nextZIndex;
+ returnVal = newZIndex - nextZIndex;
}
-
+
return returnVal;
},
/**
* APIMethod: Z_ORDER_DRAWING_ORDER
* This method orders nodes by their z-index, but does so in a way
- * that, if there are other nodes with the same z-index, the newest
- * drawn will be the front most within that z-index. This is the
+ * that, if there are other nodes with the same z-index, the newest
+ * drawn will be the front most within that z-index. This is the
* default indexing method.
- *
+ *
* Parameters:
* indexer - {<OpenLayers.ElementsIndexer>}
* newNode - {DOMElement}
* nextNode - {DOMElement}
- *
+ *
* Returns:
* {Integer}
*/
Z_ORDER_DRAWING_ORDER: function(indexer, newNode, nextNode) {
var returnVal = OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(
- indexer,
- newNode,
+ indexer,
+ newNode,
nextNode
);
-
+
// Make Z_ORDER subscribe to drawing order by pushing it above
// all of the other nodes with the same z-index.
if (nextNode && returnVal == 0) {
returnVal = 1;
}
-
+
return returnVal;
},
/**
* APIMethod: Z_ORDER_Y_ORDER
* This one should really be called Z_ORDER_Y_ORDER_DRAWING_ORDER, as it
- * best describes which ordering methods have precedence (though, the
- * name would be too long). This method orders nodes by their z-index,
- * but does so in a way that, if there are other nodes with the same
- * z-index, the nodes with the lower y position will be "closer" than
- * those with a higher y position. If two nodes have the exact same y
- * position, however, then this method will revert to using drawing
+ * best describes which ordering methods have precedence (though, the
+ * name would be too long). This method orders nodes by their z-index,
+ * but does so in a way that, if there are other nodes with the same
+ * z-index, the nodes with the lower y position will be "closer" than
+ * those with a higher y position. If two nodes have the exact same y
+ * position, however, then this method will revert to using drawing
* order to decide placement.
- *
+ *
* Parameters:
* indexer - {<OpenLayers.ElementsIndexer>}
* newNode - {DOMElement}
* nextNode - {DOMElement}
- *
+ *
* Returns:
* {Integer}
*/
Z_ORDER_Y_ORDER: function(indexer, newNode, nextNode) {
var returnVal = OpenLayers.ElementsIndexer.IndexingMethods.Z_ORDER(
- indexer,
- newNode,
+ indexer,
+ newNode,
nextNode
);
-
+
if (nextNode && returnVal == 0) {
var newLat = newNode._geometry.getBounds().bottom;
var nextLat = nextNode._geometry.getBounds().bottom;
-
+
var result = nextLat - newLat;
returnVal = (result ==0) ? 1 : result;
}
-
- return returnVal;
+
+ return returnVal;
}
};
/**
* Class: OpenLayers.Renderer.Elements
- * This is another virtual class in that it should never be instantiated by
- * itself as a Renderer. It exists because there is *tons* of shared
+ * This is another virtual class in that it should never be instantiated by
+ * itself as a Renderer. It exists because there is *tons* of shared
* functionality between different vector libraries which use nodes/elements
- * as a base for rendering vectors.
- *
- * The highlevel bits of code that are implemented here are the adding and
- * removing of geometries, which is essentially the same for any
+ * as a base for rendering vectors.
+ *
+ * The highlevel bits of code that are implemented here are the adding and
+ * removing of geometries, which is essentially the same for any
* element-based renderer. The details of creating each node and drawing the
- * paths are of course different, but the machinery is the same.
- *
+ * paths are of course different, but the machinery is the same.
+ *
* Inherits:
* - <OpenLayers.Renderer>
*/
@@ -7763,13 +7763,13 @@
* {DOMElement}
*/
rendererRoot: null,
-
+
/**
* Property: root
* {DOMElement}
*/
root: null,
-
+
/**
* Property: vectorRoot
* {DOMElement}
@@ -7785,29 +7785,29 @@
/**
* Property: xmlns
* {String}
- */
+ */
xmlns: null,
-
+
/**
* Property: Indexer
- * {<OpenLayers.ElementIndexer>} An instance of OpenLayers.ElementsIndexer
+ * {<OpenLayers.ElementIndexer>} An instance of OpenLayers.ElementsIndexer
* created upon initialization if the zIndexing or yOrdering options
* passed to this renderer's constructor are set to true.
*/
- indexer: null,
-
+ indexer: null,
+
/**
* Constant: BACKGROUND_ID_SUFFIX
* {String}
*/
BACKGROUND_ID_SUFFIX: "_background",
-
+
/**
* Constant: BACKGROUND_ID_SUFFIX
* {String}
*/
LABEL_ID_SUFFIX: "_label",
-
+
/**
* Property: minimumSymbolizer
* {Object}
@@ -7819,10 +7819,10 @@
fillOpacity: 1,
pointRadius: 0
},
-
+
/**
* Constructor: OpenLayers.Renderer.Elements
- *
+ *
* Parameters:
* containerID - {String}
* options - {Object} options for this renderer. Supported options are:
@@ -7837,24 +7837,24 @@
this.root = this.createRoot("_root");
this.vectorRoot = this.createRoot("_vroot");
this.textRoot = this.createRoot("_troot");
-
+
this.root.appendChild(this.vectorRoot);
this.root.appendChild(this.textRoot);
-
+
this.rendererRoot.appendChild(this.root);
this.container.appendChild(this.rendererRoot);
-
+
if(options && (options.zIndexing || options.yOrdering)) {
this.indexer = new OpenLayers.ElementsIndexer(options.yOrdering);
}
},
-
+
/**
* Method: destroy
*/
destroy: function() {
- this.clear();
+ this.clear();
this.rendererRoot = null;
this.root = null;
@@ -7862,11 +7862,11 @@
OpenLayers.Renderer.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: clear
* Remove all the elements from the root
- */
+ */
clear: function() {
if (this.vectorRoot) {
while (this.vectorRoot.childNodes.length > 0) {
@@ -7883,26 +7883,26 @@
}
},
- /**
+ /**
* Method: getNodeType
* This function is in charge of asking the specific renderer which type
* of node to create for the given geometry and style. All geometries
* in an Elements-based renderer consist of one node and some
* attributes. We have the nodeFactory() function which creates a node
* for us, but it takes a 'type' as input, and that is precisely what
- * this function tells us.
- *
+ * this function tells us.
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- *
+ *
* Returns:
* {String} The corresponding node type for the specified geometry
*/
getNodeType: function(geometry, style) { },
- /**
- * Method: drawGeometry
+ /**
+ * Method: drawGeometry
* Draw the geometry, creating new nodes, setting paths, setting style,
* setting featureId on the node. This method should only be called
* by the renderer itself.
@@ -7911,7 +7911,7 @@
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
* featureId - {String}
- *
+ *
* Returns:
* {Boolean} true if the geometry has been drawn completely; null if
* incomplete; false otherwise
@@ -7951,16 +7951,16 @@
}
return rendered;
},
-
+
/**
* Method: redrawNode
- *
+ *
* Parameters:
* id - {String}
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
* featureId - {String}
- *
+ *
* Returns:
* {Boolean} true if the complete geometry could be drawn, null if parts of
* the geometry could not be drawn, false otherwise
@@ -7968,7 +7968,7 @@
redrawNode: function(id, geometry, style, featureId) {
// Get the node if it's already on the map.
var node = this.nodeFactory(id, this.getNodeType(geometry, style));
-
+
// Set the data for the node, then draw it.
node._featureId = featureId;
node._geometry = geometry;
@@ -7979,9 +7979,9 @@
if(drawResult === false) {
return false;
}
-
+
node = drawResult.node;
-
+
// Insert the node into the indexer so it can show us where to
// place it. Note that this operation is O(log(n)). If there's a
// performance problem (when dragging, for instance) this is
@@ -7996,39 +7996,39 @@
} else {
// if there's no indexer, simply append the node to root,
// but only if the node is a new one
- if (node.parentNode !== this.vectorRoot){
+ if (node.parentNode !== this.vectorRoot){
this.vectorRoot.appendChild(node);
}
}
-
+
this.postDraw(node);
-
+
return drawResult.complete;
},
-
+
/**
* Method: redrawBackgroundNode
* Redraws the node using special 'background' style properties. Basically
- * just calls redrawNode(), but instead of directly using the
- * 'externalGraphic', 'graphicXOffset', 'graphicYOffset', and
- * 'graphicZIndex' properties directly from the specified 'style'
- * parameter, we create a new style object and set those properties
- * from the corresponding 'background'-prefixed properties from
+ * just calls redrawNode(), but instead of directly using the
+ * 'externalGraphic', 'graphicXOffset', 'graphicYOffset', and
+ * 'graphicZIndex' properties directly from the specified 'style'
+ * parameter, we create a new style object and set those properties
+ * from the corresponding 'background'-prefixed properties from
* specified 'style' parameter.
- *
+ *
* Parameters:
* id - {String}
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
* featureId - {String}
- *
+ *
* Returns:
* {Boolean} true if the complete geometry could be drawn, null if parts of
* the geometry could not be drawn, false otherwise
*/
redrawBackgroundNode: function(id, geometry, style, featureId) {
var backgroundStyle = OpenLayers.Util.extend({}, style);
-
+
// Set regular style attributes to apply to the background styles.
backgroundStyle.externalGraphic = backgroundStyle.backgroundGraphic;
backgroundStyle.graphicXOffset = backgroundStyle.backgroundXOffset;
@@ -8036,17 +8036,17 @@
backgroundStyle.graphicZIndex = backgroundStyle.backgroundGraphicZIndex;
backgroundStyle.graphicWidth = backgroundStyle.backgroundWidth || backgroundStyle.graphicWidth;
backgroundStyle.graphicHeight = backgroundStyle.backgroundHeight || backgroundStyle.graphicHeight;
-
+
// Erase background styles.
backgroundStyle.backgroundGraphic = null;
backgroundStyle.backgroundXOffset = null;
backgroundStyle.backgroundYOffset = null;
backgroundStyle.backgroundGraphicZIndex = null;
-
+
return this.redrawNode(
- id + this.BACKGROUND_ID_SUFFIX,
- geometry,
- backgroundStyle,
+ id + this.BACKGROUND_ID_SUFFIX,
+ geometry,
+ backgroundStyle,
null
);
},
@@ -8061,7 +8061,7 @@
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- *
+ *
* Returns:
* {Object} a hash with properties "node" (the drawn node) and "complete"
* (null if parts of the geometry could not be drawn, false if nothing
@@ -8108,8 +8108,8 @@
break;
}
- node._style = style;
- node._options = options;
+ node._style = style;
+ node._options = options;
//set style
//TBD simplify this
@@ -8122,129 +8122,129 @@
return false;
}
},
-
+
/**
* Method: postDraw
* Things that have do be done after the geometry node is appended
* to its parent node. To be overridden by subclasses.
- *
+ *
* Parameters:
* node - {DOMElement}
*/
postDraw: function(node) {},
-
+
/**
* Method: drawPoint
- * Virtual function for drawing Point Geometry.
+ * Virtual function for drawing Point Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the point
- */
+ */
drawPoint: function(node, geometry) {},
/**
* Method: drawLineString
- * Virtual function for drawing LineString Geometry.
+ * Virtual function for drawing LineString Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components of
* the linestring, or false if nothing could be drawn
- */
+ */
drawLineString: function(node, geometry) {},
/**
* Method: drawLinearRing
- * Virtual function for drawing LinearRing Geometry.
+ * Virtual function for drawing LinearRing Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the linear ring, or false if nothing could be drawn
- */
+ */
drawLinearRing: function(node, geometry) {},
/**
* Method: drawPolygon
- * Virtual function for drawing Polygon Geometry.
+ * Virtual function for drawing Polygon Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the polygon, or false if nothing could be drawn
- */
+ */
drawPolygon: function(node, geometry) {},
/**
* Method: drawRectangle
- * Virtual function for drawing Rectangle Geometry.
+ * Virtual function for drawing Rectangle Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the rectangle
- */
+ */
drawRectangle: function(node, geometry) {},
/**
* Method: drawCircle
- * Virtual function for drawing Circle Geometry.
+ * Virtual function for drawing Circle Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the circle
- */
+ */
drawCircle: function(node, geometry) {},
/**
* Method: drawSurface
- * Virtual function for drawing Surface Geometry.
+ * Virtual function for drawing Surface Geometry.
* Should be implemented by subclasses.
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the surface
- */
+ */
drawSurface: function(node, geometry) {},
/**
* Method: removeText
* Removes a label
- *
+ *
* Parameters:
* featureId - {String}
*/
@@ -8257,12 +8257,12 @@
/**
* Method: getFeatureIdFromEvent
- *
+ *
* Parameters:
* evt - {Object} An <OpenLayers.Event> object
*
* Returns:
- * {<OpenLayers.Geometry>} A geometry from an event that
+ * {<OpenLayers.Geometry>} A geometry from an event that
* happened on a layer.
*/
getFeatureIdFromEvent: function(evt) {
@@ -8273,13 +8273,13 @@
return featureId;
},
- /**
+ /**
* Method: eraseGeometry
- * Erase a geometry from the renderer. In the case of a multi-geometry,
- * we cycle through and recurse on ourselves. Otherwise, we look for a
+ * Erase a geometry from the renderer. In the case of a multi-geometry,
+ * we cycle through and recurse on ourselves. Otherwise, we look for a
* node with the geometry.id, destroy its geometry, and remove it from
* the DOM.
- *
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
*/
@@ -8291,7 +8291,7 @@
for (var i=0, len=geometry.components.length; i<len; i++) {
this.eraseGeometry(geometry.components[i]);
}
- } else {
+ } else {
var element = OpenLayers.Util.getElement(geometry.id);
if (element && element.parentNode) {
if (element.geometry) {
@@ -8303,7 +8303,7 @@
if (this.indexer) {
this.indexer.remove(element);
}
-
+
if (element._style.backgroundGraphic) {
var backgroundId = geometry.id + this.BACKGROUND_ID_SUFFIX;
var bElem = OpenLayers.Util.getElement(backgroundId);
@@ -8317,17 +8317,17 @@
}
},
- /**
+ /**
* Method: nodeFactory
* Create new node of the specified type, with the (optional) specified id.
- *
+ *
* If node already exists with same ID and a different type, we remove it
* and then call ourselves again to recreate it.
- *
+ *
* Parameters:
* id - {String}
* type - {String} type Kind of node to draw.
- *
+ *
* Returns:
* {DOMElement} A new node of the given type and id.
*/
@@ -8343,27 +8343,27 @@
}
return node;
},
-
- /**
+
+ /**
* Method: nodeTypeCompare
- *
+ *
* Parameters:
* node - {DOMElement}
* type - {String} Kind of node
- *
+ *
* Returns:
* {Boolean} Whether or not the specified node is of the specified type
* This function must be overridden by subclasses.
*/
nodeTypeCompare: function(node, type) {},
-
- /**
+
+ /**
* Method: createNode
- *
+ *
* Parameters:
* type - {String} Kind of node to draw.
* id - {String} Id for node.
- *
+ *
* Returns:
* {DOMElement} A new node of the given type and id.
* This function must be overridden by subclasses.
@@ -8373,7 +8373,7 @@
/**
* Method: moveRoot
* moves this renderer's root to a different renderer.
- *
+ *
* Parameters:
* renderer - {<OpenLayers.Renderer>} target renderer for the moved root
*/
@@ -8385,27 +8385,27 @@
root.parentNode.removeChild(root);
renderer.rendererRoot.appendChild(root);
},
-
+
/**
* Method: getRenderLayerId
* Gets the layer that this renderer's output appears on. If moveRoot was
* used, this will be different from the id of the layer containing the
* features rendered by this renderer.
- *
+ *
* Returns:
* {String} the id of the output layer.
*/
getRenderLayerId: function() {
return this.root.parentNode.parentNode.id;
},
-
+
/**
* Method: isComplexSymbol
* Determines if a symbol cannot be rendered using drawCircle
- *
+ *
* Parameters:
* graphicName - {String}
- *
+ *
* Returns
* {Boolean} true if the symbol is complex, false if not
*/
@@ -8450,7 +8450,7 @@
* - <OpenLayers.Strategy>
*/
OpenLayers.Strategy.Fixed = OpenLayers.Class(OpenLayers.Strategy, {
-
+
/**
* APIProperty: preload
* {Boolean} Load data before layer made visible. Enabling this may result
@@ -8505,11 +8505,11 @@
}
return false;
},
-
+
/**
* Method: deactivate
* Deactivate the strategy. Undo what is done in <activate>.
- *
+ *
* Returns:
* {Boolean} The strategy was successfully deactivated.
*/
@@ -8586,38 +8586,38 @@
* Namespace: OpenLayers.Tween
*/
OpenLayers.Tween = OpenLayers.Class({
-
+
/**
* Constant: INTERVAL
* {int} Interval in milliseconds between 2 steps
*/
INTERVAL: 10,
-
+
/**
* APIProperty: easing
* {<OpenLayers.Easing>(Function)} Easing equation used for the animation
* Defaultly set to OpenLayers.Easing.Expo.easeOut
*/
easing: null,
-
+
/**
* APIProperty: begin
* {Object} Values to start the animation with
*/
begin: null,
-
+
/**
* APIProperty: finish
* {Object} Values to finish the animation with
*/
finish: null,
-
+
/**
* APIProperty: duration
* {int} duration of the tween (number of steps)
*/
duration: null,
-
+
/**
* APIProperty: callbacks
* {Object} An object with start, eachStep and done properties whose values
@@ -8625,40 +8625,40 @@
* current computed value as argument.
*/
callbacks: null,
-
+
/**
* Property: time
* {int} Step counter
*/
time: null,
-
+
/**
* Property: interval
* {int} Interval id returned by window.setInterval
*/
interval: null,
-
+
/**
* Property: playing
* {Boolean} Tells if the easing is currently playing
*/
playing: false,
-
- /**
+
+ /**
* Constructor: OpenLayers.Tween
* Creates a Tween.
*
* Parameters:
* easing - {<OpenLayers.Easing>(Function)} easing function method to use
- */
+ */
initialize: function(easing) {
this.easing = (easing) ? easing : OpenLayers.Easing.Expo.easeOut;
},
-
+
/**
* APIMethod: start
* Plays the Tween, and calls the callback method on each step
- *
+ *
* Parameters:
* begin - {Object} values to start the animation with
* finish - {Object} values to finish the animation with
@@ -8682,7 +8682,7 @@
this.interval = window.setInterval(
OpenLayers.Function.bind(this.play, this), this.INTERVAL);
},
-
+
/**
* APIMethod: stop
* Stops the Tween, and calls the done callback
@@ -8692,7 +8692,7 @@
if (!this.playing) {
return;
}
-
+
if (this.callbacks && this.callbacks.done) {
this.callbacks.done.call(this, this.finish);
}
@@ -8700,7 +8700,7 @@
this.interval = null;
this.playing = false;
},
-
+
/**
* Method: play
* Calls the appropriate easing method
@@ -8713,16 +8713,16 @@
if (b == null || f == null || isNaN(b) || isNaN(f)) {
OpenLayers.Console.error('invalid value for Tween');
}
-
+
var c = f - b;
value[i] = this.easing.apply(this, [this.time, b, c, this.duration]);
}
this.time++;
-
+
if (this.callbacks && this.callbacks.eachStep) {
this.callbacks.eachStep.call(this, value);
}
-
+
if (this.time > this.duration) {
if (this.callbacks && this.callbacks.done) {
this.callbacks.done.call(this, this.finish);
@@ -8732,7 +8732,7 @@
this.interval = null;
}
},
-
+
/**
* Create empty functions for all easing methods.
*/
@@ -8741,7 +8741,7 @@
/**
* Namespace: OpenLayers.Easing
- *
+ *
* Credits:
* Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>
*/
@@ -8756,10 +8756,10 @@
* Namespace: OpenLayers.Easing.Linear
*/
OpenLayers.Easing.Linear = {
-
+
/**
* Function: easeIn
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8769,10 +8769,10 @@
easeIn: function(t, b, c, d) {
return c*t/d + b;
},
-
+
/**
* Function: easeOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8782,10 +8782,10 @@
easeOut: function(t, b, c, d) {
return c*t/d + b;
},
-
+
/**
* Function: easeInOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8803,10 +8803,10 @@
* Namespace: OpenLayers.Easing.Expo
*/
OpenLayers.Easing.Expo = {
-
+
/**
* Function: easeIn
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8816,10 +8816,10 @@
easeIn: function(t, b, c, d) {
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
},
-
+
/**
* Function: easeOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8829,10 +8829,10 @@
easeOut: function(t, b, c, d) {
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
},
-
+
/**
* Function: easeInOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8853,10 +8853,10 @@
* Namespace: OpenLayers.Easing.Quad
*/
OpenLayers.Easing.Quad = {
-
+
/**
* Function: easeIn
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8866,10 +8866,10 @@
easeIn: function(t, b, c, d) {
return c*(t/=d)*t + b;
},
-
+
/**
* Function: easeOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8879,10 +8879,10 @@
easeOut: function(t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
},
-
+
/**
* Function: easeInOut
- *
+ *
* Parameters:
* t - {Float} time
* b - {Float} beginning position
@@ -8911,11 +8911,11 @@
/**
* Class: OpenLayers.Control.ArgParser
- * The ArgParser control adds location bar querystring parsing functionality
+ * The ArgParser control adds location bar querystring parsing functionality
* to an OpenLayers Map.
- * When added to a Map control, on a page load/refresh, the Map will
- * automatically take the href string and parse it for lon, lat, zoom, and
- * layers information.
+ * When added to a Map control, on a page load/refresh, the Map will
+ * automatically take the href string and parse it for lon, lat, zoom, and
+ * layers information.
*
* Inherits from:
* - <OpenLayers.Control>
@@ -8927,7 +8927,7 @@
* {<OpenLayers.LonLat>}
*/
center: null,
-
+
/**
* Parameter: zoom
* {int}
@@ -8935,14 +8935,14 @@
zoom: null,
/**
- * Parameter: layers
+ * Parameter: layers
* {Array(<OpenLayers.Layer>)}
*/
layers: null,
-
- /**
+
+ /**
* APIProperty: displayProjection
- * {<OpenLayers.Projection>} Requires proj4js support.
+ * {<OpenLayers.Projection>} Requires proj4js support.
* Projection used when reading the coordinates from the URL. This will
*
* reproject the map coordinates from the URL into the map's
@@ -8951,9 +8951,9 @@
* If you are using this functionality, be aware that any permalink
* which is added to the map will determine the coordinate type which
* is read from the URL, which means you should not add permalinks with
- * different displayProjections to the same map.
+ * different displayProjections to the same map.
*/
- displayProjection: null,
+ displayProjection: null,
/**
* Constructor: OpenLayers.Control.ArgParser
@@ -8967,10 +8967,10 @@
/**
* Method: setMap
- * Set the map property for the control.
- *
+ * Set the map property for the control.
+ *
* Parameters:
- * map - {<OpenLayers.Map>}
+ * map - {<OpenLayers.Map>}
*/
setMap: function(map) {
OpenLayers.Control.prototype.setMap.apply(this, arguments);
@@ -8980,14 +8980,14 @@
var control = this.map.controls[i];
if ( (control != this) &&
(control.CLASS_NAME == "OpenLayers.Control.ArgParser") ) {
-
- // If a second argparser is added to the map, then we
+
+ // If a second argparser is added to the map, then we
// override the displayProjection to be the one added to the
- // map.
+ // map.
if (control.displayProjection != this.displayProjection) {
this.displayProjection = control.displayProjection;
- }
-
+ }
+
break;
}
}
@@ -8997,9 +8997,9 @@
// Be careful to set layer first, to not trigger unnecessary layer loads
if (args.layers) {
this.layers = args.layers;
-
- // when we add a new layer, set its visibility
- this.map.events.register('addlayer', this,
+
+ // when we add a new layer, set its visibility
+ this.map.events.register('addlayer', this,
this.configureLayers);
this.configureLayers();
}
@@ -9009,51 +9009,51 @@
if (args.zoom) {
this.zoom = parseInt(args.zoom);
}
-
+
// when we add a new baselayer to see when we can set the center
- this.map.events.register('changebaselayer', this,
+ this.map.events.register('changebaselayer', this,
this.setCenter);
this.setCenter();
}
}
},
-
- /**
+
+ /**
* Method: setCenter
* As soon as a baseLayer has been loaded, we center and zoom
* ...and remove the handler.
*/
setCenter: function() {
-
+
if (this.map.baseLayer) {
//dont need to listen for this one anymore
- this.map.events.unregister('changebaselayer', this,
+ this.map.events.unregister('changebaselayer', this,
this.setCenter);
-
+
if (this.displayProjection) {
- this.center.transform(this.displayProjection,
- this.map.getProjectionObject());
- }
+ this.center.transform(this.displayProjection,
+ this.map.getProjectionObject());
+ }
this.map.setCenter(this.center, this.zoom);
}
},
- /**
+ /**
* Method: configureLayers
- * As soon as all the layers are loaded, cycle through them and
- * hide or show them.
+ * As soon as all the layers are loaded, cycle through them and
+ * hide or show them.
*/
configureLayers: function() {
- if (this.layers.length == this.map.layers.length) {
+ if (this.layers.length == this.map.layers.length) {
this.map.events.unregister('addlayer', this, this.configureLayers);
for(var i=0, len=this.layers.length; i<len; i++) {
-
+
var layer = this.map.layers[i];
var c = this.layers.charAt(i);
-
+
if (c == "B") {
this.map.setBaseLayer(layer);
} else if ( (c == "T") || (c == "F") ) {
@@ -9061,7 +9061,7 @@
}
}
}
- },
+ },
CLASS_NAME: "OpenLayers.Control.ArgParser"
});
@@ -9089,38 +9089,38 @@
*/
OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
- /**
+ /**
* APIProperty: slideFactor
- * {Integer} Number of pixels by which we'll pan the map in any direction
+ * {Integer} Number of pixels by which we'll pan the map in any direction
* on clicking the arrow buttons. If you want to pan by some ratio
* of the map dimensions, use <slideRatio> instead.
*/
slideFactor: 50,
- /**
+ /**
* APIProperty: slideRatio
- * {Number} The fraction of map width/height by which we'll pan the map
+ * {Number} The fraction of map width/height by which we'll pan the map
* on clicking the arrow buttons. Default is null. If set, will
* override <slideFactor>. E.g. if slideRatio is .5, then the Pan Up
- * button will pan up half the map height.
+ * button will pan up half the map height.
*/
slideRatio: null,
- /**
+ /**
* Property: buttons
- * {Array(DOMElement)} Array of Button Divs
+ * {Array(DOMElement)} Array of Button Divs
*/
buttons: null,
- /**
+ /**
* Property: position
- * {<OpenLayers.Pixel>}
+ * {<OpenLayers.Pixel>}
*/
position: null,
/**
* Constructor: OpenLayers.Control.PanZoom
- *
+ *
* Parameters:
* options - {Object}
*/
@@ -9144,8 +9144,8 @@
* Method: draw
*
* Parameters:
- * px - {<OpenLayers.Pixel>}
- *
+ * px - {<OpenLayers.Pixel>}
+ *
* Returns:
* {DOMElement} A reference to the container div for the PanZoom control.
*/
@@ -9164,26 +9164,26 @@
px.y = centered.y+sz.h;
this._addButton("panleft", "west-mini.png", px, sz);
this._addButton("panright", "east-mini.png", px.add(sz.w, 0), sz);
- this._addButton("pandown", "south-mini.png",
+ this._addButton("pandown", "south-mini.png",
centered.add(0, sz.h*2), sz);
- this._addButton("zoomin", "zoom-plus-mini.png",
+ this._addButton("zoomin", "zoom-plus-mini.png",
centered.add(0, sz.h*3+5), sz);
- this._addButton("zoomworld", "zoom-world-mini.png",
+ this._addButton("zoomworld", "zoom-world-mini.png",
centered.add(0, sz.h*4+5), sz);
- this._addButton("zoomout", "zoom-minus-mini.png",
+ this._addButton("zoomout", "zoom-minus-mini.png",
centered.add(0, sz.h*5+5), sz);
return this.div;
},
-
+
/**
* Method: _addButton
- *
+ *
* Parameters:
- * id - {String}
- * img - {String}
- * xy - {<OpenLayers.Pixel>}
- * sz - {<OpenLayers.Size>}
- *
+ * id - {String}
+ * img - {String}
+ * xy - {<OpenLayers.Pixel>}
+ * sz - {<OpenLayers.Size>}
+ *
* Returns:
* {DOMElement} A Div (an alphaImageDiv, to be precise) that contains the
* image of the button, and has all the proper event handlers set.
@@ -9191,21 +9191,21 @@
_addButton:function(id, img, xy, sz) {
var imgLocation = OpenLayers.Util.getImagesLocation() + img;
var btn = OpenLayers.Util.createAlphaImageDiv(
- this.id + "_" + id,
+ this.id + "_" + id,
xy, sz, imgLocation, "absolute");
//we want to add the outer div
this.div.appendChild(btn);
- OpenLayers.Event.observe(btn, "mousedown",
+ OpenLayers.Event.observe(btn, "mousedown",
OpenLayers.Function.bindAsEventListener(this.buttonDown, btn));
- OpenLayers.Event.observe(btn, "dblclick",
+ OpenLayers.Event.observe(btn, "dblclick",
OpenLayers.Function.bindAsEventListener(this.doubleClick, btn));
- OpenLayers.Event.observe(btn, "click",
+ OpenLayers.Event.observe(btn, "click",
OpenLayers.Function.bindAsEventListener(this.doubleClick, btn));
btn.action = id;
btn.map = this.map;
-
+
if(!this.slideRatio){
var slideFactorPixels = this.slideFactor;
var getSlideFactor = function() {
@@ -9224,10 +9224,10 @@
this.buttons.push(btn);
return btn;
},
-
+
/**
* Method: _removeButton
- *
+ *
* Parameters:
* btn - {Object}
*/
@@ -9237,7 +9237,7 @@
this.div.removeChild(btn);
OpenLayers.Util.removeItem(this.buttons, btn);
},
-
+
/**
* Method: removeButtons
*/
@@ -9246,12 +9246,12 @@
this._removeButton(this.buttons[i]);
}
},
-
+
/**
* Method: doubleClick
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -9260,12 +9260,12 @@
OpenLayers.Event.stop(evt);
return false;
},
-
+
/**
* Method: buttonDown
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
buttonDown: function (evt) {
if (!OpenLayers.Event.isLeftClick(evt)) {
@@ -9273,26 +9273,26 @@
}
switch (this.action) {
- case "panup":
+ case "panup":
this.map.pan(0, -this.getSlideFactor("h"));
break;
- case "pandown":
+ case "pandown":
this.map.pan(0, this.getSlideFactor("h"));
break;
- case "panleft":
+ case "panleft":
this.map.pan(-this.getSlideFactor("w"), 0);
break;
- case "panright":
+ case "panright":
this.map.pan(this.getSlideFactor("w"), 0);
break;
- case "zoomin":
- this.map.zoomIn();
+ case "zoomin":
+ this.map.zoomIn();
break;
- case "zoomout":
- this.map.zoomOut();
+ case "zoomout":
+ this.map.zoomOut();
break;
- case "zoomworld":
- this.map.zoomToMaxExtent();
+ case "zoomworld":
+ this.map.zoomToMaxExtent();
break;
}
@@ -9318,7 +9318,7 @@
====================================================================== */
/* Copyright (c) 2006-2007 MetaCarta, Inc., published under a modified BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
* for the full text of the license. */
/**
@@ -9327,13 +9327,13 @@
/**
* Class: OpenLayers.Control.ScaleLine
- * The ScaleLine displays a small line indicator representing the current
+ * The ScaleLine displays a small line indicator representing the current
* map scale on the map. By default it is drawn in the lower left corner of
* the map.
- *
+ *
* Inherits from:
* - <OpenLayers.Control>
- *
+ *
* Is a very close copy of:
* - <OpenLayers.Control.Scale>
*/
@@ -9350,7 +9350,7 @@
* {String} Units for zoomed out on top bar. Default is km.
*/
topOutUnits: "km",
-
+
/**
* Property: topInUnits
* {String} Units for zoomed in on top bar. Default is m.
@@ -9368,7 +9368,7 @@
* {String} Units for zoomed in on bottom bar. Default is ft.
*/
bottomInUnits: "ft",
-
+
/**
* Property: eTop
* {DOMElement}
@@ -9384,18 +9384,18 @@
/**
* Constructor: OpenLayers.Control.ScaleLine
* Create a new scale line control.
- *
+ *
* Parameters:
* options - {Object} An optional object whose properties will be used
* to extend the control.
*/
initialize: function(options) {
- OpenLayers.Control.prototype.initialize.apply(this, [options]);
+ OpenLayers.Control.prototype.initialize.apply(this, [options]);
},
/**
* Method: draw
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -9404,7 +9404,7 @@
if (!this.eTop) {
this.div.style.display = "block";
this.div.style.position = "absolute";
-
+
// stick in the top bar
this.eTop = document.createElement("div");
this.eTop.className = this.displayClass + "Top";
@@ -9431,14 +9431,14 @@
return this.div;
},
- /**
+ /**
* Method: getBarLen
* Given a number, round it down to the nearest 1,2,5 times a power of 10.
* That seems a fairly useful set of number groups to use.
- *
+ *
* Parameters:
* maxLen - {float} the number we're rounding down from
- *
+ *
* Returns:
* {Float} the rounded number (less than or equal to maxLen)
*/
@@ -9446,7 +9446,7 @@
// nearest power of 10 lower than maxLen
var digits = parseInt(Math.log(maxLen) / Math.log(10));
var pow10 = Math.pow(10, digits);
-
+
// ok, find first character
var firstChar = parseInt(maxLen / pow10);
@@ -9478,9 +9478,9 @@
var inches = OpenLayers.INCHES_PER_UNIT;
// convert maxWidth to map units
- var maxSizeData = this.maxWidth * res * inches[curMapUnits];
+ var maxSizeData = this.maxWidth * res * inches[curMapUnits];
- // decide whether to use large or small scale units
+ // decide whether to use large or small scale units
var topUnits;
var bottomUnits;
if(maxSizeData > 100000) {
@@ -9506,22 +9506,22 @@
// and to pixel units
var topPx = topMax / res;
var bottomPx = bottomMax / res;
-
+
// now set the pixel widths
// and the values inside them
-
+
if (this.eBottom.style.visibility == "visible"){
- this.eBottom.style.width = Math.round(bottomPx) + "px";
+ this.eBottom.style.width = Math.round(bottomPx) + "px";
this.eBottom.innerHTML = bottomRounded + " " + bottomUnits ;
}
-
+
if (this.eTop.style.visibility == "visible"){
this.eTop.style.width = Math.round(topPx) + "px";
this.eTop.innerHTML = topRounded + " " + topUnits;
}
-
- },
+ },
+
CLASS_NAME: "OpenLayers.Control.ScaleLine"
});
@@ -9544,64 +9544,64 @@
*/
OpenLayers.Event = {
- /**
- * Property: observers
+ /**
+ * Property: observers
* {Object} A hashtable cache of the event observers. Keyed by
- * element._eventCacheID
+ * element._eventCacheID
*/
observers: false,
-
- /**
- * Constant: KEY_BACKSPACE
- * {int}
+
+ /**
+ * Constant: KEY_BACKSPACE
+ * {int}
*/
KEY_BACKSPACE: 8,
- /**
- * Constant: KEY_TAB
- * {int}
+ /**
+ * Constant: KEY_TAB
+ * {int}
*/
KEY_TAB: 9,
- /**
- * Constant: KEY_RETURN
- * {int}
+ /**
+ * Constant: KEY_RETURN
+ * {int}
*/
KEY_RETURN: 13,
- /**
- * Constant: KEY_ESC
- * {int}
+ /**
+ * Constant: KEY_ESC
+ * {int}
*/
KEY_ESC: 27,
- /**
- * Constant: KEY_LEFT
- * {int}
+ /**
+ * Constant: KEY_LEFT
+ * {int}
*/
KEY_LEFT: 37,
- /**
- * Constant: KEY_UP
- * {int}
+ /**
+ * Constant: KEY_UP
+ * {int}
*/
KEY_UP: 38,
- /**
- * Constant: KEY_RIGHT
- * {int}
+ /**
+ * Constant: KEY_RIGHT
+ * {int}
*/
KEY_RIGHT: 39,
- /**
- * Constant: KEY_DOWN
- * {int}
+ /**
+ * Constant: KEY_DOWN
+ * {int}
*/
KEY_DOWN: 40,
- /**
- * Constant: KEY_DELETE
- * {int}
+ /**
+ * Constant: KEY_DELETE
+ * {int}
*/
KEY_DELETE: 46,
@@ -9609,12 +9609,12 @@
/**
* Method: element
* Cross browser event element detection.
- *
+ *
* Parameters:
- * event - {Event}
- *
+ * event - {Event}
+ *
* Returns:
- * {DOMElement} The element that caused the event
+ * {DOMElement} The element that caused the event
*/
element: function(event) {
return event.target || event.srcElement;
@@ -9622,11 +9622,11 @@
/**
* Method: isLeftClick
- * Determine whether event was caused by a left click.
+ * Determine whether event was caused by a left click.
*
* Parameters:
- * event - {Event}
- *
+ * event - {Event}
+ *
* Returns:
* {Boolean}
*/
@@ -9637,11 +9637,11 @@
/**
* Method: isRightClick
- * Determine whether event was caused by a right mouse click.
+ * Determine whether event was caused by a right mouse click.
*
* Parameters:
- * event - {Event}
- *
+ * event - {Event}
+ *
* Returns:
* {Boolean}
*/
@@ -9649,29 +9649,29 @@
return (((event.which) && (event.which == 3)) ||
((event.button) && (event.button == 2)));
},
-
+
/**
* Method: stop
- * Stops an event from propagating.
+ * Stops an event from propagating.
*
- * Parameters:
- * event - {Event}
- * allowDefault - {Boolean} If true, we stop the event chain but
- * still allow the default browser
- * behaviour (text selection, radio-button
+ * Parameters:
+ * event - {Event}
+ * allowDefault - {Boolean} If true, we stop the event chain but
+ * still allow the default browser
+ * behaviour (text selection, radio-button
* clicking, etc)
* Default false
*/
stop: function(event, allowDefault) {
-
- if (!allowDefault) {
+
+ if (!allowDefault) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
-
+
if (event.stopPropagation) {
event.stopPropagation();
} else {
@@ -9679,13 +9679,13 @@
}
},
- /**
+ /**
* Method: findElement
- *
+ *
* Parameters:
- * event - {Event}
- * tagName - {String}
- *
+ * event - {Event}
+ * tagName - {String}
+ *
* Returns:
* {DOMElement} The first node with the given tagName, starting from the
* node the event was triggered on and traversing the DOM upwards
@@ -9699,14 +9699,14 @@
return element;
},
- /**
+ /**
* Method: observe
- *
+ *
* Parameters:
- * elementParam - {DOMElement || String}
- * name - {String}
- * observer - {function}
- * useCapture - {Boolean}
+ * elementParam - {DOMElement || String}
+ * name - {String}
+ * observer - {function}
+ * useCapture - {Boolean}
*/
observe: function(elementParam, name, observer, useCapture) {
var element = OpenLayers.Util.getElement(elementParam);
@@ -9755,14 +9755,14 @@
}
},
- /**
+ /**
* Method: stopObservingElement
- * Given the id of an element to stop observing, cycle through the
- * element's cached observers, calling stopObserving on each one,
+ * Given the id of an element to stop observing, cycle through the
+ * element's cached observers, calling stopObserving on each one,
* skipping those entries which can no longer be removed.
- *
+ *
* parameters:
- * elementParam - {DOMElement || String}
+ * elementParam - {DOMElement || String}
*/
stopObservingElement: function(elementParam) {
var element = OpenLayers.Util.getElement(elementParam);
@@ -9775,8 +9775,8 @@
* Method: _removeElementObservers
*
* Parameters:
- * elementObservers - {Array(Object)} Array of (element, name,
- * observer, usecapture) objects,
+ * elementObservers - {Array(Object)} Array of (element, name,
+ * observer, usecapture) objects,
* taken directly from hashtable
*/
_removeElementObservers: function(elementObservers) {
@@ -9794,24 +9794,24 @@
/**
* Method: stopObserving
- *
+ *
* Parameters:
- * elementParam - {DOMElement || String}
- * name - {String}
- * observer - {function}
- * useCapture - {Boolean}
- *
+ * elementParam - {DOMElement || String}
+ * name - {String}
+ * observer - {function}
+ * useCapture - {Boolean}
+ *
* Returns:
* {Boolean} Whether or not the event observer was removed
*/
stopObserving: function(elementParam, name, observer, useCapture) {
useCapture = useCapture || false;
-
+
var element = OpenLayers.Util.getElement(elementParam);
var cacheID = element._eventCacheID;
if (name == 'keypress') {
- if ( navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
+ if ( navigator.appVersion.match(/Konqueror|Safari|KHTML/) ||
element.detachEvent) {
name = 'keydown';
}
@@ -9821,27 +9821,27 @@
var foundEntry = false;
var elementObservers = OpenLayers.Event.observers[cacheID];
if (elementObservers) {
-
+
// find the specific event type in the element's list
var i=0;
while(!foundEntry && i < elementObservers.length) {
var cacheEntry = elementObservers[i];
-
+
if ((cacheEntry.name == name) &&
(cacheEntry.observer == observer) &&
(cacheEntry.useCapture == useCapture)) {
-
+
elementObservers.splice(i, 1);
if (elementObservers.length == 0) {
delete OpenLayers.Event.observers[cacheID];
}
foundEntry = true;
- break;
+ break;
}
- i++;
+ i++;
}
}
-
+
//actually remove the event listener from browser
if (foundEntry) {
if (element.removeEventListener) {
@@ -9852,11 +9852,11 @@
}
return foundEntry;
},
-
- /**
+
+ /**
* Method: unloadCache
* Cycle through all the element entries in the events cache and call
- * stopObservingElement on each.
+ * stopObservingElement on each.
*/
unloadCache: function() {
// check for OpenLayers.Event before checking for observers, because
@@ -9865,7 +9865,7 @@
if (OpenLayers.Event && OpenLayers.Event.observers) {
for (var cacheID in OpenLayers.Event.observers) {
var elementObservers = OpenLayers.Event.observers[cacheID];
- OpenLayers.Event._removeElementObservers.apply(this,
+ OpenLayers.Event._removeElementObservers.apply(this,
[elementObservers]);
}
OpenLayers.Event.observers = false;
@@ -9891,65 +9891,65 @@
*/
OpenLayers.Events = OpenLayers.Class({
- /**
+ /**
* Constant: BROWSER_EVENTS
- * {Array(String)} supported events
+ * {Array(String)} supported events
*/
BROWSER_EVENTS: [
"mouseover", "mouseout",
- "mousedown", "mouseup", "mousemove",
+ "mousedown", "mouseup", "mousemove",
"click", "dblclick", "rightclick", "dblrightclick",
"resize", "focus", "blur"
],
- /**
- * Property: listeners
- * {Object} Hashtable of Array(Function): events listener functions
+ /**
+ * Property: listeners
+ * {Object} Hashtable of Array(Function): events listener functions
*/
listeners: null,
- /**
- * Property: object
- * {Object} the code object issuing application events
+ /**
+ * Property: object
+ * {Object} the code object issuing application events
*/
object: null,
- /**
- * Property: element
- * {DOMElement} the DOM element receiving browser events
+ /**
+ * Property: element
+ * {DOMElement} the DOM element receiving browser events
*/
element: null,
- /**
- * Property: eventTypes
- * {Array(String)} list of support application events
+ /**
+ * Property: eventTypes
+ * {Array(String)} list of support application events
*/
eventTypes: null,
- /**
- * Property: eventHandler
- * {Function} bound event handler attached to elements
+ /**
+ * Property: eventHandler
+ * {Function} bound event handler attached to elements
*/
eventHandler: null,
- /**
- * APIProperty: fallThrough
- * {Boolean}
+ /**
+ * APIProperty: fallThrough
+ * {Boolean}
*/
fallThrough: null,
- /**
+ /**
* APIProperty: includeXY
* {Boolean} Should the .xy property automatically be created for browser
* mouse events? In general, this should be false. If it is true, then
- * mouse events will automatically generate a '.xy' property on the
+ * mouse events will automatically generate a '.xy' property on the
* event object that is passed. (Prior to OpenLayers 2.7, this was true
* by default.) Otherwise, you can call the getMousePosition on the
* relevant events handler on the object available via the 'evt.object'
* property of the evt object. So, for most events, you can call:
- * function named(evt) {
- * this.xy = this.object.events.getMousePosition(evt)
- * }
+ * function named(evt) {
+ * this.xy = this.object.events.getMousePosition(evt)
+ * }
*
* This option typically defaults to false for performance reasons:
* when creating an events object whose primary purpose is to manage
@@ -9959,12 +9959,12 @@
* This option is also used to control whether the events object caches
* offsets. If this is false, it will not: the reason for this is that
* it is only expected to be called many times if the includeXY property
- * is set to true. If you set this to true, you are expected to clear
+ * is set to true. If you set this to true, you are expected to clear
* the offset cache manually (using this.clearMouseCache()) if:
* the border of the element changes
* the location of the element in the page changes
*/
- includeXY: false,
+ includeXY: false,
/**
* Method: clearMouseListener
@@ -9981,7 +9981,7 @@
* Parameters:
* object - {Object} The js object to which this Events object is being
* added element - {DOMElement} A dom element to respond to browser events
- * eventTypes - {Array(String)} Array of custom application events
+ * eventTypes - {Array(String)} Array of custom application events
* fallThrough - {Boolean} Allow events to fall through after these have
* been handled?
* options - {Object} Options for the events object.
@@ -9997,13 +9997,13 @@
this.eventHandler = OpenLayers.Function.bindAsEventListener(
this.handleBrowserEvent, this
);
-
+
// to be used with observe and stopObserving
this.clearMouseListener = OpenLayers.Function.bind(
this.clearMouseCache, this
);
- // if eventTypes is specified, create a listeners list for each
+ // if eventTypes is specified, create a listeners list for each
// custom application event.
this.eventTypes = [];
if (eventTypes != null) {
@@ -10011,8 +10011,8 @@
this.addEventType(eventTypes[i]);
}
}
-
- // if a dom element is specified, add a listeners list
+
+ // if a dom element is specified, add a listeners list
// for browser events on the element and register them
if (element != null) {
this.attachToElement(element);
@@ -10044,7 +10044,7 @@
* APIMethod: addEventType
* Add a new event type to this events object.
* If the event type has already been added, do nothing.
- *
+ *
* Parameters:
* eventName - {String}
*/
@@ -10069,17 +10069,17 @@
for (var i=0, len=this.BROWSER_EVENTS.length; i<len; i++) {
var eventType = this.BROWSER_EVENTS[i];
- // every browser event has a corresponding application event
+ // every browser event has a corresponding application event
// (whether it's listened for or not).
this.addEventType(eventType);
-
+
// use Prototype to register the event cross-browser
OpenLayers.Event.observe(element, eventType, this.eventHandler);
}
// disable dragstart in IE so that mousedown/move/up works normally
OpenLayers.Event.observe(element, "dragstart", OpenLayers.Event.stop);
},
-
+
/**
* Method: on
* Convenience method for registering listeners with a common scope.
@@ -10106,31 +10106,31 @@
* Register an event on the events object.
*
* When the event is triggered, the 'func' function will be called, in the
- * context of 'obj'. Imagine we were to register an event, specifying an
- * OpenLayers.Bounds Object as 'obj'. When the event is triggered, the
+ * context of 'obj'. Imagine we were to register an event, specifying an
+ * OpenLayers.Bounds Object as 'obj'. When the event is triggered, the
* context in the callback function will be our Bounds object. This means
- * that within our callback function, we can access the properties and
- * methods of the Bounds object through the "this" variable. So our
- * callback could execute something like:
+ * that within our callback function, we can access the properties and
+ * methods of the Bounds object through the "this" variable. So our
+ * callback could execute something like:
* : leftStr = "Left: " + this.left;
- *
+ *
* or
- *
+ *
* : centerStr = "Center: " + this.getCenterLonLat();
*
* Parameters:
* type - {String} Name of the event to register
* obj - {Object} The object to bind the context to for the callback#.
- * If no object is specified, default is the Events's
+ * If no object is specified, default is the Events's
* 'object' property.
- * func - {Function} The callback function. If no callback is
+ * func - {Function} The callback function. If no callback is
* specified, this function does nothing.
- *
- *
+ *
+ *
*/
register: function (type, obj, func) {
- if ( (func != null) &&
+ if ( (func != null) &&
(OpenLayers.Util.indexOf(this.eventTypes, type) != -1) ) {
if (obj == null) {
@@ -10145,17 +10145,17 @@
* APIMethod: registerPriority
* Same as register() but adds the new listener to the *front* of the
* events queue instead of to the end.
- *
- * TODO: get rid of this in 3.0 - Decide whether listeners should be
+ *
+ * TODO: get rid of this in 3.0 - Decide whether listeners should be
* called in the order they were registered or in reverse order.
*
*
* Parameters:
* type - {String} Name of the event to register
* obj - {Object} The object to bind the context to for the callback#.
- * If no object is specified, default is the Events's
+ * If no object is specified, default is the Events's
* 'object' property.
- * func - {Function} The callback function. If no callback is
+ * func - {Function} The callback function. If no callback is
* specified, this function does nothing.
*/
registerPriority: function (type, obj, func) {
@@ -10170,7 +10170,7 @@
}
}
},
-
+
/**
* Method: un
* Convenience method for unregistering listeners with a common scope.
@@ -10196,9 +10196,9 @@
* APIMethod: unregister
*
* Parameters:
- * type - {String}
+ * type - {String}
* obj - {Object} If none specified, defaults to this.object
- * func - {Function}
+ * func - {Function}
*/
unregister: function (type, obj, func) {
if (obj == null) {
@@ -10215,13 +10215,13 @@
}
},
- /**
+ /**
* Method: remove
* Remove all listeners for a given event type. If type is not registered,
* does nothing.
*
* Parameters:
- * type - {String}
+ * type - {String}
*/
remove: function(type) {
if (this.listeners[type] != null) {
@@ -10231,10 +10231,10 @@
/**
* APIMethod: triggerEvent
- * Trigger a specified registered event.
- *
+ * Trigger a specified registered event.
+ *
* Parameters:
- * type - {String}
+ * type - {String}
* evt - {Event}
*
* Returns:
@@ -10258,7 +10258,7 @@
if(!evt.type) {
evt.type = type;
}
-
+
// execute all callbacks registered for specified type
// get a clone of the listeners array to
// allow for splicing during callbacks
@@ -10274,7 +10274,7 @@
}
}
// don't fall through to other DOM elements
- if (!this.fallThrough) {
+ if (!this.fallThrough) {
OpenLayers.Event.stop(evt, true);
}
return continueChain;
@@ -10282,38 +10282,38 @@
/**
* Method: handleBrowserEvent
- * Basically just a wrapper to the triggerEvent() function, but takes
- * care to set a property 'xy' on the event with the current mouse
+ * Basically just a wrapper to the triggerEvent() function, but takes
+ * care to set a property 'xy' on the event with the current mouse
* position.
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
handleBrowserEvent: function (evt) {
if (this.includeXY) {
evt.xy = this.getMousePosition(evt);
- }
+ }
this.triggerEvent(evt.type, evt);
},
/**
* APIMethod: clearMouseCache
- * Clear cached data about the mouse position. This should be called any
- * time the element that events are registered on changes position
+ * Clear cached data about the mouse position. This should be called any
+ * time the element that events are registered on changes position
* within the page.
*/
- clearMouseCache: function() {
+ clearMouseCache: function() {
this.element.scrolls = null;
this.element.lefttop = null;
this.element.offsets = null;
- },
+ },
/**
* Method: getMousePosition
- *
+ *
* Parameters:
- * evt - {Event}
- *
+ * evt - {Event}
+ *
* Returns:
* {<OpenLayers.Pixel>} The current xy coordinate of the mouse, adjusted
* for offsets
@@ -10325,7 +10325,7 @@
OpenLayers.Event.observe(window, "scroll", this.clearMouseListener);
this.element.hasScrollEvent = true;
}
-
+
if (!this.element.scrolls) {
this.element.scrolls = [
(document.documentElement.scrollLeft
@@ -10341,7 +10341,7 @@
(document.documentElement.clientTop || 0)
];
}
-
+
if (!this.element.offsets) {
this.element.offsets = OpenLayers.Util.pagePosition(this.element);
this.element.offsets[0] += this.element.scrolls[0];
@@ -10349,10 +10349,10 @@
}
return new OpenLayers.Pixel(
(evt.clientX + this.element.scrolls[0]) - this.element.offsets[0]
- - this.element.lefttop[0],
+ - this.element.lefttop[0],
(evt.clientY + this.element.scrolls[1]) - this.element.offsets[1]
- this.element.lefttop[1]
- );
+ );
},
CLASS_NAME: "OpenLayers.Events"
@@ -10376,13 +10376,13 @@
* of OpenLayers.Format are expected to have read and write methods.
*/
OpenLayers.Format = OpenLayers.Class({
-
+
/**
* Property: options
* {Object} A reference to options passed to the constructor.
*/
options: null,
-
+
/**
* APIProperty: externalProjection
* {<OpenLayers.Projection>} When passed a externalProjection and
@@ -10390,7 +10390,7 @@
* reads or writes. The externalProjection is the projection used by
* the content which is passed into read or which comes out of write.
* In order to reproject, a projection transformation function for the
- * specified projections must be available. This support may be
+ * specified projections must be available. This support may be
* provided via proj4js or via a custom transformation function. See
* {<OpenLayers.Projection.addTransform>} for more information on
* custom transformations.
@@ -10444,7 +10444,7 @@
OpenLayers.Util.extend(this, options);
this.options = options;
},
-
+
/**
* APIMethod: destroy
* Clean up.
@@ -10455,8 +10455,8 @@
/**
* Method: read
* Read data from a string, and return an object whose type depends on the
- * subclass.
- *
+ * subclass.
+ *
* Parameters:
* data - {string} Data to read/parse.
*
@@ -10466,10 +10466,10 @@
read: function(data) {
OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));
},
-
+
/**
* Method: write
- * Accept an object, and return a string.
+ * Accept an object, and return a string.
*
* Parameters:
* object - {Object} Object to be serialized
@@ -10482,7 +10482,7 @@
},
CLASS_NAME: "OpenLayers.Format"
-});
+});
/* ======================================================================
OpenLayers/Lang/en.js
====================================================================== */
@@ -10579,7 +10579,7 @@
'reprojectDeprecated':
"You are using the 'reproject' option " +
"on the ${layerName} layer. This option is deprecated: " +
- "its use was designed to support displaying data over commercial " +
+ "its use was designed to support displaying data over commercial " +
"basemaps, but that functionality should now be achieved by using " +
"Spherical Mercator support. More information is available from " +
"http://trac.openlayers.org/wiki/SphericalMercator.",
@@ -10604,7 +10604,7 @@
// console message
'pagePositionFailed':
"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",
-
+
'end': '',
// console message
@@ -10625,36 +10625,36 @@
/**
* Class: OpenLayers.Popup.AnchoredBubble
- *
- * Inherits from:
+ *
+ * Inherits from:
* - <OpenLayers.Popup.Anchored>
*/
-OpenLayers.Popup.AnchoredBubble =
+OpenLayers.Popup.AnchoredBubble =
OpenLayers.Class(OpenLayers.Popup.Anchored, {
/**
* Property: rounded
* {Boolean} Has the popup been rounded yet?
*/
- rounded: false,
-
- /**
+ rounded: false,
+
+ /**
* Constructor: OpenLayers.Popup.AnchoredBubble
- *
+ *
* Parameters:
* id - {String}
* lonlat - {<OpenLayers.LonLat>}
* contentSize - {<OpenLayers.Size>}
* contentHTML - {String}
- * anchor - {Object} Object to which we'll anchor the popup. Must expose
- * a 'size' (<OpenLayers.Size>) and 'offset' (<OpenLayers.Pixel>)
+ * anchor - {Object} Object to which we'll anchor the popup. Must expose
+ * a 'size' (<OpenLayers.Size>) and 'offset' (<OpenLayers.Pixel>)
* (Note that this is generally an <OpenLayers.Icon>).
* closeBox - {Boolean}
* closeBoxCallback - {Function} Function to be called on closeBox click.
*/
initialize:function(id, lonlat, contentSize, contentHTML, anchor, closeBox,
closeBoxCallback) {
-
+
this.padding = new OpenLayers.Bounds(
0, OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,
0, OpenLayers.Popup.AnchoredBubble.CORNER_SIZE
@@ -10662,23 +10662,23 @@
OpenLayers.Popup.Anchored.prototype.initialize.apply(this, arguments);
},
- /**
+ /**
* Method: draw
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {DOMElement} Reference to a div that contains the drawn popup.
*/
draw: function(px) {
-
+
OpenLayers.Popup.Anchored.prototype.draw.apply(this, arguments);
this.setContentHTML();
-
- //set the popup color and opacity
- this.setBackgroundColor();
+
+ //set the popup color and opacity
+ this.setBackgroundColor();
this.setOpacity();
return this.div;
@@ -10695,71 +10695,71 @@
/**
* APIMethod: setSize
- *
+ *
* Parameters:
- * contentSize - {<OpenLayers.Size>} the new size for the popup's
+ * contentSize - {<OpenLayers.Size>} the new size for the popup's
* contents div (in pixels).
*/
- setSize:function(contentSize) {
+ setSize:function(contentSize) {
OpenLayers.Popup.Anchored.prototype.setSize.apply(this, arguments);
this.setRicoCorners();
- },
+ },
/**
* APIMethod: setBackgroundColor
- *
+ *
* Parameters:
* color - {String}
*/
- setBackgroundColor:function(color) {
+ setBackgroundColor:function(color) {
if (color != undefined) {
- this.backgroundColor = color;
+ this.backgroundColor = color;
}
-
+
if (this.div != null) {
if (this.contentDiv != null) {
this.div.style.background = "transparent";
- OpenLayers.Rico.Corner.changeColor(this.groupDiv,
+ OpenLayers.Rico.Corner.changeColor(this.groupDiv,
this.backgroundColor);
}
}
- },
-
+ },
+
/**
* APIMethod: setOpacity
- *
- * Parameters:
+ *
+ * Parameters:
* opacity - {float}
*/
- setOpacity:function(opacity) {
+ setOpacity:function(opacity) {
OpenLayers.Popup.Anchored.prototype.setOpacity.call(this, opacity);
-
+
if (this.div != null) {
if (this.groupDiv != null) {
- OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,
+ OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,
this.opacity);
}
}
- },
-
- /**
+ },
+
+ /**
* Method: setBorder
* Always sets border to 0. Bubble Popups can not have a border.
- *
+ *
* Parameters:
* border - {Integer}
*/
- setBorder:function(border) {
+ setBorder:function(border) {
this.border = 0;
- },
-
- /**
+ },
+
+ /**
* Method: setRicoCorners
* Update RICO corners according to the popup's current relative postion.
*/
setRicoCorners:function() {
-
+
var corners = this.getCornersToRound(this.relativePosition);
var options = {corners: corners,
color: this.backgroundColor,
@@ -10772,14 +10772,14 @@
} else {
OpenLayers.Rico.Corner.reRound(this.groupDiv, options);
//set the popup color and opacity
- this.setBackgroundColor();
+ this.setBackgroundColor();
this.setOpacity();
}
},
- /**
+ /**
* Method: getCornersToRound
- *
+ *
* Returns:
* {String} The proper corners string ("tr tl bl br") for rico to round.
*/
@@ -10787,7 +10787,7 @@
var corners = ['tl', 'tr', 'bl', 'br'];
- //we want to round all the corners _except_ the opposite one.
+ //we want to round all the corners _except_ the opposite one.
var corner = OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);
OpenLayers.Util.removeItem(corners, corner);
@@ -10808,7 +10808,7 @@
====================================================================== */
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under a modified BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
* for the full text of the license. */
/**
@@ -10818,7 +10818,7 @@
/**
* Class: OpenLayers.Projection
* Class for coordinate transforms between coordinate systems.
- * Depends on the proj4js library. If proj4js is not available,
+ * Depends on the proj4js library. If proj4js is not available,
* then this is just an empty stub.
*/
OpenLayers.Projection = OpenLayers.Class({
@@ -10828,7 +10828,7 @@
* {Object} Proj4js.Proj instance.
*/
proj: null,
-
+
/**
* Property: projCode
* {String}
@@ -10837,8 +10837,8 @@
/**
* Constructor: OpenLayers.Projection
- * This class offers several methods for interacting with a wrapped
- * pro4js projection object.
+ * This class offers several methods for interacting with a wrapped
+ * pro4js projection object.
*
* Parameters:
* projCode - {String} A string identifying the Well Known Identifier for
@@ -10856,7 +10856,7 @@
this.proj = new Proj4js.Proj(projCode);
}
},
-
+
/**
* APIMethod: getCode
* Get the string SRS code.
@@ -10867,10 +10867,10 @@
getCode: function() {
return this.proj ? this.proj.srsCode : this.projCode;
},
-
+
/**
* APIMethod: getUnits
- * Get the units string for the projection -- returns null if
+ * Get the units string for the projection -- returns null if
* proj4js is not available.
*
* Returns:
@@ -10904,7 +10904,7 @@
return this.getCode() == projection.getCode();
} else {
return false;
- }
+ }
},
/* Method: destroy
@@ -10914,21 +10914,21 @@
delete this.proj;
delete this.projCode;
},
-
- CLASS_NAME: "OpenLayers.Projection"
-});
+ CLASS_NAME: "OpenLayers.Projection"
+});
+
/**
* Property: transforms
* Transforms is an object, with from properties, each of which may
- * have a to property. This allows you to define projections without
+ * have a to property. This allows you to define projections without
* requiring support for proj4js to be included.
*
* This object has keys which correspond to a 'source' projection object. The
* keys should be strings, corresponding to the projection.getCode() value.
* Each source projection object should have a set of destination projection
- * keys included in the object.
- *
+ * keys included in the object.
+ *
* Each value in the destination object should be a transformation function,
* where the function is expected to be passed an object with a .x and a .y
* property. The function should return the object, with the .x and .y
@@ -10964,7 +10964,7 @@
* APIMethod: transform
* Transform a point coordinate from one projection to another. Note that
* the input point is transformed in place.
- *
+ *
* Parameters:
* point - {{OpenLayers.Geometry.Point> | Object} An object with x and y
* properties representing coordinates in those dimensions.
@@ -10977,10 +10977,10 @@
OpenLayers.Projection.transform = function(point, source, dest) {
if (source.proj && dest.proj) {
point = Proj4js.transform(source.proj, dest.proj, point);
- } else if (source && dest &&
- OpenLayers.Projection.transforms[source.getCode()] &&
+ } else if (source && dest &&
+ OpenLayers.Projection.transforms[source.getCode()] &&
OpenLayers.Projection.transforms[source.getCode()][dest.getCode()]) {
- OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);
+ OpenLayers.Projection.transforms[source.getCode()][dest.getCode()](point);
}
return point;
};
@@ -10998,18 +10998,18 @@
/**
* Class: OpenLayers.Renderer.SVG
- *
+ *
* Inherits:
* - <OpenLayers.Renderer.Elements>
*/
OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
- /**
+ /**
* Property: xmlns
* {String}
*/
xmlns: "http://www.w3.org/2000/svg",
-
+
/**
* Property: xlinkns
* {String}
@@ -11018,8 +11018,8 @@
/**
* Constant: MAX_PIXEL
- * {Integer} Firefox has a limitation where values larger or smaller than
- * about 15000 in an SVG document lock the browser up. This
+ * {Integer} Firefox has a limitation where values larger or smaller than
+ * about 15000 in an SVG document lock the browser up. This
* works around it.
*/
MAX_PIXEL: 15000,
@@ -11029,13 +11029,13 @@
* {Object} Hash with "x" and "y" properties
*/
translationParameters: null,
-
+
/**
* Property: symbolSize
* {Object} Cache for symbol sizes according to their svg coordinate space
*/
symbolSize: {},
-
+
/**
* Property: isGecko
* {Boolean}
@@ -11044,15 +11044,15 @@
/**
* Constructor: OpenLayers.Renderer.SVG
- *
+ *
* Parameters:
* containerID - {String}
*/
initialize: function(containerID) {
- if (!this.supported()) {
- return;
+ if (!this.supported()) {
+ return;
}
- OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
+ OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
arguments);
this.translationParameters = {x: 0, y: 0};
this.isGecko = (navigator.userAgent.toLowerCase().indexOf("gecko/") != -1);
@@ -11064,20 +11064,20 @@
destroy: function() {
OpenLayers.Renderer.Elements.prototype.destroy.apply(this, arguments);
},
-
+
/**
* APIMethod: supported
- *
+ *
* Returns:
* {Boolean} Whether or not the browser supports the SVG renderer
*/
supported: function() {
var svgFeature = "http://www.w3.org/TR/SVG11/feature#";
- return (document.implementation &&
- (document.implementation.hasFeature("org.w3c.svg", "1.0") ||
- document.implementation.hasFeature(svgFeature + "SVG", "1.1") ||
+ return (document.implementation &&
+ (document.implementation.hasFeature("org.w3c.svg", "1.0") ||
+ document.implementation.hasFeature(svgFeature + "SVG", "1.1") ||
document.implementation.hasFeature(svgFeature + "BasicStructure", "1.1") ));
- },
+ },
/**
* Method: inValidRange
@@ -11088,11 +11088,11 @@
* y - {Integer}
* xyOnly - {Boolean} whether or not to just check for x and y, which means
* to not take the current translation parameters into account if true.
- *
+ *
* Returns:
- * {Boolean} Whether or not the 'x' and 'y' coordinates are in the
+ * {Boolean} Whether or not the 'x' and 'y' coordinates are in the
* valid range.
- */
+ */
inValidRange: function(x, y, xyOnly) {
var left = x + (xyOnly ? 0 : this.translationParameters.x);
var top = y + (xyOnly ? 0 : this.translationParameters.y);
@@ -11102,20 +11102,20 @@
/**
* Method: setExtent
- *
+ *
* Parameters:
* extent - {<OpenLayers.Bounds>}
* resolutionChanged - {Boolean}
- *
+ *
* Returns:
* {Boolean} true to notify the layer that the new extent does not exceed
* the coordinate range, and the features will not need to be redrawn.
* False otherwise.
*/
setExtent: function(extent, resolutionChanged) {
- OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
+ OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
arguments);
-
+
var resolution = this.getResolution();
var left = -extent.left / resolution;
var top = extent.top / resolution;
@@ -11140,15 +11140,15 @@
return inRange;
}
},
-
+
/**
* Method: translate
* Transforms the SVG coordinate system
- *
+ *
* Parameters:
* x - {Float}
* y - {Float}
- *
+ *
* Returns:
* {Boolean} true if the translation parameters are in the valid coordinates
* range, false otherwise.
@@ -11170,24 +11170,24 @@
/**
* Method: setSize
* Sets the size of the drawing surface.
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>} The size of the drawing surface
*/
setSize: function(size) {
OpenLayers.Renderer.prototype.setSize.apply(this, arguments);
-
+
this.rendererRoot.setAttributeNS(null, "width", this.size.w);
this.rendererRoot.setAttributeNS(null, "height", this.size.h);
},
- /**
- * Method: getNodeType
- *
+ /**
+ * Method: getNodeType
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>}
* style - {Object}
- *
+ *
* Returns:
* {String} The corresponding node type for the specified geometry
*/
@@ -11223,17 +11223,17 @@
return nodeType;
},
- /**
+ /**
* Method: setStyle
* Use to set all the style attributes to a SVG node.
- *
+ *
* Takes care to adjust stroke width and point radius to be
* resolution-relative
*
* Parameters:
* node - {SVGDomElement} An SVG element to decorate
* style - {Object}
- * options - {Object} Currently supported options include
+ * options - {Object} Currently supported options include
* 'isFilled' {Boolean} and
* 'isStroked' {Boolean}
*/
@@ -11249,8 +11249,8 @@
node.style.visibility = "hidden";
} else if (style.externalGraphic) {
pos = this.getPosition(node);
-
- if (style.graphicTitle) {
+
+ if (style.graphicTitle) {
node.setAttributeNS(null, "title", style.graphicTitle);
}
if (style.graphicWidth && style.graphicHeight) {
@@ -11266,7 +11266,7 @@
style.graphicYOffset : -(0.5 * height);
var opacity = style.graphicOpacity || style.fillOpacity;
-
+
node.setAttributeNS(null, "x", (pos.x + xOffset).toFixed());
node.setAttributeNS(null, "y", (pos.y + yOffset).toFixed());
node.setAttributeNS(null, "width", width);
@@ -11281,7 +11281,7 @@
var href = "#" + id;
pos = this.getPosition(node);
widthFactor = this.symbolSize[id] / size;
-
+
// remove the node from the dom before we modify it. This
// prevents various rendering issues in Safari and FF
var parent = node.parentNode;
@@ -11289,13 +11289,13 @@
if(parent) {
parent.removeChild(node);
}
-
+
node.setAttributeNS(this.xlinkns, "href", href);
node.setAttributeNS(null, "width", size);
node.setAttributeNS(null, "height", size);
node.setAttributeNS(null, "x", pos.x - offset);
node.setAttributeNS(null, "y", pos.y - offset);
-
+
// now that the node has all its new properties, insert it
// back into the dom where it was
if(nextSibling) {
@@ -11313,7 +11313,7 @@
node.setAttributeNS(null, "transform", rotation);
}
}
-
+
if (options.isFilled) {
node.setAttributeNS(null, "fill", style.fillColor);
node.setAttributeNS(null, "fill-opacity", style.fillOpacity);
@@ -11334,25 +11334,25 @@
} else {
node.setAttributeNS(null, "stroke", "none");
}
-
+
if (style.pointerEvents) {
node.setAttributeNS(null, "pointer-events", style.pointerEvents);
}
-
+
if (style.cursor != null) {
node.setAttributeNS(null, "cursor", style.cursor);
}
-
+
return node;
},
- /**
+ /**
* Method: dashStyle
- *
+ *
* Parameters:
* style - {Object}
* widthFactor - {Number}
- *
+ *
* Returns:
* {String} A SVG compliant 'stroke-dasharray' value
*/
@@ -11376,14 +11376,14 @@
return style.strokeDashstyle.replace(/ /g, ",");
}
},
-
- /**
+
+ /**
* Method: createNode
- *
+ *
* Parameters:
* type - {String} Kind of node to draw
* id - {String} Id for node
- *
+ *
* Returns:
* {DOMElement} A new node of the given type and id
*/
@@ -11392,26 +11392,26 @@
if (id) {
node.setAttributeNS(null, "id", id);
}
- return node;
+ return node;
},
-
- /**
+
+ /**
* Method: nodeTypeCompare
- *
+ *
* Parameters:
* node - {SVGDomElement} An SVG element
* type - {String} Kind of node
- *
+ *
* Returns:
* {Boolean} Whether or not the specified node is of the specified type
*/
nodeTypeCompare: function(node, type) {
return (type == node.nodeName);
},
-
+
/**
* Method: createRenderRoot
- *
+ *
* Returns:
* {DOMElement} The specific render engine's root element
*/
@@ -11421,10 +11421,10 @@
/**
* Method: createRoot
- *
+ *
* Parameter:
* suffix - {String} suffix to append to the id
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -11453,14 +11453,14 @@
/**
* Method: drawPoint
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the point
- */
+ */
drawPoint: function(node, geometry) {
return this.drawCircle(node, geometry, 1);
},
@@ -11468,12 +11468,12 @@
/**
* Method: drawCircle
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* radius - {Float}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the circle
*/
@@ -11482,73 +11482,73 @@
var x = (geometry.x / resolution + this.left);
var y = (this.top - geometry.y / resolution);
- if (this.inValidRange(x, y)) {
+ if (this.inValidRange(x, y)) {
node.setAttributeNS(null, "cx", x);
node.setAttributeNS(null, "cy", y);
node.setAttributeNS(null, "r", radius);
return node;
} else {
return false;
- }
-
+ }
+
},
-
+
/**
* Method: drawLineString
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components of
* the linestring, or false if nothing could be drawn
- */
+ */
drawLineString: function(node, geometry) {
var componentsResult = this.getComponentsString(geometry.components);
if (componentsResult.path) {
node.setAttributeNS(null, "points", componentsResult.path);
- return (componentsResult.complete ? node : null);
+ return (componentsResult.complete ? node : null);
} else {
return false;
}
},
-
+
/**
* Method: drawLinearRing
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the linear ring, or false if nothing could be drawn
- */
+ */
drawLinearRing: function(node, geometry) {
var componentsResult = this.getComponentsString(geometry.components);
if (componentsResult.path) {
node.setAttributeNS(null, "points", componentsResult.path);
- return (componentsResult.complete ? node : null);
+ return (componentsResult.complete ? node : null);
} else {
return false;
}
},
-
+
/**
* Method: drawPolygon
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or null if the renderer could not draw all components
* of the polygon, or false if nothing could be drawn
- */
+ */
drawPolygon: function(node, geometry) {
var d = "";
var draw = true;
@@ -11573,26 +11573,26 @@
return complete ? node : null;
} else {
return false;
- }
+ }
},
-
+
/**
* Method: drawRectangle
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the rectangle
- */
+ */
drawRectangle: function(node, geometry) {
var resolution = this.getResolution();
var x = (geometry.x / resolution + this.left);
var y = (this.top - geometry.y / resolution);
- if (this.inValidRange(x, y)) {
+ if (this.inValidRange(x, y)) {
node.setAttributeNS(null, "x", x);
node.setAttributeNS(null, "y", y);
node.setAttributeNS(null, "width", geometry.width / resolution);
@@ -11602,18 +11602,18 @@
return false;
}
},
-
+
/**
* Method: drawSurface
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the renderer could not draw the surface
- */
+ */
drawSurface: function(node, geometry) {
// create the svg path string representation
@@ -11640,31 +11640,31 @@
return node;
} else {
return false;
- }
+ }
},
-
+
/**
* Method: drawText
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
* style -
* location - {<OpenLayers.Geometry.Point>}
*/
drawText: function(featureId, style, location) {
var resolution = this.getResolution();
-
+
var x = (location.x / resolution + this.left);
var y = (location.y / resolution - this.top);
-
+
var label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, "text");
var tspan = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_tspan", "tspan");
label.setAttributeNS(null, "x", x);
label.setAttributeNS(null, "y", -y);
label.setAttributeNS(null, "pointer-events", "none");
-
+
if (style.fontColor) {
label.setAttributeNS(null, "fill", style.fontColor);
}
@@ -11690,20 +11690,20 @@
}
tspan.textContent = style.label;
-
+
if(!label.parentNode) {
label.appendChild(tspan);
this.textRoot.appendChild(label);
- }
+ }
},
-
- /**
+
+ /**
* Method: getComponentString
- *
+ *
* Parameters:
* components - {Array(<OpenLayers.Geometry.Point>)} Array of points
* separator - {String} character between coordinate pairs. Defaults to ","
- *
+ *
* Returns:
* {Object} hash with properties "path" (the string created from the
* components and "complete" (false if the renderer was unable to
@@ -11747,13 +11747,13 @@
complete: complete
};
},
-
+
/**
* Method: clipLine
* Given two points (one inside the valid range, and one outside),
* clips the line betweeen the two points so that the new points are both
* inside the valid range.
- *
+ *
* Parameters:
* badComponent - {<OpenLayers.Geometry.Point>)} original geometry of the
* invalid point
@@ -11789,12 +11789,12 @@
return x2 + "," + y2;
},
- /**
+ /**
* Method: getShortString
- *
+ *
* Parameters:
* point - {<OpenLayers.Geometry.Point>}
- *
+ *
* Returns:
* {String} or false if point is outside the valid range
*/
@@ -11803,20 +11803,20 @@
var x = (point.x / resolution + this.left);
var y = (this.top - point.y / resolution);
- if (this.inValidRange(x, y)) {
+ if (this.inValidRange(x, y)) {
return x + "," + y;
} else {
return false;
}
},
-
+
/**
* Method: getPosition
* Finds the position of an svg node.
- *
+ *
* Parameters:
* node - {DOMElement}
- *
+ *
* Returns:
* {Object} hash with x and y properties, representing the coordinates
* within the svg coordinate system
@@ -11831,25 +11831,25 @@
/**
* Method: importSymbol
* add a new symbol definition from the rendererer's symbol hash
- *
+ *
* Parameters:
* graphicName - {String} name of the symbol to import
- *
+ *
* Returns:
* {String} - id of the imported symbol
- */
+ */
importSymbol: function (graphicName) {
if (!this.defs) {
// create svg defs tag
this.defs = this.createDefs();
}
var id = this.container.id + "-" + graphicName;
-
+
// check if symbol already exists in the defs
if (document.getElementById(id) != null) {
return id;
}
-
+
var symbol = OpenLayers.Renderer.symbol[graphicName];
if (!symbol) {
throw new Error(graphicName + ' is not a valid symbol name');
@@ -11873,9 +11873,9 @@
symbolExtent.top = Math.max(symbolExtent.top, y);
points += " " + x + "," + y;
}
-
+
node.setAttributeNS(null, "points", points);
-
+
var width = symbolExtent.getWidth();
var height = symbolExtent.getHeight();
// create a viewBox three times as large as the symbol itself,
@@ -11884,7 +11884,7 @@
symbolExtent.bottom - height, width * 3, height * 3];
symbolNode.setAttributeNS(null, "viewBox", viewBox.join(" "));
this.symbolSize[id] = Math.max(width, height) * 3;
-
+
this.defs.appendChild(symbolNode);
return symbolNode.id;
},
@@ -11914,7 +11914,7 @@
// bottom to the top of the baseline, so -35% moves the text to
// the center of the baseline.
"t": "-70%",
- "b": "0"
+ "b": "0"
};
/* ======================================================================
OpenLayers/Renderer/VML.js
@@ -11932,9 +11932,9 @@
* Class: OpenLayers.Renderer.VML
* Render vector features in browsers with VML capability. Construct a new
* VML renderer with the <OpenLayers.Renderer.VML> constructor.
- *
- * Note that for all calculations in this class, we use toFixed() to round a
- * float value to an integer. This is done because it seems that VML doesn't
+ *
+ * Note that for all calculations in this class, we use toFixed() to round a
+ * float value to an integer. This is done because it seems that VML doesn't
* support float values.
*
* Inherits from:
@@ -11947,7 +11947,7 @@
* {String} XML Namespace URN
*/
xmlns: "urn:schemas-microsoft-com:vml",
-
+
/**
* Property: symbolCache
* {DOMElement} node holding symbols. This hash is keyed by symbol name,
@@ -11960,7 +11960,7 @@
* {Object} Hash with "x" and "y" properties
*/
offset: null,
-
+
/**
* Constructor: OpenLayers.Renderer.VML
* Create a new VML renderer.
@@ -11969,21 +11969,21 @@
* containerID - {String} The id for the element that contains the renderer
*/
initialize: function(containerID) {
- if (!this.supported()) {
- return;
+ if (!this.supported()) {
+ return;
}
if (!document.namespaces.olv) {
document.namespaces.add("olv", this.xmlns);
var style = document.createStyleSheet();
- var shapes = ['shape','rect', 'oval', 'fill', 'stroke', 'imagedata', 'group','textbox'];
+ var shapes = ['shape','rect', 'oval', 'fill', 'stroke', 'imagedata', 'group','textbox'];
for (var i = 0, len = shapes.length; i < len; i++) {
style.addRule('olv\\:' + shapes[i], "behavior: url(#default#VML); " +
"position: absolute; display: inline-block;");
- }
+ }
}
-
- OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
+
+ OpenLayers.Renderer.Elements.prototype.initialize.apply(this,
arguments);
this.offset = {x: 0, y: 0};
},
@@ -12005,7 +12005,7 @@
*/
supported: function() {
return !!(document.namespaces);
- },
+ },
/**
* Method: setExtent
@@ -12014,16 +12014,16 @@
* Parameters:
* extent - {<OpenLayers.Bounds>}
* resolutionChanged - {Boolean}
- *
+ *
* Returns:
* {Boolean} true to notify the layer that the new extent does not exceed
* the coordinate range, and the features will not need to be redrawn.
*/
setExtent: function(extent, resolutionChanged) {
- OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
+ OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,
arguments);
var resolution = this.getResolution();
-
+
var left = extent.left/resolution;
var top = extent.top/resolution - this.size.h;
if (resolutionChanged) {
@@ -12035,7 +12035,7 @@
top = top - this.offset.y;
}
-
+
var org = left + " " + top;
this.root.coordorigin = org;
var roots = [this.root, this.vectorRoot, this.textRoot];
@@ -12045,12 +12045,12 @@
var size = this.size.w + " " + this.size.h;
root.coordsize = size;
-
+
}
- // flip the VML display Y axis upside down so it
+ // flip the VML display Y axis upside down so it
// matches the display Y axis of the map
this.root.style.flip = "y";
-
+
return true;
},
@@ -12064,7 +12064,7 @@
*/
setSize: function(size) {
OpenLayers.Renderer.prototype.setSize.apply(this, arguments);
-
+
// setting width and height on all roots to avoid flicker which we
// would get with 100% width and height on child roots
var roots = [
@@ -12129,7 +12129,7 @@
* Parameters:
* node - {DOMElement} An VML element to decorate
* style - {Object}
- * options - {Object} Currently supported options include
+ * options - {Object} Currently supported options include
* 'isFilled' {Boolean} and
* 'isStroked' {Boolean}
* geometry - {<OpenLayers.Geometry>}
@@ -12138,12 +12138,12 @@
style = style || node._style;
options = options || node._options;
var widthFactor = 1;
-
+
if (node._geometryClass == "OpenLayers.Geometry.Point") {
if (style.externalGraphic) {
- if (style.graphicTitle) {
+ if (style.graphicTitle) {
node.title=style.graphicTitle;
- }
+ }
var width = style.graphicWidth || style.graphicHeight;
var height = style.graphicHeight || style.graphicWidth;
width = width ? width : style.pointRadius*2;
@@ -12154,13 +12154,13 @@
style.graphicXOffset : -(0.5 * width);
var yOffset = (style.graphicYOffset != undefined) ?
style.graphicYOffset : -(0.5 * height);
-
+
node.style.left = ((geometry.x/resolution - this.offset.x)+xOffset).toFixed();
node.style.top = ((geometry.y/resolution - this.offset.y)-(yOffset+height)).toFixed();
node.style.width = width + "px";
node.style.height = height + "px";
node.style.flip = "y";
-
+
// modify style/options for fill and stroke styling below
style.fillColor = "none";
options.isStroked = false;
@@ -12169,7 +12169,7 @@
node.path = cache.path;
node.coordorigin = cache.left + "," + cache.bottom;
var size = cache.size;
- node.coordsize = size + "," + size;
+ node.coordsize = size + "," + size;
this.drawCircle(node, geometry, style.pointRadius);
node.style.flip = "y";
} else {
@@ -12177,11 +12177,11 @@
}
}
- // fill
- if (options.isFilled) {
- node.fillcolor = style.fillColor;
- } else {
- node.filled = "false";
+ // fill
+ if (options.isFilled) {
+ node.fillcolor = style.fillColor;
+ } else {
+ node.filled = "false";
}
var fills = node.getElementsByTagName("fill");
var fill = (fills.length == 0) ? null : fills[0];
@@ -12202,13 +12202,13 @@
if (style.graphicOpacity) {
fill.opacity = style.graphicOpacity;
}
-
+
fill.src = style.externalGraphic;
fill.type = "frame";
-
+
if (!(style.graphicWidth && style.graphicHeight)) {
fill.aspect = "atmost";
- }
+ }
}
if (fill.parentNode != node) {
node.appendChild(fill);
@@ -12229,12 +12229,12 @@
}
}
- // stroke
- if (options.isStroked) {
- node.strokecolor = style.strokeColor;
- node.strokeweight = style.strokeWidth + "px";
- } else {
- node.stroked = false;
+ // stroke
+ if (options.isStroked) {
+ node.strokecolor = style.strokeColor;
+ node.strokeweight = style.strokeWidth + "px";
+ } else {
+ node.stroked = false;
}
var strokes = node.getElementsByTagName("stroke");
var stroke = (strokes.length == 0) ? null : strokes[0];
@@ -12251,7 +12251,7 @@
stroke.endcap = !style.strokeLinecap || style.strokeLinecap == 'butt' ? 'flat' : style.strokeLinecap;
stroke.dashstyle = this.dashStyle(style);
}
-
+
if (style.cursor != "inherit" && style.cursor != null) {
node.style.cursor = style.cursor;
}
@@ -12271,7 +12271,7 @@
* insertion point of the rotated image, because DXImageTransform.Matrix
* does the rotation without the ability to specify a rotation center
* point.
- *
+ *
* Parameters:
* node - {DOMElement}
* xOffset - {Number} rotation center relative to image, x coordinate
@@ -12280,7 +12280,7 @@
graphicRotate: function(node, xOffset, yOffset) {
var style = style || node._style;
var options = node._options;
-
+
var aspectRatio, size;
if (!(style.graphicWidth && style.graphicHeight)) {
// load the image to determine its size
@@ -12289,7 +12289,7 @@
if(img.readyState == "complete" ||
img.readyState == "interactive") {
aspectRatio = img.width / img.height;
- size = Math.max(style.pointRadius * 2,
+ size = Math.max(style.pointRadius * 2,
style.graphicWidth || 0,
style.graphicHeight || 0);
xOffset = xOffset * aspectRatio;
@@ -12299,19 +12299,19 @@
}
}, this);
img.src = style.externalGraphic;
-
+
// will be called again by the onreadystate handler
return;
} else {
size = Math.max(style.graphicWidth, style.graphicHeight);
aspectRatio = style.graphicWidth / style.graphicHeight;
}
-
+
var width = Math.round(style.graphicWidth || size * aspectRatio);
var height = Math.round(style.graphicHeight || size);
node.style.width = width + "px";
node.style.height = height + "px";
-
+
// Three steps are required to remove artefacts for images with
// transparent backgrounds (resulting from using DXImageTransform
// filters on svg objects), while preserving awareness for browser
@@ -12330,7 +12330,7 @@
image.style.height = height + "px";
image.src = style.externalGraphic;
image.style.filter =
- "progid:DXImageTransform.Microsoft.AlphaImageLoader(" +
+ "progid:DXImageTransform.Microsoft.AlphaImageLoader(" +
"src='', sizingMethod='scale')";
var rotation = style.rotation * Math.PI / 180;
@@ -12346,8 +12346,8 @@
// set the opacity (needed for the imagedata)
var opacity = style.graphicOpacity || style.fillOpacity;
if (opacity && opacity != 1) {
- filter +=
- "progid:DXImageTransform.Microsoft.BasicImage(opacity=" +
+ filter +=
+ "progid:DXImageTransform.Microsoft.BasicImage(opacity=" +
opacity+")\n";
}
node.style.filter = filter;
@@ -12370,7 +12370,7 @@
* and strokecolor to "none" correctly before the fill node is appended to
* a visible vml node. This method takes care of that and sets fillcolor
* and strokecolor again if needed.
- *
+ *
* Parameters:
* node - {DOMElement}
*/
@@ -12390,9 +12390,9 @@
/**
* Method: setNodeDimension
- * Get the geometry's bounds, convert it to our vml coordinate system,
+ * Get the geometry's bounds, convert it to our vml coordinate system,
* then set the node's position, size, and local coordinate system.
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
@@ -12402,30 +12402,30 @@
var bbox = geometry.getBounds();
if(bbox) {
var resolution = this.getResolution();
-
- var scaledBox =
+
+ var scaledBox =
new OpenLayers.Bounds((bbox.left/resolution - this.offset.x).toFixed(),
(bbox.bottom/resolution - this.offset.y).toFixed(),
(bbox.right/resolution - this.offset.x).toFixed(),
(bbox.top/resolution - this.offset.y).toFixed());
-
+
// Set the internal coordinate system to draw the path
node.style.left = scaledBox.left + "px";
node.style.top = scaledBox.top + "px";
node.style.width = scaledBox.getWidth() + "px";
node.style.height = scaledBox.getHeight() + "px";
-
+
node.coordorigin = scaledBox.left + " " + scaledBox.top;
node.coordsize = scaledBox.getWidth()+ " " + scaledBox.getHeight();
}
},
-
- /**
+
+ /**
* Method: dashStyle
- *
+ *
* Parameters:
* style - {Object}
- *
+ *
* Returns:
* {String} A VML compliant 'stroke-dasharray' value
*/
@@ -12471,15 +12471,15 @@
if (id) {
node.id = id;
}
-
+
// IE hack to make elements unselectable, to prevent 'blue flash'
// while dragging vectors; #1410
node.unselectable = 'on';
node.onselectstart = function() { return(false); };
-
- return node;
+
+ return node;
},
-
+
/**
* Method: nodeTypeCompare
* Determine whether a node is of a given type
@@ -12524,7 +12524,7 @@
/**
* Method: createRoot
* Create the main root element
- *
+ *
* Parameters:
* suffix - {String} suffix to append to the id
*
@@ -12534,21 +12534,21 @@
createRoot: function(suffix) {
return this.nodeFactory(this.container.id + suffix, "olv:group");
},
-
+
/**************************************
* *
* GEOMETRY DRAWING FUNCTIONS *
* *
**************************************/
-
+
/**
* Method: drawPoint
* Render a point
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement} or false if the point could not be drawn
*/
@@ -12560,12 +12560,12 @@
* Method: drawCircle
* Render a circle.
* Size and Center a circle given geometry (x,y center) and radius
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* radius - {float}
- *
+ *
* Returns:
* {DOMElement} or false if the circle could not ne drawn
*/
@@ -12575,9 +12575,9 @@
node.style.left = ((geometry.x /resolution - this.offset.x).toFixed() - radius) + "px";
node.style.top = ((geometry.y /resolution - this.offset.y).toFixed() - radius) + "px";
-
+
var diameter = radius * 2;
-
+
node.style.width = diameter + "px";
node.style.height = diameter + "px";
return node;
@@ -12589,11 +12589,11 @@
/**
* Method: drawLineString
* Render a linestring.
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12604,11 +12604,11 @@
/**
* Method: drawLinearRing
* Render a linearring
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12619,12 +12619,12 @@
/**
* Method: DrawLine
* Render a line.
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
* closeLine - {Boolean} Close the line? (make it a ring?)
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12651,11 +12651,11 @@
/**
* Method: drawPolygon
* Render a polygon
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12663,7 +12663,7 @@
this.setNodeDimension(node, geometry);
var resolution = this.getResolution();
-
+
var path = [];
var linearRing, i, j, len, ilen, comp, x, y;
for (j = 0, len=geometry.components.length; j<len; j++) {
@@ -12689,30 +12689,30 @@
/**
* Method: drawRectangle
* Render a rectangle
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
drawRectangle: function(node, geometry) {
var resolution = this.getResolution();
-
+
node.style.left = (geometry.x/resolution - this.offset.x) + "px";
node.style.top = (geometry.y/resolution - this.offset.y) + "px";
node.style.width = geometry.width/resolution + "px";
node.style.height = geometry.height/resolution + "px";
-
+
return node;
},
-
+
/**
* Method: drawText
* This method is only called by the renderer itself.
- *
- * Parameters:
+ *
+ * Parameters:
* featureId - {String}
* style -
* location - {<OpenLayers.Geometry.Point>}
@@ -12720,7 +12720,7 @@
drawText: function(featureId, style, location) {
var label = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX, "olv:rect");
var textbox = this.nodeFactory(featureId + this.LABEL_ID_SUFFIX + "_textbox", "olv:textbox");
-
+
var resolution = this.getResolution();
label.style.left = (location.x/resolution - this.offset.x).toFixed() + "px";
label.style.top = (location.y/resolution - this.offset.y).toFixed() + "px";
@@ -12762,11 +12762,11 @@
/**
* Method: drawSurface
- *
+ *
* Parameters:
* node - {DOMElement}
* geometry - {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {DOMElement}
*/
@@ -12775,7 +12775,7 @@
this.setNodeDimension(node, geometry);
var resolution = this.getResolution();
-
+
var path = [];
var comp, x, y;
for (var i=0, len=geometry.components.length; i<len; i++) {
@@ -12794,17 +12794,17 @@
node.path = path.join("");
return node;
},
-
+
/**
* Method: moveRoot
* moves this renderer's root to a different renderer.
- *
+ *
* Parameters:
* renderer - {<OpenLayers.Renderer>} target renderer for the moved root
* root - {DOMElement} optional root node. To be used when this renderer
* holds roots from multiple layers to tell this method which one to
* detach
- *
+ *
* Returns:
* {Boolean} true if successful, false otherwise
*/
@@ -12817,26 +12817,26 @@
OpenLayers.Renderer.Elements.prototype.moveRoot.apply(this, arguments);
layer && layer.redraw();
},
-
+
/**
* Method: importSymbol
* add a new symbol definition from the rendererer's symbol hash
- *
+ *
* Parameters:
* graphicName - {String} name of the symbol to import
- *
+ *
* Returns:
* {Object} - hash of {DOMElement} "symbol" and {Number} "size"
- */
+ */
importSymbol: function (graphicName) {
var id = this.container.id + "-" + graphicName;
-
+
// check if symbol already exists in the cache
var cache = this.symbolCache[id];
if (cache) {
return cache;
}
-
+
var symbol = OpenLayers.Renderer.symbol[graphicName];
if (!symbol) {
throw new Error(graphicName + ' is not a valid symbol name');
@@ -12845,7 +12845,7 @@
var symbolExtent = new OpenLayers.Bounds(
Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
-
+
var pathitems = ["m"];
for (var i=0; i<symbol.length; i=i+2) {
x = symbol[i];
@@ -12872,7 +12872,7 @@
symbolExtent.left = symbolExtent.left - diff;
symbolExtent.right = symbolExtent.right + diff;
}
-
+
cache = {
path: path,
size: symbolExtent.getWidth(), // equals getHeight() now
@@ -12880,10 +12880,10 @@
bottom: symbolExtent.bottom
};
this.symbolCache[id] = cache;
-
+
return cache;
},
-
+
CLASS_NAME: "OpenLayers.Renderer.VML"
});
@@ -12914,70 +12914,70 @@
*/
/*
- * Class: OpenLayers.Tile
+ * Class: OpenLayers.Tile
* This is a class designed to designate a single tile, however
- * it is explicitly designed to do relatively little. Tiles store
+ * it is explicitly designed to do relatively little. Tiles store
* information about themselves -- such as the URL that they are related
- * to, and their size - but do not add themselves to the layer div
- * automatically, for example. Create a new tile with the
- * <OpenLayers.Tile> constructor, or a subclass.
- *
+ * to, and their size - but do not add themselves to the layer div
+ * automatically, for example. Create a new tile with the
+ * <OpenLayers.Tile> constructor, or a subclass.
+ *
* TBD 3.0 - remove reference to url in above paragraph
- *
+ *
*/
OpenLayers.Tile = OpenLayers.Class({
-
- /**
+
+ /**
* Constant: EVENT_TYPES
* {Array(String)} Supported application event types
*/
EVENT_TYPES: [ "loadstart", "loadend", "reload", "unload"],
-
+
/**
* APIProperty: events
- * {<OpenLayers.Events>} An events object that handles all
+ * {<OpenLayers.Events>} An events object that handles all
* events on the tile.
*/
events: null,
/**
- * Property: id
+ * Property: id
* {String} null
*/
id: null,
-
- /**
- * Property: layer
- * {<OpenLayers.Layer>} layer the tile is attached to
+
+ /**
+ * Property: layer
+ * {<OpenLayers.Layer>} layer the tile is attached to
*/
layer: null,
-
+
/**
* Property: url
* {String} url of the request.
*
- * TBD 3.0
- * Deprecated. The base tile class does not need an url. This should be
+ * TBD 3.0
+ * Deprecated. The base tile class does not need an url. This should be
* handled in subclasses. Does not belong here.
*/
url: null,
- /**
- * APIProperty: bounds
+ /**
+ * APIProperty: bounds
* {<OpenLayers.Bounds>} null
*/
bounds: null,
-
- /**
- * Property: size
+
+ /**
+ * Property: size
* {<OpenLayers.Size>} null
*/
size: null,
-
- /**
- * Property: position
+
+ /**
+ * Property: position
* {<OpenLayers.Pixel>} Top Left pixel of the tile
- */
+ */
position: null,
/**
@@ -12985,20 +12985,20 @@
* {Boolean} Is the tile loading?
*/
isLoading: false,
-
+
/** TBD 3.0 -- remove 'url' from the list of parameters to the constructor.
* there is no need for the base tile class to have a url.
- *
+ *
* Constructor: OpenLayers.Tile
* Constructor for a new <OpenLayers.Tile> instance.
- *
+ *
* Parameters:
* layer - {<OpenLayers.Layer>} layer that the tile will go in.
* position - {<OpenLayers.Pixel>}
* bounds - {<OpenLayers.Bounds>}
* url - {<String>}
* size - {<OpenLayers.Size>}
- */
+ */
initialize: function(layer, position, bounds, url, size) {
this.layer = layer;
this.position = position.clone();
@@ -13008,7 +13008,7 @@
//give the tile a unique id based on its BBOX.
this.id = OpenLayers.Util.createUniqueID("Tile_");
-
+
this.events = new OpenLayers.Events(this, null, this.EVENT_TYPES);
},
@@ -13020,13 +13020,13 @@
* still loading.
*/
unload: function() {
- if (this.isLoading) {
- this.isLoading = false;
- this.events.triggerEvent("unload");
+ if (this.isLoading) {
+ this.isLoading = false;
+ this.events.triggerEvent("unload");
}
},
-
- /**
+
+ /**
* APIMethod: destroy
* Nullify references to prevent circular references and memory leaks.
*/
@@ -13035,11 +13035,11 @@
this.bounds = null;
this.size = null;
this.position = null;
-
+
this.events.destroy();
this.events = null;
},
-
+
/**
* Method: clone
*
@@ -13051,27 +13051,27 @@
*/
clone: function (obj) {
if (obj == null) {
- obj = new OpenLayers.Tile(this.layer,
- this.position,
- this.bounds,
- this.url,
+ obj = new OpenLayers.Tile(this.layer,
+ this.position,
+ this.bounds,
+ this.url,
this.size);
- }
-
+ }
+
// catch any randomly tagged-on properties
OpenLayers.Util.applyDefaults(obj, this);
-
+
return obj;
},
/**
* Method: draw
- * Clear whatever is currently in the tile, then return whether or not
+ * Clear whatever is currently in the tile, then return whether or not
* it should actually be re-drawn.
- *
+ *
* Returns:
- * {Boolean} Whether or not the tile should actually be drawn. Note that
- * this is not really the best way of doing things, but such is
+ * {Boolean} Whether or not the tile should actually be drawn. Note that
+ * this is not really the best way of doing things, but such is
* the way the code has been developed. Subclasses call this and
* depend on the return to know if they should draw or not.
*/
@@ -13079,18 +13079,18 @@
var maxExtent = this.layer.maxExtent;
var withinMaxExtent = (maxExtent &&
this.bounds.intersectsBounds(maxExtent, false));
-
- // The only case where we *wouldn't* want to draw the tile is if the
+
+ // The only case where we *wouldn't* want to draw the tile is if the
// tile is outside its layer's maxExtent.
this.shouldDraw = (withinMaxExtent || this.layer.displayOutsideMaxExtent);
-
+
//clear tile's contents and mark as not drawn
this.clear();
-
+
return this.shouldDraw;
},
-
- /**
+
+ /**
* Method: moveTo
* Reposition the tile.
*
@@ -13112,75 +13112,75 @@
}
},
- /**
+ /**
* Method: clear
- * Clear the tile of any bounds/position-related data so that it can
+ * Clear the tile of any bounds/position-related data so that it can
* be reused in a new location. To be implemented by subclasses.
*/
clear: function() {
// to be implemented by subclasses
},
-
- /**
+
+ /**
* Method: getBoundsFromBaseLayer
- * Take the pixel locations of the corner of the tile, and pass them to
- * the base layer and ask for the location of those pixels, so that
+ * Take the pixel locations of the corner of the tile, and pass them to
+ * the base layer and ask for the location of those pixels, so that
* displaying tiles over Google works fine.
*
* Parameters:
* position - {<OpenLayers.Pixel>}
*
* Returns:
- * bounds - {<OpenLayers.Bounds>}
+ * bounds - {<OpenLayers.Bounds>}
*/
getBoundsFromBaseLayer: function(position) {
var msg = OpenLayers.i18n('reprojectDeprecated',
{'layerName':this.layer.name});
OpenLayers.Console.warn(msg);
- var topLeft = this.layer.map.getLonLatFromLayerPx(position);
+ var topLeft = this.layer.map.getLonLatFromLayerPx(position);
var bottomRightPx = position.clone();
bottomRightPx.x += this.size.w;
bottomRightPx.y += this.size.h;
- var bottomRight = this.layer.map.getLonLatFromLayerPx(bottomRightPx);
+ var bottomRight = this.layer.map.getLonLatFromLayerPx(bottomRightPx);
// Handle the case where the base layer wraps around the date line.
- // Google does this, and it breaks WMS servers to request bounds in
- // that fashion.
+ // Google does this, and it breaks WMS servers to request bounds in
+ // that fashion.
if (topLeft.lon > bottomRight.lon) {
if (topLeft.lon < 0) {
topLeft.lon = -180 - (topLeft.lon+180);
} else {
bottomRight.lon = 180+bottomRight.lon+180;
- }
+ }
}
- var bounds = new OpenLayers.Bounds(topLeft.lon,
- bottomRight.lat,
- bottomRight.lon,
- topLeft.lat);
+ var bounds = new OpenLayers.Bounds(topLeft.lon,
+ bottomRight.lat,
+ bottomRight.lon,
+ topLeft.lat);
return bounds;
- },
-
- /**
+ },
+
+ /**
* Method: showTile
* Show the tile only if it should be drawn.
*/
- showTile: function() {
+ showTile: function() {
if (this.shouldDraw) {
this.show();
}
},
-
- /**
+
+ /**
* Method: show
* Show the tile. To be implemented by subclasses.
*/
show: function() { },
-
- /**
+
+ /**
* Method: hide
* Hide the tile. To be implemented by subclasses.
*/
hide: function() { },
-
+
CLASS_NAME: "OpenLayers.Tile"
});
/* ======================================================================
@@ -13207,7 +13207,7 @@
* - <OpenLayers.Format>
*/
OpenLayers.Format.XML = OpenLayers.Class(OpenLayers.Format, {
-
+
/**
* Property: namespaces
* {Object} Mapping of namespace aliases to namespace URIs. Properties
@@ -13216,20 +13216,20 @@
* <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
@@ -13239,7 +13239,7 @@
* from the parent.
*/
readers: {},
-
+
/**
* Property: writers
* As a compliment to the <readers> property, this structure contains public
@@ -13280,7 +13280,7 @@
this.namespaceAlias[this.namespaces[alias]] = alias;
}
},
-
+
/**
* APIMethod: destroy
* Clean up.
@@ -13289,7 +13289,7 @@
this.xmldom = null;
OpenLayers.Format.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: setNamespace
* Set a namespace alias and URI for the format.
@@ -13309,7 +13309,7 @@
*
* Parameters:
* text - {String} A XML string
-
+
* Returns:
* {DOMElement} A DOM node
*/
@@ -13330,7 +13330,7 @@
xmldom = new ActiveXObject("Microsoft.XMLDOM");
} else {
xmldom = this.xmldom;
-
+
}
xmldom.loadXML(text);
return xmldom;
@@ -13361,7 +13361,7 @@
/**
* APIMethod: write
* Serialize a DOM node into a XML string.
- *
+ *
* Parameters:
* node - {DOMElement} A DOM node.
*
@@ -13400,7 +13400,7 @@
* 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.
*/
@@ -13423,11 +13423,11 @@
* 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:
+ *
+ * Returns:
* {DOMElement} A DOM text node.
*/
createTextNode: function(text) {
@@ -13446,12 +13446,12 @@
* 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.
*/
@@ -13480,12 +13480,12 @@
/**
* 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.
*/
@@ -13514,12 +13514,12 @@
/**
* 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.
*/
@@ -13535,7 +13535,7 @@
}
return attributeValue;
},
-
+
/**
* APIMethod: getChildValue
* Get the textual value of the node if it exists, or return an
@@ -13597,7 +13597,7 @@
}
return value;
},
-
+
/**
* APIMethod: isSimpleContent
* Test if the given node has only simple content (i.e. no child element
@@ -13607,7 +13607,7 @@
* node - {DOMElement} An element node.
*
* Returns:
- * {Boolean} The node has no child element nodes (nodes of type 1).
+ * {Boolean} The node has no child element nodes (nodes of type 1).
*/
isSimpleContent: function(node) {
var simple = true;
@@ -13619,7 +13619,7 @@
}
return simple;
},
-
+
/**
* APIMethod: contentType
* Determine the content type for a given node.
@@ -13634,7 +13634,7 @@
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) {
@@ -13651,7 +13651,7 @@
break;
}
}
-
+
if(complex && simple) {
type = OpenLayers.Format.XML.CONTENT_TYPE.MIXED;
} else if(complex) {
@@ -13666,12 +13666,12 @@
* 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.
*/
@@ -13684,7 +13684,7 @@
}
return found;
},
-
+
/**
* APIMethod: setAttributeNS
* Adds a new attribute or changes the value of an attribute with the given
@@ -13764,7 +13764,7 @@
}
return node;
},
-
+
/**
* Method: setAttributes
* Set multiple attributes given key value pairs from an object.
@@ -13903,7 +13903,7 @@
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
@@ -13922,7 +13922,7 @@
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
@@ -13964,7 +13964,7 @@
}
return sibling || null;
},
-
+
/**
* APIMethod: lookupNamespaceURI
* Takes a prefix and returns the namespace URI associated with it on the given
@@ -13977,11 +13977,11 @@
*
* 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.
@@ -14025,7 +14025,7 @@
case 10: // DOCUMENT_TYPE_NODE
case 11: // DOCUMENT_FRAGMENT_NODE
break outer;
- default:
+ 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);
@@ -14035,11 +14035,11 @@
}
return uri;
},
-
- CLASS_NAME: "OpenLayers.Format.XML"
-});
+ CLASS_NAME: "OpenLayers.Format.XML"
+});
+
OpenLayers.Format.XML.CONTENT_TYPE = {EMPTY: 0, SIMPLE: 1, COMPLEX: 2, MIXED: 3};
/**
@@ -14054,11 +14054,11 @@
*
* 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.
@@ -14094,7 +14094,7 @@
* correspond to these abstract events - so instead of listening for
* individual browser events, they only listen for the abstract events
* defined by the handler.
- *
+ *
* Handlers are created by controls, which ultimately have the responsibility
* of making changes to the the state of the application. Handlers
* themselves may make temporary changes, but in general are expected to
@@ -14107,7 +14107,7 @@
* {String}
*/
id: null,
-
+
/**
* APIProperty: control
* {<OpenLayers.Control>}. The control that initialized this handler. The
@@ -14146,7 +14146,7 @@
* {Boolean}
*/
active: false,
-
+
/**
* Property: evt
* {Event} This property references the last event handled by the handler.
@@ -14177,14 +14177,14 @@
this.control = control;
this.callbacks = callbacks;
if (control.map) {
- this.setMap(control.map);
+ this.setMap(control.map);
}
OpenLayers.Util.extend(this, options);
-
+
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
-
+
/**
* Method: setMap
*/
@@ -14210,7 +14210,7 @@
(evt.shiftKey ? OpenLayers.Handler.MOD_SHIFT : 0) |
(evt.ctrlKey ? OpenLayers.Handler.MOD_CTRL : 0) |
(evt.altKey ? OpenLayers.Handler.MOD_ALT : 0);
-
+
/* if it differs from the handler object's key mask,
bail out of the event handler */
return (keyModifiers == this.keyMask);
@@ -14219,8 +14219,8 @@
/**
* APIMethod: activate
* Turn on the handler. Returns false if the handler was already active.
- *
- * Returns:
+ *
+ * Returns:
* {Boolean} The handler was activated.
*/
activate: function() {
@@ -14231,17 +14231,17 @@
var events = OpenLayers.Events.prototype.BROWSER_EVENTS;
for (var i=0, len=events.length; i<len; i++) {
if (this[events[i]]) {
- this.register(events[i], this[events[i]]);
+ this.register(events[i], this[events[i]]);
}
- }
+ }
this.active = true;
return true;
},
-
+
/**
* APIMethod: deactivate
* Turn off the handler. Returns false if the handler was already inactive.
- *
+ *
* Returns:
* {Boolean} The handler was deactivated.
*/
@@ -14253,9 +14253,9 @@
var events = OpenLayers.Events.prototype.BROWSER_EVENTS;
for (var i=0, len=events.length; i<len; i++) {
if (this[events[i]]) {
- this.unregister(events[i], this[events[i]]);
+ this.unregister(events[i], this[events[i]]);
}
- }
+ }
this.active = false;
return true;
},
@@ -14267,7 +14267,7 @@
* Parameters:
* name - {String} The key for the callback that is one of the properties
* of the handler's callbacks object.
- * args - {Array(*)} An array of arguments (any type) with which to call
+ * args - {Array(*)} An array of arguments (any type) with which to call
* the callback (defined by the control).
*/
callback: function (name, args) {
@@ -14291,10 +14291,10 @@
* unregister an event from the map
*/
unregister: function (name, method) {
- this.map.events.unregister(name, this, method);
+ this.map.events.unregister(name, this, method);
this.map.events.unregister(name, this, this.setEvent);
},
-
+
/**
* Method: setEvent
* With each registered browser event, the handler sets its own evt
@@ -14325,7 +14325,7 @@
// unregister event listeners
this.deactivate();
// eliminate circular references
- this.control = this.map = null;
+ this.control = this.map = null;
},
CLASS_NAME: "OpenLayers.Handler"
@@ -14375,16 +14375,16 @@
* Class: OpenLayers.Map
* Instances of OpenLayers.Map are interactive maps embedded in a web page.
* Create a new map with the <OpenLayers.Map> constructor.
- *
+ *
* On their own maps do not provide much functionality. To extend a map
- * it's necessary to add controls (<OpenLayers.Control>) and
- * layers (<OpenLayers.Layer>) to the map.
+ * it's necessary to add controls (<OpenLayers.Control>) and
+ * layers (<OpenLayers.Layer>) to the map.
*/
OpenLayers.Map = OpenLayers.Class({
-
+
/**
* Constant: Z_INDEX_BASE
- * {Object} Base z-indexes for different classes of thing
+ * {Object} Base z-indexes for different classes of thing
*/
Z_INDEX_BASE: {
BaseLayer: 100,
@@ -14416,7 +14416,7 @@
*
* Supported map event types:
* - *preaddlayer* triggered before a layer has been added. The event
- * object will include a *layer* property that references the layer
+ * object will include a *layer* property that references the layer
* to be added.
* - *addlayer* triggered after a layer has been added. The event object
* will include a *layer* property that references the added layer.
@@ -14444,7 +14444,7 @@
* - *dragend* Does not work. Register for moveend instead.
* - *changebaselayer* triggered after the base layer changes
*/
- EVENT_TYPES: [
+ EVENT_TYPES: [
"preaddlayer", "addlayer", "removelayer", "changelayer", "movestart",
"move", "moveend", "zoomend", "popupopen", "popupclose",
"addmarker", "removemarker", "clearmarkers", "mouseover",
@@ -14456,7 +14456,7 @@
* {String} Unique identifier for the map
*/
id: null,
-
+
/**
* Property: fractionalZoom
* {Boolean} For a base layer that supports it, allow the map resolution
@@ -14475,14 +14475,14 @@
* former works for non-integer zoom levels.
*/
fractionalZoom: false,
-
+
/**
* APIProperty: events
- * {<OpenLayers.Events>} An events object that handles all
+ * {<OpenLayers.Events>} An events object that handles all
* events on the map
*/
events: null,
-
+
/**
* APIProperty: allOverlays
* {Boolean} Allow the map to function with "overlays" only. Defaults to
@@ -14509,13 +14509,13 @@
* div property may or may not be provided. If the div property
* is not provided, the map can be rendered to a container later
* using the <render> method.
- *
+ *
* Note: If you calling <render> after map construction, do not use
* <maxResolution> auto. Instead, divide your <maxExtent> by your
* maximum expected dimension.
*/
div: null,
-
+
/**
* Property: dragging
* {Boolean} The map is currently being dragged.
@@ -14527,7 +14527,7 @@
* {<OpenLayers.Size>} Size of the main div (this.div)
*/
size: null,
-
+
/**
* Property: viewPortDiv
* {HTMLDivElement} The element that represents the map viewport
@@ -14578,7 +14578,7 @@
* min/max zoom level, projection, etc.
*/
baseLayer: null,
-
+
/**
* Property: center
* {<OpenLayers.LonLat>} The current center of the map
@@ -14595,25 +14595,25 @@
* Property: zoom
* {Integer} The current zoom level of the map
*/
- zoom: 0,
+ zoom: 0,
/**
* Property: panRatio
* {Float} The ratio of the current extent within
* which panning will tween.
*/
- panRatio: 1.5,
+ panRatio: 1.5,
/**
* Property: viewRequestID
- * {String} Used to store a unique identifier that changes when the map
- * view changes. viewRequestID should be used when adding data
- * asynchronously to the map: viewRequestID is incremented when
- * you initiate your request (right now during changing of
- * baselayers and changing of zooms). It is stored here in the
- * map and also in the data that will be coming back
- * asynchronously. Before displaying this data on request
- * completion, we check that the viewRequestID of the data is
+ * {String} Used to store a unique identifier that changes when the map
+ * view changes. viewRequestID should be used when adding data
+ * asynchronously to the map: viewRequestID is incremented when
+ * you initiate your request (right now during changing of
+ * baselayers and changing of zooms). It is stored here in the
+ * map and also in the data that will be coming back
+ * asynchronously. Before displaying this data on request
+ * completion, we check that the viewRequestID of the data is
* still the same as that of the map. Fix for #480
*/
viewRequestID: 0,
@@ -14629,12 +14629,12 @@
/**
* APIProperty: projection
- * {String} Set in the map options to override the default projection
- * string this map - also set maxExtent, maxResolution, and
+ * {String} Set in the map options to override the default projection
+ * string this map - also set maxExtent, maxResolution, and
* units if appropriate. Default is "EPSG:4326".
*/
- projection: "EPSG:4326",
-
+ projection: "EPSG:4326",
+
/**
* APIProperty: units
* {String} The map units. Defaults to 'degrees'. Possible values are
@@ -14644,9 +14644,9 @@
/**
* APIProperty: resolutions
- * {Array(Float)} A list of map resolutions (map units per pixel) in
- * descending order. If this is not set in the layer constructor, it
- * will be set based on other resolution related properties
+ * {Array(Float)} A list of map resolutions (map units per pixel) in
+ * descending order. If this is not set in the layer constructor, it
+ * will be set based on other resolution related properties
* (maxExtent, maxResolution, maxScale, etc.).
*/
resolutions: null,
@@ -14654,8 +14654,8 @@
/**
* APIProperty: maxResolution
* {Float} Default max is 360 deg / 256 px, which corresponds to
- * zoom level 0 on gmaps. Specify a different value in the map
- * options if you are not using a geographic projection and
+ * zoom level 0 on gmaps. Specify a different value in the map
+ * options if you are not using a geographic projection and
* displaying the whole world.
*/
maxResolution: 1.40625,
@@ -14681,20 +14681,20 @@
/**
* APIProperty: maxExtent
* {<OpenLayers.Bounds>} The maximum extent for the map. Defaults to the
- * whole world in decimal degrees
+ * whole world in decimal degrees
* (-180, -90, 180, 90). Specify a different
- * extent in the map options if you are not using a
- * geographic projection and displaying the whole
+ * extent in the map options if you are not using a
+ * geographic projection and displaying the whole
* world.
*/
maxExtent: null,
-
+
/**
* APIProperty: minExtent
* {<OpenLayers.Bounds>}
*/
minExtent: null,
-
+
/**
* APIProperty: restrictedExtent
* {<OpenLayers.Bounds>} Limit map navigation to this extent where possible.
@@ -14716,18 +14716,18 @@
/**
* APIProperty: theme
* {String} Relative path to a CSS file from which to load theme styles.
- * Specify null in the map options (e.g. {theme: null}) if you
- * want to get cascading style declarations - by putting links to
+ * Specify null in the map options (e.g. {theme: null}) if you
+ * want to get cascading style declarations - by putting links to
* stylesheets or style declarations directly in your page.
*/
theme: null,
-
- /**
+
+ /**
* APIProperty: displayProjection
* {<OpenLayers.Projection>} Requires proj4js support.Projection used by
* several controls to display data to user. If this property is set,
* it will be set on any control which has a null displayProjection
- * property at the time the control is added to the map.
+ * property at the time the control is added to the map.
*/
displayProjection: null,
@@ -14738,7 +14738,7 @@
* Default is to fall through.
*/
fallThrough: true,
-
+
/**
* Property: panTween
* {OpenLayers.Tween} Animated panning tween object, see panTo()
@@ -14761,7 +14761,7 @@
* animated panning.
*/
panMethod: OpenLayers.Easing.Expo.easeOut,
-
+
/**
* Property: panDuration
* {Integer} The number of steps to be passed to the
@@ -14770,14 +14770,14 @@
* Default is 50.
*/
panDuration: 50,
-
+
/**
* Property: paddingForPopups
- * {<OpenLayers.Bounds>} Outside margin of the popup. Used to prevent
+ * {<OpenLayers.Bounds>} Outside margin of the popup. Used to prevent
* the popup from getting too close to the map border.
*/
paddingForPopups : null,
-
+
/**
* Constructor: OpenLayers.Map
* Constructor for a new OpenLayers.Map instance. There are two possible
@@ -14822,28 +14822,28 @@
* units: 'm',
* projection: "EPSG:41001"
* });
- */
+ */
initialize: function (div, options) {
-
+
// If only one argument is provided, check if it is an object.
if(arguments.length === 1 && typeof div === "object") {
options = div;
div = options && options.div;
}
- // Simple-type defaults are set in class definition.
- // Now set complex-type defaults
+ // Simple-type defaults are set in class definition.
+ // Now set complex-type defaults
this.tileSize = new OpenLayers.Size(OpenLayers.Map.TILE_WIDTH,
OpenLayers.Map.TILE_HEIGHT);
-
+
this.maxExtent = new OpenLayers.Bounds(-180, -90, 180, 90);
-
+
this.paddingForPopups = new OpenLayers.Bounds(15, 15, 15, 15);
- this.theme = OpenLayers._getScriptLocation() +
- 'theme/default/style.css';
+ this.theme = OpenLayers._getScriptLocation() +
+ 'theme/default/style.css';
- // now override default options
+ // now override default options
OpenLayers.Util.extend(this, options);
this.id = OpenLayers.Util.createUniqueID("OpenLayers.Map_");
@@ -14854,7 +14854,7 @@
this.div.style.height = "1px";
this.div.style.width = "1px";
}
-
+
OpenLayers.Element.addClass(this.div, 'olMap');
// the viewPortDiv is the outermost div we modify
@@ -14871,37 +14871,37 @@
id = this.div.id + "_OpenLayers_Container";
this.layerContainerDiv = OpenLayers.Util.createDiv(id);
this.layerContainerDiv.style.zIndex=this.Z_INDEX_BASE['Popup']-1;
-
+
this.viewPortDiv.appendChild(this.layerContainerDiv);
- this.events = new OpenLayers.Events(this,
- this.div,
- this.EVENT_TYPES,
- this.fallThrough,
+ this.events = new OpenLayers.Events(this,
+ this.div,
+ this.EVENT_TYPES,
+ this.fallThrough,
{includeXY: true});
this.updateSize();
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
}
-
+
// update the map size and location before the map moves
this.events.register("movestart", this, this.updateSize);
- // Because Mozilla does not support the "resize" event for elements
- // other than "window", we need to put a hack here.
+ // Because Mozilla does not support the "resize" event for elements
+ // other than "window", we need to put a hack here.
if (OpenLayers.String.contains(navigator.appName, "Microsoft")) {
// If IE, register the resize on the div
this.events.register("resize", this, this.updateSize);
} else {
// Else updateSize on catching the window's resize
- // Note that this is ok, as updateSize() does nothing if the
+ // Note that this is ok, as updateSize() does nothing if the
// map's size has not actually changed.
- this.updateSizeDestroy = OpenLayers.Function.bind(this.updateSize,
+ this.updateSizeDestroy = OpenLayers.Function.bind(this.updateSize,
this);
OpenLayers.Event.observe(window, 'resize',
this.updateSizeDestroy);
}
-
+
// only append link stylesheet if the theme property is set
if(this.theme) {
// check existing links for equivalent url
@@ -14926,7 +14926,7 @@
}
this.layers = [];
-
+
if (this.controls == null) {
if (OpenLayers.Control != null) { // running full or lite?
this.controls = [ new OpenLayers.Control.Navigation(),
@@ -14946,16 +14946,16 @@
this.popups = [];
this.unloadDestroy = OpenLayers.Function.bind(this.destroy, this);
-
+
// always call map.destroy()
OpenLayers.Event.observe(window, 'unload', this.unloadDestroy);
},
-
+
/**
* APIMethod: render
* Render the map to a specified container.
- *
+ *
* Parameters:
* div - {String|DOMElement} The container that the map should be rendered
* to. If different than the current container, the map viewport
@@ -14976,11 +14976,11 @@
* so that if map is manually destroyed, we can unregister this.
*/
unloadDestroy: null,
-
+
/**
* Method: updateSizeDestroy
* When the map is destroyed, we need to stop listening to updateSize
- * events: this method stores the function we need to unregister in
+ * events: this method stores the function we need to unregister in
* non-IE browsers.
*/
updateSizeDestroy: null,
@@ -15000,26 +15000,26 @@
this.unloadDestroy = null;
if (this.updateSizeDestroy) {
- OpenLayers.Event.stopObserving(window, 'resize',
+ OpenLayers.Event.stopObserving(window, 'resize',
this.updateSizeDestroy);
} else {
this.events.unregister("resize", this, this.updateSize);
- }
-
- this.paddingForPopups = null;
+ }
+ this.paddingForPopups = null;
+
if (this.controls != null) {
for (var i = this.controls.length - 1; i>=0; --i) {
this.controls[i].destroy();
- }
+ }
this.controls = null;
}
if (this.layers != null) {
for (var i = this.layers.length - 1; i>=0; --i) {
- //pass 'false' to destroy so that map wont try to set a new
+ //pass 'false' to destroy so that map wont try to set a new
// baselayer after each baselayer is removed
this.layers[i].destroy(false);
- }
+ }
this.layers = null;
}
if (this.viewPortDiv) {
@@ -15194,7 +15194,7 @@
/* The following functions deal with adding and */
/* removing Layers to and from the Map */
/* */
- /********************************************************/
+ /********************************************************/
/**
* APIMethod: getLayer
@@ -15204,7 +15204,7 @@
* id - {String} A layer id
*
* Returns:
- * {<OpenLayers.Layer>} The Layer with the corresponding id from the map's
+ * {<OpenLayers.Layer>} The Layer with the corresponding id from the map's
* layer collection, or null if not found.
*/
getLayer: function(id) {
@@ -15221,11 +15221,11 @@
/**
* Method: setLayerZIndex
- *
+ *
* Parameters:
- * layer - {<OpenLayers.Layer>}
- * zIdx - {int}
- */
+ * layer - {<OpenLayers.Layer>}
+ * zIdx - {int}
+ */
setLayerZIndex: function (layer, zIdx) {
layer.setZIndex(
this.Z_INDEX_BASE[layer.isBaseLayer ? 'BaseLayer' : 'Overlay']
@@ -15247,12 +15247,12 @@
* APIMethod: addLayer
*
* Parameters:
- * layer - {<OpenLayers.Layer>}
- */
+ * layer - {<OpenLayers.Layer>}
+ */
addLayer: function (layer) {
for(var i=0, len=this.layers.length; i <len; i++) {
if (this.layers[i] == layer) {
- var msg = OpenLayers.i18n('layerAlreadyAdded',
+ var msg = OpenLayers.i18n('layerAlreadyAdded',
{'layerName':layer.name});
OpenLayers.Console.warn(msg);
return false;
@@ -15263,7 +15263,7 @@
}
this.events.triggerEvent("preaddlayer", {layer: layer});
-
+
layer.div.className = "olLayerDiv";
layer.div.style.overflow = "";
this.setLayerZIndex(layer, this.layers.length);
@@ -15292,43 +15292,43 @@
},
/**
- * APIMethod: addLayers
+ * APIMethod: addLayers
*
* Parameters:
- * layers - {Array(<OpenLayers.Layer>)}
- */
+ * layers - {Array(<OpenLayers.Layer>)}
+ */
addLayers: function (layers) {
for (var i=0, len=layers.length; i<len; i++) {
this.addLayer(layers[i]);
}
},
- /**
+ /**
* APIMethod: removeLayer
- * Removes a layer from the map by removing its visual element (the
- * layer.div property), then removing it from the map's internal list
- * of layers, setting the layer's map property to null.
- *
+ * Removes a layer from the map by removing its visual element (the
+ * layer.div property), then removing it from the map's internal list
+ * of layers, setting the layer's map property to null.
+ *
* a "removelayer" event is triggered.
- *
+ *
* very worthy of mention is that simply removing a layer from a map
* will not cause the removal of any popups which may have been created
* by the layer. this is due to the fact that it was decided at some
- * point that popups would not belong to layers. thus there is no way
+ * point that popups would not belong to layers. thus there is no way
* for us to know here to which layer the popup belongs.
- *
+ *
* A simple solution to this is simply to call destroy() on the layer.
* the default OpenLayers.Layer class's destroy() function
* automatically takes care to remove itself from whatever map it has
- * been attached to.
- *
- * The correct solution is for the layer itself to register an
- * event-handler on "removelayer" and when it is called, if it
+ * been attached to.
+ *
+ * The correct solution is for the layer itself to register an
+ * event-handler on "removelayer" and when it is called, if it
* recognizes itself as the layer being removed, then it cycles through
* its own personal list of popups, removing them from the map.
- *
+ *
* Parameters:
- * layer - {<OpenLayers.Layer>}
+ * layer - {<OpenLayers.Layer>}
* setNewBaseLayer - {Boolean} Default is true
*/
removeLayer: function(layer, setNewBaseLayer) {
@@ -15366,7 +15366,7 @@
/**
* APIMethod: getNumLayers
- *
+ *
* Returns:
* {Int} The number of layers attached to the map.
*/
@@ -15374,7 +15374,7 @@
return this.layers.length;
},
- /**
+ /**
* APIMethod: getLayerIndex
*
* Parameters:
@@ -15387,8 +15387,8 @@
getLayerIndex: function (layer) {
return OpenLayers.Util.indexOf(this.layers, layer);
},
-
- /**
+
+ /**
* APIMethod: setLayerIndex
* Move the given layer to the specified (zero-based) index in the layer
* list, changing its z-index in the map display. Use
@@ -15397,8 +15397,8 @@
* raise base layers above overlays.
*
* Parameters:
- * layer - {<OpenLayers.Layer>}
- * idx - {int}
+ * layer - {<OpenLayers.Layer>}
+ * idx - {int}
*/
setLayerIndex: function (layer, idx) {
var base = this.getLayerIndex(layer);
@@ -15426,27 +15426,27 @@
}
},
- /**
+ /**
* APIMethod: raiseLayer
- * Change the index of the given layer by delta. If delta is positive,
+ * Change the index of the given layer by delta. If delta is positive,
* the layer is moved up the map's layer stack; if delta is negative,
* the layer is moved down. Again, note that this cannot (or at least
* should not) be effectively used to raise base layers above overlays.
*
* Paremeters:
- * layer - {<OpenLayers.Layer>}
- * delta - {int}
+ * layer - {<OpenLayers.Layer>}
+ * delta - {int}
*/
raiseLayer: function (layer, delta) {
var idx = this.getLayerIndex(layer) + delta;
this.setLayerIndex(layer, idx);
},
-
- /**
+
+ /**
* APIMethod: setBaseLayer
* Allows user to specify one of the currently-loaded layers as the Map's
* new base layer.
- *
+ *
* Parameters:
* newBaseLayer - {<OpenLayers.Layer>}
*/
@@ -15457,20 +15457,20 @@
}
if (newBaseLayer != this.baseLayer) {
-
+
// is newBaseLayer an already loaded layer?m
if (OpenLayers.Util.indexOf(this.layers, newBaseLayer) != -1) {
- // make the old base layer invisible
+ // make the old base layer invisible
if (this.baseLayer != null && !this.allOverlays) {
this.baseLayer.setVisibility(false);
}
// set new baselayer
this.baseLayer = newBaseLayer;
-
- // Increment viewRequestID since the baseLayer is
- // changing. This is used by tiles to check if they should
+
+ // Increment viewRequestID since the baseLayer is
+ // changing. This is used by tiles to check if they should
// draw themselves.
this.viewRequestID++;
if(!this.allOverlays) {
@@ -15482,14 +15482,14 @@
if (center != null) {
//either get the center from the old Extent or just from
- // the current center of the map.
- var newCenter = (oldExtent)
+ // the current center of the map.
+ var newCenter = (oldExtent)
? oldExtent.getCenterLonLat()
: center;
- //the new zoom will either come from the old Extent or
- // from the current resolution of the map
- var newZoom = (oldExtent)
+ //the new zoom will either come from the old Extent or
+ // from the current resolution of the map
+ var newZoom = (oldExtent)
? this.getZoomForExtent(oldExtent, true)
: this.getZoomForResolution(this.resolution, true);
@@ -15500,7 +15500,7 @@
this.events.triggerEvent("changebaselayer", {
layer: this.baseLayer
});
- }
+ }
}
},
@@ -15512,15 +15512,15 @@
/* The following functions deal with adding and */
/* removing Controls to and from the Map */
/* */
- /********************************************************/
+ /********************************************************/
/**
* APIMethod: addControl
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>}
* px - {<OpenLayers.Pixel>}
- */
+ */
addControl: function (control, px) {
this.controls.push(control);
this.addControlToMap(control, px);
@@ -15528,23 +15528,23 @@
/**
* Method: addControlToMap
- *
+ *
* Parameters:
- *
+ *
* control - {<OpenLayers.Control>}
* px - {<OpenLayers.Pixel>}
- */
+ */
addControlToMap: function (control, px) {
// If a control doesn't have a div at this point, it belongs in the
// viewport.
control.outsideViewport = (control.div != null);
-
- // If the map has a displayProjection, and the control doesn't, set
+
+ // If the map has a displayProjection, and the control doesn't, set
// the display projection.
if (this.displayProjection && !control.displayProjection) {
control.displayProjection = this.displayProjection;
- }
-
+ }
+
control.setMap(this);
var div = control.draw(px);
if (div) {
@@ -15555,18 +15555,18 @@
}
}
},
-
+
/**
* APIMethod: getControl
- *
+ *
* Parameters:
* id - {String} ID of the control to return.
- *
+ *
* Returns:
- * {<OpenLayers.Control>} The control from the map's list of controls
- * which has a matching 'id'. If none found,
+ * {<OpenLayers.Control>} The control from the map's list of controls
+ * which has a matching 'id'. If none found,
* returns null.
- */
+ */
getControl: function (id) {
var returnControl = null;
for(var i=0, len=this.controls.length; i<len; i++) {
@@ -15578,16 +15578,16 @@
}
return returnControl;
},
-
- /**
+
+ /**
* APIMethod: removeControl
- * Remove a control from the map. Removes the control both from the map
- * object's internal array of controls, as well as from the map's
+ * Remove a control from the map. Removes the control both from the map
+ * object's internal array of controls, as well as from the map's
* viewPort (assuming the control was not added outsideViewport)
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>} The control to remove.
- */
+ */
removeControl: function (control) {
//make sure control is non-null and actually part of our map
if ( (control) && (control == this.getControl(control.id)) ) {
@@ -15605,11 +15605,11 @@
/* The following functions deal with adding and */
/* removing Popups to and from the Map */
/* */
- /********************************************************/
+ /********************************************************/
- /**
+ /**
* APIMethod: addPopup
- *
+ *
* Parameters:
* popup - {<OpenLayers.Popup>}
* exclusive - {Boolean} If true, closes all other popups first
@@ -15632,10 +15632,10 @@
this.layerContainerDiv.appendChild(popupDiv);
}
},
-
- /**
+
+ /**
* APIMethod: removePopup
- *
+ *
* Parameters:
* popup - {<OpenLayers.Popup>}
*/
@@ -15656,15 +15656,15 @@
/* The following functions deal with the access to */
/* and maintenance of the size of the container div */
/* */
- /********************************************************/
+ /********************************************************/
/**
* APIMethod: getSize
- *
+ *
* Returns:
- * {<OpenLayers.Size>} An <OpenLayers.Size> object that represents the
- * size, in pixels, of the div into which OpenLayers
- * has been loaded.
+ * {<OpenLayers.Size>} An <OpenLayers.Size> object that represents the
+ * size, in pixels, of the div into which OpenLayers
+ * has been loaded.
* Note - A clone() of this locally cached variable is
* returned, so as not to allow users to modify it.
*/
@@ -15679,7 +15679,7 @@
/**
* APIMethod: updateSize
* This function should be called by any external code which dynamically
- * changes the size of the map div (because mozilla wont let us catch
+ * changes the size of the map div (because mozilla wont let us catch
* the "onresize" for an element)
*/
updateSize: function() {
@@ -15691,13 +15691,13 @@
this.size = oldSize = newSize;
}
if (!newSize.equals(oldSize)) {
-
+
// store the new size
this.size = newSize;
//notify layers of mapresize
for(var i=0, len=this.layers.length; i<len; i++) {
- this.layers[i].onMapResize();
+ this.layers[i].onMapResize();
}
if (this.baseLayer != null) {
@@ -15710,17 +15710,17 @@
}
},
-
+
/**
* Method: getCurrentSize
- *
+ *
* Returns:
- * {<OpenLayers.Size>} A new <OpenLayers.Size> object with the dimensions
+ * {<OpenLayers.Size>} A new <OpenLayers.Size> object with the dimensions
* of the map div
*/
getCurrentSize: function() {
- var size = new OpenLayers.Size(this.div.clientWidth,
+ var size = new OpenLayers.Size(this.div.clientWidth,
this.div.clientHeight);
// Workaround for the fact that hidden elements return 0 for size.
@@ -15736,39 +15736,39 @@
return size;
},
- /**
+ /**
* Method: calculateBounds
- *
+ *
* Parameters:
* center - {<OpenLayers.LonLat>} Default is this.getCenter()
- * resolution - {float} Default is this.getResolution()
- *
+ * resolution - {float} Default is this.getResolution()
+ *
* Returns:
- * {<OpenLayers.Bounds>} A bounds based on resolution, center, and
+ * {<OpenLayers.Bounds>} A bounds based on resolution, center, and
* current mapsize.
*/
calculateBounds: function(center, resolution) {
var extent = null;
-
+
if (center == null) {
center = this.getCenter();
- }
+ }
if (resolution == null) {
resolution = this.getResolution();
}
-
+
if ((center != null) && (resolution != null)) {
var size = this.getSize();
var w_deg = size.w * resolution;
var h_deg = size.h * resolution;
-
+
extent = new OpenLayers.Bounds(center.lon - w_deg / 2,
center.lat - h_deg / 2,
center.lon + w_deg / 2,
center.lat + h_deg / 2);
-
+
}
return extent;
@@ -15786,7 +15786,7 @@
/********************************************************/
/**
* APIMethod: getCenter
- *
+ *
* Returns:
* {<OpenLayers.LonLat>}
*/
@@ -15801,18 +15801,18 @@
/**
* APIMethod: getZoom
- *
+ *
* Returns:
* {Integer}
*/
getZoom: function () {
return this.zoom;
},
-
- /**
+
+ /**
* APIMethod: pan
* Allows user to pan by a value of screen pixels
- *
+ *
* Parameters:
* dx - {Integer}
* dy - {Integer}
@@ -15831,7 +15831,7 @@
// adjust
var newCenterPx = centerPx.add(dx, dy);
-
+
// only call setCenter if not dragging or there has been a change
if (!options.dragging || !newCenterPx.equals(centerPx)) {
var newCenterLonLat = this.getLonLatFromViewPortPx(newCenterPx);
@@ -15839,16 +15839,16 @@
this.panTo(newCenterLonLat);
} else {
this.setCenter(newCenterLonLat, null, options.dragging);
- }
+ }
}
},
-
- /**
+
+ /**
* APIMethod: panTo
* Allows user to pan to a new lonlat
* If the new lonlat is in the current extent the map will slide smoothly
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.Lonlat>}
*/
@@ -15902,13 +15902,13 @@
/**
* APIMethod: setCenter
* Set the map center (and optionally, the zoom level).
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>} The new center location.
* zoom - {Integer} Optional zoom level.
- * dragging - {Boolean} Specifies whether or not to trigger
+ * dragging - {Boolean} Specifies whether or not to trigger
* movestart/end events
- * forceZoomChange - {Boolean} Specifies whether or not to trigger zoom
+ * forceZoomChange - {Boolean} Specifies whether or not to trigger zoom
* change events (needed on baseLayer change)
*
* TBD: reconsider forceZoomChange in 3.0
@@ -15930,9 +15930,9 @@
* options - {Object}
*/
moveTo: function(lonlat, zoom, options) {
- if (!options) {
+ if (!options) {
options = {};
- }
+ }
// dragging is false by default
var dragging = options.dragging;
// forceZoomChange is false by default
@@ -15942,51 +15942,51 @@
if (this.panTween && options.caller == "setCenter") {
this.panTween.stop();
- }
-
+ }
+
if (!this.center && !this.isValidLonLat(lonlat)) {
lonlat = this.maxExtent.getCenterLonLat();
}
if(this.restrictedExtent != null) {
// In 3.0, decide if we want to change interpretation of maxExtent.
- if(lonlat == null) {
- lonlat = this.getCenter();
+ if(lonlat == null) {
+ lonlat = this.getCenter();
}
- if(zoom == null) {
- zoom = this.getZoom();
+ if(zoom == null) {
+ zoom = this.getZoom();
}
var resolution = this.getResolutionForZoom(zoom);
- var extent = this.calculateBounds(lonlat, resolution);
+ var extent = this.calculateBounds(lonlat, resolution);
if(!this.restrictedExtent.containsBounds(extent)) {
- var maxCenter = this.restrictedExtent.getCenterLonLat();
- if(extent.getWidth() > this.restrictedExtent.getWidth()) {
- lonlat = new OpenLayers.LonLat(maxCenter.lon, lonlat.lat);
+ var maxCenter = this.restrictedExtent.getCenterLonLat();
+ if(extent.getWidth() > this.restrictedExtent.getWidth()) {
+ lonlat = new OpenLayers.LonLat(maxCenter.lon, lonlat.lat);
} else if(extent.left < this.restrictedExtent.left) {
lonlat = lonlat.add(this.restrictedExtent.left -
- extent.left, 0);
- } else if(extent.right > this.restrictedExtent.right) {
+ extent.left, 0);
+ } else if(extent.right > this.restrictedExtent.right) {
lonlat = lonlat.add(this.restrictedExtent.right -
- extent.right, 0);
- }
- if(extent.getHeight() > this.restrictedExtent.getHeight()) {
- lonlat = new OpenLayers.LonLat(lonlat.lon, maxCenter.lat);
- } else if(extent.bottom < this.restrictedExtent.bottom) {
+ extent.right, 0);
+ }
+ if(extent.getHeight() > this.restrictedExtent.getHeight()) {
+ lonlat = new OpenLayers.LonLat(lonlat.lon, maxCenter.lat);
+ } else if(extent.bottom < this.restrictedExtent.bottom) {
lonlat = lonlat.add(0, this.restrictedExtent.bottom -
- extent.bottom);
- }
- else if(extent.top > this.restrictedExtent.top) {
+ extent.bottom);
+ }
+ else if(extent.top > this.restrictedExtent.top) {
lonlat = lonlat.add(0, this.restrictedExtent.top -
- extent.top);
- }
+ extent.top);
+ }
}
}
-
+
var zoomChanged = forceZoomChange || (
- (this.isValidZoomLevel(zoom)) &&
+ (this.isValidZoomLevel(zoom)) &&
(zoom != this.getZoom()) );
- var centerChanged = (this.isValidLonLat(lonlat)) &&
+ var centerChanged = (this.isValidLonLat(lonlat)) &&
(!lonlat.equals(this.center));
@@ -15998,7 +15998,7 @@
}
if (centerChanged) {
- if ((!zoomChanged) && (this.center)) {
+ if ((!zoomChanged) && (this.center)) {
// if zoom hasnt changed, just slide layerContainer
// (must be done before setting this.center to new value)
this.centerLayerContainer(lonlat);
@@ -16018,12 +16018,12 @@
this.resolution = this.getResolutionForZoom(zoom);
// zoom level has changed, increment viewRequestID.
this.viewRequestID++;
- }
-
+ }
+
var bounds = this.getExtent();
-
- //send the move call to the baselayer and all the overlays
+ //send the move call to the baselayer and all the overlays
+
if(this.baseLayer.visibility) {
this.baseLayer.moveTo(bounds, zoomChanged, dragging);
if(dragging) {
@@ -16034,9 +16034,9 @@
);
}
}
-
+
bounds = this.baseLayer.getExtent();
-
+
for (var i=0, len=this.layers.length; i<len; i++) {
var layer = this.layers[i];
if (layer !== this.baseLayer && !layer.isBaseLayer) {
@@ -16064,18 +16064,18 @@
);
}
}
- }
+ }
}
-
+
if (zoomChanged) {
//redraw popups
for (var i=0, len=this.popups.length; i<len; i++) {
this.popups[i].updatePosition();
}
- }
-
+ }
+
this.events.triggerEvent("move");
-
+
if (zoomChanged) { this.events.triggerEvent("zoomend"); }
}
@@ -16083,16 +16083,16 @@
if (!dragging && !noEvent) {
this.events.triggerEvent("moveend");
}
-
+
// Store the map dragging state for later use
- this.dragging = !!dragging;
+ this.dragging = !!dragging;
},
- /**
+ /**
* Method: centerLayerContainer
* This function takes care to recenter the layerContainerDiv.
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
*/
@@ -16109,26 +16109,26 @@
/**
* Method: isValidZoomLevel
- *
+ *
* Parameters:
* zoomLevel - {Integer}
- *
+ *
* Returns:
- * {Boolean} Whether or not the zoom level passed in is non-null and
+ * {Boolean} Whether or not the zoom level passed in is non-null and
* within the min/max range of zoom levels.
*/
isValidZoomLevel: function(zoomLevel) {
return ( (zoomLevel != null) &&
- (zoomLevel >= 0) &&
+ (zoomLevel >= 0) &&
(zoomLevel < this.getNumZoomLevels()) );
},
-
+
/**
* Method: isValidLonLat
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
* {Boolean} Whether or not the lonlat passed in is non-null and within
* the maxExtent bounds
@@ -16137,7 +16137,7 @@
var valid = false;
if (lonlat != null) {
var maxExtent = this.getMaxExtent();
- valid = maxExtent.containsLonLat(lonlat);
+ valid = maxExtent.containsLonLat(lonlat);
}
return valid;
},
@@ -16149,25 +16149,25 @@
/* Accessor functions to Layer Options parameters */
/* */
/********************************************************/
-
+
/**
* APIMethod: getProjection
- * This method returns a string representing the projection. In
+ * This method returns a string representing the projection. In
* the case of projection support, this will be the srsCode which
* is loaded -- otherwise it will simply be the string value that
* was passed to the projection at startup.
*
* FIXME: In 3.0, we will remove getProjectionObject, and instead
- * return a Projection object from this function.
- *
+ * return a Projection object from this function.
+ *
* Returns:
- * {String} The Projection string from the base layer or null.
+ * {String} The Projection string from the base layer or null.
*/
getProjection: function() {
var projection = this.getProjectionObject();
return projection ? projection.getCode() : null;
},
-
+
/**
* APIMethod: getProjectionObject
* Returns the projection obect from the baselayer.
@@ -16182,10 +16182,10 @@
}
return projection;
},
-
+
/**
* APIMethod: getMaxResolution
- *
+ *
* Returns:
* {String} The Map's Maximum Resolution
*/
@@ -16196,19 +16196,19 @@
}
return maxResolution;
},
-
+
/**
* APIMethod: getMaxExtent
*
* Parameters:
- * options - {Object}
- *
+ * options - {Object}
+ *
* Allowed Options:
- * restricted - {Boolean} If true, returns restricted extent (if it is
+ * restricted - {Boolean} If true, returns restricted extent (if it is
* available.)
*
* Returns:
- * {<OpenLayers.Bounds>} The maxExtent property as set on the current
+ * {<OpenLayers.Bounds>} The maxExtent property as set on the current
* baselayer, unless the 'restricted' option is set, in which case
* the 'restrictedExtent' option from the map is returned (if it
* is set).
@@ -16219,15 +16219,15 @@
maxExtent = this.restrictedExtent;
} else if (this.baseLayer != null) {
maxExtent = this.baseLayer.maxExtent;
- }
+ }
return maxExtent;
},
-
+
/**
* APIMethod: getNumZoomLevels
- *
+ *
* Returns:
- * {Integer} The total number of zoom levels that can be displayed by the
+ * {Integer} The total number of zoom levels that can be displayed by the
* current baseLayer.
*/
getNumZoomLevels: function() {
@@ -16251,10 +16251,10 @@
/**
* APIMethod: getExtent
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
- * bounds of the current viewPort.
+ * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
+ * bounds of the current viewPort.
* If no baselayer is set, returns null.
*/
getExtent: function () {
@@ -16267,9 +16267,9 @@
/**
* APIMethod: getResolution
- *
+ *
* Returns:
- * {Float} The current resolution of the map.
+ * {Float} The current resolution of the map.
* If no baselayer is set, returns null.
*/
getResolution: function () {
@@ -16282,9 +16282,9 @@
/**
* APIMethod: getUnits
- *
+ *
* Returns:
- * {Float} The current units of the map.
+ * {Float} The current units of the map.
* If no baselayer is set, returns null.
*/
getUnits: function () {
@@ -16297,9 +16297,9 @@
/**
* APIMethod: getScale
- *
+ *
* Returns:
- * {Float} The current scale denominator of the map.
+ * {Float} The current scale denominator of the map.
* If no baselayer is set, returns null.
*/
getScale: function () {
@@ -16315,14 +16315,14 @@
/**
* APIMethod: getZoomForExtent
- *
- * Parameters:
+ *
+ * Parameters:
* bounds - {<OpenLayers.Bounds>}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified bounds. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified bounds. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
- *
+ *
* Returns:
* {Integer} A suitable zoom level for the specified bounds.
* If no baselayer is set, returns null.
@@ -16337,10 +16337,10 @@
/**
* APIMethod: getResolutionForZoom
- *
+ *
* Parameter:
* zoom - {Float}
- *
+ *
* Returns:
* {Float} A suitable resolution for the specified zoom. If no baselayer
* is set, returns null.
@@ -16355,17 +16355,17 @@
/**
* APIMethod: getZoomForResolution
- *
+ *
* Parameter:
* resolution - {Float}
- * closest - {Boolean} Find the zoom level that corresponds to the absolute
+ * closest - {Boolean} Find the zoom level that corresponds to the absolute
* closest resolution, which may result in a zoom whose corresponding
* resolution is actually smaller than we would have desired (if this
* is being called from a getZoomForExtent() call, then this means that
- * the returned zoom index might not actually contain the entire
+ * the returned zoom index might not actually contain the entire
* extent specified... but it'll be close).
* Default is false.
- *
+ *
* Returns:
* {Integer} A suitable zoom level for the specified resolution.
* If no baselayer is set, returns null.
@@ -16387,11 +16387,11 @@
/* the setCenter() function */
/* */
/********************************************************/
-
- /**
+
+ /**
* APIMethod: zoomTo
* Zoom to a specific zoom level
- *
+ *
* Parameters:
* zoom - {Integer}
*/
@@ -16400,20 +16400,20 @@
this.setCenter(null, zoom);
}
},
-
+
/**
* APIMethod: zoomIn
- *
+ *
* Parameters:
* zoom - {int}
*/
zoomIn: function() {
this.zoomTo(this.getZoom() + 1);
},
-
+
/**
* APIMethod: zoomOut
- *
+ *
* Parameters:
* zoom - {int}
*/
@@ -16424,35 +16424,35 @@
/**
* APIMethod: zoomToExtent
* Zoom to the passed in bounds, recenter
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified bounds. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified bounds. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
- *
+ *
*/
zoomToExtent: function(bounds, closest) {
var center = bounds.getCenterLonLat();
if (this.baseLayer.wrapDateLine) {
var maxExtent = this.getMaxExtent();
- //fix straddling bounds (in the case of a bbox that straddles the
- // dateline, it's left and right boundaries will appear backwards.
+ //fix straddling bounds (in the case of a bbox that straddles the
+ // dateline, it's left and right boundaries will appear backwards.
// we fix this by allowing a right value that is greater than the
- // max value at the dateline -- this allows us to pass a valid
+ // max value at the dateline -- this allows us to pass a valid
// bounds to calculate zoom)
//
bounds = bounds.clone();
while (bounds.right < bounds.left) {
bounds.right += maxExtent.getWidth();
}
- //if the bounds was straddling (see above), then the center point
+ //if the bounds was straddling (see above), then the center point
// we got from it was wrong. So we take our new bounds and ask it
- // for the center. Because our new bounds is at least partially
- // outside the bounds of maxExtent, the new calculated center
- // might also be. We don't want to pass a bad center value to
+ // for the center. Because our new bounds is at least partially
+ // outside the bounds of maxExtent, the new calculated center
+ // might also be. We don't want to pass a bad center value to
// setCenter, so we have it wrap itself across the date line.
//
center = bounds.getCenterLonLat().wrapDateLine(maxExtent);
@@ -16460,15 +16460,15 @@
this.setCenter(center, this.getZoomForExtent(bounds, closest));
},
- /**
+ /**
* APIMethod: zoomToMaxExtent
* Zoom to the full extent and recenter.
*
* Parameters:
- * options -
- *
+ * options -
+ *
* Allowed Options:
- * restricted - {Boolean} True to zoom to restricted extent if it is
+ * restricted - {Boolean} True to zoom to restricted extent if it is
* set. Defaults to true.
*/
zoomToMaxExtent: function(options) {
@@ -16476,25 +16476,25 @@
var restricted = (options) ? options.restricted : true;
var maxExtent = this.getMaxExtent({
- 'restricted': restricted
+ 'restricted': restricted
});
this.zoomToExtent(maxExtent);
},
- /**
+ /**
* APIMethod: zoomToScale
- * Zoom to a specified scale
- *
+ * Zoom to a specified scale
+ *
* Parameters:
* scale - {float}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified scale. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified scale. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
- *
+ *
*/
zoomToScale: function(scale, closest) {
- var res = OpenLayers.Util.getResolutionFromScale(scale,
+ var res = OpenLayers.Util.getResolutionFromScale(scale,
this.baseLayer.units);
var size = this.getSize();
var w_deg = size.w * res;
@@ -16507,7 +16507,7 @@
center.lat + h_deg / 2);
this.zoomToExtent(extent, closest);
},
-
+
/********************************************************/
/* */
/* Translation Functions */
@@ -16516,24 +16516,24 @@
/* LonLat, LayerPx, and ViewPortPx */
/* */
/********************************************************/
-
+
//
// TRANSLATION: LonLat <-> ViewPortPx
//
/**
* Method: getLonLatFromViewPortPx
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in view
+ * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in view
* port <OpenLayers.Pixel>, translated into lon/lat
* by the current base layer.
*/
getLonLatFromViewPortPx: function (viewPortPx) {
- var lonlat = null;
+ var lonlat = null;
if (this.baseLayer != null) {
lonlat = this.baseLayer.getLonLatFromViewPortPx(viewPortPx);
}
@@ -16542,37 +16542,37 @@
/**
* APIMethod: getViewPortPxFromLonLat
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
- * <OpenLayers.LonLat>, translated into view port
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
+ * <OpenLayers.LonLat>, translated into view port
* pixels by the current base layer.
*/
getViewPortPxFromLonLat: function (lonlat) {
- var px = null;
+ var px = null;
if (this.baseLayer != null) {
px = this.baseLayer.getViewPortPxFromLonLat(lonlat);
}
return px;
},
-
+
//
// CONVENIENCE TRANSLATION FUNCTIONS FOR API
//
/**
* APIMethod: getLonLatFromPixel
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
*
* Returns:
* {<OpenLayers.LonLat>} An OpenLayers.LonLat corresponding to the given
- * OpenLayers.Pixel, translated into lon/lat by the
+ * OpenLayers.Pixel, translated into lon/lat by the
* current base layer
*/
getLonLatFromPixel: function (px) {
@@ -16584,12 +16584,12 @@
* Returns a pixel location given a map location. The map location is
* translated to an integer pixel location (in viewport pixel
* coordinates) by the current base layer.
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>} A map location.
- *
- * Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the
+ *
+ * Returns:
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel corresponding to the
* <OpenLayers.LonLat> translated into view port pixels by the current
* base layer.
*/
@@ -16608,12 +16608,12 @@
/**
* APIMethod: getViewPortPxFromLayerPx
- *
+ *
* Parameters:
* layerPx - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} Layer Pixel translated into ViewPort Pixel
+ * {<OpenLayers.Pixel>} Layer Pixel translated into ViewPort Pixel
* coordinates
*/
getViewPortPxFromLayerPx:function(layerPx) {
@@ -16621,19 +16621,19 @@
if (layerPx != null) {
var dX = parseInt(this.layerContainerDiv.style.left);
var dY = parseInt(this.layerContainerDiv.style.top);
- viewPortPx = layerPx.add(dX, dY);
+ viewPortPx = layerPx.add(dX, dY);
}
return viewPortPx;
},
-
+
/**
* APIMethod: getLayerPxFromViewPortPx
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} ViewPort Pixel translated into Layer Pixel
+ * {<OpenLayers.Pixel>} ViewPort Pixel translated into Layer Pixel
* coordinates
*/
getLayerPxFromViewPortPx:function(viewPortPx) {
@@ -16648,14 +16648,14 @@
}
return layerPx;
},
-
+
//
// TRANSLATION: LonLat <-> LayerPx
//
/**
* Method: getLonLatFromLayerPx
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
*
@@ -16665,24 +16665,24 @@
getLonLatFromLayerPx: function (px) {
//adjust for displacement of layerContainerDiv
px = this.getViewPortPxFromLayerPx(px);
- return this.getLonLatFromViewPortPx(px);
+ return this.getLonLatFromViewPortPx(px);
},
-
+
/**
* APIMethod: getLayerPxFromLonLat
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>} lonlat
*
* Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
- * <OpenLayers.LonLat>, translated into layer pixels
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel which is the passed-in
+ * <OpenLayers.LonLat>, translated into layer pixels
* by the current base layer
*/
getLayerPxFromLonLat: function (lonlat) {
//adjust for displacement of layerContainerDiv
var px = this.getPixelFromLonLat(lonlat);
- return this.getLayerPxFromViewPortPx(px);
+ return this.getLayerPxFromViewPortPx(px);
},
CLASS_NAME: "OpenLayers.Map"
@@ -16714,8 +16714,8 @@
/**
* Class: OpenLayers.Marker
- * Instances of OpenLayers.Marker are a combination of a
- * <OpenLayers.LonLat> and an <OpenLayers.Icon>.
+ * Instances of OpenLayers.Marker are a combination of a
+ * <OpenLayers.LonLat> and an <OpenLayers.Icon>.
*
* Markers are generally added to a special layer called
* <OpenLayers.Layer.Markers>.
@@ -16739,32 +16739,32 @@
* markers using that same icon.
*/
OpenLayers.Marker = OpenLayers.Class({
-
- /**
- * Property: icon
+
+ /**
+ * Property: icon
* {<OpenLayers.Icon>} The icon used by this marker.
*/
icon: null,
- /**
- * Property: lonlat
+ /**
+ * Property: lonlat
* {<OpenLayers.LonLat>} location of object
*/
lonlat: null,
-
- /**
- * Property: events
+
+ /**
+ * Property: events
* {<OpenLayers.Events>} the event handler.
*/
events: null,
-
- /**
- * Property: map
+
+ /**
+ * Property: map
* {<OpenLayers.Map>} the map this marker is attached to
*/
map: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Marker
* Parameters:
* lonlat - {<OpenLayers.LonLat>} the position of this marker
@@ -16772,7 +16772,7 @@
*/
initialize: function(lonlat, icon) {
this.lonlat = lonlat;
-
+
var newIcon = (icon) ? icon : OpenLayers.Marker.defaultIcon();
if (this.icon == null) {
this.icon = newIcon;
@@ -16784,10 +16784,10 @@
}
this.events = new OpenLayers.Events(this, this.icon.imageDiv, null);
},
-
+
/**
* APIMethod: destroy
- * Destroy the marker. You must first remove the marker from any
+ * Destroy the marker. You must first remove the marker from any
* layer which it has been added to, or you will get buggy behavior.
* (This can not be done within the marker since the marker does not
* know which layer it is attached to.)
@@ -16806,23 +16806,23 @@
this.icon = null;
}
},
-
- /**
+
+ /**
* Method: draw
* Calls draw on the icon, and returns that output.
- *
+ *
* Parameters:
* px - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {DOMElement} A new DOM Image with this marker's icon set at the
+ * {DOMElement} A new DOM Image with this marker's icon set at the
* location passed-in
*/
draw: function(px) {
return this.icon.draw(px);
- },
+ },
- /**
+ /**
* Method: erase
* Erases any drawn elements for this marker.
*/
@@ -16830,7 +16830,7 @@
if (this.icon != null) {
this.icon.erase();
}
- },
+ },
/**
* Method: moveTo
@@ -16842,19 +16842,19 @@
moveTo: function (px) {
if ((px != null) && (this.icon != null)) {
this.icon.moveTo(px);
- }
+ }
this.lonlat = this.map.getLonLatFromLayerPx(px);
},
/**
* APIMethod: isDrawn
- *
+ *
* Returns:
* {Boolean} Whether or not the marker is drawn.
*/
isDrawn: function() {
var isDrawn = (this.icon && this.icon.isDrawn());
- return isDrawn;
+ return isDrawn;
},
/**
@@ -16864,15 +16864,15 @@
* {Boolean} Whether or not the marker is currently visible on screen.
*/
onScreen:function() {
-
+
var onScreen = false;
if (this.map) {
var screenBounds = this.map.getExtent();
onScreen = screenBounds.containsLonLat(this.lonlat);
- }
+ }
return onScreen;
},
-
+
/**
* Method: inflate
* Englarges the markers icon by the specified ratio.
@@ -16886,14 +16886,14 @@
var newSize = new OpenLayers.Size(this.icon.size.w * inflate,
this.icon.size.h * inflate);
this.icon.setSize(newSize);
- }
+ }
},
-
- /**
+
+ /**
* Method: setOpacity
- * Change the opacity of the marker by changin the opacity of
+ * Change the opacity of the marker by changin the opacity of
* its icon
- *
+ *
* Parameters:
* opacity - {float} Specified as fraction (0.4, etc)
*/
@@ -16904,18 +16904,18 @@
/**
* Method: setUrl
* Change URL of the Icon Image.
- *
- * url - {String}
+ *
+ * url - {String}
*/
setUrl: function(url) {
this.icon.setUrl(url);
- },
+ },
- /**
+ /**
* Method: display
* Hide or show the icon
- *
- * display - {Boolean}
+ *
+ * display - {Boolean}
*/
display: function(display) {
this.icon.display(display);
@@ -16928,7 +16928,7 @@
/**
* Function: defaultIcon
* Creates a default <OpenLayers.Icon>.
- *
+ *
* Returns:
* {<OpenLayers.Icon>} A default OpenLayers.Icon to use for a marker
*/
@@ -16939,10 +16939,10 @@
return new OpenLayers.Pixel(-(size.w/2), -size.h);
};
- return new OpenLayers.Icon(url, size, null, calculateOffset);
+ return new OpenLayers.Icon(url, size, null, calculateOffset);
};
-
+
/* ======================================================================
OpenLayers/Request.js
====================================================================== */
@@ -16962,7 +16962,7 @@
* W3C compliant <OpenLayers.Request.XMLHttpRequest> class.
*/
OpenLayers.Request = {
-
+
/**
* Constant: DEFAULT_CONFIG
* {Object} Default configuration for all requests.
@@ -16982,17 +16982,17 @@
failure: null,
scope: null
},
-
+
/**
* APIProperty: events
- * {<OpenLayers.Events>} An events object that handles all
+ * {<OpenLayers.Events>} An events object that handles all
* events on the {<OpenLayers.Request>} object.
*
* All event listeners will receive an event object with three properties:
* request - {<OpenLayers.Request.XMLHttpRequest>} The request object.
* config - {Object} The config object sent to the specific request method.
* requestUrl - {String} The request url.
- *
+ *
* Supported event types:
* complete - Triggered when we have a response from the request, if a
* listener returns false, no further response processing will take
@@ -17001,7 +17001,7 @@
* failure - Triggered when the HTTP response does not have a success code.
*/
events: new OpenLayers.Events(this, null, ["complete", "success", "failure"]),
-
+
/**
* APIMethod: issue
* Create a new XMLHttpRequest object, open it, set any headers, bind
@@ -17058,7 +17058,7 @@
* {XMLHttpRequest} Request object. To abort the request before a response
* is received, call abort() on the request object.
*/
- issue: function(config) {
+ issue: function(config) {
// apply default config - proxy host may have changed
var defaultConfig = OpenLayers.Util.extend(
this.DEFAULT_CONFIG,
@@ -17090,7 +17090,7 @@
var complete = (config.scope) ?
OpenLayers.Function.bind(config.callback, config.scope) :
config.callback;
-
+
// optional success callback
var success;
if(config.success) {
@@ -17106,9 +17106,9 @@
OpenLayers.Function.bind(config.failure, config.scope) :
config.failure;
}
-
+
var events = this.events;
-
+
request.onreadystatechange = function() {
if(request.readyState == OpenLayers.Request.XMLHttpRequest.DONE) {
var proceed = events.triggerEvent(
@@ -17126,7 +17126,7 @@
success(request);
}
}
- if(request.status && (request.status < 200 || request.status >= 300)) {
+ if(request.status && (request.status < 200 || request.status >= 300)) {
events.triggerEvent(
"failure",
{request: request, config: config, requestUrl: url}
@@ -17138,7 +17138,7 @@
}
}
};
-
+
// send request (optionally with data) and return
// call in a timeout for asynchronous requests so the return is
// available before readyState == 4 for cached docs
@@ -17151,7 +17151,7 @@
}
return request;
},
-
+
/**
* APIMethod: GET
* Send an HTTP GET request. Additional configuration properties are
@@ -17162,7 +17162,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17170,7 +17170,7 @@
config = OpenLayers.Util.extend(config, {method: "GET"});
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: POST
* Send a POST request. Additional configuration properties are
@@ -17182,7 +17182,7 @@
* See the <issue> method for documentation of allowed properties. The
* default "Content-Type" header will be set to "application-xml" if
* none is provided. This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17195,7 +17195,7 @@
}
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: PUT
* Send an HTTP PUT request. Additional configuration properties are
@@ -17207,7 +17207,7 @@
* See the <issue> method for documentation of allowed properties. The
* default "Content-Type" header will be set to "application-xml" if
* none is provided. This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17220,7 +17220,7 @@
}
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: DELETE
* Send an HTTP DELETE request. Additional configuration properties are
@@ -17231,7 +17231,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17239,7 +17239,7 @@
config = OpenLayers.Util.extend(config, {method: "DELETE"});
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: HEAD
* Send an HTTP HEAD request. Additional configuration properties are
@@ -17250,7 +17250,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17258,7 +17258,7 @@
config = OpenLayers.Util.extend(config, {method: "HEAD"});
return OpenLayers.Request.issue(config);
},
-
+
/**
* APIMethod: OPTIONS
* Send an HTTP OPTIONS request. Additional configuration properties are
@@ -17269,7 +17269,7 @@
* config - {Object} Object with properties for configuring the request.
* See the <issue> method for documentation of allowed properties.
* This object is modified and should not be reused.
- *
+ *
* Returns:
* {XMLHttpRequest} Request object.
*/
@@ -17303,14 +17303,14 @@
*/
OpenLayers.Tile.Image = OpenLayers.Class(OpenLayers.Tile, {
- /**
+ /**
* Property: url
* {String} The URL of the image being requested. No default. Filled in by
- * layer.getURL() function.
+ * layer.getURL() function.
*/
url: null,
-
- /**
+
+ /**
* Property: imgDiv
* {DOMElement} The div element which wraps the image.
*/
@@ -17319,22 +17319,22 @@
/**
* Property: frame
* {DOMElement} The image element is appended to the frame. Any gutter on
- * the image will be hidden behind the frame.
- */
- frame: null,
-
+ * the image will be hidden behind the frame.
+ */
+ frame: null,
+
/**
* Property: layerAlphaHack
* {Boolean} True if the png alpha hack needs to be applied on the layer's div.
*/
layerAlphaHack: null,
-
+
/**
* Property: isBackBuffer
* {Boolean} Is this tile a back buffer tile?
*/
isBackBuffer: false,
-
+
/**
* Property: lastRatio
* {Float} Used in transition code only. This is the previous ratio
@@ -17353,7 +17353,7 @@
* tiles that have been loaded can be used.
*/
isFirstDraw: true,
-
+
/**
* Property: backBufferTile
* {<OpenLayers.Tile>} A clone of the tile used to create transition
@@ -17361,33 +17361,33 @@
*/
backBufferTile: null,
- /** TBD 3.0 - reorder the parameters to the init function to remove
- * URL. the getUrl() function on the layer gets called on
+ /** TBD 3.0 - reorder the parameters to the init function to remove
+ * URL. the getUrl() function on the layer gets called on
* each draw(), so no need to specify it here.
- *
+ *
* Constructor: OpenLayers.Tile.Image
* Constructor for a new <OpenLayers.Tile.Image> instance.
- *
+ *
* Parameters:
* layer - {<OpenLayers.Layer>} layer that the tile will go in.
* position - {<OpenLayers.Pixel>}
* bounds - {<OpenLayers.Bounds>}
* url - {<String>} Deprecated. Remove me in 3.0.
* size - {<OpenLayers.Size>}
- */
+ */
initialize: function(layer, position, bounds, url, size) {
OpenLayers.Tile.prototype.initialize.apply(this, arguments);
this.url = url; //deprecated remove me
-
- this.frame = document.createElement('div');
- this.frame.style.overflow = 'hidden';
- this.frame.style.position = 'absolute';
+ this.frame = document.createElement('div');
+ this.frame.style.overflow = 'hidden';
+ this.frame.style.position = 'absolute';
+
this.layerAlphaHack = this.layer.alpha && OpenLayers.Util.alphaHack();
},
- /**
+ /**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -17395,13 +17395,13 @@
if (this.imgDiv != null) {
if (this.layerAlphaHack) {
// unregister the "load" handler
- OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0].id);
+ OpenLayers.Event.stopObservingElement(this.imgDiv.childNodes[0].id);
}
// unregister the "load" and "error" handlers. Only the "error" handler if
// this.layerAlphaHack is true.
OpenLayers.Event.stopObservingElement(this.imgDiv.id);
-
+
if (this.imgDiv.parentNode == this.frame) {
this.frame.removeChild(this.imgDiv);
this.imgDiv.map = null;
@@ -17411,19 +17411,19 @@
this.imgDiv.src = OpenLayers.Util.getImagesLocation() + "blank.gif";
}
this.imgDiv = null;
- if ((this.frame != null) && (this.frame.parentNode == this.layer.div)) {
- this.layer.div.removeChild(this.frame);
+ if ((this.frame != null) && (this.frame.parentNode == this.layer.div)) {
+ this.layer.div.removeChild(this.frame);
}
- this.frame = null;
-
+ this.frame = null;
+
/* clean up the backBufferTile if it exists */
if (this.backBufferTile) {
this.backBufferTile.destroy();
this.backBufferTile = null;
}
-
+
this.layer.events.unregister("loadend", this, this.resetBackBuffer);
-
+
OpenLayers.Tile.prototype.destroy.apply(this, arguments);
},
@@ -17438,27 +17438,27 @@
*/
clone: function (obj) {
if (obj == null) {
- obj = new OpenLayers.Tile.Image(this.layer,
- this.position,
- this.bounds,
- this.url,
- this.size);
- }
-
+ obj = new OpenLayers.Tile.Image(this.layer,
+ this.position,
+ this.bounds,
+ this.url,
+ this.size);
+ }
+
//pick up properties from superclass
obj = OpenLayers.Tile.prototype.clone.apply(this, [obj]);
-
+
//dont want to directly copy the image div
obj.imgDiv = null;
-
-
+
+
return obj;
},
-
+
/**
* Method: draw
* Check that a tile should be drawn, and draw it.
- *
+ *
* Returns:
* {Boolean} Always returns true.
*/
@@ -17467,7 +17467,7 @@
this.bounds = this.getBoundsFromBaseLayer(this.position);
}
var drawTile = OpenLayers.Tile.prototype.draw.apply(this, arguments);
-
+
if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS, this.layer.transitionEffect) != -1) {
if (drawTile) {
//we use a clone of this tile to create a double buffer for visual
@@ -17481,10 +17481,10 @@
// the backBufferTile behind the main tile so the tiles can
// load over top and display as soon as they are loaded.
this.backBufferTile.isBackBuffer = true;
-
+
// potentially end any transition effects when the tile loads
this.events.register('loadend', this, this.resetBackBuffer);
-
+
// clear transition back buffer tile only after all tiles in
// this layer have loaded to avoid visual glitches
this.layer.events.register("loadend", this, this.resetBackBuffer);
@@ -17502,45 +17502,45 @@
if (drawTile && this.isFirstDraw) {
this.events.register('loadend', this, this.showTile);
this.isFirstDraw = false;
- }
- }
-
+ }
+ }
+
if (!drawTile) {
return false;
}
-
+
if (this.isLoading) {
//if we're already loading, send 'reload' instead of 'loadstart'.
- this.events.triggerEvent("reload");
+ this.events.triggerEvent("reload");
} else {
this.isLoading = true;
this.events.triggerEvent("loadstart");
}
-
+
return this.renderTile();
},
-
- /**
+
+ /**
* Method: resetBackBuffer
* Triggered by two different events, layer loadend, and tile loadend.
- * In any of these cases, we check to see if we can hide the
- * backBufferTile yet and update its parameters to match the
+ * In any of these cases, we check to see if we can hide the
+ * backBufferTile yet and update its parameters to match the
* foreground tile.
*
* Basic logic:
* - If the backBufferTile hasn't been drawn yet, reset it
* - If layer is still loading, show foreground tile but don't hide
* the backBufferTile yet
- * - If layer is done loading, reset backBuffer tile and show
+ * - If layer is done loading, reset backBuffer tile and show
* foreground tile
*/
resetBackBuffer: function() {
this.showTile();
- if (this.backBufferTile &&
+ if (this.backBufferTile &&
(this.isFirstDraw || !this.layer.numLoadingTiles)) {
this.isFirstDraw = false;
// check to see if the backBufferTile is within the max extents
- // before rendering it
+ // before rendering it
var maxExtent = this.layer.maxExtent;
var withinMaxExtent = (maxExtent &&
this.bounds.intersectsBounds(maxExtent, false));
@@ -17557,7 +17557,7 @@
this.backBufferTile.hide();
}
},
-
+
/**
* Method: renderTile
* Internal function to actually initialize the image tile,
@@ -17569,7 +17569,7 @@
}
this.imgDiv.viewRequestID = this.layer.map.viewRequestID;
-
+
if (this.layer.async) {
// Asyncronous image requests call the asynchronous getURL method
// on the layer to fetch an image that covers 'this.bounds', in the scope of
@@ -17579,16 +17579,16 @@
} else {
// syncronous image requests get the url and position the frame immediately,
// and don't wait for an image request to come back.
-
+
// needed for changing to a different server for onload error
if (this.layer.url instanceof Array) {
this.imgDiv.urls = this.layer.url.slice();
}
-
+
this.url = this.layer.getURL(this.bounds);
-
+
// position the frame immediately
- this.positionImage();
+ this.positionImage();
}
return true;
},
@@ -17604,12 +17604,12 @@
// returned, do not attempt to use it for size computation
if ( this.layer == null )
return;
-
- // position the frame
- OpenLayers.Util.modifyDOMElement(this.frame,
- null, this.position, this.size);
- var imageSize = this.layer.getImageSize();
+ // position the frame
+ OpenLayers.Util.modifyDOMElement(this.frame,
+ null, this.position, this.size);
+
+ var imageSize = this.layer.getImageSize();
if (this.layerAlphaHack) {
OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,
null, null, imageSize, this.url);
@@ -17620,17 +17620,17 @@
}
},
- /**
+ /**
* Method: clear
- * Clear the tile of any bounds/position-related data so that it can
+ * Clear the tile of any bounds/position-related data so that it can
* be reused in a new location.
*/
clear: function() {
if(this.imgDiv) {
this.hide();
- if (OpenLayers.Tile.Image.useBlankTile) {
+ if (OpenLayers.Tile.Image.useBlankTile) {
this.imgDiv.src = OpenLayers.Util.getImagesLocation() + "blank.gif";
- }
+ }
}
},
@@ -17639,10 +17639,10 @@
* Creates the imgDiv property on the tile.
*/
initImgDiv: function() {
-
- var offset = this.layer.imageOffset;
- var size = this.layer.getImageSize();
-
+
+ var offset = this.layer.imageOffset;
+ var size = this.layer.getImageSize();
+
if (this.layerAlphaHack) {
this.imgDiv = OpenLayers.Util.createAlphaImageDiv(null,
offset,
@@ -17663,7 +17663,7 @@
null,
true);
}
-
+
this.imgDiv.className = 'olTileImage';
/* checkImgURL used to be used to called as a work around, but it
@@ -17675,43 +17675,43 @@
OpenLayers.Function.bind(this.checkImgURL, this) );
*/
this.frame.style.zIndex = this.isBackBuffer ? 0 : 1;
- this.frame.appendChild(this.imgDiv);
- this.layer.div.appendChild(this.frame);
+ this.frame.appendChild(this.imgDiv);
+ this.layer.div.appendChild(this.frame);
if(this.layer.opacity != null) {
-
+
OpenLayers.Util.modifyDOMElement(this.imgDiv, null, null, null,
- null, null, null,
+ null, null, null,
this.layer.opacity);
}
// we need this reference to check back the viewRequestID
this.imgDiv.map = this.layer.map;
- //bind a listener to the onload of the image div so that we
+ //bind a listener to the onload of the image div so that we
// can register when a tile has finished loading.
var onload = function() {
-
- //normally isLoading should always be true here but there are some
+
+ //normally isLoading should always be true here but there are some
// right funky conditions where loading and then reloading a tile
- // with the same url *really*fast*. this check prevents sending
+ // with the same url *really*fast*. this check prevents sending
// a 'loadend' if the msg has already been sent
//
- if (this.isLoading) {
- this.isLoading = false;
- this.events.triggerEvent("loadend");
+ if (this.isLoading) {
+ this.isLoading = false;
+ this.events.triggerEvent("loadend");
}
};
-
- if (this.layerAlphaHack) {
- OpenLayers.Event.observe(this.imgDiv.childNodes[0], 'load',
- OpenLayers.Function.bind(onload, this));
- } else {
- OpenLayers.Event.observe(this.imgDiv, 'load',
- OpenLayers.Function.bind(onload, this));
- }
-
+ if (this.layerAlphaHack) {
+ OpenLayers.Event.observe(this.imgDiv.childNodes[0], 'load',
+ OpenLayers.Function.bind(onload, this));
+ } else {
+ OpenLayers.Event.observe(this.imgDiv, 'load',
+ OpenLayers.Function.bind(onload, this));
+ }
+
+
// Bind a listener to the onerror of the image div so that we
// can registere when a tile has finished loading with errors.
var onerror = function() {
@@ -17737,18 +17737,18 @@
* the imgDiv display to 'none', as either (a) it will be reset to visible
* when the new URL loads in the image, or (b) we don't want to display
* this tile after all because its new bounds are outside our maxExtent.
- *
+ *
* This function should no longer be neccesary with the improvements to
* Grid.js in OpenLayers 2.3. The lack of a good isEquivilantURL function
- * caused problems in 2.2, but it's possible that with the improved
+ * caused problems in 2.2, but it's possible that with the improved
* isEquivilant URL function, this might be neccesary at some point.
- *
- * See discussion in the thread at
+ *
+ * See discussion in the thread at
* http://openlayers.org/pipermail/dev/2007-January/000205.html
*/
checkImgURL: function () {
// Sometimes our image will load after it has already been removed
- // from the map, in which case this check is not needed.
+ // from the map, in which case this check is not needed.
if (this.layer) {
var loaded = this.layerAlphaHack ? this.imgDiv.firstChild.src : this.imgDiv.src;
if (!OpenLayers.Util.isEquivalentUrl(loaded, this.url)) {
@@ -17756,7 +17756,7 @@
}
}
},
-
+
/**
* Method: startTransition
* This method is invoked on tiles that are backBuffers for tiles in the
@@ -17778,15 +17778,15 @@
if (this.backBufferTile.resolution) {
ratio = this.backBufferTile.resolution / this.layer.getResolution();
}
-
+
// if the ratio is not the same as it was last time (i.e. we are
// zooming), then we need to adjust the backBuffer tile
if (ratio != this.lastRatio) {
if (this.layer.transitionEffect == 'resize') {
- // In this case, we can just immediately resize the
+ // In this case, we can just immediately resize the
// backBufferTile.
var upperLeft = new OpenLayers.LonLat(
- this.backBufferTile.bounds.left,
+ this.backBufferTile.bounds.left,
this.backBufferTile.bounds.top
);
var size = new OpenLayers.Size(
@@ -17795,10 +17795,10 @@
);
var px = this.layer.map.getLayerPxFromLonLat(upperLeft);
- OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,
+ OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,
null, px, size);
var imageSize = this.backBufferTile.imageSize;
- imageSize = new OpenLayers.Size(imageSize.w * ratio,
+ imageSize = new OpenLayers.Size(imageSize.w * ratio,
imageSize.h * ratio);
var imageOffset = this.backBufferTile.imageOffset;
if(imageOffset) {
@@ -17827,8 +17827,8 @@
this.lastRatio = ratio;
},
-
- /**
+
+ /**
* Method: show
* Show the tile by showing its frame.
*/
@@ -17836,29 +17836,29 @@
this.frame.style.display = '';
// Force a reflow on gecko based browsers to actually show the element
// before continuing execution.
- if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,
+ if (OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,
this.layer.transitionEffect) != -1) {
- if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
- this.frame.scrollLeft = this.frame.scrollLeft;
- }
+ if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
+ this.frame.scrollLeft = this.frame.scrollLeft;
+ }
}
},
-
- /**
+
+ /**
* Method: hide
* Hide the tile by hiding its frame.
*/
hide: function() {
this.frame.style.display = 'none';
},
-
+
CLASS_NAME: "OpenLayers.Tile.Image"
}
);
-OpenLayers.Tile.Image.useBlankTile = (
- OpenLayers.Util.getBrowserName() == "safari" ||
- OpenLayers.Util.getBrowserName() == "opera");
+OpenLayers.Tile.Image.useBlankTile = (
+ OpenLayers.Util.getBrowserName() == "safari" ||
+ OpenLayers.Util.getBrowserName() == "opera");
/* ======================================================================
OpenLayers/Control/OverviewMap.js
====================================================================== */
@@ -17867,7 +17867,7 @@
* license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the
* full text of the license. */
-/**
+/**
* @requires OpenLayers/Control.js
* @requires OpenLayers/BaseTypes.js
* @requires OpenLayers/Events.js
@@ -17875,8 +17875,8 @@
/**
* Class: OpenLayers.Control.OverviewMap
- * The OverMap control creates a small overview map, useful to display the
- * extent of a zoomed map and your main map and provide additional
+ * The OverMap control creates a small overview map, useful to display the
+ * extent of a zoomed map and your main map and provide additional
* navigation options to the User. By default the overview map is drawn in
* the lower right corner of the main map. Create a new overview map with the
* <OpenLayers.Control.OverviewMap> constructor.
@@ -17891,7 +17891,7 @@
* {DOMElement} The DOM element that contains the overview map
*/
element: null,
-
+
/**
* APIProperty: ovmap
* {<OpenLayers.Map>} A reference to the overview map itself.
@@ -17913,7 +17913,7 @@
* If none are sent at construction, the base layer for the main map is used.
*/
layers: null,
-
+
/**
* APIProperty: minRectSize
* {Integer} The minimum width or height (in pixels) of the extent
@@ -17922,7 +17922,7 @@
* <minRectDisplayClass> property. Default is 15 pixels.
*/
minRectSize: 15,
-
+
/**
* APIProperty: minRectDisplayClass
* {String} Replacement style class name for the extent rectangle when
@@ -17955,7 +17955,7 @@
* resolution at which to zoom farther in on the overview map.
*/
maxRatio: 32,
-
+
/**
* APIProperty: mapOptions
* {Object} An object containing any non-default properties to be sent to
@@ -17972,7 +17972,7 @@
* to the center.
*/
autoPan: false,
-
+
/**
* Property: handlers
* {Object}
@@ -17999,7 +17999,7 @@
this.handlers = {};
OpenLayers.Control.prototype.initialize.apply(this, [options]);
},
-
+
/**
* APIMethod: destroy
* Deconstruct the control
@@ -18017,7 +18017,7 @@
this.ovmap.destroy();
this.ovmap = null;
-
+
this.element.removeChild(this.mapDiv);
this.mapDiv = null;
@@ -18029,26 +18029,26 @@
this.div.removeChild(this.maximizeDiv);
this.maximizeDiv = null;
}
-
+
if (this.minimizeDiv) {
OpenLayers.Event.stopObservingElement(this.minimizeDiv);
this.div.removeChild(this.minimizeDiv);
this.minimizeDiv = null;
}
-
+
this.map.events.un({
"moveend": this.update,
"changebaselayer": this.baseLayerDraw,
scope: this
});
- OpenLayers.Control.prototype.destroy.apply(this, arguments);
+ OpenLayers.Control.prototype.destroy.apply(this, arguments);
},
/**
* Method: draw
* Render the control in the browser.
- */
+ */
draw: function() {
OpenLayers.Control.prototype.draw.apply(this, arguments);
if(!(this.layers.length > 0)) {
@@ -18072,14 +18072,14 @@
this.mapDiv.style.position = 'relative';
this.mapDiv.style.overflow = 'hidden';
this.mapDiv.id = OpenLayers.Util.createUniqueID('overviewMap');
-
+
this.extentRectangle = document.createElement('div');
this.extentRectangle.style.position = 'absolute';
this.extentRectangle.style.zIndex = 1000; //HACK
this.extentRectangle.className = this.displayClass+'ExtentRectangle';
this.mapDiv.appendChild(this.extentRectangle);
- this.element.appendChild(this.mapDiv);
+ this.element.appendChild(this.mapDiv);
this.div.appendChild(this.element);
@@ -18091,48 +18091,48 @@
// maximize button div
var img = imgLocation + 'layer-switcher-maximize.png';
this.maximizeDiv = OpenLayers.Util.createAlphaImageDiv(
- this.displayClass + 'MaximizeButton',
- null,
- new OpenLayers.Size(18,18),
- img,
+ this.displayClass + 'MaximizeButton',
+ null,
+ new OpenLayers.Size(18,18),
+ img,
'absolute');
this.maximizeDiv.style.display = 'none';
this.maximizeDiv.className = this.displayClass + 'MaximizeButton';
- OpenLayers.Event.observe(this.maximizeDiv, 'click',
+ OpenLayers.Event.observe(this.maximizeDiv, 'click',
OpenLayers.Function.bindAsEventListener(this.maximizeControl,
this)
);
this.div.appendChild(this.maximizeDiv);
-
+
// minimize button div
var img = imgLocation + 'layer-switcher-minimize.png';
this.minimizeDiv = OpenLayers.Util.createAlphaImageDiv(
- 'OpenLayers_Control_minimizeDiv',
- null,
- new OpenLayers.Size(18,18),
- img,
+ 'OpenLayers_Control_minimizeDiv',
+ null,
+ new OpenLayers.Size(18,18),
+ img,
'absolute');
this.minimizeDiv.style.display = 'none';
this.minimizeDiv.className = this.displayClass + 'MinimizeButton';
- OpenLayers.Event.observe(this.minimizeDiv, 'click',
+ OpenLayers.Event.observe(this.minimizeDiv, 'click',
OpenLayers.Function.bindAsEventListener(this.minimizeControl,
this)
);
this.div.appendChild(this.minimizeDiv);
-
+
var eventsToStop = ['dblclick','mousedown'];
-
+
for (var i=0, len=eventsToStop.length; i<len; i++) {
- OpenLayers.Event.observe(this.maximizeDiv,
- eventsToStop[i],
+ OpenLayers.Event.observe(this.maximizeDiv,
+ eventsToStop[i],
OpenLayers.Event.stop);
OpenLayers.Event.observe(this.minimizeDiv,
- eventsToStop[i],
+ eventsToStop[i],
OpenLayers.Event.stop);
}
-
+
this.minimizeControl();
} else {
// show the overview map
@@ -18141,12 +18141,12 @@
if(this.map.getExtent()) {
this.update();
}
-
+
this.map.events.register('moveend', this, this.update);
return this.div;
},
-
+
/**
* Method: baseLayerDraw
* Draw the base layer - called if unable to complete in the initial draw
@@ -18184,7 +18184,7 @@
newTop));
}
},
-
+
/**
* Method: mapDivClick
* Handle browser events
@@ -18222,15 +18222,15 @@
this.element.style.display = '';
this.showToggle(false);
if (e != null) {
- OpenLayers.Event.stop(e);
+ OpenLayers.Event.stop(e);
}
},
/**
* Method: minimizeControl
- * Hide all the contents of the control, shrink the size,
+ * Hide all the contents of the control, shrink the size,
* add the maximize icon
- *
+ *
* Parameters:
* e - {<OpenLayers.Event>}
*/
@@ -18238,7 +18238,7 @@
this.element.style.display = 'none';
this.showToggle(true);
if (e != null) {
- OpenLayers.Event.stop(e);
+ OpenLayers.Event.stop(e);
}
},
@@ -18247,7 +18247,7 @@
* Hide/Show the toggle depending on whether the control is minimized
*
* Parameters:
- * minimize - {Boolean}
+ * minimize - {Boolean}
*/
showToggle: function(minimize) {
this.maximizeDiv.style.display = minimize ? '' : 'none';
@@ -18262,15 +18262,15 @@
if(this.ovmap == null) {
this.createMap();
}
-
+
if(this.autoPan || !this.isSuitableOverview()) {
this.updateOverview();
}
-
+
// update extent rectangle
this.updateRectToMap();
},
-
+
/**
* Method: isSuitableOverview
* Determines if the overview map is suitable given the extent and
@@ -18283,7 +18283,7 @@
Math.max(mapExtent.left, maxExtent.left),
Math.max(mapExtent.bottom, maxExtent.bottom),
Math.min(mapExtent.right, maxExtent.right),
- Math.min(mapExtent.top, maxExtent.top));
+ Math.min(mapExtent.top, maxExtent.top));
if (this.ovmap.getProjection() != this.map.getProjection()) {
testExtent = testExtent.transform(
@@ -18296,7 +18296,7 @@
(resRatio <= this.maxRatio) &&
(this.ovmap.getExtent().containsBounds(testExtent)));
},
-
+
/**
* Method updateOverview
* Called by <update> if <isSuitableOverview> returns true
@@ -18307,7 +18307,7 @@
var resRatio = targetRes / mapRes;
if(resRatio > this.maxRatio) {
// zoom in overview map
- targetRes = this.minRatio * mapRes;
+ targetRes = this.minRatio * mapRes;
} else if(resRatio <= this.minRatio) {
// zoom out overview map
targetRes = this.maxRatio * mapRes;
@@ -18324,7 +18324,7 @@
targetRes * this.resolutionFactor));
this.updateRectToMap();
},
-
+
/**
* Method: createMap
* Construct the map that this control contains
@@ -18332,14 +18332,14 @@
createMap: function() {
// create the overview map
var options = OpenLayers.Util.extend(
- {controls: [], maxResolution: 'auto',
+ {controls: [], maxResolution: 'auto',
fallThrough: false}, this.mapOptions);
this.ovmap = new OpenLayers.Map(this.mapDiv, options);
-
+
// prevent ovmap from being destroyed when the page unloads, because
// the OverviewMap control has to do this (and does it).
OpenLayers.Event.stopObserving(window, 'unload', this.ovmap.unloadDestroy);
-
+
this.ovmap.addLayers(this.layers);
this.ovmap.zoomToMaxExtent();
// check extent rectangle border width
@@ -18369,7 +18369,7 @@
}
);
this.handlers.click.activate();
-
+
this.rectEvents = new OpenLayers.Events(this, this.extentRectangle,
null, true);
this.rectEvents.register("mouseover", this, function(e) {
@@ -18393,7 +18393,7 @@
OpenLayers.INCHES_PER_UNIT[targetUnits] : 1;
}
},
-
+
/**
* Method: updateRectToMap
* Updates the extent rectangle position and size to match the map extent
@@ -18403,7 +18403,7 @@
var bounds;
if (this.ovmap.getProjection() != this.map.getProjection()) {
bounds = this.map.getExtent().transform(
- this.map.getProjectionObject(),
+ this.map.getProjectionObject(),
this.ovmap.getProjectionObject() );
} else {
bounds = this.map.getExtent();
@@ -18413,7 +18413,7 @@
this.setRectPxBounds(pxBounds);
}
},
-
+
/**
* Method: updateMapToRect
* Updates the map extent to match the extent rectangle position and size
@@ -18530,12 +18530,12 @@
var size = this.ovmap.size;
var res = this.ovmap.getResolution();
var center = this.ovmap.getExtent().getCenterLonLat();
-
+
var delta_x = overviewMapPx.x - (size.w / 2);
var delta_y = overviewMapPx.y - (size.h / 2);
-
+
return new OpenLayers.LonLat(center.lon + delta_x * res ,
- center.lat - delta_y * res);
+ center.lat - delta_y * res);
},
/**
@@ -18546,7 +18546,7 @@
* lonlat - {<OpenLayers.LonLat>}
*
* Returns:
- * {<OpenLayers.Pixel>} Location which is the passed-in OpenLayers.LonLat,
+ * {<OpenLayers.Pixel>} Location which is the passed-in OpenLayers.LonLat,
* translated into overview map pixels
*/
getOverviewPxFromLonLat: function(lonlat) {
@@ -18557,7 +18557,7 @@
px = new OpenLayers.Pixel(
Math.round(1/res * (lonlat.lon - extent.left)),
Math.round(1/res * (extent.top - lonlat.lat)));
- }
+ }
return px;
},
@@ -18585,33 +18585,33 @@
*/
OpenLayers.Feature = OpenLayers.Class({
- /**
- * Property: layer
- * {<OpenLayers.Layer>}
+ /**
+ * Property: layer
+ * {<OpenLayers.Layer>}
*/
layer: null,
- /**
- * Property: id
- * {String}
+ /**
+ * Property: id
+ * {String}
*/
id: null,
-
- /**
- * Property: lonlat
- * {<OpenLayers.LonLat>}
+
+ /**
+ * Property: lonlat
+ * {<OpenLayers.LonLat>}
*/
lonlat: null,
- /**
- * Property: data
- * {Object}
+ /**
+ * Property: data
+ * {Object}
*/
data: null,
- /**
- * Property: marker
- * {<OpenLayers.Marker>}
+ /**
+ * Property: marker
+ * {<OpenLayers.Marker>}
*/
marker: null,
@@ -18622,21 +18622,21 @@
*/
popupClass: OpenLayers.Popup.AnchoredBubble,
- /**
- * Property: popup
- * {<OpenLayers.Popup>}
+ /**
+ * Property: popup
+ * {<OpenLayers.Popup>}
*/
popup: null,
- /**
+ /**
* Constructor: OpenLayers.Feature
* Constructor for features.
*
* Parameters:
- * layer - {<OpenLayers.Layer>}
- * lonlat - {<OpenLayers.LonLat>}
- * data - {Object}
- *
+ * layer - {<OpenLayers.Layer>}
+ * lonlat - {<OpenLayers.LonLat>}
+ * data - {Object}
+ *
* Returns:
* {<OpenLayers.Feature>}
*/
@@ -18644,10 +18644,10 @@
this.layer = layer;
this.lonlat = lonlat;
this.data = (data != null) ? data : {};
- this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
+ this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
- /**
+ /**
* Method: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -18673,36 +18673,36 @@
this.popup = null;
}
},
-
+
/**
* Method: onScreen
- *
+ *
* Returns:
* {Boolean} Whether or not the feature is currently visible on screen
* (based on its 'lonlat' property)
*/
onScreen:function() {
-
+
var onScreen = false;
if ((this.layer != null) && (this.layer.map != null)) {
var screenBounds = this.layer.map.getExtent();
onScreen = screenBounds.containsLonLat(this.lonlat);
- }
+ }
return onScreen;
},
-
+
/**
* Method: createMarker
* Based on the data associated with the Feature, create and return a marker object.
*
- * Returns:
+ * Returns:
* {<OpenLayers.Marker>} A Marker Object created from the 'lonlat' and 'icon' properties
* set in this.data. If no 'lonlat' is set, returns null. If no
* 'icon' is set, OpenLayers.Marker() will load the default image.
- *
+ *
* Note - this.marker is set to return value
- *
+ *
*/
createMarker: function() {
@@ -18719,64 +18719,64 @@
* to also specify an alternative function for destroying it
*/
destroyMarker: function() {
- this.marker.destroy();
+ this.marker.destroy();
},
/**
* Method: createPopup
* Creates a popup object created from the 'lonlat', 'popupSize',
* and 'popupContentHTML' properties set in this.data. It uses
- * this.marker.icon as default anchor.
- *
- * If no 'lonlat' is set, returns null.
+ * this.marker.icon as default anchor.
+ *
+ * If no 'lonlat' is set, returns null.
* If no this.marker has been created, no anchor is sent.
*
* Note - the returned popup object is 'owned' by the feature, so you
* cannot use the popup's destroy method to discard the popup.
* Instead, you must use the feature's destroyPopup
- *
+ *
* Note - this.popup is set to return value
- *
- * Parameters:
+ *
+ * Parameters:
* closeBox - {Boolean} create popup with closebox or not
- *
+ *
* Returns:
* {<OpenLayers.Popup>} Returns the created popup, which is also set
* as 'popup' property of this feature. Will be of whatever type
* specified by this feature's 'popupClass' property, but must be
* of type <OpenLayers.Popup>.
- *
+ *
*/
createPopup: function(closeBox) {
if (this.lonlat != null) {
-
+
var id = this.id + "_popup";
var anchor = (this.marker) ? this.marker.icon : null;
if (!this.popup) {
- this.popup = new this.popupClass(id,
+ this.popup = new this.popupClass(id,
this.lonlat,
this.data.popupSize,
this.data.popupContentHTML,
- anchor,
- closeBox);
- }
+ anchor,
+ closeBox);
+ }
if (this.data.overflow != null) {
this.popup.contentDiv.style.overflow = this.data.overflow;
- }
-
+ }
+
this.popup.feature = this;
- }
+ }
return this.popup;
},
-
+
/**
* Method: destroyPopup
* Destroys the popup created via createPopup.
*
- * As with the marker, if user overrides the createPopup() function, s/he
+ * As with the marker, if user overrides the createPopup() function, s/he
* should also be able to override the destruction
*/
destroyPopup: function() {
@@ -18784,7 +18784,7 @@
this.popup.feature = null;
this.popup.destroy();
this.popup = null;
- }
+ }
},
CLASS_NAME: "OpenLayers.Feature"
@@ -18794,7 +18794,7 @@
====================================================================== */
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the clear BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt
* for the full text of the license. */
/**
@@ -18811,9 +18811,9 @@
* click. By setting a <pixelTolerance>, controls can also ignore clicks
* that include a drag. Create a new instance with the
* <OpenLayers.Handler.Click> constructor.
- *
+ *
* Inherits from:
- * - <OpenLayers.Handler>
+ * - <OpenLayers.Handler>
*/
OpenLayers.Handler.Click = OpenLayers.Class(OpenLayers.Handler, {
@@ -18823,20 +18823,20 @@
* considered a double-click.
*/
delay: 300,
-
+
/**
* APIProperty: single
* {Boolean} Handle single clicks. Default is true. If false, clicks
* will not be reported. If true, single-clicks will be reported.
*/
single: true,
-
+
/**
* APIProperty: double
* {Boolean} Handle double-clicks. Default is false.
*/
'double': false,
-
+
/**
* APIProperty: pixelTolerance
* {Number} Maximum number of pixels between mouseup and mousedown for an
@@ -18846,7 +18846,7 @@
* constructed.
*/
pixelTolerance: 0,
-
+
/**
* APIProperty: stopSingle
* {Boolean} Stop other listeners from being notified of clicks. Default
@@ -18855,13 +18855,13 @@
* or single clicks).
*/
stopSingle: false,
-
+
/**
* APIProperty: stopDouble
* {Boolean} Stop other listeners from being notified of double-clicks.
* Default is false. If true, any click listeners registered before
* this one will not be notified of *any* double-click events.
- *
+ *
* The one caveat with stopDouble is that given a map with two click
* handlers, one with stopDouble true and the other with stopSingle
* true, the stopSingle handler should be activated last to get
@@ -18877,24 +18877,24 @@
* {Number} The id of the timeout waiting to clear the <delayedCall>.
*/
timerId: null,
-
+
/**
* Property: down
* {<OpenLayers.Pixel>} The pixel location of the last mousedown.
*/
down: null,
-
+
/**
* Property: rightclickTimerId
- * {Number} The id of the right mouse timeout waiting to clear the
+ * {Number} The id of the right mouse timeout waiting to clear the
* <delayedEvent>.
*/
rightclickTimerId: null,
-
+
/**
* Constructor: OpenLayers.Handler.Click
* Create a new click handler.
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>} The control that is making use of
* this handler. If a handler is being used without a control, the
@@ -18917,7 +18917,7 @@
};
}
},
-
+
/**
* Method: mousedown
* Handle mousedown. Only registered as a listener if pixelTolerance is
@@ -18931,7 +18931,7 @@
/**
* Method: mouseup
* Handle mouseup. Installed to support collection of right mouse events.
- *
+ *
* Returns:
* {Boolean} Continue propagating this event.
*/
@@ -18941,55 +18941,55 @@
// Collect right mouse clicks from the mouseup
// IE - ignores the second right click in mousedown so using
// mouseup instead
- if (this.checkModifiers(evt) &&
- this.control.handleRightClicks &&
+ if (this.checkModifiers(evt) &&
+ this.control.handleRightClicks &&
OpenLayers.Event.isRightClick(evt)) {
propagate = this.rightclick(evt);
}
return propagate;
},
-
+
/**
* Method: rightclick
- * Handle rightclick. For a dblrightclick, we get two clicks so we need
- * to always register for dblrightclick to properly handle single
+ * Handle rightclick. For a dblrightclick, we get two clicks so we need
+ * to always register for dblrightclick to properly handle single
* clicks.
- *
+ *
* Returns:
* {Boolean} Continue propagating this event.
*/
rightclick: function(evt) {
if(this.passesTolerance(evt)) {
if(this.rightclickTimerId != null) {
- //Second click received before timeout this must be
+ //Second click received before timeout this must be
// a double click
- this.clearTimer();
+ this.clearTimer();
this.callback('dblrightclick', [evt]);
return !this.stopDouble;
- } else {
- //Set the rightclickTimerId, send evt only if double is
+ } else {
+ //Set the rightclickTimerId, send evt only if double is
// true else trigger single
var clickEvent = this['double'] ?
- OpenLayers.Util.extend({}, evt) :
+ OpenLayers.Util.extend({}, evt) :
this.callback('rightclick', [evt]);
var delayedRightCall = OpenLayers.Function.bind(
- this.delayedRightCall,
- this,
+ this.delayedRightCall,
+ this,
clickEvent
);
this.rightclickTimerId = window.setTimeout(
delayedRightCall, this.delay
);
- }
+ }
}
return !this.stopSingle;
},
-
+
/**
* Method: delayedRightCall
- * Sets <rightclickTimerId> to null. And optionally triggers the
+ * Sets <rightclickTimerId> to null. And optionally triggers the
* rightclick callback if evt is set.
*/
delayedRightCall: function(evt) {
@@ -18999,13 +18999,13 @@
}
return !this.stopSingle;
},
-
+
/**
* Method: dblclick
* Handle dblclick. For a dblclick, we get two clicks in some browsers
* (FF) and one in others (IE). So we need to always register for
* dblclick to properly handle single clicks.
- *
+ *
* Returns:
* {Boolean} Continue propagating this event.
*/
@@ -19018,7 +19018,7 @@
}
return !this.stopDouble;
},
-
+
/**
* Method: click
* Handle click.
@@ -19033,7 +19033,7 @@
this.clearTimer();
} else {
// set the timer, send evt only if single is true
- //use a clone of the event object because it will no longer
+ //use a clone of the event object because it will no longer
//be a valid event object in IE in the timer callback
var clickEvent = this.single ?
OpenLayers.Util.extend({}, evt) : null;
@@ -19045,7 +19045,7 @@
}
return !this.stopSingle;
},
-
+
/**
* Method: passesTolerance
* Determine whether the event is within the optional pixel tolerance. Note
@@ -19085,7 +19085,7 @@
this.rightclickTimerId = null;
}
},
-
+
/**
* Method: delayedCall
* Sets <timerId> to null. And optionally triggers the click callback if
@@ -19151,14 +19151,14 @@
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
-
- /**
+
+ /**
* Property: started
* {Boolean} When a mousedown event is received, we want to record it, but
- * not set 'dragging' until the mouse moves after starting.
+ * not set 'dragging' until the mouse moves after starting.
*/
started: false,
-
+
/**
* Property: stopDown
* {Boolean} Stop propagation of mousedown events from getting to listeners
@@ -19166,19 +19166,19 @@
*/
stopDown: true,
- /**
- * Property: dragging
- * {Boolean}
+ /**
+ * Property: dragging
+ * {Boolean}
*/
dragging: false,
- /**
+ /**
* Property: last
* {<OpenLayers.Pixel>} The last pixel location of the drag.
*/
last: null,
- /**
+ /**
* Property: start
* {<OpenLayers.Pixel>} The first pixel location of the drag.
*/
@@ -19189,17 +19189,17 @@
* {Function}
*/
oldOnselectstart: null,
-
+
/**
* Property: interval
- * {Integer} In order to increase performance, an interval (in
- * milliseconds) can be set to reduce the number of drag events
- * called. If set, a new drag event will not be set until the
- * interval has passed.
- * Defaults to 0, meaning no interval.
+ * {Integer} In order to increase performance, an interval (in
+ * milliseconds) can be set to reduce the number of drag events
+ * called. If set, a new drag event will not be set until the
+ * interval has passed.
+ * Defaults to 0, meaning no interval.
*/
interval: 0,
-
+
/**
* Property: timeoutId
* {String} The id of the timeout used for the mousedown interval.
@@ -19210,7 +19210,7 @@
/**
* Constructor: OpenLayers.Handler.Drag
* Returns OpenLayers.Handler.Drag
- *
+ *
* Parameters:
* control - {<OpenLayers.Control>} The control that is making use of
* this handler. If a handler is being used without a control, the
@@ -19221,17 +19221,17 @@
* expect to recieve a single argument, the pixel location of the event.
* Callbacks for 'move' and 'done' are supported. You can also speficy
* callbacks for 'down', 'up', and 'out' to respond to those events.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
},
-
+
/**
* The four methods below (down, move, up, and out) are used by subclasses
* to do their own processing related to these mouse events.
*/
-
+
/**
* Method: down
* This method is called during the handling of the mouse down event.
@@ -19242,7 +19242,7 @@
*/
down: function(evt) {
},
-
+
/**
* Method: move
* This method is called during the handling of the mouse move event.
@@ -19288,7 +19288,7 @@
* Handle mousedown events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19306,12 +19306,12 @@
this.down(evt);
this.callback("down", [evt.xy]);
OpenLayers.Event.stop(evt);
-
+
if(!this.oldOnselectstart) {
this.oldOnselectstart = (document.onselectstart) ? document.onselectstart : function() { return true; };
document.onselectstart = function() {return false;};
}
-
+
propagate = !this.stopDown;
} else {
this.started = false;
@@ -19326,7 +19326,7 @@
* Handle mousemove events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19347,7 +19347,7 @@
}
return true;
},
-
+
/**
* Method: removeTimeout
* Private. Called by mousemove() to remove the drag timeout.
@@ -19361,7 +19361,7 @@
* Handle mouseup events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19389,7 +19389,7 @@
* Handle mouseout events
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean} Let the event propagate.
@@ -19397,7 +19397,7 @@
mouseout: function (evt) {
if (this.started && OpenLayers.Util.mouseLeft(evt, this.map.div)) {
var dragged = (this.start != this.last);
- this.started = false;
+ this.started = false;
this.dragging = false;
OpenLayers.Element.removeClass(
this.map.viewPortDiv, "olDragDown"
@@ -19417,12 +19417,12 @@
/**
* Method: click
* The drag handler captures the click event. If something else registers
- * for clicks on the same element, its listener will not be called
+ * for clicks on the same element, its listener will not be called
* after a drag.
- *
- * Parameters:
- * evt - {Event}
- *
+ *
+ * Parameters:
+ * evt - {Event}
+ *
* Returns:
* {Boolean} Let the event propagate.
*/
@@ -19434,7 +19434,7 @@
/**
* Method: activate
* Activate the handler.
- *
+ *
* Returns:
* {Boolean} The handler was successfully activated.
*/
@@ -19448,9 +19448,9 @@
},
/**
- * Method: deactivate
+ * Method: deactivate
* Deactivate the handler.
- *
+ *
* Returns:
* {Boolean} The handler was successfully deactivated.
*/
@@ -19485,7 +19485,7 @@
*/
/**
- * Class: OpenLayers.Handler.Feature
+ * Class: OpenLayers.Handler.Feature
* Handler to respond to mouse events related to a drawn feature. Callbacks
* with the following keys will be notified of the following events
* associated with features: click, clickout, over, out, and dblclick.
@@ -19531,7 +19531,7 @@
* {<OpenLayers.Pixel>} The location of the last mouseup.
*/
up: null,
-
+
/**
* Property: clickTolerance
* {Number} The number of pixels the mouse can move between mousedown
@@ -19545,7 +19545,7 @@
* Property: geometryTypes
* To restrict dragging to a limited set of geometry types, send a list
* of strings corresponding to the geometry class names.
- *
+ *
* @type Array(String)
*/
geometryTypes: null,
@@ -19576,17 +19576,17 @@
* value of stopUp. Defaults to false.
*/
stopUp: false,
-
+
/**
* Constructor: OpenLayers.Handler.Feature
*
* Parameters:
- * control - {<OpenLayers.Control>}
+ * control - {<OpenLayers.Control>}
* layer - {<OpenLayers.Layer.Vector>}
* callbacks - {Object} An object with a 'over' property whos value is
- * a function to be called when the mouse is over a feature. The
+ * a function to be called when the mouse is over a feature. The
* callback should expect to recieve a single argument, the feature.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, layer, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, [control, callbacks, options]);
@@ -19598,22 +19598,22 @@
* Method: mousedown
* Handle mouse down. Stop propagation if a feature is targeted by this
* event (stops map dragging during feature selection).
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
mousedown: function(evt) {
this.down = evt.xy;
return this.handle(evt) ? !this.stopDown : true;
},
-
+
/**
* Method: mouseup
* Handle mouse up. Stop propagation if a feature is targeted by this
* event.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
mouseup: function(evt) {
this.up = evt.xy;
@@ -19624,9 +19624,9 @@
* Method: click
* Handle click. Call the "click" callback if click on a feature,
* or the "clickout" callback if click outside any feature.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -19634,14 +19634,14 @@
click: function(evt) {
return this.handle(evt) ? !this.stopClick : true;
},
-
+
/**
* Method: mousemove
* Handle mouse moves. Call the "over" callback if moving in to a feature,
* or the "out" callback if moving out of a feature.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -19649,17 +19649,17 @@
mousemove: function(evt) {
if (!this.callbacks['over'] && !this.callbacks['out']) {
return true;
- }
+ }
this.handle(evt);
return true;
},
-
+
/**
* Method: dblclick
* Handle dblclick. Call the "dblclick" callback if dblclick on a feature.
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {Boolean}
@@ -19748,7 +19748,7 @@
}
return handled;
},
-
+
/**
* Method: triggerCallback
* Call the callback keyed in the event map with the supplied arguments.
@@ -19776,7 +19776,7 @@
},
/**
- * Method: activate
+ * Method: activate
* Turn on the handler. Returns false if the handler was already active.
*
* Returns:
@@ -19795,12 +19795,12 @@
}
return activated;
},
-
+
/**
- * Method: deactivate
+ * Method: deactivate
* Turn off the handler. Returns false if the handler was already active.
*
- * Returns:
+ * Returns:
* {Boolean}
*/
deactivate: function() {
@@ -19820,10 +19820,10 @@
}
return deactivated;
},
-
+
/**
* Method handleMapEvents
- *
+ *
* Parameters:
* evt - {Object}
*/
@@ -19832,7 +19832,7 @@
this.moveLayerToTop();
}
},
-
+
/**
* Method: moveLayerToTop
* Moves the layer for this handler to the top, so mouse events can reach
@@ -19842,9 +19842,9 @@
var index = Math.max(this.map.Z_INDEX_BASE['Feature'] - 1,
this.layer.getZIndex()) + 1;
this.layer.setZIndex(index);
-
+
},
-
+
/**
* Method: moveLayerBack
* Moves the layer back to the position determined by the map's layers
@@ -19867,7 +19867,7 @@
====================================================================== */
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the clear BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/license.txt
* for the full text of the license. */
/**
@@ -19880,9 +19880,9 @@
* on the map that aren't DOM elements. For example one can use
* this handler to send WMS/GetFeatureInfo requests as the user
* moves the mouve over the map.
- *
+ *
* Inherits from:
- * - <OpenLayers.Handler>
+ * - <OpenLayers.Handler>
*/
OpenLayers.Handler.Hover = OpenLayers.Class(OpenLayers.Handler, {
@@ -19892,7 +19892,7 @@
* the event is considered a hover. Default is 500.
*/
delay: 500,
-
+
/**
* APIProperty: pixelTolerance
* {Integer} - Maximum number of pixels between mousemoves for
@@ -19919,7 +19919,7 @@
* {Number} - The id of the timer.
*/
timerId: null,
-
+
/**
* Constructor: OpenLayers.Handler.Hover
* Construct a hover handler.
@@ -20063,18 +20063,18 @@
/**
* Class: OpenLayers.Handler.MouseWheel
* Handler for wheel up/down events.
- *
+ *
* Inherits from:
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.MouseWheel = OpenLayers.Class(OpenLayers.Handler, {
- /**
- * Property: wheelListener
- * {function}
+ /**
+ * Property: wheelListener
+ * {function}
*/
wheelListener: null,
- /**
+ /**
* Property: mousePosition
* {<OpenLayers.Pixel>} mousePosition is necessary because
* evt.clientX/Y is buggy in Moz on wheel events, so we cache and use the
@@ -20086,12 +20086,12 @@
* Constructor: OpenLayers.Handler.MouseWheel
*
* Parameters:
- * control - {<OpenLayers.Control>}
+ * control - {<OpenLayers.Control>}
* callbacks - {Object} An object containing a single function to be
* called when the drag operation is finished.
* The callback should expect to recieve a single
* argument, the point geometry.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
@@ -20102,7 +20102,7 @@
/**
* Method: destroy
- */
+ */
destroy: function() {
OpenLayers.Handler.prototype.destroy.apply(this, arguments);
this.wheelListener = null;
@@ -20112,22 +20112,22 @@
* Mouse ScrollWheel code thanks to http://adomas.org/javascript-mouse-wheel/
*/
- /**
+ /**
* Method: onWheelEvent
* Catch the wheel event and handle it xbrowserly
- *
+ *
* Parameters:
- * e - {Event}
+ * e - {Event}
*/
onWheelEvent: function(e){
-
+
// make sure we have a map and check keyboard modifiers
if (!this.map || !this.checkModifiers(e)) {
return;
}
-
- // Ride up the element's DOM hierarchy to determine if it or any of
- // its ancestors was:
+
+ // Ride up the element's DOM hierarchy to determine if it or any of
+ // its ancestors was:
// * specifically marked as scrollable
// * one of our layer divs
// * the map div
@@ -20135,7 +20135,7 @@
var overScrollableDiv = false;
var overLayerDiv = false;
var overMapDiv = false;
-
+
var elem = OpenLayers.Event.element(e);
while((elem != null) && !overMapDiv && !overScrollableDiv) {
@@ -20144,14 +20144,14 @@
if (elem.currentStyle) {
overflow = elem.currentStyle["overflow"];
} else {
- var style =
+ var style =
document.defaultView.getComputedStyle(elem, null);
var overflow = style.getPropertyValue("overflow");
}
- overScrollableDiv = ( overflow &&
+ overScrollableDiv = ( overflow &&
(overflow == "auto") || (overflow == "scroll") );
} catch(err) {
- //sometimes when scrolling in a popup, this causes
+ //sometimes when scrolling in a popup, this causes
// obscure browser error
}
}
@@ -20159,10 +20159,10 @@
if (!overLayerDiv) {
for(var i=0, len=this.map.layers.length; i<len; i++) {
// Are we in the layer div? Note that we have two cases
- // here: one is to catch EventPane layers, which have a
+ // here: one is to catch EventPane layers, which have a
// pane above the layer (layer.pane)
- if (elem == this.map.layers[i].div
- || elem == this.map.layers[i].pane) {
+ if (elem == this.map.layers[i].div
+ || elem == this.map.layers[i].pane) {
overLayerDiv = true;
break;
}
@@ -20172,22 +20172,22 @@
elem = elem.parentNode;
}
-
+
// Logic below is the following:
//
// If we are over a scrollable div or not over the map div:
// * do nothing (let the browser handle scrolling)
//
- // otherwise
- //
- // If we are over the layer div:
+ // otherwise
+ //
+ // If we are over the layer div:
// * zoom/in out
// then
// * kill event (so as not to also scroll the page after zooming)
//
// otherwise
//
- // Kill the event (dont scroll the page if we wheel over the
+ // Kill the event (dont scroll the page if we wheel over the
// layerswitcher or the pan/zoom control)
//
if (!overScrollableDiv && overMapDiv) {
@@ -20202,18 +20202,18 @@
* Method: wheelZoom
* Given the wheel event, we carry out the appropriate zooming in or out,
* based on the 'wheelDelta' or 'detail' property of the event.
- *
+ *
* Parameters:
* e - {Event}
*/
wheelZoom: function(e) {
-
+
var delta = 0;
if (!e) {
e = window.event;
}
if (e.wheelDelta) {
- delta = e.wheelDelta/120;
+ delta = e.wheelDelta/120;
if (window.opera && window.opera.version() < 9.2) {
delta = -delta;
}
@@ -20221,18 +20221,18 @@
delta = -e.detail / 3;
}
if (delta) {
- // add the mouse position to the event because mozilla has
- // a bug with clientX and clientY (see
+ // add the mouse position to the event because mozilla has
+ // a bug with clientX and clientY (see
// https://bugzilla.mozilla.org/show_bug.cgi?id=352179)
// getLonLatFromViewPortPx(e) returns wrong values
if (this.mousePosition) {
e.xy = this.mousePosition;
- }
+ }
if (!e.xy) {
// If the mouse hasn't moved over the map yet, then
// we don't have a mouse position (in FF), so we just
// act as if the mouse was at the center of the map.
- // Note that we can tell we are in the map -- and
+ // Note that we can tell we are in the map -- and
// this.map is ensured to be true above.
e.xy = this.map.getPixelFromLonLat(
this.map.getCenter()
@@ -20245,15 +20245,15 @@
}
}
},
-
+
/**
* Method: mousemove
* Update the stored mousePosition on every move.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousemove: function (evt) {
@@ -20261,7 +20261,7 @@
},
/**
- * Method: activate
+ * Method: activate
*/
activate: function (evt) {
if (OpenLayers.Handler.prototype.activate.apply(this, arguments)) {
@@ -20277,7 +20277,7 @@
},
/**
- * Method: deactivate
+ * Method: deactivate
*/
deactivate: function (evt) {
if (OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
@@ -20319,13 +20319,13 @@
*/
id: null,
- /**
+ /**
* APIProperty: name
* {String}
*/
name: null,
- /**
+ /**
* APIProperty: div
* {DOMElement}
*/
@@ -20339,20 +20339,20 @@
/**
* APIProperty: alwaysInRange
- * {Boolean} If a layer's display should not be scale-based, this should
- * be set to true. This will cause the layer, as an overlay, to always
- * be 'active', by always returning true from the calculateInRange()
- * function.
- *
- * If not explicitly specified for a layer, its value will be
- * determined on startup in initResolutions() based on whether or not
- * any scale-specific properties have been set as options on the
- * layer. If no scale-specific options have been set on the layer, we
+ * {Boolean} If a layer's display should not be scale-based, this should
+ * be set to true. This will cause the layer, as an overlay, to always
+ * be 'active', by always returning true from the calculateInRange()
+ * function.
+ *
+ * If not explicitly specified for a layer, its value will be
+ * determined on startup in initResolutions() based on whether or not
+ * any scale-specific properties have been set as options on the
+ * layer. If no scale-specific options have been set on the layer, we
* assume that it should always be in range.
- *
+ *
* See #987 for more info.
*/
- alwaysInRange: null,
+ alwaysInRange: null,
/**
* Constant: EVENT_TYPES
@@ -20382,7 +20382,7 @@
*/
EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
"move", "moveend"],
-
+
/**
* APIProperty: events
* {<OpenLayers.Events>}
@@ -20391,25 +20391,25 @@
/**
* APIProperty: map
- * {<OpenLayers.Map>} This variable is set when the layer is added to
+ * {<OpenLayers.Map>} This variable is set when the layer is added to
* the map, via the accessor function setMap().
*/
map: null,
-
+
/**
* APIProperty: isBaseLayer
- * {Boolean} Whether or not the layer is a base layer. This should be set
+ * {Boolean} Whether or not the layer is a base layer. This should be set
* individually by all subclasses. Default is false
*/
isBaseLayer: false,
-
+
/**
* Property: alpha
- * {Boolean} The layer's images have an alpha channel. Default is false.
+ * {Boolean} The layer's images have an alpha channel. Default is false.
*/
alpha: false,
- /**
+ /**
* APIProperty: displayInLayerSwitcher
* {Boolean} Display the layer's name in the layer switcher. Default is
* true.
@@ -20424,36 +20424,36 @@
/**
* APIProperty: attribution
- * {String} Attribution string, displayed when an
+ * {String} Attribution string, displayed when an
* <OpenLayers.Control.Attribution> has been added to the map.
*/
- attribution: null,
+ attribution: null,
- /**
+ /**
* Property: inRange
- * {Boolean} The current map resolution is within the layer's min/max
- * range. This is set in <OpenLayers.Map.setCenter> whenever the zoom
+ * {Boolean} The current map resolution is within the layer's min/max
+ * range. This is set in <OpenLayers.Map.setCenter> whenever the zoom
* changes.
*/
inRange: false,
-
+
/**
* Propery: imageSize
- * {<OpenLayers.Size>} For layers with a gutter, the image is larger than
+ * {<OpenLayers.Size>} For layers with a gutter, the image is larger than
* the tile by twice the gutter in each dimension.
*/
imageSize: null,
-
+
/**
* Property: imageOffset
- * {<OpenLayers.Pixel>} For layers with a gutter, the image offset
+ * {<OpenLayers.Pixel>} For layers with a gutter, the image offset
* represents displacement due to the gutter.
*/
imageOffset: null,
// OPTIONS
- /**
+ /**
* Property: options
* {Object} An optional object whose properties will be set on the layer.
* Any of the layer properties can be set as a property of the options
@@ -20479,8 +20479,8 @@
* at tile edges to be ignored. Set a gutter value that is equal to
* half the size of the widest symbol that needs to be displayed.
* Defaults to zero. Non-tiled layers always have zero gutter.
- */
- gutter: 0,
+ */
+ gutter: 0,
/**
* APIProperty: projection
@@ -20488,10 +20488,10 @@
* override the default projection string this layer - also set maxExtent,
* maxResolution, and units if appropriate. Can be either a string or
* an <OpenLayers.Projection> object when created -- will be converted
- * to an object when setMap is called if a string is passed.
+ * to an object when setMap is called if a string is passed.
*/
- projection: null,
-
+ projection: null,
+
/**
* APIProperty: units
* {String} The layer map units. Defaults to 'degrees'. Possible values
@@ -20518,7 +20518,7 @@
* maxResolution, maxScale, etc.).
*/
resolutions: null,
-
+
/**
* APIProperty: maxExtent
* {<OpenLayers.Bounds>} The center of these bounds will not stray outside
@@ -20527,18 +20527,18 @@
* requested that falls completely outside of these bounds.
*/
maxExtent: null,
-
+
/**
* APIProperty: minExtent
* {<OpenLayers.Bounds>}
*/
minExtent: null,
-
+
/**
* APIProperty: maxResolution
* {Float} Default max is 360 deg / 256 px, which corresponds to
- * zoom level 0 on gmaps. Specify a different value in the layer
- * options if you are not using a geographic projection and
+ * zoom level 0 on gmaps. Specify a different value in the layer
+ * options if you are not using a geographic projection and
* displaying the whole world.
*/
maxResolution: null,
@@ -20554,13 +20554,13 @@
* {Integer}
*/
numZoomLevels: null,
-
+
/**
* APIProperty: minScale
* {Float}
*/
minScale: null,
-
+
/**
* APIProperty: maxScale
* {Float}
@@ -20569,21 +20569,21 @@
/**
* APIProperty: displayOutsideMaxExtent
- * {Boolean} Request map tiles that are completely outside of the max
+ * {Boolean} Request map tiles that are completely outside of the max
* extent for this layer. Defaults to false.
*/
displayOutsideMaxExtent: false,
/**
* APIProperty: wrapDateLine
- * {Boolean} #487 for more info.
+ * {Boolean} #487 for more info.
*/
wrapDateLine: false,
-
+
/**
* APIProperty: transitionEffect
* {String} The transition effect to use when the map is panned or
- * zoomed.
+ * zoomed.
*
* There are currently two supported values:
* - *null* No transition effect (the default).
@@ -20593,14 +20593,14 @@
* resized tiles.
*/
transitionEffect: null,
-
+
/**
* Property: SUPPORTED_TRANSITIONS
- * {Array} An immutable (that means don't change it!) list of supported
+ * {Array} An immutable (that means don't change it!) list of supported
* transitionEffect values.
*/
SUPPORTED_TRANSITIONS: ['resize'],
-
+
/**
* Constructor: OpenLayers.Layer
*
@@ -20613,7 +20613,7 @@
this.addOptions(options);
this.name = name;
-
+
if (this.id == null) {
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
@@ -20623,7 +20623,7 @@
this.div.style.height = "100%";
this.div.dir = "ltr";
- this.events = new OpenLayers.Events(this, this.div,
+ this.events = new OpenLayers.Events(this, this.div,
this.EVENT_TYPES);
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
@@ -20635,7 +20635,7 @@
this.displayOutsideMaxExtent = true;
}
},
-
+
/**
* Method: destroy
* Destroy is a destructor: this is to alleviate cyclic references which
@@ -20667,7 +20667,7 @@
this.eventListeners = null;
this.events = null;
},
-
+
/**
* Method: clone
*
@@ -20678,22 +20678,22 @@
* {<OpenLayers.Layer>} An exact clone of this <OpenLayers.Layer>
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer(this.name, this.options);
- }
-
+ }
+
// catch any randomly tagged-on properties
OpenLayers.Util.applyDefaults(obj, this);
-
+
// a cloned layer should never have its map property set
- // because it has not been added to a map yet.
+ // because it has not been added to a map yet.
obj.map = null;
-
+
return obj;
},
-
- /**
+
+ /**
* APIMethod: setName
* Sets the new layer name for this layer. Can trigger a changelayer event
* on the map.
@@ -20711,33 +20711,33 @@
});
}
}
- },
-
+ },
+
/**
* APIMethod: addOptions
- *
+ *
* Parameters:
* newOptions - {Object}
*/
addOptions: function (newOptions) {
-
+
if (this.options == null) {
this.options = {};
}
-
+
// update our copy for clone
OpenLayers.Util.extend(this.options, newOptions);
// add new options to this
OpenLayers.Util.extend(this, newOptions);
},
-
+
/**
* APIMethod: onMapResize
* This function can be implemented by subclasses
*/
onMapResize: function() {
- //this function can be implemented by subclasses
+ //this function can be implemented by subclasses
},
/**
@@ -20770,7 +20770,7 @@
/**
* Method: moveTo
- *
+ *
* Parameters:
* bound - {<OpenLayers.Bounds>}
* zoomChanged - {Boolean} Tells when zoom has changed, as layers have to
@@ -20788,47 +20788,47 @@
/**
* Method: setMap
* Set the map property for the layer. This is done through an accessor
- * so that subclasses can override this and take special action once
- * they have their map variable set.
- *
- * Here we take care to bring over any of the necessary default
- * properties from the map.
- *
+ * so that subclasses can override this and take special action once
+ * they have their map variable set.
+ *
+ * Here we take care to bring over any of the necessary default
+ * properties from the map.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
setMap: function(map) {
if (this.map == null) {
-
+
this.map = map;
-
+
// grab some essential layer data from the map if it hasn't already
// been set
this.maxExtent = this.maxExtent || this.map.maxExtent;
this.projection = this.projection || this.map.projection;
-
+
if (this.projection && typeof this.projection == "string") {
this.projection = new OpenLayers.Projection(this.projection);
}
-
+
// Check the projection to see if we can get units -- if not, refer
// to properties.
this.units = this.projection.getUnits() ||
this.units || this.map.units;
-
+
this.initResolutions();
-
+
if (!this.isBaseLayer) {
this.inRange = this.calculateInRange();
var show = ((this.visibility) && (this.inRange));
this.div.style.display = show ? "" : "none";
}
-
+
// deal with gutters
this.setTileSize();
}
},
-
+
/**
* Method: afterAdd
* Called at the end of the map.addLayer sequence. At this point, the map
@@ -20836,39 +20836,39 @@
*/
afterAdd: function() {
},
-
+
/**
* APIMethod: removeMap
- * Just as setMap() allows each layer the possibility to take a
+ * Just as setMap() allows each layer the possibility to take a
* personalized action on being added to the map, removeMap() allows
- * each layer to take a personalized action on being removed from it.
+ * each layer to take a personalized action on being removed from it.
* For now, this will be mostly unused, except for the EventPane layer,
* which needs this hook so that it can remove the special invisible
- * pane.
- *
+ * pane.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
removeMap: function(map) {
//to be overridden by subclasses
},
-
+
/**
* APIMethod: getImageSize
- *
+ *
* Returns:
- * {<OpenLayers.Size>} The size that the image should be, taking into
+ * {<OpenLayers.Size>} The size that the image should be, taking into
* account gutters.
- */
- getImageSize: function() {
- return (this.imageSize || this.tileSize);
- },
-
+ */
+ getImageSize: function() {
+ return (this.imageSize || this.tileSize);
+ },
+
/**
* APIMethod: setTileSize
* Set the tile size based on the map size. This also sets layer.imageSize
* and layer.imageOffset for use by Tile.Image.
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>}
*/
@@ -20884,16 +20884,16 @@
// this.name + ": layers with " +
// "gutters need non-null tile sizes");
//}
- this.imageOffset = new OpenLayers.Pixel(-this.gutter,
- -this.gutter);
- this.imageSize = new OpenLayers.Size(tileSize.w + (2*this.gutter),
- tileSize.h + (2*this.gutter));
+ this.imageOffset = new OpenLayers.Pixel(-this.gutter,
+ -this.gutter);
+ this.imageSize = new OpenLayers.Size(tileSize.w + (2*this.gutter),
+ tileSize.h + (2*this.gutter));
}
},
/**
* APIMethod: getVisibility
- *
+ *
* Returns:
* {Boolean} The layer should be displayed (if in range).
*/
@@ -20901,18 +20901,18 @@
return this.visibility;
},
- /**
+ /**
* APIMethod: setVisibility
- * Set the visibility flag for the layer and hide/show & redraw
+ * Set the visibility flag for the layer and hide/show & redraw
* accordingly. Fire event unless otherwise specified
- *
+ *
* Note that visibility is no longer simply whether or not the layer's
- * style.display is set to "block". Now we store a 'visibility' state
- * property on the layer class, this allows us to remember whether or
- * not we *desire* for a layer to be visible. In the case where the
- * map's resolution is out of the layer's range, this desire may be
+ * style.display is set to "block". Now we store a 'visibility' state
+ * property on the layer class, this allows us to remember whether or
+ * not we *desire* for a layer to be visible. In the case where the
+ * map's resolution is out of the layer's range, this desire may be
* subverted.
- *
+ *
* Parameters:
* visible - {Boolean} Whether or not to display the layer (if in range)
*/
@@ -20931,10 +20931,10 @@
}
},
- /**
+ /**
* APIMethod: display
* Hide or show the Layer
- *
+ *
* Parameters:
* display - {Boolean}
*/
@@ -20947,10 +20947,10 @@
/**
* APIMethod: calculateInRange
- *
+ *
* Returns:
* {Boolean} The layer is displayable at the current map's current
- * resolution. Note that if 'alwaysInRange' is true for the layer,
+ * resolution. Note that if 'alwaysInRange' is true for the layer,
* this function will always return true.
*/
calculateInRange: function() {
@@ -20968,9 +20968,9 @@
return inRange;
},
- /**
+ /**
* APIMethod: setIsBaseLayer
- *
+ *
* Parameters:
* isBaseLayer - {Boolean}
*/
@@ -20990,73 +20990,73 @@
/* Baselayer Functions */
/* */
/********************************************************/
-
- /**
+
+ /**
* Method: initResolutions
- * This method's responsibility is to set up the 'resolutions' array
+ * This method's responsibility is to set up the 'resolutions' array
* for the layer -- this array is what the layer will use to interface
- * between the zoom levels of the map and the resolution display
+ * between the zoom levels of the map and the resolution display
* of the layer.
- *
+ *
* The user has several options that determine how the array is set up.
- *
- * For a detailed explanation, see the following wiki from the
+ *
+ * For a detailed explanation, see the following wiki from the
* openlayers.org homepage:
* http://trac.openlayers.org/wiki/SettingZoomLevels
*/
initResolutions: function() {
- // These are the relevant options which are used for calculating
+ // These are the relevant options which are used for calculating
// resolutions information.
//
var props = new Array(
'projection', 'units',
'scales', 'resolutions',
- 'maxScale', 'minScale',
- 'maxResolution', 'minResolution',
+ 'maxScale', 'minScale',
+ 'maxResolution', 'minResolution',
'minExtent', 'maxExtent',
'numZoomLevels', 'maxZoomLevel'
);
- //these are the properties which do *not* imply that user wishes
+ //these are the properties which do *not* imply that user wishes
// this layer to be scale-dependant
- var notScaleProps = ['projection', 'units'];
+ var notScaleProps = ['projection', 'units'];
- //should the layer be scale-dependant? default is false -- this will
+ //should the layer be scale-dependant? default is false -- this will
// only be set true if we find that the user has specified a property
// from the 'props' array that is not in 'notScaleProps'
var useInRange = false;
- // First we create a new object where we will store all of the
+ // First we create a new object where we will store all of the
// resolution-related properties that we find in either the layer's
// 'options' array or from the map.
//
- var confProps = {};
+ var confProps = {};
for(var i=0, len=props.length; i<len; i++) {
var property = props[i];
-
- // If the layer had one of these properties set *and* it is
+
+ // If the layer had one of these properties set *and* it is
// a scale property (is not a non-scale property), then we assume
// the user did intend to use scale-dependant display (useInRange).
- if (this.options[property] &&
+ if (this.options[property] &&
OpenLayers.Util.indexOf(notScaleProps, property) == -1) {
useInRange = true;
}
-
+
confProps[property] = this.options[property] || this.map[property];
}
- //only automatically set 'alwaysInRange' if the user hasn't already
+ //only automatically set 'alwaysInRange' if the user hasn't already
// set it (to true or false, since the default is null). If user did
// not intend to use scale-dependant display then we set they layer
- // as alwaysInRange. This means calculateInRange() will always return
+ // as alwaysInRange. This means calculateInRange() will always return
// true and the layer will never be turned off due to scale changes.
//
if (this.alwaysInRange == null) {
this.alwaysInRange = !useInRange;
}
- // Do not use the scales array set at the map level if
+ // Do not use the scales array set at the map level if
// either minScale or maxScale or both are set at the
// layer level
if ((this.options.minScale != null ||
@@ -21065,7 +21065,7 @@
confProps.scales = null;
}
- // Do not use the resolutions array set at the map level if
+ // Do not use the resolutions array set at the map level if
// either minResolution or maxResolution or both are set at the
// layer level
if ((this.options.minResolution != null ||
@@ -21075,14 +21075,14 @@
confProps.resolutions = null;
}
- // If numZoomLevels hasn't been set and the maxZoomLevel *has*,
+ // If numZoomLevels hasn't been set and the maxZoomLevel *has*,
// then use maxZoomLevel to calculate numZoomLevels
//
if ( (!confProps.numZoomLevels) && (confProps.maxZoomLevel) ) {
confProps.numZoomLevels = confProps.maxZoomLevel + 1;
}
- // First off, we take whatever hodge-podge of values we have and
+ // First off, we take whatever hodge-podge of values we have and
// calculate/distill them down into a resolutions[] array
//
if ((confProps.scales != null) || (confProps.resolutions != null)) {
@@ -21091,8 +21091,8 @@
confProps.resolutions = [];
for(var i=0, len=confProps.scales.length; i<len; i++) {
var scale = confProps.scales[i];
- confProps.resolutions[i] =
- OpenLayers.Util.getResolutionFromScale(scale,
+ confProps.resolutions[i] =
+ OpenLayers.Util.getResolutionFromScale(scale,
confProps.units);
}
}
@@ -21103,39 +21103,39 @@
// determine maxResolution
if (confProps.minScale) {
- confProps.maxResolution =
- OpenLayers.Util.getResolutionFromScale(confProps.minScale,
+ confProps.maxResolution =
+ OpenLayers.Util.getResolutionFromScale(confProps.minScale,
confProps.units);
} else if (confProps.maxResolution == "auto") {
var viewSize = this.map.getSize();
var wRes = confProps.maxExtent.getWidth() / viewSize.w;
var hRes = confProps.maxExtent.getHeight()/ viewSize.h;
confProps.maxResolution = Math.max(wRes, hRes);
- }
+ }
// determine minResolution
- if (confProps.maxScale != null) {
- confProps.minResolution =
- OpenLayers.Util.getResolutionFromScale(confProps.maxScale,
+ if (confProps.maxScale != null) {
+ confProps.minResolution =
+ OpenLayers.Util.getResolutionFromScale(confProps.maxScale,
confProps.units);
- } else if ( (confProps.minResolution == "auto") &&
+ } else if ( (confProps.minResolution == "auto") &&
(confProps.minExtent != null) ) {
var viewSize = this.map.getSize();
var wRes = confProps.minExtent.getWidth() / viewSize.w;
var hRes = confProps.minExtent.getHeight()/ viewSize.h;
confProps.minResolution = Math.max(wRes, hRes);
- }
+ }
// determine numZoomLevels if not already set on the layer
// this gives numZoomLevels assuming approximately base 2 scaling
if (confProps.minResolution != null &&
this.options.numZoomLevels == undefined) {
var ratio = confProps.maxResolution / confProps.minResolution;
- confProps.numZoomLevels =
+ confProps.numZoomLevels =
Math.floor(Math.log(ratio) / Math.log(2)) + 1;
}
-
- // now we have numZoomLevels and maxResolution,
+
+ // now we have numZoomLevels and maxResolution,
// we can populate the resolutions array
confProps.resolutions = new Array(confProps.numZoomLevels);
var base = 2;
@@ -21157,15 +21157,15 @@
confProps.resolutions[i] = res;
}
}
-
+
//sort resolutions array ascendingly
//
confProps.resolutions.sort( function(a, b) { return(b-a); } );
- // now set our newly calculated values back to the layer
- // Note: We specifically do *not* set them to layer.options, which we
- // will preserve as it was when we added this layer to the map.
- // this way cloned layers reset themselves to new map div
+ // now set our newly calculated values back to the layer
+ // Note: We specifically do *not* set them to layer.options, which we
+ // will preserve as it was when we added this layer to the map.
+ // this way cloned layers reset themselves to new map div
// dimensions)
//
@@ -21173,22 +21173,22 @@
this.maxResolution = confProps.resolutions[0];
var lastIndex = confProps.resolutions.length - 1;
this.minResolution = confProps.resolutions[lastIndex];
-
+
this.scales = [];
for(var i=0, len=confProps.resolutions.length; i<len; i++) {
- this.scales[i] =
- OpenLayers.Util.getScaleFromResolution(confProps.resolutions[i],
+ this.scales[i] =
+ OpenLayers.Util.getScaleFromResolution(confProps.resolutions[i],
confProps.units);
}
this.minScale = this.scales[0];
this.maxScale = this.scales[this.scales.length - 1];
-
+
this.numZoomLevels = confProps.numZoomLevels;
},
/**
* APIMethod: getResolution
- *
+ *
* Returns:
* {Float} The currently selected resolution of the map, taken from the
* resolutions array, indexed by current zoom level.
@@ -21198,11 +21198,11 @@
return this.getResolutionForZoom(zoom);
},
- /**
+ /**
* APIMethod: getExtent
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
+ * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
* bounds of the current viewPort.
*/
getExtent: function() {
@@ -21214,18 +21214,18 @@
/**
* APIMethod: getZoomForExtent
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
- * closest - {Boolean} Find the zoom level that most closely fits the
- * specified bounds. Note that this may result in a zoom that does
+ * closest - {Boolean} Find the zoom level that most closely fits the
+ * specified bounds. Note that this may result in a zoom that does
* not exactly contain the entire extent.
* Default is false.
*
* Returns:
- * {Integer} The index of the zoomLevel (entry in the resolutions array)
- * for the passed-in extent. We do this by calculating the ideal
- * resolution for the given extent (based on the map size) and then
+ * {Integer} The index of the zoomLevel (entry in the resolutions array)
+ * for the passed-in extent. We do this by calculating the ideal
+ * resolution for the given extent (based on the map size) and then
* calling getZoomForResolution(), passing along the 'closest'
* parameter.
*/
@@ -21236,12 +21236,12 @@
return this.getZoomForResolution(idealResolution, closest);
},
-
- /**
+
+ /**
* Method: getDataExtent
* Calculates the max extent which includes all of the data for the layer.
* This function is to be implemented by subclasses.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
@@ -21251,10 +21251,10 @@
/**
* APIMethod: getResolutionForZoom
- *
+ *
* Parameter:
* zoom - {Float}
- *
+ *
* Returns:
* {Float} A suitable resolution for the specified zoom.
*/
@@ -21274,20 +21274,20 @@
/**
* APIMethod: getZoomForResolution
- *
+ *
* Parameters:
* resolution - {Float}
- * closest - {Boolean} Find the zoom level that corresponds to the absolute
+ * closest - {Boolean} Find the zoom level that corresponds to the absolute
* closest resolution, which may result in a zoom whose corresponding
* resolution is actually smaller than we would have desired (if this
* is being called from a getZoomForExtent() call, then this means that
- * the returned zoom index might not actually contain the entire
+ * the returned zoom index might not actually contain the entire
* extent specified... but it'll be close).
* Default is false.
- *
+ *
* Returns:
- * {Integer} The index of the zoomLevel (entry in the resolutions array)
- * that corresponds to the best fit resolution given the passed in
+ * {Integer} The index of the zoomLevel (entry in the resolutions array)
+ * that corresponds to the best fit resolution given the passed in
* value and the 'closest' specification.
*/
getZoomForResolution: function(resolution, closest) {
@@ -21319,7 +21319,7 @@
} else {
var diff;
var minDiff = Number.POSITIVE_INFINITY;
- for(var i=0, len=this.resolutions.length; i<len; i++) {
+ for(var i=0, len=this.resolutions.length; i<len; i++) {
if (closest) {
diff = Math.abs(this.resolutions[i] - resolution);
if (diff > minDiff) {
@@ -21336,15 +21336,15 @@
}
return zoom;
},
-
+
/**
* APIMethod: getLonLatFromViewPortPx
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
*
* Returns:
- * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in
+ * {<OpenLayers.LonLat>} An OpenLayers.LonLat which is the passed-in
* view port <OpenLayers.Pixel>, translated into lon/lat by the layer.
*/
getLonLatFromViewPortPx: function (viewPortPx) {
@@ -21354,12 +21354,12 @@
var center = this.map.getCenter();
if (center) {
var res = this.map.getResolution();
-
+
var delta_x = viewPortPx.x - (size.w / 2);
var delta_y = viewPortPx.y - (size.h / 2);
-
+
lonlat = new OpenLayers.LonLat(center.lon + delta_x * res ,
- center.lat - delta_y * res);
+ center.lat - delta_y * res);
if (this.wrapDateLine) {
lonlat = lonlat.wrapDateLine(this.maxExtent);
@@ -21373,31 +21373,31 @@
* APIMethod: getViewPortPxFromLonLat
* Returns a pixel location given a map location. This method will return
* fractional pixel values.
- *
+ *
* Parameters:
* lonlat - {<OpenLayers.LonLat>}
*
- * Returns:
- * {<OpenLayers.Pixel>} An <OpenLayers.Pixel> which is the passed-in
+ * Returns:
+ * {<OpenLayers.Pixel>} An <OpenLayers.Pixel> which is the passed-in
* <OpenLayers.LonLat>,translated into view port pixels.
*/
getViewPortPxFromLonLat: function (lonlat) {
- var px = null;
+ var px = null;
if (lonlat != null) {
var resolution = this.map.getResolution();
var extent = this.map.getExtent();
px = new OpenLayers.Pixel(
(1/resolution * (lonlat.lon - extent.left)),
(1/resolution * (extent.top - lonlat.lat))
- );
+ );
}
return px;
},
-
+
/**
* APIMethod: setOpacity
* Sets the opacity for the entire layer (all images)
- *
+ *
* Parameter:
* opacity - {Float}
*/
@@ -21406,7 +21406,7 @@
this.opacity = opacity;
for(var i=0, len=this.div.childNodes.length; i<len; ++i) {
var element = this.div.childNodes[i].firstChild;
- OpenLayers.Util.modifyDOMElement(element, null, null, null,
+ OpenLayers.Util.modifyDOMElement(element, null, null, null,
null, null, null, opacity);
}
}
@@ -21414,20 +21414,20 @@
/**
* Method: getZIndex
- *
- * Returns:
+ *
+ * Returns:
* {Integer} the z-index of this layer
- */
+ */
getZIndex: function () {
return this.div.style.zIndex;
},
/**
* Method: setZIndex
- *
- * Parameters:
+ *
+ * Parameters:
* zIndex - {Integer}
- */
+ */
setZIndex: function (zIndex) {
this.div.style.zIndex = zIndex;
},
@@ -21435,18 +21435,18 @@
/**
* Method: adjustBounds
* This function will take a bounds, and if wrapDateLine option is set
- * on the layer, it will return a bounds which is wrapped around the
- * world. We do not wrap for bounds which *cross* the
- * maxExtent.left/right, only bounds which are entirely to the left
+ * on the layer, it will return a bounds which is wrapped around the
+ * world. We do not wrap for bounds which *cross* the
+ * maxExtent.left/right, only bounds which are entirely to the left
* or entirely to the right.
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
adjustBounds: function (bounds) {
if (this.gutter) {
- // Adjust the extent of a bounds in map units by the
+ // Adjust the extent of a bounds in map units by the
// layer's gutter in pixels.
var mapGutter = this.gutter * this.map.getResolution();
bounds = new OpenLayers.Bounds(bounds.left - mapGutter,
@@ -21457,11 +21457,11 @@
if (this.wrapDateLine) {
// wrap around the date line, within the limits of rounding error
- var wrappingOptions = {
+ var wrappingOptions = {
'rightTolerance':this.getResolution()
- };
+ };
bounds = bounds.wrapDateLine(this.maxExtent, wrappingOptions);
-
+
}
return bounds;
},
@@ -21485,29 +21485,29 @@
* Class: OpenLayers.Marker.Box
*
* Inherits from:
- * - <OpenLayers.Marker>
+ * - <OpenLayers.Marker>
*/
OpenLayers.Marker.Box = OpenLayers.Class(OpenLayers.Marker, {
- /**
- * Property: bounds
- * {<OpenLayers.Bounds>}
+ /**
+ * Property: bounds
+ * {<OpenLayers.Bounds>}
*/
bounds: null,
- /**
- * Property: div
- * {DOMElement}
+ /**
+ * Property: div
+ * {DOMElement}
*/
div: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Marker.Box
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>}
- * borderColor - {String}
- * borderWidth - {int}
+ * bounds - {<OpenLayers.Bounds>}
+ * borderColor - {String}
+ * borderWidth - {int}
*/
initialize: function(bounds, borderColor, borderWidth) {
this.bounds = bounds;
@@ -21518,8 +21518,8 @@
},
/**
- * Method: destroy
- */
+ * Method: destroy
+ */
destroy: function() {
this.bounds = null;
@@ -21528,10 +21528,10 @@
OpenLayers.Marker.prototype.destroy.apply(this, arguments);
},
- /**
+ /**
* Method: setBorder
* Allow the user to change the box's color and border width
- *
+ *
* Parameters:
* color - {String} Default is "red"
* width - {int} Default is 2
@@ -21545,26 +21545,26 @@
}
this.div.style.border = width + "px solid " + color;
},
-
- /**
+
+ /**
* Method: draw
- *
+ *
* Parameters:
- * px - {<OpenLayers.Pixel>}
- * sz - {<OpenLayers.Size>}
- *
- * Returns:
- * {DOMElement} A new DOM Image with this marker´s icon set at the
+ * px - {<OpenLayers.Pixel>}
+ * sz - {<OpenLayers.Size>}
+ *
+ * Returns:
+ * {DOMElement} A new DOM Image with this marker´s icon set at the
* location passed-in
*/
draw: function(px, sz) {
OpenLayers.Util.modifyDOMElement(this.div, null, px, sz);
return this.div;
- },
+ },
/**
* Method: onScreen
- *
+ *
* Rreturn:
* {Boolean} Whether or not the marker is currently visible on screen.
*/
@@ -21573,16 +21573,16 @@
if (this.map) {
var screenBounds = this.map.getExtent();
onScreen = screenBounds.containsBounds(this.bounds, true, true);
- }
+ }
return onScreen;
},
-
+
/**
* Method: display
* Hide or show the icon
- *
+ *
* Parameters:
- * display - {Boolean}
+ * display - {Boolean}
*/
display: function(display) {
this.div.style.display = (display) ? "" : "none";
@@ -21930,19 +21930,19 @@
* @uri url to do remote XML http get
* @param {String} 'get' format params (x=y&a=b...)
* @who object to handle callbacks for this request
- * @complete the function to be called on success
+ * @complete the function to be called on success
* @failure the function to be called on failure
- *
+ *
* example usage from a caller:
- *
+ *
* caps: function(request) {
- * -blah-
+ * -blah-
* },
- *
+ *
* OpenLayers.loadURL(url,params,this,caps);
*
* Notice the above example does not provide an error handler; a default empty
- * handler is provided which merely logs the error if a failure handler is not
+ * handler is provided which merely logs the error if a failure handler is not
* supplied
*
*/
@@ -21956,7 +21956,7 @@
OpenLayers.Console.userError(OpenLayers.i18n("unhandledRequest", {'statusText':request.statusText}));
};
-/**
+/**
* APIFunction: loadURL
* Background load a document. For more flexibility in using XMLHttpRequest,
* see the <OpenLayers.Request> methods.
@@ -21970,7 +21970,7 @@
* onComplete - {Function} Optional callback for success. The callback
* will be called with this set to caller and will receive the request
* object as an argument. Note that if you do not specify an onComplete
- * function, <OpenLayers.nullHandler> will be called (which pops up a
+ * function, <OpenLayers.nullHandler> will be called (which pops up a
* user friendly error message dialog).
* onFailure - {Function} Optional callback for failure. In the event of
* a failure, the callback will be called with this set to caller and will
@@ -21984,26 +21984,26 @@
*/
OpenLayers.loadURL = function(uri, params, caller,
onComplete, onFailure) {
-
+
if(typeof params == 'string') {
params = OpenLayers.Util.getParameters(params);
}
var success = (onComplete) ? onComplete : OpenLayers.nullHandler;
var failure = (onFailure) ? onFailure : OpenLayers.nullHandler;
-
+
return OpenLayers.Request.GET({
url: uri, params: params,
success: success, failure: failure, scope: caller
});
};
-/**
+/**
* Function: parseXMLString
* Parse XML into a doc structure
- *
+ *
* Parameters:
- * text - {String}
- *
+ * text - {String}
+ *
* Returns:
* {?} Parsed AJAX Responsev
*/
@@ -22052,8 +22052,8 @@
/**
* Method: getTransport
- *
- * Returns:
+ *
+ * Returns:
* {Object} Transport mechanism for whichever browser we're in, or false if
* none available.
*/
@@ -22077,7 +22077,7 @@
* {Object}
*/
OpenLayers.Ajax.Responders = {
-
+
/**
* Property: responders
* {Array}
@@ -22086,7 +22086,7 @@
/**
* Method: register
- *
+ *
* Parameters:
* responderToAdd - {?}
*/
@@ -22101,7 +22101,7 @@
/**
* Method: unregister
- *
+ *
* Parameters:
* responderToRemove - {?}
*/
@@ -22111,7 +22111,7 @@
/**
* Method: dispatch
- *
+ *
* Parameters:
* callback - {?}
* request - {?}
@@ -22121,11 +22121,11 @@
var responder;
for (var i = 0; i < this.responders.length; i++) {
responder = this.responders[i];
-
- if (responder[callback] &&
+
+ if (responder[callback] &&
typeof responder[callback] == 'function') {
try {
- responder[callback].apply(responder,
+ responder[callback].apply(responder,
[request, transport]);
} catch (e) {}
}
@@ -22134,7 +22134,7 @@
};
OpenLayers.Ajax.Responders.register({
- /**
+ /**
* Function: onCreate
*/
onCreate: function() {
@@ -22153,11 +22153,11 @@
* Class: OpenLayers.Ajax.Base
*/
OpenLayers.Ajax.Base = OpenLayers.Class({
-
+
/**
* Constructor: OpenLayers.Ajax.Base
- *
- * Parameters:
+ *
+ * Parameters:
* options - {Object}
*/
initialize: function(options) {
@@ -22168,11 +22168,11 @@
parameters: ''
};
OpenLayers.Util.extend(this.options, options || {});
-
+
this.options.method = this.options.method.toLowerCase();
-
+
if (typeof this.options.parameters == 'string') {
- this.options.parameters =
+ this.options.parameters =
OpenLayers.Util.getParameters(this.options.parameters);
}
}
@@ -22193,28 +22193,28 @@
* {Boolean}
*/
_complete: false,
-
+
/**
* Constructor: OpenLayers.Ajax.Request
- *
- * Parameters:
+ *
+ * Parameters:
* url - {String}
* options - {Object}
*/
initialize: function(url, options) {
OpenLayers.Ajax.Base.prototype.initialize.apply(this, [options]);
-
+
if (OpenLayers.ProxyHost && OpenLayers.String.startsWith(url, "http")) {
url = OpenLayers.ProxyHost + encodeURIComponent(url);
}
-
+
this.transport = OpenLayers.Ajax.getTransport();
this.request(url);
},
/**
* Method: request
- *
+ *
* Parameters:
* url - {String}
*/
@@ -22222,15 +22222,15 @@
this.url = url;
this.method = this.options.method;
var params = OpenLayers.Util.extend({}, this.options.parameters);
-
+
if (this.method != 'get' && this.method != 'post') {
// simulate other verbs over post
params['_method'] = this.method;
this.method = 'post';
}
- this.parameters = params;
-
+ this.parameters = params;
+
if (params = OpenLayers.Util.getParameterString(params)) {
// when GET, append parameters to URL
if (this.method == 'get') {
@@ -22244,31 +22244,31 @@
if (this.options.onCreate) {
this.options.onCreate(response);
}
-
- OpenLayers.Ajax.Responders.dispatch('onCreate',
- this,
+
+ OpenLayers.Ajax.Responders.dispatch('onCreate',
+ this,
response);
-
- this.transport.open(this.method.toUpperCase(),
+
+ this.transport.open(this.method.toUpperCase(),
this.url,
this.options.asynchronous);
-
+
if (this.options.asynchronous) {
window.setTimeout(
OpenLayers.Function.bind(this.respondToReadyState, this, 1),
10);
}
-
- this.transport.onreadystatechange =
- OpenLayers.Function.bind(this.onStateChange, this);
+
+ this.transport.onreadystatechange =
+ OpenLayers.Function.bind(this.onStateChange, this);
this.setRequestHeaders();
-
+
this.body = this.method == 'post' ?
(this.options.postBody || params) : null;
this.transport.send(this.body);
-
+
// Force Firefox to handle ready state 4 for synchronous requests
- if (!this.options.asynchronous &&
+ if (!this.options.asynchronous &&
this.transport.overrideMimeType) {
this.onStateChange();
}
@@ -22286,7 +22286,7 @@
this.respondToReadyState(this.transport.readyState);
}
},
-
+
/**
* Method: setRequestHeaders
*/
@@ -22300,7 +22300,7 @@
if (this.method == 'post') {
headers['Content-type'] = this.options.contentType +
(this.options.encoding ? '; charset=' + this.options.encoding : '');
-
+
/* Force "Connection: close" for older Mozilla browsers to work
* around a bug where XMLHttpRequest sends an incorrect
* Content-length header. See Mozilla Bugzilla #246651.
@@ -22311,9 +22311,9 @@
}
}
// user-defined headers
- if (typeof this.options.requestHeaders == 'object') {
+ if (typeof this.options.requestHeaders == 'object') {
var extras = this.options.requestHeaders;
-
+
if (typeof extras.push == 'function') {
for (var i = 0, length = extras.length; i < length; i += 2) {
headers[extras[i]] = extras[i+1];
@@ -22324,23 +22324,23 @@
}
}
}
-
+
for (var name in headers) {
this.transport.setRequestHeader(name, headers[name]);
}
},
-
+
/**
* Method: success
*
* Returns:
- * {Boolean} -
+ * {Boolean} -
*/
success: function() {
var status = this.getStatus();
return !status || (status >=200 && status < 300);
},
-
+
/**
* Method: getStatus
*
@@ -22364,7 +22364,7 @@
respondToReadyState: function(readyState) {
var state = OpenLayers.Ajax.Request.Events[readyState];
var response = new OpenLayers.Ajax.Response(this);
-
+
if (state == 'Complete') {
try {
this._complete = true;
@@ -22374,29 +22374,29 @@
} catch (e) {
this.dispatchException(e);
}
-
+
var contentType = response.getHeader('Content-type');
}
-
+
try {
- (this.options['on' + state] ||
+ (this.options['on' + state] ||
OpenLayers.Ajax.emptyFunction)(response);
- OpenLayers.Ajax.Responders.dispatch('on' + state,
- this,
+ OpenLayers.Ajax.Responders.dispatch('on' + state,
+ this,
response);
} catch (e) {
this.dispatchException(e);
}
-
+
if (state == 'Complete') {
// avoid memory leak in MSIE: clean up
this.transport.onreadystatechange = OpenLayers.Ajax.emptyFunction;
}
},
-
+
/**
* Method: getHeader
- *
+ *
* Parameters:
* name - {String} Header name
*
@@ -22416,7 +22416,7 @@
* If the optional onException function is set, execute it
* and then dispatch the call to any other listener registered
* for onException.
- *
+ *
* If no optional onException function is set, we suspect that
* the user may have also not used
* OpenLayers.Ajax.Responders.register to register a listener
@@ -22428,7 +22428,7 @@
* request.options.onException to an empty function (function(){})
* or register an empty function with <OpenLayers.Ajax.Responders>
* for onException.
- *
+ *
* Parameters:
* exception - {?}
*/
@@ -22459,7 +22459,7 @@
}
});
-/**
+/**
* Property: Events
* {Array(String)}
*/
@@ -22477,26 +22477,26 @@
* {Integer}
*/
status: 0,
-
+
/**
* Property: statusText
*
* {String}
*/
statusText: '',
-
+
/**
* Constructor: OpenLayers.Ajax.Response
- *
- * Parameters:
+ *
+ * Parameters:
* request - {Object}
*/
initialize: function(request) {
this.request = request;
var transport = this.transport = request.transport,
readyState = this.readyState = transport.readyState;
-
+
if ((readyState > 2 &&
!(!!(window.attachEvent && !window.opera))) ||
readyState == 4) {
@@ -22505,18 +22505,18 @@
this.responseText = transport.responseText == null ?
'' : String(transport.responseText);
}
-
+
if(readyState == 4) {
var xml = transport.responseXML;
this.responseXML = xml === undefined ? null : xml;
}
},
-
+
/**
* Method: getStatus
*/
getStatus: OpenLayers.Ajax.Request.prototype.getStatus,
-
+
/**
* Method: getStatustext
*
@@ -22530,13 +22530,13 @@
return '';
}
},
-
+
/**
* Method: getHeader
*/
getHeader: OpenLayers.Ajax.Request.prototype.getHeader,
-
- /**
+
+ /**
* Method: getResponseHeader
*
* Returns:
@@ -22550,17 +22550,17 @@
/**
* Function: getElementsByTagNameNS
- *
+ *
* Parameters:
* parentnode - {?}
* nsuri - {?}
* nsprefix - {?}
* tagname - {?}
- *
+ *
* Returns:
* {?}
*/
-OpenLayers.Ajax.getElementsByTagNameNS = function(parentnode, nsuri,
+OpenLayers.Ajax.getElementsByTagNameNS = function(parentnode, nsuri,
nsprefix, tagname) {
var elem = null;
if (parentnode.getElementsByTagNameNS) {
@@ -22578,9 +22578,9 @@
* IE/Safari. We need to come up with a way to serialize in those browser:
* for now, these browsers will just fail. #535, #536
*
- * Parameters:
+ * Parameters:
* xmldom {XMLNode} xml dom to serialize
- *
+ *
* Returns:
* {?}
*/
@@ -22611,31 +22611,31 @@
*/
OpenLayers.Control.DragPan = OpenLayers.Class(OpenLayers.Control, {
- /**
+ /**
* Property: type
* {OpenLayers.Control.TYPES}
*/
type: OpenLayers.Control.TYPE_TOOL,
-
+
/**
* Property: panned
* {Boolean} The map moved.
*/
panned: false,
-
+
/**
* Property: interval
* {Integer} The number of milliseconds that should ellapse before
* panning the map again. Set this to increase dragging performance.
* Defaults to 25 milliseconds.
*/
- interval: 25,
-
+ interval: 25,
+
/**
* Method: draw
* Creates a Drag handler, using <panMap> and
* <panMapDone> as callbacks.
- */
+ */
draw: function() {
this.handler = new OpenLayers.Handler.Drag(this, {
"move": this.panMap,
@@ -22660,7 +22660,7 @@
{dragging: this.handler.dragging, animate: false}
);
},
-
+
/**
* Method: panMapDone
* Finish the panning operation. Only call setCenter (through <panMap>)
@@ -22704,28 +22704,28 @@
* Class: OpenLayers.Feature.Vector
* Vector features use the OpenLayers.Geometry classes as geometry description.
* They have an 'attributes' property, which is the data object, and a 'style'
- * property, the default values of which are defined in the
+ * property, the default values of which are defined in the
* <OpenLayers.Feature.Vector.style> objects.
- *
+ *
* Inherits from:
* - <OpenLayers.Feature>
*/
OpenLayers.Feature.Vector = OpenLayers.Class(OpenLayers.Feature, {
- /**
- * Property: fid
- * {String}
+ /**
+ * Property: fid
+ * {String}
*/
fid: null,
-
- /**
- * APIProperty: geometry
- * {<OpenLayers.Geometry>}
+
+ /**
+ * APIProperty: geometry
+ * {<OpenLayers.Geometry>}
*/
geometry: null,
- /**
- * APIProperty: attributes
+ /**
+ * APIProperty: attributes
* {Object} This object holds arbitrary properties that describe the
* feature.
*/
@@ -22736,37 +22736,37 @@
* {<OpenLayers.Bounds>} The box bounding that feature's geometry, that
* property can be set by an <OpenLayers.Format> object when
* deserializing the feature, so in most cases it represents an
- * information set by the server.
+ * information set by the server.
*/
bounds: null,
- /**
- * Property: state
- * {String}
+ /**
+ * Property: state
+ * {String}
*/
state: null,
-
- /**
- * APIProperty: style
- * {Object}
+
+ /**
+ * APIProperty: style
+ * {Object}
*/
style: null,
-
+
/**
* Property: renderIntent
* {String} rendering intent currently being used
*/
renderIntent: "default",
- /**
+ /**
* Constructor: OpenLayers.Feature.Vector
- * Create a vector feature.
- *
+ * Create a vector feature.
+ *
* Parameters:
* geometry - {<OpenLayers.Geometry>} The geometry that this feature
* represents.
* attributes - {Object} An optional object that will be mapped to the
- * <attributes> property.
+ * <attributes> property.
* style - {Object} An optional style object.
*/
initialize: function(geometry, attributes, style) {
@@ -22780,10 +22780,10 @@
this.attributes = OpenLayers.Util.extend(this.attributes,
attributes);
}
- this.style = style ? style : null;
+ this.style = style ? style : null;
},
-
- /**
+
+ /**
* Method: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -22792,11 +22792,11 @@
this.layer.removeFeatures(this);
this.layer = null;
}
-
+
this.geometry = null;
OpenLayers.Feature.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: clone
* Create a clone of this vector feature. Does not set any non-standard
@@ -22824,7 +22824,7 @@
* boundsOnly - {Boolean} Only test whether a feature's bounds intersects
* the viewport bounds. Default is false. If false, the feature's
* geometry must intersect the viewport for onScreen to return true.
- *
+ *
* Returns:
* {Boolean} The feature is currently visible on screen (optionally
* based on its bounds if boundsOnly is true).
@@ -22840,15 +22840,15 @@
var screenPoly = screenBounds.toGeometry();
onScreen = screenPoly.intersects(this.geometry);
}
- }
+ }
return onScreen;
},
-
+
/**
* Method: createMarker
* HACK - we need to decide if all vector features should be able to
* create markers
- *
+ *
* Returns:
* {<OpenLayers.Marker>} For now just returns null
*/
@@ -22860,7 +22860,7 @@
* Method: destroyMarker
* HACK - we need to decide if all vector features should be able to
* delete markers
- *
+ *
* If user overrides the createMarker() function, s/he should be able
* to also specify an alternative function for destroying it
*/
@@ -22872,7 +22872,7 @@
* Method: createPopup
* HACK - we need to decide if all vector features should be able to
* create popups
- *
+ *
* Returns:
* {<OpenLayers.Popup>} For now just returns null
*/
@@ -22883,19 +22883,19 @@
/**
* Method: atPoint
* Determins whether the feature intersects with the specified location.
- *
- * Parameters:
- * lonlat - {<OpenLayers.LonLat>}
+ *
+ * Parameters:
+ * lonlat - {<OpenLayers.LonLat>}
* toleranceLon - {float} Optional tolerance in Geometric Coords
* toleranceLat - {float} Optional tolerance in Geographic Coords
- *
+ *
* Returns:
* {Boolean} Whether or not the feature is at the specified location
*/
atPoint: function(lonlat, toleranceLon, toleranceLat) {
var atPoint = false;
if(this.geometry) {
- atPoint = this.geometry.atPoint(lonlat, toleranceLon,
+ atPoint = this.geometry.atPoint(lonlat, toleranceLon,
toleranceLat);
}
return atPoint;
@@ -22931,7 +22931,7 @@
} else {
pixel = location;
}
-
+
var lastPixel = this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());
var res = this.layer.map.getResolution();
this.geometry.move(res * (pixel.x - lastPixel.x),
@@ -22939,13 +22939,13 @@
this.layer.drawFeature(this);
return lastPixel;
},
-
+
/**
* Method: toState
* Sets the new state
*
* Parameters:
- * state - {String}
+ * state - {String}
*/
toState: function(state) {
if (state == OpenLayers.State.UPDATE) {
@@ -22982,24 +22982,24 @@
this.state = state;
}
},
-
+
CLASS_NAME: "OpenLayers.Feature.Vector"
});
/**
* Constant: OpenLayers.Feature.Vector.style
- * OpenLayers features can have a number of style attributes. The 'default'
+ * OpenLayers features can have a number of style attributes. The 'default'
* style will typically be used if no other style is specified. These
* styles correspond for the most part, to the styling properties defined
- * by the SVG standard.
+ * by the SVG standard.
* Information on fill properties: http://www.w3.org/TR/SVG/painting.html#FillProperties
* Information on stroke properties: http://www.w3.org/TR/SVG/painting.html#StrokeProperties
*
* Symbolizer properties:
* fill - {Boolean} Set to false if no fill is desired.
* fillColor - {String} Hex fill color. Default is "#ee9900".
- * fillOpacity - {Number} Fill opacity (0-1). Default is 0.4
+ * fillOpacity - {Number} Fill opacity (0-1). Default is 0.4
* stroke - {Boolean} Set to false if no stroke is desired.
* strokeColor - {String} Hex stroke color. Default is "#ee9900".
* strokeOpacity - {Number} Stroke opacity (0-1). Default is 1.
@@ -23038,11 +23038,11 @@
* fontSize - {String} The font size for the label, to be provided like in CSS.
* fontWeight - {String} The font weight for the label, to be provided like in CSS.
* display - {String} Symbolizers will have no effect if display is set to "none". All other values have no effect.
- */
+ */
OpenLayers.Feature.Vector.style = {
'default': {
fillColor: "#ee9900",
- fillOpacity: 0.4,
+ fillOpacity: 0.4,
hoverFillColor: "white",
hoverFillOpacity: 0.8,
strokeColor: "#ee9900",
@@ -23061,7 +23061,7 @@
},
'select': {
fillColor: "blue",
- fillOpacity: 0.4,
+ fillOpacity: 0.4,
hoverFillColor: "white",
hoverFillOpacity: 0.8,
strokeColor: "blue",
@@ -23080,7 +23080,7 @@
},
'temporary': {
fillColor: "#66cccc",
- fillOpacity: 0.2,
+ fillOpacity: 0.2,
hoverFillColor: "white",
hoverFillOpacity: 0.8,
strokeColor: "#66cccc",
@@ -23100,7 +23100,7 @@
'delete': {
display: "none"
}
-};
+};
/* ======================================================================
OpenLayers/Handler/Box.js
====================================================================== */
@@ -23116,17 +23116,17 @@
/**
* Class: OpenLayers.Handler.Box
- * Handler for dragging a rectangle across the map. Box is displayed
+ * Handler for dragging a rectangle across the map. Box is displayed
* on mouse down, moves on mouse move, and is finished on mouse up.
*
* Inherits from:
- * - <OpenLayers.Handler>
+ * - <OpenLayers.Handler>
*/
OpenLayers.Handler.Box = OpenLayers.Class(OpenLayers.Handler, {
- /**
- * Property: dragHandler
- * {<OpenLayers.Handler.Drag>}
+ /**
+ * Property: dragHandler
+ * {<OpenLayers.Handler.Drag>}
*/
dragHandler: null,
@@ -23136,7 +23136,7 @@
* olHandlerBoxZoomBox
*/
boxDivClassName: 'olHandlerBoxZoomBox',
-
+
/**
* Property: boxCharacteristics
* {Object} Caches some box characteristics from css. This is used
@@ -23148,18 +23148,18 @@
* Constructor: OpenLayers.Handler.Box
*
* Parameters:
- * control - {<OpenLayers.Control>}
+ * control - {<OpenLayers.Control>}
* callbacks - {Object} An object containing a single function to be
* called when the drag operation is finished.
* The callback should expect to recieve a single
* argument, the point geometry.
- * options - {Object}
+ * options - {Object}
*/
initialize: function(control, callbacks, options) {
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
var callbacks = {
- "down": this.startBox,
- "move": this.moveBox,
+ "down": this.startBox,
+ "move": this.moveBox,
"out": this.removeBox,
"up": this.endBox
};
@@ -23181,12 +23181,12 @@
* Method: startBox
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
startBox: function (xy) {
this.zoomBox = OpenLayers.Util.createDiv('zoomBox',
this.dragHandler.start);
- this.zoomBox.className = this.boxDivClassName;
+ this.zoomBox.className = this.boxDivClassName;
this.zoomBox.style.zIndex = this.map.Z_INDEX_BASE["Popup"] - 1;
this.map.viewPortDiv.appendChild(this.zoomBox);
@@ -23228,8 +23228,8 @@
*/
endBox: function(end) {
var result;
- if (Math.abs(this.dragHandler.start.x - end.x) > 5 ||
- Math.abs(this.dragHandler.start.y - end.y) > 5) {
+ if (Math.abs(this.dragHandler.start.x - end.x) > 5 ||
+ Math.abs(this.dragHandler.start.y - end.y) > 5) {
var start = this.dragHandler.start;
var top = Math.min(start.y, end.y);
var bottom = Math.max(start.y, end.y);
@@ -23238,7 +23238,7 @@
result = new OpenLayers.Bounds(left, bottom, right, top);
} else {
result = this.dragHandler.start.clone(); // i.e. OL.Pixel
- }
+ }
this.removeBox();
this.callback("done", [result]);
@@ -23281,11 +23281,11 @@
return false;
}
},
-
+
/**
* Method: getCharacteristics
* Determines offset and box model for a box.
- *
+ *
* Returns:
* {Object} a hash with the following properties:
* - xOffset - Corner offset in x-direction
@@ -23333,12 +23333,12 @@
* down, moves or is modified on mouse move, and is finished on mouse up.
* The handler triggers callbacks for 'done' and 'cancel'. Create a new
* instance with the <OpenLayers.Handler.RegularPolygon> constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.RegularPolygon = OpenLayers.Class(OpenLayers.Handler.Drag, {
-
+
/**
* APIProperty: sides
* {Integer} Number of sides for the regular polygon. Needs to be greater
@@ -23355,15 +23355,15 @@
* default.
*/
radius: null,
-
+
/**
* APIProperty: snapAngle
* {Float} If set to a non-zero value, the handler will snap the polygon
* rotation to multiples of the snapAngle. Value is an angle measured
- * in degrees counterclockwise from the positive x-axis.
+ * in degrees counterclockwise from the positive x-axis.
*/
snapAngle: null,
-
+
/**
* APIProperty: snapToggle
* {String} If set, snapToggle is checked on mouse events and will set
@@ -23374,7 +23374,7 @@
* non-zero value.
*/
snapToggle: 'shiftKey',
-
+
/**
* APIProperty: persist
* {Boolean} Leave the feature rendered until clear is called. Default
@@ -23456,18 +23456,18 @@
[control, callbacks, options]);
this.options = (options) ? options : new Object();
},
-
+
/**
* APIMethod: setOptions
- *
+ *
* Parameters:
- * newOptions - {Object}
+ * newOptions - {Object}
*/
setOptions: function (newOptions) {
OpenLayers.Util.extend(this.options, newOptions);
OpenLayers.Util.extend(this, newOptions);
},
-
+
/**
* APIMethod: activate
* Turn on the handler.
@@ -23525,7 +23525,7 @@
}
return deactivated;
},
-
+
/**
* Method: down
* Start drawing a new feature
@@ -23552,7 +23552,7 @@
this.layer.addFeatures([this.feature], {silent: true});
this.layer.drawFeature(this.feature, this.style);
},
-
+
/**
* Method: move
* Respond to drag move events
@@ -23632,7 +23632,7 @@
this.origin, this.radius, this.sides, this.snapAngle
);
},
-
+
/**
* Method: modifyGeometry
* Modify the polygon geometry in place.
@@ -23653,7 +23653,7 @@
point.clearBounds();
}
},
-
+
/**
* Method: calculateAngle
* Calculate the angle based on settings.
@@ -23702,7 +23702,7 @@
this.layer.renderer.clear();
this.layer.destroyFeatures();
},
-
+
/**
* Method: callback
* Trigger the control's named callback with the given arguments
@@ -23746,21 +23746,21 @@
* Class: OpenLayers.Layer.EventPane
* Base class for 3rd party layers. Create a new event pane layer with the
* <OpenLayers.Layer.EventPane> constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Layer>
*/
OpenLayers.Layer.EventPane = OpenLayers.Class(OpenLayers.Layer, {
-
+
/**
* APIProperty: smoothDragPan
* {Boolean} smoothDragPan determines whether non-public/internal API
- * methods are used for better performance while dragging EventPane
- * layers. When not in sphericalMercator mode, the smoother dragging
- * doesn't actually move north/south directly with the number of
- * pixels moved, resulting in a slight offset when you drag your mouse
- * north south with this option on. If this visual disparity bothers
- * you, you should turn this option off, or use spherical mercator.
+ * methods are used for better performance while dragging EventPane
+ * layers. When not in sphericalMercator mode, the smoother dragging
+ * doesn't actually move north/south directly with the number of
+ * pixels moved, resulting in a slight offset when you drag your mouse
+ * north south with this option on. If this visual disparity bothers
+ * you, you should turn this option off, or use spherical mercator.
* Default is on.
*/
smoothDragPan: true,
@@ -23768,13 +23768,13 @@
/**
* Property: isBaseLayer
* {Boolean} EventPaned layers are always base layers, by necessity.
- */
+ */
isBaseLayer: true,
/**
* APIProperty: isFixed
* {Boolean} EventPaned layers are fixed by default.
- */
+ */
isFixed: true,
/**
@@ -23787,9 +23787,9 @@
/**
* Property: mapObject
* {Object} This is the object which will be used to load the 3rd party library
- * in the case of the google layer, this will be of type GMap,
+ * in the case of the google layer, this will be of type GMap,
* in the case of the ve layer, this will be of type VEMap
- */
+ */
mapObject: null,
@@ -23807,35 +23807,35 @@
this.pane = OpenLayers.Util.createDiv(this.div.id + "_EventPane");
}
},
-
+
/**
* APIMethod: destroy
* Deconstruct this layer.
*/
destroy: function() {
this.mapObject = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: setMap
* Set the map property for the layer. This is done through an accessor
- * so that subclasses can override this and take special action once
- * they have their map variable set.
+ * so that subclasses can override this and take special action once
+ * they have their map variable set.
*
* Parameters:
* map - {<OpenLayers.Map>}
*/
setMap: function(map) {
OpenLayers.Layer.prototype.setMap.apply(this, arguments);
-
+
this.pane.style.zIndex = parseInt(this.div.style.zIndex) + 1;
this.pane.style.display = this.div.style.display;
this.pane.style.width="100%";
this.pane.style.height="100%";
if (OpenLayers.Util.getBrowserName() == "msie") {
- this.pane.style.background =
+ this.pane.style.background =
"url(" + OpenLayers.Util.getImagesLocation() + "blank.gif)";
}
@@ -23847,7 +23847,7 @@
// once our layer has been added to the map, we can load it
this.loadMapObject();
-
+
// if map didn't load, display warning
if (this.mapObject == null) {
this.loadWarningMessage();
@@ -23857,8 +23857,8 @@
/**
* APIMethod: removeMap
* On being removed from the map, we'll like to remove the invisible 'pane'
- * div that we added to it on creation.
- *
+ * div that we added to it on creation.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -23869,14 +23869,14 @@
}
OpenLayers.Layer.prototype.removeMap.apply(this, arguments);
},
-
+
/**
* Method: loadWarningMessage
- * If we can't load the map lib, then display an error message to the
+ * If we can't load the map lib, then display an error message to the
* user and tell them where to go for help.
- *
+ *
* This function sets up the layout for the warning message. Each 3rd
- * party layer must implement its own getWarningHTML() function to
+ * party layer must implement its own getWarningHTML() function to
* provide the actual warning message.
*/
loadWarningMessage:function() {
@@ -23884,17 +23884,17 @@
this.div.style.backgroundColor = "darkblue";
var viewSize = this.map.getSize();
-
+
var msgW = Math.min(viewSize.w, 300);
var msgH = Math.min(viewSize.h, 200);
var size = new OpenLayers.Size(msgW, msgH);
var centerPx = new OpenLayers.Pixel(viewSize.w/2, viewSize.h/2);
- var topLeft = centerPx.add(-size.w/2, -size.h/2);
+ var topLeft = centerPx.add(-size.w/2, -size.h/2);
- var div = OpenLayers.Util.createDiv(this.name + "_warning",
- topLeft,
+ var div = OpenLayers.Util.createDiv(this.name + "_warning",
+ topLeft,
size,
null,
null,
@@ -23907,11 +23907,11 @@
div.innerHTML = this.getWarningHTML();
this.div.appendChild(div);
},
-
- /**
+
+ /**
* Method: getWarningHTML
* To be implemented by subclasses.
- *
+ *
* Returns:
* {String} String with information on why layer is broken, how to get
* it working.
@@ -23920,7 +23920,7 @@
//should be implemented by subclasses
return "";
},
-
+
/**
* Method: display
* Set the display on the pane
@@ -23932,11 +23932,11 @@
OpenLayers.Layer.prototype.display.apply(this, arguments);
this.pane.style.display = this.div.style.display;
},
-
+
/**
* Method: setZIndex
* Set the z-index order for the pane.
- *
+ *
* Parameters:
* zIndex - {int}
*/
@@ -23948,7 +23948,7 @@
/**
* Method: moveTo
* Handle calls to move the layer.
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* zoomChanged - {Boolean}
@@ -23970,10 +23970,10 @@
var moOldZoom = this.getMapObjectZoom();
var oldZoom= this.getOLZoomFromMapObjectZoom(moOldZoom);
- if ( !(newCenter.equals(oldCenter)) ||
+ if ( !(newCenter.equals(oldCenter)) ||
!(newZoom == oldZoom) ) {
- if (dragging && this.dragPanMapObject &&
+ if (dragging && this.dragPanMapObject &&
this.smoothDragPan) {
var oldPx = this.map.getViewPortPxFromLonLat(oldCenter);
var newPx = this.map.getViewPortPxFromLonLat(newCenter);
@@ -23998,7 +23998,7 @@
/**
* Method: getLonLatFromViewPortPx
* Get a map location from a pixel location
- *
+ *
* Parameters:
* viewPortPx - {<OpenLayers.Pixel>}
*
@@ -24009,7 +24009,7 @@
*/
getLonLatFromViewPortPx: function (viewPortPx) {
var lonlat = null;
- if ( (this.mapObject != null) &&
+ if ( (this.mapObject != null) &&
(this.getMapObjectCenter() != null) ) {
var moPixel = this.getMapObjectPixelFromOLPixel(viewPortPx);
var moLonLat = this.getMapObjectLonLatFromMapObjectPixel(moPixel);
@@ -24018,7 +24018,7 @@
return lonlat;
},
-
+
/**
* Method: getViewPortPxFromLonLat
* Get a pixel location from a map location
@@ -24033,12 +24033,12 @@
*/
getViewPortPxFromLonLat: function (lonlat) {
var viewPortPx = null;
- if ( (this.mapObject != null) &&
+ if ( (this.mapObject != null) &&
(this.getMapObjectCenter() != null) ) {
var moLonLat = this.getMapObjectLonLatFromOLLonLat(lonlat);
var moPixel = this.getMapObjectPixelFromMapObjectLonLat(moLonLat);
-
+
viewPortPx = this.getOLPixelFromMapObjectPixel(moPixel);
}
return viewPortPx;
@@ -24063,9 +24063,9 @@
*
* Parameters
* moLonLat - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.LonLat>} An OpenLayers.LonLat, translated from the passed in
+ * {<OpenLayers.LonLat>} An OpenLayers.LonLat, translated from the passed in
* MapObject LonLat
* Returns null if null value is passed in
*/
@@ -24085,9 +24085,9 @@
*
* Parameters:
* olLonLat - {<OpenLayers.LonLat>}
- *
+ *
* Returns:
- * {Object} A MapObject LonLat, translated from the passed in
+ * {Object} A MapObject LonLat, translated from the passed in
* OpenLayers.LonLat
* Returns null if null value is passed in
*/
@@ -24111,9 +24111,9 @@
*
* Parameters:
* moPixel - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.Pixel>} An OpenLayers.Pixel, translated from the passed in
+ * {<OpenLayers.Pixel>} An OpenLayers.Pixel, translated from the passed in
* MapObject Pixel
* Returns null if null value is passed in
*/
@@ -24133,9 +24133,9 @@
*
* Parameters:
* olPixel - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
- * {Object} A MapObject Pixel, translated from the passed in
+ * {Object} A MapObject Pixel, translated from the passed in
* OpenLayers.Pixel
* Returns null if null value is passed in
*/
@@ -24163,47 +24163,47 @@
/**
* Class: OpenLayers.Layer.FixedZoomLevels
- * Some Layers will already have established zoom levels (like google
+ * Some Layers will already have established zoom levels (like google
* or ve). Instead of trying to determine them and populate a resolutions[]
* Array with those values, we will hijack the resolution functionality
* here.
- *
- * When you subclass FixedZoomLevels:
- *
- * The initResolutions() call gets nullified, meaning no resolutions[] array
- * is set up. Which would be a big problem getResolution() in Layer, since
+ *
+ * When you subclass FixedZoomLevels:
+ *
+ * The initResolutions() call gets nullified, meaning no resolutions[] array
+ * is set up. Which would be a big problem getResolution() in Layer, since
* it merely takes map.zoom and indexes into resolutions[]... but....
- *
- * The getResolution() call is also overridden. Instead of using the
+ *
+ * The getResolution() call is also overridden. Instead of using the
* resolutions[] array, we simply calculate the current resolution based
* on the current extent and the current map size. But how will we be able
* to calculate the current extent without knowing the resolution...?
- *
+ *
* The getExtent() function is also overridden. Instead of calculating extent
- * based on the center point and the current resolution, we instead
- * calculate the extent by getting the lonlats at the top-left and
+ * based on the center point and the current resolution, we instead
+ * calculate the extent by getting the lonlats at the top-left and
* bottom-right by using the getLonLatFromViewPortPx() translation function,
- * taken from the pixel locations (0,0) and the size of the map. But how
+ * taken from the pixel locations (0,0) and the size of the map. But how
* will we be able to do lonlat-px translation without resolution....?
- *
+ *
* The getZoomForResolution() method is overridden. Instead of indexing into
* the resolutions[] array, we call OpenLayers.Layer.getExent(), passing in
- * the desired resolution. With this extent, we then call getZoomForExtent()
- *
- *
- * Whenever you implement a layer using OpenLayers.Layer.FixedZoomLevels,
+ * the desired resolution. With this extent, we then call getZoomForExtent()
+ *
+ *
+ * Whenever you implement a layer using OpenLayers.Layer.FixedZoomLevels,
* it is your responsibility to provide the following three functions:
- *
+ *
* - getLonLatFromViewPortPx
* - getViewPortPxFromLonLat
* - getZoomForExtent
- *
- * ...those three functions should generally be provided by any reasonable
+ *
+ * ...those three functions should generally be provided by any reasonable
* API that you might be working from.
*
*/
OpenLayers.Layer.FixedZoomLevels = OpenLayers.Class({
-
+
/********************************************************/
/* */
/* Baselayer Functions */
@@ -24212,19 +24212,19 @@
/* by all base layers */
/* */
/********************************************************/
-
+
/**
* Constructor: OpenLayers.Layer.FixedZoomLevels
* Create a new fixed zoom levels layer.
*/
initialize: function() {
- //this class is only just to add the following functions...
+ //this class is only just to add the following functions...
// nothing to actually do here... but it is probably a good
- // idea to have layers that use these functions call this
- // inititalize() anyways, in case at some point we decide we
- // do want to put some functionality or state in here.
+ // idea to have layers that use these functions call this
+ // inititalize() anyways, in case at some point we decide we
+ // do want to put some functionality or state in here.
},
-
+
/**
* Method: initResolutions
* Populate the resolutions array
@@ -24232,64 +24232,64 @@
initResolutions: function() {
var props = new Array('minZoomLevel', 'maxZoomLevel', 'numZoomLevels');
-
+
for(var i=0, len=props.length; i<len; i++) {
var property = props[i];
- this[property] = (this.options[property] != null)
- ? this.options[property]
+ this[property] = (this.options[property] != null)
+ ? this.options[property]
: this.map[property];
}
if ( (this.minZoomLevel == null) ||
(this.minZoomLevel < this.MIN_ZOOM_LEVEL) ){
this.minZoomLevel = this.MIN_ZOOM_LEVEL;
- }
+ }
//
// At this point, we know what the minimum desired zoom level is, and
- // we must calculate the total number of zoom levels.
- //
+ // we must calculate the total number of zoom levels.
+ //
// Because we allow for the setting of either the 'numZoomLevels'
- // or the 'maxZoomLevel' properties... on either the layer or the
+ // or the 'maxZoomLevel' properties... on either the layer or the
// map, we have to define some rules to see which we take into
- // account first in this calculation.
+ // account first in this calculation.
//
// The following is the precedence list for these properties:
- //
+ //
// (1) numZoomLevels set on layer
// (2) maxZoomLevel set on layer
// (3) numZoomLevels set on map
// (4) maxZoomLevel set on map*
// (5) none of the above*
//
- // *Note that options (4) and (5) are only possible if the user
- // _explicitly_ sets the 'numZoomLevels' property on the map to
- // null, since it is set by default to 16.
+ // *Note that options (4) and (5) are only possible if the user
+ // _explicitly_ sets the 'numZoomLevels' property on the map to
+ // null, since it is set by default to 16.
//
//
- // Note to future: In 3.0, I think we should remove the default
- // value of 16 for map.numZoomLevels. Rather, I think that value
+ // Note to future: In 3.0, I think we should remove the default
+ // value of 16 for map.numZoomLevels. Rather, I think that value
// should be set as a default on the Layer.WMS class. If someone
- // creates a 3rd party layer and does not specify any 'minZoomLevel',
- // 'maxZoomLevel', or 'numZoomLevels', and has not explicitly
+ // creates a 3rd party layer and does not specify any 'minZoomLevel',
+ // 'maxZoomLevel', or 'numZoomLevels', and has not explicitly
// specified any of those on the map object either.. then I think
// it is fair to say that s/he wants all the zoom levels available.
- //
- // By making map.numZoomLevels *null* by default, that will be the
+ //
+ // By making map.numZoomLevels *null* by default, that will be the
// case. As it is, I don't feel comfortable changing that right now
// as it would be a glaring API change and actually would probably
- // break many peoples' codes.
+ // break many peoples' codes.
//
//the number of zoom levels we'd like to have.
var desiredZoomLevels;
- //this is the maximum number of zoom levels the layer will allow,
+ //this is the maximum number of zoom levels the layer will allow,
// given the specified starting minimum zoom level.
var limitZoomLevels = this.MAX_ZOOM_LEVEL - this.minZoomLevel + 1;
- if ( ((this.options.numZoomLevels == null) &&
+ if ( ((this.options.numZoomLevels == null) &&
(this.options.maxZoomLevel != null)) // (2)
||
((this.numZoomLevels == null) &&
@@ -24306,18 +24306,18 @@
if (desiredZoomLevels != null) {
//Now that we know what we would *like* the number of zoom levels
// to be, based on layer or map options, we have to make sure that
- // it does not conflict with the actual limit, as specified by
+ // it does not conflict with the actual limit, as specified by
// the constants on the layer itself (and calculated into the
- // 'limitZoomLevels' variable).
+ // 'limitZoomLevels' variable).
this.numZoomLevels = Math.min(desiredZoomLevels, limitZoomLevels);
} else {
- // case (5) -- neither 'numZoomLevels' not 'maxZoomLevel' was
- // set on either the layer or the map. So we just use the
+ // case (5) -- neither 'numZoomLevels' not 'maxZoomLevel' was
+ // set on either the layer or the map. So we just use the
// maximum limit as calculated by the layer's constants.
this.numZoomLevels = limitZoomLevels;
}
- //now that the 'numZoomLevels' is appropriately, safely set,
+ //now that the 'numZoomLevels' is appropriately, safely set,
// we go back and re-calculate the 'maxZoomLevel'.
this.maxZoomLevel = this.minZoomLevel + this.numZoomLevels - 1;
@@ -24325,17 +24325,17 @@
var resolutionsIndex = 0;
this.resolutions = [];
for(var i= this.minZoomLevel; i <= this.maxZoomLevel; i++) {
- this.resolutions[resolutionsIndex++] = this.RESOLUTIONS[i];
+ this.resolutions[resolutionsIndex++] = this.RESOLUTIONS[i];
}
this.maxResolution = this.resolutions[0];
this.minResolution = this.resolutions[this.resolutions.length - 1];
- }
+ }
},
-
+
/**
* APIMethod: getResolution
* Get the current map resolution
- *
+ *
* Returns:
* {Float} Map units per Pixel
*/
@@ -24345,10 +24345,10 @@
return OpenLayers.Layer.prototype.getResolution.apply(this, arguments);
} else {
var resolution = null;
-
+
var viewSize = this.map.getSize();
var extent = this.getExtent();
-
+
if ((viewSize != null) && (extent != null)) {
resolution = Math.max( extent.getWidth() / viewSize.w,
extent.getHeight() / viewSize.h );
@@ -24359,29 +24359,29 @@
/**
* APIMethod: getExtent
- * Calculates using px-> lonlat translation functions on tl and br
+ * Calculates using px-> lonlat translation functions on tl and br
* corners of viewport
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
+ * {<OpenLayers.Bounds>} A Bounds object which represents the lon/lat
* bounds of the current viewPort.
*/
getExtent: function () {
var extent = null;
-
-
+
+
var size = this.map.getSize();
-
+
var tlPx = new OpenLayers.Pixel(0,0);
var tlLL = this.getLonLatFromViewPortPx(tlPx);
var brPx = new OpenLayers.Pixel(size.w, size.h);
var brLL = this.getLonLatFromViewPortPx(brPx);
-
+
if ((tlLL != null) && (brLL != null)) {
- extent = new OpenLayers.Bounds(tlLL.lon,
- brLL.lat,
- brLL.lon,
+ extent = new OpenLayers.Bounds(tlLL.lon,
+ brLL.lat,
+ brLL.lon,
tlLL.lat);
}
@@ -24400,7 +24400,7 @@
* If no baselayer is set, returns null.
*/
getZoomForResolution: function(resolution) {
-
+
if (this.resolutions != null) {
return OpenLayers.Layer.prototype.getZoomForResolution.apply(this, arguments);
} else {
@@ -24411,28 +24411,28 @@
-
+
/********************************************************/
/* */
/* Translation Functions */
/* */
- /* The following functions translate GMaps and OL */
+ /* The following functions translate GMaps and OL */
/* formats for Pixel, LonLat, Bounds, and Zoom */
/* */
/********************************************************/
-
-
+
+
//
// TRANSLATION: MapObject Zoom <-> OpenLayers Zoom
//
-
+
/**
* Method: getOLZoomFromMapObjectZoom
* Get the OL zoom index from the map object zoom level
*
* Parameters:
* moZoom - {Integer}
- *
+ *
* Returns:
* {Integer} An OpenLayers Zoom level, translated from the passed in zoom
* Returns null if null value is passed in
@@ -24444,20 +24444,20 @@
}
return zoom;
},
-
+
/**
* Method: getMapObjectZoomFromOLZoom
* Get the map object zoom level from the OL zoom level
*
* Parameters:
* olZoom - {Integer}
- *
+ *
* Returns:
* {Integer} A MapObject level, translated from the passed in olZoom
* Returns null if null value is passed in
*/
getMapObjectZoomFromOLZoom: function(olZoom) {
- var zoom = null;
+ var zoom = null;
if (olZoom != null) {
zoom = olZoom + this.minZoomLevel;
}
@@ -24482,47 +24482,47 @@
/**
* Class: OpenLayers.Layer.HTTPRequest
- *
- * Inherits from:
+ *
+ * Inherits from:
* - <OpenLayers.Layer>
*/
OpenLayers.Layer.HTTPRequest = OpenLayers.Class(OpenLayers.Layer, {
- /**
+ /**
* Constant: URL_HASH_FACTOR
* {Float} Used to hash URL param strings for multi-WMS server selection.
* Set to the Golden Ratio per Knuth's recommendation.
*/
URL_HASH_FACTOR: (Math.sqrt(5) - 1) / 2,
- /**
+ /**
* Property: url
- * {Array(String) or String} This is either an array of url strings or
- * a single url string.
+ * {Array(String) or String} This is either an array of url strings or
+ * a single url string.
*/
url: null,
- /**
+ /**
* Property: params
* {Object} Hashtable of key/value parameters
*/
params: null,
-
- /**
+
+ /**
* APIProperty: reproject
* *Deprecated*. See http://trac.openlayers.org/wiki/SpatialMercator
- * for information on the replacement for this functionality.
- * {Boolean} Whether layer should reproject itself based on base layer
- * locations. This allows reprojection onto commercial layers.
- * Default is false: Most layers can't reproject, but layers
+ * for information on the replacement for this functionality.
+ * {Boolean} Whether layer should reproject itself based on base layer
+ * locations. This allows reprojection onto commercial layers.
+ * Default is false: Most layers can't reproject, but layers
* which can create non-square geographic pixels can, like WMS.
- *
+ *
*/
reproject: false,
/**
* Constructor: OpenLayers.Layer.HTTPRequest
- *
+ *
* Parameters:
* name - {String}
* url - {Array(String) or String}
@@ -24543,39 +24543,39 @@
destroy: function() {
this.url = null;
this.params = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.prototype.destroy.apply(this, arguments);
},
-
+
/**
* APIMethod: clone
- *
+ *
* Parameters:
* obj - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.Layer.HTTPRequest>} An exact clone of this
+ * {<OpenLayers.Layer.HTTPRequest>} An exact clone of this
* <OpenLayers.Layer.HTTPRequest>
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer.HTTPRequest(this.name,
this.url,
this.params,
this.options);
}
-
+
//get all additions from superclasses
obj = OpenLayers.Layer.prototype.clone.apply(this, [obj]);
// copy/set any non-init, non-simple values here
-
+
return obj;
},
- /**
+ /**
* APIMethod: setUrl
- *
+ *
* Parameters:
* newUrl - {String}
*/
@@ -24585,7 +24585,7 @@
/**
* APIMethod: mergeNewParams
- *
+ *
* Parameters:
* newParams - {Object}
*
@@ -24607,18 +24607,18 @@
* Returns:
* {Boolean} The layer was redrawn.
*/
- redraw: function(force) {
+ redraw: function(force) {
if (force) {
return this.mergeNewParams({"_olSalt": Math.random()});
} else {
return OpenLayers.Layer.prototype.redraw.apply(this, []);
}
},
-
+
/**
* Method: selectUrl
* selectUrl() implements the standard floating-point multiplicative
- * hash function described by Knuth, and hashes the contents of the
+ * hash function described by Knuth, and hashes the contents of the
* given param string into a float between 0 and 1. This float is then
* scaled to the size of the provided urls array, and used to select
* a URL.
@@ -24626,60 +24626,60 @@
* Parameters:
* paramString - {String}
* urls - {Array(String)}
- *
+ *
* Returns:
* {String} An entry from the urls array, deterministically selected based
* on the paramString.
*/
selectUrl: function(paramString, urls) {
var product = 1;
- for (var i=0, len=paramString.length; i<len; i++) {
- product *= paramString.charCodeAt(i) * this.URL_HASH_FACTOR;
- product -= Math.floor(product);
+ for (var i=0, len=paramString.length; i<len; i++) {
+ product *= paramString.charCodeAt(i) * this.URL_HASH_FACTOR;
+ product -= Math.floor(product);
}
return urls[Math.floor(product * urls.length)];
},
- /**
+ /**
* Method: getFullRequestString
- * Combine url with layer's params and these newParams.
- *
- * does checking on the serverPath variable, allowing for cases when it
- * is supplied with trailing ? or &, as well as cases where not.
+ * Combine url with layer's params and these newParams.
*
+ * does checking on the serverPath variable, allowing for cases when it
+ * is supplied with trailing ? or &, as well as cases where not.
+ *
* return in formatted string like this:
* "server?key1=value1&key2=value2&key3=value3"
- *
+ *
* WARNING: The altUrl parameter is deprecated and will be removed in 3.0.
*
* Parameters:
* newParams - {Object}
* altUrl - {String} Use this as the url instead of the layer's url
- *
- * Returns:
+ *
+ * Returns:
* {String}
*/
getFullRequestString:function(newParams, altUrl) {
// if not altUrl passed in, use layer's url
var url = altUrl || this.url;
-
- // create a new params hashtable with all the layer params and the
+
+ // create a new params hashtable with all the layer params and the
// new params together. then convert to string
var allParams = OpenLayers.Util.extend({}, this.params);
allParams = OpenLayers.Util.extend(allParams, newParams);
var paramsString = OpenLayers.Util.getParameterString(allParams);
-
- // if url is not a string, it should be an array of strings,
- // in which case we will deterministically select one of them in
+
+ // if url is not a string, it should be an array of strings,
+ // in which case we will deterministically select one of them in
// order to evenly distribute requests to different urls.
//
if (url instanceof Array) {
url = this.selectUrl(paramsString, url);
- }
-
+ }
+
// ignore parameters that are already in the url search string
- var urlParams =
+ var urlParams =
OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));
for(var key in allParams) {
if(key.toUpperCase() in urlParams) {
@@ -24687,10 +24687,10 @@
}
}
paramsString = OpenLayers.Util.getParameterString(allParams);
-
+
// requestString always starts with url
- var requestString = url;
-
+ var requestString = url;
+
if (paramsString != "") {
var lastServerChar = url.charAt(url.length - 1);
if ((lastServerChar == "&") || (lastServerChar == "?")) {
@@ -24700,7 +24700,7 @@
//serverPath has no ? -- add one
requestString += '?' + paramsString;
} else {
- //serverPath contains ?, so must already have
+ //serverPath contains ?, so must already have
// paramsString at the end
requestString += '&' + paramsString;
}
@@ -24726,49 +24726,49 @@
/**
* Class: OpenLayers.Layer.Markers
- *
+ *
* Inherits from:
- * - <OpenLayers.Layer>
+ * - <OpenLayers.Layer>
*/
OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, {
-
- /**
- * APIProperty: isBaseLayer
- * {Boolean} Markers layer is never a base layer.
+
+ /**
+ * APIProperty: isBaseLayer
+ * {Boolean} Markers layer is never a base layer.
*/
isBaseLayer: false,
-
- /**
- * APIProperty: markers
- * {Array(<OpenLayers.Marker>)} internal marker list
+
+ /**
+ * APIProperty: markers
+ * {Array(<OpenLayers.Marker>)} internal marker list
*/
markers: null,
- /**
- * Property: drawn
+ /**
+ * Property: drawn
* {Boolean} internal state of drawing. This is a workaround for the fact
* that the map does not call moveTo with a zoomChanged when the map is
* first starting up. This lets us catch the case where we have *never*
* drawn the layer, and draw it even if the zoom hasn't changed.
*/
drawn: false,
-
+
/**
- * Constructor: OpenLayers.Layer.Markers
+ * Constructor: OpenLayers.Layer.Markers
* Create a Markers layer.
*
* Parameters:
- * name - {String}
+ * name - {String}
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, options) {
OpenLayers.Layer.prototype.initialize.apply(this, arguments);
this.markers = [];
},
-
+
/**
- * APIMethod: destroy
+ * APIMethod: destroy
*/
destroy: function() {
this.clearMarkers();
@@ -24779,7 +24779,7 @@
/**
* APIMethod: setOpacity
* Sets the opacity for all the markers.
- *
+ *
* Parameter:
* opacity - {Float}
*/
@@ -24792,13 +24792,13 @@
}
},
- /**
+ /**
* Method: moveTo
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>}
- * zoomChanged - {Boolean}
- * dragging - {Boolean}
+ * bounds - {<OpenLayers.Bounds>}
+ * zoomChanged - {Boolean}
+ * dragging - {Boolean}
*/
moveTo:function(bounds, zoomChanged, dragging) {
OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
@@ -24815,7 +24815,7 @@
* APIMethod: addMarker
*
* Parameters:
- * marker - {<OpenLayers.Marker>}
+ * marker - {<OpenLayers.Marker>}
*/
addMarker: function(marker) {
this.markers.push(marker);
@@ -24834,7 +24834,7 @@
* APIMethod: removeMarker
*
* Parameters:
- * marker - {<OpenLayers.Marker>}
+ * marker - {<OpenLayers.Marker>}
*/
removeMarker: function(marker) {
if (this.markers && this.markers.length) {
@@ -24856,13 +24856,13 @@
}
},
- /**
+ /**
* Method: drawMarker
- * Calculate the pixel location for the marker, create it, and
+ * Calculate the pixel location for the marker, create it, and
* add it to the layer's div
*
* Parameters:
- * marker - {<OpenLayers.Marker>}
+ * marker - {<OpenLayers.Marker>}
*/
drawMarker: function(marker) {
var px = this.map.getLayerPxFromLonLat(marker.lonlat);
@@ -24877,17 +24877,17 @@
}
}
},
-
- /**
+
+ /**
* APIMethod: getDataExtent
* Calculates the max extent which includes all of the markers.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
getDataExtent: function () {
var maxExtent = null;
-
+
if ( this.markers && (this.markers.length > 0)) {
var maxExtent = new OpenLayers.Bounds();
for(var i=0, len=this.markers.length; i<len; i++) {
@@ -24929,12 +24929,12 @@
*
* WKT:
* 900913=PROJCS["WGS84 / Simple Mercator", GEOGCS["WGS 84",
- * DATUM["WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]],
- * PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295],
+ * DATUM["WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]],
+ * PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295],
* AXIS["Longitude", EAST], AXIS["Latitude", NORTH]],
- * PROJECTION["Mercator_1SP_Google"],
- * PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0],
- * PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0],
+ * PROJECTION["Mercator_1SP_Google"],
+ * PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0],
+ * PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0],
* PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AXIS["x", EAST],
* AXIS["y", NORTH], AUTHORITY["EPSG","900913"]]
*/
@@ -24957,8 +24957,8 @@
return extent;
},
- /**
- * Method: initMercatorParameters
+ /**
+ * Method: initMercatorParameters
* Set up the mercator parameters on the layer: resolutions,
* projection, units.
*/
@@ -24978,9 +24978,9 @@
* Given a lon,lat in EPSG:4326, return a point in Spherical Mercator.
*
* Parameters:
- * lon - {float}
+ * lon - {float}
* lat - {float}
- *
+ *
* Returns:
* {<OpenLayers.LonLat>} The coordinates transformed to Mercator.
*/
@@ -24989,7 +24989,7 @@
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
-
+
return new OpenLayers.LonLat(x, y);
},
@@ -25000,7 +25000,7 @@
* Parameters:
* x - {float} A map x in Spherical Mercator.
* y - {float} A map y in Spherical Mercator.
- *
+ *
* Returns:
* {<OpenLayers.LonLat>} The coordinates transformed to EPSG:4326.
*/
@@ -25010,19 +25010,19 @@
var lat = (y / 20037508.34) * 180;
lat = 180/Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2);
-
+
return new OpenLayers.LonLat(lon, lat);
},
/**
- * Method: projectForward
+ * Method: projectForward
* Given an object with x and y properties in EPSG:4326, modify the x,y
* properties on the object to be the Spherical Mercator projected
* coordinates.
*
* Parameters:
- * point - {Object} An object with x and y properties.
- *
+ * point - {Object} An object with x and y properties.
+ *
* Returns:
* {Object} The point, with the x and y properties transformed to spherical
* mercator.
@@ -25033,15 +25033,15 @@
point.y = lonlat.lat;
return point;
},
-
+
/**
* Method: projectInverse
* Given an object with x and y properties in Spherical Mercator, modify
* the x,y properties on the object to be the unprojected coordinates.
*
* Parameters:
- * point - {Object} An object with x and y properties.
- *
+ * point - {Object} An object with x and y properties.
+ *
* Returns:
* {Object} The point, with the x and y properties transformed from
* spherical mercator to unprojected coordinates..
@@ -25087,7 +25087,7 @@
* - <OpenLayers.Control>
*/
OpenLayers.Control.DrawFeature = OpenLayers.Class(OpenLayers.Control, {
-
+
/**
* Property: layer
* {<OpenLayers.Layer.Vector>}
@@ -25099,7 +25099,7 @@
* {Object} The functions that are sent to the handler for callback
*/
callbacks: null,
-
+
/**
* Constant: EVENT_TYPES
*
@@ -25107,7 +25107,7 @@
* featureadded - Triggered when a feature is added
*/
EVENT_TYPES: ["featureadded"],
-
+
/**
* APIProperty: featureAdded
* {Function} Called after each feature is added
@@ -25119,23 +25119,23 @@
* {Object} Used to set non-default properties on the control's handler
*/
handlerOptions: null,
-
+
/**
* Constructor: OpenLayers.Control.DrawFeature
- *
+ *
* Parameters:
- * layer - {<OpenLayers.Layer.Vector>}
- * handler - {<OpenLayers.Handler>}
- * options - {Object}
+ * layer - {<OpenLayers.Layer.Vector>}
+ * handler - {<OpenLayers.Handler>}
+ * options - {Object}
*/
initialize: function(layer, handler, options) {
-
+
// concatenate events specific to vector with those from the base
this.EVENT_TYPES =
OpenLayers.Control.DrawFeature.prototype.EVENT_TYPES.concat(
OpenLayers.Control.prototype.EVENT_TYPES
);
-
+
OpenLayers.Control.prototype.initialize.apply(this, [options]);
this.callbacks = OpenLayers.Util.extend(
{
@@ -25231,20 +25231,20 @@
* {Object} Used to set non-default properties on the control's handler
*/
handlerOptions: null,
-
+
/**
* Property: callbacks
* {Object} The functions that are sent to the handler for callback
*/
callbacks: null,
-
+
/**
* Property: displaySystem
* {String} Display system for output measurements. Supported values
* are 'english', 'metric', and 'geographic'. Default is 'metric'.
*/
displaySystem: 'metric',
-
+
/**
* Property: geodesic
* {Boolean} Calculate geodesic metrics instead of planar metrics. This
@@ -25252,7 +25252,7 @@
* (if that is not already the map projection). Default is false.
*/
geodesic: false,
-
+
/**
* Property: displaySystemUnits
* {Object} Units for various measurement systems. Values are arrays
@@ -25281,7 +25281,7 @@
* {Number} Timeout id of trigger for measurepartial.
*/
delayedTrigger: null,
-
+
/**
* APIProperty: persist
* {Boolean} Keep the temporary measurement sketch drawn after the
@@ -25293,10 +25293,10 @@
/**
* Constructor: OpenLayers.Control.Measure
- *
+ *
* Parameters:
- * handler - {<OpenLayers.Handler>}
- * options - {Object}
+ * handler - {<OpenLayers.Handler>}
+ * options - {Object}
*/
initialize: function(handler, options) {
// concatenate events specific to measure with those from the base
@@ -25310,14 +25310,14 @@
this.callbacks
);
- // let the handler options override, so old code that passes 'persist'
+ // let the handler options override, so old code that passes 'persist'
// directly to the handler does not need an update
this.handlerOptions = OpenLayers.Util.extend(
{persist: this.persist}, this.handlerOptions
);
this.handler = new handler(this, this.callbacks, this.handlerOptions);
},
-
+
/**
* APIMethod: cancel
* Stop the control from measuring. If <persist> is true, the temporary
@@ -25326,7 +25326,7 @@
cancel: function() {
this.handler.cancel();
},
-
+
/**
* Method: updateHandler
*
@@ -25358,7 +25358,7 @@
}
this.measure(geometry, "measure");
},
-
+
/**
* Method: measurePartial
* Called each time a new point is added to the measurement sketch.
@@ -25399,7 +25399,7 @@
geometry: geometry
});
},
-
+
/**
* Method: getBestArea
* Based on the <displaySystem> returns the area of a geometry.
@@ -25423,7 +25423,7 @@
}
return [area, unit];
},
-
+
/**
* Method: getArea
*
@@ -25450,7 +25450,7 @@
}
return area;
},
-
+
/**
* Method: getBestLength
* Based on the <displaySystem> returns the length of a geometry.
@@ -25519,8 +25519,8 @@
/**
* Class: OpenLayers.Control.ZoomBox
- * The ZoomBox control enables zooming directly to a given extent, by drawing
- * a box on the map. The box is drawn by holding down shift, whilst dragging
+ * The ZoomBox control enables zooming directly to a given extent, by drawing
+ * a box on the map. The box is drawn by holding down shift, whilst dragging
* the mouse.
*
* Inherits from:
@@ -25541,13 +25541,13 @@
/**
* Property: alwaysZoom
- * {Boolean} Always zoom in/out, when box drawed
+ * {Boolean} Always zoom in/out, when box drawed
*/
alwaysZoom: false,
/**
* Method: draw
- */
+ */
draw: function() {
this.handler = new OpenLayers.Handler.Box( this,
{done: this.zoomBox}, {keyMask: this.keyMask} );
@@ -25582,11 +25582,11 @@
var ymax = center.lat + (extent.getHeight()/2)*zoomFactor;
var bounds = new OpenLayers.Bounds(xmin, ymin, xmax, ymax);
}
- // always zoom in/out
- var lastZoom = this.map.getZoom();
+ // always zoom in/out
+ var lastZoom = this.map.getZoom();
this.map.zoomToExtent(bounds);
- if (lastZoom == this.map.getZoom() && this.alwaysZoom == true){
- this.map.zoomTo(lastZoom + (this.out ? -1 : 1));
+ if (lastZoom == this.map.getZoom() && this.alwaysZoom == true){
+ this.map.zoomTo(lastZoom + (this.out ? -1 : 1));
}
} else { // it's a pixel
if (!this.out) {
@@ -25618,12 +25618,12 @@
* 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
@@ -25670,7 +25670,7 @@
features = this.parse[type].apply(this, [str]);
}
if (this.internalProjection && this.externalProjection) {
- if (features &&
+ if (features &&
features.CLASS_NAME == "OpenLayers.Feature.Vector") {
features.geometry.transform(this.externalProjection,
this.internalProjection);
@@ -25684,7 +25684,7 @@
}
}
}
- }
+ }
return features;
},
@@ -25723,9 +25723,9 @@
}
if (this.internalProjection && this.externalProjection) {
geometry = geometry.clone();
- geometry.transform(this.internalProjection,
+ geometry.transform(this.internalProjection,
this.externalProjection);
- }
+ }
data = this.extract[type].apply(this, [geometry]);
pieces.push(type.toUpperCase() + '(' + data + ')');
}
@@ -25734,7 +25734,7 @@
}
return pieces.join('');
},
-
+
/**
* Object with properties corresponding to the geometry types.
* Property values are functions that do the actual data extraction.
@@ -25762,7 +25762,7 @@
}
return array.join(',');
},
-
+
/**
* Return a comma delimited string of point coordinates from a line.
* @param {<OpenLayers.Geometry.LineString>} linestring
@@ -25792,7 +25792,7 @@
}
return array.join(',');
},
-
+
/**
* Return a comma delimited string of linear ring arrays from a polygon.
* @param {<OpenLayers.Geometry.Polygon>} polygon
@@ -25860,7 +25860,7 @@
new OpenLayers.Geometry.MultiPoint(components)
);
},
-
+
/**
* Return a linestring feature given a linestring WKT fragment.
* @param {String} A WKT fragment representing the linestring
@@ -25896,7 +25896,7 @@
new OpenLayers.Geometry.MultiLineString(components)
);
},
-
+
/**
* Return a polygon feature given a polygon WKT fragment.
* @param {String} A WKT fragment representing the polygon
@@ -25956,8 +25956,8 @@
},
- CLASS_NAME: "OpenLayers.Format.WKT"
-});
+ CLASS_NAME: "OpenLayers.Format.WKT"
+});
/* ======================================================================
OpenLayers/Layer/Google.js
====================================================================== */
@@ -25976,53 +25976,53 @@
/**
* Class: OpenLayers.Layer.Google
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.SphericalMercator>
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
*/
OpenLayers.Layer.Google = OpenLayers.Class(
- OpenLayers.Layer.EventPane,
+ OpenLayers.Layer.EventPane,
OpenLayers.Layer.FixedZoomLevels, {
-
- /**
+
+ /**
* Constant: MIN_ZOOM_LEVEL
- * {Integer} 0
+ * {Integer} 0
*/
MIN_ZOOM_LEVEL: 0,
-
- /**
+
+ /**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 19
*/
MAX_ZOOM_LEVEL: 19,
- /**
+ /**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
- 1.40625,
- 0.703125,
- 0.3515625,
- 0.17578125,
- 0.087890625,
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
0.0439453125,
- 0.02197265625,
- 0.010986328125,
- 0.0054931640625,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
0.00274658203125,
- 0.001373291015625,
- 0.0006866455078125,
+ 0.001373291015625,
+ 0.0006866455078125,
0.00034332275390625,
- 0.000171661376953125,
- 0.0000858306884765625,
+ 0.000171661376953125,
+ 0.0000858306884765625,
0.00004291534423828125,
- 0.00002145767211914062,
+ 0.00002145767211914062,
0.00001072883605957031,
- 0.00000536441802978515,
+ 0.00000536441802978515,
0.00000268220901489257
],
@@ -26035,34 +26035,34 @@
/**
* APIProperty: sphericalMercator
* {Boolean} Should the map act as a mercator-projected map? This will
- * cause all interactions with the map to be in the actual map
- * projection, which allows support for vector drawing, overlaying
- * other maps, etc.
+ * cause all interactions with the map to be in the actual map
+ * projection, which allows support for vector drawing, overlaying
+ * other maps, etc.
*/
- sphericalMercator: false,
-
+ sphericalMercator: false,
+
/**
* Property: dragObject
* {GDraggableObject} Since 2.93, Google has exposed the ability to get
* the maps GDraggableObject. We can now use this for smooth panning
*/
- dragObject: null,
+ dragObject: null,
/**
* Property: termsOfUse
* {DOMElement} Div for Google's copyright and terms of use link
*/
- termsOfUse: null,
+ termsOfUse: null,
/**
* Property: poweredBy
* {DOMElement} Div for Google's powered by logo and link
*/
- poweredBy: null,
+ poweredBy: null,
- /**
+ /**
* Constructor: OpenLayers.Layer.Google
- *
+ *
* Parameters:
* name - {String} A name for the layer.
* options - {Object} An optional object whose properties will be set
@@ -26070,27 +26070,27 @@
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
- OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
+ OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
this.addContainerPxFunction();
if (this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
- }
+ }
},
-
- /**
+
+ /**
* Method: loadMapObject
- * Load the GMap and register appropriate event listeners. If we can't
+ * Load the GMap and register appropriate event listeners. If we can't
* load GMap2, then display a warning message.
*/
loadMapObject:function() {
-
+
//has gmaps library has been loaded?
try {
// create GMap, hide nav controls
this.mapObject = new GMap2( this.div );
-
+
//since v 2.93 getDragObject is now available.
if(typeof this.mapObject.getDragObject == "function") {
this.dragObject = this.mapObject.getDragObject();
@@ -26123,21 +26123,21 @@
this.poweredBy.style.display = this.div.style.display;
this.poweredBy.style.right = "";
this.poweredBy.style.bottom = "";
- this.poweredBy.className = "olLayerGooglePoweredBy gmnoprint";
+ this.poweredBy.className = "olLayerGooglePoweredBy gmnoprint";
} catch (e) {
OpenLayers.Console.error(e);
}
-
+
},
- /**
+ /**
* APIMethod: setMap
- * Overridden from EventPane because if a map type has been specified,
- * we need to attach a listener for the first moveend -- this is how
- * we will know that the map has been centered. Only once the map has
- * been centered is it safe to change the gmap object's map type.
- *
+ * Overridden from EventPane because if a map type has been specified,
+ * we need to attach a listener for the first moveend -- this is how
+ * we will know that the map has been centered. Only once the map has
+ * been centered is it safe to change the gmap object's map type.
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -26148,21 +26148,21 @@
this.map.events.register("moveend", this, this.setMapType);
}
},
-
- /**
+
+ /**
* Method: setMapType
- * The map has been centered, and a map type was specified, so we
+ * The map has been centered, and a map type was specified, so we
* set the map type on the gmap object, then unregister the listener
* so that we dont keep doing this every time the map moves.
*/
setMapType: function() {
if (this.mapObject.getCenter() != null) {
-
+
// Support for custom map types.
if (OpenLayers.Util.indexOf(this.mapObject.getMapTypes(),
this.type) == -1) {
this.mapObject.addMapType(this.type);
- }
+ }
this.mapObject.setMapType(this.type);
this.map.events.unregister("moveend", this, this.setMapType);
@@ -26171,7 +26171,7 @@
/**
* APIMethod: onMapResize
- *
+ *
* Parameters:
* evt - {Event}
*/
@@ -26213,7 +26213,7 @@
/**
* APIMethod: removeMap
* On being removed from the map, also remove termsOfUse and poweredBy divs
- *
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -26228,15 +26228,15 @@
}
OpenLayers.Layer.EventPane.prototype.removeMap.apply(this, arguments);
},
-
+
/**
* APIMethod: getZoomForExtent
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
- *
+ *
* Returns:
- * {Integer} Corresponding zoom level for a specified Bounds.
+ * {Integer} Corresponding zoom level for a specified Bounds.
* If mapObject is not loaded or not centered, returns null
*
getZoomForExtent: function (bounds) {
@@ -26245,29 +26245,29 @@
var moBounds = this.getMapObjectBoundsFromOLBounds(bounds);
var moZoom = this.getMapObjectZoomFromMapObjectBounds(moBounds);
- //make sure zoom is within bounds
- var moZoom = Math.min(Math.max(moZoom, this.minZoomLevel),
+ //make sure zoom is within bounds
+ var moZoom = Math.min(Math.max(moZoom, this.minZoomLevel),
this.maxZoomLevel);
zoom = this.getOLZoomFromMapObjectZoom(moZoom);
}
return zoom;
},
-
+
*/
-
+
//
// TRANSLATION: MapObject Bounds <-> OpenLayers.Bounds
//
/**
* APIMethod: getOLBoundsFromMapObjectBounds
- *
+ *
* Parameters:
* moBounds - {Object}
- *
+ *
* Returns:
- * {<OpenLayers.Bounds>} An <OpenLayers.Bounds>, translated from the
+ * {<OpenLayers.Bounds>} An <OpenLayers.Bounds>, translated from the
* passed-in MapObject Bounds.
* Returns null if null value is passed in.
*/
@@ -26280,12 +26280,12 @@
sw = this.forwardMercator(sw.lng(), sw.lat());
ne = this.forwardMercator(ne.lng(), ne.lat());
} else {
- sw = new OpenLayers.LonLat(sw.lng(), sw.lat());
- ne = new OpenLayers.LonLat(ne.lng(), ne.lat());
- }
- olBounds = new OpenLayers.Bounds(sw.lon,
- sw.lat,
- ne.lon,
+ sw = new OpenLayers.LonLat(sw.lng(), sw.lat());
+ ne = new OpenLayers.LonLat(ne.lng(), ne.lat());
+ }
+ olBounds = new OpenLayers.Bounds(sw.lon,
+ sw.lat,
+ ne.lon,
ne.lat );
}
return olBounds;
@@ -26293,10 +26293,10 @@
/**
* APIMethod: getMapObjectBoundsFromOLBounds
- *
+ *
* Parameters:
* olBounds - {<OpenLayers.Bounds>}
- *
+ *
* Returns:
* {Object} A MapObject Bounds, translated from olBounds
* Returns null if null value is passed in
@@ -26304,11 +26304,11 @@
getMapObjectBoundsFromOLBounds: function(olBounds) {
var moBounds = null;
if (olBounds != null) {
- var sw = this.sphericalMercator ?
- this.inverseMercator(olBounds.bottom, olBounds.left) :
+ var sw = this.sphericalMercator ?
+ this.inverseMercator(olBounds.bottom, olBounds.left) :
new OpenLayers.LonLat(olBounds.bottom, olBounds.left);
- var ne = this.sphericalMercator ?
- this.inverseMercator(olBounds.top, olBounds.right) :
+ var ne = this.sphericalMercator ?
+ this.inverseMercator(olBounds.top, olBounds.right) :
new OpenLayers.LonLat(olBounds.top, olBounds.right);
moBounds = new GLatLngBounds(new GLatLng(sw.lat, sw.lon),
new GLatLng(ne.lat, ne.lon));
@@ -26316,41 +26316,41 @@
return moBounds;
},
- /**
+ /**
* Method: addContainerPxFunction
* Hack-on function because GMAPS does not give it to us
- *
- * Parameters:
+ *
+ * Parameters:
* gLatLng - {GLatLng}
- *
+ *
* Returns:
* {GPoint} A GPoint specifying gLatLng translated into "Container" coords
*/
addContainerPxFunction: function() {
- if ( (typeof GMap2 != "undefined") &&
+ if ( (typeof GMap2 != "undefined") &&
!GMap2.prototype.fromLatLngToContainerPixel) {
-
+
GMap2.prototype.fromLatLngToContainerPixel = function(gLatLng) {
-
+
// first we translate into "DivPixel"
var gPoint = this.fromLatLngToDivPixel(gLatLng);
-
+
// locate the sliding "Div" div
var div = this.getContainer().firstChild.firstChild;
-
+
// adjust by the offset of "Div" and voila!
gPoint.x += div.offsetLeft;
gPoint.y += div.offsetTop;
-
+
return gPoint;
};
}
},
- /**
+ /**
* APIMethod: getWarningHTML
- *
- * Returns:
+ *
+ * Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
@@ -26368,21 +26368,21 @@
// Get&Set Center, Zoom
- /**
+ /**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
- *
+ *
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
- this.mapObject.setCenter(center, zoom);
+ this.mapObject.setCenter(center, zoom);
},
-
+
/**
* APIMethod: dragPanMapObject
- *
+ *
* Parameters:
* dX - {Integer}
* dY - {Integer}
@@ -26393,17 +26393,17 @@
/**
* APIMethod: getMapObjectCenter
- *
- * Returns:
+ *
+ * Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
return this.mapObject.getCenter();
},
- /**
+ /**
* APIMethod: getMapObjectZoom
- *
+ *
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
@@ -26413,13 +26413,13 @@
// LonLat - Pixel Translation
-
+
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
@@ -26429,10 +26429,10 @@
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
@@ -26440,15 +26440,15 @@
return this.mapObject.fromLatLngToContainerPixel(moLonLat);
},
-
+
// Bounds
-
- /**
+
+ /**
* APIMethod: getMapObjectZoomFromMapObjectBounds
- *
+ *
* Parameters:
* moBounds - {Object} MapObject Bounds format
- *
+ *
* Returns:
* {Object} MapObject Zoom for specified MapObject Bounds
*/
@@ -26464,45 +26464,45 @@
// LonLat
-
+
/**
* APIMethod: getLongitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.lng(), moLonLat.lat()).lon :
- moLonLat.lng();
+ moLonLat.lng();
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
- var lat = this.sphericalMercator ?
+ var lat = this.sphericalMercator ?
this.forwardMercator(moLonLat.lng(), moLonLat.lat()).lat :
- moLonLat.lat();
- return lat;
+ moLonLat.lat();
+ return lat;
},
-
+
/**
* APIMethod: getMapObjectLonLatFromLonLat
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
@@ -26518,13 +26518,13 @@
},
// Pixel
-
+
/**
* APIMethod: getXFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} X value of the MapObject Pixel
*/
@@ -26534,10 +26534,10 @@
/**
* APIMethod: getYFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
@@ -26547,11 +26547,11 @@
/**
* APIMethod: getMapObjectPixelFromXY
- *
+ *
* Parameters:
* x - {Integer}
* y - {Integer}
- *
+ *
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
@@ -26584,38 +26584,38 @@
* - <OpenLayers.Layer.HTTPRequest>
*/
OpenLayers.Layer.Grid = OpenLayers.Class(OpenLayers.Layer.HTTPRequest, {
-
+
/**
* APIProperty: tileSize
* {<OpenLayers.Size>}
*/
tileSize: null,
-
+
/**
* Property: grid
- * {Array(Array(<OpenLayers.Tile>))} This is an array of rows, each row is
+ * {Array(Array(<OpenLayers.Tile>))} This is an array of rows, each row is
* an array of tiles.
*/
grid: null,
/**
* APIProperty: singleTile
- * {Boolean} Moves the layer into single-tile mode, meaning that one tile
+ * {Boolean} Moves the layer into single-tile mode, meaning that one tile
* will be loaded. The tile's size will be determined by the 'ratio'
- * property. When the tile is dragged such that it does not cover the
+ * property. When the tile is dragged such that it does not cover the
* entire viewport, it is reloaded.
*/
singleTile: false,
/** APIProperty: ratio
- * {Float} Used only when in single-tile mode, this specifies the
+ * {Float} Used only when in single-tile mode, this specifies the
* ratio of the size of the single tile to the size of the map.
*/
ratio: 1.5,
/**
* APIProperty: buffer
- * {Integer} Used only when in gridded mode, this specifies the number of
+ * {Integer} Used only when in gridded mode, this specifies the number of
* extra rows and colums of tiles on each side which will
* surround the minimum grid tiles to cover the map.
*/
@@ -26638,10 +26638,10 @@
* options - {Object} Hashtable of extra options to tag onto the layer
*/
initialize: function(name, url, params, options) {
- OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,
+ OpenLayers.Layer.HTTPRequest.prototype.initialize.apply(this,
arguments);
-
- //grid layers will trigger 'tileloaded' when each new tile is
+
+ //grid layers will trigger 'tileloaded' when each new tile is
// loaded, as a means of progress update to listeners.
// listeners can access 'numLoadingTiles' if they wish to keep track
// of the loading progress
@@ -26659,7 +26659,7 @@
this.clearGrid();
this.grid = null;
this.tileSize = null;
- OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.HTTPRequest.prototype.destroy.apply(this, arguments);
},
/**
@@ -26687,12 +26687,12 @@
*
* Parameters:
* obj - {Object} Is this ever used?
- *
+ *
* Returns:
* {<OpenLayers.Layer.Grid>} An exact clone of this OpenLayers.Layer.Grid
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer.Grid(this.name,
this.url,
@@ -26707,12 +26707,12 @@
if (this.tileSize != null) {
obj.tileSize = this.tileSize.clone();
}
-
+
// we do not want to copy reference to grid, so we make a new array
obj.grid = [];
return obj;
- },
+ },
/**
* Method: moveTo
@@ -26727,32 +26727,32 @@
*/
moveTo:function(bounds, zoomChanged, dragging) {
OpenLayers.Layer.HTTPRequest.prototype.moveTo.apply(this, arguments);
-
+
bounds = bounds || this.map.getExtent();
if (bounds != null) {
-
+
// if grid is empty or zoom has changed, we *must* re-tile
var forceReTile = !this.grid.length || zoomChanged;
// total bounds of the tiles
- var tilesBounds = this.getTilesBounds();
-
+ var tilesBounds = this.getTilesBounds();
+
if (this.singleTile) {
-
- // We want to redraw whenever even the slightest part of the
+
+ // We want to redraw whenever even the slightest part of the
// current bounds is not contained by our tile.
// (thus, we do not specify partial -- its default is false)
- if ( forceReTile ||
+ if ( forceReTile ||
(!dragging && !tilesBounds.containsBounds(bounds))) {
this.initSingleTile(bounds);
}
} else {
-
- // if the bounds have changed such that they are not even
- // *partially* contained by our tiles (IE user has
- // programmatically panned to the other side of the earth)
- // then we want to reTile (thus, partial true).
+
+ // if the bounds have changed such that they are not even
+ // *partially* contained by our tiles (IE user has
+ // programmatically panned to the other side of the earth)
+ // then we want to reTile (thus, partial true).
//
if (forceReTile || !tilesBounds.containsBounds(bounds, true)) {
this.initGriddedTiles(bounds);
@@ -26763,32 +26763,32 @@
}
}
},
-
+
/**
* APIMethod: setTileSize
* Check if we are in singleTile mode and if so, set the size as a ratio
* of the map size (as specified by the layer's 'ratio' property).
- *
+ *
* Parameters:
* size - {<OpenLayers.Size>}
*/
- setTileSize: function(size) {
+ setTileSize: function(size) {
if (this.singleTile) {
size = this.map.getSize().clone();
size.h = parseInt(size.h * this.ratio);
size.w = parseInt(size.w * this.ratio);
- }
+ }
OpenLayers.Layer.HTTPRequest.prototype.setTileSize.apply(this, [size]);
},
-
+
/**
* Method: getGridBounds
- * Deprecated. This function will be removed in 3.0. Please use
+ * Deprecated. This function will be removed in 3.0. Please use
* getTilesBounds() instead.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>} A Bounds object representing the bounds of all the
- * currently loaded tiles (including those partially or not at all seen
+ * currently loaded tiles (including those partially or not at all seen
* onscreen)
*/
getGridBounds: function() {
@@ -26804,32 +26804,32 @@
*
* Returns:
* {<OpenLayers.Bounds>} A Bounds object representing the bounds of all the
- * currently loaded tiles (including those partially or not at all seen
+ * currently loaded tiles (including those partially or not at all seen
* onscreen).
*/
- getTilesBounds: function() {
- var bounds = null;
-
+ getTilesBounds: function() {
+ var bounds = null;
+
if (this.grid.length) {
var bottom = this.grid.length - 1;
var bottomLeftTile = this.grid[bottom][0];
-
- var right = this.grid[0].length - 1;
+
+ var right = this.grid[0].length - 1;
var topRightTile = this.grid[0][right];
-
- bounds = new OpenLayers.Bounds(bottomLeftTile.bounds.left,
+
+ bounds = new OpenLayers.Bounds(bottomLeftTile.bounds.left,
bottomLeftTile.bounds.bottom,
- topRightTile.bounds.right,
+ topRightTile.bounds.right,
topRightTile.bounds.top);
-
- }
+
+ }
return bounds;
},
/**
* Method: initSingleTile
- *
- * Parameters:
+ *
+ * Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
initSingleTile: function(bounds) {
@@ -26838,13 +26838,13 @@
var center = bounds.getCenterLonLat();
var tileWidth = bounds.getWidth() * this.ratio;
var tileHeight = bounds.getHeight() * this.ratio;
-
- var tileBounds =
+
+ var tileBounds =
new OpenLayers.Bounds(center.lon - (tileWidth/2),
center.lat - (tileHeight/2),
center.lon + (tileWidth/2),
center.lat + (tileHeight/2));
-
+
var ul = new OpenLayers.LonLat(tileBounds.left, tileBounds.top);
var px = this.map.getLayerPxFromLonLat(ul);
@@ -26855,21 +26855,21 @@
var tile = this.grid[0][0];
if (!tile) {
tile = this.addTile(tileBounds, px);
-
+
this.addTileMonitoringHooks(tile);
tile.draw();
this.grid[0][0] = tile;
} else {
tile.moveTo(tileBounds, px);
- }
-
+ }
+
//remove all but our single tile
this.removeExcessTiles(1,1);
},
- /**
+ /**
* Method: calculateGridLayout
- * Generate parameters for the grid layout. This
+ * Generate parameters for the grid layout. This
*
* Parameters:
* bounds - {<OpenLayers.Bound>}
@@ -26883,20 +26883,20 @@
calculateGridLayout: function(bounds, extent, resolution) {
var tilelon = resolution * this.tileSize.w;
var tilelat = resolution * this.tileSize.h;
-
+
var offsetlon = bounds.left - extent.left;
var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
var tilecolremain = offsetlon/tilelon - tilecol;
var tileoffsetx = -tilecolremain * this.tileSize.w;
var tileoffsetlon = extent.left + tilecol * tilelon;
-
- var offsetlat = bounds.top - (extent.bottom + tilelat);
+
+ var offsetlat = bounds.top - (extent.bottom + tilelat);
var tilerow = Math.ceil(offsetlat/tilelat) + this.buffer;
var tilerowremain = tilerow - offsetlat/tilelat;
var tileoffsety = -tilerowremain * this.tileSize.h;
var tileoffsetlat = extent.bottom + tilerow * tilelat;
-
- return {
+
+ return {
tilelon: tilelon, tilelat: tilelat,
tileoffsetlon: tileoffsetlon, tileoffsetlat: tileoffsetlat,
tileoffsetx: tileoffsetx, tileoffsety: tileoffsety
@@ -26906,24 +26906,24 @@
/**
* Method: initGriddedTiles
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
initGriddedTiles:function(bounds) {
-
+
// work out mininum number of rows and columns; this is the number of
// tiles required to cover the viewport plus at least one for panning
var viewSize = this.map.getSize();
- var minRows = Math.ceil(viewSize.h/this.tileSize.h) +
+ var minRows = Math.ceil(viewSize.h/this.tileSize.h) +
Math.max(1, 2 * this.buffer);
var minCols = Math.ceil(viewSize.w/this.tileSize.w) +
Math.max(1, 2 * this.buffer);
-
+
var extent = this.maxExtent;
var resolution = this.map.getResolution();
-
+
var tileLayout = this.calculateGridLayout(bounds, extent, resolution);
var tileoffsetx = Math.round(tileLayout.tileoffsetx); // heaven help us
@@ -26931,21 +26931,21 @@
var tileoffsetlon = tileLayout.tileoffsetlon;
var tileoffsetlat = tileLayout.tileoffsetlat;
-
+
var tilelon = tileLayout.tilelon;
var tilelat = tileLayout.tilelat;
this.origin = new OpenLayers.Pixel(tileoffsetx, tileoffsety);
- var startX = tileoffsetx;
+ var startX = tileoffsetx;
var startLon = tileoffsetlon;
var rowidx = 0;
-
+
var layerContainerDivLeft = parseInt(this.map.layerContainerDiv.style.left);
var layerContainerDivTop = parseInt(this.map.layerContainerDiv.style.top);
-
-
+
+
do {
var row = this.grid[rowidx++];
if (!row) {
@@ -26956,11 +26956,11 @@
tileoffsetlon = startLon;
tileoffsetx = startX;
var colidx = 0;
-
+
do {
- var tileBounds =
- new OpenLayers.Bounds(tileoffsetlon,
- tileoffsetlat,
+ var tileBounds =
+ new OpenLayers.Bounds(tileoffsetlon,
+ tileoffsetlat,
tileoffsetlon + tilelon,
tileoffsetlat + tilelat);
@@ -26979,44 +26979,44 @@
} else {
tile.moveTo(tileBounds, px, false);
}
-
- tileoffsetlon += tilelon;
+
+ tileoffsetlon += tilelon;
tileoffsetx += this.tileSize.w;
} while ((tileoffsetlon <= bounds.right + tilelon * this.buffer)
|| colidx < minCols);
-
+
tileoffsetlat -= tilelat;
tileoffsety += this.tileSize.h;
} while((tileoffsetlat >= bounds.bottom - tilelat * this.buffer)
|| rowidx < minRows);
-
+
//shave off exceess rows and colums
this.removeExcessTiles(rowidx, colidx);
//now actually draw the tiles
this.spiralTileLoad();
},
-
+
/**
* Method: spiralTileLoad
- * Starts at the top right corner of the grid and proceeds in a spiral
- * towards the center, adding tiles one at a time to the beginning of a
- * queue.
- *
- * Once all the grid's tiles have been added to the queue, we go back
- * and iterate through the queue (thus reversing the spiral order from
- * outside-in to inside-out), calling draw() on each tile.
+ * Starts at the top right corner of the grid and proceeds in a spiral
+ * towards the center, adding tiles one at a time to the beginning of a
+ * queue.
+ *
+ * Once all the grid's tiles have been added to the queue, we go back
+ * and iterate through the queue (thus reversing the spiral order from
+ * outside-in to inside-out), calling draw() on each tile.
*/
spiralTileLoad: function() {
var tileQueue = [];
-
+
var directions = ["right", "down", "left", "up"];
var iRow = 0;
var iCell = -1;
var direction = OpenLayers.Util.indexOf(directions, "right");
var directionsTried = 0;
-
+
while( directionsTried < directions.length) {
var testRow = iRow;
@@ -27035,21 +27035,21 @@
case "up":
testRow--;
break;
- }
-
- // if the test grid coordinates are within the bounds of the
+ }
+
+ // if the test grid coordinates are within the bounds of the
// grid, get a reference to the tile.
var tile = null;
if ((testRow < this.grid.length) && (testRow >= 0) &&
(testCell < this.grid[0].length) && (testCell >= 0)) {
tile = this.grid[testRow][testCell];
}
-
+
if ((tile != null) && (!tile.queued)) {
//add tile to beginning of queue, mark it as queued.
tileQueue.unshift(tile);
tile.queued = true;
-
+
//restart the directions counter and take on the new coords
directionsTried = 0;
iRow = testRow;
@@ -27059,21 +27059,21 @@
direction = (direction + 1) % 4;
directionsTried++;
}
- }
-
+ }
+
// now we go through and draw the tiles in forward order
for(var i=0, len=tileQueue.length; i<len; i++) {
var tile = tileQueue[i];
tile.draw();
//mark tile as unqueued for the next time (since tiles are reused)
- tile.queued = false;
+ tile.queued = false;
}
},
/**
* APIMethod: addTile
- * Gives subclasses of Grid the opportunity to create an
- * OpenLayer.Tile of their choosing. The implementer should initialize
+ * Gives subclasses of Grid the opportunity to create an
+ * OpenLayer.Tile of their choosing. The implementer should initialize
* the new tile and take whatever steps necessary to display it.
*
* Parameters
@@ -27086,17 +27086,17 @@
addTile:function(bounds, position) {
// Should be implemented by subclasses
},
-
- /**
+
+ /**
* Method: addTileMonitoringHooks
- * This function takes a tile as input and adds the appropriate hooks to
+ * This function takes a tile as input and adds the appropriate hooks to
* the tile so that the layer can keep track of the loading tiles.
- *
- * Parameters:
+ *
+ * Parameters:
* tile - {<OpenLayers.Tile>}
*/
addTileMonitoringHooks: function(tile) {
-
+
tile.onLoadStart = function() {
//if that was first tile then trigger a 'loadstart' on the layer
if (this.numLoadingTiles == 0) {
@@ -27105,7 +27105,7 @@
this.numLoadingTiles++;
};
tile.events.register("loadstart", this, tile.onLoadStart);
-
+
tile.onLoadEnd = function() {
this.numLoadingTiles--;
this.events.triggerEvent("tileloaded");
@@ -27118,12 +27118,12 @@
tile.events.register("unload", this, tile.onLoadEnd);
},
- /**
+ /**
* Method: removeTileMonitoringHooks
- * This function takes a tile as input and removes the tile hooks
+ * This function takes a tile as input and removes the tile hooks
* that were added in addTileMonitoringHooks()
- *
- * Parameters:
+ *
+ * Parameters:
* tile - {<OpenLayers.Tile>}
*/
removeTileMonitoringHooks: function(tile) {
@@ -27135,10 +27135,10 @@
scope: this
});
},
-
+
/**
* Method: moveGriddedTiles
- *
+ *
* Parameters:
* bounds - {<OpenLayers.Bounds>}
*/
@@ -27146,7 +27146,7 @@
var buffer = this.buffer || 1;
while (true) {
var tlLayer = this.grid[0][0].position;
- var tlViewPort =
+ var tlViewPort =
this.map.getViewPortPxFromLayerPx(tlLayer);
if (tlViewPort.x > -this.tileSize.w * (buffer - 1)) {
this.shiftColumn(true);
@@ -27215,7 +27215,7 @@
var row = this.grid[i];
var modelTileIndex = (prepend) ? 0 : (row.length - 1);
var modelTile = row[modelTileIndex];
-
+
var bounds = modelTile.bounds.clone();
var position = modelTile.position.clone();
bounds.left = bounds.left + deltaLon;
@@ -27231,18 +27231,18 @@
}
}
},
-
+
/**
* Method: removeExcessTiles
* When the size of the map or the buffer changes, we may need to
* remove some excess rows and columns.
- *
+ *
* Parameters:
* rows - {Integer} Maximum number of rows we want our grid to have.
* colums - {Integer} Maximum number of columns we want our grid to have.
*/
removeExcessTiles: function(rows, columns) {
-
+
// remove extra rows
while (this.grid.length > rows) {
var row = this.grid.pop();
@@ -27252,7 +27252,7 @@
tile.destroy();
}
}
-
+
// remove extra columns
while (this.grid[0].length > columns) {
for (var i=0, l=this.grid.length; i<l; i++) {
@@ -27275,7 +27275,7 @@
this.setTileSize();
}
},
-
+
/**
* APIMethod: getTileBounds
* Returns The tile bounds for a layer given a pixel location.
@@ -27304,7 +27304,7 @@
tileLeft + tileMapWidth,
tileBottom + tileMapHeight);
},
-
+
CLASS_NAME: "OpenLayers.Layer.Grid"
});
/* ======================================================================
@@ -27323,7 +27323,7 @@
/**
* Class: OpenLayers.Layer.VirtualEarth
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
@@ -27331,40 +27331,40 @@
OpenLayers.Layer.VirtualEarth = OpenLayers.Class(
OpenLayers.Layer.EventPane,
OpenLayers.Layer.FixedZoomLevels, {
-
- /**
+
+ /**
* Constant: MIN_ZOOM_LEVEL
- * {Integer} 1
+ * {Integer} 1
*/
MIN_ZOOM_LEVEL: 1,
-
- /**
+
+ /**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 17
*/
MAX_ZOOM_LEVEL: 17,
- /**
+ /**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
- 1.40625,
- 0.703125,
- 0.3515625,
- 0.17578125,
- 0.087890625,
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
0.0439453125,
- 0.02197265625,
- 0.010986328125,
- 0.0054931640625,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
0.00274658203125,
- 0.001373291015625,
- 0.0006866455078125,
- 0.00034332275390625,
- 0.000171661376953125,
- 0.0000858306884765625,
+ 0.001373291015625,
+ 0.0006866455078125,
+ 0.00034332275390625,
+ 0.000171661376953125,
+ 0.0000858306884765625,
0.00004291534423828125,
0.00002145767211914062
],
@@ -27380,9 +27380,9 @@
* {Boolean} Should the map act as a mercator-projected map? This will
* cause all interactions with the map to be in the actual map
* projection, which allows support for vector drawing, overlaying
- * other maps, etc.
+ * other maps, etc.
*/
- sphericalMercator: false,
+ sphericalMercator: false,
/**
* APIProperty: animationEnabled
@@ -27390,25 +27390,25 @@
* animated. Set to false to match the zooming experience of other
* layer types. Default is true.
*/
- animationEnabled: true,
+ animationEnabled: true,
- /**
+ /**
* Constructor: OpenLayers.Layer.VirtualEarth
- *
+ *
* Parameters:
* name - {String}
* options - {Object}
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
- OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
+ OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
if(this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
}
},
-
+
/**
* Method: loadMapObject
*/
@@ -27428,21 +27428,23 @@
if (this.mapObject != null) {
try { // this is to catch a Mozilla bug without falling apart
- // The fourth argument is whether the map is 'fixed' -- not
- // draggable. See:
+ // The fourth argument is whether the map is 'fixed' -- not
+ // draggable. See:
// http://blogs.msdn.com/virtualearth/archive/2007/09/28/locking-a-virtual-earth-map.aspx
//
this.mapObject.LoadMap(null, null, this.type, true);
this.mapObject.AttachEvent("onmousedown", function() {return true; });
} catch (e) { }
+ this.mapObject.AttachEvent("onresize",
+ OpenLayers.Function.bindAsEventListener(this.redrawDependentLayers, this));
this.mapObject.HideDashboard();
if(typeof this.mapObject.SetAnimationEnabled == "function") {
this.mapObject.SetAnimationEnabled(this.animationEnabled);
}
}
- //can we do smooth panning? this is an unpublished method, so we need
+ //can we do smooth panning? this is an unpublished method, so we need
// to be careful
if ( !this.mapObject ||
!this.mapObject.vemapcontrol ||
@@ -27453,18 +27455,35 @@
}
},
-
+
/**
+ * Method: redrawDependentLayers
+ */
+ redrawDependentLayers: function(event) {
+ if(this.isBaseLayer)
+ {
+ for(var i=0, len=this.map.layers.length; i<len; i++)
+ {
+ var otherLayer = this.map.layers[i];
+ if(otherLayer != this)
+ {
+ otherLayer.redraw();
+ }
+ }
+ }
+ },
+
+ /**
* Method: onMapResize
*/
onMapResize: function() {
this.mapObject.Resize(this.map.size.w, this.map.size.h);
},
- /**
+ /**
* APIMethod: getWarningHTML
- *
- * Returns:
+ *
+ * Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
@@ -27485,22 +27504,22 @@
// Get&Set Center, Zoom
- /**
+ /**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
- *
+ *
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
- this.mapObject.SetCenterAndZoom(center, zoom);
+ this.mapObject.SetCenterAndZoom(center, zoom);
},
-
+
/**
* APIMethod: getMapObjectCenter
- *
- * Returns:
+ *
+ * Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
@@ -27509,7 +27528,7 @@
/**
* APIMethod: dragPanMapObject
- *
+ *
* Parameters:
* dX - {Integer}
* dY - {Integer}
@@ -27518,9 +27537,9 @@
this.mapObject.vemapcontrol.PanMap(dX, -dY);
},
- /**
+ /**
* APIMethod: getMapObjectZoom
- *
+ *
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
@@ -27530,29 +27549,29 @@
// LonLat - Pixel Translation
-
+
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
getMapObjectLonLatFromMapObjectPixel: function(moPixel) {
//the conditional here is to test if we are running the v6 of VE
- return (typeof VEPixel != 'undefined')
+ return (typeof VEPixel != 'undefined')
? this.mapObject.PixelToLatLong(moPixel)
: this.mapObject.PixelToLatLong(moPixel.x, moPixel.y);
},
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
@@ -27569,44 +27588,44 @@
// LonLat
-
+
/**
* APIMethod: getLongitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Longitude, moLonLat.Latitude).lon :
moLonLat.Longitude;
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Longitude, moLonLat.Latitude).lat :
moLonLat.Latitude;
},
/**
* APIMethod: getMapObjectLonLatFromLonLat
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
@@ -27622,13 +27641,13 @@
},
// Pixel
-
+
/**
* APIMethod: getXFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} X value of the MapObject Pixel
*/
@@ -27638,10 +27657,10 @@
/**
* APIMethod: getYFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
@@ -27651,11 +27670,11 @@
/**
* APIMethod: getMapObjectPixelFromXY
- *
+ *
* Parameters:
* x - {Integer}
* y - {Integer}
- *
+ *
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
@@ -27683,47 +27702,47 @@
/**
* Class: OpenLayers.Layer.Yahoo
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.EventPane>
* - <OpenLayers.Layer.FixedZoomLevels>
*/
OpenLayers.Layer.Yahoo = OpenLayers.Class(
OpenLayers.Layer.EventPane, OpenLayers.Layer.FixedZoomLevels, {
-
- /**
+
+ /**
* Constant: MIN_ZOOM_LEVEL
- * {Integer} 0
+ * {Integer} 0
*/
MIN_ZOOM_LEVEL: 0,
-
- /**
+
+ /**
* Constant: MAX_ZOOM_LEVEL
* {Integer} 17
*/
MAX_ZOOM_LEVEL: 17,
- /**
+ /**
* Constant: RESOLUTIONS
* {Array(Float)} Hardcode these resolutions so that they are more closely
* tied with the standard wms projection
*/
RESOLUTIONS: [
- 1.40625,
- 0.703125,
- 0.3515625,
- 0.17578125,
- 0.087890625,
+ 1.40625,
+ 0.703125,
+ 0.3515625,
+ 0.17578125,
+ 0.087890625,
0.0439453125,
- 0.02197265625,
- 0.010986328125,
- 0.0054931640625,
- 0.00274658203125,
- 0.001373291015625,
- 0.0006866455078125,
- 0.00034332275390625,
- 0.000171661376953125,
- 0.0000858306884765625,
+ 0.02197265625,
+ 0.010986328125,
+ 0.0054931640625,
+ 0.00274658203125,
+ 0.001373291015625,
+ 0.0006866455078125,
+ 0.00034332275390625,
+ 0.000171661376953125,
+ 0.0000858306884765625,
0.00004291534423828125,
0.00002145767211914062,
0.00001072883605957031
@@ -27734,69 +27753,69 @@
* {YahooMapType}
*/
type: null,
-
+
/**
* APIProperty: sphericalMercator
* {Boolean} Should the map act as a mercator-projected map? This will
* cause all interactions with the map to be in the actual map projection,
- * which allows support for vector drawing, overlaying other maps, etc.
+ * which allows support for vector drawing, overlaying other maps, etc.
*/
- sphericalMercator: false,
+ sphericalMercator: false,
- /**
+ /**
* Constructor: OpenLayers.Layer.Yahoo
- *
+ *
* Parameters:
* name - {String}
* options - {Object}
*/
initialize: function(name, options) {
OpenLayers.Layer.EventPane.prototype.initialize.apply(this, arguments);
- OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
+ OpenLayers.Layer.FixedZoomLevels.prototype.initialize.apply(this,
arguments);
if(this.sphericalMercator) {
OpenLayers.Util.extend(this, OpenLayers.Layer.SphericalMercator);
this.initMercatorParameters();
}
},
-
+
/**
* Method: loadMapObject
*/
loadMapObject:function() {
- try { //do not crash!
+ try { //do not crash!
var size = this.getMapObjectSizeFromOLSize(this.map.getSize());
this.mapObject = new YMap(this.div, this.type, size);
this.mapObject.disableKeyControls();
this.mapObject.disableDragMap();
//can we do smooth panning? (moveByXY is not an API function)
- if ( !this.mapObject.moveByXY ||
+ if ( !this.mapObject.moveByXY ||
(typeof this.mapObject.moveByXY != "function" ) ) {
this.dragPanMapObject = null;
- }
+ }
} catch(e) {}
},
/**
* Method: onMapResize
- *
+ *
*/
onMapResize: function() {
try {
var size = this.getMapObjectSizeFromOLSize(this.map.getSize());
this.mapObject.resizeTo(size);
- } catch(e) {}
- },
-
-
- /**
+ } catch(e) {}
+ },
+
+
+ /**
* APIMethod: setMap
* Overridden from EventPane because we need to remove this yahoo event
- * pane which prohibits our drag and drop, and we can only do this
+ * pane which prohibits our drag and drop, and we can only do this
* once the map has been loaded and centered.
- *
+ *
* Parameters:
* map - {<OpenLayers.Map>}
*/
@@ -27806,7 +27825,7 @@
this.map.events.register("moveend", this, this.fixYahooEventPane);
},
- /**
+ /**
* Method: fixYahooEventPane
* The map has been centered, so the mysterious yahoo eventpane has been
* added. we remove it so that it doesnt mess with *our* event pane.
@@ -27817,15 +27836,15 @@
if (yahooEventPane.parentNode != null) {
yahooEventPane.parentNode.removeChild(yahooEventPane);
}
- this.map.events.unregister("moveend", this,
+ this.map.events.unregister("moveend", this,
this.fixYahooEventPane);
}
},
- /**
+ /**
* APIMethod: getWarningHTML
- *
- * Returns:
+ *
+ * Returns:
* {String} String with information on why layer is broken, how to get
* it working.
*/
@@ -27839,7 +27858,7 @@
/* */
/* Translation Functions */
/* */
- /* The following functions translate GMaps and OL */
+ /* The following functions translate GMaps and OL */
/* formats for Pixel, LonLat, Bounds, and Zoom */
/* */
/********************************************************/
@@ -27848,13 +27867,13 @@
//
// TRANSLATION: MapObject Zoom <-> OpenLayers Zoom
//
-
+
/**
* APIMethod: getOLZoomFromMapObjectZoom
- *
+ *
* Parameters:
* gZoom - {Integer}
- *
+ *
* Returns:
* {Integer} An OpenLayers Zoom level, translated from the passed in gZoom
* Returns null if null value is passed in.
@@ -27867,19 +27886,19 @@
}
return zoom;
},
-
+
/**
* APIMethod: getMapObjectZoomFromOLZoom
- *
+ *
* Parameters:
* olZoom - {Integer}
- *
+ *
* Returns:
* {Integer} A MapObject level, translated from the passed in olZoom
* Returns null if null value is passed in
*/
getMapObjectZoomFromOLZoom: function(olZoom) {
- var zoom = null;
+ var zoom = null;
if (olZoom != null) {
zoom = OpenLayers.Layer.FixedZoomLevels.prototype.getMapObjectZoomFromOLZoom.apply(this, [olZoom]);
zoom = 18 - zoom;
@@ -27896,22 +27915,22 @@
// Get&Set Center, Zoom
- /**
+ /**
* APIMethod: setMapObjectCenter
* Set the mapObject to the specified center and zoom
- *
+ *
* Parameters:
* center - {Object} MapObject LonLat format
* zoom - {int} MapObject zoom format
*/
setMapObjectCenter: function(center, zoom) {
- this.mapObject.drawZoomAndCenter(center, zoom);
+ this.mapObject.drawZoomAndCenter(center, zoom);
},
-
+
/**
* APIMethod: getMapObjectCenter
- *
- * Returns:
+ *
+ * Returns:
* {Object} The mapObject's current center in Map Object format
*/
getMapObjectCenter: function() {
@@ -27920,7 +27939,7 @@
/**
* APIMethod: dragPanMapObject
- *
+ *
* Parameters:
* dX - {Integer}
* dY - {Integer}
@@ -27931,10 +27950,10 @@
'y': dY
});
},
-
- /**
+
+ /**
* APIMethod: getMapObjectZoom
- *
+ *
* Returns:
* {Integer} The mapObject's current zoom, in Map Object format
*/
@@ -27944,13 +27963,13 @@
// LonLat - Pixel Translation
-
+
/**
* APIMethod: getMapObjectLonLatFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Object} MapObject LonLat translated from MapObject Pixel
*/
@@ -27960,10 +27979,10 @@
/**
* APIMethod: getMapObjectPixelFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Object} MapObject Pixel transtlated from MapObject LonLat
*/
@@ -27980,44 +27999,44 @@
// LonLat
-
+
/**
* APIMethod: getLongitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Longitude of the given MapObject LonLat
*/
getLongitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Lon, moLonLat.Lat).lon :
moLonLat.Lon;
},
/**
* APIMethod: getLatitudeFromMapObjectLonLat
- *
+ *
* Parameters:
* moLonLat - {Object} MapObject LonLat format
- *
+ *
* Returns:
* {Float} Latitude of the given MapObject LonLat
*/
getLatitudeFromMapObjectLonLat: function(moLonLat) {
- return this.sphericalMercator ?
+ return this.sphericalMercator ?
this.forwardMercator(moLonLat.Lon, moLonLat.Lat).lat :
moLonLat.Lat;
},
/**
* APIMethod: getMapObjectLonLatFromLonLat
- *
+ *
* Parameters:
* lon - {Float}
* lat - {Float}
- *
+ *
* Returns:
* {Object} MapObject LonLat built from lon and lat params
*/
@@ -28033,13 +28052,13 @@
},
// Pixel
-
+
/**
* APIMethod: getXFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} X value of the MapObject Pixel
*/
@@ -28049,10 +28068,10 @@
/**
* APIMethod: getYFromMapObjectPixel
- *
+ *
* Parameters:
* moPixel - {Object} MapObject Pixel format
- *
+ *
* Returns:
* {Integer} Y value of the MapObject Pixel
*/
@@ -28062,33 +28081,33 @@
/**
* APIMethod: getMapObjectPixelFromXY
- *
+ *
* Parameters:
* x - {Integer}
* y - {Integer}
- *
+ *
* Returns:
* {Object} MapObject Pixel from x and y parameters
*/
getMapObjectPixelFromXY: function(x, y) {
return new YCoordPoint(x, y);
},
-
+
// Size
-
+
/**
* APIMethod: getMapObjectSizeFromOLSize
- *
+ *
* Parameters:
* olSize - {<OpenLayers.Size>}
- *
+ *
* Returns:
* {Object} MapObject Size from olSize parameter
*/
getMapObjectSizeFromOLSize: function(olSize) {
return new YSize(olSize.w, olSize.h);
},
-
+
CLASS_NAME: "OpenLayers.Layer.Yahoo"
});
/* ======================================================================
@@ -28136,7 +28155,7 @@
* Example: {'bbox': '5,5,5,5'}
*/
params: null,
-
+
/**
* Property: callback
* {Object} Function to be called when the <read>, <create>,
@@ -28169,7 +28188,7 @@
*
* Valid options include:
* url - {String}
- * headers - {Object}
+ * headers - {Object}
* params - {Object}
* format - {<OpenLayers.Format>}
* callback - {Function}
@@ -28180,7 +28199,7 @@
this.headers = {};
OpenLayers.Protocol.prototype.initialize.apply(this, arguments);
},
-
+
/**
* APIMethod: destroy
* Clean up the protocol.
@@ -28190,7 +28209,7 @@
this.headers = null;
OpenLayers.Protocol.prototype.destroy.apply(this);
},
-
+
/**
* Method: createCallback
* Returns a function that applies the given public method with resp and
@@ -28280,7 +28299,7 @@
handleRead: function(resp, options) {
this.handleResponse(resp, options);
},
-
+
/**
* APIMethod: create
* Construct a request for writing newly created features.
@@ -28293,7 +28312,7 @@
*
* Returns:
* {<OpenLayers.Protocol.Response>} An <OpenLayers.Protocol.Response>
- * object, whose "priv" property references the HTTP request, this
+ * object, whose "priv" property references the HTTP request, this
* object is also passed to the callback function when the request
* completes, its "features" property is then populated with the
* the features received from the server.
@@ -28341,7 +28360,7 @@
*
* Returns:
* {<OpenLayers.Protocol.Response>} An <OpenLayers.Protocol.Response>
- * object, whose "priv" property references the HTTP request, this
+ * object, whose "priv" property references the HTTP request, this
* object is also passed to the callback function when the request
* completes, its "features" property is then populated with the
* the feature received from the server.
@@ -28390,7 +28409,7 @@
*
* Returns:
* {<OpenLayers.Protocol.Response>} An <OpenLayers.Protocol.Response>
- * object, whose "priv" property references the HTTP request, this
+ * object, whose "priv" property references the HTTP request, this
* object is also passed to the callback function when the request
* completes.
*/
@@ -28501,7 +28520,7 @@
commit: function(features, options) {
options = OpenLayers.Util.applyDefaults(options, this.options);
var resp = [], nResponses = 0;
-
+
// Divide up features before issuing any requests. This properly
// counts requests in the event that any responses come in before
// all requests have been issued.
@@ -28515,42 +28534,42 @@
list = types[feature.state];
if(list) {
list.push(feature);
- requestFeatures.push(feature);
+ requestFeatures.push(feature);
}
}
// tally up number of requests
var nRequests = (types[OpenLayers.State.INSERT].length > 0 ? 1 : 0) +
types[OpenLayers.State.UPDATE].length +
types[OpenLayers.State.DELETE].length;
-
+
// This response will be sent to the final callback after all the others
// have been fired.
var success = true;
var finalResponse = new OpenLayers.Protocol.Response({
- reqFeatures: requestFeatures
+ reqFeatures: requestFeatures
});
-
+
function insertCallback(response) {
var len = response.features ? response.features.length : 0;
var fids = new Array(len);
for(var i=0; i<len; ++i) {
fids[i] = response.features[i].fid;
- }
+ }
finalResponse.insertIds = fids;
callback.apply(this, [response]);
}
-
+
function callback(response) {
this.callUserCallback(response, options);
success = success && response.success();
nResponses++;
if (nResponses >= nRequests) {
if (options.callback) {
- finalResponse.code = success ?
+ finalResponse.code = success ?
OpenLayers.Protocol.Response.SUCCESS :
OpenLayers.Protocol.Response.FAILURE;
options.callback.apply(options.scope, [finalResponse]);
- }
+ }
}
}
@@ -28614,7 +28633,7 @@
}
},
- CLASS_NAME: "OpenLayers.Protocol.HTTP"
+ CLASS_NAME: "OpenLayers.Protocol.HTTP"
});
/* ======================================================================
OpenLayers/Style.js
@@ -28642,13 +28661,13 @@
* {String}
*/
name: null,
-
+
/**
* Property: title
* {String} Title of this style (set if included in SLD)
*/
title: null,
-
+
/**
* Property: description
* {String} Description of this style (set if abstract is included in SLD)
@@ -28661,19 +28680,19 @@
* according to the NamedLayer attribute of an SLD document.
*/
layerName: null,
-
+
/**
* APIProperty: isDefault
* {Boolean}
*/
isDefault: false,
-
- /**
- * Property: rules
+
+ /**
+ * Property: rules
* {Array(<OpenLayers.Rule>)}
*/
rules: null,
-
+
/**
* Property: context
* {Object} An optional object with properties that symbolizers' property
@@ -28691,7 +28710,7 @@
* rules defined.
*/
defaultStyle: null,
-
+
/**
* Property: defaultsPerSymbolizer
* {Boolean} If set to true, the <defaultStyle> will extend the symbolizer
@@ -28700,16 +28719,16 @@
* graphic set to true. Default is false.
*/
defaultsPerSymbolizer: false,
-
+
/**
* Property: propertyStyles
* {Hash of Boolean} cache of style properties that need to be parsed for
* propertyNames. Property names are keys, values won't be used.
*/
propertyStyles: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Style
* Creates a UserStyle.
*
@@ -28724,7 +28743,7 @@
* Valid options:
* rules - {Array(<OpenLayers.Rule>)} List of rules to be added to the
* style.
- *
+ *
* Return:
* {<OpenLayers.Style>}
*/
@@ -28743,7 +28762,7 @@
},
- /**
+ /**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -28755,22 +28774,22 @@
this.rules = null;
this.defaultStyle = null;
},
-
+
/**
* Method: createSymbolizer
* creates a style by applying all feature-dependent rules to the base
* style.
- *
+ *
* Parameters:
* feature - {<OpenLayers.Feature>} feature to evaluate rules for
- *
+ *
* Returns:
* {Object} symbolizer hash
*/
createSymbolizer: function(feature) {
var style = this.defaultsPerSymbolizer ? {} : this.createLiterals(
OpenLayers.Util.extend({}, this.defaultStyle), feature);
-
+
var rules = this.rules;
var rule, context;
@@ -28780,7 +28799,7 @@
rule = rules[i];
// does the rule apply?
var applies = rule.evaluate(feature);
-
+
if(applies) {
if(rule instanceof OpenLayers.Rule && rule.elseFilter) {
elseRules.push(rule);
@@ -28790,7 +28809,7 @@
}
}
}
-
+
// if no other rules apply, apply the rules with else filters
if(appliedRules == false && elseRules.length > 0) {
appliedRules = true;
@@ -28803,10 +28822,10 @@
if(rules.length > 0 && appliedRules == false) {
style.display = "none";
}
-
+
return style;
},
-
+
/**
* Method: applySymbolizer
*
@@ -28824,7 +28843,7 @@
OpenLayers.Style.SYMBOLIZER_PREFIXES[0];
var symbolizer = rule.symbolizer[symbolizerPrefix] || rule.symbolizer;
-
+
if(this.defaultsPerSymbolizer === true) {
var defaults = this.defaultStyle;
OpenLayers.Util.applyDefaults(symbolizer, {
@@ -28863,35 +28882,35 @@
return this.createLiterals(
OpenLayers.Util.extend(style, symbolizer), feature);
},
-
+
/**
* Method: createLiterals
* creates literals for all style properties that have an entry in
* <this.propertyStyles>.
- *
+ *
* Parameters:
* style - {Object} style to create literals for. Will be modified
* inline.
* feature - {Object}
- *
+ *
* Returns:
* {Object} the modified style
*/
createLiterals: function(style, feature) {
var context = this.context || feature.attributes || feature.data;
-
+
for (var i in this.propertyStyles) {
style[i] = OpenLayers.Style.createLiteral(style[i], context, feature);
}
return style;
},
-
+
/**
* Method: findPropertyStyles
* Looks into all rules for this style and the defaultStyle to collect
* all the style hash property names containing ${...} strings that have
* to be replaced using the createLiteral method before returning them.
- *
+ *
* Returns:
* {Object} hash of property names that need createLiteral parsing. The
* name of the property is the key, and the value is true;
@@ -28922,15 +28941,15 @@
}
return propertyStyles;
},
-
+
/**
* Method: addPropertyStyles
- *
+ *
* Parameters:
* propertyStyles - {Object} hash to add new property styles to. Will be
* modified inline
* symbolizer - {Object} search this symbolizer for property styles
- *
+ *
* Returns:
* {Object} propertyStyles hash
*/
@@ -28945,11 +28964,11 @@
}
return propertyStyles;
},
-
+
/**
* APIMethod: addRules
* Adds rules to this style.
- *
+ *
* Parameters:
* rules - {Array(<OpenLayers.Rule>)}
*/
@@ -28957,27 +28976,27 @@
this.rules = this.rules.concat(rules);
this.propertyStyles = this.findPropertyStyles();
},
-
+
/**
* APIMethod: setDefaultStyle
* Sets the default style for this style object.
- *
+ *
* Parameters:
* style - {Object} Hash of style properties
*/
setDefaultStyle: function(style) {
- this.defaultStyle = style;
+ this.defaultStyle = style;
this.propertyStyles = this.findPropertyStyles();
},
-
+
/**
* Method: getSymbolizerPrefix
* Returns the correct symbolizer prefix according to the
* geometry type of the passed geometry
- *
+ *
* Parameters:
* geometry {<OpenLayers.Geometry>}
- *
+ *
* Returns:
* {String} key of the according symbolizer
*/
@@ -28989,7 +29008,7 @@
}
}
},
-
+
CLASS_NAME: "OpenLayers.Style"
});
@@ -28998,7 +29017,7 @@
* Function: createLiteral
* converts a style value holding a combination of PropertyName and Literal
* into a Literal, taking the property values from the passed features.
- *
+ *
* Parameters:
* value - {String} value to parse. If this string contains a construct like
* "foo ${bar}", then "foo " will be taken as literal, and "${bar}"
@@ -29007,7 +29026,7 @@
* context - {Object} context to take attribute values from
* feature - {OpenLayers.Feature.Vector} The feature that will be passed
* to <OpenLayers.String.format> for evaluating functions in the context.
- *
+ *
* Returns:
* {String} the parsed value. In the example of the value parameter above, the
* result would be "foo valueOfBar", assuming that the passed feature has an
@@ -29020,7 +29039,7 @@
}
return value;
};
-
+
/**
* Constant: OpenLayers.Style.SYMBOLIZER_PREFIXES
* {Array} prefixes of the sld symbolizers. These are the
@@ -29045,21 +29064,21 @@
/**
* Class: OpenLayers.Control.Navigation
* The navigation control handles map browsing with mouse events (dragging,
- * double-clicking, and scrolling the wheel). Create a new navigation
- * control with the <OpenLayers.Control.Navigation> control.
- *
- * Note that this control is added to the map by default (if no controls
- * array is sent in the options object to the <OpenLayers.Map>
+ * double-clicking, and scrolling the wheel). Create a new navigation
+ * control with the <OpenLayers.Control.Navigation> control.
+ *
+ * Note that this control is added to the map by default (if no controls
+ * array is sent in the options object to the <OpenLayers.Map>
* constructor).
- *
+ *
* Inherits:
* - <OpenLayers.Control>
*/
OpenLayers.Control.Navigation = OpenLayers.Class(OpenLayers.Control, {
- /**
+ /**
* Property: dragPan
- * {<OpenLayers.Control.DragPan>}
+ * {<OpenLayers.Control.DragPan>}
*/
dragPan: null,
@@ -29069,7 +29088,7 @@
*/
dragPanOptions: null,
- /**
+ /**
* Property: zoomBox
* {<OpenLayers.Control.ZoomBox>}
*/
@@ -29079,7 +29098,7 @@
* APIProperty: zoomWheelEnabled
* {Boolean} Whether the mousewheel should zoom the map
*/
- zoomWheelEnabled: true,
+ zoomWheelEnabled: true,
/**
* APIProperty: handleRightClicks
@@ -29090,18 +29109,18 @@
/**
* APIProperty: zoomBoxKeyMask
* {Integer} <OpenLayers.Handler> key code of the key, which has to be
- * pressed, while drawing the zoom box with the mouse on the screen.
+ * pressed, while drawing the zoom box with the mouse on the screen.
* You should probably set handleRightClicks to true if you use this
* with MOD_CTRL, to disable the context menu for machines which use
* CTRL-Click as a right click.
* Default: <OpenLayers.Handler.MOD_SHIFT
*/
zoomBoxKeyMask: OpenLayers.Handler.MOD_SHIFT,
-
+
/**
* Constructor: OpenLayers.Control.Navigation
* Create a new navigation control
- *
+ *
* Parameters:
* options - {Object} An optional object whose properties will be set on
* the control
@@ -29131,7 +29150,7 @@
this.zoomBox = null;
OpenLayers.Control.prototype.destroy.apply(this,arguments);
},
-
+
/**
* Method: activate
*/
@@ -29139,7 +29158,7 @@
this.dragPan.activate();
if (this.zoomWheelEnabled) {
this.handlers.wheel.activate();
- }
+ }
this.handlers.click.activate();
this.zoomBox.activate();
return OpenLayers.Control.prototype.activate.apply(this,arguments);
@@ -29155,7 +29174,7 @@
this.handlers.wheel.deactivate();
return OpenLayers.Control.prototype.deactivate.apply(this,arguments);
},
-
+
/**
* Method: draw
*/
@@ -29165,12 +29184,12 @@
this.map.viewPortDiv.oncontextmenu = function () { return false;};
}
- var clickCallbacks = {
- 'dblclick': this.defaultDblClick,
- 'dblrightclick': this.defaultDblRightClick
+ var clickCallbacks = {
+ 'dblclick': this.defaultDblClick,
+ 'dblrightclick': this.defaultDblRightClick
};
var clickOptions = {
- 'double': true,
+ 'double': true,
'stopDouble': true
};
this.handlers.click = new OpenLayers.Handler.Click(
@@ -29190,29 +29209,29 @@
},
/**
- * Method: defaultDblClick
- *
+ * Method: defaultDblClick
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
defaultDblClick: function (evt) {
- var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
+ var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
this.map.setCenter(newCenter, this.map.zoom + 1);
},
/**
- * Method: defaultDblRightClick
- *
+ * Method: defaultDblRightClick
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
defaultDblRightClick: function (evt) {
- var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
+ var newCenter = this.map.getLonLatFromViewPortPx( evt.xy );
this.map.setCenter(newCenter, this.map.zoom - 1);
},
-
+
/**
- * Method: wheelChange
+ * Method: wheelChange
*
* Parameters:
* evt - {Event}
@@ -29234,10 +29253,10 @@
this.map.setCenter( newCenter, newZoom );
},
- /**
+ /**
* Method: wheelUp
* User spun scroll wheel up
- *
+ *
* Parameters:
* evt - {Event}
*/
@@ -29245,35 +29264,35 @@
this.wheelChange(evt, 1);
},
- /**
+ /**
* Method: wheelDown
* User spun scroll wheel down
- *
+ *
* Parameters:
* evt - {Event}
*/
wheelDown: function(evt) {
this.wheelChange(evt, -1);
},
-
+
/**
* Method: disableZoomWheel
*/
-
+
disableZoomWheel : function() {
this.zoomWheelEnabled = false;
- this.handlers.wheel.deactivate();
+ this.handlers.wheel.deactivate();
},
-
+
/**
* Method: enableZoomWheel
*/
-
+
enableZoomWheel : function() {
this.zoomWheelEnabled = true;
if (this.active) {
this.handlers.wheel.activate();
- }
+ }
},
CLASS_NAME: "OpenLayers.Control.Navigation"
@@ -29285,7 +29304,7 @@
/* Copyright (c) 2006-2008 MetaCarta, Inc., published under the Clear BSD
* license. See http://svn.openlayers.org/trunk/openlayers/license.txt for the
* full text of the license. */
-
+
/**
* @requires OpenLayers/Format/WKT.js
* @requires OpenLayers/Feature/Vector.js
@@ -29313,19 +29332,19 @@
parent: null,
/**
- * Property: bounds
+ * Property: bounds
* {<OpenLayers.Bounds>} The bounds of this geometry
*/
bounds: null,
/**
* Constructor: OpenLayers.Geometry
- * Creates a geometry object.
+ * Creates a geometry object.
*/
initialize: function() {
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME+ "_");
},
-
+
/**
* Method: destroy
* Destroy this geometry.
@@ -29334,31 +29353,31 @@
this.id = null;
this.bounds = null;
},
-
+
/**
* APIMethod: clone
* Create a clone of this geometry. Does not set any non-standard
* properties of the cloned geometry.
- *
+ *
* Returns:
* {<OpenLayers.Geometry>} An exact clone of this geometry.
*/
clone: function() {
return new OpenLayers.Geometry();
},
-
+
/**
* Set the bounds for this Geometry.
- *
+ *
* Parameters:
- * object - {<OpenLayers.Bounds>}
+ * object - {<OpenLayers.Bounds>}
*/
setBounds: function(bounds) {
if (bounds) {
this.bounds = bounds.clone();
}
},
-
+
/**
* Method: clearBounds
* Nullify this components bounds and that of its parent as well.
@@ -29367,16 +29386,16 @@
this.bounds = null;
if (this.parent) {
this.parent.clearBounds();
- }
+ }
},
-
+
/**
* Method: extendBounds
- * Extend the existing bounds to include the new bounds.
+ * Extend the existing bounds to include the new bounds.
* If geometry's bounds is not yet set, then set a new Bounds.
- *
+ *
* Parameters:
- * newBounds - {<OpenLayers.Bounds>}
+ * newBounds - {<OpenLayers.Bounds>}
*/
extendBounds: function(newBounds){
var bounds = this.getBounds();
@@ -29386,12 +29405,12 @@
this.bounds.extend(newBounds);
}
},
-
+
/**
* APIMethod: getBounds
- * Get the bounds for this Geometry. If bounds is not set, it
+ * Get the bounds for this Geometry. If bounds is not set, it
* is calculated again, this makes queries faster.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
@@ -29401,17 +29420,17 @@
}
return this.bounds;
},
-
- /**
+
+ /**
* APIMethod: calculateBounds
- * Recalculate the bounds for the geometry.
+ * Recalculate the bounds for the geometry.
*/
calculateBounds: function() {
//
// This should be overridden by subclasses.
//
},
-
+
/**
* APIMethod: distanceTo
* Calculate the closest distance between two geometries (on the x-y plane).
@@ -29422,7 +29441,7 @@
* calculation.
*
* Valid options depend on the specific geometry type.
- *
+ *
* Returns:
* {Number | Object} The distance between this geometry and the target.
* If details is true, the return will be an object with distance,
@@ -29433,7 +29452,7 @@
*/
distanceTo: function(geometry, options) {
},
-
+
/**
* APIMethod: getVertices
* Return a list of all points in this geometry.
@@ -29452,14 +29471,14 @@
/**
* Method: atPoint
- * Note - This is only an approximation based on the bounds of the
+ * Note - This is only an approximation based on the bounds of the
* geometry.
- *
+ *
* Parameters:
- * lonlat - {<OpenLayers.LonLat>}
+ * lonlat - {<OpenLayers.LonLat>}
* toleranceLon - {float} Optional tolerance in Geometric Coords
* toleranceLat - {float} Optional tolerance in Geographic Coords
- *
+ *
* Returns:
* {Boolean} Whether or not the geometry is at the specified location
*/
@@ -29470,8 +29489,8 @@
var dX = (toleranceLon != null) ? toleranceLon : 0;
var dY = (toleranceLat != null) ? toleranceLat : 0;
-
- var toleranceBounds =
+
+ var toleranceBounds =
new OpenLayers.Bounds(this.bounds.left - dX,
this.bounds.bottom - dY,
this.bounds.right + dX,
@@ -29481,12 +29500,12 @@
}
return atPoint;
},
-
+
/**
* Method: getLength
* Calculate the length of this geometry. This method is defined in
* subclasses.
- *
+ *
* Returns:
* {Float} The length of the collection by summing its parts
*/
@@ -29499,7 +29518,7 @@
/**
* Method: getArea
* Calculate the area of this geometry. This method is defined in subclasses.
- *
+ *
* Returns:
* {Float} The area of the collection by summing its parts
*/
@@ -29508,7 +29527,7 @@
//
return 0.0;
},
-
+
/**
* APIMethod: getCentroid
* Calculate the centroid of this geometry. This method is defined in subclasses.
@@ -29566,7 +29585,7 @@
}
return geom;
};
-
+
/**
* Method: OpenLayers.Geometry.segmentsIntersect
* Determine whether two line segments intersect. Optionally calculates
@@ -29665,7 +29684,7 @@
}
}
}
-
+
}
} else {
// no calculated intersection, but segments could be within
@@ -29760,52 +29779,52 @@
*/
OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
- /**
+ /**
* APIProperty: isBaseLayer
* {Boolean} Treat this layer as a base layer. Default is true.
**/
isBaseLayer: true,
-
+
/**
* APIProperty: useHttpTile
- * {Boolean} use a tile cache exposed directly via a webserver rather than the
- * via mapguide server. This does require extra configuration on the Mapguide Server,
- * and will only work when singleTile is false. The url for the layer must be set to the
- * webserver path rather than the Mapguide mapagent.
- * See http://trac.osgeo.org/mapguide/wiki/CodeSamples/Tiles/ServingTilesViaHttp
+ * {Boolean} use a tile cache exposed directly via a webserver rather than the
+ * via mapguide server. This does require extra configuration on the Mapguide Server,
+ * and will only work when singleTile is false. The url for the layer must be set to the
+ * webserver path rather than the Mapguide mapagent.
+ * See http://trac.osgeo.org/mapguide/wiki/CodeSamples/Tiles/ServingTilesViaHttp
**/
useHttpTile: false,
-
- /**
+
+ /**
* APIProperty: singleTile
- * {Boolean} use tile server or request single tile image.
+ * {Boolean} use tile server or request single tile image.
**/
singleTile: false,
-
- /**
+
+ /**
* APIProperty: useOverlay
* {Boolean} flag to indicate if the layer should be retrieved using
* GETMAPIMAGE (default) or using GETDYNAMICOVERLAY requests.
**/
useOverlay: false,
-
- /**
+
+ /**
* APIProperty: useAsyncOverlay
- * {Boolean} indicates if the MapGuide site supports the asynchronous
+ * {Boolean} indicates if the MapGuide site supports the asynchronous
* GETDYNAMICOVERLAY requests which is available in MapGuide Enterprise 2010
- * and MapGuide Open Source v2.0.3 or higher. The newer versions of MG
- * is called asynchronously, allows selections to be drawn separately from
+ * and MapGuide Open Source v2.0.3 or higher. The newer versions of MG
+ * is called asynchronously, allows selections to be drawn separately from
* the map and offers styling options.
- *
+ *
* With older versions of MapGuide, set useAsyncOverlay=false. Note that in
* this case a synchronous AJAX call is issued and the mapname and session
* parameters must be used to initialize the layer, not the mapdefinition
- * parameter. Also note that this will issue a synchronous AJAX request
+ * parameter. Also note that this will issue a synchronous AJAX request
* before the image request can be issued so the users browser may lock
* up if the MG Web tier does not respond in a timely fashion.
**/
useAsyncOverlay: true,
-
+
/**
* Constant: TILE_PARAMS
* {Object} Hashtable of default parameter key/value pairs for tiled layer
@@ -29826,7 +29845,7 @@
clip: '1',
version: '1.0.0'
},
-
+
/**
* Constant: OVERLAY_PARAMS
* {Object} Hashtable of default parameter key/value pairs for untiled layer
@@ -29838,11 +29857,11 @@
clip: '1',
version: '2.0.0'
},
-
- /**
+
+ /**
* Constant: FOLDER_PARAMS
- * {Object} Hashtable of parameter key/value pairs which describe
- * the folder structure for tiles as configured in the mapguide
+ * {Object} Hashtable of parameter key/value pairs which describe
+ * the folder structure for tiles as configured in the mapguide
* serverconfig.ini section [TileServiceProperties]
*/
FOLDER_PARAMS: {
@@ -29850,9 +29869,9 @@
tileRowsPerFolder: 30,
format: 'png',
querystring: null
- },
+ },
- /**
+ /**
* Property: defaultSize
* {<OpenLayers.Size>} Tile size as produced by MapGuide server
**/
@@ -29860,21 +29879,21 @@
/**
* Constructor: OpenLayers.Layer.MapGuide
- * Create a new Mapguide layer, either tiled or untiled.
+ * Create a new Mapguide layer, either tiled or untiled.
*
- * For tiled layers, the 'groupName' and 'mapDefinition' values
+ * For tiled layers, the 'groupName' and 'mapDefinition' values
* must be specified as parameters in the constructor.
*
* For untiled base layers, specify either combination of 'mapName' and
- * 'session', or 'mapDefinition' and 'locale'.
+ * 'session', or 'mapDefinition' and 'locale'.
*
- * For older versions of MapGuide and overlay layers, set useAsyncOverlay
- * to false and in this case mapName and session are required parameters
+ * For older versions of MapGuide and overlay layers, set useAsyncOverlay
+ * to false and in this case mapName and session are required parameters
* for the constructor.
*
- * NOTE: MapGuide OS uses a DPI value and degrees to meters conversion
- * factor that are different than the defaults used in OpenLayers,
- * so these must be adjusted accordingly in your application.
+ * NOTE: MapGuide OS uses a DPI value and degrees to meters conversion
+ * factor that are different than the defaults used in OpenLayers,
+ * so these must be adjusted accordingly in your application.
* See the MapGuide example for how to set these values for MGOS.
*
* Parameters:
@@ -29883,14 +29902,14 @@
* (e.g. http://localhost:8008/mapguide/mapagent/mapagent.fcgi)
* params - {Object} hashtable of additional parameters to use. Some
* parameters may require additional code on the server. The ones that
- * you may want to use are:
+ * you may want to use are:
* - mapDefinition - {String} The MapGuide resource definition
* (e.g. Library://Samples/Gmap/Maps/gmapTiled.MapDefinition)
- * - locale - Locale setting
+ * - locale - Locale setting
* (for untiled overlays layers only)
* - mapName - {String} Name of the map as stored in the MapGuide session.
* (for untiled layers with a session parameter only)
- * - session - { String} MapGuide session ID
+ * - session - { String} MapGuide session ID
* (for untiled overlays layers only)
* - basemaplayergroupname - {String} GroupName for tiled MapGuide layers only
* - format - Image format to be returned (for untiled overlay layers only)
@@ -29904,24 +29923,24 @@
* groups to hide eg: 'cvc-xcv34,453-345-345sdf'
* - selectionXml - {String} A selection xml string Some server plumbing
* is required to read such a value.
- * options - {Ojbect} Hashtable of extra options to tag onto the layer;
+ * options - {Ojbect} Hashtable of extra options to tag onto the layer;
* will vary depending if tiled or untiled maps are being requested
*/
initialize: function(name, url, params, options) {
-
+
OpenLayers.Layer.Grid.prototype.initialize.apply(this, arguments);
-
- // unless explicitly set in options, if the layer is transparent,
+
+ // unless explicitly set in options, if the layer is transparent,
// it will be an overlay
if (options == null || options.isBaseLayer == null) {
- this.isBaseLayer = ((this.transparent != "true") &&
+ this.isBaseLayer = ((this.transparent != "true") &&
(this.transparent != true));
}
if (options && options.useOverlay!=null) {
this.useOverlay = options.useOverlay;
}
-
+
//initialize for untiled layers
if (this.singleTile) {
if (this.useOverlay) {
@@ -29937,7 +29956,7 @@
this.params,
this.SINGLE_TILE_PARAMS
);
- }
+ }
} else {
//initialize for tiled layers
if (this.useHttpTile) {
@@ -29951,7 +29970,7 @@
this.TILE_PARAMS
);
}
- this.setTileSize(this.defaultSize);
+ this.setTileSize(this.defaultSize);
}
},
@@ -29977,17 +29996,17 @@
/**
* Method: addTile
- * Creates a tile, initializes it, and adds it to the layer div.
+ * Creates a tile, initializes it, and adds it to the layer div.
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* position - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
*/
addTile:function(bounds,position) {
- return new OpenLayers.Tile.Image(this, position, bounds,
+ return new OpenLayers.Tile.Image(this, position, bounds,
null, this.tileSize);
},
@@ -29996,12 +30015,12 @@
* Return a query string for this layer
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
+ * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
* for the request
*
* Returns:
- * {String} A string with the layer's url and parameters and also
- * the passed-in bounds and appropriate tile size specified
+ * {String} A string with the layer's url and parameters and also
+ * the passed-in bounds and appropriate tile size specified
* as parameters.
*/
getURL: function (bounds) {
@@ -30020,7 +30039,7 @@
setviewcentery: center.lat,
setviewscale: this.map.getScale()
};
-
+
if (this.useOverlay && !this.useAsyncOverlay) {
//first we need to call GETVISIBLEMAPEXTENT to set the extent
var getVisParams = {};
@@ -30031,7 +30050,7 @@
getVisParams.mapName = this.params.mapName;
getVisParams.format = 'text/xml';
url = this.getFullRequestString( getVisParams );
-
+
OpenLayers.Request.GET({url: url, async: false});
}
//construct the full URL
@@ -30046,13 +30065,13 @@
rowidx = Math.round(rowidx/this.tileSize.h);
if (this.useHttpTile){
- url = this.getImageFilePath(
+ url = this.getImageFilePath(
{
tilecol: colidx,
tilerow: rowidx,
scaleindex: this.resolutions.length - this.map.zoom - 1
});
-
+
} else {
url = this.getFullRequestString(
{
@@ -30067,7 +30086,7 @@
/**
* Method: getFullRequestString
- * getFullRequestString on MapGuide layers is special, because we
+ * getFullRequestString on MapGuide layers is special, because we
* do a regular expression replace on ',' in parameters to '+'.
* This is why it is subclassed here.
*
@@ -30080,17 +30099,17 @@
getFullRequestString:function(newParams, altUrl) {
// use layer's url unless altUrl passed in
var url = (altUrl == null) ? this.url : altUrl;
-
- // if url is not a string, it should be an array of strings,
+
+ // if url is not a string, it should be an array of strings,
// in which case we will randomly select one of them in order
// to evenly distribute requests to different urls.
if (typeof url == "object") {
url = url[Math.floor(Math.random()*url.length)];
- }
+ }
// requestString always starts with url
- var requestString = url;
+ var requestString = url;
- // create a new params hashtable with all the layer params and the
+ // create a new params hashtable with all the layer params and the
// new params together. then convert to string
var allParams = OpenLayers.Util.extend({}, this.params);
allParams = OpenLayers.Util.extend(allParams, newParams);
@@ -30103,7 +30122,7 @@
}
}
var paramsString = OpenLayers.Util.getParameterString(allParams);
-
+
/* MapGuide needs '+' seperating things like bounds/height/width.
Since typically this is URL encoded, we use a slight hack: we
depend on the list-like functionality of getParameterString to
@@ -30111,7 +30130,7 @@
encoded) then do a regular expression replace on the , characters
to '+' */
paramsString = paramsString.replace(/,/g, "+");
-
+
if (paramsString != "") {
var lastServerChar = url.charAt(url.length - 1);
if ((lastServerChar == "&") || (lastServerChar == "?")) {
@@ -30129,9 +30148,9 @@
return requestString;
},
- /**
+ /**
* Method: getImageFilePath
- * special handler to request mapguide tiles from an http exposed tilecache
+ * special handler to request mapguide tiles from an http exposed tilecache
*
* Parameters:
* altUrl - {String} Alternative base URL to use.
@@ -30142,58 +30161,58 @@
getImageFilePath:function(newParams, altUrl) {
// use layer's url unless altUrl passed in
var url = (altUrl == null) ? this.url : altUrl;
-
- // if url is not a string, it should be an array of strings,
+
+ // if url is not a string, it should be an array of strings,
// in which case we will randomly select one of them in order
// to evenly distribute requests to different urls.
if (typeof url == "object") {
url = url[Math.floor(Math.random()*url.length)];
- }
+ }
// requestString always starts with url
- var requestString = url;
+ var requestString = url;
var tileRowGroup = "";
var tileColGroup = "";
-
+
if (newParams.tilerow < 0) {
tileRowGroup = '-';
}
-
+
if (newParams.tilerow == 0 ) {
tileRowGroup += '0';
} else {
tileRowGroup += Math.floor(Math.abs(newParams.tilerow/this.params.tileRowsPerFolder)) * this.params.tileRowsPerFolder;
}
-
+
if (newParams.tilecol < 0) {
tileColGroup = '-';
}
-
+
if (newParams.tilecol == 0) {
tileColGroup += '0';
} else {
tileColGroup += Math.floor(Math.abs(newParams.tilecol/this.params.tileColumnsPerFolder)) * this.params.tileColumnsPerFolder;
- }
-
+ }
+
var tilePath = '/S' + Math.floor(newParams.scaleindex)
+ '/' + this.params.basemaplayergroupname
+ '/R' + tileRowGroup
+ '/C' + tileColGroup
- + '/' + (newParams.tilerow % this.params.tileRowsPerFolder)
- + '_' + (newParams.tilecol % this.params.tileColumnsPerFolder)
+ + '/' + (newParams.tilerow % this.params.tileRowsPerFolder)
+ + '_' + (newParams.tilecol % this.params.tileColumnsPerFolder)
+ '.' + this.params.format;
-
+
if (this.params.querystring) {
tilePath += "?" + this.params.querystring;
}
-
+
requestString += tilePath;
return requestString;
},
-
- /**
+
+ /**
* Method: calculateGridLayout
- * Generate parameters for the grid layout. This
+ * Generate parameters for the grid layout. This
*
* Parameters:
* bounds - {<OpenLayers.Bound>}
@@ -30207,26 +30226,26 @@
calculateGridLayout: function(bounds, extent, resolution) {
var tilelon = resolution * this.tileSize.w;
var tilelat = resolution * this.tileSize.h;
-
+
var offsetlon = bounds.left - extent.left;
var tilecol = Math.floor(offsetlon/tilelon) - this.buffer;
var tilecolremain = offsetlon/tilelon - tilecol;
var tileoffsetx = -tilecolremain * this.tileSize.w;
var tileoffsetlon = extent.left + tilecol * tilelon;
-
- var offsetlat = extent.top - bounds.top + tilelat;
+
+ var offsetlat = extent.top - bounds.top + tilelat;
var tilerow = Math.floor(offsetlat/tilelat) - this.buffer;
var tilerowremain = tilerow - offsetlat/tilelat;
var tileoffsety = tilerowremain * this.tileSize.h;
var tileoffsetlat = extent.top - tilelat*tilerow;
-
- return {
+
+ return {
tilelon: tilelon, tilelat: tilelat,
tileoffsetlon: tileoffsetlon, tileoffsetlat: tileoffsetlat,
tileoffsetx: tileoffsetx, tileoffsety: tileoffsety
};
},
-
+
CLASS_NAME: "OpenLayers.Layer.MapGuide"
});
/* ======================================================================
@@ -30253,7 +30272,7 @@
/**
* Constant: DEFAULT_PARAMS
- * {Object} Hashtable of default parameter key/value pairs
+ * {Object} Hashtable of default parameter key/value pairs
*/
DEFAULT_PARAMS: {
mode: "map",
@@ -30281,10 +30300,10 @@
this.params, this.DEFAULT_PARAMS
);
- // unless explicitly set in options, if the layer is transparent,
+ // unless explicitly set in options, if the layer is transparent,
// it will be an overlay
if (options == null || options.isBaseLayer == null) {
- this.isBaseLayer = ((this.params.transparent != "true") &&
+ this.isBaseLayer = ((this.params.transparent != "true") &&
(this.params.transparent != true));
}
},
@@ -30313,41 +30332,41 @@
/**
* Method: addTile
- * Creates a tile, initializes it, and adds it to the layer div.
+ * Creates a tile, initializes it, and adds it to the layer div.
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* position - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
*/
addTile:function(bounds,position) {
- return new OpenLayers.Tile.Image(this, position, bounds,
+ return new OpenLayers.Tile.Image(this, position, bounds,
null, this.tileSize);
},
-
+
/**
* Method: getURL
* Return a query string for this layer
*
* Parameters:
- * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
+ * bounds - {<OpenLayers.Bounds>} A bounds representing the bbox
* for the request
*
* Returns:
- * {String} A string with the layer's url and parameters and also
- * the passed-in bounds and appropriate tile size specified
+ * {String} A string with the layer's url and parameters and also
+ * the passed-in bounds and appropriate tile size specified
* as parameters.
*/
getURL: function (bounds) {
bounds = this.adjustBounds(bounds);
- // Make a list, so that getFullRequestString uses literal ","
+ // Make a list, so that getFullRequestString uses literal ","
var extent = [bounds.left, bounds. bottom, bounds.right, bounds.top];
- var imageSize = this.getImageSize();
-
- // make lists, so that literal ','s are used
+ var imageSize = this.getImageSize();
+
+ // make lists, so that literal ','s are used
var url = this.getFullRequestString(
{mapext: extent,
imgext: extent,
@@ -30356,40 +30375,40 @@
imgy: imageSize.h / 2,
imgxy: [imageSize.w, imageSize.h]
});
-
+
return url;
},
-
- /**
+
+ /**
* Method: getFullRequestString
- * combine the layer's url with its params and these newParams.
- *
+ * combine the layer's url with its params and these newParams.
+ *
* Parameter:
- * newParams - {Object} New parameters that should be added to the
+ * newParams - {Object} New parameters that should be added to the
* request string.
- * altUrl - {String} (optional) Replace the URL in the full request
+ * altUrl - {String} (optional) Replace the URL in the full request
* string with the provided URL.
- *
- * Returns:
+ *
+ * Returns:
* {String} A string with the layer's url and parameters embedded in it.
*/
getFullRequestString:function(newParams, altUrl) {
// use layer's url unless altUrl passed in
var url = (altUrl == null) ? this.url : altUrl;
-
- // create a new params hashtable with all the layer params and the
+
+ // create a new params hashtable with all the layer params and the
// new params together. then convert to string
var allParams = OpenLayers.Util.extend({}, this.params);
allParams = OpenLayers.Util.extend(allParams, newParams);
var paramsString = OpenLayers.Util.getParameterString(allParams);
-
- // if url is not a string, it should be an array of strings,
- // in which case we will deterministically select one of them in
+
+ // if url is not a string, it should be an array of strings,
+ // in which case we will deterministically select one of them in
// order to evenly distribute requests to different urls.
if (url instanceof Array) {
url = this.selectUrl(paramsString, url);
- }
-
+ }
+
// ignore parameters that are already in the url search string
var urlParams = OpenLayers.Util.upperCaseObject(
OpenLayers.Util.getParameters(url));
@@ -30399,9 +30418,9 @@
}
}
paramsString = OpenLayers.Util.getParameterString(allParams);
-
+
// requestString always starts with url
- var requestString = url;
+ var requestString = url;
// MapServer needs '+' seperating things like bounds/height/width.
// Since typically this is URL encoded, we use a slight hack: we
@@ -30411,7 +30430,7 @@
// to '+'
//
paramsString = paramsString.replace(/,/g, "+");
-
+
if (paramsString != "") {
var lastServerChar = url.charAt(url.length - 1);
if ((lastServerChar == "&") || (lastServerChar == "?")) {
@@ -30450,7 +30469,7 @@
* Instances of OpenLayers.Layer.WMS are used to display data from OGC Web
* Mapping Services. Create a new WMS layer with the <OpenLayers.Layer.WMS>
* constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Layer.Grid>
*/
@@ -30458,7 +30477,7 @@
/**
* Constant: DEFAULT_PARAMS
- * {Object} Hashtable of default parameter key/value pairs
+ * {Object} Hashtable of default parameter key/value pairs
*/
DEFAULT_PARAMS: { service: "WMS",
version: "1.1.1",
@@ -30467,48 +30486,48 @@
exceptions: "application/vnd.ogc.se_inimage",
format: "image/jpeg"
},
-
+
/**
* Property: reproject
* *Deprecated*. See http://trac.openlayers.org/wiki/SphericalMercator
- * for information on the replacement for this functionality.
+ * for information on the replacement for this functionality.
* {Boolean} Try to reproject this layer if its coordinate reference system
- * is different than that of the base layer. Default is true.
- * Set this in the layer options. Should be set to false in
+ * is different than that of the base layer. Default is true.
+ * Set this in the layer options. Should be set to false in
* most cases.
*/
reproject: false,
-
+
/**
* APIProperty: isBaseLayer
* {Boolean} Default is true for WMS layer
*/
isBaseLayer: true,
-
+
/**
* APIProperty: encodeBBOX
- * {Boolean} Should the BBOX commas be encoded? The WMS spec says 'no',
+ * {Boolean} Should the BBOX commas be encoded? The WMS spec says 'no',
* but some services want it that way. Default false.
*/
encodeBBOX: false,
-
- /**
- * APIProperty: noMagic
- * {Boolean} If true, the image format will not be automagicaly switched
- * from image/jpeg to image/png or image/gif when using
- * TRANSPARENT=TRUE. Also isBaseLayer will not changed by the
- * constructor. Default false.
- */
- noMagic: false,
-
+
/**
+ * APIProperty: noMagic
+ * {Boolean} If true, the image format will not be automagicaly switched
+ * from image/jpeg to image/png or image/gif when using
+ * TRANSPARENT=TRUE. Also isBaseLayer will not changed by the
+ * constructor. Default false.
+ */
+ noMagic: false,
+
+ /**
* Constructor: OpenLayers.Layer.WMS
* Create a new WMS layer object
*
* Example:
* (code)
* var wms = new OpenLayers.Layer.WMS("NASA Global Mosaic",
- * "http://wms.jpl.nasa.gov/wms.cgi",
+ * "http://wms.jpl.nasa.gov/wms.cgi",
* {layers: "modis,global_mosaic"});
* (end)
*
@@ -30527,21 +30546,21 @@
newArguments.push(name, url, params, options);
OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
OpenLayers.Util.applyDefaults(
- this.params,
+ this.params,
OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS)
);
- //layer is transparent
- if (!this.noMagic && this.params.TRANSPARENT &&
+ //layer is transparent
+ if (!this.noMagic && this.params.TRANSPARENT &&
this.params.TRANSPARENT.toString().toLowerCase() == "true") {
-
+
// unless explicitly set in options, make layer an overlay
if ( (options == null) || (!options.isBaseLayer) ) {
this.isBaseLayer = false;
- }
-
- // jpegs can never be transparent, so intelligently switch the
+ }
+
+ // jpegs can never be transparent, so intelligently switch the
// format, depending on teh browser's capabilities
if (this.params.FORMAT == "image/jpeg") {
this.params.FORMAT = OpenLayers.Util.alphaHack() ? "image/gif"
@@ -30549,18 +30568,18 @@
}
}
- },
+ },
/**
* Method: destroy
* Destroy this layer
*/
destroy: function() {
- // for now, nothing special to do here.
- OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);
+ // for now, nothing special to do here.
+ OpenLayers.Layer.Grid.prototype.destroy.apply(this, arguments);
},
-
+
/**
* Method: clone
* Create a clone of this layer
@@ -30569,7 +30588,7 @@
* {<OpenLayers.Layer.WMS>} An exact clone of this layer
*/
clone: function (obj) {
-
+
if (obj == null) {
obj = new OpenLayers.Layer.WMS(this.name,
this.url,
@@ -30583,8 +30602,8 @@
// copy/set any non-init, non-simple values here
return obj;
- },
-
+ },
+
/**
* Method: getURL
* Return a GetMap query string for this layer
@@ -30595,13 +30614,13 @@
*
* Returns:
* {String} A string with the layer's url and parameters and also the
- * passed-in bounds and appropriate tile size specified as
+ * passed-in bounds and appropriate tile size specified as
* parameters.
*/
getURL: function (bounds) {
bounds = this.adjustBounds(bounds);
-
- var imageSize = this.getImageSize();
+
+ var imageSize = this.getImageSize();
var newParams = {
'BBOX': this.encodeBBOX ? bounds.toBBOX() : bounds.toArray(),
'WIDTH': imageSize.w,
@@ -30613,17 +30632,17 @@
/**
* Method: addTile
- * addTile creates a tile, initializes it, and adds it to the layer div.
+ * addTile creates a tile, initializes it, and adds it to the layer div.
*
* Parameters:
* bounds - {<OpenLayers.Bounds>}
* position - {<OpenLayers.Pixel>}
- *
+ *
* Returns:
* {<OpenLayers.Tile.Image>} The added OpenLayers.Tile.Image
*/
addTile:function(bounds,position) {
- return new OpenLayers.Tile.Image(this, position, bounds,
+ return new OpenLayers.Tile.Image(this, position, bounds,
null, this.tileSize);
},
@@ -30631,34 +30650,34 @@
* APIMethod: mergeNewParams
* Catch changeParams and uppercase the new params to be merged in
* before calling changeParams on the super class.
- *
+ *
* Once params have been changed, the tiles will be reloaded with
* the new parameters.
- *
+ *
* Parameters:
* newParams - {Object} Hashtable of new params to use
*/
mergeNewParams:function(newParams) {
var upperParams = OpenLayers.Util.upperCaseObject(newParams);
var newArguments = [upperParams];
- return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,
+ return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,
newArguments);
},
- /**
+ /**
* APIMethod: getFullRequestString
- * Combine the layer's url with its params and these newParams.
- *
+ * Combine the layer's url with its params and these newParams.
+ *
* Add the SRS parameter from projection -- this is probably
- * more eloquently done via a setProjection() method, but this
+ * more eloquently done via a setProjection() method, but this
* works for now and always.
*
* Parameters:
* newParams - {Object}
* altUrl - {String} Use this as the url instead of the layer's url
- *
+ *
* Returns:
- * {String}
+ * {String}
*/
getFullRequestString:function(newParams, altUrl) {
var projectionCode = this.map.getProjection();
@@ -30675,7 +30694,7 @@
====================================================================== */
/* Copyright (c) 2006 MetaCarta, Inc., published under a modified BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
+ * See http://svn.openlayers.org/trunk/openlayers/repository-license.txt
* for the full text of the license. */
@@ -30689,25 +30708,25 @@
* This class represents an SLD Rule, as being used for rule-based SLD styling.
*/
OpenLayers.Rule = OpenLayers.Class({
-
+
/**
* Property: id
* {String} A unique id for this session.
*/
id: null,
-
+
/**
* APIProperty: name
* {String} name of this rule
*/
name: 'default',
-
+
/**
* Property: title
* {String} Title of this rule (set if included in SLD)
*/
title: null,
-
+
/**
* Property: description
* {String} Description of this rule (set if abstract is included in SLD)
@@ -30721,7 +30740,7 @@
* be used.
*/
context: null,
-
+
/**
* Property: filter
* {<OpenLayers.Filter>} Optional filter for the rule.
@@ -30731,13 +30750,13 @@
/**
* Property: elseFilter
* {Boolean} Determines whether this rule is only to be applied only if
- * no other rules match (ElseFilter according to the SLD specification).
+ * no other rules match (ElseFilter according to the SLD specification).
* Default is false. For instances of OpenLayers.Rule, if elseFilter is
- * false, the rule will always apply. For subclasses, the else property is
+ * false, the rule will always apply. For subclasses, the else property is
* ignored.
*/
elseFilter: false,
-
+
/**
* Property: symbolizer
* {Object} Symbolizer or hash of symbolizers for this rule. If hash of
@@ -30748,7 +30767,7 @@
* SLD.
*/
symbolizer: null,
-
+
/**
* APIProperty: minScaleDenominator
* {Number} or {String} minimum scale at which to draw the feature.
@@ -30764,15 +30783,15 @@
* propertyNames in the form "literal ${propertyName}"
*/
maxScaleDenominator: null,
-
- /**
+
+ /**
* Constructor: OpenLayers.Rule
* Creates a Rule.
*
* Parameters:
* options - {Object} An optional object with properties to set on the
* rule
- *
+ *
* Returns:
* {<OpenLayers.Rule>}
*/
@@ -30782,7 +30801,7 @@
this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
},
- /**
+ /**
* APIMethod: destroy
* nullify references to prevent circular references and memory leaks
*/
@@ -30792,14 +30811,14 @@
}
this.symbolizer = null;
},
-
+
/**
* APIMethod: evaluate
* evaluates this rule for a specific feature
- *
+ *
* Parameters:
* feature - {<OpenLayers.Feature>} feature to apply the rule to.
- *
+ *
* Returns:
* {Boolean} true if the rule applies, false if it does not.
* This rule is the default rule and always returns true.
@@ -30811,7 +30830,7 @@
if (this.minScaleDenominator || this.maxScaleDenominator) {
var scale = feature.layer.map.getScale();
}
-
+
// check if within minScale/maxScale bounds
if (this.minScaleDenominator) {
applies = scale >= OpenLayers.Style.createLiteral(
@@ -30821,7 +30840,7 @@
applies = scale < OpenLayers.Style.createLiteral(
this.maxScaleDenominator, context);
}
-
+
// check if optional filter applies
if(applies && this.filter) {
// feature id filters get the feature, others get the context
@@ -30834,11 +30853,11 @@
return applies;
},
-
+
/**
* Method: getContext
* Gets the context for evaluating this rule
- *
+ *
* Paramters:
* feature - {<OpenLayers.Feature>} feature to take the context from if
* none is specified.
@@ -30853,11 +30872,11 @@
}
return context;
},
-
+
/**
* APIMethod: clone
* Clones this rule.
- *
+ *
* Returns:
* {<OpenLayers.Rule>} Clone of this rule.
*/
@@ -30880,7 +30899,7 @@
options.context = this.context && OpenLayers.Util.extend({}, this.context);
return new OpenLayers.Rule(options);
},
-
+
CLASS_NAME: "OpenLayers.Rule"
});
/* ======================================================================
@@ -30895,19 +30914,19 @@
* @requires OpenLayers/Style.js
* @requires OpenLayers/Feature/Vector.js
*/
-
+
/**
* Class: OpenLayers.StyleMap
*/
OpenLayers.StyleMap = OpenLayers.Class({
-
+
/**
* Property: styles
* Hash of {<OpenLayers.Style>}, keyed by names of well known
* rendering intents (e.g. "default", "temporary", "select", "delete").
*/
styles: null,
-
+
/**
* Property: extendDefault
* {Boolean} if true, every render intent will extend the symbolizers
@@ -30915,10 +30934,10 @@
* rendering intent will be treated as a completely independent style.
*/
extendDefault: true,
-
+
/**
* Constructor: OpenLayers.StyleMap
- *
+ *
* Parameters:
* style - {Object} Optional. Either a style hash, or a style object, or
* a hash of style objects (style hashes) keyed by rendering
@@ -30939,7 +30958,7 @@
"delete": new OpenLayers.Style(
OpenLayers.Feature.Vector.style["delete"])
};
-
+
// take whatever the user passed as style parameter and convert it
// into parts of stylemap.
if(style instanceof OpenLayers.Style) {
@@ -30978,11 +30997,11 @@
}
this.styles = null;
},
-
+
/**
* Method: createSymbolizer
* Creates the symbolizer for a feature for a render intent.
- *
+ *
* Parameters:
* feature - {<OpenLayers.Feature>} The feature to evaluate the rules
* of the intended style against.
@@ -30990,7 +31009,7 @@
* used to draw the feature. Well known intents are "default"
* (for just drawing the features), "select" (for selected
* features) and "temporary" (for drawing features).
- *
+ *
* Returns:
* {Object} symbolizer hash
*/
@@ -31009,20 +31028,20 @@
return OpenLayers.Util.extend(defaultSymbolizer,
this.styles[intent].createSymbolizer(feature));
},
-
+
/**
* Method: addUniqueValueRules
* Convenience method to create comparison rules for unique values of a
* property. The rules will be added to the style object for a specified
* rendering intent. This method is a shortcut for creating something like
* the "unique value legends" familiar from well known desktop GIS systems
- *
+ *
* Parameters:
* renderIntent - {String} rendering intent to add the rules to
* property - {String} values of feature attributes to create the
* rules for
* symbolizers - {Object} Hash of symbolizers, keyed by the desired
- * property values
+ * property values
* context - {Object} An optional object with properties that
* symbolizers' property values should be evaluated
* against. If no context is specified, feature.attributes
@@ -31060,21 +31079,21 @@
/**
* Class: OpenLayers.Geometry.Collection
- * A Collection is exactly what it sounds like: A collection of different
+ * A Collection is exactly what it sounds like: A collection of different
* Geometries. These are stored in the local parameter <components> (which
- * can be passed as a parameter to the constructor).
- *
- * As new geometries are added to the collection, they are NOT cloned.
- * When removing geometries, they need to be specified by reference (ie you
+ * can be passed as a parameter to the constructor).
+ *
+ * As new geometries are added to the collection, they are NOT cloned.
+ * When removing geometries, they need to be specified by reference (ie you
* have to pass in the *exact* geometry to be removed).
- *
+ *
* The <getArea> and <getLength> functions here merely iterate through
* the components, summing their respective areas and lengths.
*
* Create a new instance with the <OpenLayers.Geometry.Collection> constructor.
*
* Inerhits from:
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.Collection = OpenLayers.Class(OpenLayers.Geometry, {
@@ -31083,7 +31102,7 @@
* {Array(<OpenLayers.Geometry>)} The component parts of this geometry
*/
components: null,
-
+
/**
* Property: componentTypes
* {Array(String)} An array of class names representing the types of
@@ -31096,7 +31115,7 @@
* Constructor: OpenLayers.Geometry.Collection
* Creates a Geometry Collection -- a list of geoms.
*
- * Parameters:
+ * Parameters:
* components - {Array(<OpenLayers.Geometry>)} Optional array of geometries
*
*/
@@ -31129,31 +31148,31 @@
for(var i=0, len=this.components.length; i<len; i++) {
geometry.addComponent(this.components[i].clone());
}
-
+
// catch any randomly tagged-on properties
OpenLayers.Util.applyDefaults(geometry, this);
-
+
return geometry;
},
/**
* Method: getComponentsString
* Get a string representing the components for this collection
- *
+ *
* Returns:
* {String} A string representation of the components of this geometry
*/
getComponentsString: function(){
var strings = [];
for(var i=0, len=this.components.length; i<len; i++) {
- strings.push(this.components[i].toShortString());
+ strings.push(this.components[i].toShortString());
}
return strings.join(",");
},
/**
* APIMethod: calculateBounds
- * Recalculate the bounds by iterating through the components and
+ * Recalculate the bounds by iterating through the components and
* calling calling extendBounds() on each item.
*/
calculateBounds: function() {
@@ -31188,14 +31207,14 @@
* is set, then the component class name must be in the componentTypes array.
*
* The bounds cache is reset.
- *
+ *
* Parameters:
* component - {<OpenLayers.Geometry>} A geometry to add
* index - {int} Optional index into the array to insert the component
*
* Returns:
* {Boolean} The component geometry was successfully added
- */
+ */
addComponent: function(component, index) {
var added = false;
if(component) {
@@ -31205,7 +31224,7 @@
if(index != null && (index < this.components.length)) {
var components1 = this.components.slice(0, index);
- var components2 = this.components.slice(index,
+ var components2 = this.components.slice(index,
this.components.length);
components1.push(component);
this.components = components1.concat(components2);
@@ -31219,7 +31238,7 @@
}
return added;
},
-
+
/**
* APIMethod: removeComponents
* Remove components from this geometry.
@@ -31235,18 +31254,18 @@
this.removeComponent(components[i]);
}
},
-
+
/**
* Method: removeComponent
* Remove a component from this geometry.
*
* Parameters:
- * component - {<OpenLayers.Geometry>}
+ * component - {<OpenLayers.Geometry>}
*/
removeComponent: function(component) {
-
+
OpenLayers.Util.removeItem(this.components, component);
-
+
// clearBounds() so that it gets recalculated on the next call
// to this.getBounds();
this.clearBounds();
@@ -31266,7 +31285,7 @@
}
return length;
},
-
+
/**
* APIMethod: getArea
* Calculate the area of this geometry. Note how this function is overridden
@@ -31283,7 +31302,7 @@
return area;
},
- /**
+ /**
* APIMethod: getGeodesicArea
* Calculate the approximate area of the polygon were it projected onto
* the earth.
@@ -31292,7 +31311,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Reference:
* Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for
* Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion
@@ -31308,7 +31327,7 @@
}
return area;
},
-
+
/**
* APIMethod: getCentroid
*
@@ -31338,7 +31357,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Returns:
* {Float} The appoximate geodesic length of the geometry in meters.
*/
@@ -31357,7 +31376,7 @@
* bounds.
*
* Parameters:
- * x - {Float} Distance to move geometry in positive x direction.
+ * x - {Float} Distance to move geometry in positive x direction.
* y - {Float} Distance to move geometry in positive y direction.
*/
move: function(x, y) {
@@ -31393,9 +31412,9 @@
* will have four times the area).
* origin - {<OpenLayers.Geometry.Point>} Point of origin for resizing
* ratio - {Float} Optional x:y ratio for resizing. Default ratio is 1.
- *
+ *
* Returns:
- * {OpenLayers.Geometry} - The current geometry.
+ * {OpenLayers.Geometry} - The current geometry.
*/
resize: function(scale, origin, ratio) {
for(var i=0; i<this.components.length; ++i) {
@@ -31450,13 +31469,13 @@
return best;
},
- /**
+ /**
* APIMethod: equals
* Determine whether another geometry is equivalent to this one. Geometries
* are considered equivalent if all components have the same coordinates.
- *
+ *
* Parameters:
- * geom - {<OpenLayers.Geometry>} The geometry to test.
+ * geom - {<OpenLayers.Geometry>} The geometry to test.
*
* Returns:
* {Boolean} The supplied geometry is equivalent to this geometry.
@@ -31483,17 +31502,17 @@
/**
* APIMethod: transform
* Reproject the components geometry from source to dest.
- *
+ *
* Parameters:
- * source - {<OpenLayers.Projection>}
+ * source - {<OpenLayers.Projection>}
* dest - {<OpenLayers.Projection>}
- *
+ *
* Returns:
- * {<OpenLayers.Geometry>}
+ * {<OpenLayers.Geometry>}
*/
transform: function(source, dest) {
if (source && dest) {
- for (var i=0, len=this.components.length; i<len; i++) {
+ for (var i=0, len=this.components.length; i<len; i++) {
var component = this.components[i];
component.transform(source, dest);
}
@@ -31563,22 +31582,22 @@
/**
* Class: OpenLayers.Geometry.Point
- * Point geometry class.
- *
+ * Point geometry class.
+ *
* Inherits from:
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.Point = OpenLayers.Class(OpenLayers.Geometry, {
- /**
- * APIProperty: x
- * {float}
+ /**
+ * APIProperty: x
+ * {float}
*/
x: null,
- /**
- * APIProperty: y
- * {float}
+ /**
+ * APIProperty: y
+ * {float}
*/
y: null,
@@ -31587,20 +31606,20 @@
* Construct a point geometry.
*
* Parameters:
- * x - {float}
+ * x - {float}
* y - {float}
- *
+ *
*/
initialize: function(x, y) {
OpenLayers.Geometry.prototype.initialize.apply(this, arguments);
-
+
this.x = parseFloat(x);
this.y = parseFloat(y);
},
/**
* APIMethod: clone
- *
+ *
* Returns:
* {<OpenLayers.Geometry.Point>} An exact clone of this OpenLayers.Geometry.Point
*/
@@ -31615,7 +31634,7 @@
return obj;
},
- /**
+ /**
* Method: calculateBounds
* Create a new Bounds based on the lon/lat
*/
@@ -31676,14 +31695,14 @@
}
return result;
},
-
- /**
+
+ /**
* APIMethod: equals
* Determine whether another geometry is equivalent to this one. Geometries
* are considered equivalent if all components have the same coordinates.
- *
+ *
* Parameters:
- * geom - {<OpenLayers.Geometry.Point>} The geometry to test.
+ * geom - {<OpenLayers.Geometry.Point>} The geometry to test.
*
* Returns:
* {Boolean} The supplied geometry is equivalent to this geometry.
@@ -31696,18 +31715,18 @@
}
return equals;
},
-
+
/**
* Method: toShortString
*
* Returns:
- * {String} Shortened String representation of Point object.
+ * {String} Shortened String representation of Point object.
* (ex. <i>"5, 42"</i>)
*/
toShortString: function() {
return (this.x + ", " + this.y);
},
-
+
/**
* APIMethod: move
* Moves a geometry by the given displacement along positive x and y axes.
@@ -31715,7 +31734,7 @@
* bounds.
*
* Parameters:
- * x - {Float} Distance to move geometry in positive x direction.
+ * x - {Float} Distance to move geometry in positive x direction.
* y - {Float} Distance to move geometry in positive y direction.
*/
move: function(x, y) {
@@ -31741,7 +31760,7 @@
this.y = origin.y + (radius * Math.sin(theta));
this.clearBounds();
},
-
+
/**
* APIMethod: getCentroid
*
@@ -31764,9 +31783,9 @@
* distance between the point and origin.
* origin - {<OpenLayers.Geometry.Point>} Point of origin for resizing
* ratio - {Float} Optional x:y ratio for resizing. Default ratio is 1.
- *
+ *
* Returns:
- * {OpenLayers.Geometry} - The current geometry.
+ * {OpenLayers.Geometry} - The current geometry.
*/
resize: function(scale, origin, ratio) {
ratio = (ratio == undefined) ? 1 : ratio;
@@ -31775,7 +31794,7 @@
this.clearBounds();
return this;
},
-
+
/**
* APIMethod: intersects
* Determine if the input geometry intersects this one.
@@ -31795,24 +31814,24 @@
}
return intersect;
},
-
+
/**
* APIMethod: transform
* Translate the x,y properties of the point from source to dest.
- *
+ *
* Parameters:
- * source - {<OpenLayers.Projection>}
+ * source - {<OpenLayers.Projection>}
* dest - {<OpenLayers.Projection>}
- *
+ *
* Returns:
- * {<OpenLayers.Geometry>}
+ * {<OpenLayers.Geometry>}
*/
transform: function(source, dest) {
if ((source && dest)) {
OpenLayers.Projection.transform(
- this, source, dest);
+ this, source, dest);
this.bounds = null;
- }
+ }
return this;
},
@@ -31907,14 +31926,14 @@
* featureunselected - Triggered after a feature is unselected.
* Listeners will receive an object with a *feature* property
* referencing the unselected feature.
- * beforefeaturemodified - Triggered when a feature is selected to
- * be modified. Listeners will receive an object with a *feature*
+ * beforefeaturemodified - Triggered when a feature is selected to
+ * be modified. Listeners will receive an object with a *feature*
* property referencing the selected feature.
* featuremodified - Triggered when a feature has been modified.
- * Listeners will receive an object with a *feature* property referencing
+ * Listeners will receive an object with a *feature* property referencing
* the modified feature.
* afterfeaturemodified - Triggered when a feature is finished being modified.
- * Listeners will receive an object with a *feature* property referencing
+ * Listeners will receive an object with a *feature* property referencing
* the modified feature.
* vertexmodified - Triggered when a vertex within any feature geometry
* has been modified. Listeners will receive an object with a
@@ -31940,7 +31959,7 @@
EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded",
"featureadded", "featuresadded",
"beforefeatureremoved", "featureremoved", "featuresremoved",
- "beforefeatureselected", "featureselected", "featureunselected",
+ "beforefeatureselected", "featureselected", "featureunselected",
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
"vertexmodified", "sketchstarted", "sketchmodified",
"sketchcomplete", "refresh"],
@@ -31952,31 +31971,31 @@
*/
isBaseLayer: false,
- /**
+ /**
* APIProperty: isFixed
* {Boolean} Whether the layer remains in one place while dragging the
* map.
*/
isFixed: false,
- /**
+ /**
* APIProperty: isVector
* {Boolean} Whether the layer is a vector layer.
*/
isVector: true,
-
- /**
+
+ /**
* APIProperty: features
- * {Array(<OpenLayers.Feature.Vector>)}
+ * {Array(<OpenLayers.Feature.Vector>)}
*/
features: null,
-
- /**
+
+ /**
* Property: selectedFeatures
- * {Array(<OpenLayers.Feature.Vector>)}
+ * {Array(<OpenLayers.Feature.Vector>)}
*/
selectedFeatures: null,
-
+
/**
* Property: unrenderedFeatures
* {Object} hash of features, keyed by feature.id, that the renderer
@@ -31989,32 +32008,32 @@
* {Boolean} report friendly error message when loading of renderer
* fails.
*/
- reportError: true,
+ reportError: true,
- /**
+ /**
* APIProperty: style
* {Object} Default style for the layer
*/
style: null,
-
+
/**
* Property: styleMap
* {<OpenLayers.StyleMap>}
*/
styleMap: null,
-
+
/**
* Property: strategies
* {Array(<OpenLayers.Strategy>})} Optional list of strategies for the layer.
*/
strategies: null,
-
+
/**
* Property: protocol
* {<OpenLayers.Protocol>} Optional protocol for the layer.
*/
protocol: null,
-
+
/**
* Property: renderers
* {Array(String)} List of supported Renderer classes. Add to this list to
@@ -32023,21 +32042,21 @@
* method will be used, if not defined in the 'renderer' option.
*/
renderers: ['SVG', 'VML', 'Canvas'],
-
- /**
+
+ /**
* Property: renderer
* {<OpenLayers.Renderer>}
*/
renderer: null,
-
+
/**
* APIProperty: rendererOptions
* {Object} Options for the renderer. See {<OpenLayers.Renderer>} for
* supported options.
*/
rendererOptions: null,
-
- /**
+
+ /**
* APIProperty: geometryType
* {String} geometryType allows you to limit the types of geometries this
* layer supports. This should be set to something like
@@ -32045,7 +32064,7 @@
*/
geometryType: null,
- /**
+ /**
* Property: drawn
* {Boolean} Whether the Vector Layer features have been drawn yet.
*/
@@ -32064,7 +32083,7 @@
* {<OpenLayers.Layer.Vector>} A new vector layer
*/
initialize: function(name, options) {
-
+
// concatenate events specific to vector with those from the base
this.EVENT_TYPES =
OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(
@@ -32074,7 +32093,7 @@
OpenLayers.Layer.prototype.initialize.apply(this, arguments);
// allow user-set renderer, otherwise assign one
- if (!this.renderer || !this.renderer.supported()) {
+ if (!this.renderer || !this.renderer.supported()) {
this.assignRenderer();
}
@@ -32082,7 +32101,7 @@
if (!this.renderer || !this.renderer.supported()) {
this.renderer = null;
this.displayError();
- }
+ }
if (!this.styleMap) {
this.styleMap = new OpenLayers.StyleMap();
@@ -32091,7 +32110,7 @@
this.features = [];
this.selectedFeatures = [];
this.unrenderedFeatures = {};
-
+
// Allow for custom layer behavior
if(this.strategies){
for(var i=0, len=this.strategies.length; i<len; i++) {
@@ -32132,7 +32151,7 @@
this.renderer = null;
this.geometryType = null;
this.drawn = null;
- OpenLayers.Layer.prototype.destroy.apply(this, arguments);
+ OpenLayers.Layer.prototype.destroy.apply(this, arguments);
},
/**
@@ -32150,11 +32169,11 @@
}
},
- /**
+ /**
* Method: assignRenderer
- * Iterates through the available renderer implementations and selects
+ * Iterates through the available renderer implementations and selects
* and assigns the first one whose "supported()" function returns true.
- */
+ */
assignRenderer: function() {
for (var i=0, len=this.renderers.length; i<len; i++) {
var rendererClass = OpenLayers.Renderer[this.renderers[i]];
@@ -32162,32 +32181,32 @@
this.renderer = new rendererClass(this.div,
this.rendererOptions);
break;
- }
- }
+ }
+ }
},
- /**
- * Method: displayError
+ /**
+ * Method: displayError
* Let the user know their browser isn't supported.
*/
displayError: function() {
if (this.reportError) {
- OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",
+ OpenLayers.Console.userError(OpenLayers.i18n("browserNotSupported",
{'renderers':this.renderers.join("\n")}));
- }
+ }
},
- /**
+ /**
* Method: setMap
- * The layer has been added to the map.
- *
+ * The layer has been added to the map.
+ *
* If there is no renderer set, the layer can't be used. Remove it.
* Otherwise, give the renderer a reference to the map and set its size.
- *
+ *
* Parameters:
- * map - {<OpenLayers.Map>}
+ * map - {<OpenLayers.Map>}
*/
- setMap: function(map) {
+ setMap: function(map) {
OpenLayers.Layer.prototype.setMap.apply(this, arguments);
if (!this.renderer) {
@@ -32234,11 +32253,11 @@
}
}
},
-
+
/**
* Method: onMapResize
- * Notify the renderer of the change in size.
- *
+ * Notify the renderer of the change in size.
+ *
*/
onMapResize: function() {
OpenLayers.Layer.prototype.onMapResize.apply(this, arguments);
@@ -32247,32 +32266,32 @@
/**
* Method: moveTo
- * Reset the vector layer's div so that it once again is lined up with
+ * Reset the vector layer's div so that it once again is lined up with
* the map. Notify the renderer of the change of extent, and in the
- * case of a change of zoom level (resolution), have the
+ * case of a change of zoom level (resolution), have the
* renderer redraw features.
- *
- * If the layer has not yet been drawn, cycle through the layer's
+ *
+ * If the layer has not yet been drawn, cycle through the layer's
* features and draw each one.
- *
+ *
* Parameters:
- * bounds - {<OpenLayers.Bounds>}
- * zoomChanged - {Boolean}
- * dragging - {Boolean}
+ * bounds - {<OpenLayers.Bounds>}
+ * zoomChanged - {Boolean}
+ * dragging - {Boolean}
*/
moveTo: function(bounds, zoomChanged, dragging) {
OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
-
+
var coordSysUnchanged = true;
if (!dragging) {
this.renderer.root.style.visibility = "hidden";
-
+
this.div.style.left = -parseInt(this.map.layerContainerDiv.style.left) + "px";
this.div.style.top = -parseInt(this.map.layerContainerDiv.style.top) + "px";
var extent = this.map.getExtent();
coordSysUnchanged = this.renderer.setExtent(extent, zoomChanged);
-
+
this.renderer.root.style.visibility = "visible";
// Force a reflow on gecko based browsers to prevent jump/flicker.
@@ -32281,7 +32300,7 @@
if (navigator.userAgent.toLowerCase().indexOf("gecko") != -1) {
this.div.scrollLeft = this.div.scrollLeft;
}
-
+
if(!zoomChanged && coordSysUnchanged) {
for(var i in this.unrenderedFeatures) {
var feature = this.unrenderedFeatures[i];
@@ -32289,7 +32308,7 @@
}
}
}
-
+
if (!this.drawn || zoomChanged || !coordSysUnchanged) {
this.drawn = true;
var feature;
@@ -32298,13 +32317,13 @@
feature = this.features[i];
this.drawFeature(feature);
}
- }
+ }
},
-
- /**
+
+ /**
* APIMethod: display
* Hide or show the Layer
- *
+ *
* Parameters:
* display - {Boolean}
*/
@@ -32323,14 +32342,14 @@
* Add Features to the layer.
*
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
* options - {Object}
*/
addFeatures: function(features, options) {
if (!(features instanceof Array)) {
features = [features];
}
-
+
var notify = !options || !options.silent;
if(notify) {
var event = {features: features};
@@ -32340,16 +32359,16 @@
}
features = event.features;
}
-
+
for (var i=0, len=features.length; i<len; i++) {
if (i != (features.length - 1)) {
this.renderer.locked = true;
} else {
this.renderer.locked = false;
- }
+ }
var feature = features[i];
-
+
if (this.geometryType &&
!(feature.geometry instanceof this.geometryType)) {
var throwStr = OpenLayers.i18n('componentShouldBe',
@@ -32358,7 +32377,7 @@
}
this.features.push(feature);
-
+
//give feature reference to its layer
feature.layer = this;
@@ -32375,7 +32394,7 @@
}
this.drawFeature(feature);
-
+
if (notify) {
this.events.triggerEvent("featureadded", {
feature: feature
@@ -32383,7 +32402,7 @@
this.onFeatureInsert(feature);
}
}
-
+
if(notify) {
this.events.triggerEvent("featuresadded", {features: features});
}
@@ -32397,7 +32416,7 @@
* and featureremoved events will be triggered for each feature. The
* featuresremoved event will be triggered after all features have
* been removed. To supress event triggering, use the silent option.
- *
+ *
* Parameters:
* features - {Array(<OpenLayers.Feature.Vector>)} List of features to be
* removed.
@@ -32426,15 +32445,15 @@
// because if all the features after the current one are 'null', we
// won't call eraseGeometry, so we break the 'renderer functions
// will always be called with locked=false *last*' rule. The end result
- // is a possible gratiutious unlocking to save a loop through the rest
+ // is a possible gratiutious unlocking to save a loop through the rest
// of the list checking the remaining features every time. So long as
- // null geoms are rare, this is probably okay.
+ // null geoms are rare, this is probably okay.
if (i != 0 && features[i-1].geometry) {
this.renderer.locked = true;
} else {
this.renderer.locked = false;
}
-
+
var feature = features[i];
delete this.unrenderedFeatures[feature.id];
@@ -32451,8 +32470,8 @@
if (feature.geometry) {
this.renderer.eraseFeatures(feature);
}
-
- //in the case that this feature is one of the selected features,
+
+ //in the case that this feature is one of the selected features,
// remove it from that array as well.
if (OpenLayers.Util.indexOf(this.selectedFeatures, feature) != -1){
OpenLayers.Util.removeItem(this.selectedFeatures, feature);
@@ -32500,20 +32519,20 @@
* is included, this style will be used. If no style is included, the
* feature's style will be used. If the feature doesn't have a style,
* the layer's style will be used.
- *
- * This function is not designed to be used when adding features to
+ *
+ * This function is not designed to be used when adding features to
* the layer (use addFeatures instead). It is meant to be used when
- * the style of a feature has changed, or in some other way needs to
+ * the style of a feature has changed, or in some other way needs to
* visually updated *after* it has already been added to a layer. You
- * must add the feature to the layer for most layer-related events to
+ * must add the feature to the layer for most layer-related events to
* happen.
*
- * Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * Parameters:
+ * feature - {<OpenLayers.Feature.Vector>}
* style - {Object} Symbolizer hash or {String} renderIntent
*/
drawFeature: function(feature, style) {
- // don't try to draw the feature with the renderer if the layer is not
+ // don't try to draw the feature with the renderer if the layer is not
// drawn itself
if (!this.drawn) {
return
@@ -32528,20 +32547,20 @@
style = this.styleMap.createSymbolizer(feature, renderIntent);
}
}
-
+
if (!this.renderer.drawFeature(feature, style)) {
this.unrenderedFeatures[feature.id] = feature;
} else {
delete this.unrenderedFeatures[feature.id];
};
},
-
+
/**
* Method: eraseFeatures
* Erase features from the layer.
*
* Parameters:
- * features - {Array(<OpenLayers.Feature.Vector>)}
+ * features - {Array(<OpenLayers.Feature.Vector>)}
*/
eraseFeatures: function(features) {
this.renderer.eraseFeatures(features);
@@ -32553,26 +32572,26 @@
* Otherwise, return null.
*
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*
* Returns:
* {<OpenLayers.Feature.Vector>} A feature if one was under the event.
*/
getFeatureFromEvent: function(evt) {
if (!this.renderer) {
- OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));
+ OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));
return null;
- }
+ }
var featureId = this.renderer.getFeatureIdFromEvent(evt);
return this.getFeatureById(featureId);
},
-
+
/**
* APIMethod: getFeatureById
* Given a feature id, return the feature if it exists in the features array
*
* Parameters:
- * featureId - {String}
+ * featureId - {String}
*
* Returns:
* {<OpenLayers.Feature.Vector>} A feature corresponding to the given
@@ -32589,7 +32608,7 @@
}
return feature;
},
-
+
/**
* Unselect the selected features
* i.e. clears the featureSelection array
@@ -32612,12 +32631,12 @@
* Does nothing by default. Override this if you
* need to do something on feature updates.
*
- * Paarameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * Paarameters:
+ * feature - {<OpenLayers.Feature.Vector>}
*/
onFeatureInsert: function(feature) {
},
-
+
/**
* APIMethod: preFeatureInsert
* method called before a feature is inserted.
@@ -32626,15 +32645,15 @@
* layer, but before they are drawn, such as adjust the style.
*
* Parameters:
- * feature - {<OpenLayers.Feature.Vector>}
+ * feature - {<OpenLayers.Feature.Vector>}
*/
preFeatureInsert: function(feature) {
},
- /**
+ /**
* APIMethod: getDataExtent
* Calculates the max extent which includes all of the features.
- *
+ *
* Returns:
* {<OpenLayers.Bounds>}
*/
@@ -32691,13 +32710,13 @@
* Create a new MultiPoint Geometry
*
* Parameters:
- * components - {Array(<OpenLayers.Geometry.Point>)}
+ * components - {Array(<OpenLayers.Geometry.Point>)}
*
* Returns:
* {<OpenLayers.Geometry.MultiPoint>}
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
arguments);
},
@@ -32712,7 +32731,7 @@
addPoint: function(point, index) {
this.addComponent(point, index);
},
-
+
/**
* APIMethod: removePoint
* Wrapper for <OpenLayers.Geometry.Collection.removeComponent>
@@ -32748,12 +32767,12 @@
* called with each change in the sketch and will receive the latest point
* drawn. Create a new instance with the <OpenLayers.Handler.Point>
* constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, {
-
+
/**
* Property: point
* {<OpenLayers.Feature.Vector>} The currently drawn point
@@ -32765,20 +32784,20 @@
* {<OpenLayers.Layer.Vector>} The temporary drawing layer
*/
layer: null,
-
+
/**
* Property: multi
* {Boolean} Cast features to multi-part geometries before passing to the
* layer. Default is false.
*/
multi: false,
-
+
/**
- * Property: drawing
+ * Property: drawing
* {Boolean} A point is being drawn
*/
drawing: false,
-
+
/**
* Property: mouseDown
* {Boolean} The mouse is down
@@ -32840,7 +32859,7 @@
OpenLayers.Handler.prototype.initialize.apply(this, arguments);
},
-
+
/**
* APIMethod: activate
* turn on the handler
@@ -32863,7 +32882,7 @@
this.map.addLayer(this.layer);
return true;
},
-
+
/**
* Method: createFeature
* Add temporary features
@@ -32905,7 +32924,7 @@
this.layer = null;
return true;
},
-
+
/**
* Method: destroyFeature
* Destroy the temporary geometries
@@ -32949,11 +32968,11 @@
* Method: click
* Handle clicks. Clicks are stopped from propagating to other listeners
* on map.events or other dom elements.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
click: function(evt) {
@@ -32965,18 +32984,18 @@
* Method: dblclick
* Handle double-clicks. Double-clicks are stopped from propagating to other
* listeners on map.events or other dom elements.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
dblclick: function(evt) {
OpenLayers.Event.stop(evt);
return false;
},
-
+
/**
* Method: modifyFeature
* Modify the existing geometry given a pixel location.
@@ -33000,7 +33019,7 @@
drawFeature: function() {
this.layer.drawFeature(this.point, this.style);
},
-
+
/**
* Method: getGeometry
* Return the sketch geometry. If <multi> is true, this will return
@@ -33028,16 +33047,16 @@
var geom = this.getGeometry();
return geom && geom.clone();
},
-
+
/**
* Method: mousedown
* Handle mouse down. Adjust the geometry and redraw.
* Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousedown: function(evt) {
@@ -33066,11 +33085,11 @@
* Method: mousemove
* Handle mouse move. Adjust the geometry and redraw.
* Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousemove: function (evt) {
@@ -33088,7 +33107,7 @@
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mouseup: function (evt) {
@@ -33116,37 +33135,37 @@
/**
* Class: OpenLayers.Geometry.Curve
- * A Curve is a MultiPoint, whose points are assumed to be connected. To
- * this end, we provide a "getLength()" function, which iterates through
- * the points, summing the distances between them.
- *
- * Inherits:
+ * A Curve is a MultiPoint, whose points are assumed to be connected. To
+ * this end, we provide a "getLength()" function, which iterates through
+ * the points, summing the distances between them.
+ *
+ * Inherits:
* - <OpenLayers.Geometry.MultiPoint>
*/
OpenLayers.Geometry.Curve = OpenLayers.Class(OpenLayers.Geometry.MultiPoint, {
/**
* Property: componentTypes
- * {Array(String)} An array of class names representing the types of
- * components that the collection can include. A null
+ * {Array(String)} An array of class names representing the types of
+ * components that the collection can include. A null
* value means the component types are not restricted.
*/
componentTypes: ["OpenLayers.Geometry.Point"],
/**
* Constructor: OpenLayers.Geometry.Curve
- *
+ *
* Parameters:
* point - {Array(<OpenLayers.Geometry.Point>)}
*/
initialize: function(points) {
- OpenLayers.Geometry.MultiPoint.prototype.initialize.apply(this,
+ OpenLayers.Geometry.MultiPoint.prototype.initialize.apply(this,
arguments);
},
-
+
/**
* APIMethod: getLength
- *
+ *
* Returns:
* {Float} The length of the curve
*/
@@ -33168,7 +33187,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Returns:
* {Float} The appoximate geodesic length of the geometry in meters.
*/
@@ -33212,9 +33231,9 @@
/**
* Class: OpenLayers.Geometry.LineString
- * A LineString is a Curve which, once two points have been added to it, can
+ * A LineString is a Curve which, once two points have been added to it, can
* never be less than two points long.
- *
+ *
* Inherits from:
* - <OpenLayers.Geometry.Curve>
*/
@@ -33230,24 +33249,24 @@
*
*/
initialize: function(points) {
- OpenLayers.Geometry.Curve.prototype.initialize.apply(this, arguments);
+ OpenLayers.Geometry.Curve.prototype.initialize.apply(this, arguments);
},
/**
* APIMethod: removeComponent
- * Only allows removal of a point if there are three or more points in
+ * Only allows removal of a point if there are three or more points in
* the linestring. (otherwise the result would be just a single point)
*
- * Parameters:
+ * Parameters:
* point - {<OpenLayers.Geometry.Point>} The point to be removed
*/
removeComponent: function(point) {
if ( this.components && (this.components.length > 2)) {
- OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
arguments);
}
},
-
+
/**
* APIMethod: intersects
* Test for instersection between two geometries. This is a cheapo
@@ -33319,7 +33338,7 @@
}
return intersect;
},
-
+
/**
* Method: getSortedSegments
*
@@ -33357,7 +33376,7 @@
}
return segments.sort(byX1);
},
-
+
/**
* Method: splitWithSegment
* Split this geometry with the given segment.
@@ -33454,7 +33473,7 @@
/**
* Method: split
* Use this geometry (the source) to attempt to split a target geometry.
- *
+ *
* Parameters:
* target - {<OpenLayers.Geometry>} The target geometry.
* options - {Object} Properties of this object will be used to determine
@@ -33469,7 +33488,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -33573,7 +33592,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -33679,7 +33698,7 @@
} else {
best = best.distance;
}
- } else if(geometry instanceof OpenLayers.Geometry.LineString) {
+ } else if(geometry instanceof OpenLayers.Geometry.LineString) {
var segs0 = this.getSortedSegments();
var segs1 = geometry.getSortedSegments();
var seg0, seg1, intersection, x0, y0;
@@ -33767,14 +33786,14 @@
/**
* Class: OpenLayers.Geometry.LinearRing
- *
- * A Linear Ring is a special LineString which is closed. It closes itself
+ *
+ * A Linear Ring is a special LineString which is closed. It closes itself
* automatically on every addPoint/removePoint by adding a copy of the first
- * point as the last point.
- *
+ * point as the last point.
+ *
* Also, as it is the first in the line family to close itself, a getArea()
* function is defined to calculate the enclosed area of the linearRing
- *
+ *
* Inherits:
* - <OpenLayers.Geometry.LineString>
*/
@@ -33783,8 +33802,8 @@
/**
* Property: componentTypes
- * {Array(String)} An array of class names representing the types of
- * components that the collection can include. A null
+ * {Array(String)} An array of class names representing the types of
+ * components that the collection can include. A null
* value means the component types are not restricted.
*/
componentTypes: ["OpenLayers.Geometry.Point"],
@@ -33796,12 +33815,12 @@
* point does not equal the first point), the constructor will close
* the ring. If the ring is already closed (the last point does equal
* the first point), it will be left closed.
- *
+ *
* Parameters:
* points - {Array(<OpenLayers.Geometry.Point>)} points
*/
initialize: function(points) {
- OpenLayers.Geometry.LineString.prototype.initialize.apply(this,
+ OpenLayers.Geometry.LineString.prototype.initialize.apply(this,
arguments);
},
@@ -33809,16 +33828,16 @@
* APIMethod: addComponent
* Adds a point to geometry components. If the point is to be added to
* the end of the components array and it is the same as the last point
- * already in that array, the duplicate point is not added. This has
- * the effect of closing the ring if it is not already closed, and
- * doing the right thing if it is already closed. This behavior can
- * be overridden by calling the method with a non-null index as the
+ * already in that array, the duplicate point is not added. This has
+ * the effect of closing the ring if it is not already closed, and
+ * doing the right thing if it is already closed. This behavior can
+ * be overridden by calling the method with a non-null index as the
* second argument.
*
* Parameter:
* point - {<OpenLayers.Geometry.Point>}
* index - {Integer} Index into the array to insert the component
- *
+ *
* Returns:
* {Boolean} Was the Point successfully added?
*/
@@ -33831,18 +33850,18 @@
// given an index, add the point
// without an index only add non-duplicate points
if(index != null || !point.equals(lastPoint)) {
- added = OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
+ added = OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
arguments);
}
//append copy of first point
var firstPoint = this.components[0];
- OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
[firstPoint]);
-
+
return added;
},
-
+
/**
* APIMethod: removeComponent
* Removes a point from geometry components.
@@ -33855,17 +33874,17 @@
//remove last point
this.components.pop();
-
+
//remove our point
- OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,
arguments);
//append copy of first point
var firstPoint = this.components[0];
- OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
+ OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,
[firstPoint]);
}
},
-
+
/**
* APIMethod: move
* Moves a geometry by the given displacement along positive x and y axes.
@@ -33873,7 +33892,7 @@
* bounds.
*
* Parameters:
- * x - {Float} Distance to move geometry in positive x direction.
+ * x - {Float} Distance to move geometry in positive x direction.
* y - {Float} Distance to move geometry in positive y direction.
*/
move: function(x, y) {
@@ -33909,9 +33928,9 @@
* will have four times the area).
* origin - {<OpenLayers.Geometry.Point>} Point of origin for resizing
* ratio - {Float} Optional x:y ratio for resizing. Default ratio is 1.
- *
+ *
* Returns:
- * {OpenLayers.Geometry} - The current geometry.
+ * {OpenLayers.Geometry} - The current geometry.
*/
resize: function(scale, origin, ratio) {
for(var i=0, len=this.components.length; i<len - 1; ++i) {
@@ -33919,7 +33938,7 @@
}
return this;
},
-
+
/**
* APIMethod: transform
* Reproject the components geometry from source to dest.
@@ -33927,9 +33946,9 @@
* Parameters:
* source - {<OpenLayers.Projection>}
* dest - {<OpenLayers.Projection>}
- *
+ *
* Returns:
- * {<OpenLayers.Geometry>}
+ * {<OpenLayers.Geometry>}
*/
transform: function(source, dest) {
if (source && dest) {
@@ -33941,7 +33960,7 @@
}
return this;
},
-
+
/**
* APIMethod: getCentroid
*
@@ -33969,7 +33988,7 @@
* APIMethod: getArea
* Note - The area is positive if the ring is oriented CW, otherwise
* it will be negative.
- *
+ *
* Returns:
* {Float} The signed area for a ring.
*/
@@ -33986,7 +34005,7 @@
}
return area;
},
-
+
/**
* APIMethod: getGeodesicArea
* Calculate the approximate area of the polygon were it projected onto
@@ -33997,7 +34016,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Reference:
* Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for
* Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion
@@ -34030,7 +34049,7 @@
}
return area;
},
-
+
/**
* Method: containsPoint
* Test if a point is inside a linear ring. For the case where a point
@@ -34062,7 +34081,7 @@
end = this.components[i + 1];
x2 = approx(end.x, digs);
y2 = approx(end.y, digs);
-
+
/**
* The following conditions enforce five edge-crossing rules:
* 1. points coincident with edges are considered contained;
@@ -34188,10 +34207,10 @@
* Class: OpenLayers.Geometry.MultiLineString
* A MultiLineString is a geometry with multiple <OpenLayers.Geometry.LineString>
* components.
- *
+ *
* Inherits from:
* - <OpenLayers.Geometry.Collection>
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.MultiLineString = OpenLayers.Class(
OpenLayers.Geometry.Collection, {
@@ -34208,19 +34227,19 @@
* Constructor: OpenLayers.Geometry.MultiLineString
* Constructor for a MultiLineString Geometry.
*
- * Parameters:
- * components - {Array(<OpenLayers.Geometry.LineString>)}
+ * Parameters:
+ * components - {Array(<OpenLayers.Geometry.LineString>)}
*
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
- arguments);
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ arguments);
},
-
+
/**
* Method: split
* Use this geometry (the source) to attempt to split a target geometry.
- *
+ *
* Parameters:
* target - {<OpenLayers.Geometry>} The target geometry.
* options - {Object} Properties of this object will be used to determine
@@ -34235,7 +34254,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -34255,7 +34274,7 @@
for(var i=0, len=this.components.length; i<len; ++i) {
sourceLine = this.components[i];
sourceSplit = false;
- for(var j=0; j < targetParts.length; ++j) {
+ for(var j=0; j < targetParts.length; ++j) {
splits = sourceLine.split(targetParts[j], options);
if(splits) {
if(mutual) {
@@ -34320,7 +34339,7 @@
}
return results;
},
-
+
/**
* Method: splitWith
* Split this geometry (the target) with the given geometry (the source).
@@ -34340,7 +34359,7 @@
* tolerance - {Number} If a non-null value is provided, intersections
* within the tolerance distance of an existing vertex on the source
* will be assumed to occur at the vertex.
- *
+ *
* Returns:
* {Array} A list of geometries (of this same type as the target) that
* result from splitting the target with the source geometry. The
@@ -34390,7 +34409,7 @@
);
}
}
- targetSplit = true;
+ targetSplit = true;
}
}
if(!targetSplit) {
@@ -34408,7 +34427,7 @@
])
];
}
-
+
}
}
} else {
@@ -34460,13 +34479,13 @@
* - <OpenLayers.Handler.Point>
*/
OpenLayers.Handler.Path = OpenLayers.Class(OpenLayers.Handler.Point, {
-
+
/**
* Property: line
* {<OpenLayers.Feature.Vector>}
*/
line: null,
-
+
/**
* Property: freehand
* {Boolean} In freehand mode, the handler starts the path on mouse down,
@@ -34475,7 +34494,7 @@
* click and double-click finishes the path.
*/
freehand: false,
-
+
/**
* Property: freehandToggle
* {String} If set, freehandToggle is checked on mouse events and will set
@@ -34510,7 +34529,7 @@
initialize: function(control, callbacks, options) {
OpenLayers.Handler.Point.prototype.initialize.apply(this, arguments);
},
-
+
/**
* Method: createFeature
* Add temporary geometries
@@ -34531,7 +34550,7 @@
this.point.geometry.clearBounds();
this.layer.addFeatures([this.line, this.point], {silent: true});
},
-
+
/**
* Method: destroyFeature
* Destroy temporary geometries
@@ -34550,7 +34569,7 @@
this.layer.removeFeatures([this.point]);
}
},
-
+
/**
* Method: addPoint
* Add point to geometry. Send the point index to override
@@ -34572,7 +34591,7 @@
this.callback("modify", [this.point.geometry, this.getSketch()]);
this.drawFeature();
},
-
+
/**
* Method: freehandMode
* Determine whether to behave in freehand mode or not.
@@ -34642,11 +34661,11 @@
* Method: mousedown
* Handle mouse down. Add a new point to the geometry and
* render it. Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousedown: function(evt) {
@@ -34672,15 +34691,15 @@
* Method: mousemove
* Handle mouse move. Adjust the geometry and redraw.
* Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mousemove: function (evt) {
- if(this.drawing) {
+ if(this.drawing) {
if(this.mouseDown && this.freehandMode(evt)) {
this.addPoint(evt.xy);
} else {
@@ -34689,16 +34708,16 @@
}
return true;
},
-
+
/**
* Method: mouseup
* Handle mouse up. Send the latest point in the geometry to
* the control. Return determines whether to propagate the event on the map.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
mouseup: function (evt) {
@@ -34717,16 +34736,16 @@
}
return true;
},
-
+
/**
- * Method: dblclick
+ * Method: dblclick
* Handle double-clicks. Finish the geometry and send it back
* to the control.
- *
+ *
* Parameters:
* evt - {Event} The browser event
*
- * Returns:
+ * Returns:
* {Boolean} Allow event propagation
*/
dblclick: function(evt) {
@@ -34755,12 +34774,12 @@
*/
/**
- * Class: OpenLayers.Geometry.Polygon
- * Polygon is a collection of Geometry.LinearRings.
- *
+ * Class: OpenLayers.Geometry.Polygon
+ * Polygon is a collection of Geometry.LinearRings.
+ *
* Inherits from:
- * - <OpenLayers.Geometry.Collection>
- * - <OpenLayers.Geometry>
+ * - <OpenLayers.Geometry.Collection>
+ * - <OpenLayers.Geometry>
*/
OpenLayers.Geometry.Polygon = OpenLayers.Class(
OpenLayers.Geometry.Collection, {
@@ -34775,24 +34794,24 @@
/**
* Constructor: OpenLayers.Geometry.Polygon
- * Constructor for a Polygon geometry.
- * The first ring (this.component[0])is the outer bounds of the polygon and
+ * Constructor for a Polygon geometry.
+ * The first ring (this.component[0])is the outer bounds of the polygon and
* all subsequent rings (this.component[1-n]) are internal holes.
*
*
* Parameters:
- * components - {Array(<OpenLayers.Geometry.LinearRing>)}
+ * components - {Array(<OpenLayers.Geometry.LinearRing>)}
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
arguments);
},
-
- /**
+
+ /**
* APIMethod: getArea
- * Calculated by subtracting the areas of the internal holes from the
+ * Calculated by subtracting the areas of the internal holes from the
* area of the outer hole.
- *
+ *
* Returns:
* {float} The area of the geometry
*/
@@ -34807,7 +34826,7 @@
return area;
},
- /**
+ /**
* APIMethod: getGeodesicArea
* Calculate the approximate area of the polygon were it projected onto
* the earth.
@@ -34816,7 +34835,7 @@
* projection - {<OpenLayers.Projection>} The spatial reference system
* for the geometry coordinates. If not provided, Geographic/WGS84 is
* assumed.
- *
+ *
* Reference:
* Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for
* Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion
@@ -34867,7 +34886,7 @@
} else {
// in hole
contained = false;
- }
+ }
break;
}
}
@@ -34978,7 +34997,7 @@
/**
* APIMethod: createRegularPolygon
- * Create a regular polygon around a radius. Useful for creating circles
+ * Create a regular polygon around a radius. Useful for creating circles
* and the like.
*
* Parameters:
@@ -34987,7 +35006,7 @@
* sides - {Integer} Number of sides. 20 approximates a circle.
* rotation - {Float} original angle of rotation, in degrees.
*/
-OpenLayers.Geometry.Polygon.createRegularPolygon = function(origin, radius, sides, rotation) {
+OpenLayers.Geometry.Polygon.createRegularPolygon = function(origin, radius, sides, rotation) {
var angle = Math.PI * ((1/sides) - (1/2));
if(rotation) {
angle += (rotation / 180) * Math.PI;
@@ -35021,7 +35040,7 @@
* MultiPolygon is a geometry with multiple <OpenLayers.Geometry.Polygon>
* components. Create a new instance with the <OpenLayers.Geometry.MultiPolygon>
* constructor.
- *
+ *
* Inherits from:
* - <OpenLayers.Geometry.Collection>
*/
@@ -35046,7 +35065,7 @@
*
*/
initialize: function(components) {
- OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
+ OpenLayers.Geometry.Collection.prototype.initialize.apply(this,
arguments);
},
@@ -35076,7 +35095,7 @@
* - <OpenLayers.Handler>
*/
OpenLayers.Handler.Polygon = OpenLayers.Class(OpenLayers.Handler.Path, {
-
+
/**
* Parameter: polygon
* {<OpenLayers.Feature.Vector>}
@@ -35108,7 +35127,7 @@
initialize: function(control, callbacks, options) {
OpenLayers.Handler.Path.prototype.initialize.apply(this, arguments);
},
-
+
/**
* Method: createFeature
* Add temporary geometries
@@ -35150,7 +35169,7 @@
this.layer.drawFeature(this.polygon, this.style);
this.layer.drawFeature(this.point, this.style);
},
-
+
/**
* Method: getSketch
* Return the sketch feature.
@@ -35182,9 +35201,9 @@
* Method: dblclick
* Handle double-clicks. Finish the geometry and send it back
* to the control.
- *
+ *
* Parameters:
- * evt - {Event}
+ * evt - {Event}
*/
dblclick: function(evt) {
if(!this.freehandMode(evt)) {
@@ -35223,50 +35242,50 @@
* Class: OpenLayers.Format.GML
* Read/Wite GML. Create a new instance with the <OpenLayers.Format.GML>
* constructor. Supports the GML simple features profile.
- *
+ *
* Inherits from:
* - <OpenLayers.Format>
*/
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",
-
+ 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.
@@ -35278,14 +35297,14 @@
* {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.
@@ -35307,8 +35326,8 @@
/**
* APIMethod: read
- * Read data from a string, and return a list of features.
- *
+ * Read data from a string, and return a list of features.
+ *
* Parameters:
* data - {String} or {DOMElement} data to read/parse.
*
@@ -35316,7 +35335,7 @@
* {Array(<OpenLayers.Feature.Vector>)} An array of features.
*/
read: function(data) {
- if(typeof data == "string") {
+ if(typeof data == "string") {
data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
}
var featureNodes = this.getElementsByTagNameNS(data.documentElement,
@@ -35331,15 +35350,15 @@
}
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.
+ * node - {DOMElement} A GML feature node.
*/
parseFeature: function(node) {
// only accept one geometry per feature - look for highest "order"
@@ -35356,9 +35375,9 @@
if(parser) {
geometry = parser.apply(this, [nodeList[0]]);
if (this.internalProjection && this.externalProjection) {
- geometry.transform(this.externalProjection,
- this.internalProjection);
- }
+ geometry.transform(this.externalProjection,
+ this.internalProjection);
+ }
} else {
OpenLayers.Console.error(OpenLayers.i18n(
"unsupportedGeometryType", {'geomType':type}));
@@ -35367,20 +35386,20 @@
break;
}
}
-
+
// construct feature (optionally with attributes)
var attributes;
if(this.extractAttributes) {
attributes = this.parseAttributes(node);
}
var feature = new OpenLayers.Feature.Vector(geometry, attributes);
-
+
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;
@@ -35397,14 +35416,14 @@
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
@@ -35461,12 +35480,12 @@
}
}
}
-
+
// preserve third dimension
if(coords.length == 2) {
coords[2] = null;
}
-
+
if (this.xy) {
return new OpenLayers.Geometry.Point(coords[0], coords[1],
coords[2]);
@@ -35476,7 +35495,7 @@
coords[2]);
}
},
-
+
/**
* Method: parseGeometry.multipoint
* Given a GML node representing a multipoint geometry, create an
@@ -35503,7 +35522,7 @@
}
return new OpenLayers.Geometry.MultiPoint(components);
},
-
+
/**
* Method: parseGeometry.linestring
* Given a GML node representing a linestring geometry, create an
@@ -35585,7 +35604,7 @@
}
return line;
},
-
+
/**
* Method: parseGeometry.multilinestring
* Given a GML node representing a multilinestring geometry, create an
@@ -35613,7 +35632,7 @@
}
return new OpenLayers.Geometry.MultiLineString(components);
},
-
+
/**
* Method: parseGeometry.polygon
* Given a GML node representing a polygon geometry, create an
@@ -35642,7 +35661,7 @@
}
return new OpenLayers.Geometry.Polygon(components);
},
-
+
/**
* Method: parseGeometry.multipolygon
* Given a GML node representing a multipolygon geometry, create an
@@ -35670,22 +35689,22 @@
}
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;
}
@@ -35695,17 +35714,17 @@
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;
}
@@ -35715,21 +35734,21 @@
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;
+ return envelope;
}
},
-
+
/**
* Method: parseAttributes
*
@@ -35778,11 +35797,11 @@
}
return attributes;
},
-
+
/**
* APIMethod: write
- * Generate a GML document string given a list of features.
- *
+ * Generate a GML document string given a list of features.
+ *
* Parameters:
* features - {Array(<OpenLayers.Feature.Vector>)} List of features to
* serialize into a string.
@@ -35802,7 +35821,7 @@
return OpenLayers.Format.XML.prototype.write.apply(this, [gml]);
},
- /**
+ /**
* Method: createFeatureXML
* Accept an OpenLayers.Feature.Vector, and build a GML node for it.
*
@@ -35828,27 +35847,27 @@
featureContainer.setAttribute("fid", fid);
featureContainer.appendChild(geomContainer);
for(var attr in feature.attributes) {
- var attrText = this.createTextNode(feature.attributes[attr]);
+ 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,
+ geometry.transform(this.internalProjection,
this.externalProjection);
- }
+ }
var className = geometry.CLASS_NAME;
var type = className.substring(className.lastIndexOf(".") + 1);
var builder = this.buildGeometry[type.toLowerCase()];
@@ -35881,7 +35900,7 @@
gml.appendChild(this.buildCoordinatesNode(geometry));
return gml;
},
-
+
/**
* Method: buildGeometry.multipoint
* Given an OpenLayers multipoint geometry, create a GML multipoint.
@@ -35896,7 +35915,7 @@
var gml = this.createElementNS(this.gmlns, "gml:MultiPoint");
var points = geometry.components;
var pointMember, pointGeom;
- for(var i=0; i<points.length; i++) {
+ for(var i=0; i<points.length; i++) {
pointMember = this.createElementNS(this.gmlns,
"gml:pointMember");
pointGeom = this.buildGeometry.point.apply(this,
@@ -35904,9 +35923,9 @@
pointMember.appendChild(pointGeom);
gml.appendChild(pointMember);
}
- return gml;
+ return gml;
},
-
+
/**
* Method: buildGeometry.linestring
* Given an OpenLayers linestring geometry, create a GML linestring.
@@ -35922,7 +35941,7 @@
gml.appendChild(this.buildCoordinatesNode(geometry));
return gml;
},
-
+
/**
* Method: buildGeometry.multilinestring
* Given an OpenLayers multilinestring geometry, create a GML
@@ -35949,7 +35968,7 @@
}
return gml;
},
-
+
/**
* Method: buildGeometry.linearring
* Given an OpenLayers linearring geometry, create a GML linearring.
@@ -35965,7 +35984,7 @@
gml.appendChild(this.buildCoordinatesNode(geometry));
return gml;
},
-
+
/**
* Method: buildGeometry.polygon
* Given an OpenLayers polygon geometry, create a GML polygon.
@@ -35991,7 +36010,7 @@
}
return gml;
},
-
+
/**
* Method: buildGeometry.multipolygon
* Given an OpenLayers multipolygon geometry, create a GML multipolygon.
@@ -36018,7 +36037,7 @@
return gml;
},
-
+
/**
* Method: buildGeometry.bounds
* Given an OpenLayers bounds, create a GML box.
@@ -36042,8 +36061,8 @@
* (code)
* <gml:coordinates decimal="." cs="," ts=" ">...</gml:coordinates>
* (end)
- * Parameters:
- * geometry - {<OpenLayers.Geometry>}
+ * Parameters:
+ * geometry - {<OpenLayers.Geometry>}
*
* Returns:
* {XmlNode} created xmlNode
@@ -36063,17 +36082,17 @@
} else {
var points = (geometry.components) ? geometry.components : [geometry];
for(var i=0; i<points.length; i++) {
- parts.push(points[i].x + "," + points[i].y);
- }
+ parts.push(points[i].x + "," + points[i].y);
+ }
}
var txtNode = this.createTextNode(parts.join(" "));
coordinatesNode.appendChild(txtNode);
-
+
return coordinatesNode;
},
- CLASS_NAME: "OpenLayers.Format.GML"
+ CLASS_NAME: "OpenLayers.Format.GML"
});
/* ======================================================================
OpenLayers/Format/GML/Base.js
@@ -36104,7 +36123,7 @@
* - <OpenLayers.Format.XML>
*/
OpenLayers.Format.GML.Base = OpenLayers.Class(OpenLayers.Format.XML, {
-
+
/**
* Property: namespaces
* {Object} Mapping of namespace aliases to namespace URIs.
@@ -36115,7 +36134,7 @@
xsi: "http://www.w3.org/2001/XMLSchema-instance",
wfs: "http://www.opengis.net/wfs" // this is a convenience for reading wfs:FeatureCollection
},
-
+
/**
* Property: defaultPrefix
*/
@@ -36126,13 +36145,13 @@
* {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
@@ -36151,7 +36170,7 @@
* {Boolean} Extract attributes from GML. Default is true.
*/
extractAttributes: true,
-
+
/**
* APIProperty: srsName
* {String} URI for spatial reference system. This is optional for
@@ -36165,7 +36184,7 @@
* 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,
/**
@@ -36204,7 +36223,7 @@
* this instance.
*
* Valid options properties:
- * featureType - {Array(String) or String} Local (without prefix) feature
+ * featureType - {Array(String) or String} Local (without prefix) feature
* typeName(s) (required).
* featureNS - {String} Feature namespace (required).
* geometryName - {String} Geometry element name.
@@ -36217,7 +36236,7 @@
}
this.singleFeatureType = !options || (typeof options.featureType === "string");
},
-
+
/**
* Method: read
*
@@ -36229,7 +36248,7 @@
* {Array(<OpenLayers.Feature.Vector>)} An array of features.
*/
read: function(data) {
- if(typeof data == "string") {
+ if(typeof data == "string") {
data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
}
if(data && data.nodeType == 9) {
@@ -36259,7 +36278,7 @@
}
return features;
},
-
+
/**
* Property: readers
* Contains public functions, grouped by namespace prefix, that will
@@ -36274,7 +36293,7 @@
this.readChildNodes(node, obj);
},
"featureMembers": function(node, obj) {
- this.readChildNodes(node, obj);
+ this.readChildNodes(node, obj);
},
"name": function(node, obj) {
obj.name = this.getChildValue(node);
@@ -36412,7 +36431,7 @@
// geometry or attributes.
var name;
var local = node.localName || node.nodeName.split(":").pop();
- if (!this.singleFeatureType &&
+ if (!this.singleFeatureType &&
(OpenLayers.Util.indexOf(this.featureType, local) != -1)) {
name = "_typeName";
}
@@ -36479,7 +36498,7 @@
}
}
},
-
+
/**
* Method: write
*
@@ -36507,7 +36526,7 @@
return OpenLayers.Format.XML.prototype.write.apply(this, [root]);
},
-
+
/**
* Property: writers
* As a compliment to the readers property, this structure contains public
@@ -36597,7 +36616,7 @@
geometry = geometry.clone().transform(
this.internalProjection, this.externalProjection
);
- }
+ }
var node = this.createElementNSPlus(
"feature:" + this.geometryName
);
@@ -36631,7 +36650,7 @@
}
}
},
-
+
/**
* Function: setGeometryTypes
* Sets the <geometryTypes> mapping.
@@ -36648,7 +36667,7 @@
};
},
- CLASS_NAME: "OpenLayers.Format.GML.Base"
+ CLASS_NAME: "OpenLayers.Format.GML.Base"
});
/* ======================================================================
@@ -36671,7 +36690,7 @@
* - <OpenLayers.Format.GML.Base>
*/
OpenLayers.Format.GML.v2 = OpenLayers.Class(OpenLayers.Format.GML.Base, {
-
+
/**
* Property: schemaLocation
* {String} Schema location for a particular minor version.
@@ -36843,9 +36862,9 @@
"feature": OpenLayers.Format.GML.Base.prototype.writers["feature"],
"wfs": OpenLayers.Format.GML.Base.prototype.writers["wfs"]
},
-
- CLASS_NAME: "OpenLayers.Format.GML.v2"
+ CLASS_NAME: "OpenLayers.Format.GML.v2"
+
});
/* ======================================================================
OpenLayers/Format/GML/v3.js
@@ -36867,7 +36886,7 @@
* - <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
@@ -36884,7 +36903,7 @@
* instantiation).
*/
curve: false,
-
+
/**
* Property: multiCurve
* {Boolean} Write gml:MultiCurve instead of gml:MultiLineString. Since
@@ -36894,7 +36913,7 @@
* instantiation).
*/
multiCurve: true,
-
+
/**
* Property: surface
* {Boolean} Write gml:Surface instead of gml:Polygon elements. This also
@@ -37083,11 +37102,11 @@
this.readers.gml.pos.apply(this, [node, obj]);
container.points[1] = obj.points[0];
}
- }, OpenLayers.Format.GML.Base.prototype.readers["gml"]),
+ }, 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
*
@@ -37179,7 +37198,7 @@
}
return this.createElementNSPlus("gml:posList", {
value: parts.join(" ")
- });
+ });
},
"Surface": function(geometry) {
var node = this.createElementNSPlus("gml:Surface");
@@ -37308,7 +37327,7 @@
"OpenLayers.Geometry.Collection": "GeometryCollection"
};
},
-
- CLASS_NAME: "OpenLayers.Format.GML.v3"
+ CLASS_NAME: "OpenLayers.Format.GML.v3"
+
});
More information about the fusion-commits
mailing list