0

我正在尝试使用 gmaps4rails。当我添加记录时,客户端表正在填充纬度和经度。但是,地图没有显示任何内容。

从浏览器控制台,我收到错误:第二行的“Gmaps is not defined”:

<script type="text/javascript">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {

我在我的 application.js 中有包含咖啡文件和这些行的 javascript gmaps4rails 文件夹:

//= require gmaps4rails/gmaps4rails.base
//= require gmaps4rails/gmaps4rails.bing
//= require gmaps4rails/gmaps4rails.googlemaps
//= require gmaps4rails/gmaps4rails.mapquest
//= require gmaps4rails/gmaps4rails.openlayers

我的视图代码是:

  <ul id="markers_list">
  <%= gmaps("markers" => {"data" => @json, "options" => {"list_container" => "markers_list" } }) %>
  </ul>

我的模型有:

 acts_as_gmappable

 def gmaps4rails_address
  "#{address1}, #{city}, #{state}, #{zipcode}"
 end

 def gmaps4rails_infowindow
   "#{client_name}, #{address1}, #{city}, #{state}, #{zipcode}"
 end

 def gmaps4rails_sidebar
   "<span>#{client_name}</span>"
 end

有任何想法吗?

谢谢!

更新:我一直在查看浏览器控制台。

这是在视图页面中,我试图在其中显示 Google 地图:

<footer>
<script src="//maps.google.com/maps/api/js?v=3.8&amp;sensor=false&amp;client=&amp;key=&amp;libraries=geometry&amp;language=&amp;hl=&amp;region=" type="text/javascript"></script>
<script src="http://maps.gstatic.com/cat_js/intl/en_us/mapfiles/api-3/8/12/%7Bmain,geometry%7D.js" type="text/javascript"></script>

<script type="text/javascript">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.initialize();
Gmaps.map.markers = [{"description":"Salt Lake County Headquarters, 2001    South State Street, Salt Lake City, UT, 84114","sidebar":"<span>Salt Lake County Headquarters</span>","lat":40.7267176,"lng":-111.8881423}, 
...(more data points right here)
Gmaps.oldOnload = window.onload;
window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };

</footer>

我很确定在前 2 个脚本 src= 之后,还应该有:

<script src="/javascripts/gmaps4rails/gmaps4rails.base.js?1355589475" type="text/javascript"></script>
<script src="/javascripts/gmaps4rails/gmaps4rails.googlemaps.js?1355589475" type="text/javascript"></script>

但是,这些最终会在页面的下方。在我看来,在执行 gmap 之前没有加载 2 个脚本。所以,我得到 gmaps is not defined 错误。

有任何想法吗?谢谢!

4

2 回答 2

1

那么,为什么要将地图渲染到markers_list 中呢?

<!-- render your map here -->
<%= gmaps("markers" => {"data" => @json, "options" => {"list_container" => "markers_list" } }) %>
<!-- and here you render the markers_list -->
<ul id="markers_list"></ul>

你舒尔包括<%= yield :scripts %>

于 2013-06-04T14:46:43.383 回答
0

终于想通了。以下代码行在我的布局页脚中:

  <%= stylesheet_link_tag "application", :media => "all" %>

将其移至标题,Gmaps4rails 开始工作。

于 2012-12-28T15:36:47.703 回答