Openlayers - 从一个点获取纬度/经度时的投影问题

时间:2011-07-31 20:16:34

标签: javascript openlayers openstreetmap

我试图从Openlayers和OSM的可拖动标记中获取纬度/经度,但我找不到投影转换的好设置,我做错了什么?

以下是代码:http://pastie.org/2300321(请参阅addMarker l140& updateTargets l153)&还有一点demo test

如果您提交地址,则拖动标记,经度和纬度都是错误的。我测试了几个不同的预测,但我不确定我要使用什么......

1 个答案:

答案 0 :(得分:5)

我认为问题出在updateTargets方法内:

var point = this.feature.geometry;
var pixel = new OpenLayers.Pixel(point.x, point.y);
var coord = this.map.getLonLatFromPixel(pixel).transform(
   new OpenLayers.Projection("EPSG:900913"),
   new OpenLayers.Projection("EPSG:4326")
);

this.feature.geometry已在lon / lat坐标中指定,而不是以像素为单位。所以我建议你跳过第二行并直接在几何对象上从OpenStreetMap投影转换为lon / lat:

var coord = this.feature.geometry.transform(
   new OpenLayers.Projection("EPSG:900913"),
   new OpenLayers.Projection("EPSG:4326")
);