2017-07-12 1 views
1

Ich versuche, verschiedene Markierungen auf einer Karte miteinander zu verknüpfen. Für den Moment sind die Marker fest codiert, aber sie werden auf der Website von Tablets eingespeist, die ihre GPS-Standorte in regelmäßigen Abständen senden. Aus welchen Gründen auch immer, wenn ich mehr als 10 Markierungen einfüge, wird die Polylinie nicht mehr angezeigt. Kann mir jemand helfen, herauszufinden, warum das passiert? Vielen Dank.Google Maps API-Richtungsdienst wird nicht für mehr als 10 Markierungen angezeigt

<html> 
    <head> 
    </head> 

    <body> 
     <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
     <script type="text/javascript"> 
      var geocoder; 
      var map; 
      var directionsDisplay; 
      var directionsService = new google.maps.DirectionsService(); 
      var locations = [ 
       ['16:58', -20.1672799707871, 57.5069032768888], 
       ['17:00', -20.170670813731, 57.5032840805832], 
       ['17:01', -20.1712602810727, 57.502503950733], 
       ['17:04', -20.166955925865, 57.4892648490453], 
       ['17:07', -20.1761991610139, 57.4822988090064], 
       ['17:10', -20.1961753165077, 57.4824656045157], 
       ['17:13', -20.220309405427, 57.487469732469], 
       ['17:16', -20.2342861943874, 57.4996038055266], 
       ['17:19', -20.2419951166671, 57.4924547310887], 
       ['17:22', -20.2418197976697, 57.4838445649936], 
       ['17:25', -20.2417927882899, 57.4821667460937], 
       ['17:28', -20.244868944177, 57.4761929726994], 
       ['17:31', -20.2494147017248, 57.4751336596163], 
       ['17:34', -20.2529453707358, 57.4698643969492], 
       ['17:37', -20.2515653985995, 57.4694827601669] 
      ]; 

      function initialize() { 
       directionsDisplay = new google.maps.DirectionsRenderer(); 


       var map = new google.maps.Map(document.getElementById('map'), { 
       zoom: 12, 
       center: new google.maps.LatLng(-20.23, 57.49), 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
       }); 
       directionsDisplay.setMap(map); 
       var infowindow = new google.maps.InfoWindow(); 

       var marker, i; 
       var request = { 
       travelMode: google.maps.TravelMode.DRIVING 
       }; 
       for (i = 0; i < locations.length; i++) { 
       marker = new google.maps.Marker({ 
        position: new google.maps.LatLng(locations[i][1], locations[i][2]), map: map 
       }); 

       google.maps.event.addListener(marker, 'click', (function(marker, i) { 
        return function() { 
        infowindow.setContent(locations[i][0]); 
        infowindow.open(map, marker); 
        } 
       })(marker, i)); 

       if (i == 0) request.origin = marker.getPosition(); 
       else if (i == locations.length - 1) request.destination = marker.getPosition(); 
       else { 
        if (!request.waypoints) request.waypoints = []; 
        request.waypoints.push({ 
        location: marker.getPosition(), 
        stopover: true 
        }); 
       } 

       } 
       directionsService.route(request, function(result, status) { 
       if (status == google.maps.DirectionsStatus.OK) { 
        directionsDisplay.setDirections(result); 
       } 
       }); 
      } 
      google.maps.event.addDomListener(window, "load", initialize); 
     </script> 
     <div id="map" style="width: 100%; height: 100%"> 
     </div> 
    </body> 
</html> 
+0

Vielleicht bin ich etwas fehlt, aber ich sehe keine google.maps.PolyLine() aufrufen – rrd

+0

Verwandte Frage mit Beispiel mehrere Richtungen Bespannen fordert zusammen: [Google Google Maps-API zum Abrufen der Buslinie] (https://stackoverflow.com/questions/15315347/google-maps-api-to-get-bus-route) – geocodezip

+0

Mögliches Duplikat von [JavaScript Google Maps-Polylinien: Problem beim Verbinden aller angegebenen GPS-Geräte Standorte] (https://stackoverflow.com/questions/27609872/javascript-google-maps-polylines-issue-in-connecting-all-given-gps-locations) – geocodezip

Antwort

0

Sie können keine Polylinienbreite von mehr als 8 Punkte sowie die Start- und Ziel ziehen:

Google Maps Directions:

MAX_WAYPOINTS_EXCEEDED zeigt an, dass zu viele Wegpunkte in der Anfrage zur Verfügung gestellt wurden, um die Maximal erlaubte Wegpunkte sind 8, plus Ursprung und Ziel. (Google Maps API for Work Kunden-Anforderungen enthalten kann mit bis zu 23 Wegpunkten.)

Das ist, weil die freie API beschränkt ist:

Nutzer des kostenlosen API Bis zu 8 Wegpunkte erhalten (plus Ursprung und Ziel) in jeder Anfrage und insgesamt 2500 Richtungen Anfragen pro 24 Stunden erlaubt.

Versuchen Sie, Ihre Linienzug in mehrere Anfrage Aufspalten

Verwandte Themen