[OpenLayers-Users] projection transform,
not working on first load?
christopher.schmidt at nokia.com
christopher.schmidt at nokia.com
Tue Jun 22 08:25:58 EDT 2010
On Jun 22, 2010, at 7:42 AM, ext Ken Sanderson wrote:
> So I am using a few transforms with my openlayers mapping application.
> Generally speaking it works fine, however it seems to never transform
> properly when the application first loads.
>
> So for example I have a database with EPSG:26911 points in it. I create
> a point with those coordinates, then transform them to 900913 before
> adding them as a feature to a vector layer.
>
> Points will not show up, but if I put alert(point.x); then I will see
> that the very first point will give me the UTM coordinate, but then
> after that they will all be transformed appropriately and they will
> display on the map and the alert gives me the web Mercator coordinate.
> Without the alert though it doesnt 'trigger' it to work properly and
> none of the points will be displayed.
* OpenLayers only knows how to transform to/from EPSG:900913/EPSG:4326
by default.
* With proj4js support, it can support more projections, but only based
on the available definitions.
* If proj4js does not have projection information, it will attempt to
load http://spatialreference.org/ref/epsg/26911/proj4js/ into your
page.
* This operation is non-blocking -- meaning proj4js has no way to know
when it is done and 'pause'.
As a result, when you first attempt to transform, proj4js will try to
load http://spatialreference.org/ref/epsg/26911/proj4js/ , it will take
a second, and in the meantime, your transform will do nothing.
The fix to this is to include:
Proj4js.defs["EPSG:26911"] = "+proj=utm +zone=11 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";
directly in the source of your page.
In general, it's polite to do this anyway so as to not hit sr.org for
every page load.
Best Regards,
--
Christopher Schmidt
Nokia
More information about the Users
mailing list