[英]How to reproject layers (using GeoServer and OpenLayers) in order to overlay on the google maps
[英]How to Unproject and Reproject Vertices of a Polygon in openlayers with Google maps
我想重新投影多边形的顶点。 我已经能够在边界范围内实现这一点,但是在顶点上却遇到了一些麻烦。
function onFeatureModified(event) {
var bounds = event.feature.geometry.getBounds();
var answer = "bottom: " + bounds.bottom + "\n";
answer += "left: " + bounds.left + "\n";
answer += "right: " + bounds.right + "\n";
answer += "top: " + bounds.top + "\n";
alert(answer);
var mapProjv = map.getProjectionObject();
var epsg4326v = new OpenLayers.Projection("EPSG:4326");
var verticesNative = event.features[0].geometry.getVertices();
var verticesLatLon = verticesNative.transform( mapProjv , epsg4326v );
var vertices = verticesNative;
alert(verticesNative);
}
下面的代码有效:
var vertices = event.features[0].geometry.getVertices();
alert(vertices);
getVertices()
方法返回一个OpenLayers.Geometry.Point
对象数组,因此您不能在其上调用transform()
方法。 相反,您应该做的是遍历数组,并像这样对每个对象调用transform()
:
var vertices = event.features[0].geometry.getVertices();
var transformedVertices = [];
for(var i=0; i < vertices.length; i++){
transformedVertices.push(vertices[i].transform(
new OpenLayers.Projection("EPSG:900913"),
new OpenLayers.Projection("EPSG:4326")
));
}
//create new feature with transformed vertices
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.