BigJim87
Lt. Junior Grade
- Registriert
- Juli 2008
- Beiträge
- 397
Update siehe Post #16
Hallo
aus persönlichem Interesse und nicht aus sonstigen kommerziellen oder privaten Grünen, habe ich mir folgende Problematik gestellt.
Es geht darum in einer Karte Marker an zu zeigen, welche die Koordinaten aus einer SQL Datenbank bekommen.
Das heißt ich habe eine Datenbank erstellt, in der Name, Lon, Lat abgespeichert sind, und nun sollen diese Marker Automatisch gesetzt werden.
Das bedeutet ich brauche eine Schleife, die alle Werte aus der Datenbank ausliest, und dann für jede Zeile aus der Datenbank einen neuen Marker erzeugt.
Ich bin schon so weit gekommen, dass alle Werte aus der Datenbank ausgelesen werden können, aber irgendwie erstellt der trotzdem nur einen Marker dort hin, wo der letzte Eintrag in der Datenbank war.
Hier das Skript dazu:
Und hier ein Screen wie das aussieht:
Wie man sieht, werden oben die Namen (Natürlich nur Fakenamen) und Koordinaten aus der Datenbank ausgelesen, aber es wir nur ein Marker erzeugt...
Hallo
aus persönlichem Interesse und nicht aus sonstigen kommerziellen oder privaten Grünen, habe ich mir folgende Problematik gestellt.
Es geht darum in einer Karte Marker an zu zeigen, welche die Koordinaten aus einer SQL Datenbank bekommen.
Das heißt ich habe eine Datenbank erstellt, in der Name, Lon, Lat abgespeichert sind, und nun sollen diese Marker Automatisch gesetzt werden.
Das bedeutet ich brauche eine Schleife, die alle Werte aus der Datenbank ausliest, und dann für jede Zeile aus der Datenbank einen neuen Marker erzeugt.
Ich bin schon so weit gekommen, dass alle Werte aus der Datenbank ausgelesen werden können, aber irgendwie erstellt der trotzdem nur einen Marker dort hin, wo der letzte Eintrag in der Datenbank war.
Hier das Skript dazu:
Code:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="leaflet/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href=" leaflet/leaflet.ie.css" />
<![endif]-->
<script src="leaflet/leaflet-src.js"></script>
<style>
html, body, #map {
height: 100%;
}
body {
padding: 0;
margin: 0;
}
</style>
<title>Creating markers with popups and handling events</title>
</head>
<body>
<?php
//Auslesen der Koordinaten der ersten Person zum centern
$verbindung = include ('pgdb.inc.php');
$table = "freunde";
$sql_center = "SELECT lon, lat FROM $table WHERE marker_id = 1";
$res_center = pg_query($sql_center);
$row_center = pg_fetch_array($res_center, NULL, PGSQL_ASSOC);
$lon_center = $row_center["lon"];
$lat_center = $row_center["lat"];
//Auslesen aller Koordinaten um Marker zu erstellen
$sql = "SELECT * FROM $table";
$res = pg_query($sql);
while($row = pg_fetch_array($res, NULL, PGSQL_ASSOC ))
{
$id = $row["marker_id"];
$name = $row["name"];
$lon = $row["lon"];
$lat = $row["lat"];
echo "<br>$id $name $lon $lat";
}
pg_close ($verbindung);
?>
<div id="map"></div>
<script type="text/javascript">
var map = L.map('map', {
center: [<? echo $lon_center;?>, <? echo $lat_center;?>],
zoom: 16
});
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
var markers = [
["<? echo $name;?>",<? echo $lon;?>,<? echo $lat;?>],
];
for (var i = 0; i < markers.length; i++) {
marker = new L.marker([markers[i][1],markers[i][2]])
.bindPopup(markers[i][0])
.addTo(map);
}
</script>
</body>
</html>
Und hier ein Screen wie das aussieht:
Wie man sieht, werden oben die Namen (Natürlich nur Fakenamen) und Koordinaten aus der Datenbank ausgelesen, aber es wir nur ein Marker erzeugt...
Zuletzt bearbeitet: