Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 它';谷歌地图';资产管道(Rails)中的Java脚本?_Javascript_Ruby On Rails_Asset Pipeline - Fatal编程技术网

Javascript 它';谷歌地图';资产管道(Rails)中的Java脚本?

Javascript 它';谷歌地图';资产管道(Rails)中的Java脚本?,javascript,ruby-on-rails,asset-pipeline,Javascript,Ruby On Rails,Asset Pipeline,我添加了将google地图加载到我的页面所需的javascript: <% content_for :head do %> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false"> </script> <script type="text/javascript"> function initi

我添加了将google地图加载到我的页面所需的javascript:

<% content_for :head do %>

<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false">
</script>
<script type="text/javascript">
function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(<%=@lat%>, <%=@lon%>),
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
}
</script>

<% end %>

函数初始化(){
变量映射选项={
中心:新google.maps.LatLng(,),
缩放:5,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map_canvas”),
地图选项);
}
如您所见,在加载地图时,我需要传递参数纬度和经度。
正如我在标题中所说的,我想将这些Javascript放入资产管道,如果是的话,有可能吗?谢谢

您不应该在生成的
application.js
文件中包含Google Maps API。相反,它应该作为一个单独的
标记包含在
应用程序.js的
标记之前

然后,您可以将
initialize()
方法添加到资产管道中包含的任何文件中,包括
application.js
本身

您可能需要为
initialize
方法设置
@lat
@lon
参数,这样就可以在页面
中定义它们。例如,您可能有

<head>
  <script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&sensor=false"></script>
  <%= javascript_include_tag "application" %>

  <script>
    var latitude  = <%= @lat %>;
    var longitude = <%= @lon %>;
  </script>
</head>
function initialize(latitude, longitude) {
  var mapOptions = {
      center: new google.maps.LatLng(latitude, longitude),
      zoom: 5,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"),
      mapOptions);
}

$(function() {
  initialize(latitude, longitude);
});

这并不能回答您的问题,但有一个谷歌地图gem对我来说非常有用:

谢谢,我要说的是,这个实现允许我将谷歌地图与TurboLink结合使用:)这应该作为对问题的评论发布——正如您自己所说,这不是答案。