gpt4 book ai didi

javascript - jQuery 和 Leaflet 给出错误 "map container is already initialized"

转载 作者:行者123 更新时间:2023-12-02 22:40:53 30 4
gpt4 key购买 nike

注意:我尽量不重复这个问题。我尝试使用以前帖子中的答案但无济于事。

我不断收到错误消息:

Uncaught Error: Map container is already initialized.

使用以下代码:

$('#example1').on('click', 'tr > td > a.loadMap', function(e) 
{
e.preventDefault();
var $dataTable = $('#example1').DataTable();
var tr = $(this).closest('tr');
var data = $dataTable.rows().data();

var actramp = $(this).attr('data-actramp');
var actimpdel = $(this).attr('data-actimpdel');
var actramplat = parseFloat($(this).attr('data-actramplat'));
var actramplng = parseFloat($(this).attr('data-actramplng'));
var actdellat = parseFloat($(this).attr('data-actdellat'));
var actdellng = parseFloat($(this).attr('data-actdellng'));
var actreclat = parseFloat($(this).attr('data-actreclat'));
var actreclng = parseFloat($(this).attr('data-actreclng'));

$('#actionMatchbackModal').modal('show');

$("#actionMatchbackModal").on("shown.bs.modal", function () {
initMap(actramp, actimpdel, actexpreceipt, actramplat, actramplng, actreclat, actreclng, actdellat, actdellng);
});
});

function initMap(actramp, actimpdel, actexpreceipt, actramplat, actramplng, actreclat, actreclng, actdellat, actdellng)
{
var map = L.map('map').setView([actreclat,actreclng], 8);

// vvv this was an answer provided from another post vvv
if (map != undefined) {
map.remove();
}
// ^^^ but the map stopped loading completely ^^^

map.invalidateSize();

L.tileLayer('https://api.maptiler.com/maps/streets/{z}/{x}/{y}.png?key=zAlHsNvo6jxv4ENZxW3R', {
attribution: '<a href="https://www.maptiler.com/copyright/" target="_blank">&copy; MapTiler</a> <a href="https://www.openstreetmap.org/copyright" target="_blank">&copy; OpenStreetMap contributors</a>'
}).addTo(map);
}

我可以在上述代码中添加/删除什么来修复“ map 容器已初始化”错误?

最佳答案

您的思路是正确的,但您应该在(重新)初始化 map 之前remove() map - 并确保 map 的范围变量是正确的。像这样

var map;

...

function initMap(actramp, actimpdel, actexpreceipt, actramplat, actramplng, actreclat,
actreclng, actdellat, actdellng)
{

if (map != undefined) map.remove();
map = L.map('map').setView([actreclat,actreclng], 8);

...

}

关于javascript - jQuery 和 Leaflet 给出错误 "map container is already initialized",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58591515/

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