无法添加标记,可能非常简单,但我对此不熟悉。感谢。
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?&sensor=true"></script>
<script type="text/javascript">
function addMarker() {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-34.397, 150.644),
title:"Hello World!"
});
}
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);
}
google.maps.event.addDomListener(window, 'load', initialize);
$(document).ready(function() {
addMarker();
})
</script>
答案 0 :(得分:3)
两个问题,您需要设置标记的地图变量。您的map变量是initialize函数的本地变量。
在初始化地图后,从初始化函数(地图存在的地方)调用addMarker函数。
function addMarker(map) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-34.397, 150.644),
map:map,
title:"Hello World!"
});
}
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);
addMarker(map);
}
答案 1 :(得分:1)
您必须在标记构造函数中设置map属性或在新对象上调用setMap:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-34.397, 150.644),
map: map, //make your map object global!
title:"Hello World!"
});
或
marker.setMap(map);
https://developers.google.com/maps/documentation/javascript/reference#Marker
编辑: 关于制作地图对象全局的评论显然被忽略了,所以这里是:
map对象应该是全局的,不仅仅是为了解决这个问题,而且你需要在脚本中的多个函数中使用它