Javascript 动态加载多边形

Javascript 动态加载多边形,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在使用并拥有一个包含国家坐标的本地数据库,如果我将坐标直接放入代码中,效果会很好,但通过单击事件,我调用下面的方法来动态更新地图: $.getJSON('countries/name', function(data) { $.each(data.cords, function (i, v) { var cor = ''; for (i = 0; i < v.length; ++i) { cor += "{longitude

我正在使用并拥有一个包含国家坐标的本地数据库,如果我将坐标直接放入代码中,效果会很好,但通过单击事件,我调用下面的方法来动态更新地图:

    $.getJSON('countries/name', function(data) {
    $.each(data.cords, function (i, v) {
    var cor = '';
        for (i = 0; i < v.length; ++i) {
            cor += "{longitude: "+v[i].longitude+",latitude: "+v[i].latitude+"},";
        }   
    console.log(cor);
            $.goMap.createPolygon({
                color: "#00CC00",
                fillColor: '#00CC00',
                fillOpacity:    0.2,
                weight:     2,
                coords: [cor]
            });
    });
    });
$.getJSON('countries/name',函数(数据){
$。每个(数据线、功能(i、v){
var cor='';
对于(i=0;i
我想用所选国家的经度和纬度填充
coords:[cor]
,并更新地图,如果我手动为
coords:[cor]
赋值,效果很好,控制台日志中没有错误

Coords
必须是
{纬度,经度}
的数组,而不是串联字符串:

var cor = [];
for (i = 0; i < v.length; ++i) {
   cor.push({
     longitude: v[i].longitude,
     latitude: v[i].latitude
   })
} 
事实上,在我看来,您可以立即使用
data.cords
,但不能100%肯定,也不知道它到底是什么。如果您检查关于第463行的,
createOverlay
,就会发现:

case 'polygon':
    if (poly.coords.length > 0) {
        for (var j = 0, l = poly.coords.length; j < l; j++)
            overlay.push(new google.maps.LatLng(poly.coords[j].latitude, poly.coords[j].longitude));

        overlay = new google.maps.Polygon({
            map: this.map,
            path: overlay,
            strokeColor: poly.color ? poly.color : this.opts.polygon.color,
            strokeOpacity: poly.opacity ? poly.opacity : this.opts.polygon.opacity,
            strokeWeight: poly.weight ? poly.weight : this.opts.polygon.weight,
            fillColor: poly.fillColor ? poly.fillColor : this.opts.polygon.fillColor,
            fillOpacity: poly.fillOpacity ? poly.fillOpacity : this.opts.polygon.fillOpacity
        });
    }
        else
            return false;
    break;
案例“多边形”:
如果(多边形坐标长度>0){
对于(var j=0,l=poly.coords.length;j

首先为什么要使用gomap?似乎没有添加任何内容或使任何内容变得更简单,只是另一个google map v3包装器。

谢谢您添加阵列后,它工作正常,我有一个主题,它与goMap library功能齐全
case 'polygon':
    if (poly.coords.length > 0) {
        for (var j = 0, l = poly.coords.length; j < l; j++)
            overlay.push(new google.maps.LatLng(poly.coords[j].latitude, poly.coords[j].longitude));

        overlay = new google.maps.Polygon({
            map: this.map,
            path: overlay,
            strokeColor: poly.color ? poly.color : this.opts.polygon.color,
            strokeOpacity: poly.opacity ? poly.opacity : this.opts.polygon.opacity,
            strokeWeight: poly.weight ? poly.weight : this.opts.polygon.weight,
            fillColor: poly.fillColor ? poly.fillColor : this.opts.polygon.fillColor,
            fillOpacity: poly.fillOpacity ? poly.fillOpacity : this.opts.polygon.fillOpacity
        });
    }
        else
            return false;
    break;