AmMaps MapImage 在 deleteObject() 调用后出现在 window resize/move 上
AmMaps MapImage appears on window resize/move after deleteObject() call on it
我需要在事件的地图点中显示脉冲星动画。我将圆形图像添加到地图并在一段时间后将其删除。我使用 CSS 为图像制作动画。一切正常,但如果我尝试调整 window 的大小,图像会再次出现并且之后再也不会被删除。
这是问题的截屏视频:
参见 codepen(事件使用 setTimeout()
进行说明)。
我是不是用错了删图或漏图的方法?
通常您应该在添加新图像时在整个地图上调用 validateData()
或 validateNow()
。由于您正在使用 tap.validate()
添加单个图像,因此您必须利用一些类似于 this ticket 中所建议的内部 API 来使其工作。使用您的代码作为基础:
tap.validate();
this.map.dataProvider.images.push(tap);
// add to internal objects
this.map.imagesProcessor.allObjects.push(tap);
this.map.imagesProcessor.allSvgObjects.push(tap.displayObject);
tap.parentArray = map.dataProvider.images;
setTimeout(() => {
tap.deleteObject();
}, 1000);
我需要在事件的地图点中显示脉冲星动画。我将圆形图像添加到地图并在一段时间后将其删除。我使用 CSS 为图像制作动画。一切正常,但如果我尝试调整 window 的大小,图像会再次出现并且之后再也不会被删除。
这是问题的截屏视频:
参见 codepen(事件使用 setTimeout()
进行说明)。
我是不是用错了删图或漏图的方法?
通常您应该在添加新图像时在整个地图上调用 validateData()
或 validateNow()
。由于您正在使用 tap.validate()
添加单个图像,因此您必须利用一些类似于 this ticket 中所建议的内部 API 来使其工作。使用您的代码作为基础:
tap.validate();
this.map.dataProvider.images.push(tap);
// add to internal objects
this.map.imagesProcessor.allObjects.push(tap);
this.map.imagesProcessor.allSvgObjects.push(tap.displayObject);
tap.parentArray = map.dataProvider.images;
setTimeout(() => {
tap.deleteObject();
}, 1000);