请帮我解决这个问题。
我有数据库存储谷歌地图(lat,lng)的一些点,我想在谷歌地图中显示它们
这是我的控制器
@location = SharedInfo.all
这是视图中的javascript
function DisplayTraficCir(loca) {
for (var location in loca){
var myLatLng = new google.maps.LatLng(location.latitude,location.longitude)
var marker = new google.maps.Marker({
position: myLatLng,
map: map
});
}
// map.setCenter(location);
}
我通过以下方式调用了这个函数:
DisplayTraficCir(<%@location%>);
我不知道为什么它不起作用。也许它根本不会在“for”语句中执行代码块 谢谢你的帮助。
答案 0 :(得分:0)
Maps API不是Ruby API。它是一个JavaScript API。
你说你正在调用这样的JavaScript函数:
DisplayTraficCir(<%@location%>);
但事实并非如此。这是您的 Ruby 模板代码,而不是您的JavaScript代码。
您正尝试一次调试两个问题。相反,一次调试一个问题:
如何使Maps API与JavaScript,CSS和HTML配合使用。 Ruby,Rails和您的服务器代码完全不涉及此
。一旦您使用了JavaScript,CSS和HTML代码,如何从Rails生成该代码。
换句话说,要调试JavaScript代码,请查看 JavaScript 代码,而不是生成它的Ruby代码。
您可以在任何浏览器中使用开发人员工具调试JavaScript代码。 Chrome特别好。一件容易的事就是在有问题的函数调用之前插入此语句:
debugger;
然后在打开Chrome开发者工具的情况下加载您的页面,它将在该行的JavaScript调试器中停止。然后你可以查看变量,查看浏览器看到的实际代码,逐行跟踪代码,以及各种类似的好事。
执行此操作时,请忘记完全关于您的Rails代码。在这一点上,它根本不相关。浏览器永远不会看到该代码,它只能看到您的Ruby代码生成的生成的 。
将此调试任务分成两个单独的部分,这样可以更容易地弄清楚发生了什么。