我一直在使用 gmaps4 rails 来构建一个站点,而 gem 是我项目的超级补充。但是,对于嵌套模型和多边形,我遇到了一些麻烦。
我也想做这样的事情: Gmaps4rails custom info window with javascript content
楷模:
class Zone < ActiveRecord::Base
acts_as_gmappable
has_many :points, :as => :pointable
accepts_nested_attributes_for :points
def self.create_with_points(name, points)
zone = Zone.create(:name => name)
points.map { |point| zone.points.create(:latitude => point[0],
:longitude => point[1]) }
zone
end
def as_polygon_data
points.collect { |point| { "lat" => point.latitude.to_f,
"lng" => point.longitude.to_f,
"strokeColor" => "#EBAC2A",
"strokeOpacity" => 0.65,
"strokeWeight" => 2,
"fillColor" => "#606F81",
"fillOpacity" => 0.4
} }
end
def self.all_as_polygon_data
Zone.all.collect { |zone| zone.as_polygon_data }
end
end
class Point < ActiveRecord::Base
belongs_to :pointable, :polymorphic => :true
acts_as_gmappable
end
要调用控制器中的区域,我必须使用 to_json 而不是 to_gmaps4rails 调用它:
@polygon_json = Zone.all_as_polygon_data.to_json
多边形完美地呈现在地图上,但我无法向它们添加信息窗口。我在上述帖子中尝试了点击事件回调,但它对我不起作用。
我还想知道如何获取这些多边形的句柄,以便使用复选框隐藏它们。
感谢您的时间。希望我提供了足够的信息。