OpenLayers:为什么我的矢量特征标记错位了?

时间:2011-07-09 22:43:35

标签: openlayers

我首先使用Markers进行编码(成功)然后意识到它不再被推荐(特别是对于群集)。

在Openlayers doc和examples given中阅读了this question后,我创建了我的向量,添加了一些风格等...

但是,它们都放在LngLat(0,0)周围,而不是它们的正确坐标。

你可以在下面看到他们的几何属性是好的。我不知道我在那里失踪了什么。

sreenshot

2 个答案:

答案 0 :(得分:5)

问题在于,虽然Google地图投影是EPSG:900913,但矢量要素的坐标位于EPSG:4326。

因此,您必须在Google地图投影中指定坐标,或使用OpenLayers转换客户端的坐标。这是你如何做到的:

feature.geometry.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"))

转换功能后,您可以将图层添加到地图中,它应该正确显示功能。

答案 1 :(得分:1)

您使用什么坐标投影?我假设您的图层名称使用的是Google地图基础图层。

Google地图使用球形墨卡托投影,OpenLayers默认使用EPSG:4326。 OpenLayers具有API,可让您在各种投影之间转换坐标,以便所有图层可以很好地协同工作。

有关您的图层的更多详细信息,我可以提供一些代码来演示这一点。