我很困惑。我的观点是:
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网站上看到的任何示例都要大得多...