google maps api v3 маркер не работает - PullRequest
0 голосов
/ 21 марта 2011

не уверен, в чем проблема с этим, я создал карту Google с пользовательскими маркерами несколько месяцев назад, используя v3 API. тогда информационные окна работали.

я портировал его на новый сайт и не могу открыть информационное окно, js предупреждает в нужной точке при создании события click, но событие click не запускает все, что я могу сделать, это перетащить карту, поэтому я посмотрел последний сайт, который я сделал, и там он сейчас тоже не работает.

, поэтому не уверен, как это исправить, код, который я должен создать для информационного окна, выглядит следующим образом:

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 (можете использовать любые параметры здесь в форме)

UPDATE:

в ответ на Treffys ответ:

Информационное окно определяется при создании карты:

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);

1 Ответ

1 голос
/ 21 марта 2011

Я использую следующий код для отображения информационного сообщения:

var info_pane = new google.maps.InfoWindow({
                    content: info,
                    disableAutoPan: false,
                    maxWidth: '300px'
                });
info_pane.open(map, marker);
...