Hallo, ich möchte unterhalb meiner Google Maps Karte Daten von xml ausgeben lassen. Das Einbinden der Daten aus xml in die Map funktioniert einwandfrei. Ich schaffe es einfach nicht die Ausgabe unterhalb der Karte von xml zu realisieren. Kann mir vielleicht jemand helfen? Ich wäre sehr dankbar.
Hier mein Java Script Code:
Code
<script type="text/javascript">
//<=!=[=C=D=A=T=A=[
var iconRed = new GIcon();
iconRed.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
iconRed.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
iconRed.iconSize = new GSize(12, 20);
iconRed.shadowSize = new GSize(22, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);
var customIcons = [];
customIcons["1"] = iconRed;
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(47.614495, -122.341861), 13);
}
GDownloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var strasse = markers[i].getAttribute("strasse");
var typ = markers[i].getAttribute("typ");
var plz = markers[i].getAttribute("plz")
var ort = markers[i].getAttribute("ort");
var point = new GLatLng(parseFloat(markers[i].getAttribute("breitengrad")),
parseFloat(markers[i].getAttribute("laengengrad")));
var marker = createMarker(point, name, strasse, plz, ort, typ);
map.addOverlay(marker);
}
});
}
function createMarker(point, name, strasse, plz, ort, typ) {
var marker = new GMarker(point, customIcons[typ]);
var html = "<b>" + name + "<\/b> <br/>" + strasse + "<br/>" + plz + "\ " + ort;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//]=]=>
</script>
Alles anzeigen
Und hier der Code aud der php Datei
PHP
<?php
require("phpsqlajax_dbinfo.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Opens a connection to a MySQL server
$connection=mysql_connect ($localhost, $username, $password);
mysql_query("SET NAMES 'utf8'");
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM hotels WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'strasse="' . parseToXML($row['strasse']) . '" ';
echo 'plz="' . $row['plz'] . '" ';
echo 'ort="' . parseToXML($row['ort']) . '" ';
echo 'breitengrad="' . $row['breitengrad'] . '" ';
echo 'laengengrad="' . $row['laengengrad'] . '" ';
echo 'typ="' . $row['typ'] . '" ';
echo '/>';
}
// End XML file
echo '</markers>';
?>
Alles anzeigen
So soll das dann aussehen.