Pullup changes to trunk for RC2. Includes drag-fires click changes
(Closes #982), comment/documentation/requires changes (Closes #983, #993, #988), Fixing post support in proxy.cgi (Closes #991), baseLayer zoom level change (Closes #990), typo in Layer.Image.setURL (Closes #985), and a fix or the Layer.Google bug caused by Google's changing internals (#994). RC2, here we come. git-svn-id: http://svn.openlayers.org/branches/openlayers/2.5@4390 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -6,22 +6,31 @@ restrictions that prevent the Javascript from loading pages not on the
|
||||
same server as the Javascript. This has several problems: it's less
|
||||
efficient, it might break some sites, and it's a security risk because
|
||||
people can use this proxy to browse the web and possibly do bad stuff
|
||||
with it. If you can get your code signed (see:
|
||||
http://trac.openlayers.org/wiki/HowToSignJavascript), then you should
|
||||
modify Parameters.js so that this isn't used. Otherwise, you're stuck
|
||||
with it. It only loads pages via http and https, but it can load any
|
||||
content type. XML and HTML are both currently used by Openlayers."""
|
||||
content type. It supports GET and POST requests."""
|
||||
|
||||
import urllib
|
||||
import urllib2
|
||||
import cgi
|
||||
|
||||
fs = cgi.FieldStorage()
|
||||
url = fs.getvalue('url', "http://openlayers.org")
|
||||
import sys, os
|
||||
|
||||
# Designed to prevent Open Proxy type stuff.
|
||||
|
||||
allowedHosts = ['www.openlayers.org', 'openlayers.org', 'octo.metacarta.com', 'merrimack.metacarta.com', 'labs.metacarta.com', 'world.freemap.in',
|
||||
'prototype.openmnnd.org']
|
||||
allowedHosts = ['www.openlayers.org', 'openlayers.org',
|
||||
'labs.metacarta.com', 'world.freemap.in',
|
||||
'prototype.openmnnd.org', 'geo.openplans.org']
|
||||
|
||||
method = os.environ["REQUEST_METHOD"]
|
||||
|
||||
if method == "POST":
|
||||
qs = os.environ["QUERY_STRING"]
|
||||
d = cgi.parse_qs(qs)
|
||||
if d.has_key("url"):
|
||||
url = d["url"][0]
|
||||
else:
|
||||
url = "http://www.openlayers.org"
|
||||
else:
|
||||
fs = cgi.FieldStorage()
|
||||
url = fs.getvalue('url', "http://www.openlayers.org")
|
||||
|
||||
try:
|
||||
host = url.split("/")[2]
|
||||
@@ -30,24 +39,36 @@ try:
|
||||
print "Content-Type: text/plain"
|
||||
print
|
||||
print "This proxy does not allow you to access that location."
|
||||
|
||||
print
|
||||
print os.environ
|
||||
|
||||
elif url.startswith("http://") or url.startswith("https://"):
|
||||
|
||||
y = urllib.urlopen(url)
|
||||
if method == "POST":
|
||||
length = int(os.environ["CONTENT_LENGTH"])
|
||||
headers = {"Content-Type": os.environ["CONTENT_TYPE"]}
|
||||
body = sys.stdin.read(length)
|
||||
r = urllib2.Request(url, body, headers)
|
||||
y = urllib2.urlopen(r)
|
||||
else:
|
||||
y = urllib2.urlopen(url)
|
||||
|
||||
headers = str(y.info()).split('\n')
|
||||
for h in headers:
|
||||
if h.startswith("Content-Type:"):
|
||||
print h
|
||||
# print content type header
|
||||
i = y.info()
|
||||
if i.has_key("Content-Type"):
|
||||
print "Content-Type: %s" % (i["Content-Type"])
|
||||
else:
|
||||
print "Content-Type: text/plain"
|
||||
print
|
||||
|
||||
print y.read()
|
||||
|
||||
y.close()
|
||||
else:
|
||||
print """Content-Type: text/plain
|
||||
|
||||
Illegal request."""
|
||||
print "Content-Type: text/plain"
|
||||
print
|
||||
print "Illegal request."
|
||||
|
||||
except Exception, E:
|
||||
print "Status: 500 Unexpected Error"
|
||||
print "Content-Type: text/plain"
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
* for the full text of the license. */
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/BaseTypes/Class.js
|
||||
* @requires OpenLayers/BaseTypes/LonLat.js
|
||||
* @requires OpenLayers/BaseTypes/Size.js
|
||||
* @requires OpenLayers/BaseTypes/Pixel.js
|
||||
* @requires OpenLayers/BaseTypes/Bounds.js
|
||||
* @requires OpenLayers/BaseTypes/Element.js
|
||||
*
|
||||
* Header: OpenLayers Base Types
|
||||
* OpenLayers custom string, number and function functions are described here.
|
||||
*/
|
||||
@@ -16,7 +23,7 @@
|
||||
OpenLayers.String = {
|
||||
/**
|
||||
* APIMethod: OpenLayers.String.startsWith
|
||||
* Whether or not a string starts with another string.
|
||||
* Test whether a string starts with another string.
|
||||
*
|
||||
* Parameters:
|
||||
* str - {String} The string to test.
|
||||
@@ -31,7 +38,7 @@ OpenLayers.String = {
|
||||
|
||||
/**
|
||||
* APIMethod: OpenLayers.String.contains
|
||||
* Whether or not a string contains another string.
|
||||
* Test whether a string contains another string.
|
||||
*
|
||||
* Parameters:
|
||||
* str - {String} The string to test.
|
||||
@@ -53,7 +60,7 @@ OpenLayers.String = {
|
||||
* modified.
|
||||
*
|
||||
* Returns:
|
||||
* {String} A trimmed version of the string - all leading and
|
||||
* {String} A trimmed version of the string with all leading and
|
||||
* trailing spaces removed.
|
||||
*/
|
||||
trim: function(str) {
|
||||
@@ -86,7 +93,7 @@ OpenLayers.String = {
|
||||
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.
|
||||
@@ -106,7 +113,7 @@ if (!String.prototype.startsWith) {
|
||||
if (!String.prototype.contains) {
|
||||
/**
|
||||
* APIMethod: String.contains
|
||||
* Deprecated. Whether or not a string contains another string.
|
||||
* *Deprecated*. Whether or not a string contains another string.
|
||||
*
|
||||
* Parameters:
|
||||
* str - {String} The string that we're testing for.
|
||||
@@ -126,7 +133,7 @@ if (!String.prototype.contains) {
|
||||
if (!String.prototype.trim) {
|
||||
/**
|
||||
* APIMethod: String.trim
|
||||
* Deprecated. Removes leading and trailing whitespace characters from a string.
|
||||
* *Deprecated*. Removes leading and trailing whitespace characters from a string.
|
||||
*
|
||||
* Returns:
|
||||
* {String} A trimmed version of the string - all leading and
|
||||
@@ -143,8 +150,8 @@ if (!String.prototype.trim) {
|
||||
|
||||
if (!String.prototype.camelize) {
|
||||
/**
|
||||
* APIMethod: camelize
|
||||
* Deprecated. Camel-case a hyphenated string.
|
||||
* APIMethod: String.camelize
|
||||
* *Deprecated*. Camel-case a hyphenated string.
|
||||
* Ex. "chicken-head" becomes "chickenHead", and
|
||||
* "-chicken-head" becomes "ChickenHead".
|
||||
*
|
||||
@@ -193,7 +200,7 @@ OpenLayers.Number = {
|
||||
if (!Number.prototype.limitSigDigs) {
|
||||
/**
|
||||
* APIMethod: Number.limitSigDigs
|
||||
* Deprecated. Limit the number of significant digits on an integer. Does *not*
|
||||
* *Deprecated*. Limit the number of significant digits on an integer. Does *not*
|
||||
* work with floats!
|
||||
*
|
||||
* Parameters:
|
||||
@@ -266,7 +273,7 @@ OpenLayers.Function = {
|
||||
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:
|
||||
@@ -290,7 +297,7 @@ if (!Function.prototype.bind) {
|
||||
if (!Function.prototype.bindAsEventListener) {
|
||||
/**
|
||||
* APIMethod: Function.bindAsEventListener
|
||||
* Deprecated. Bind a function to an object, and configure it to receive the
|
||||
* *Deprecated*. Bind a function to an object, and configure it to receive the
|
||||
* event object as first parameter when called.
|
||||
*
|
||||
* Parameters:
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
* 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));
|
||||
* > bounds.extend(new OpenLayers.LonLat(5,6));
|
||||
* > bounds.toBBOX() // returns 4,5,5,6
|
||||
* > bounds.toBBOX(); // returns 4,5,5,6
|
||||
*/
|
||||
OpenLayers.Bounds = OpenLayers.Class({
|
||||
|
||||
@@ -81,13 +81,13 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
|
||||
/**
|
||||
* Method: equals
|
||||
* Test a two bounds for equivalence
|
||||
* Test a two bounds for equivalence.
|
||||
*
|
||||
* Parameters:
|
||||
* bounds - {<OpenLayers.Bounds>}
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} The passed-in OpenLayers.Bounds object has the same left,
|
||||
* {Boolean} The passed-in bounds object has the same left,
|
||||
* right, top, bottom components as this. Note that if bounds
|
||||
* passed in is null, returns false.
|
||||
*/
|
||||
@@ -106,7 +106,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* APIMethod: toString
|
||||
*
|
||||
* Returns:
|
||||
* {String} String representation of OpenLayers.Bounds object.
|
||||
* {String} String representation of bounds object.
|
||||
* (ex.<i>"left-bottom=(5,42) right-top=(10,45)"</i>)
|
||||
*/
|
||||
toString:function() {
|
||||
@@ -132,7 +132,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* Default is 6
|
||||
*
|
||||
* Returns:
|
||||
* {String} Simple String representation of OpenLayers.Bounds object.
|
||||
* {String} Simple String representation of bounds object.
|
||||
* (ex. <i>"5,42,10,45"</i>)
|
||||
*/
|
||||
toBBOX:function(decimal) {
|
||||
@@ -162,7 +162,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* APIMethod: getHeight
|
||||
*
|
||||
* Returns:
|
||||
* {Float} The height of the bounds
|
||||
* {Float} The height of the bounds (top minus bottom).
|
||||
*/
|
||||
getHeight:function() {
|
||||
return (this.top - this.bottom);
|
||||
@@ -172,7 +172,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* APIMethod: getSize
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Size>} An <OpenLayers.Size> which represents the size of the box
|
||||
* {<OpenLayers.Size>} The size of the box.
|
||||
*/
|
||||
getSize:function() {
|
||||
return new OpenLayers.Size(this.getWidth(), this.getHeight());
|
||||
@@ -182,8 +182,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* APIMethod: getCenterPixel
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Pixel>} An <OpenLayers.Pixel> which represents the center
|
||||
* of the bounds
|
||||
* {<OpenLayers.Pixel>} The center of the bounds in pixel space.
|
||||
*/
|
||||
getCenterPixel:function() {
|
||||
return new OpenLayers.Pixel( (this.left + this.right) / 2,
|
||||
@@ -194,8 +193,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* APIMethod: getCenterLonLat
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.LonLat>} An <OpenLayers.LonLat> which represents the center
|
||||
* of the bounds
|
||||
* {<OpenLayers.LonLat>} The center of the bounds in map space.
|
||||
*/
|
||||
getCenterLonLat:function() {
|
||||
return new OpenLayers.LonLat( (this.left + this.right) / 2,
|
||||
@@ -210,9 +208,8 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* y - {Float}
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Bounds>} A new <OpenLayers.Bounds> whose coordinates are
|
||||
* the same as this, but shifted by the passed-in
|
||||
* x and y values
|
||||
* {<OpenLayers.Bounds>} A new bounds whose coordinates are the same as
|
||||
* this, but shifted by the passed-in x and y values.
|
||||
*/
|
||||
add:function(x, y) {
|
||||
if ( (x == null) || (y == null) ) {
|
||||
@@ -227,8 +224,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
/**
|
||||
* APIMethod: extend
|
||||
* Extend the bounds to include the point, lonlat, or bounds specified.
|
||||
* Note: This function assumes that left<right and bottom<top.
|
||||
*
|
||||
* Note, this function assumes that left < right and bottom < top.
|
||||
*
|
||||
* Parameters:
|
||||
* object - {Object} Can be LonLat, Point, or Bounds
|
||||
@@ -273,11 +269,11 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
*
|
||||
* Parameters:
|
||||
* ll - {<OpenLayers.LonLat>}
|
||||
* inclusive - {Boolean} Whether or not to include the border.
|
||||
* Default is true.
|
||||
* inclusive - {Boolean} Whether or not to include the border.
|
||||
* Default is true.
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} Whether or not the passed-in lonlat is within this bounds.
|
||||
* {Boolean} The passed-in lonlat is within this bounds.
|
||||
*/
|
||||
containsLonLat:function(ll, inclusive) {
|
||||
return this.contains(ll.lon, ll.lat, inclusive);
|
||||
@@ -288,11 +284,11 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
*
|
||||
* Parameters:
|
||||
* px - {<OpenLayers.Pixel>}
|
||||
* inclusive - {Boolean} Whether or not to include the border.
|
||||
* Default is true.
|
||||
* inclusive - {Boolean} Whether or not to include the border. Default is
|
||||
* true.
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} Whether or not the passed-in pixel is within this bounds.
|
||||
* {Boolean} The passed-in pixel is within this bounds.
|
||||
*/
|
||||
containsPixel:function(px, inclusive) {
|
||||
return this.contains(px.x, px.y, inclusive);
|
||||
@@ -304,12 +300,12 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* Parameters:
|
||||
* x - {Float}
|
||||
* y - {Float}
|
||||
* inclusive - {Boolean} Whether or not to include the border.
|
||||
* Default is true.
|
||||
* inclusive - {Boolean} Whether or not to include the border. Default is
|
||||
* true.
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} Whether or not the passed-in coordinates are within this
|
||||
* bounds.
|
||||
* bounds.
|
||||
*/
|
||||
contains:function(x, y, inclusive) {
|
||||
|
||||
@@ -334,13 +330,13 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
*
|
||||
* Parameters:
|
||||
* bounds - {<OpenLayers.Bounds>}
|
||||
* inclusive - {<Boolean>} Whether or not to include the border.
|
||||
* Default is true.
|
||||
* inclusive - {<Boolean>} Whether or not to include the border. Default
|
||||
* is true.
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} Whether or not the passed-in OpenLayers.Bounds object
|
||||
* intersects this bounds. Simple math just check if either
|
||||
* contains the other, allowing for partial.
|
||||
* {Boolean} The passed-in OpenLayers.Bounds object intersects this bounds.
|
||||
* Simple math just check if either contains the other, allowing for
|
||||
* partial.
|
||||
*/
|
||||
intersectsBounds:function(bounds, inclusive) {
|
||||
|
||||
@@ -369,16 +365,14 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* APIMethod: containsBounds
|
||||
*
|
||||
* bounds - {<OpenLayers.Bounds>}
|
||||
* partial - {<Boolean>} If true, only part of passed-in
|
||||
* <OpenLayers.Bounds> needs be within this bounds.
|
||||
* If false, the entire passed-in bounds must be
|
||||
* within. Default is false
|
||||
* inclusive - {<Boolean>} Whether or not to include the border.
|
||||
* Default is true.
|
||||
* partial - {<Boolean>} If true, only part of passed-in bounds needs be
|
||||
* within this bounds. If false, the entire passed-in bounds must be
|
||||
* within. Default is false
|
||||
* inclusive - {<Boolean>} Whether or not to include the border. Default is
|
||||
* true.
|
||||
*
|
||||
* Returns:
|
||||
* {Boolean} Whether or not the passed-in OpenLayers.Bounds object is
|
||||
* contained within this bounds.
|
||||
* {Boolean} The passed-in bounds object is contained within this bounds.
|
||||
*/
|
||||
containsBounds:function(bounds, partial, inclusive) {
|
||||
|
||||
@@ -418,8 +412,8 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* lonlat - {<OpenLayers.LonLat>}
|
||||
*
|
||||
* Returns:
|
||||
* {String} The quadrant ("br" "tr" "tl" "bl") of the bounds in which
|
||||
* the coordinate lies.
|
||||
* {String} The quadrant ("br" "tr" "tl" "bl") of the bounds in which the
|
||||
* coordinate lies.
|
||||
*/
|
||||
determineQuadrant: function(lonlat) {
|
||||
|
||||
@@ -495,7 +489,7 @@ OpenLayers.Bounds = OpenLayers.Class({
|
||||
* str - {String}Comma-separated bounds string. (ex. <i>"5,42,10,45"</i>)
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Bounds>} New <OpenLayers.Bounds> object built from the
|
||||
* {<OpenLayers.Bounds>} New bounds object built from the
|
||||
* passed-in String.
|
||||
*/
|
||||
OpenLayers.Bounds.fromString = function(str) {
|
||||
@@ -512,8 +506,7 @@ OpenLayers.Bounds.fromString = function(str) {
|
||||
* bbox - {Array(Float)} Array of bounds values (ex. <i>[5,42,10,45]</i>)
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Bounds>} New <OpenLayers.Bounds> object built from the
|
||||
* passed-in Array.
|
||||
* {<OpenLayers.Bounds>} New bounds object built from the passed-in Array.
|
||||
*/
|
||||
OpenLayers.Bounds.fromArray = function(bbox) {
|
||||
return new OpenLayers.Bounds(parseFloat(bbox[0]),
|
||||
@@ -531,8 +524,7 @@ OpenLayers.Bounds.fromArray = function(bbox) {
|
||||
* size - {<OpenLayers.Size>}
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Bounds>} New <OpenLayers.Bounds> object built from the
|
||||
* passed-in size.
|
||||
* {<OpenLayers.Bounds>} New bounds object built from the passed-in size.
|
||||
*/
|
||||
OpenLayers.Bounds.fromSize = function(size) {
|
||||
return new OpenLayers.Bounds(0,
|
||||
|
||||
@@ -93,7 +93,7 @@ OpenLayers.Control = OpenLayers.Class({
|
||||
|
||||
/**
|
||||
* Property: handler
|
||||
* {<OpenLayers.Handler}> null
|
||||
* {<OpenLayers.Handler>} null
|
||||
*/
|
||||
handler: null,
|
||||
|
||||
|
||||
@@ -31,9 +31,9 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* that is about to be dragged and the pixel location of the mouse.
|
||||
*
|
||||
* Parameters:
|
||||
* feature - {OpenLayers.Feature.Vector} The feature that is about to be
|
||||
* feature - {<OpenLayers.Feature.Vector>} The feature that is about to be
|
||||
* dragged.
|
||||
* pixel - {OpenLayers.Pixel} The pixel location of the mouse.
|
||||
* pixel - {<OpenLayers.Pixel>} The pixel location of the mouse.
|
||||
*/
|
||||
onStart: function(feature, pixel) {},
|
||||
|
||||
@@ -44,8 +44,8 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* feature that is being dragged and the pixel location of the mouse.
|
||||
*
|
||||
* Parameters:
|
||||
* feature - {OpenLayers.Feature.Vector} The feature that was dragged.
|
||||
* pixel - {OpenLayers.Pixel} The pixel location of the mouse.
|
||||
* feature - {<OpenLayers.Feature.Vector>} The feature that was dragged.
|
||||
* pixel - {<OpenLayers.Pixel>} The pixel location of the mouse.
|
||||
*/
|
||||
onDrag: function(feature, pixel) {},
|
||||
|
||||
@@ -57,26 +57,26 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* mouse.
|
||||
*
|
||||
* Parameters:
|
||||
* feature - {OpenLayers.Feature.Vector} The feature that was dragged.
|
||||
* pixel - {OpenLayers.Pixel} The pixel location of the mouse.
|
||||
* feature - {<OpenLayers.Feature.Vector>} The feature that was dragged.
|
||||
* pixel - {<OpenLayers.Pixel>} The pixel location of the mouse.
|
||||
*/
|
||||
onComplete: function(feature, pixel) {},
|
||||
|
||||
/**
|
||||
* Property: layer
|
||||
* {OpenLayers.Layer.Vector}
|
||||
* {<OpenLayers.Layer.Vector>}
|
||||
*/
|
||||
layer: null,
|
||||
|
||||
/**
|
||||
* Property: feature
|
||||
* {OpenLayers.Feature.Vector}
|
||||
* {<OpenLayers.Feature.Vector>}
|
||||
*/
|
||||
feature: null,
|
||||
|
||||
/**
|
||||
* Property: dragHandler
|
||||
* {OpenLayers.Handler.Drag}
|
||||
* {<OpenLayers.Handler.Drag>}
|
||||
*/
|
||||
dragHandler: null,
|
||||
|
||||
@@ -88,7 +88,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
|
||||
/**
|
||||
* Property: featureHandler
|
||||
* {OpenLayers.Handler.Feature}
|
||||
* {<OpenLayers.Handler.Feature>}
|
||||
*/
|
||||
featureHandler: null,
|
||||
|
||||
@@ -100,7 +100,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
|
||||
/**
|
||||
* Property: lastPixel
|
||||
* {OpenLayers.Pixel}
|
||||
* {<OpenLayers.Pixel>}
|
||||
*/
|
||||
lastPixel: null,
|
||||
|
||||
@@ -109,7 +109,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Create a new control to drag features.
|
||||
*
|
||||
* Parameters:
|
||||
* layer - {OpenLayers.Layer.Vector} The layer containing features to be
|
||||
* layer - {<OpenLayers.Layer.Vector>} The layer containing features to be
|
||||
* dragged.
|
||||
* options - {Object} Optional object whose properties will be set on the
|
||||
* control.
|
||||
@@ -179,7 +179,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* This activates the drag handler.
|
||||
*
|
||||
* Parameters:
|
||||
* feature - {OpenLayers.Feature.Vector} The selected feature.
|
||||
* feature - {<OpenLayers.Feature.Vector>} The selected feature.
|
||||
*/
|
||||
overFeature: function(feature) {
|
||||
if(!this.dragHandler.dragging) {
|
||||
@@ -202,7 +202,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Called when the drag handler detects a mouse-down.
|
||||
*
|
||||
* Parameters:
|
||||
* pixel - {OpenLayers.Pixel} Location of the mouse event.
|
||||
* pixel - {<OpenLayers.Pixel>} Location of the mouse event.
|
||||
*/
|
||||
downFeature: function(pixel) {
|
||||
this.lastPixel = pixel;
|
||||
@@ -215,7 +215,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* optional onDrag method.
|
||||
*
|
||||
* Parameters:
|
||||
* pixel - {OpenLayers.Pixel} Location of the mouse event.
|
||||
* pixel - {<OpenLayers.Pixel>} Location of the mouse event.
|
||||
*/
|
||||
moveFeature: function(pixel) {
|
||||
var res = this.map.getResolution();
|
||||
@@ -232,7 +232,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* optional onComplete method.
|
||||
*
|
||||
* Parameters:
|
||||
* pixel - {OpenLayers.Pixel} Location of the mouse event.
|
||||
* pixel - {<OpenLayers.Pixel>} Location of the mouse event.
|
||||
*/
|
||||
upFeature: function(pixel) {
|
||||
if(!this.over) {
|
||||
@@ -248,7 +248,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Called when the drag handler is done dragging.
|
||||
*
|
||||
* Parameters:
|
||||
* pixel - {OpenLayers.Pixel} The last event pixel location. If this event
|
||||
* pixel - {<OpenLayers.Pixel>} The last event pixel location. If this event
|
||||
* came from a mouseout, this may not be in the map viewport.
|
||||
*/
|
||||
doneDragging: function(pixel) {
|
||||
@@ -260,7 +260,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Called when the feature handler detects a mouse-out on a feature.
|
||||
*
|
||||
* Parameters:
|
||||
* feature - {OpenLayers.Feature.Vector} The feature that the mouse left.
|
||||
* feature - {<OpenLayers.Feature.Vector>} The feature that the mouse left.
|
||||
*/
|
||||
outFeature: function(feature) {
|
||||
if(!this.dragHandler.dragging) {
|
||||
@@ -290,7 +290,7 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Set the map property for the control and all handlers.
|
||||
*
|
||||
* Parameters:
|
||||
* map - {OpenLayers.Map} The control's map.
|
||||
* map - {<OpenLayers.Map>} The control's map.
|
||||
*/
|
||||
setMap: function(map) {
|
||||
this.dragHandler.setMap(map);
|
||||
|
||||
@@ -30,7 +30,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
|
||||
/**
|
||||
* Property: layer
|
||||
* {OpenLayers.Layer.Vector}
|
||||
* {<OpenLayers.Layer.Vector>}
|
||||
*/
|
||||
layer: null,
|
||||
|
||||
@@ -116,7 +116,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Create a new modify feature control.
|
||||
*
|
||||
* Parameters:
|
||||
* layer - {OpenLayers.Layer.Vector} Layer that contains features that
|
||||
* layer - {<OpenLayers.Layer.Vector>} Layer that contains features that
|
||||
* will be modified.
|
||||
* options - {Object} Optional object whose properties will be set on the
|
||||
* control.
|
||||
@@ -450,7 +450,7 @@ OpenLayers.Control.ModifyFeature = OpenLayers.Class(OpenLayers.Control, {
|
||||
* Set the map property for the control and all handlers.
|
||||
*
|
||||
* Parameters:
|
||||
* map - {OpenLayers.Map} The control's map.
|
||||
* map - {<OpenLayers.Map>} The control's map.
|
||||
*/
|
||||
setMap: function(map) {
|
||||
this.selectControl.setMap(map);
|
||||
|
||||
@@ -53,7 +53,7 @@ OpenLayers.Control.OverviewMap = OpenLayers.Class(OpenLayers.Control, {
|
||||
|
||||
/**
|
||||
* APIProperty: minRatio
|
||||
* {Numver} The ratio of the overview map resolution to the main map
|
||||
* {Float} The ratio of the overview map resolution to the main map
|
||||
* resolution at which to zoom farther out on the overview map.
|
||||
*/
|
||||
minRatio: 8,
|
||||
|
||||
@@ -15,13 +15,13 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
|
||||
/**
|
||||
* APIProperty: slideFactor
|
||||
* {Float}
|
||||
* {Integer}
|
||||
*/
|
||||
slideFactor: 50,
|
||||
|
||||
/**
|
||||
* Property: buttons
|
||||
* Array of Button Divs
|
||||
* {Array(DOMElement)} Array of Button Divs
|
||||
*/
|
||||
buttons: null,
|
||||
|
||||
@@ -32,9 +32,12 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
position: null,
|
||||
|
||||
/**
|
||||
* Constructor: OpenLayers.PanZoom
|
||||
* Constructor: OpenLayers.Control.PanZoom
|
||||
*
|
||||
* Parameters:
|
||||
* options - {Object}
|
||||
*/
|
||||
initialize: function() {
|
||||
initialize: function(options) {
|
||||
this.position = new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X,
|
||||
OpenLayers.Control.PanZoom.Y);
|
||||
OpenLayers.Control.prototype.initialize.apply(this, arguments);
|
||||
@@ -61,7 +64,7 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
* px - {<OpenLayers.Pixel>}
|
||||
*
|
||||
* Returns:
|
||||
* {DOMElement} A reference to the container div for the PanZoom control
|
||||
* {DOMElement} A reference to the container div for the PanZoom control.
|
||||
*/
|
||||
draw: function(px) {
|
||||
// initialize our internal div
|
||||
@@ -100,7 +103,7 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
*
|
||||
* Returns:
|
||||
* {DOMElement} A Div (an alphaImageDiv, to be precise) that contains the
|
||||
* image of the button, and has all the proper event handlers set.
|
||||
* image of the button, and has all the proper event handlers set.
|
||||
*/
|
||||
_addButton:function(id, img, xy, sz) {
|
||||
var imgLocation = OpenLayers.Util.getImagesLocation() + img;
|
||||
@@ -179,5 +182,14 @@ OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {
|
||||
CLASS_NAME: "OpenLayers.Control.PanZoom"
|
||||
});
|
||||
|
||||
/**
|
||||
* Constant: X
|
||||
* {Integer}
|
||||
*/
|
||||
OpenLayers.Control.PanZoom.X = 4;
|
||||
|
||||
/**
|
||||
* Constant: Y
|
||||
* {Integer}
|
||||
*/
|
||||
OpenLayers.Control.PanZoom.Y = 4;
|
||||
|
||||
@@ -5,7 +5,12 @@
|
||||
/**
|
||||
* @requires OpenLayers/Format/XML.js
|
||||
* @requires OpenLayers/Feature/Vector.js
|
||||
* @requires OpenLayers/Geometry.js
|
||||
* @requires OpenLayers/Geometry/Point.js
|
||||
* @requires OpenLayers/Geometry/MultiPoint.js
|
||||
* @requires OpenLayers/Geometry/LineString.js
|
||||
* @requires OpenLayers/Geometry/MultiLineString.js
|
||||
* @requires OpenLayers/Geometry/Polygon.js
|
||||
* @requires OpenLayers/Geometry/MultiPolygon.js
|
||||
*
|
||||
* Class: OpenLayers.Format.GML
|
||||
* Read/Wite GML. Create a new instance with the <OpenLayers.Format.GML>
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Format/JSON.js
|
||||
* @requires OpenLayers/Feature/Vector.js
|
||||
* @requires OpenLayers/Geometry/Point.js
|
||||
* @requires OpenLayers/Geometry/MultiPoint.js
|
||||
* @requires OpenLayers/Geometry/LineString.js
|
||||
* @requires OpenLayers/Geometry/MultiLineString.js
|
||||
* @requires OpenLayers/Geometry/Polygon.js
|
||||
* @requires OpenLayers/Geometry/MultiPolygon.js
|
||||
*
|
||||
* Class: OpenLayers.Format.GeoJSON
|
||||
* Read and write GeoJSON. Create a new parser with the
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
* for the full text of the license. */
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Format.js
|
||||
* @requires OpenLayers/Format/XML.js
|
||||
* @requires OpenLayers/Feature/Vector.js
|
||||
* @requires OpenLayers/Geometry/Point.js
|
||||
* @requires OpenLayers/Geometry/LineString.js
|
||||
* @requires OpenLayers/Geometry/Polygon.js
|
||||
*
|
||||
* Class: OpenLayers.Format.GeoRSS
|
||||
* Read/write GeoRSS parser. Create a new instance with the
|
||||
|
||||
@@ -3,8 +3,12 @@
|
||||
* for the full text of the license. */
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Format.js
|
||||
* @requires OpenLayers/Format/XML.js
|
||||
* @requires OpenLayers/Feature/Vector.js
|
||||
* @requires OpenLayers/Geometry/Point.js
|
||||
* @requires OpenLayers/Geometry/LineString.js
|
||||
* @requires OpenLayers/Geometry/Polygon.js
|
||||
* @requires OpenLayers/Geometry/Collection.js
|
||||
*
|
||||
* Class: OpenLayers.Format.KML
|
||||
* Read/Wite KML. Create a new instance with the <OpenLayers.Format.KML>
|
||||
@@ -279,7 +283,7 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
* node - {DOMElement} A KML MultiGeometry node.
|
||||
*
|
||||
* Returns:
|
||||
* {<OpenLayers.Geometry.Polygon>} A geometry collection.
|
||||
* {<OpenLayers.Geometry.Collection>} A geometry collection.
|
||||
*/
|
||||
multigeometry: function(node) {
|
||||
var child, parser;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
/**
|
||||
* @requires OpenLayers/Format.js
|
||||
* @requires OpenLayers/Feature/Vector.js
|
||||
*
|
||||
* Class: OpenLayers.Format.WKT
|
||||
* Class for reading and writing Well-Known Text. Create a new instance
|
||||
@@ -38,8 +39,8 @@ OpenLayers.Format.WKT = OpenLayers.Class(OpenLayers.Format, {
|
||||
|
||||
/**
|
||||
* Method: read
|
||||
* Deserialize a WKT string and return an OpenLayers.Feature.Vector or an
|
||||
* array of OpenLayers.Feature.Vector. Supports WKT for POINT, MULTIPOINT,
|
||||
* Deserialize a WKT string and return a vector feature or an
|
||||
* array of vector features. Supports WKT for POINT, MULTIPOINT,
|
||||
* LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON, and
|
||||
* GEOMETRYCOLLECTION.
|
||||
*
|
||||
|
||||
@@ -253,13 +253,8 @@ OpenLayers.Handler.Drag = OpenLayers.Class(OpenLayers.Handler, {
|
||||
* {Boolean} Let the event propagate.
|
||||
*/
|
||||
click: function (evt) {
|
||||
// throw away the first left click event that happens after a mouse up
|
||||
if (this.dragging) {
|
||||
this.dragging = false;
|
||||
return false;
|
||||
}
|
||||
this.started = false;
|
||||
return true;
|
||||
// let the click event propagate only if the mouse moved
|
||||
return (this.start == this.last);
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -284,7 +284,7 @@ OpenLayers.Handler.RegularPolygon = OpenLayers.Class(OpenLayers.Handler.Drag, {
|
||||
* Calculate the angle based on settings.
|
||||
*
|
||||
* Parameters:
|
||||
* point - {OpenLayers.Geometry.Point}
|
||||
* point - {<OpenLayers.Geometry.Point>}
|
||||
* evt - {Event}
|
||||
*/
|
||||
calculateAngle: function(point, evt) {
|
||||
|
||||
@@ -736,8 +736,7 @@ OpenLayers.Layer = OpenLayers.Class({
|
||||
* {Integer} The index of the zoomLevel (entry in the resolutions array)
|
||||
* that still contains the passed-in extent. We do this by calculating
|
||||
* the ideal resolution for the given exteng (based on the map size)
|
||||
* and then find the smallest resolution that is greater than this
|
||||
* ideal resolution.
|
||||
* and then find the closest resolution to this ideal resolution.
|
||||
*/
|
||||
getZoomForExtent: function(extent) {
|
||||
var viewSize = this.map.getSize();
|
||||
@@ -761,23 +760,28 @@ OpenLayers.Layer = OpenLayers.Class({
|
||||
|
||||
/**
|
||||
* APIMethod: getZoomForResolution
|
||||
* Get the index for the closest resolution in the layers resolutions array.
|
||||
*
|
||||
* Parameters:
|
||||
* resolution - {Float}
|
||||
* resolution - {Float} Map units per pixel.
|
||||
*
|
||||
* Returns:
|
||||
* {Integer} The index of the zoomLevel (entry in the resolutions array)
|
||||
* that is the smallest resolution that is greater than the passed-in
|
||||
* resolution.
|
||||
* that is the closest to the passed-in resolution.
|
||||
*/
|
||||
getZoomForResolution: function(resolution) {
|
||||
|
||||
for(var i=1; i < this.resolutions.length; i++) {
|
||||
if ( this.resolutions[i] < resolution) {
|
||||
var zoom, diff;
|
||||
var minDiff = Number.POSITIVE_INFINITY;
|
||||
for(var i=0; i < this.resolutions.length; i++) {
|
||||
diff = Math.abs(this.resolutions[i] - resolution);
|
||||
if(diff < minDiff) {
|
||||
zoom = i;
|
||||
minDiff = diff;
|
||||
} else if(diff > minDiff) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return (i - 1);
|
||||
return zoom;
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -264,18 +264,18 @@ OpenLayers.Layer.Google = OpenLayers.Class(
|
||||
* {GPoint} A GPoint specifying gLatLng translated into "Container" coords
|
||||
*/
|
||||
addContainerPxFunction: function() {
|
||||
if (typeof GMap2 != "undefined" && !GMap2.fromLatLngToContainerPixel) {
|
||||
if ( (typeof GMap2 != "undefined") &&
|
||||
!GMap2.prototype.fromLatLngToContainerPixel) {
|
||||
|
||||
GMap2.prototype.fromLatLngToContainerPixel = function(gLatLng) {
|
||||
|
||||
// first we translate into "DivPixel"
|
||||
var gPoint = this.fromLatLngToDivPixel(gLatLng);
|
||||
var gPoint = this.fromLatLngToDivPixel(gLatLng);
|
||||
|
||||
// locate the sliding "Div" div
|
||||
// it seems like "b" is the main div
|
||||
var div = this.b.firstChild.firstChild;
|
||||
|
||||
// adjust by the offset of "Div" and voila!
|
||||
// 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;
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ OpenLayers.Layer.Image = OpenLayers.Class(OpenLayers.Layer, {
|
||||
*/
|
||||
setUrl: function(newUrl) {
|
||||
this.url = newUrl;
|
||||
this.draw();
|
||||
this.tile.draw();
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -1352,7 +1352,7 @@ OpenLayers.Map = OpenLayers.Class({
|
||||
|
||||
|
||||
/**
|
||||
* APIMethod: getZoomForExteng
|
||||
* APIMethod: getZoomForExtent
|
||||
*
|
||||
* Parameters:
|
||||
* bounds - {<OpenLayers.Bounds>}
|
||||
|
||||
@@ -43,21 +43,33 @@
|
||||
var overviewZoom = control.ovmap.getZoom();
|
||||
t.eq(overviewCenter.lon, -71, "Overviewmap center lon correct");
|
||||
t.eq(overviewCenter.lat, 42, "Overviewmap center lat correct");
|
||||
t.eq(overviewZoom, 8, "Overviewmap zoomcorrect");
|
||||
t.eq(overviewZoom, 9, "Overviewmap zoomcorrect");
|
||||
|
||||
control.mapDivClick({'xy':new OpenLayers.Pixel(5,5)});
|
||||
|
||||
// There are box model issues that keep browsers from giving us
|
||||
// identical results here. Test the normalized difference against
|
||||
// a tolerance instead of testing equality.
|
||||
function normalizedDiff(a, b) {
|
||||
return Math.abs((a - b) / (a + b));
|
||||
}
|
||||
var tolerance = 1e-4;
|
||||
|
||||
var cent = map.getCenter();
|
||||
t.eq(cent.lon, -71.3515625, "Clicking on the Overview Map has the correct effect on map lon");
|
||||
t.eq(cent.lat, 42.17578125, "Clicking on the Overview Map has the correct effect on map lat");
|
||||
t.ok(normalizedDiff(cent.lon, -71.00390625) < tolerance,
|
||||
"Clicking on the Overview Map has the correct effect on map lon");
|
||||
t.ok(normalizedDiff(cent.lat, 42.00390625) < tolerance,
|
||||
"Clicking on the Overview Map has the correct effect on map lat");
|
||||
|
||||
control.rectMouseDown({'xy':new OpenLayers.Pixel(5,5), 'which':1});
|
||||
control.rectMouseMove({'xy':new OpenLayers.Pixel(15,15), 'which':1});
|
||||
control.rectMouseUp({'xy':new OpenLayers.Pixel(15,15), 'which':1});
|
||||
|
||||
var cent = map.getCenter();
|
||||
t.eq(cent.lon, -71.2734375, "Dragging on the Overview Map has the correct effect on map lon");
|
||||
t.eq(cent.lat, 42.09765625, "Dragging on the Overview Map has the correct effect on map lat");
|
||||
t.ok(normalizedDiff(cent.lon, -70.83984375) < tolerance,
|
||||
"Dragging on the Overview Map has the correct effect on map lon");
|
||||
t.ok(normalizedDiff(cent.lat, 41.84765625) < tolerance,
|
||||
"Dragging on the Overview Map has the correct effect on map lat");
|
||||
|
||||
map.setCenter(new OpenLayers.LonLat(0,0), 0);
|
||||
var overviewCenter = control.ovmap.getCenter();
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
}
|
||||
|
||||
function test_Handler_Drag_callbacks(t) {
|
||||
t.plan(30);
|
||||
t.plan(27);
|
||||
|
||||
var map = new OpenLayers.Map('map', {controls: []});
|
||||
|
||||
@@ -227,24 +227,25 @@
|
||||
t.ok(!handler.dragging, "mouseout sets dragging flag to false");
|
||||
OpenLayers.Util.mouseLeft = oldMouseLeft;
|
||||
|
||||
// test click
|
||||
handler.dragging = true;
|
||||
handler.started = "foo";
|
||||
map.events.triggerEvent("click", null);
|
||||
t.ok(!handler.dragging,
|
||||
"click while dragging sets dragging to false");
|
||||
t.eq(handler.started, "foo",
|
||||
"click while dragging doesn't mess with started");
|
||||
|
||||
handler.dragging = null;
|
||||
handler.started = true;
|
||||
map.events.triggerEvent("click", null);
|
||||
t.ok(handler.dragging == null,
|
||||
"click while not dragging doesn't mess with dragging flag");
|
||||
t.ok(!handler.started,
|
||||
"click while not dragging sets started to false");
|
||||
// test click with the click.html example - the click method on the
|
||||
// drag handler returns (handler.start == handler.last), stopping
|
||||
// propagation of the click event if the mouse moved during a drag.
|
||||
|
||||
|
||||
// regression tests will assure that the drag handler doesn't mess
|
||||
// with anything else on a click
|
||||
function getProperties(obj) {
|
||||
var props = {};
|
||||
for(key in obj) {
|
||||
if(typeof obj[key] != "function" && typeof obj[key] != "object") {
|
||||
props[key] = obj[key];
|
||||
}
|
||||
}
|
||||
return props;
|
||||
}
|
||||
var before = getProperties(handler);
|
||||
map.events.triggerEvent("click", null);
|
||||
var after = getProperties(handler);
|
||||
t.eq(before, after, "click doesn't mess with handler");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -140,25 +140,25 @@
|
||||
});
|
||||
}
|
||||
|
||||
function test_04_Layer_GeoRSS_icon(t) {
|
||||
t.plan( 3 );
|
||||
layer = new OpenLayers.Layer.GeoRSS('Test Layer', georss_txt);
|
||||
function test_04_Layer_GeoRSS_icon(t) {
|
||||
t.plan( 3 );
|
||||
layer = new OpenLayers.Layer.GeoRSS('Test Layer', georss_txt);
|
||||
var the_icon = new OpenLayers.Icon('http://boston.openguides.org/markers/AQUA.png');
|
||||
var otherLayer = new OpenLayers.Layer.GeoRSS('Test Layer', georss_txt,{icon:the_icon});
|
||||
var map = new OpenLayers.Map('map');
|
||||
var otherLayer = new OpenLayers.Layer.GeoRSS('Test Layer', georss_txt,{icon:the_icon});
|
||||
var map = new OpenLayers.Map('map');
|
||||
var baseLayer = new OpenLayers.Layer.WMS("Test Layer",
|
||||
"http://octo.metacarta.com/cgi-bin/mapserv?",
|
||||
{map: "/mapdata/vmap_wms.map", layers: "basic"});
|
||||
map.addLayer(baseLayer);
|
||||
map.addLayers([layer,otherLayer]);
|
||||
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
||||
var defaultIcon = OpenLayers.Marker.defaultIcon();
|
||||
t.delay_call( 1, function() {
|
||||
t.ok(layer.markers[0].icon, "The layer has a icon");
|
||||
t.eq(layer.markers[0].icon.url, defaultIcon.url, "The layer without icon has the default icon.");
|
||||
t.eq(otherLayer.markers[0].icon.url, the_icon.url,"The layer with an icon has that icon.");
|
||||
});
|
||||
}
|
||||
var defaultIcon = OpenLayers.Marker.defaultIcon();
|
||||
t.delay_call( 1, function() {
|
||||
t.ok(layer.markers[0].icon, "The layer has a icon");
|
||||
t.eq(layer.markers[0].icon.url, defaultIcon.url, "The layer without icon has the default icon.");
|
||||
t.eq(otherLayer.markers[0].icon.url, the_icon.url,"The layer with an icon has that icon.");
|
||||
});
|
||||
}
|
||||
function test_Layer_GeoRSS_loadend_Event(t) {
|
||||
var browserCode = OpenLayers.Util.getBrowserName();
|
||||
if (browserCode == "msie") {
|
||||
|
||||
@@ -150,12 +150,26 @@
|
||||
bounds = new OpenLayers.Bounds(10,10,12,12);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 8, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 2 map units / 500px = 0.004
|
||||
* layer.resolutions = [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.00004291534423828125]
|
||||
*
|
||||
* So, we expect a zoom of 9 because it is the closest resolution.
|
||||
*/
|
||||
t.eq( zoom, 9, "getZoomForExtent() returns correct value");
|
||||
|
||||
bounds = new OpenLayers.Bounds(10,10,100,100);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 2, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 90 map units / 500px = 0.18
|
||||
* So, we expect a zoom of 3 because it is the closest.
|
||||
*/
|
||||
t.eq( zoom, 3, "getZoomForExtent() returns correct value");
|
||||
}
|
||||
|
||||
function test_07_Layer_Grid_moveTo(t) {
|
||||
@@ -515,10 +529,10 @@
|
||||
}
|
||||
|
||||
function test_16_Layer_Grid_tileSizeIsInteger(t) {
|
||||
t.plan(1);
|
||||
|
||||
t.plan(1);
|
||||
|
||||
var map = new OpenLayers.Map('map');
|
||||
var layer = new OpenLayers.Layer.Grid(name, url, params, {
|
||||
var layer = new OpenLayers.Layer.Grid(name, url, params, {
|
||||
singleTile: true,
|
||||
ratio: 1.5
|
||||
});
|
||||
@@ -541,10 +555,10 @@
|
||||
map.zoomToMaxExtent();
|
||||
map.zoomIn();
|
||||
var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200));
|
||||
t.eq(bounds.toBBOX(), "-180,-90,0,90", "get tile bounds returns correct bounds");
|
||||
t.eq(bounds.toBBOX(), "-90,0,0,90", "get tile bounds returns correct bounds");
|
||||
map.pan(200,0);
|
||||
var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200));
|
||||
t.eq(bounds.toBBOX(), "0,-90,180,90", "get tile bounds returns correct bounds after pan");
|
||||
t.eq(bounds.toBBOX(), "0,0,90,90", "get tile bounds returns correct bounds after pan");
|
||||
}
|
||||
|
||||
function test_Layer_Grid_moveTo_buffer_calculation (t) {
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
}
|
||||
|
||||
function test_50_Layer_Image_tileTests (t) {
|
||||
t.plan(6);
|
||||
t.plan(7);
|
||||
var map = new OpenLayers.Map('map');
|
||||
|
||||
layer = new OpenLayers.Layer.Image('Test Layer',
|
||||
@@ -63,6 +63,8 @@
|
||||
t.eq(layer.tile.imgDiv.src, "http://earthtrends.wri.org/images/maps/4_m_citylights_lg.gif", "URL is correct");
|
||||
map.zoomIn();
|
||||
t.eq(layer.tile.imgDiv.src, "http://earthtrends.wri.org/images/maps/4_m_citylights_lg.gif", "URL is correct");
|
||||
layer.setUrl('http://labs.metacarta.com/wms/vmap0?LAYERS=basic&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=-180,-90,0,90&WIDTH=256&HEIGHT=256');
|
||||
t.eq(layer.tile.imgDiv.src, "http://labs.metacarta.com/wms/vmap0?LAYERS=basic&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&BBOX=-180,-90,0,90&WIDTH=256&HEIGHT=256", "URL is correct after setURL");
|
||||
}
|
||||
/******
|
||||
*
|
||||
|
||||
@@ -128,12 +128,26 @@
|
||||
bounds = new OpenLayers.Bounds(10,10,12,12);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 8, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 2 map units / 500px = 0.004
|
||||
* layer.resolutions = [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.00004291534423828125]
|
||||
*
|
||||
* So, we expect a zoom of 9 because it is the closest resolution.
|
||||
*/
|
||||
t.eq( zoom, 9, "getZoomForExtent() returns correct value");
|
||||
|
||||
bounds = new OpenLayers.Bounds(10,10,100,100);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 2, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 90 map units / 500px = 0.18
|
||||
* So, we expect a zoom of 3 because it is the closest.
|
||||
*/
|
||||
t.eq( zoom, 3, "getZoomForExtent() returns correct value");
|
||||
}
|
||||
|
||||
function test_06_Layer_kaMap_mergeNewParams (t) {
|
||||
@@ -236,10 +250,10 @@
|
||||
map.zoomToMaxExtent();
|
||||
map.zoomIn();
|
||||
var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200));
|
||||
t.eq(bounds.toBBOX(), "-180,0,0,180", "get tile bounds returns correct bounds");
|
||||
t.eq(bounds.toBBOX(), "-90,0,0,90", "get tile bounds returns correct bounds");
|
||||
map.pan(200,0);
|
||||
var bounds = layer.getTileBounds(new OpenLayers.Pixel(200,200));
|
||||
t.eq(bounds.toBBOX(), "0,0,180,180", "get tile bounds returns correct bounds after pan");
|
||||
t.eq(bounds.toBBOX(), "0,0,90,90", "get tile bounds returns correct bounds after pan");
|
||||
}
|
||||
|
||||
function test_99_Layer_KaMap_destroy (t) {
|
||||
|
||||
@@ -77,13 +77,26 @@
|
||||
|
||||
bounds = new OpenLayers.Bounds(10,10,12,12);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 8, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 2 map units / 500px = 0.004
|
||||
* layer.resolutions = [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.00004291534423828125]
|
||||
*
|
||||
* So, we expect a zoom of 9 because it is the closest resolution.
|
||||
*/
|
||||
|
||||
t.eq( zoom, 9, "getZoomForExtent() returns correct value");
|
||||
|
||||
bounds = new OpenLayers.Bounds(10,10,100,100);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 2, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 90 map units / 500px = 0.18
|
||||
* So, we expect a zoom of 3 because it is the closest.
|
||||
*/
|
||||
t.eq( zoom, 3, "getZoomForExtent() returns correct value");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
}
|
||||
function test_Layer_Text_loadend_Event(t) {
|
||||
t.plan(2);
|
||||
layer = new OpenLayers.Layer.Text('Test Layer', {location:datafile});
|
||||
layer = new OpenLayers.Layer.Text('Test Layer', {location:datafile});
|
||||
t.delay_call(2, function() {
|
||||
layer.events.register('loadend', layer, function() {
|
||||
t.ok(true, "Loadend event fired");
|
||||
|
||||
@@ -78,13 +78,27 @@
|
||||
|
||||
bounds = new OpenLayers.Bounds(10,10,12,12);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
|
||||
t.eq( zoom, 7, "getZoomForExtent() returns correct value");
|
||||
/**
|
||||
* ideal resolution: 2 map units / 500px = 0.004
|
||||
* layer.resolutions = [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.00004291534423828125,
|
||||
* 0.000021457672119140625]
|
||||
*
|
||||
* So, we expect a zoom of 8 because it is the closest resolution.
|
||||
*/
|
||||
t.eq( zoom, 8, "getZoomForExtent() returns correct value");
|
||||
|
||||
bounds = new OpenLayers.Bounds(10,10,100,100);
|
||||
zoom = layer.getZoomForExtent(bounds);
|
||||
/**
|
||||
* ideal resolution: 90 map units / 500px = 0.18
|
||||
* So, we expect a zoom of 2 because it is the closest.
|
||||
*/
|
||||
|
||||
t.eq( zoom, 1, "getZoomForExtent() returns correct value");
|
||||
t.eq( zoom, 2, "getZoomForExtent() returns correct value");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -165,9 +165,9 @@
|
||||
var baseLayer = new OpenLayers.Layer.WMS("Base Layer",
|
||||
"http://octo.metacarta.com/cgi-bin/mapserv",
|
||||
{ map: '/mapdata/vmap_wms.map',
|
||||
layers: 'basic',
|
||||
format: 'image/png'});
|
||||
|
||||
layers: 'basic',
|
||||
format: 'image/png'});
|
||||
|
||||
var layer = new OpenLayers.Layer.Vector("Test Layer");
|
||||
var renderer = layer.renderer;
|
||||
var map = new OpenLayers.Map('map');
|
||||
@@ -181,25 +181,25 @@
|
||||
map.zoomToMaxExtent();
|
||||
|
||||
var customStyle1 = new Object({
|
||||
externalGraphic: 'test.png',
|
||||
pointRadius: 10
|
||||
externalGraphic: 'test.png',
|
||||
pointRadius: 10
|
||||
});
|
||||
var customStyle2 = new Object({
|
||||
externalGraphic: 'test.png',
|
||||
graphicWidth: 12
|
||||
externalGraphic: 'test.png',
|
||||
graphicWidth: 12
|
||||
});
|
||||
var customStyle3 = new Object({
|
||||
externalGraphic: 'test.png',
|
||||
graphicHeight: 14
|
||||
externalGraphic: 'test.png',
|
||||
graphicHeight: 14
|
||||
});
|
||||
var customStyle4 = new Object({
|
||||
externalGraphic: 'test.png',
|
||||
graphicWidth: 24,
|
||||
graphicHeight: 16
|
||||
externalGraphic: 'test.png',
|
||||
graphicWidth: 24,
|
||||
graphicHeight: 16
|
||||
});
|
||||
var customStyle5 = new Object({
|
||||
externalGraphic: 'test.png',
|
||||
graphicWidth: 24,
|
||||
graphicWidth: 24,
|
||||
graphicOpacity: 1
|
||||
});
|
||||
var customStyle6 = new Object({
|
||||
@@ -212,43 +212,43 @@
|
||||
|
||||
var root = renderer.root;
|
||||
if (layer.renderer.CLASS_NAME == 'OpenLayers.Renderer.SVG') {
|
||||
feature.style = customStyle1;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
(2*customStyle1.pointRadius).toString(),
|
||||
"given a pointRadius, width equals 2*pointRadius");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
(2*customStyle1.pointRadius).toString(),
|
||||
"given a pointRadius, height equals 2*pointRadius");
|
||||
feature.style = customStyle2;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
root.firstChild.getAttributeNS(null, 'height'),
|
||||
"given a graphicWidth, width equals height");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
customStyle2.graphicWidth.toString(),
|
||||
"width is set correctly");
|
||||
feature.style = customStyle3;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
root.firstChild.getAttributeNS(null, 'width'),
|
||||
"given a graphicHeight, height equals width");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
customStyle3.graphicHeight.toString(),
|
||||
"height is set correctly");
|
||||
feature.style = customStyle4;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
customStyle4.graphicHeight.toString(),
|
||||
"given graphicHeight and graphicWidth, both are set: height");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
customStyle4.graphicWidth.toString(),
|
||||
"given graphicHeight and graphicWidth, both are set: width");
|
||||
feature.style = customStyle1;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
(2*customStyle1.pointRadius).toString(),
|
||||
"given a pointRadius, width equals 2*pointRadius");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
(2*customStyle1.pointRadius).toString(),
|
||||
"given a pointRadius, height equals 2*pointRadius");
|
||||
feature.style = customStyle2;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
root.firstChild.getAttributeNS(null, 'height'),
|
||||
"given a graphicWidth, width equals height");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
customStyle2.graphicWidth.toString(),
|
||||
"width is set correctly");
|
||||
feature.style = customStyle3;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
root.firstChild.getAttributeNS(null, 'width'),
|
||||
"given a graphicHeight, height equals width");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
customStyle3.graphicHeight.toString(),
|
||||
"height is set correctly");
|
||||
feature.style = customStyle4;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'height'),
|
||||
customStyle4.graphicHeight.toString(),
|
||||
"given graphicHeight and graphicWidth, both are set: height");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'width'),
|
||||
customStyle4.graphicWidth.toString(),
|
||||
"given graphicHeight and graphicWidth, both are set: width");
|
||||
feature.style = customStyle5;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'style'),
|
||||
'opacity: '+customStyle5.graphicOpacity.toString()+';',
|
||||
"graphicOpacity correctly set");
|
||||
t.eq(root.firstChild.getAttributeNS(null, 'style'),
|
||||
'opacity: '+customStyle5.graphicOpacity.toString()+';',
|
||||
"graphicOpacity correctly set");
|
||||
feature.style = customStyle6;
|
||||
layer.drawFeature(feature);
|
||||
var x = geometryX / renderer.getResolution() + renderer.left;
|
||||
@@ -268,46 +268,46 @@
|
||||
"graphicYOffset correctly set");
|
||||
}
|
||||
if (layer.renderer.CLASS_NAME == 'OpenLayers.Renderer.VML') {
|
||||
feature.style = customStyle1;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.width,
|
||||
(2*customStyle1.pointRadius).toString()+'px',
|
||||
"given a pointRadius, width equals 2*pointRadius");
|
||||
t.eq(root.firstChild.style.height,
|
||||
(2*customStyle1.pointRadius).toString()+'px',
|
||||
"given a pointRadius, height equals 2*pointRadius");
|
||||
feature.style = customStyle2;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.width,
|
||||
root.firstChild.style.height,
|
||||
"given a graphicWidth, width equals height");
|
||||
t.eq(root.firstChild.style.width,
|
||||
customStyle2.graphicWidth.toString()+'px',
|
||||
"width is set correctly");
|
||||
feature.style = customStyle3;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.height,
|
||||
root.firstChild.style.width,
|
||||
"given a graphicHeight, height equals width");
|
||||
t.eq(root.firstChild.style.height,
|
||||
customStyle3.graphicHeight.toString()+'px',
|
||||
"height is set correctly");
|
||||
feature.style = customStyle4;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.height,
|
||||
customStyle4.graphicHeight.toString()+'px',
|
||||
"given graphicHeight and graphicWidth, both are set: height");
|
||||
t.eq(root.firstChild.style.width,
|
||||
customStyle4.graphicWidth.toString()+'px',
|
||||
"given graphicHeight and graphicWidth, both are set: width");
|
||||
feature.style = customStyle1;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.width,
|
||||
(2*customStyle1.pointRadius).toString()+'px',
|
||||
"given a pointRadius, width equals 2*pointRadius");
|
||||
t.eq(root.firstChild.style.height,
|
||||
(2*customStyle1.pointRadius).toString()+'px',
|
||||
"given a pointRadius, height equals 2*pointRadius");
|
||||
feature.style = customStyle2;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.width,
|
||||
root.firstChild.style.height,
|
||||
"given a graphicWidth, width equals height");
|
||||
t.eq(root.firstChild.style.width,
|
||||
customStyle2.graphicWidth.toString()+'px',
|
||||
"width is set correctly");
|
||||
feature.style = customStyle3;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.height,
|
||||
root.firstChild.style.width,
|
||||
"given a graphicHeight, height equals width");
|
||||
t.eq(root.firstChild.style.height,
|
||||
customStyle3.graphicHeight.toString()+'px',
|
||||
"height is set correctly");
|
||||
feature.style = customStyle4;
|
||||
layer.drawFeature(feature);
|
||||
t.eq(root.firstChild.style.height,
|
||||
customStyle4.graphicHeight.toString()+'px',
|
||||
"given graphicHeight and graphicWidth, both are set: height");
|
||||
t.eq(root.firstChild.style.width,
|
||||
customStyle4.graphicWidth.toString()+'px',
|
||||
"given graphicHeight and graphicWidth, both are set: width");
|
||||
feature.style = customStyle5;
|
||||
layer.drawFeature(feature);
|
||||
var fill = root.firstChild.getElementsByTagName("fill")[0];
|
||||
if (fill == null) fill = root.firstChild.getElementsByTagName("v:fill");
|
||||
var opacity = fill.getAttribute('opacity');
|
||||
t.eq(opacity,
|
||||
customStyle5.graphicOpacity,
|
||||
"graphicOpacity correctly set");
|
||||
customStyle5.graphicOpacity,
|
||||
"graphicOpacity correctly set");
|
||||
feature.style = customStyle6;
|
||||
layer.drawFeature(feature);
|
||||
var x = geometryX / renderer.getResolution();
|
||||
|
||||
@@ -131,9 +131,9 @@
|
||||
var m = new OpenLayers.Map('map');
|
||||
m.addLayer(layer);
|
||||
m.zoomToMaxExtent();
|
||||
t.eq(layer.grid[3][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "cell [3][0] is wrapped around the world.");
|
||||
t.eq(layer.grid[0][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "cell [0][0] is wrapped around the world lon, but not lat");
|
||||
t.eq(layer.grid[0][3].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "cell [3][0] is not wrapped at all.");
|
||||
t.eq(layer.grid[3][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C0%2C90%2C90&WIDTH=256&HEIGHT=256", "cell [3][0] is wrapped around the world.");
|
||||
t.eq(layer.grid[0][0].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C270%2C90%2C360&WIDTH=256&HEIGHT=256", "cell [0][0] is wrapped around the world lon, but not lat");
|
||||
t.eq(layer.grid[0][3].url, "http://octo.metacarta.com/cgi-bin/mapserv?MAP=%2Fmapdata%2Fvmap_wms.map&LAYERS=basic&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-90%2C270%2C0%2C360&WIDTH=256&HEIGHT=256", "cell [3][0] is not wrapped at all.");
|
||||
|
||||
}
|
||||
function test_Layer_WrapDateLine_KaMap (t) {
|
||||
@@ -146,9 +146,9 @@
|
||||
var m = new OpenLayers.Map('map');
|
||||
m.addLayer(layer);
|
||||
m.zoomToMaxExtent();
|
||||
t.eq(layer.grid[0][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=0&s=221471921.25", "grid[0][0] kamap is okay");
|
||||
t.eq(layer.grid[0][3].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=-256&s=221471921.25", "grid[0][3] kamap is okay");
|
||||
t.eq(layer.grid[3][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-512&l=0&s=221471921.25", "grid[3][0] is okay");
|
||||
t.eq(layer.grid[0][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=0&s=110735960.625", "grid[0][0] kamap is okay");
|
||||
t.eq(layer.grid[0][3].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-1280&l=-256&s=110735960.625", "grid[0][3] kamap is okay");
|
||||
t.eq(layer.grid[3][0].url, "http://www.openlayers.org/world/index.php?g=satellite&map=world&i=jpeg&t=-512&l=0&s=110735960.625", "grid[3][0] is okay");
|
||||
}
|
||||
function test_Layer_WrapDateLine_WMS_Overlay (t) {
|
||||
t.plan( 3 );
|
||||
@@ -163,9 +163,9 @@
|
||||
var m = new OpenLayers.Map('map');
|
||||
m.addLayers([baselayer,layer]);
|
||||
m.zoomToMaxExtent();
|
||||
t.eq(layer.grid[0][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C450%2C180%2C630&WIDTH=256&HEIGHT=256", "grid[0][0] wms overlay is okay");
|
||||
t.eq(layer.grid[0][3].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-180%2C450%2C0%2C630&WIDTH=256&HEIGHT=256", "grid[0][3] wms overlay is okay");
|
||||
t.eq(layer.grid[3][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C-90%2C180%2C90&WIDTH=256&HEIGHT=256", "grid[3][0] wms overlay okay");
|
||||
t.eq(layer.grid[0][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C270%2C90%2C360&WIDTH=256&HEIGHT=256", "grid[0][0] wms overlay is okay");
|
||||
t.eq(layer.grid[0][3].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-90%2C270%2C0%2C360&WIDTH=256&HEIGHT=256", "grid[0][3] wms overlay is okay");
|
||||
t.eq(layer.grid[3][0].url, "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?LAYERS=bathymetry%2Cland_fn%2Cpark%2Cdrain_fn%2Cdrainage%2Cprov_bound%2Cfedlimit%2Crail%2Croad%2Cpopplace&TRANSPARENT=true&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=0%2C0%2C90%2C90&WIDTH=256&HEIGHT=256", "grid[3][0] wms overlay okay");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
|
||||
function test_06_Layer_getZoomForResolution(t) {
|
||||
|
||||
t.plan(4);
|
||||
t.plan(6);
|
||||
|
||||
var layer = new OpenLayers.Layer('Test Layer');
|
||||
|
||||
@@ -163,6 +163,8 @@
|
||||
layer.resolutions = [128, 64, 32, 16, 8, 4, 2];
|
||||
|
||||
t.eq(layer.getZoomForResolution(200), 0, "zoom all the way out");
|
||||
t.eq(layer.getZoomForResolution(65), 1, "index closest to 65");
|
||||
t.eq(layer.getZoomForResolution(63), 1, "index closest to 63");
|
||||
t.eq(layer.getZoomForResolution(25), 2, "zoom in middle");
|
||||
t.eq(layer.getZoomForResolution(3), 5, "zoom allmost all the way in");
|
||||
t.eq(layer.getZoomForResolution(1), 6, "zoom all the way in");
|
||||
|
||||
Reference in New Issue
Block a user