我正在尝试使用 Google Maps API 在我的地图上添加标记。我在脚本标签中的 application.html.erb 中调用 addMarker 函数,但我无法弄清楚为什么当我的 map.js 中存在该函数时未定义该函数。
看看下面的代码,我确信这是显而易见的,但我是 web 开发的新手,并且已经在网上搜索了很长时间,看不出我做错了什么。
非常感谢!
这是我的map.js......
$(document).ready(function(){
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
}
function addMarker(latitude, longitude, title) {
var marker = new google.maps.Marker({
position:new google.maps.LatLng(latitude, longitude),
map : map,
title : title
});
}
google.maps.event.addDomListener(window, 'load', initialize);
});
这是我的 application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>EventsMapper</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<!-- <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> -->
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC74gnSe7p17ulcZUzgPJHxYurGg2bjRYg&sensor=false">
</script>
<script type="text/javascript">
$(function() {
// initMap();
//add here var items that converts ToDoItems to JSON, take out the var to make to global
<% Yoga.all.each do |item| %>
addMarker(<%=item.latitude%>, <%=item.longitude%>, '<%=item.name%>');
<%end%>
});
</script>
</head>
<body>
<!-- <input type="text" id="autocomplete"> -->
<div id='googlemap'>
<div id="map-canvas">
</div>
</div>
<%= yield %>
</body>
</html>