Javascript 它';谷歌地图';资产管道(Rails)中的Java脚本?
我添加了将google地图加载到我的页面所需的javascript: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
<% 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结合使用:)这应该作为对问题的评论发布——正如您自己所说,这不是答案。