Javascript 将具有可变路径的多边形加载到GOOGLE MAP API中
当我初始化地图时,我想使用存储在输入html字段中的值作为路径生成一个多边形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
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}]" />
Trypath:JSON.parse(`[${polytest}]`)