【发布时间】:2022-11-22 02:59:29
【问题描述】:
每次我在搜索框中搜索新区域时,我都试图在 3 秒后停止 drawPolygon 函数,即我希望这个方块隐藏:
let map;
var showPolygon = true;
(function() {
map = L.map('map').setView([51.505, -0.09], 13);
map.addGoogleMutant();
map.whenReady(function() {
img = L.distortableImageOverlay('example.jpg', {
selected: true,
fullResolutionSrc: 'large.jpg',
}).addTo(map);
});
})();
var geocoder = L.Control.geocoder({
defaultMarkGeocode: true
})
.on('markgeocode', drawPolygon)
.addTo(map);
setTimeout(function()
{
drawPolygon;
console.log('yay')
showPolygon = false;
}, 20000);
function drawPolygon(e){
showPolygon = true;
if(showPolygon) {
var bbox = e.geocode.bbox;
var poly = L.polygon([
bbox.getSouthEast(),
bbox.getNorthEast(),
bbox.getNorthWest(),
bbox.getSouthWest()
]).addTo(map);
map.fitBounds(poly.getBounds());
}
}
// function JSalert(){
// if (showalert) {
// alert("Please don't click too soon");
// }
// }
我使用了 setTimeout 函数,但我必须在 5 秒之前搜索一些东西,否则我看不到多边形
【问题讨论】:
-
那么在执行代码之前是否需要 3 秒计时器?
-
例如,当我搜索伦敦时。我看到伦敦周围有一个广场。我希望方块在 3 秒后消失
-
所以你需要一段代码来绘制一个正方形,之后你启动一个 3 秒的计时器,并且在计时器结束后它应该触发一个函数来移除方框。
-
是的,我可以画正方形,请看截图
-
目前还不是很清楚具体卡在什么地方,您是无法暂停代码执行,还是无法移除正方形,或者两者兼而有之?
标签: javascript