Hi,<br>I tried a simple example:<br><br><pre id="line1">        var map, scalebar;<br><br>        function init(){<br><br>            map = new OpenLayers.Map(&#39;map&#39;);<br>            var layer = new OpenLayers.Layer.WMS(<br>
                &quot;OpenLayers WMS&quot;,<br>                &quot;<a href="http://labs.metacarta.com/wms/vmap0">http://labs.metacarta.com/wms/vmap0</a>&quot;,<br>                {layers: &#39;basic&#39;}<br>            );<br>
            map.addLayer(layer);<br>            <br>                        var scalebar = new OpenLayers.Control.ScaleLine({<br>                                geodesic: true<br>                        });<br>                        <br>            map.addControl(scalebar);<br>            <br>            map.zoomToMaxExtent();<br>
        }<br></pre>and Firebug gave me the following error: <br><br>Error: px is null<br>Source: <a href="http://openlayers.org/api/OpenLayers.js">http://openlayers.org/api/OpenLayers.js</a><br>Line: 895<br><br><br>What am I doing wrong? What other map parameters should be defined to make geodesic scale line work properly?<br>
<br>Best regards,<br clear="all">Jan<br>
<br><br><div class="gmail_quote">2010/4/28 Bart van den Eijnden <span dir="ltr">&lt;<a href="mailto:bartvde@osgis.nl">bartvde@osgis.nl</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;">Hi Jan,<div><br></div><div>please use OpenLayers 2.9 where the ScaleLine control has a geodesic option which you will need to set to true, see:</div><div><br></div><div><a href="http://trac.openlayers.org/ticket/1890" target="_blank">http://trac.openlayers.org/ticket/1890</a></div>
<div><br></div><div><a href="http://trac.openlayers.org/changeset/10110" target="_blank">http://trac.openlayers.org/changeset/10110</a></div><div><br></div><div>Best regards,</div><div>Bart</div><div><br><div><div><div></div>
<div class="h5"><div>On Apr 28, 2010, at 1:33 PM, Jan wrote:</div><br></div></div><blockquote type="cite"><div><div></div><div class="h5">Hi all,<br>It seems that in lon/lat projections (e.g. EPSG 4326) the scale line is right only for the Equator (0 lat).<br>
If you look at the map, e.g.: <a href="http://dev.openlayers.org/addins/scalebar/trunk/examples/scalebar.html" target="_blank">http://dev.openlayers.org/addins/scalebar/trunk/examples/scalebar.html</a> the scaleline stays constant even if you pan map from N to S. It seems that Poland for example has a width of 1000 km (W-E), while in fact it has approx. 600 km. This is just wrong and for &quot;spatially-unaware&quot; users it will give wrong information.<br>

<br>AFAIK scale bar&#39;s width can be adjusted using:<br><br>OpenLayers.INCHES_PER_UNIT[&quot;degrees&quot;] = x;<br><br>where x can be calculated using the length of a given parallel (in inches) divided by 360 degrees. The default inch per unit value is 4374754.<br>

4374754 * 360 degrees = 1574911440 inches = 40000 km (the length of the Equator).<br><br>It would be nice to implement a default functionality in OL for automatic adjustments of INCHES_PER_UNIT value based e.g. on the latitude of a map center (for example using moveend or zoomend map events). In this way, the scale bar would be always correct at least in the center of the map. If you create a map for higher latitudes it is crucial. The wrong scale line I would call even a bug (imagine using this scaleline in northern Canada or Norway).<br>

<br>By the way, it seems that Google Maps uses this method to correct the scale line (check <a href="http://maps.google.com/" target="_blank">http://maps.google.com</a>, pan the map in N/S direction and see how the scale line adjusts without changing the scale of the map).<br>

<br>Best regards to all OL users,<br>Jan<br></div></div>
_______________________________________________<br>Users mailing list<br><a href="mailto:Users@openlayers.org" target="_blank">Users@openlayers.org</a><br><a href="http://openlayers.org/mailman/listinfo/users" target="_blank">http://openlayers.org/mailman/listinfo/users</a><br>
</blockquote></div><br></div></div></blockquote></div><br>