Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用谷歌地图在openlayers中取消投影和重新投影多边形顶点_Javascript_Google Maps_Openlayers_Polygon - Fatal编程技术网

Javascript 如何使用谷歌地图在openlayers中取消投影和重新投影多边形顶点

Javascript 如何使用谷歌地图在openlayers中取消投影和重新投影多边形顶点,javascript,google-maps,openlayers,polygon,Javascript,Google Maps,Openlayers,Polygon,我想重新投影多边形的顶点。我已经能够实现这一点的边界,但有点麻烦的顶点 function onFeatureModified(event) { var bounds = event.feature.geometry.getBounds(); var answer = "bottom: " + bounds.bottom + "\n"; answer += "left: " + bounds.left + "\

我想重新投影多边形的顶点。我已经能够实现这一点的边界,但有点麻烦的顶点

           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
var-vertices=event.features[0].geometry.getVertices();
var transformedVertices=[];
对于(var i=0;i