gpt4 book ai didi

javascript - 对于从数据库加载的位置,Google map 标记不显示

转载 作者:行者123 更新时间:2023-12-03 07:30:38 24 4
gpt4 key购买 nike

我正在尝试通过 Node.js 和 mongodb 在我的网站上使用 Google Maps API。我在 Node.js 上有一个 Express 应用程序,可以从 mongodb 获取位置。我已经在我的网站上设置了 map 。但是,它仅显示 Node.js 代码中硬编码的位置的标记。这是来自routes.js的代码

app.get('/website', function(req, res){
website.website(function(events){
res.render('website/index_page.ejs', {events : events});
});
});

index_page.ejs

<!DOCTYPE html> 
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<% include map_head %>
</head>
<body>
<h2>Events</h2>
<ol>
<%events.forEach(function(event){%>
<li><p><%= event %></p></li>
<%});%>
</ol>
<div id="googleMap" style="width:650px;height:700px;"></div>`
</body>
</html>`

还有map_head.ejs

<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize() {
var mapProp = {
center:new google.maps.LatLng(10, 90),
zoom:4,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
events.forEach(function (event) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(Number(event.latitude), Number(event.longitude)),
map: map,
title: "test"
});
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>

最佳答案

事件对象只有服务器及其 ejs 解析器知道。

客户端没有收到您提供的代码中的事件对象。它只接收一个“ol”列表。

您可以使用如下代码将事件对象包含在map_head.ejs中:

var events=<%- JSON.stringify(events); %>;

关于javascript - 对于从数据库加载的位置,Google map 标记不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35811240/

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