我添加了将谷歌地图加载到我的页面所需的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 %>
你可以看到我需要在加载地图时传递参数纬度和经度。 正如我在标题中所说,我想将这些javascripts放入资产管道中,是否有可能如何?感谢
答案 0 :(得分:13)
您不应在Google资源管道生成的application.js
文件中包含Google Maps API。相反,它应该作为单独的<script>
标记包含在 application.js
的{{1}}标记之前。
然后,您可以将<script>
方法添加到资产管道中包含的任何文件中,包括initialize()
本身。
您可能希望对application.js
方法提出@lat
和@lon
个参数,但这些参数可以在您的网页initialize
中定义。例如,你可能有
<head>
并在您的<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>
文件中可能有
application.js
答案 1 :(得分:0)
这并没有回答你的问题,但有一个谷歌地图宝石对我来说非常好用:https://github.com/apneadiving/Google-Maps-for-Rails