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-Key: 322095

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

Printed on: April 18, 2024 at 07:04 o'clock

Member: StefanKittel
StefanKittel Nov 25, 2016 at 15:26:23 (UTC)
Goto Top
Member: Thomas91
Thomas91 Nov 28, 2016 at 06:41:26 (UTC)
Goto Top
Ist es bei deiner Lösung möglich Daten aus einer SQL-Datenbank einzufügen?
Member: Larmina
Larmina Nov 30, 2016 updated at 14:25:11 (UTC)
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
Member: Thomas91
Thomas91 Nov 30, 2016 at 14:33:30 (UTC)
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
Member: Larmina
Larmina Nov 30, 2016 at 15:02:26 (UTC)
Goto Top
Hi Thomas,
die erscheinen (falls vorhanden) direkt auf der Seite wenn du die aufrufst.

LG Larmina
Member: Thomas91
Thomas91 Nov 30, 2016 at 15:07:50 (UTC)
Goto Top
Hey,

es kommen keine Fehler auf der Seite.

LG Thomas
Member: Larmina
Larmina Nov 30, 2016 at 15:28:04 (UTC)
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
Member: Thomas91
Thomas91 Dec 01, 2016 at 06:33:38 (UTC)
Goto Top
Der Code stammt von einem Github Projekt.

LG Thomas
Member: Larmina
Larmina Dec 02, 2016 at 08:41:56 (UTC)
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