[OpenLayers-Dev] Scale-Control Patch

ligi ligi at polymap.de
Wed Oct 14 12:59:00 EDT 2009


Hi,

i wrote a small Patch for the Scale-Control. The possibility to shorten 
the scale values is good and can be the default - but sometimes the 
exact values are needed to be shown to the user. In the patched version 
it is possible to switch between shortening mode and not shortening mode 
by the shorten property.

best regards,
Dipl. Inf. (BA) Marcus -Ligi- Büschleb
-------------- next part --------------
Index: lib/OpenLayers/Control/Scale.js
===================================================================
--- lib/OpenLayers/Control/Scale.js	(revision 9737)
+++ lib/OpenLayers/Control/Scale.js	(working copy)
@@ -22,6 +22,13 @@
      * {DOMElement}
      */
     element: null,
+
+    /**                                                                                                                
+     * Property: shorten                                                                                           
+     * {Boolean} shorten the zoom values ( 1000 -> 1K )
+     */
+    shorten:true,
+
     
     /**
      * Constructor: OpenLayers.Control.Scale
@@ -57,17 +64,23 @@
      */
     updateScale: function() {
         var scale = this.map.getScale();
-        if (!scale) {
+        var unit ="";
+	if (!scale) {
             return;
         }
-
-        if (scale >= 9500 && scale <= 950000) {
-            scale = Math.round(scale / 1000) + "K";
-        } else if (scale >= 950000) {
-            scale = Math.round(scale / 1000000) + "M";
-        } else {
-            scale = Math.round(scale);
-        }    
+       
+	
+	if (this.shorten){	    
+	    if (scale >= 9500 && scale <= 950000) {
+		scale = (scale / 1000);
+		unit = "K";
+	    } else if (scale >= 950000) {
+		scale = (scale / 1000000) ;
+		unit = "M";
+	    } 
+	}
+	
+	scale = Math.round(scale) + unit;
         
         this.element.innerHTML = OpenLayers.i18n("scale", {'scaleDenom':scale});
     }, 


More information about the Dev mailing list