我决定本周我想学习Node.js(我不是程序员)。到目前为止,我一直有很多的乐趣,但我现在卡住了。如何使用Node.js/Express/MongoDB将标记添加到Google地图?
我使用Express创建了一个基本应用程序。假设我有一个路线/位置。我设置了获取请求来呈现相关视图,并找到(使用Mongoose的.find方法)我的位置模型中的所有文档。我知道我可以通过文档以这样的观点:
app.get('/locations', function(req, res) {
Location.find({}, function(err, docs) {
res.render('locations/index', {
title: 'Locations',
user: req.user,
docs: docs
});
});
});
然后我就可以,例如,访问结果中(玉)视图,并通过执行类似一一列举:
if(docs.length)
each location in docs
p #{location.name} is at #{location.coordinates}
我想将所有这些位置(使用与每个“位置”一起存储的坐标)添加到Google地图。我从Google Maps API文档中使用头部中的以下脚本在视图中显示示例地图。
function initialize() {
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
}
var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
title: "Hello World!"
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
我想通标记所在的变量被创建然后设置我可以遍历我的“文档”,并创建和设置一个标记存储在我的数据库中的每个位置。也就是说,我对这个太新了,因为头脑中的脚本无法访问我传递给视图的'文档',所以我似乎无法弄清楚如何去做。
有什么建议吗?在此先感谢,非常感谢。
谢谢你的建议,它的大加赞赏。对不起,花了很长时间才能回来接受,但现在至少已经完成了。我用你的想法,并在包含地图的div的数据属性中附加位置。一旦我浏览了数据并为每个位置创建了一个针,我就删除了数据属性。在那里没有任何敏感的东西,但它有点干净,我仍然在视图上有位置,但是在渲染地图之前创建的数组中。再次感谢! –
太棒了!乐意效劳! – Plato
@Plato如何在地图上添加多个标记?我需要AJAX吗?我使用HTML/EJS而不是玉石。 –