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;