2017-04-04 3 views
0

Google Karte wird nicht geladen, wenn sie auf localhost läuft, aber es funktioniert gut, wenn sie direkt von der Festplatte läuft.Wie kann ich dieses Problem beheben? Ich möchte die Entfernung und Richtung zwischen Quelle und Ziel finden.Die HTML-Seite wird korrekt geladen, aber es passiert nichts beim Klicken auf Route abrufen.Google Karte wird nicht geladen

<DOCTYPE html> 
<head> 
<title></title> 
<style type="text/css"> 
    body 
    { 
     font-family: Arial; 
     font-size: 10pt; 
    } 
</style> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js? sensor=false&libraries=places"></script> 
<script type="text/javascript"> 
    var source, destination; 
    var directionsDisplay; 
    var directionsService = new google.maps.DirectionsService(); 
    google.maps.event.addDomListener(window, 'load', function() { 
     new google.maps.places.SearchBox(document.getElementById('txtSource')); 
     new google.maps.places.SearchBox(document.getElementById('txtDestination')); 
     directionsDisplay = new google.maps.DirectionsRenderer({ 'draggable': true }); 
    }); 

    function GetRoute() { 
     var mumbai = new google.maps.LatLng(18.9750, 72.8258); 
     var mapOptions = { 
      zoom: 7, 
      center: mumbai 
     }; 
     map = new google.maps.Map(document.getElementById('dvMap'), mapOptions); 
     directionsDisplay.setMap(map); 
     directionsDisplay.setPanel(document.getElementById('dvPanel')); 

     //DIRECTIONS AND ROUTE// 
     source = document.getElementById("txtSource").value; 
     destination = document.getElementById("txtDestination").value; 

     var request = { 
      origin: source, 
      destination: destination, 
      travelMode: google.maps.TravelMode.DRIVING 
     }; 
     directionsService.route(request, function (response, status) { 
      if (status == google.maps.DirectionsStatus.OK) { 
       directionsDisplay.setDirections(response); 
      } 
     }); 

     //DISTANCE AND DURATION// 
     var service = new google.maps.DistanceMatrixService(); 
     service.getDistanceMatrix({ 
      origins: [source], 
      destinations: [destination], 
      travelMode: google.maps.TravelMode.DRIVING, 
      unitSystem: google.maps.UnitSystem.METRIC, 
      avoidHighways: false, 
      avoidTolls: false 
     }, function (response, status) { 
      if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") { 
       var distance = response.rows[0].elements[0].distance.text; 
       var duration = response.rows[0].elements[0].duration.text; 
       var dvDistance = document.getElementById("dvDistance"); 
       dvDistance.innerHTML = ""; 
       dvDistance.innerHTML += "Distance: " + distance + "<br />"; 
       dvDistance.innerHTML += "Duration:" + duration; 

      } else { 
       alert("Unable to find the distance via road."); 
      } 
     }); 
    } 
</script> 
</head> 
<body> 

<table border="0" cellpadding="0" cellspacing="3"> 
    <tr> 
     <td colspan="2"> 
      Source: 
      <input type="text" id="txtSource" value="Bandra, Mumbai, India" style="width: 200px" /> 
      &nbsp; Destination: 
      <input type="text" id="txtDestination" value="Andheri, Mumbai, India" style="width: 200px" /> 
      <br /> 
      <input type="button" value="Get Route" onclick="GetRoute()" /> 
      <hr /> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2"> 
      <div id="dvDistance"> 
      </div> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <div id="dvMap" style="width: 500px; height: 500px"> 
      </div> 
     </td> 
     <td> 
      <div id="dvPanel" style="width: 500px; height: 500px"> 
      </div> 
     </td> 
    </tr> 
</table> 
<br /> 
</body> 
</html> 



` 
+1

Was meinst du mit 'nicht geladen'? Was sagt die Konsole deines Browsers? – creimers

Antwort

0

Problem: Sie haben hier google map api Schlüssel hinzufügen google map zuzugreifen.

Lösung:: das arbeitet mit meinem API-Schlüssel, bitte erzeugen Sie Ihr eigenes und ersetzen Sie mit mir.

siehe Anweisung: Get your api key here!!

<DOCTYPE html> 
    <head> 
    <title></title> 
    <style type="text/css"> 
     body 
     { 
      font-family: Arial; 
      font-size: 10pt; 
     } 
    </style> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js? sensor=false&libraries=places"></script> 
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBgeepqF19Lq0I2jhEWj88uafs55jmnFso&libraries=places&callback=GetRoute" async defer></script> 

    <script type="text/javascript"> 
     var source, destination; 
     var directionsDisplay; 
     var directionsService = new google.maps.DirectionsService(); 
     google.maps.event.addDomListener(window, 'load', function() { 
      new google.maps.places.SearchBox(document.getElementById('txtSource')); 
      new google.maps.places.SearchBox(document.getElementById('txtDestination')); 
      directionsDisplay = new google.maps.DirectionsRenderer({ 'draggable': true }); 
     }); 

     function GetRoute() { 
      var mumbai = new google.maps.LatLng(18.9750, 72.8258); 
      var mapOptions = { 
       zoom: 7, 
       center: mumbai 
      }; 
      map = new google.maps.Map(document.getElementById('dvMap'), mapOptions); 
      directionsDisplay.setMap(map); 
      directionsDisplay.setPanel(document.getElementById('dvPanel')); 

      //DIRECTIONS AND ROUTE// 
      source = document.getElementById("txtSource").value; 
      destination = document.getElementById("txtDestination").value; 

      var request = { 
       origin: source, 
       destination: destination, 
       travelMode: google.maps.TravelMode.DRIVING 
      }; 
      directionsService.route(request, function (response, status) { 
       if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(response); 
       } 
      }); 

      //DISTANCE AND DURATION// 
      var service = new google.maps.DistanceMatrixService(); 
      service.getDistanceMatrix({ 
       origins: [source], 
       destinations: [destination], 
       travelMode: google.maps.TravelMode.DRIVING, 
       unitSystem: google.maps.UnitSystem.METRIC, 
       avoidHighways: false, 
       avoidTolls: false 
      }, function (response, status) { 
       if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") { 
        var distance = response.rows[0].elements[0].distance.text; 
        var duration = response.rows[0].elements[0].duration.text; 
        var dvDistance = document.getElementById("dvDistance"); 
        dvDistance.innerHTML = ""; 
        dvDistance.innerHTML += "Distance: " + distance + "<br />"; 
        dvDistance.innerHTML += "Duration:" + duration; 

       } else { 
        alert("Unable to find the distance via road."); 
       } 
      }); 
     } 
    </script> 
    </head> 
    <body> 

    <table border="0" cellpadding="0" cellspacing="3"> 
     <tr> 
      <td colspan="2"> 
       Source: 
       <input type="text" id="txtSource" value="Bandra, Mumbai, India" style="width: 200px" /> 
       &nbsp; Destination: 
       <input type="text" id="txtDestination" value="Andheri, Mumbai, India" style="width: 200px" /> 
       <br /> 
       <input type="button" value="Get Route" onclick="GetRoute()" /> 
       <hr /> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       <div id="dvDistance"> 
       </div> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <div id="dvMap" style="width: 500px; height: 500px"> 
       </div> 
      </td> 
      <td> 
       <div id="dvPanel" style="width: 500px; height: 500px"> 
       </div> 
      </td> 
     </tr> 
    </table> 
    <br /> 
    </body> 
    </html> 
+0

danke ... das Problem ist jetzt gelöst. – sree

Verwandte Themen