Google从getPaths坐标映射setPaths

时间:2012-09-16 07:05:13

标签: javascript google-maps

我正在尝试获取多边形的路径,然后将它们设置为另一个多边形。

newpoly = new google.maps.Polygon({
                paths:poly.getPaths()
            });

这不应该起作用吗?它在控制台中给我这个错误。

构造函数参数0的值无效:[object Object]

3 个答案:

答案 0 :(得分:1)

如果您可以显示多边形对象的代码并且poly.getPaths()返回任何内容,那将会有所帮助。所有我都可以重新编程,以便详细调试它:

  1. 如果你评论路径,你会遇到任何错误:poly:Paths();
  2. CONSOLE.LOG(聚);返回一个谷歌地图多边形?
  3. Console.log(poly.getPaths())返回路径数组?
  4. 如果是,您可以尝试从poly.getPaths创建一个数组,然后将其传递给newpoly。

答案 1 :(得分:1)

在实例化多边形对象

之前尝试添加以下内容
var triangleCoords = [
    new google.maps.LatLng(25.774252, -80.190262),
    new google.maps.LatLng(18.466465, -66.118292),
    new google.maps.LatLng(32.321384, -64.75737),
    new google.maps.LatLng(25.774252, -80.190262)
  ];

现在使用代码并替换poly.getPaths() - 假设其余代码有效。

newpoly = new google.maps.Polygon({
                paths:triangleCoords //there are probably more method to add here 
            });

如果它有效,那么你知道poly.getPaths()有问题。将其用作参考https://developers.google.com/maps/documentation/javascript/overlays#PolygonOptions

请记住,我们只能使用提供的代码来制定解决方案。

答案 2 :(得分:0)

以这种方式获取第一个多边形的坐标(假设已经创建了两个多边形):

           //store polygon path
            var vertices = firstPolygon.getPath();
            // Iterate over the vertices.
            pathOfFirstPolygon = [];
            for (var i =0; i < vertices.getLength(); i++) {
                var xy = vertices.getAt(i);
                item = {};
                item["lat"] = xy.lat();
                item["lng"] = xy.lng();
                pathOfFirstPolygon.push(item);
            };

           //Set path of the second polygon
           secondPolygon.setPath(pathOfFirstPolygon);