0

不确定问题出在哪里,几个月前我使用 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);
4

1 回答 1

1

我正在使用以下代码来显示信息气泡:

var info_pane = new google.maps.InfoWindow({
                    content: info,
                    disableAutoPan: false,
                    maxWidth: '300px'
                });
info_pane.open(map, marker);
于 2011-03-21T11:12:00.777 回答