从数据库加载的位置的谷歌地图标记未显示
Google Map markers not showing for locations loaded from database
我正在尝试使用带有Node.js和mongodb的网站使用Google Maps API。我在 Node 上有一个快速应用程序.js它从 mongodb 获取位置。我已经在我的网站上设置了地图。但是,它仅显示 Node.js 代码中硬编码的位置的标记。这是来自路由的代码段.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"列表。
您可以使用如下代码将 events 对象包含在 map_head.ejs 中:
var events=<%- JSON.stringify(events); %>;
相关文章:
- 我希望只有在我滚动页面后才能显示我的返回页首图标
- 谷歌地图API-显示具有不同图标的标记
- 如何制作Yii框架的linkHtmlOptions's的CGridView显示为图像图标,单击时会触发javas
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- Google Places API显示雷达搜索中的位置图标/图像
- Highcharts-在单个值上显示标记图标
- 在asp.net页面中显示javascript执行过程中的加载图标
- 如何从网站获得apple touch图标,如果没有;不存在,则显示收藏夹
- OpenLayers.Layer.Text在0,0处显示图标
- Jdewit Timepicker 在文本和图标单击上显示小部件
- 向上滑动操作后,字体真棒图标不显示
- 如何在 JStree 3 中显示叶节点的类似文件的图标
- 肉桂:修改“显示桌面”(+其他系统小程序)图标
- 更改 JWPlayer 显示图标(播放按钮)的不透明度
- 我想用js保持显示社交图标
- 页面加载时显示一个随机图标
- 希望在不创建新类的情况下将警告图标显示在正确的位置
- 选择语言绘制地图& &;用图标显示几个区域
- JqueryUI图标显示在新行
- 检查成功图标显示后做一些事情