Hallo Zusammen,
ich lasse mir auf einer Karte Adressen anzeigen.
Das klappt auch ganz gut.
Nun möchte ich aus unterschiedlichen Tabellen Adressen in einer Karte anzeigen lassen, wobei die Typen ( Hotels, Baustoffhändler) unterschiedliche Farben haben sollten.
In der XML verwende ich einmal "Marker" und " Hotelmarker "
Allerdings komme ich mit der Karte nicht weiter !
Kann hier jemand helfen ?
XML:
Karte:
ich lasse mir auf einer Karte Adressen anzeigen.
Das klappt auch ganz gut.
Nun möchte ich aus unterschiedlichen Tabellen Adressen in einer Karte anzeigen lassen, wobei die Typen ( Hotels, Baustoffhändler) unterschiedliche Farben haben sollten.
In der XML verwende ich einmal "Marker" und " Hotelmarker "
Allerdings komme ich mit der Karte nicht weiter !
Kann hier jemand helfen ?
XML:
PHP:
<?php
ini_set('display_errors', 0);
error_reporting( E_ALL );
$pdo = new PDO('mysql:host=localhost;dbname=XX', 'root', 'XX');
$sql = "SELECT * FROM baustoffe
WHERE baustoffe_status = 0";
$sql1 = "SELECT * FROM hotel
WHERE hotel_status = 0";
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
foreach ($pdo->query($sql) as $row) {
// ADD TO XML DOCUMENT NODE
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name",$row['baustoffe_name']);
$newnode->setAttribute("plz", $row['baustoffe_plz']);
$newnode->setAttribute("ort", $row['baustoffe_ort']);
$newnode->setAttribute("anmerkungen", $row['baustoffe_anmerkungen']);
$newnode->setAttribute("telefon", $row['baustoffe_telefon']);
$newnode->setAttribute("strasse", $row['baustoffe_strasse']);
$newnode->setAttribute("mail", $row['baustoffe_mail']);
$newnode->setAttribute("lat", $row['baustoffe_lat']);
$newnode->setAttribute("lng", $row['baustoffe_lng']);
}
foreach ($pdo->query($sql1) as $row) {
// ADD TO XML DOCUMENT NODE
$node = $dom->createElement("hotelmarker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("hotelname",$row['hotel_name']);
$newnode->setAttribute("hotelplz", $row['hotel_plz']);
$newnode->setAttribute("hotelort", $row['hotel_ort']);
$newnode->setAttribute("hotelanmerkungen", $row['hotel_anmerkungen']);
$newnode->setAttribute("hoteltelefon", $row['hotel_telefon']);
$newnode->setAttribute("hotelstrasse", $row['hotel_strasse']);
$newnode->setAttribute("hotelmail", $row['hotel_mail']);
$newnode->setAttribute("hotellat", $row['hotel_lat']);
$newnode->setAttribute("hotellng", $row['hotel_lng']);
}
echo $dom->saveXML();
?>
Karte:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>NuBIS - Hotel Übersicht</title>
<div>
<a href="javascript:window.close()">zurück zu NuBIS-Hotels</a>
</div>
<link rel="stylesheet" type="text/css" href="style_casinosearcher.css">
<script src="http://maps.google.com/maps?file=api&v=2&key=api&v=2&key=***"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var iconBlue = new GIcon();
iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);
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["extended"] = iconBlue;
customIcons["normal"] = iconRed;
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(51.92277778, 10.43083333), 7);
// Change this depending on the name of your PHP file
GDownloadUrl("hotel_xml.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 anmerkungen = markers[i].getAttribute("anmerkungen");
var plz = markers[i].getAttribute("plz");
var ort = markers[i].getAttribute("ort");
var strasse = markers[i].getAttribute("strasse");
var telefon = markers[i].getAttribute("telefon");
var mail = markers[i].getAttribute("mail");
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var marker = createMarker(point, name, anmerkungen, plz, ort, strasse, telefon, mail);
map.addOverlay(marker);
}
});
}
}
function createMarker(point, name, anmerkungen, plz, ort, strasse, telefon, mail) {
var marker = new GMarker(point, customIcons[name]);
var html = "<b><x1> Hotel "+ name +" aus NuBIS: </x1><hr></hr></b> <br/><b>Adresse:</b><br>"+ name + "<br/>" + strasse + "</hr><br/>" + plz + " " + ort + "<br><br/><b>Telefon:</b><br><br/>" +telefon + "<br><br/><b>E-Mail:</b><br><br/>" + mail + "<br><br/><b>Anmerkungen:</b><br><br/>" + anmerkungen;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 1950px; height: 900px"></div>
</body>
</html>
Zuletzt bearbeitet von einem Moderator: