Ale*_*lla 3 javascript google-maps google-maps-api-3
我一直在尝试将信息窗口添加到我的标记中,但由于可用的 SO 答案已经很旧了,所以我被卡住了。我有这个代码对应于 SO 中的这个答案:
var map_center = new google.maps.LatLng(-0.179041, -78.499211);
var map = new google.maps.Map(document.getElementById('mapa_ciudad'),
mapOptions);
marker_objects = [];
for (i = 0; i < markers.length; i++){
marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[i][1], markers[i][2]),
map : map,
title: markers[i][0]
});
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker, "click", function(marker){
// !!! PROBLEM HERE
return function(){
var content = [marker.title];
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker);
marker_objects.push(marker);
}
function AutoCenter(){
var bounds = new google.maps.LatLngBounds();
$.each(marker_objects, function(index, marker){
bounds.extend(marker.position)
});
map.fitBounds(bounds);
}
AutoCenter();
Run Code Online (Sandbox Code Playgroud)
我收到错误 TypeError: google.maps.event.addListener(...) is not a function
您在创建事件侦听器函数的匿名函数的定义中有错误。您的代码:
google.maps.event.addListener(marker, "click", function(marker){
// !!! PROBLEM HERE
return function(){
var content = [marker.title];
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker);
Run Code Online (Sandbox Code Playgroud)
应该是(注意额外的一组括号):
google.maps.event.addListener(marker, "click", (function(marker) {
return function(evt) {
var content = marker.getTitle();
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker));
Run Code Online (Sandbox Code Playgroud)
代码片段:
google.maps.event.addListener(marker, "click", function(marker){
// !!! PROBLEM HERE
return function(){
var content = [marker.title];
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker);
Run Code Online (Sandbox Code Playgroud)
google.maps.event.addListener(marker, "click", (function(marker) {
return function(evt) {
var content = marker.getTitle();
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker));
Run Code Online (Sandbox Code Playgroud)
function initialize() {
var map_center = new google.maps.LatLng(-0.179041, -78.499211);
var map = new google.maps.Map(document.getElementById('mapa_ciudad'), {
zoom: 4,
center: map_center
});
marker_objects = [];
for (i = 0; i < markers.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(markers[i][1], markers[i][2]),
map: map,
title: markers[i][0]
});
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker, "click", (function(marker) {
return function(evt) {
var content = marker.getTitle();
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker));
marker_objects.push(marker);
}
function AutoCenter() {
var bounds = new google.maps.LatLngBounds();
$.each(marker_objects, function(index, marker) {
bounds.extend(marker.position)
});
map.fitBounds(bounds);
}
AutoCenter();
}
google.maps.event.addDomListener(window, "load", initialize);
var markers = [
['mark 1', 33.890542, 151.274856, 'address 1'],
['mark 2', 33.923036, 151.259052, 'address 2'],
['mark 3', 34.028249, 151.157507, 'address 3'],
['mark 4', 33.800101, 151.287478, 'address 4'],
['mark 5', 33.950198, 151.259302, 'address 5']
];Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12923 次 |
| 最近记录: |