Gmaps4rails Polygon

时间:2013-04-08 01:07:21

标签: google-maps-api-3 ruby-on-rails-3.2 gmaps4rails

我对rails非常陌生,并且不知道如何在gmaps4rails中生成用于创建多边形的正确javascript。我能够使用标记显示谷歌地图,但是如https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Polygons所示,如何生成匹配的json代码则丢失了。我想通过rails生成所有内容,而不是硬编码任何javascript。

下面是我的测试代码,用于仅绘制location_data模型中的第一个多边形。 纬度和经度属性是序列化的。

控制器

class HomeController < ApplicationController
skip_load_and_authorize_resource
 skip_before_filter :authenticate_user!
def index

LocationData.find_each do |location|

@polygons = Array.new(LocationData.count,Array.new)

location.latitude.each_index do |index|
@polygons[0] << { :lat => location.latitude[index], :lng =>location.longitude[index]}
end


    end
#@polygons.to_json

respond_to do |format|
format.html
format.json { render json: @polygons }   

end
end
end

生成的Javascript看起来像

Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.initialize();
Gmaps.map.polygons = [[{"lat"=>42.31276, "lng"=>-71.03645}, {"lat"=>42.35653, "lng"=>-71.06754}, {"lat"=>42.45453, "lng"=>-71.7856}]];
Gmaps.map.polygons_conf.fillColor = "#000";
Gmaps.map.create_polygons();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
Gmaps.oldOnload = window.onload;
 window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };

查看

<%= gmaps({
       "polygons"    => { "data" => @polygons    , "options" => { "fillColor" => "#000" } }
     })
 %>

将它与维基上的代码进行比较我注意到javascript有=&gt;因为一些奇怪的原因。

更新

我的代码中缺少一行

@polygons = @polygons.to_json

1 个答案:

答案 0 :(得分:0)

我在控制器中缺少一行代码。

@polygons = @polygons.to_json