【问题标题】:How to pass json data from the controller to javascript如何将json数据从控制器传递到javascript
【发布时间】:2015-07-10 07:40:48
【问题描述】:

在我的集群表中有集群坐标列名描述, 我直接以 Json 格式存储坐标,如下所示是我的集群表,使用这些坐标我想绘制多个集群(多边形) 在谷歌地图中,​​

    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}]}

我需要绘制多个多边形
但我正在尝试使用

将此 json 放入 rails 控制器

控制器代码

query="select id,description  from clusters;
@result=ActiveRecord::Base.connection.execute(query);

我在这里面临的问题是如何将此@result 传递给javascript 在谷歌地图中绘制多个多边形。 如果将此 json 复制到 js 中的一个变量中,我可以绘制集群,但我面临的问题是如何将此 json 数据从控制器中的数据库读取传递到 rails 中的 javascript

我在 javascript 中的谷歌地图代码如果将 json 硬编码到一个变量中它正在工作,但我需要从数据库中获取这个 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);

【问题讨论】:

    标签: javascript ruby-on-rails json google-maps


    【解决方案1】:

    我建议使用 ajax 加载积分。然后,您可以使用 JSON 输出来呈现操作。可能是:

    render json: @result
    

    其他解决方案:当您的视图中有 googlemaps 代码时,您可以将数据库中的 json 字符串分配给 javascript 变量:

    var json_string = '<%= @results.raw %>';
    

    【讨论】:

    • 感谢您的回复,能否请您解释一下 ajax-load,我比较新鲜,我需要一些关于此问题的 ajax 加载的解释
    猜你喜欢
    • 2021-08-27
    • 2015-11-06
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2015-12-28
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多