gpt4 book ai didi

javascript - 传单多个标记django map 引用?

转载 作者:行者123 更新时间:2023-11-30 17:03:55 25 4
gpt4 key购买 nike

我正在使用 Python 3.4,最新的 Django 和 leaflet django 安装。我能够显示 map ,并从我的列表中添加 1 个标记。

问题是添加列表中的所有标记。代码呈现所有标记,但并非所有标记都添加到 map 中。也许我通过范围问题丢失了 map 引用?我不知道。这是我的代码,我真的需要帮助。

{% load leaflet_tags %}

<head>

{% leaflet_js %}
{% leaflet_css %}
</head>

<body>


{% if latest_device_list %}
<script type="text/javascript">

{% for device in latest_device_list %}
function map_init_basic (map, options) {

marker = new L.marker([{{device.Device_Lat}}, {{device.Device_Lon}}])
.bindPopup("<h3>"+{{device.Device_IMEI}}+"</h3>")
.addTo(map);

}
{% endfor %}
</script>
{% else %}
<p>No Devices are available.</p>
{% endif %}
{% leaflet_map "yourmap" callback="window.map_init_basic" %}
</body>

最佳答案

我真的不熟悉 Django,所以我可能是错的,但是你的 for 循环不会插入多个 map_init_basic 方法/回调吗?所以你一遍又一遍地声明相同的回调函数?并且只有一个会在 map 初始化时执行。我的猜测是您应该将 for 循环放在标记声明周围的回调函数中:

<script type="text/javascript">

function map_init_basic (map, options) {

{% for device in latest_device_list %}

marker = new L.marker([{{device.Device_Lat}}, {{device.Device_Lon}}])
.bindPopup("<h3>"+{{device.Device_IMEI}}+"</h3>")
.addTo(map);

{% endfor %}

}

</script>

现在发生的事情是,当您在设备列表中说出三个标记时,它最终会像这样:

<script type="text/javascript">

function map_init_basic (map, options) {
marker = new L.marker([0, 0])
.bindPopup("<h3>"+ 'ABC' +"</h3>")
.addTo(map);
}
function map_init_basic (map, options) {
marker = new L.marker([1, 1])
.bindPopup("<h3>"+ 'DEF' +"</h3>")
.addTo(map);
}
function map_init_basic (map, options) {
marker = new L.marker([2, 2])
.bindPopup("<h3>"+ 'GHI' +"</h3>")
.addTo(map);
}

</script>

第二个函数声明,将覆盖第一个,第三个将覆盖第二个。因此,当 map_init_basic 被调用时,只有第三个函数会执行。

关于javascript - 传单多个标记django map 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28374026/

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