2016-05-12 6 views
0

Auf meiner Website habe ich eine Google-Karte, um die Orte zu zeigen, die ich mit Ländermarkierungen auf ihnen gewesen bin. Gibt es eine Möglichkeit, sie in Hyperlinks umzuwandeln, so dass sie, wenn ein Benutzer auf diese Markierungen klickt, sie zu einer Webseite mit den Fotos aus diesem bestimmten Land führen? Hier ist mein Code:Google Maps-Anzeige Hyperlink zu Ländermarker

<div id="map"></div> 
<script> 
function initMap() { 
    var myLatLng = {lat: 51.491217, lng: -0.142822}; 
    var map = new google.maps.Map(document.getElementById('map'), { 
     center: myLatLng, 
     zoom: 1, 
     streetViewControl: false 
    }); 
    var infoWindow = new google.maps.InfoWindow({map: map}); 

    // Try HTML5 geolocation. 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(function(position) { 
     var pos = { 
      lat: position.coords.latitude, 
      lng: position.coords.longitude 
     }; 

     infoWindow.setPosition(pos); 
     infoWindow.setContent('Location found.'); 
     map.setCenter(pos); 
     }, function() { 
     handleLocationError(true, infoWindow, map.getCenter()); 
     }); 
    } else { 
     // Browser doesn't support Geolocation 
     handleLocationError(false, infoWindow, map.getCenter()); 
    } 
      geocoder = new google.maps.Geocoder(); 

    function getCountry(country) { 
     geocoder.geocode({ 'address': country }, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       map.setCenter(results[0].geometry.location); 
       var marker = new google.maps.Marker({ 
        map: map, 
        position: results[0].geometry.location 
       }); 
      } else if (status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {  
     setTimeout(function() { 
      Geocode(address); 
     }, 200); 
     } else { 
       alert("Geocode was not successful for the following reason: " + status); 
      } 
     }); 
    } 
    getCountry('France'); 
    getCountry('Sweden'); 
    getCountry('Croatia'); 
    getCountry('New Zealand'); 
    getCountry('Laos'); 
    getCountry('Vietnam'); 
    getCountry('Tonga'); 
    getCountry('Vanuatu'); 
    getCountry('France'); 
    getCountry('Indonesia'); 
    getCountry('Malaysia'); 
    getCountry('Samoa'); 
    } 



    function handleLocationError(browserHasGeolocation, infoWindow, pos) { 
    infoWindow.setPosition(pos); 
    infoWindow.setContent(browserHasGeolocation ? 
          'Error: The Geolocation service failed.' : 
          'Error: Your browser doesn\'t support geolocation.'); 
    } 
</script> 
<script async defer src="https://maps.googleapis.com/maps/api/js?callback=initMap"></script> 

Antwort

1

Nur einen Ereignis-Listener Ihre Markierungen hinzuzufügen. So etwas wie dies funktionieren würde:

marker.addListener('click', function() { 
    window.location.href = 'http://example.com'; 
}); 

Weitere Beispiele für ein Ereignis-Listener auf Markierungen beziehen sich auf die docs hier: https://developers.google.com/maps/documentation/javascript/markers#animate

+0

Da ich neu bin Karten und Javascript Google, könnte ich bitte ein Full- Code-Implementierung, wie ich nicht weiß, wie und wo es zu setzen? Vielen Dank! – Felix

+0

@Felix setze es direkt nach der Zeile, die du als "Marker" deklarierst – winhowes