我对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
答案 0 :(得分:0)
我在控制器中缺少一行代码。
@polygons = @polygons.to_json