ejs文件中脚本标签中的地图标记未显示

时间:2016-12-01 15:25:52

标签: node.js express leaflet ejs

我想要两个标记,一个是用户的当前位置,另一个是我应用中的帖子位置。
用户当前位置的标记绘制在地图上,但不是标记属于帖子位置的标记。
帖子包含纬度和经度对的感兴趣地点的信息。

我用这样的帖子呈现了一个ejs视图:

router.get('/posts/:id', function(req,res) {
  db.post.findOne({
    where: { id: req.params.id}
  }).then(function(post) {
    res.render('posts/post_detail', {post: post})
  });
});

post包含我想要访问的纬度和经度信息,以便在我的传单地图上绘制标记。我将脚本标签放在ejs视图的底部,如下所示:

<script>
  var post = <%- JSON.stringify(post) %>;
  console.log(post.latitude);
  console.log(post.longitude);
  L.marker([post.latitude, post.longitude]).addTo(map);
  console.log(map)
</script>

在控制台上打印出纬度和经度,其值与数据库中的值相同。我在其他地方使用相同的L.marker代码在我的地图上放置标记,它的工作完全正常,但在这种情况下并非如此。我到了 -

  

未捕获的TypeError:t.addLayer不是函数错误&lt; -

我可以通过另一种方式访问​​纬度和经度值以在地图上绘制标记吗?

1 个答案:

答案 0 :(得分:0)

地图未在该脚本标记的范围内定义。