我正在开发一个使用 OpenLayers 7.2 的网络应用程序,它允许用户同时加载多个地图。我正在使用一张地图和一系列带有输入框的选项卡供用户输入地址。当用户单击另一个选项卡时,地图会更改为相应的地图位置。
该页面正在运行,用户可以搜索/加载每张地图,但我遇到了一个奇怪的错误,我无法弄清楚原因。
当我已经加载了 2 个地图并单击尚未分配的第三个选项卡时,似乎会发生错误。如果我然后单击返回到确实有地图的选项卡之一,则会导致以下错误:Uncaught TypeError: Cannot read properties of undefined (reading '0') 're click into 不是以前用地图打开的选项卡。我知道这很令人困惑,所以让我更具体地解释一下。
如果我点击第一个选项卡然后搜索并选择伦敦地图,然后我点击第二个选项卡并搜索/选择巴黎。我可以在选项卡 1 和选项卡 2 之间返回和第四,地图按预期加载。如果我单击选项卡 1(伦敦),然后单击选项卡 3(无地图),但我没有搜索,而是单击返回选项卡 2(应该是巴黎),我看到了伦敦的地图,并得到了杀死我的脚本的错误。但如上所述,如果我在选项卡 1(伦敦)上,然后单击选项卡 3,然后返回到 1,那没问题。
我还应该提一下,我也遇到了一个通用的“脚本错误”。每次我加载地图时都会收到消息。
我对编程很陌生,所以不知道如何解决这个问题。从我的搜索和测试中,我了解到这可能意味着存在一些未声明的变量,并且我发现这两个错误都来自以下行:
map.getView().setCenter(center);
这里是一个 JSFiddle 的链接,其中包含大部分相关代码。
在此方面的任何帮助将不胜感激。