Я новичок в рельсах и понятия не имею, как сгенерировать правильный javascript для создания многоугольников в gmaps4rails. Мне удалось отобразить карты Google с маркерами, но я не понимаю, как сгенерировать соответствующий код json, как показано в https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Polygons. Я хотел бы генерировать все через рельсы, а не жестко кодировать какой-либо 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 по какой-то странной причине есть =>.
Обновлять
В моем коде отсутствовала строчка
@polygons = @polygons.to_json