【问题标题】:gmaps4rails showing blank map with map controlsgmaps4rails 显示带有地图控件的空白地图
【发布时间】:2011-08-18 23:46:36
【问题描述】:

试图让 gmaps4rails 在 rails 3 项目中工作。我根据演示进行了所有设置,但我的视图仅在地图应位于的灰色背景上显示地图控件。在 chrome 和 safari 中尝试过。有什么想法吗?

在模型中:

acts_as_gmappable :process_geocoding => false

def gmaps4rails_address
  "#{address}, #{city}, #{state} #{zip}"
end

在控制器中:

@venues = Venue.limit(5)
@venue_map_data = @venues.to_gmaps4rails

在视图中:

<%= gmaps4rails(@venue_map_data) %>

在application.html.erb布局中:

<!DOCTYPE html>
<html>
<head>
  <title>MapTest</title>
  <%= stylesheet_link_tag :all %>
  <%= javascript_include_tag :defaults %>
  <%= csrf_meta_tag %>
  <%= yield :head %>
</head>
<body>
   <%= yield %>
   <%= yield :scripts %>
</body>
</html>

Javascript 的东西:

<script src="/javascripts/gmaps4rails.js" type="text/javascript"></script> 
<script type="text/javascript" src='http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer_compiled.js'></script> 
<script type="text/javascript" charset="utf-8"> 
function gmaps4rails_init() {
    Gmaps4Rails.map_options.auto_adjust = true;
    Gmaps4Rails.initialize();
    Gmaps4Rails.markers = [{"longitude": "37.742956", "latitude": "-122.421695"},
           {"longitude": "37.742668", "latitude": "-122.421735"},
           {"longitude": "37.742578", "latitude": "-122.42178"},
           {"longitude": "37.742862", "latitude": "-122.421575"},
           {"longitude": "37.743123", "latitude": "-122.421485"}];
    Gmaps4Rails.create_markers();
    if(typeof gmaps4rails_callback == 'function') { gmaps4rails_callback(); }
}

function gmaps4rails_loadScript() {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://maps.google.com/maps/api/js?sensor=false&libraries=geometry&callback=gmaps4rails_init";
    document.body.appendChild(script);
}

window.onload = gmaps4rails_loadScript;

</script> 

在@venues 中收集的场地数据: 姓名、地址、城市、州、邮编、纬度、经度
Altena 餐厅, 3346 Mission St, San Francisco, CA, 94110, -122.421695, 37.742956
LA Morena Latinoamericana, 3391 Mission St, San Francisco, CA, 94110, -122.421735, 37.742668
太阳海岸 II, 3385 Mission St, San Francisco, CA, 94110, -122.42178, 37.742578
El Amigo Bar, 3355 Mission St, San Francisco, CA, 94110, -122.421575, 37.742862
三千三百俱乐部, 3300 Mission St, San Francisco, CA, 94110, -122.421485, 37.743123

【问题讨论】:

  • 页脚中有 yield :scripts 吗?可以粘贴创建的js吗?
  • 我确实有 yield :scripts 在页脚和 yield :head 在头部。

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


【解决方案1】:

妈的,来来回回看了20分钟才明白……

与宝石无关:看你的坐标:

Gmaps4Rails.markers = [{"longitude": "37.742956", "latitude": "-122.421695"},
       {"longitude": "37.742668", "latitude": "-122.421735"},
       {"longitude": "37.742578", "latitude": "-122.42178"},
       {"longitude": "37.742862", "latitude": "-122.421575"},
       {"longitude": "37.743123", "latitude": "-122.421485"}]

您将纬度放在经度表中,反之亦然。

经度 = [-180, 180]

纬度 = [-90, 90]

【讨论】:

  • 您说得对,先生,这是我使用的单独地理编码库中的一个错误,它交换了纬度/经度。谢谢!顺便说一句,很棒的宝石。