Adding a distanceTo for pixels. p=bbinet, r=me (closes #3119)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11491 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Tim Schaub
2011-02-25 13:34:59 +00:00
parent 09c21c6b86
commit b6cc99be8f
2 changed files with 30 additions and 1 deletions

View File

@@ -85,6 +85,24 @@ OpenLayers.Pixel = OpenLayers.Class({
return equals;
},
/**
* APIMethod: distanceTo
* Returns the distance to the pixel point passed in as a parameter.
*
* Parameters:
* px - {<OpenLayers.Pixel>}
*
* Returns:
* {Float} The pixel point passed in as parameter to calculate the
* distance to.
*/
distanceTo:function(px) {
return Math.sqrt(
Math.pow(this.x - px.x, 2) +
Math.pow(this.y - px.y, 2)
);
},
/**
* APIMethod: add
*

View File

@@ -40,11 +40,22 @@
t.eq( pixel.x, 5, "changing oldPixel.x doesn't change pixel.x");
}
function test_Pixel_distanceTo(t) {
t.plan( 2 );
var px = new OpenLayers.Pixel(0,-2);
pixel = new OpenLayers.Pixel(0,0);
t.eq( pixel.distanceTo(px), 2, "(0,0) distanceTo (0,-2) = 2");
px = new OpenLayers.Pixel(-4,6);
pixel = new OpenLayers.Pixel(4,6);
t.eq( pixel.distanceTo(px), 8, "(4,6) distanceTo (-4,6) = 8");
}
function test_Pixel_equals(t) {
t.plan( 5 );
pixel = new OpenLayers.Pixel(5,6);
px = new OpenLayers.Pixel(5,6);
var px = new OpenLayers.Pixel(5,6);
t.eq( pixel.equals(px), true, "(5,6) equals (5,6)");
px = new OpenLayers.Pixel(1,6);