gpt4 book ai didi

javascript - 以编程方式关闭/隐藏/删除 Google map 工具提示

转载 作者:行者123 更新时间:2023-11-28 08:42:22 24 4
gpt4 key购买 nike

我有一个 map 页面,它使用 Google Maps Javascript API v3 和 geoxml3 解析器来解析服务器生成的 KML 文档。

当我使用新的 KML 刷新 map 时,我想在显示新文件之前“清理” map 。

我的代码目前的工作原理如下:

//Init parser
var myParser = new geoXML3.parser({map: me.map});

//On map refresh
if (myParser.docs[0] != undefined)
{
Ext.each(myParser.docs, function(doc){
Ext.each(doc.gpolygons, function(gpolygon){
gpolygon.setMap(null);
});
Ext.each(doc.placemarks, function(placemark){
if (placemark.polygon != undefined) placemark.polygon.setMap(null);
if (placemark.marker != undefined) placemark.marker.setMap(null);
});
});
}

成功清理多边形和地标。但是,如果我在清理 map 之前单击多边形,工具提示将保留。这是截图

Screenshot of map

在您看到地标“004_ALBINO”的地方,有一个多边形在刷新 map 后已被清理。另一个工具提示“400”在刷新 map 之前显示,并且没有被清除 - 至少它下面有一个有效的多边形。

更新 map 时如何关闭工具提示?

最佳答案

这应该关闭 geoxml3 拥有的所有信息窗口(应该处理这两种情况,单个信息窗口或每个对象的信息窗口)。您不需要对 gpolygons 数组的所有成员和所有 placemark.polygon 对象都调用 .setMap(null),这是执行同一操作的两种不同方法。

//Init parser
var myParser = new geoXML3.parser({map: me.map});

//On map refresh
if (myParser.docs[0] != undefined)
{
Ext.each(myParser.docs, function(doc){
Ext.each(doc.placemarks, function(placemark){
if (placemark.polygon != undefined) {
placemark.polygon.setMap(null);
placemark.polygon.infoWindow.close();
}
if (placemark.marker != undefined) {
placemark.marker.setMap(null);
placemark.marker.infoWindow.close();
}
});
});
}

关于javascript - 以编程方式关闭/隐藏/删除 Google map 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20347148/

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