不确定问题出在哪里,几个月前我使用 API 的 v3 创建了一个带有自定义标记的谷歌地图。信息窗口当时正在工作。
我一直在将它移植到一个新站点上,无法打开信息窗口,创建点击事件时,js 会在正确的点发出警报,但点击事件没有触发我所能做的就是拖动地图,所以我看了看我做的最后一个网站,现在也不在那里工作。
所以不知道如何解决这个问题,我必须创建信息窗口的代码如下:
markersArray.push(marker);
markersPosArray.push(myLatLng);
// Wrapping the event listener inside an anonymous function
// that we immediately invoke and passes the variable i to.
(function(myData, marker) {
alert('creating listener for: '+marker);
// Creating the event listener. It now has access to the values of
// myData and marker as they were during its creation
google.maps.event.addListener(marker, 'click', function() {
//create thecontent for the infowindow
alert('creating info window');
var content = 'hello there'; //createContent(myData);
infowindow.setContent(content);
infowindow.open(map, marker);
});
})(myData, marker);
也许我不知道的api发生了一些变化?
可以在以下位置看到测试页:http ://www.disposalknowhow.com/locator.php 在定位器中使用以下命令获取结果:
类型:电气/电子 - 项目:计算机 - 半径:100 - 邮政编码:n11hl
我以前做的那个也不起作用现在可以在以下位置看到:http ://www.focus-on-plants.com/locator_iconed.php (可以在表格中使用任何参数)
更新:
回复特雷菲的回答:
信息窗口是在我创建地图时定义的:
var myLatLng = new google.maps.LatLng(51.470, -0.00);
var bounds = new google.maps.LatLngBounds();
var geocoder = new google.maps.Geocoder();
var gotIcons = false;
var iconImageArray = {image:{}, size:{}, sizeX:{}, sizeY:{}, origin:{}, originX:{}, originY:{}, anchorpoint:{}, anchorpointX:{}, anchorpointY:{}};
var iconShadowArray = {image:{}, size:{}, sizeX:{}, sizeY:{}, origin:{}, originX:{}, originY:{}, anchorpoint:{}, anchorpointX:{}, anchorpointY:{}};
var iconShapeArray = {poly:{}, coord:{}};
var myIconArray = {icon:{}, shadow:{}, shape:{}}
var infowindow = new google.maps.InfoWindow();
var markersArray = []; // to store out markers
var markersPosArray = []; // to store lat/lang of markers for zooming function
var markersInfoArray = [];
// MAP OPTIONS
var myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
position: google.maps.ControlPosition.BOTTOM
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.ZOOM_PAN,
position: google.maps.ControlPosition.TOP_RIGHT
},
scaleControl: true,
scaleControlOptions: {
position: google.maps.ControlPosition.TOP_LEFT
}
};//end map options
var map = new google.maps.Map(document.getElementById("loc_map"), myOptions);