Google maps API v3未正确显示位置

时间:2013-11-03 10:15:27

标签: javascript api google-maps google-maps-api-3

我正在尝试应用Google Maps API v.3,它在Ruby on Rails应用中按纬度和经度显示用户的位置。但是,当我访问一个地图应该出现的页面时,我有空白的div,直到我用它刷新页面。然后地图正确显示。这是我用的脚本。

(function() {
  $(document).ready(function() {
    var map, mapOptions, marker, myLatlng;
    myLatlng = new google.maps.LatLng($("p#latitude").html(), $("p#longitude").html());
    mapOptions = {
      zoom: 16,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    return marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: "Ahoy!"
    });
  });

我还包括<script src="http://maps.google.com/maps/api/js?sensor=false" style=""></script><script src="http://maps.gstatic.com/intl/en_us/mapfiles/api-3/14/11/main.js" type="text/javascript"></script>

可能是什么问题?

我从Gemfile中移除了gem turbolink并删除了“需要turbolinks&#39;来自application.js,现在它正常工作。

1 个答案:

答案 0 :(得分:0)

你好像已经回答了你自己的问题,但是万一其他人看一下:当你使用turbolinks时,在页面之间不会发生document.ready--实际上,turbolinks将你的整个应用程序视为一个页面。 / p>

你的问题有两个解决方案:一个,摆脱你所做的turbolinks;或者,将js附加到特定的turbolink事件,例如page:load。