我很困惑。我有一点:
x= -12669114.702301
y= 5561132.6760608
我使用 DrawFeature 控制器在矢量图层上绘制一个正方形。
这些数字看起来......呃......非常大,但它们似乎有效,因为如果我稍后绘制一个具有所有相同点的正方形,它位于相同的位置,所以我认为它们必须是正确的。
问题是当我尝试将此点转换为纬度和经度时。
我正在使用:
map.getLonLatFromPixel(pointToPixel(points[0]));
其中 points[0] 是几何点,pointToPixel 函数将任意点转换为一个像素(因为 getLonLatFromPixel 需要一个像素)。它通过简单地获取点的 x 并将其设为像素 x 来实现这一点,依此类推。
我得到的纬度和经度是:
lat: -54402718463.864
lng: -18771380.353223
这显然是错误的。我真的很困惑。我尝试投影这个对象,使用:
.transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
但我真的不明白,而且我很确定我做错了,无论如何。
我的代码在这里: http: //pastie.org/909644
我有点不知所措。坐标似乎是一致的,因为我可以重复使用它们以获得相同的结果......但它们似乎比我在 openLayers 网站上看到的任何示例都要大......