如何将json数据从控制器传递到javascript
在我的群集表中,有群集坐标列名说明, 我直接以Json格式存储坐标,如下是我的集群表,使用这些坐标我想要绘制多个集群多边形 在谷歌地图上如何将json数据从控制器传递到javascript,javascript,ruby-on-rails,json,google-maps,Javascript,Ruby On Rails,Json,Google Maps,在我的群集表中,有群集坐标列名说明, 我直接以Json格式存储坐标,如下是我的集群表,使用这些坐标我想要绘制多个集群多边形 在谷歌地图上 id | description
id | description
----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 | {"points":[{"lat":14.232437996569354,"lng":76.409912109375},{"lat":13.336175186494927,"lng":77.1185302734375},{"lat":12.961735843534294,"lng":77.596435546875},{"lat":12.511665400971031,"lng":76.904296875}]}
2 | {"points":[{"lat":14.232437996569354,"lng":76.409912109375}, {"lat":13.336175186494927,"lng":77.1185302734375},{"lat":12.961735843534294,"lng":77.596435546875},{"lat":12.511665400971031,"lng":76.904296875}]}
我需要画多个多边形
但我正在尝试使用
控制器代码
我在这里面临的问题是如何将@result传递给javascript
在谷歌地图中绘制多个多边形。
若将这个json复制到js中的一个变量中,我就能够绘制集群,但我面临的问题是如何将这个json数据从控制器中的数据库读取传递到rails中的javascript
如果将json硬编码为一个变量,那么我的google map代码将使用javascript,但我需要从数据库获取此json,如何将带有id的json从控制器传递到javascript
var obj=i need json to store here //this how to fetch json from controller to js
polygons = [];
for(var i = 0; i < obj.length; ++i){
//do something with obj[i]
for(var ind in obj[i]) {
console.log(ind);
var arr = new google.maps.MVCArray();
for(var vals in obj[i][ind]){
console.log(vals, obj[i][ind][vals].lat );
arr.push( new google.maps.LatLng( obj[i][ind][vals].lat, obj[i][ind][vals].lng ) );
}
}
polygons.push(arr);
}
polygons.forEach( function(polyPath) {
var polygon = new google.maps.Polygon({
paths: polyPath,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35,
map: map
});
});
}
google.maps.event.addDomListener(window, 'load', initialize);
我建议使用ajax加载点。然后您可以使用JSON输出来呈现动作。它可以是:
render json: @result
其他解决方案:当您的视图中有googlemaps代码时,您可以将数据库中的json字符串分配给javascript变量:
var json_string = '<%= @results.raw %>';
谢谢你的回复,你能解释一下ajax负载吗?我比较新鲜,我需要一些关于ajax负载的解释来解决这个问题
var json_string = '<%= @results.raw %>';