give the ve layer smooth (but safe) dragging. just like google layer. (Closes #1161) (See #1053)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@5227 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
euzuro
2007-11-21 07:54:45 +00:00
parent b89126ae20
commit cd9ee75a73
2 changed files with 46 additions and 4 deletions

View File

@@ -103,10 +103,28 @@ OpenLayers.Layer.VirtualEarth = OpenLayers.Class(
if (this.mapObject != null) {
try { // this is to catch a Mozilla bug without falling apart
this.mapObject.LoadMap(null, null, this.type);
// 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.HideDashboard();
}
//can we do smooth panning? this is an unpublished method, so we need
// to be careful
if ( !this.mapObject ||
!this.mapObject.vemapcontrol ||
!this.mapObject.vemapcontrol.PanMap ||
(typeof this.mapObject.vemapcontrol.PanMap != "function")) {
this.dragPanMapObject = null;
}
},
/**
@@ -169,6 +187,17 @@ OpenLayers.Layer.VirtualEarth = OpenLayers.Class(
return this.mapObject.GetCenter();
},
/**
* APIMethod: dragPanMapObject
*
* Parameters:
* dX - {Integer}
* dY - {Integer}
*/
dragPanMapObject: function(dX, dY) {
this.mapObject.vemapcontrol.PanMap(dX, -dY);
},
/**
* APIMethod: getMapObjectZoom
*