Symfony UX Map单地图多标记点实现失败及报错求助
Symfony UX Map 单地图多标记点实现方案
问题分析
你当前的代码在signalements循环中重复调用ux_map,导致每个标记点对应一个独立地图;后续尝试在ux_map函数参数内部构建标记数组,违反了Twig语法规则,因此抛出语法错误。
正确实现代码
需要先在ux_map函数外部完成标记点数组的构建,再将数组传递给markers参数:
<div class="map"> {# 先构建所有标记点的数组 #} {% set markers = [] %} {% for signalement in signalements %} {% set markers = markers|merge([{ position: [signalement.structure.latitude, signalement.structure.longitude], title: signalement.structure.nom }]) %} {% endfor %} {# 调用ux_map,传入构建好的标记数组 #} {{ ux_map( center: [47.65, 1.50], zoom: 7, markers: markers, attributes: { class: 'mapimap', style: 'height: 35rem; width: 30rem', } ) }} </div>
原理说明
- 通过Twig的
merge过滤器,在循环中逐个将每个signalement对应的标记对象合并到markers数组中; - 最后将完整的
markers数组传递给ux_map组件,组件会在同一个地图上渲染所有标记点。
内容的提问来源于stack exchange,提问作者d3LTa7
相关产品推荐
相关产品推荐

