[OpenLayers-Users] How to change geometry's projection back
andforth
Arnd Wippermann
arnd.wippermann at web.de
Mon Dec 8 14:21:41 EST 2008
Hi,
Perhaps this is the issue:
http://www.mail-archive.com/users@openlayers.org/msg04875.html
Arnd Wippermann
-----Ursprüngliche Nachricht-----
Von: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org] Im
Auftrag von Lehtonen, Mika
Gesendet: Montag, 8. Dezember 2008 15:57
An: OpenLayers
Betreff: [OpenLayers-Users] How to change geometry's projection back
andforth
Hi,
I am trying to limit the size of a drawn geometry (regular polygon). So
after the feature is created, I jump to my limiting function which suppose
to redraw the geometry taking into account the set limit. My map is in
EPSG:900913 (spherical mercator) because of the Google base maps, but all my
geometries are natively in EPSG:2393. So in order to accomplish some
comparison I have to reproject the drawn polygon into 2393, do the
comparison and then reproject it back to 900913. The drawn geometry
reprojects nicely to 2393 (with proj4js) but I can't get the new geometry
reprojected back. What's wrong with this? Here is the
essential:
geometria = event.feature;
kkj = geometria.geometry;
kkj.transform(new
OpenLayers.Projection("EPSG:900913"), new
OpenLayers.Projection("EPSG:2393"));
radius =
OpenLayers.Number.limitSigDigs((kkj.getBounds().getHeight()/1000),2);
if (radius > 50) {
var scale = 50 / radius;
var x = kkj.getBounds().getCenterLonLat().lon;
var y = kkj.getBounds().getCenterLonLat().lat;
var origin = new OpenLayers.Geometry.Point(x,y);
kkj.resize(scale,origin,1); alert(kkj);
kkj.transform(new
OpenLayers.Projection("EPSG:2393"), new
OpenLayers.Projection("EPSG:900913"));
alert(kkj); /* this is exactly the same than it was before */
geometria.geometry = kkj;
vlayer.drawFeature(geometria);
// vlayer.redraw(true);
OpenLayers.Util.getElement('metapalkki').innerHTML = "
Hakuympyrän säde voi olla max. 50 km!";
} else {
OpenLayers.Util.getElement('metapalkki').innerHTML = "
Hakuympyrän säde on " + radius + "km";
}
If I do this without reprojection, the geometry limitation works, although
the scale is a little bit wrong and my other comparisons don't work because
they should be using 2393.
- mika -
_______________________________________________
Users mailing list
Users at openlayers.org
http://openlayers.org/mailman/listinfo/users
More information about the Users
mailing list