Hallo,
ich versuche mich im Moment daran, Adressen aus einer Datenbank auf Google Maps anzeigen zu lassen. Allerdings komme ich nicht so recht weiter, trotz Recherche.
Aktuell habe ich einfach nur eine kleine Testdatenbank mit einer Tabelle, die Name, Adresse sowie Koordinaten speichert, dies wandle ich um in ein Json-Format und übergebe das dann einer geocode-Funktion.
Das funktioniert auch alles ohne Fehlermeldungen.
Ich dachte, daß ich den return-Wert meiner geocode-Funktion einer initMap-Funktion (in java script, ich hatte mich da von einem Tutorial anleiten lassen) übergeben kann, aber das geht so nicht (die Fehlermeldung in der console: uncaught exception: InvalidValueError: initMap is not a function) .
Da ich in der Thematik aber auch recht neu bin, ist mir nicht klar, wie ich es machen soll/muss und wäre daher für eine kleine Hilfe sehr dankbar.
Aktuell sieht mein Code so aus:
ich versuche mich im Moment daran, Adressen aus einer Datenbank auf Google Maps anzeigen zu lassen. Allerdings komme ich nicht so recht weiter, trotz Recherche.
Aktuell habe ich einfach nur eine kleine Testdatenbank mit einer Tabelle, die Name, Adresse sowie Koordinaten speichert, dies wandle ich um in ein Json-Format und übergebe das dann einer geocode-Funktion.
Das funktioniert auch alles ohne Fehlermeldungen.
Ich dachte, daß ich den return-Wert meiner geocode-Funktion einer initMap-Funktion (in java script, ich hatte mich da von einem Tutorial anleiten lassen) übergeben kann, aber das geht so nicht (die Fehlermeldung in der console: uncaught exception: InvalidValueError: initMap is not a function) .
Da ich in der Thematik aber auch recht neu bin, ist mir nicht klar, wie ich es machen soll/muss und wäre daher für eine kleine Hilfe sehr dankbar.
Aktuell sieht mein Code so aus:
PHP:
//connect to database
$con = mysqli_connect("", "", "", "") or die ("Error " . mysqli_error($con));
//fetch the table rows from table
$sql = "select address from markers";
$result = mysqli_query($con, $sql) or die ("Error in Selecting" . mysqli_error($con));
//create an array
$address = array();
while($row = mysqli_fetch_assoc($result)) {
$address[] = $row;
}
//json
$addressJson = json_encode($address);
//geocoding
function geocode($addressJson)
{
// url encode the address
$address = urlencode($addressJson);
// google map geocode api url
$url = "https://maps.google.com/maps/api/geocode/json?sensor=false&address={$address}";
// get the json response
$resp_json = file_get_contents($url);
// decode the json
$resp = json_decode($resp_json, true);
// response status will be 'OK', if able to geocode given address
if ($resp['status'] == 'OK') {
// get the important data
$lati = $resp['results'][0]['geometry']['location']['lat'];
$longi = $resp['results'][0]['geometry']['location']['lng'];
$formatted_address = $resp['results'][0]['formatted_address'];
// verify if data is complete
if ($lati && $longi && $formatted_address) {
// put the data in the array
$data_arr = array();
array_push(
$data_arr,
$lati,
$longi,
$formatted_address
);
return $data_arr;
} else {
return false;
}
} else {
return false;
}
}
?>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Simple markers</title>
<style>
#map {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
//Display the map
function initMap() {
var myLatLng = {<?php $data_arr; ?>};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
position: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>)
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=KEY&callback=initMap">
</script>
</body>
</html>