Javascript 将具有可变路径的多边形加载到GOOGLE MAP API中

Javascript 将具有可变路径的多边形加载到GOOGLE MAP API中,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,当我初始化地图时,我想使用存储在输入html字段中的值作为路径生成一个多边形 polytest = document.getElementById('acf-field_5e59146d57037').value; addPolygon(polytest); function addPolygon(polytest){ polytototo = new google.maps.Polygon({ path: polytest, map: m

当我初始化地图时,我想使用存储在输入html字段中的值作为路径生成一个多边形

    polytest = document.getElementById('acf-field_5e59146d57037').value;
    addPolygon(polytest);
function addPolygon(polytest){
    polytototo = new google.maps.Polygon({
        path: polytest,
        map: map,
        draggable:true,
        editable: true,
    });
    polytototo.setMap(map);
}
当我从名为
'acf-field_5e59146d57037'
的输入字段id复制/传递数据时,这就是我得到的
{lat:66.064964,lng:112.872635},{lat lat:42.249039,lng:87.560135},{lat 55.940113,lng:60.841385}

当我将这些数据放入路径:[{lat:66.064964,lng:112.872635},{lat:42.249039,lng:87.560135},{lat:55.940113,lng:60.841385}]中时,它起作用了

如何使其与变量
polytest
一起工作(如上面的主代码所示)

编辑:将数据发送到html输入字段的方法可能很重要。实际上,现有绘制多边形的数据会发送到html中,如下所示:

for (var i = 0; i < polygon.getPath().getLength(); i++) {
        polypoint = polygon.getPath().getAt(i).toUrlValue(6).split(",");
        if (i === 0) { prefix_coord = '{'; } else { prefix_coord = ', {'; }
      document.getElementById('acf-field_5e59146d57037').value += prefix_coord + 'lat: ' + polypoint[0] + ', lng: ' + polypoint[1] + '}';

    }

  });
for(var i=0;i
当我按原样运行代码时,会出现javascript错误:

  • InvalidValueError:不是数组
问题是:
“{lat:66.064964,lng:112.872635},{lat:42.249039,lng:87.560135},{lat:55.940113,lng:60.841385}”
不是数组,而是字符串

如果在其周围添加“[]”,在属性名称周围加引号(运行它),并在其上调用
JSON.parse
,它将是一个数组:

<input id='acf-field_5e59146d57037' value="[{lat: 66.064964, lng: 112.872635}, {lat: 42.249039, lng: 87.560135}, {lat: 55.940113, lng: 60.841385}]" />

Try
path:JSON.parse(`[${polytest}]`)