[OpenLayers-Commits] r3643 - in sandbox/euzuro/untiled3: examples lib/OpenLayers lib/OpenLayers/Geometry lib/OpenLayers/Handler lib/OpenLayers/Layer lib/OpenLayers/Renderer tests tests/Geometry
commits at openlayers.org
commits at openlayers.org
Fri Jul 6 20:55:20 EDT 2007
Author: euzuro
Date: 2007-07-06 20:55:18 -0400 (Fri, 06 Jul 2007)
New Revision: 3643
Modified:
sandbox/euzuro/untiled3/examples/georss-serialize.html
sandbox/euzuro/untiled3/examples/gml-serialize.html
sandbox/euzuro/untiled3/examples/openmnnd.html
sandbox/euzuro/untiled3/examples/wfs-scribble.html
sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Collection.js
sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Point.js
sandbox/euzuro/untiled3/lib/OpenLayers/Handler/Drag.js
sandbox/euzuro/untiled3/lib/OpenLayers/Layer/EventPane.js
sandbox/euzuro/untiled3/lib/OpenLayers/Layer/WFS.js
sandbox/euzuro/untiled3/lib/OpenLayers/Map.js
sandbox/euzuro/untiled3/lib/OpenLayers/Renderer.js
sandbox/euzuro/untiled3/lib/OpenLayers/Renderer/Elements.js
sandbox/euzuro/untiled3/lib/OpenLayers/Util.js
sandbox/euzuro/untiled3/tests/Geometry/test_LineString.html
sandbox/euzuro/untiled3/tests/Geometry/test_Point.html
sandbox/euzuro/untiled3/tests/Geometry/test_Polygon.html
sandbox/euzuro/untiled3/tests/test_Util.html
Log:
bringing up latest from trunk. trunk has been notably difficult to keep up with this week.
Modified: sandbox/euzuro/untiled3/examples/georss-serialize.html
===================================================================
--- sandbox/euzuro/untiled3/examples/georss-serialize.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/examples/georss-serialize.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -17,7 +17,7 @@
feature.attributes['title'] = name;
s = new XMLSerializer();
var data = g.write(feature.layer.features);
- $("gml").value = s.serializeToString(data);
+ OpenLayers.Util.getElement("gml").value = s.serializeToString(data);
}
function init(){
g = new OpenLayers.Format.GeoRSS();
Modified: sandbox/euzuro/untiled3/examples/gml-serialize.html
===================================================================
--- sandbox/euzuro/untiled3/examples/gml-serialize.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/examples/gml-serialize.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -17,7 +17,7 @@
feature.attributes['name'] = name;
s = new XMLSerializer();
var data = g.write(feature.layer.features);
- $("gml").value = s.serializeToString(data);
+ OpenLayers.Util.getElement("gml").value = s.serializeToString(data);
}
function init(){
g = new OpenLayers.Format.GML();
Modified: sandbox/euzuro/untiled3/examples/openmnnd.html
===================================================================
--- sandbox/euzuro/untiled3/examples/openmnnd.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/examples/openmnnd.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -34,7 +34,7 @@
wfs.preFeatureInsert= function(feature) { feature.style.strokeWidth="3"; feature.style.strokeColor="blue";
}
wfs.onFeatureInsert = function() {
- $('stream_features').innerHTML = feature.layer.features.length;
+ OpenLayers.Util.getElement('stream_features').innerHTML = feature.layer.features.length;
}
map.addLayer(wfs);
@@ -52,7 +52,7 @@
});
pwfs.onFeatureInsert= function(feature) {
- $('plat_features').innerHTML = feature.layer.features.length;
+ OpenLayers.Util.getElement('plat_features').innerHTML = feature.layer.features.length;
}
map.addLayer(pwfs);
@@ -62,15 +62,15 @@
{ratio:1.25, minZoomLevel:7, extractAttributes: true, style:rstyle});
rwfs.onFeatureInsert= function(feature) {
- $('road_features').innerHTML = feature.layer.features.length;
+ OpenLayers.Util.getElement('road_features').innerHTML = feature.layer.features.length;
}
map.addLayer(rwfs);
map.events.register('moveend', null, function() {
- $('stream_features').innerHTML = "0";
- $('road_features').innerHTML = "0";
- $('plat_features').innerHTML = "0";
+ OpenLayers.Util.getElement('stream_features').innerHTML = "0";
+ OpenLayers.Util.getElement('road_features').innerHTML = "0";
+ OpenLayers.Util.getElement('plat_features').innerHTML = "0";
});
var ls = new OpenLayers.Control.LayerSwitcher();
@@ -113,7 +113,7 @@
for(var i in feature.attributes)
html += "<li><b>" + i + "</b>: "+ feature.attributes[i] + "</li>";
html += "</ul>";
- $('feature_info').innerHTML = html;
+ OpenLayers.Util.getElement('feature_info').innerHTML = html;
}
// -->
</script>
Modified: sandbox/euzuro/untiled3/examples/wfs-scribble.html
===================================================================
--- sandbox/euzuro/untiled3/examples/wfs-scribble.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/examples/wfs-scribble.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -56,8 +56,8 @@
var xmls = new XMLSerializer();
var serialize = new OpenLayers.Format[type]({},map.layers[1]);
var data = serialize.write(map.layers[1].features);
- $('serialize').value = xmls.serializeToString(data);
- $('serialize').style.display='block';
+ OpenLayers.Util.getElement('serialize').value = xmls.serializeToString(data);
+ OpenLayers.Util.getElement('serialize').style.display='block';
}
</script>
</head>
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Collection.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Collection.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Collection.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -261,6 +261,24 @@
},
/**
+ * APIMethod: resize
+ * Resize a geometry relative to some origin. Use this method to apply
+ * a uniform scaling to a geometry.
+ *
+ * Parameters:
+ * scale - {Float} Factor by which to scale the geometry. A scale of 2
+ * doubles the size of the geometry in each dimension
+ * (lines, for example, will be twice as long, and polygons
+ * will have four times the area).
+ * origin - {OpenLayers.Geometry.Point} Point of origin for resizing
+ */
+ resize: function(scale, origin) {
+ for(var i=0; i<this.components.length; ++i) {
+ this.components[i].resize(scale, origin);
+ }
+ },
+
+ /**
* APIMethod: equals
* Tests for equivalent geometries
*
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Point.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Point.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Geometry/Point.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -148,6 +148,23 @@
this.y = origin.y + (radius * Math.sin(theta));
},
+ /**
+ * APIMethod: resize
+ * Resize a point relative to some origin. For points, this has the effect
+ * of scaling a vector (from the origin to the point). This method is
+ * more useful on geometry collection subclasses.
+ *
+ * Parameters:
+ * scale - {Float} Ratio of the new distance from the origin to the old
+ * distance from the origin. A scale of 2 doubles the
+ * distance between the point and origin.
+ * origin - {OpenLayers.Geometry.Point} Point of origin for resizing
+ */
+ resize: function(scale, origin) {
+ this.x = origin.x + (scale * (this.x - origin.x));
+ this.y = origin.y + (scale * (this.y - origin.y));
+ },
+
/** @final @type String */
CLASS_NAME: "OpenLayers.Geometry.Point"
});
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Handler/Drag.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Handler/Drag.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Handler/Drag.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -9,25 +9,27 @@
* Class: OpenLayers.Handler.Drag
*/
OpenLayers.Handler.Drag = OpenLayers.Class.create();
-OpenLayers.Handler.Drag.prototype = OpenLayers.Class.inherit( OpenLayers.Handler, {
+OpenLayers.Handler.Drag.prototype =
+ OpenLayers.Class.inherit( 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: dragging
- * {Boolean}
- */
- dragging: false,
+ * Property: dragging
+ * {Boolean}
+ */
+ dragging: false,
/**
- * Property: start
- * {<OpenLayers.Pixel>}
- */
- start: null,
+ * Property: start
+ * {<OpenLayers.Pixel>}
+ */
+ start: null,
/**
* Property: oldOnselectstart
@@ -42,9 +44,12 @@
* Parameters:
* 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.
+ * called when the drag operation is finished.
+ * The callback should 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}
*/
initialize: function(control, callbacks, options) {
@@ -110,6 +115,7 @@
// TBD replace with CSS classes
this.map.div.style.cursor = "";
this.callback("up", [evt.xy]);
+ this.callback("done", [evt.xy]);
document.onselectstart = this.oldOnselectstart;
}
return true;
@@ -134,6 +140,7 @@
if(document.onselectstart) {
document.onselectstart = this.oldOnselectstart;
}
+ this.callback("done", [evt.xy])
}
return true;
},
@@ -141,8 +148,8 @@
/**
* 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 after a
- * drag.
+ * for clicks on the same element, its listener will not be called
+ * after a drag.
*
* Parameters:
* evt - {Event}
@@ -163,8 +170,8 @@
* Method: activate
* Activate the handler.
*
- * Return: {Boolean} Was activation successful. Returns false if already
- * active.
+ * Return: {Boolean} Was activation successful.
+ * Returns false if already active.
*/
activate: function() {
if(OpenLayers.Handler.prototype.activate.apply(this, arguments)) {
@@ -179,8 +186,8 @@
* Method: deactivate
* Deactivate the handler.
*
- * Return: {Boolean} Was deactivation successful. Returns false if already
- * active.
+ * Return: {Boolean} Was deactivation successful.
+ * Returns false if already active.
*/
deactivate: function() {
if(OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) {
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Layer/EventPane.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Layer/EventPane.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Layer/EventPane.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -110,7 +110,11 @@
/**
* Method: loadWarningMessage
* If we can't load the map lib, then display an error message to the
- * user and tell them where to go for help.
+ * 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
+ * provide the actual warning message.
*/
loadWarningMessage:function() {
@@ -141,6 +145,18 @@
this.div.appendChild(div);
},
+ /**
+ * Method: getWarningHTML
+ * To be implemented by subclasses.
+ *
+ * Return:
+ * {String} String with information on why layer is broken, how to get
+ * it working.
+ */
+ getWarningHTML:function() {
+ //should be implemented by subclasses
+ return "";
+ },
/**
* Method: display
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Layer/WFS.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Layer/WFS.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Layer/WFS.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -385,10 +385,10 @@
if (this.tile) {
if (this.vectorMode) {
this.renderer.clear();
- OpenLayers.Util.clearArray(this.features);
+ this.features.length = 0;
} else {
this.clearMarkers();
- OpenLayers.Util.clearArray(this.markers);
+ this.markers.length = 0;
}
this.tile.draw();
}
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Map.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Map.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Map.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -267,11 +267,10 @@
this.id = OpenLayers.Util.createUniqueID("OpenLayers.Map_");
+ this.div = OpenLayers.Util.getElement(div);
- this.div = div = OpenLayers.Util.getElement(div);
-
// the viewPortDiv is the outermost div we modify
- var id = div.id + "_OpenLayers_ViewPort";
+ var id = this.div.id + "_OpenLayers_ViewPort";
this.viewPortDiv = OpenLayers.Util.createDiv(id, null, null, null,
"relative", null,
"hidden");
@@ -281,14 +280,14 @@
this.div.appendChild(this.viewPortDiv);
// the layerContainerDiv is the one that holds all the layers
- id = div.id + "_OpenLayers_Container";
+ 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,
- div,
+ this.div,
this.EVENT_TYPES,
this.fallThrough);
this.updateSize();
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Renderer/Elements.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Renderer/Elements.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Renderer/Elements.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -313,7 +313,7 @@
this.eraseGeometry(geometry.components[i]);
}
} else {
- var element = $(geometry.id);
+ var element = OpenLayers.Util.getElement(geometry.id);
if (element && element.parentNode) {
if (element.geometry) {
element.geometry.destroy();
@@ -340,7 +340,7 @@
* {DOMElement} A new node of the given type and id
*/
nodeFactory: function(id, type, geometry) {
- var node = $(id);
+ var node = OpenLayers.Util.getElement(id);
if (node) {
if (!this.nodeTypeCompare(node, type)) {
node.parentNode.removeChild(node);
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Renderer.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Renderer.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Renderer.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -59,7 +59,7 @@
* containerID - {<String>}
*/
initialize: function(containerID) {
- this.container = $(containerID);
+ this.container = OpenLayers.Util.getElement(containerID);
},
/**
Modified: sandbox/euzuro/untiled3/lib/OpenLayers/Util.js
===================================================================
--- sandbox/euzuro/untiled3/lib/OpenLayers/Util.js 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/lib/OpenLayers/Util.js 2007-07-07 00:55:18 UTC (rev 3643)
@@ -71,8 +71,16 @@
/**
* Function: clearArray
-*/
+ * *Deprecated*. This function will disappear in 3.0.
+ * Please use "array.length = 0" instead.
+ *
+ * Parameters:
+ * array - {Array}
+ */
OpenLayers.Util.clearArray = function(array) {
+ var msg = "OpenLayers.Util.clearArray() is Deprecated." +
+ " Please use 'array.length = 0' instead.";
+ OpenLayers.Console.warn(msg);
array.length = 0;
};
Modified: sandbox/euzuro/untiled3/tests/Geometry/test_LineString.html
===================================================================
--- sandbox/euzuro/untiled3/tests/Geometry/test_LineString.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/tests/Geometry/test_LineString.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -106,6 +106,48 @@
}
}
+ function test_LineString_resize(t) {
+ t.plan(7);
+
+ var tolerance = 1e-10;
+
+ var components = [new OpenLayers.Geometry.Point(10 * Math.random(),
+ 10 * Math.random()),
+ new OpenLayers.Geometry.Point(10 * Math.random(),
+ 10 * Math.random())];
+ var geometry = new OpenLayers.Geometry.LineString(components);
+
+ var origin = new OpenLayers.Geometry.Point(10 * Math.random(),
+ 10 * Math.random());
+
+ var scale = 10 * Math.random();
+
+ var oldLength = geometry.getLength();
+ geometry.resize(scale, origin);
+ var newLength = geometry.getLength();
+ t.ok((((newLength / oldLength) - scale) / scale) < tolerance,
+ "resize correctly changes the length of a linestring")
+
+ var originals = [];
+ var comp;
+ for(var i=0; i<geometry.components.length; ++i) {
+ comp = geometry.components[i];
+ originals[i] = comp.resize;
+ comp.resize = function(s, o) {
+ t.ok(true, "resize called for component " + i);
+ t.ok(s == scale, "resize called with correct scale");
+ t.ok(o == origin, "resize called with correct origin");
+ }
+ }
+ geometry.resize(scale, origin);
+
+ // restore the original resize defs
+ for(var i=0; i<geometry.components.length; ++i) {
+ comp.resize = originals[i];
+ }
+
+ }
+
function test_LineString_equals(t) {
t.plan(3);
Modified: sandbox/euzuro/untiled3/tests/Geometry/test_Point.html
===================================================================
--- sandbox/euzuro/untiled3/tests/Geometry/test_Point.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/tests/Geometry/test_Point.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -103,6 +103,30 @@
"rotate 1/8 turn correctly")
}
+ function test_Point_resize(t) {
+ t.plan(2);
+
+ var tolerance = 1e-10;
+ var x = 100 * Math.random();
+ var y = 100 * Math.random();
+ var point = new OpenLayers.Geometry.Point(x, y);
+
+ var i = 100 * Math.random();
+ var j = 100 * Math.random();
+ var origin = new OpenLayers.Geometry.Point(i, j);
+
+ var scale = 10 * Math.random();
+ var oldDistance = origin.distanceTo(point);
+
+ point.resize(scale, origin);
+ var newDistance = origin.distanceTo(point);
+
+ t.ok((origin.x == i) && (origin.y == j),
+ "resize leaves the origin untouched");
+ t.ok((((newDistance / oldDistance) - scale) / scale) < tolerance,
+ "resize moves points the correct distance from the origin")
+ }
+
function test_Point_equals(t) {
t.plan(3);
Modified: sandbox/euzuro/untiled3/tests/Geometry/test_Polygon.html
===================================================================
--- sandbox/euzuro/untiled3/tests/Geometry/test_Polygon.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/tests/Geometry/test_Polygon.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -133,6 +133,46 @@
}
}
+ function test_Polygon_resize(t) {
+ t.plan(8);
+
+ var tolerance = 1e-10;
+ var geometry = new OpenLayers.Geometry.Polygon([linearRing, linearRing2]);
+ var origin = new OpenLayers.Geometry.Point(10 * Math.random(),
+ 10 * Math.random());
+ var scale = 10 * Math.random();
+
+ var oldArea = geometry.getArea();
+ var oldPerimeter = geometry.getLength();
+ geometry.resize(scale, origin);
+ var newArea = geometry.getArea();
+ var newPerimeter = geometry.getLength();
+
+ t.ok((((newArea / oldArea) - (scale * scale)) / (scale * scale)) < tolerance,
+ "resize correctly changes the area of a polygon")
+ t.ok((((newPerimeter / oldPerimeter) - scale) / scale) < tolerance,
+ "resize correctly changes the perimeter of a polygon")
+
+ var originals = [];
+ var comp;
+ for(var i=0; i<geometry.components.length; ++i) {
+ comp = geometry.components[i];
+ originals[i] = comp.resize;
+ comp.resize = function(s, o) {
+ t.ok(true, "resize called for component " + i);
+ t.ok(s == scale, "resize called with correct scale");
+ t.ok(o == origin, "resize called with correct origin");
+ }
+ }
+ geometry.resize(scale, origin);
+
+ // restore the original resize defs
+ for(var i=0; i<geometry.components.length; ++i) {
+ comp.resize = originals[i];
+ }
+
+ }
+
function test_Polygon_equals(t) {
t.plan(3);
Modified: sandbox/euzuro/untiled3/tests/test_Util.html
===================================================================
--- sandbox/euzuro/untiled3/tests/test_Util.html 2007-07-07 00:12:57 UTC (rev 3642)
+++ sandbox/euzuro/untiled3/tests/test_Util.html 2007-07-07 00:55:18 UTC (rev 3643)
@@ -30,16 +30,12 @@
}
function test_03_Util_Array(t) {
- t.plan( 2 );
+ t.plan( 1 );
var array = new Array(1,2,3,4,5);
OpenLayers.Util.removeItem(array, 3);
t.eq( array.toString(), "1,2,4,5", "Util.removeItem works");
-
- OpenLayers.Util.clearArray(array);
- t.eq( array.toString(), "", "Util.clearArray works");
-
}
function test_04_Util_createDiv(t) {
More information about the Commits
mailing list