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:
euzuro
2006-06-21 14:31:34 +00:00
parent 61a93c8d38
commit 705555f1f7

View File

@@ -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);
}, },