微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Mapbox 中添加多个带有添加地址的标记

如何解决在 Mapbox 中添加多个带有添加地址的标记

我越来越熟悉 mapBox 的工作原理,我正在从数据库获取地址,并将其放入 mapBoxClient.geocoding 的查询中 .forwardGeocode,但它只需要我数据库中的最后一个地址。我需要为我拥有的每个地址添加书签。如果您能帮助我或向我保证,我将不胜感激。我有以下代码

视图.py

def direcciones_view(request):
    direcciones = INSTITUCION.objects.filter(ins_estado='1').order_by('ins_comuna')
    template_name = "Map.html"
    context = {'direcciones': direcciones}
    return render(request,template_name,context)

地图.html

<html>
<head>
<Meta charset="utf-8" />
<title>Add a marker using a place name</title>
<Meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<script src="https://api.mapBox.com/mapBox-gl-js/v2.0.0/mapBox-gl.js"></script>
<link href="https://api.mapBox.com/mapBox-gl-js/v2.0.0/mapBox-gl.css" rel="stylesheet" />
<style>
    body { margin: 0; padding: 0; }
    #map { position: absolute; top: 0; bottom: 0; width: 100%; }
</style>
</head>
<body>
<div id="map"></div>
<script src="https://unpkg.com/es6-promise@4.2.4/dist/es6-promise.auto.min.js"></script>
<script src="https://unpkg.com/@mapBox/mapBox-sdk/umd/mapBox-sdk.min.js"></script>
{% block content %}
{% if direcciones %}
{% for direccion in direcciones %}
<script>
    mapBoxgl.accesstoken = 'pk.eyJ1IjoidmVuZ2Vyc3RlaW4iLCJhIjoiY2toM3A1anR3MDlqeDJzcGZ3bWpvam80YyJ9._vy6lsgCwzYfgkEXnBQ8fw';
var mapBoxClient = mapboxsdk({ accesstoken: mapBoxgl.accesstoken });
mapBoxClient.geocoding
.forwardGeocode({
query: "{{direccion.ins_comuna}},{{direccion.ins_direccion}},Chile",autocomplete: false,limit: 1
})
.send()
.then(function (response) {
if (
response &&
response.body &&
response.body.features &&
response.body.features.length
) {
var feature = response.body.features[0];

var map = new mapBoxgl.Map({
container: 'map',style: 'mapBox://styles/mapBox/streets-v11',center: feature.center,zoom: 10
});

new mapBoxgl.Marker().setLngLat(feature.center).addTo(map);

}
});
</script>
{% endfor %}
{% endif %}
{% endblock %}
</body>
</html>

解决方法

模板系统看起来像 Django 或 Ninja2。

如果你像这样使用 for 模板;

{% for direccion in direcciones %}
<script>
...
</script>
{% endfor %}

这将扩展到下面;

<script>
...
</script>
<script>
...
</script>
<script>
...
</script>

因此结果会被后续脚本覆盖,您只能看到最后的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?