2013-08-12 3 views
1

У меня проблема с infowindow. Я создаю маркер, когда я нажимаю на карту, но я хочу также показать infowindow. Этот код не работает с этой частью:Google Maps API v3-маркер при щелчке с инфо-окном

google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map, marker); 
}); 

Вот код ниже .. Спасибо за помощь

var pridat; 
var map; 

function initialize() { 
    var locc = new google.maps.LatLng(49.938682,17.903331); 
    var mapOptions = { 
     zoom: 14, 
     center: locc, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
    directionsDisplay.setMap(map); 

    var contentwindow = '<div>your point</div>' 
    var infowindow = new google.maps.InfoWindow({ 
     content: contentwindow 
    }); 

    // IF I REMOVE THIS PART -> IT WORKS, BUT WITHOUT INFOWINDOW 
    google.maps.event.addListener(marker, 'click', function(){ 
     infowindow.open(map, marker); 
    }); 
    // END OF PART 

    google.maps.event.addListener(map, 'rightclick', function(event) { 
     placeMarker(event.latLng); 
    }); 
} 

function placeMarker(location) { 
    if (marker) { 
     marker.setPosition(location); 
    } else { 
     marker = new google.maps.Marker({ 
      position: location, 
      map: map, 
      title: 'My point', 
      draggable: true, 
     }); 
    } 
} 

ответ

3

Вы должны смотреть на яваскрипт ошибок, когда он не работает. Вы пытаетесь использовать «маркер» до его существования. Если вы переместите прослушиватель «click» для маркера в функцию placeMarker, где он существует, и сделайте infowindow доступным по всему миру, он должен работать. Код, который вы отправили, не помещает никаких маркеров на карту.

var pridat; 
var map; 
var marker = null; 
var infowindow = null; 
function initialize() { 
var locc = new google.maps.LatLng(49.938682,17.903331); 

var mapOptions = { 
    zoom: 14, 
    center: locc, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
        } 

map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
directionsDisplay.setMap(map); 

var contentwindow = '<div>your point</div>' 
infowindow = new google.maps.InfoWindow({ 
    content: contentwindow 
}); 

google.maps.event.addListener(map, 'rightclick', function(event) { 
placeMarker(event.latLng); 
}); 

} 

function placeMarker(location) { 
if (marker) { 
    marker.setPosition(location); 
} else { 
marker = new google.maps.Marker({ 
     position: location, 
     map: map, 
     title: 'My point', 
     draggable: true, 
    }); 
    // IF I REMOVE THIS PART -> IT WORKS, BUT WITHOUT INFOWINDOW 
    google.maps.event.addListener(marker, 'click', function(){ 
     infowindow.open(map, marker); 
    }); 
} 
} 

working example

+0

Спасибо большое, у поможет мне много ... но где я могу найти ошибки JS в браузере Google Chrome. Я новичок в JS, спасибо ... – user2675605

+1

Shift-Ctrl-J (или Инструменты: Javascript Console) – geocodezip