<div dir="ltr">Hi all<br><br>I&#39;m trying something simple but doesn&#39;t work. I want to add a new property to the scale control, for allow to choose between abbreviate or not the scale.<br><br>What I did is:<br><br>OpenLayers.Control.Scale = OpenLayers.Class(OpenLayers.Control, {<br>
&nbsp;&nbsp;&nbsp; <br>&nbsp; [...]<br>&nbsp;&nbsp;&nbsp; /** <br>&nbsp;&nbsp;&nbsp; * Property: abreviate<br>&nbsp;&nbsp;&nbsp; * modificantion&nbsp; for abreviate or not the scale value<br>&nbsp;&nbsp;&nbsp; * {Boolean}<br>&nbsp;&nbsp;&nbsp; * default : false<br>&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp; abbreviate: false,<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; [...]<br><br>
&nbsp;/**<br>&nbsp;&nbsp;&nbsp;&nbsp; * Method: updateScale<br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; updateScale: function() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var scale = this.map.getScale();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!scale) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.abbreviate){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (scale &gt;= 9500 &amp;&amp; scale &lt;= 950000) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; scale = Math.round(scale / 1000) + &quot;K&quot;;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if (scale &gt;= 950000) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; scale = Math.round(scale / 1000000) + &quot;M&quot;;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; scale = Math.round(scale);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; scale = Math.round(scale);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; this.element.innerHTML = OpenLayers.i18n(&quot;scale&quot;, {&#39;scaleDenom&#39;:scale});<br>
&nbsp;&nbsp;&nbsp; }, <br>[...]<br><br>It works fine until I call the scale control with the property <br><br>map.addControl(new OpenLayers.Control.Scale({&#39;abbreviate&#39;:true})); <br><br>Anybody colud sayme what I&#39;m doing wrong.<br>
<br>Thank&#39;s in advance<br><br><br><br><br></div>