gpt4 book ai didi

javascript - 将 Google map 多边形/标记推送到数组不会推送任何数据

转载 作者:行者123 更新时间:2023-12-02 17:01:46 25 4
gpt4 key购买 nike

我正在使用 Google Maps API v3 创建一个工具。我需要覆盖一些多边形和标记,然后清除它们。

我试图遵循类似于 this 的示例- 将多边形/标记插入数组,然后从数组中删除它们,从而删除 map 。

但是,当我将多边形或标记插入数组时,生成的数组值始终为“未定义”,尽管我的多边形和标记在 map 上正确显示。

注意:我正在使用wicket将 WKT 从我的数据库读取到谷歌地图中。

下面的函数存在问题 - 一个 id 被发送到functions.php,返回该 ID 的 WKT,并且它被映射 - 并且应该被插入数组,但事实并非如此。

我尝试将多边形/标记设置为变量,并将其推送到数组,但这也不起作用。

var layersArr = [];

function getGeo(id){
$.ajax({
url: 'functions.php',
type: 'POST',
data: {
request: 'getGeo',
id: id
},
success: function(data){
wkt.read(data);

switch(wkt.type){
case 'polygon':
case 'multipolygon':
layersArr.push(new google.maps.Polygon(wkt.toObject()).setMap(map));
break;
case 'point':
layersArr.push(new google.maps.Marker(wkt.toObject()).setMap(map));
break;
default:
alert('Unrecognized wkt type');
return;
break;
}
},
error: function(jqXHR, text, error){
ajaxError(jqXHR, text, error);
}
});
}

最佳答案

这是因为setMap()根据Google Maps API v3没有返回值.

而不是这个:

layersArr.push(new google.maps.Polygon(wkt.toObject()).setMap(map));

你需要这样做:

var poly = new google.maps.Polygon(wkt.toObject());
layersArr.push(poly);
poly.setMap(map);

关于javascript - 将 Google map 多边形/标记推送到数组不会推送任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com