[Geomoose-users] Scalebar & Measure

Brent Fraser bfraser at geoanalytic.com
Fri Dec 17 11:00:56 EST 2010


Johan,

   Interesting stuff.

   Looking at my experimental source from a few months back, I had added 
a property to main.js around line 98:

     if(CONFIGURATION.scale_line.enabled) {
         Map.addControl(new OpenLayers.Control.ScaleLine({
             bottomOutUnits: CONFIGURATION.scale_line.bottom_units,
             topOutUnits: CONFIGURATION.scale_line.top_units,
             geodesic: true,    /* bfraser */
             maxWidth: CONFIGURATION.scale_line.width
         }));
     }

but testing today it seems to have no effect in "correcting" the 
scalebar length.  I'll have to do more investigation.  Note from the 
OpenLayers doc:


      geodesic

{Boolean} Use geodesic measurement.  Default is false.  The recommended 
setting for maps in EPSG:4326 is false, and true EPSG:900913.  If set to 
true, the scale will be calculated based on the horizontal size of the 
pixel in the center of the map viewport.



Your point 2 is a tough one.  The search radius is a map projection 
distance and would have to be corrected by the map projection point 
scale factor, or adjusted to be a geodesic distance.  I don't know if 
OpenLayers has a function to do either of those.

Best Regards,
Brent Fraser


On 12/17/2010 8:04 AM, Johan Forsman wrote:
> All:
>
> I just discovered this issue. After applying Brent's fix below the measure tool appears to return the correct values, but there are other remaining issues.
>
> I am using the 900913 projection for all data.
>
> 1. The scale bar is off. 500 meters on the scale bar measures to 431 meters, or a factor of ~0.86. This is not a critical issue, but it would be "nice" if it measured the same.
>
> 2. The select feature, using By Point, is a very clever way to get all features within a certain radius of a point location. However this function will return a radius that is shorter by about the same amount as the scale bar. This is an important issue. I have attached 3 screenshots illustrating the problem.
>
> The GM shot shows what is supposed to be a 1-mile radius, plus the new measurement (post-fix) to the most distant feature of interest.
>
> The GE-EC shot shows the measured distance using an all-Google application.
>
> The ArcGIS shot shows the actual size of a circle with an (presumably ArcGIS is authoritative) 1-mile radius in the same location. These data are in NAD83 UTM 15N.
>
> I measured the scale factors on a 200 meter scale bar (1:6771) for my state (Louisiana) and found them to be about 0.86 at the northern extreme and 0.89 at the southern extreme.
>
> Is there any way I can implement some type of automatic correction to the select tool, and any other tool that may be affected by this behavior? Certainly I can inform the users that they need to add x % to their chosen buffer, but I am not prepared to trust the users to really do that.
>
> Thanks!
> /Johan.
>
>> -----Original Message-----
>> From: Brent Fraser [mailto:bfraser at geoanalytic.com]
>> Sent: Wednesday, May 26, 2010 1:53 PM
>> To: Len Kne
>> Cc: 'geomoose-users at lists.sourceforge.net'
>> Subject: Re: [Geomoose-users] Scalebar&  Measure
>>
>> Len(and others interested in measuring),
>>
>>     Here's my solution to the measure problem:
>>
>> In main.js somewhere around line 138 add the two lines below marked with a
>> "//BWF":
>>
>> 	Tools['measure'] = new
>> OpenLayers.Control.GeoMooseMeasure(OpenLayers.Handler.MeasurePath,
>> measureToolOptions);
>> 	Tools['measure'].geodesic = true;  //BWF
>>
>> 	Tools['measurearea'] = new
>> OpenLayers.Control.GeoMooseMeasure(OpenLayers.Handler.MeasurePolygon,
>> measureToolOptions);
>> 	Tools['measurearea'].geodesic = true;  //BWF
>>
>> Thoughts?
>>
>> Brent
>>
>>
>> Brent Fraser wrote:
>>> Paul, Len,
>>>
>>>     Our scale problem is a (mostly) map projection issue.  All map
>> projections
>>> introduce distortions in trying to represent a round(ish) Earth on a
>> flat plane.
>>>    Mercator is no different: it is like wrapping an up-right cylinder
>> around the
>>> Earth, projecting light from the center onto the cylinder
>>> (http://en.wikipedia.org/wiki/Mercator_projection).  As you can imagine
>> the
>>> distortions get "worse" the further from the equator.   The distortions
>> can be
>>> modeled as a Point Scale Factor.  At the equator the Point Scale Factor
>> is 1.0,
>>> at latitude 60 degrees North (or South), the scale factor is 0.5!
>>>
>>>     So what's the solution?  Here's mine:
>>>
>>>     1. Enhance Proj4 (and Proj4js) to return the Point Scale factor
>> (given the
>>> projection and a location)
>>>     2. Enhance MapServer and Openlayers to use the Point Scale Factor in
>>> calculating distances and scale.
>>>
>>> I'm trying to drum up interest, but so no takers....
>>>     http://osgeo-org.1803224.n2.nabble.com/Point-Scale-factor-service-
>> td4938743.html
>>> http://osgeo-org.1803224.n2.nabble.com/Re-3265-Scale-dependent-layer-
>> switching-error-with-Mercator-td4966902.html
>>> Best Regards,
>>> Brent Fraser
>>>
>>> Len Kne wrote:
>>>> The scale bar issue with the web Mercator projection is a limitation of
>>>> OpenLayers, the application GeoMOOSE 2.x uses to render the map frame.
>>>>    There has been discussion on the OpenLayers site about providing a
>>>> patch (this link offers a patch http://trac.openlayers.org/ticket/1890
>> )
>>>> in the next version 2.9.  I'm sure GM will upgrade to OL 2.9, but not
>>>> sure there is any schedule in place to do this.
>>>>
>>>>
>>>>
>>>> The cursor issue is also kind of fun because it seems each browser
>>>> handles the custom icons differently.  Here's the attribute in the
>>>> mapbook which defines the query for the Identify service:
>>>>
>>>>
>>>>
>>>> cursor="url('cursors/identify2.cur') 9
>> 9,url('cursors/identify2.cur'),auto"
>>>>
>>>>
>>>> This makes three attempts to draw the cursor, the first offsets the
>>>> mouse click 9 pixels from the top and the left.  Firefox can use this
>>>> value and seems to line the mouse click up pretty good with the
>>>> crosshair.  However, IE cannot handle the offset adjustment, so it
>> reads
>>>> the second cursor definition.  There are tools like AT File Mole which
>>>> can be used to edit the hotspot of a cursor.  Attached is the latest
>>>> version I have been using for Identify service, again this seems to
>> line
>>>> the crosshair up pretty well with the mouse click.  If you are using
>>>> Safari or Chrome, these setting don't seem to work at all and I would
>>>> recommend not using customer cursors with those browsers.
>>>>
>>>>
>>>>
>>>> Len
>>>>
>>>>
>>>>
>>>> *From:* Wirth, Paul [mailto:Paul.Wirth at kniferiver.com]
>>>> *Sent:* Saturday, May 01, 2010 9:03 PM
>>>> *To:* 'geomoose-users at lists.sourceforge.net'
>>>> *Subject:* [Geomoose-users] Scalebar&  Measure
>>>>
>>>>
>>>>
>>>> Two questions:
>>>>
>>>>
>>>>
>>>> 1.       I have a web Mercator application, and I noticed that the
>>>> scalebar does not display the correct distance.  For instance, when the
>>>> scalebar shows a distance of 20 miles, it measures only 13.8 miles.  I
>>>> know the measure tools are working correctly, so I assume this is a
>>>> scalebar issue.  Any thoughts on how to fix this?
>>>>
>>>> 2.       I think this question was asked before, but I can't seem to
>>>> find it on the e-mail list.  With the measure tools, the cursor does
>> not
>>>> start measuring at the "crosshairs" when the user clicks, but rather in
>>>> the NW quadrant of the crosshairs.  Is there a way to change it so the
>>>> measure start point will be on the crosshairs?
>>>>
>>>>
>>>> -----------------------------------------------------------------------
>> -
>>>> -----------------------------------------------------------------------
>> -------
>>>>
>>>> -----------------------------------------------------------------------
>> -
>>>> _______________________________________________
>>>> Geomoose-users mailing list
>>>> Geomoose-users at lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/geomoose-users
>>>
>>> ------------------------------------------------------------------------
>> ------
>>> _______________________________________________
>>> Geomoose-users mailing list
>>> Geomoose-users at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/geomoose-users
>>>
>>
>> --------------------------------------------------------------------------
>> ----
>>
>> _______________________________________________
>> Geomoose-users mailing list
>> Geomoose-users at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geomoose-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/geomoose-users/attachments/20101217/204eeae7/attachment.html


More information about the Geomoose-users mailing list