Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 小叶标记在无效化后失去位置_Javascript_Leaflet_Gis - Fatal编程技术网

Javascript 小叶标记在无效化后失去位置

Javascript 小叶标记在无效化后失去位置,javascript,leaflet,gis,Javascript,Leaflet,Gis,我有一个传单地图,当用户点击提供的图标时,我可以将其调整为全屏,并在第二次点击时将其压缩为原始大小 调整大小后,我正在使用invalidateSize()方法,但我注意到我在地图上的标记丢失了它的位置 问题是我在单击时更新标记位置,我认为单击“调整大小”按钮导致标记坐标设置为错误位置。所以传单很好用。我通过在放大图标上使用event.stopPropagation()而不是仅使用event.preventDefault()尝试设置该图标上的超时来修复它 setTimeout(functio

我有一个传单地图,当用户点击提供的图标时,我可以将其调整为全屏,并在第二次点击时将其压缩为原始大小

调整大小后,我正在使用
invalidateSize()
方法,但我注意到我在地图上的标记丢失了它的位置



问题是我在单击时更新标记位置,我认为单击“调整大小”按钮导致标记坐标设置为错误位置。所以传单很好用。我通过在放大图标上使用
event.stopPropagation()
而不是仅使用
event.preventDefault()

尝试设置该图标上的超时来修复它

 setTimeout(function(){map.invalidateSize()},500)

没有成功。我试了250毫秒、500毫秒和1000毫秒。pin刚好在另一个地方结束。请尝试删除标记,并在invalidateSize后重新绘制,至少让我知道代码我可以这样做,但如果有更多标记,这似乎是非常糟糕的方法。我更喜欢正确的解决方案,而不是快速修复:)对我来说,非常好的方法是使用D3绘制标记,因为它绘制html元素,而不是位图,并使用字体awsome制作标记,它只为每个标记绘制一个单词,但我会确保它不是快速修复。请不要通过破坏您的帖子为人们做更多的工作。通过在Stack Exchange(SE)网络上发布,您已根据授予SE分发该内容的不可撤销权利(即,无论您未来的选择如何)。根据SE政策,该帖子的非故意破坏版本是发布的版本。因此,任何故意破坏行为都将恢复原状。