在MapOpenLayer中,我如何使用javascript函数从数据库的值中引入一个列表对象来绘制点?

2024-10-01 19:31:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是,如果这是javascript中映射中的不同变量,我可以绘制一个或多个点,但当我使用{mission\u template}}时,这是数据库中的对象列表,我无法在此迭代

我在javascript中的功能如下:

  function AddMakers(){
     for (var i=0; i<50; i++){
        var x={{mission_template.GPSlongitude}};
        var y={{mission_template.GPSlatitude}};
        var iconFeature = new ol.Feature({
        geometry: new ol.geom.Point(ol.proj.transform([x,y], 'EPSG:4326', 'EPSG:3857')),
       name: 'Marker ' + i
        });
        markers[i]= [x,y];
        vectorSource.addFeature(iconFeature);
      }
  }
 .... rest scripts....

并使用Django和Python进行编程。 我只能在我的模板中进行迭代,但不能在地图中使用该数据进行迭代。 我使用:

 {% for mission_template  in mission_template %}
  ...rows and cols for html...
  {{mission_template.GPSlongitude}}
  {{mission_template.GPSlongitude}}
 {%endfor%}

所有信息都在此变量中

我想在这个变量{mission_template}中用javascript迭代 谢谢

关于^^


Tags: 对象功能数据库列表newforvar绘制
1条回答
网友
1楼 · 发布于 2024-10-01 19:31:39

使用模板循环创建javascript列表,然后使用javascript循环迭代此列表:

var points = [
    {% for mt in mission_template %}
       [{{ mt.GPSlongitude }}, {{ mt.GPSlatitude }}]
       {% if not forloop.last %},{% endif %}
    {% endfor %}
];

for (var i = 0, len = points.length; i < len; i++) {
    var x = points[i][0];
    var y = points[i][1];
    ...
}

相关问题 更多 >

    热门问题