Adressen in Karte darstellen, aus unterschiedlichen Datenbank Tabellen

BDC

Grünschnabel
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:
Code:
<?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:

Code:
<!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>
  
    <script src="http://maps.google.com/maps?file=api&v=2&key=api&v=2&key=ABQIAAAAXmADf_6tBOoKpOL7vEoN2xRyULF1bKDZZvW4qhxkkuradgJrBhQvVd-aiL9sTaIzSjlxBuGyKaT4LQ"
       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("testxml.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker,hotelmarker");
          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);

            var hotelname = markers[i].getAttribute("hotelname");
            var hotelanmerkungen = markers[i].getAttribute("hotelanmerkungen");
            var hotelplz = markers[i].getAttribute("hotelplz");
            var hotelort = markers[i].getAttribute("hotelort");
            var hotelstrasse = markers[i].getAttribute("hotelstrasse");
            var hoteltelefon = markers[i].getAttribute("hoteltelefon");
            var hotelmail = markers[i].getAttribute("hotelmail");
            var hotelpoint = new GLatLng(parseFloat(markers[i].getAttribute("hotellat")),
                                    parseFloat(markers[i].getAttribute("hotellng")));

            var hotelmarker = createMarker(hotelpoint, hotelname, hotelanmerkungen, hotelplz, hotelort, hotelstrasse, hoteltelefon, hotelmail);
            map.addOverlay(hotelmarker);
          }
        });
      }
    }

    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 + "&nbsp;" + 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;
    }

    function createhotelMarker(hotelpoint, hotelname, hotelanmerkungen, hotelplz, hotelort, hotelstrasse, hoteltelefon, hotelmail) {
      var hotelmarker = new GMarker(hotelpoint, customIcons[hotelname]);
    
    
      var html = "<b><x1> Hotel "+ hotelname +" aus NuBIS:  </x1><hr></hr></b> <br/><b>Adresse:</b><br>"+ hotelname + "<br/>" + hotelstrasse + "</hr><br/>" + hotelplz + "&nbsp;" + hotelort + "<br><br/><b>Telefon:</b><br><br/>" +hoteltelefon + "<br><br/><b>E-Mail:</b><br><br/>" + hotelmail + "<br><br/><b>Anmerkungen:</b><br><br/>" + hotelanmerkungen;
      GEvent.addListener(hotelmarker, 'click', function() {
        hotelmarker.openInfoWindowHtml(html);
      });
      return hotelmarker;
    }
    //]]>
  </script>
  </head>

  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 1950px; height: 900px"></div>
  </body>
</html>


Mit der einzelnen Abfrage in der XML wird alles wunderbar angezeigt, aber mit Daten aus mehreren Tabellen bekomme ich nichts angezeigt, wobei es auch keine Fehlermeldung in der Console gibt.
 

Neue Beiträge

Zurück