diff --git a/examples/draggingGoogle.html b/examples/smoothDragging.html
similarity index 70%
rename from examples/draggingGoogle.html
rename to examples/smoothDragging.html
index c5b0c0f685..834d78a59f 100755
--- a/examples/draggingGoogle.html
+++ b/examples/smoothDragging.html
@@ -8,7 +8,8 @@
}
-
+
+
- OpenLayers With Responsive Google Dragging
+ OpenLayers With Responsive Dragging
Uses Google Maps v2.82
diff --git a/lib/OpenLayers/Layer/VirtualEarth.js b/lib/OpenLayers/Layer/VirtualEarth.js
index 8518d3c60a..e55bf4d5ba 100644
--- a/lib/OpenLayers/Layer/VirtualEarth.js
+++ b/lib/OpenLayers/Layer/VirtualEarth.js
@@ -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
*