add concept of slideFactor to panzoom
git-svn-id: http://svn.openlayers.org/trunk/openlayers@650 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -11,6 +11,9 @@ OpenLayers.Control.PanZoom.Y = 4;
|
|||||||
OpenLayers.Control.PanZoom.prototype =
|
OpenLayers.Control.PanZoom.prototype =
|
||||||
Object.extend( new OpenLayers.Control(), {
|
Object.extend( new OpenLayers.Control(), {
|
||||||
|
|
||||||
|
/** @type int */
|
||||||
|
slideFactor: 50,
|
||||||
|
|
||||||
/** @type Array of Button Divs */
|
/** @type Array of Button Divs */
|
||||||
buttons: null,
|
buttons: null,
|
||||||
|
|
||||||
@@ -80,6 +83,7 @@ OpenLayers.Control.PanZoom.prototype =
|
|||||||
btn.onclick = this.doubleClick.bindAsEventListener(btn);
|
btn.onclick = this.doubleClick.bindAsEventListener(btn);
|
||||||
btn.action = id;
|
btn.action = id;
|
||||||
btn.map = this.map;
|
btn.map = this.map;
|
||||||
|
btn.slideFactor = this.slideFactor;
|
||||||
|
|
||||||
//we want to remember/reference the outer div
|
//we want to remember/reference the outer div
|
||||||
this.buttons.push(btn);
|
this.buttons.push(btn);
|
||||||
@@ -100,43 +104,40 @@ OpenLayers.Control.PanZoom.prototype =
|
|||||||
* @param {event} evt
|
* @param {event} evt
|
||||||
*/
|
*/
|
||||||
buttonDown: function (evt) {
|
buttonDown: function (evt) {
|
||||||
|
|
||||||
|
var slide = this.map.getResolution() * this.slideFactor;
|
||||||
|
var center = this.map.getCenter();
|
||||||
|
|
||||||
|
var newCenter = center.copyOf();
|
||||||
|
|
||||||
switch (this.action) {
|
switch (this.action) {
|
||||||
case "panup":
|
case "panup":
|
||||||
var resolution = this.map.getResolution();
|
newCenter = newCenter.add( 0, slide);
|
||||||
var center = this.map.getCenter();
|
|
||||||
this.map.setCenter(
|
|
||||||
new OpenLayers.LonLat(center.lon,
|
|
||||||
center.lat + (resolution * 50))
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
case "pandown":
|
case "pandown":
|
||||||
var resolution = this.map.getResolution();
|
newCenter = newCenter.add( 0, -slide);
|
||||||
var center = this.map.getCenter();
|
|
||||||
this.map.setCenter(
|
|
||||||
new OpenLayers.LonLat(center.lon,
|
|
||||||
center.lat - (resolution * 50))
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
case "panleft":
|
case "panleft":
|
||||||
var resolution = this.map.getResolution();
|
newCenter = newCenter.add( -slide, 0);
|
||||||
var center = this.map.getCenter();
|
|
||||||
this.map.setCenter(
|
|
||||||
new OpenLayers.LonLat(center.lon - (resolution * 50),
|
|
||||||
center.lat)
|
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
case "panright":
|
case "panright":
|
||||||
var resolution = this.map.getResolution();
|
newCenter = newCenter.add( slide, 0);
|
||||||
var center = this.map.getCenter();
|
break;
|
||||||
this.map.setCenter(
|
case "zoomin":
|
||||||
new OpenLayers.LonLat(center.lon + (resolution * 50),
|
this.map.zoomIn();
|
||||||
center.lat)
|
break;
|
||||||
);
|
case "zoomout":
|
||||||
|
this.map.zoomOut();
|
||||||
|
break;
|
||||||
|
case "zoomworld":
|
||||||
|
this.map.zoomExtent();
|
||||||
break;
|
break;
|
||||||
case "zoomin": this.map.zoomIn(); break;
|
|
||||||
case "zoomout": this.map.zoomOut(); break;
|
|
||||||
case "zoomworld": this.map.zoomExtent(); break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!newCenter.equals(center)) {
|
||||||
|
this.map.setCenter(newCenter);
|
||||||
|
}
|
||||||
|
|
||||||
Event.stop(evt);
|
Event.stop(evt);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user