Marker objects now update their lonlat after moveTo. Fixes #519. Tests pass.

git-svn-id: http://svn.openlayers.org/trunk/openlayers@2817 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Schuyler Erle
2007-03-19 14:46:15 +00:00
parent d6d391e7f5
commit 3f0b0286fc
2 changed files with 35 additions and 1 deletions

View File

@@ -71,7 +71,8 @@ OpenLayers.Marker.prototype = {
moveTo: function (px) {
if ((px != null) && (this.icon != null)) {
this.icon.moveTo(px);
}
}
this.lonlat = this.map.getLonLatFromLayerPx(px);
},
/**

View File

@@ -71,6 +71,39 @@
t.eq(parseFloat(marker.icon.imageDiv.style.opacity), 0.5, "marker.setOpacity() works");
}
function test_04_Marker_moveTo(t) {
t.plan( 6 );
var map = new OpenLayers.Map("map");
var url = "http://octo.metacarta.com/cgi-bin/mapserv";
layer = new OpenLayers.Layer.WMS(name, url);
map.addLayer(layer);
mlayer = new OpenLayers.Layer.Markers('Test Layer');
map.addLayer(mlayer);
map.zoomToExtent(new OpenLayers.Bounds(-50,-50,50,50));
//onscreen marker
var ll = new OpenLayers.LonLat(0,0);
var marker = new OpenLayers.Marker(ll);
mlayer.addMarker(marker);
t.eq(marker.lonlat.lon, 0, "marker lon okay");
t.eq(marker.lonlat.lat, 0, "marker lat okay");
console.log(marker.icon);
marker.moveTo(new OpenLayers.Pixel(250,275));
t.eq(marker.lonlat.lon, 0, "marker lon no change");
t.eq(marker.lonlat.lat, 0, "marker lat no change");
marker.moveTo(new OpenLayers.Pixel(0,0));
t.eq(marker.lonlat.lon, map.getExtent().left, "on left edge of map");
t.eq(marker.lonlat.lat, map.getExtent().top, "on top edge of map");
}
// -->
</script>