迭代数组数组并将坐标传递给谷歌地图

时间:2016-11-29 15:27:53

标签: ruby-on-rails arrays ruby google-maps

在我的Rails应用程序中,我有谷歌地图,我想根据坐标(纬度,经度)显示引脚。我在user.rb文件中有虚拟数据作为数组,我正在尝试通过它映射并将坐标传递给谷歌地图,但是我遗漏了一些基本的东西,因为如果我手动提供它,一切都有效。那么如何迭代以便在地图上显示坐标?

#user.rb

class User < ApplicationRecord

  COORDINATES = [[51.50853, -0.076132], [51.510357, -0.116773]]

  def self.latitude
    COORDINATES.map do |x|
      x[0] # How to pass coordinates correctly?
    end
  end

  def self.longitude
    COORDINATES.map do |x|
      x[-1] # How to pass coordinates correctly?
    end
  end
end

那是用户控制器索引操作:

def index
  @latitude = User.latitude
  @longitude = User.longitude
end

那是index.html.erb。我在这里提供@latitude和@longitude。

handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers([
  {
    "lat": <%= @latitude %>,
    "lng": <%= @longitude %>
  }
]);
});

1 个答案:

答案 0 :(得分:0)

试试这个:

markers = handler.addMarkers([
  <% User::COORDINATES.each.with_index do |geo,i| %>
  {
    "lat": <%= geo[0] %>,
    "lng": <%= geo[1] %>
  }
  <% if User::COORDINATES[i+1] %>,<% end %>
  <% end %>
]);