Ich antworte mal auf Deutsch, Du scheinst das ja zu verstehen. Die Datenbank besteht nur aus einer Tabelle (hier: ‘POIS’). Ich habe mittels Perl-Script die Daten aus einem Extrakt in eine csv-Datei konvertiert. Ich habe Spalten für lat und lon, sowie für die relevanten keys. Diese Datei haben ich dann in die MYSQL-Datenbank eingelesen.
Meine eigentliche Datenbank-Abfrage lautet ja:
$ergebnis = mysql_query("SELECT lat, lon, name, amenity, operator, vending FROM pois
WHERE vending LIKE 'excrement_bags'
AND lat BETWEEN $bbo AND $bto
AND lon BETWEEN $ble AND $bri")
OR die("Error: $abfrage <br>".mysql_error()
);
In der ersten Zeile wähle ich alle Spalten aus, aus welchen in Daten haben möchte. Die nächsten drei sind die Bedingungen. Da ich in der DB mehrere POI-Arten drin habe, filtere ich diesem Fall nur die Hundekottütenspender mit WHERE vending LIKE ‘excrement_bags’ aus. Diese Zeile kannst Du bei Dir wohl weglassen.
Die nächsten beiden Zeilen sind die wichtigen, die den Bereich abfragen; der sollte so bleiben.
Dann kommt auch schon die Ausgabe
$header = "point\ttitle\tdescription\ticon\n" ;
echo $header ;
…schreibt einmal den Header:
pointtitledescriptionicon.
Der Aufbau ist also etwas anders, als im Text-Layer. ‘IconSize’ und ‘IconOffset’ gibt es nicht.
Mit den restlichen Zeilen werden die Datenzeilen gefüllt:
while($row = mysql_fetch_object($ergebnis))
{
$daten = $row->lat.",".$row->lon."\t".$row->name."\t"."amenity=".$row->amenity."<br>vending=".$row->vending."<br>operator=".$row->operator."\t"."http://www.openlayers.org/dev/img/marker.png\n" ;
echo $daten ;
}
Die einzelnen Felder werden wieder durch Tab, also \t , getrennt. Wenn man aus dem Beispiel einmal den String $daten entsprechend trennt, sieht es gar nicht so schlimm aus:
$row->lat.",".$row->lon."\t".
$row->name."\t".
"amenity=".$row->amenity."<br>vending=".$row->vending."<br>operator=".$row->operator."\t".
"http://www.openlayers.org/dev/img/marker.png\n" ;
Erste Zeile ist für die Koordinaten, die zweite der Name des POIs, die dritte die Beschreibung und die vierte der Pfad zum Icon. In den Zeilen zwei und drei kann man sich austoben und das reinnehmen, was man im Popup drinstehen habe möchte.
Christian