thomas91
Goto Top

Automatisierte Berechnung einer Route mittels Google Maps und PHP

Hallo Community,

Ich bin aktuell an einem Projekt für die Örtliche Feuerwehr beteiligt. Dabei wird durch elektronische Auswertung ein Alarmmonitor mit Informationen gegefüllt. Bei der Anzeige der Route vom Feuerwehr Gerätehaus zum Einsatzort gibt es leider ein Problem, dise wird nicht berechet und es werden nur die Koordinaten zuvor angezeigt.

Der Server ist ein Ubuntu 16.04 LTS mit php7.0, apache2.4 und mysql.
<html>
<head>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />  

<style type="text/css">  
  html { height: 100% }
  body { height: 100%; margin: 0px; padding: 0px }
  #map_canvas { height: 100% }
</style>

<script type="text/javascript"  
    src="https://maps.google.com/maps/api/js?sensor=false&region=DE">  
</script>


<script type="text/javascript">  


var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
var einsatzort = "";  

function initialize() {
 geocoder = new google.maps.Geocoder();
  directionsDisplay = new google.maps.DirectionsRenderer();
  var feuerwehrhaus = new google.maps.LatLng(49.623141, 9.662531);
  var myOptions = {
    zoom:13,
    disableDefaultUI: true,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: feuerwehrhaus
  }
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);  
  google.maps.event.addListener(map, 'bounds_changed', function() {setTimeout(zentriere,1000);});  
 google.maps.event.addListener(map, 'center_changed', function() {setTimeout(zoome,1000);});  

  directionsDisplay.setMap(map);
  // Standard-Marker ausblenden
  directionsDisplay.setOptions({suppressMarkers:true});
  calcRoute();
 }

function calcRoute() {


  var request = {
    origin:"Am Wört 2, 97941 Tauberbischofsheim",  
    destination: "Hauptstraße 37, 97941 Tauberbischofsheim",  
    travelMode: google.maps.TravelMode.DRIVING
  };

  directionsService.route(request, function(result, status) 
  {
    if (status == google.maps.DirectionsStatus.OK) 
	{
	directionsDisplay.setDirections(result);
   	
	//Einsatzort markieren 
	var lastMile = result.routes.legs.steps.length - 1; 
	einsatzort = result.routes.legs.steps[lastMile].end_point;
	var marker = new google.maps.Marker ({ position: einsatzort, map: map});
	}
   });
}


function zentriere() { map.setCenter(einsatzort); }


function zoome() 
{ 
	// Feststellen, ob wir noch in unserem Ortsgebiet sind
	var ortaufkarte = document.getElementById("ortaufkarte").value;  
	var ergebnis = ortaufkarte.search(/Landshut/i);
	var zoomlevel = 15;
	if (ergebnis != -1)
	{
		// Wir sind im Ortsgebiet
		zoomlevel = 15;
	} else {
		// Wir sind auf dem Land
		zoomlevel = 12;
	}
	
	map.setZoom(zoomlevel); 
}

</script>

</head>

<body onload="initialize()">  
  <input type="hidden" id="ortaufkarte" value="Tauberbischofsheim (97941)">  
  <div id="map_canvas" style="width:100%; height:100%"></div>  

</body>
</html>

Content-ID: 322095

Url: https://administrator.de/contentid/322095

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

StefanKittel
StefanKittel 25.11.2016 um 16:26:23 Uhr
Goto Top
Thomas91
Thomas91 28.11.2016 um 07:41:26 Uhr
Goto Top
Ist es bei deiner Lösung möglich Daten aus einer SQL-Datenbank einzufügen?
Larmina
Larmina 30.11.2016 aktualisiert um 15:25:11 Uhr
Goto Top
Hi Thomas,
pack mal ganz oben in dein Script
error_reporting (E_ALL);
ini_set('display_errors', TRUE);  
und schau ob es dir Fehlermeldungen auswirft.
Die bitte ggf hier posten.


Was mir so nebenher gerade noch aufgefallen ist: dein originwert hat ein ö drin. Probier es mal mit einer Straße ohne Sonderzeichen.

LG Larmina
Thomas91
Thomas91 30.11.2016 um 15:33:30 Uhr
Goto Top
Hey Larmina,

wo genau werden die error meldungen angezeigt?
Danke für den Tip mit dem Umlaut, habe ich schon versucht Straße und Ort ohne ÖÄÜ führten genauso zu keiner Änderung ges Problems.

LG

Thomas
Larmina
Larmina 30.11.2016 um 16:02:26 Uhr
Goto Top
Hi Thomas,
die erscheinen (falls vorhanden) direkt auf der Seite wenn du die aufrufst.

LG Larmina
Thomas91
Thomas91 30.11.2016 um 16:07:50 Uhr
Goto Top
Hey,

es kommen keine Fehler auf der Seite.

LG Thomas
Larmina
Larmina 30.11.2016 um 16:28:04 Uhr
Goto Top
Schade, das wäre Hilfreich gewesen.
Dann hätte ich noch eine andere Frage:
Deine Funktion CalcRoute, hast du die aus der Google API kopiert oder selbst geschrieben?
Weil es sieht so aus als würde die weder etwas irgendwohin senden noch einen Returnwert zurückgeben.

LG Larmina
Thomas91
Thomas91 01.12.2016 um 07:33:38 Uhr
Goto Top
Der Code stammt von einem Github Projekt.

LG Thomas
Larmina
Larmina 02.12.2016 um 09:41:56 Uhr
Goto Top
Hi Thomas,
da fällt mir leider nichtmehr arg viel ein,
außer dir den Tipp zu geben eventuell statt dem GithubProjekt mal direkt die Google Maps API Doku dir anzuschauen.

https://developers.google.com/maps/documentation/directions/intro?hl=de

LG Larmina