This file - http://www.rith.ca/LABS/maps/phpsqlajax_genxml.php - that
you call in downloadUrl

returns data of the form

connected to db
db selected
1 | Pan Africa Market | 1521 1st Ave, Seattle, WA | 47.608940 |
-122.340141 | restaurant
2 | Buddha Thai & Bar | 2222 2nd Ave, Seattle, WA | 47.613590 |
-122.344391 | bar
3 | The Melting Pot | 14 Mercer St, Seattle, WA | 47.624561 |
-122.356445 | restaurant
4 | Ipanema Grill | 1225 1st Ave, Seattle, WA | 47.606365 |
-122.337654 | restaurant
5 | Sake House | 2230 1st Ave, Seattle, WA | 47.612823 | -122.345673 |
bar
6 | Crab Pot | 1301 Alaskan Way, Seattle, WA | 47.605961 | -122.340363
| restaurant
7 | Mama's Mexican Kitchen | 2234 2nd Ave, Seattle, WA | 47.613976 |
-122.345467 | bar
8 | Wingdome | 1416 E Olive Way, Seattle, WA | 47.617214 | -122.326584
| bar
9 | Piroshky Piroshky | 1908 Pike pl, Seattle, WA | 47.610126 |
-122.342834 | restaurant

which won't work with the rest of the script.
Change the above referenced file to the xml file that you created
manually.

On Aug 26, 12:42 pm, Charith <[email protected]> wrote:
> I am trying to get google maps working with markers from an xml file.
> I found this website (http://code.google.com/apis/maps/articles/
> phpsqlajax_v3.html) and i followed it to the dot. I got an error
> saying that "request" is not defined so moved the request object
> declaration to the top instead of where it is in that website posted
> above.
> Now i get documentElement is null or not an object error. Anyone have
> any idea what is going on? everything seems to be good. well, looks
> good for me at least. What is it that I am missing and doing wrong?
>
> Demo:http://www.rith.ca/LABS/maps/map.html
>
> ---------------------------------------------------------------------------­--------------------------
> map.html code
> ---------------------------------------------------------------------------­--------------------------
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
> <html>
>   <head>
>     <meta name="viewport" content="initial-scale=1.0, user-
> scalable=no" />
>     <meta http-equiv="content-type" content="text/html; charset=UTF-8"/
>
>     <title>PHP/MySQL & Google Maps Example</title>
>     <script type="text/javascript" src="http://maps.google.com/maps/
> api/js?sensor=false"></script>
>     <script type="text/javascript">
>     //<![CDATA[
>
>         var request = window.ActiveXObject ?
>           new ActiveXObject('Microsoft.XMLHTTP') :
>           new XMLHttpRequest;
>
>     var customIcons = {
>       restaurant: {
>         icon: 'http://labs.google.com/ridefinder/images/
> mm_20_blue.png',
>         shadow: 'http://labs.google.com/ridefinder/images/
> mm_20_shadow.png'
>       },
>       bar: {
>         icon: 'http://labs.google.com/ridefinder/images/
> mm_20_red.png',
>         shadow: 'http://labs.google.com/ridefinder/images/
> mm_20_shadow.png'
>       }
>     };
>
>     function load() {
>       var map = new google.maps.Map(document.getElementById('map'), {
>         center: new google.maps.LatLng(47.6145, -122.3418),
>         zoom: 13,
>         mapTypeId: 'roadmap'
>       });
>       var infoWindow = new google.maps.InfoWindow;
>           if(null == infoWindow) { alert("Object InfoWindow Null"); }
>
>       // Change this depending on the name of your PHP file
>       downloadUrl("phpsqlajax_genxml.php", function(data) {
>         var xml = request.responseXML;
>                 if(null == xml) { alert("Object xml Null"); }
>
>         var markers =
> xml.documentElement.getElementsByTagName('marker');
>         for (var i = 0; i < markers.length; i++) {
>           var name = markers[i].getAttribute('name');
>           var address = markers[i].getAttribute('address');
>           var type = markers[i].getAttribute('type');
>           var point = new google.maps.LatLng(
>               parseFloat(markers[i].getAttribute('lat')),
>               parseFloat(markers[i].getAttribute('lng')));
>           var html = "" + name + " " + address;
>           var icon = customIcons[type] || {};
>           var marker = new google.maps.Marker({
>             map: map,
>             position: point,
>             icon: icon.icon,
>             shadow: icon.shadow
>           });
>           bindInfoWindow(marker, map, infoWindow, html);
>         }
>       });
>     }
>
>     function bindInfoWindow(marker, map, infoWindow, html) {
>       google.maps.event.addListener(marker, 'click', function() {
>         infoWindow.setContent(html);
>         infoWindow.open(map, marker);
>       });
>     }
>
>     function downloadUrl(url, callback) {
>       request.onreadystatechange = function() {
>         if (request.readyState == 4) {
>           request.onreadystatechange = doNothing;
>           callback(request, request.status);
>         }
>       };
>
>       request.open('GET', url, true);
>       request.send(null);
>     }
>
>     function doNothing() {}
>
>     //]]>
>
>   </script>
>
>   </head>
>
>   <body onload="load()">
>     <div id="map" style="width: 500px; height: 300px"></div>
>   </body>
>
> </html>
>
> ---------------------------------------------------------------------------­--------------------------
> phpsqlajax_genxml.php code
> ---------------------------------------------------------------------------­--------------------------
> <?php
> $username="root";
> $password="**********";  // I use the actual password instead of the
> stars here
> $database="google";
>
> // Start XML file, create parent node
>
> $dom = new DOMDocument('1.0', 'iso-8859-1');
> $node = $dom->createElement("markers");
> $parnode = $dom->appendChild($node);
>
> // Opens a connection to a MySQL server
>
> $connection=mysql_connect (localhost, $username, $password);
> if (!$connection) {  die('Not connected : ' . mysql_error());}  else
> { echo "connected to db<br />"; }
>
> // Set the active MySQL database
>
> $db_selected = mysql_select_db($database, $connection);
> if (!$db_selected) {
>   die ('Can\'t use db : ' . mysql_error());}
>
> else { echo "db selected<br />"; }
>
> // Select all the rows in the markers table
>
> $query = "SELECT * FROM markers";
> $result = mysql_query($query);
> if (!$result) {
>   die('Invalid query: ' . mysql_error());
>
> }
>
> //header("Content-type: text/xml");
>
> // Iterate through the rows, adding XML nodes for each
>
> while ($row = @mysql_fetch_assoc($result)){
>         echo $row[id] . " | " . $row[name] . " | " . $row[address] . " | " .
> $row[lat] . " | " . $row[lng] . " | " . $row[type] . "<br />";
>   // ADD TO XML DOCUMENT NODE
>   $node = $dom->createElement("marker");
>   $newnode = $parnode->appendChild($node);
>   $newnode->setAttribute("name",$row['name']);
>   $newnode->setAttribute("address", $row['address']);
>   $newnode->setAttribute("lat", $row['lat']);
>   $newnode->setAttribute("lng", $row['lng']);
>   $newnode->setAttribute("type", $row['type']);
>
> }
>
> echo $dom->saveXML();
>
> ?>
>
> ---------------------------------------------------------------------------­--------------------------
> phpsqlajax_expectedoutput.xml code
> Above script didnt create the xml file. I manually put in the data
> into this xml file
> ---------------------------------------------------------------------------­--------------------------
> <?xml version="1.0" encoding="iso-8859-1"?>
> <markers>
> <marker name="Pan Africa Market" address="1521 1st Ave, Seattle, WA"
> lat="47.608940" lng="-122.340141" type="restaurant"/>
> <marker name="Buddha Thai & Bar" address="2222 2nd Ave, Seattle, WA"
> lat="47.613590" lng="-122.344391" type="bar"/>
> <marker name="The Melting Pot" address="14 Mercer St, Seattle, WA"
> lat="47.624561" lng="-122.356445" type="restaurant"/>
> <marker name="Ipanema Grill" address="1225 1st Ave, Seattle, WA"
> lat="47.606365" lng="-122.337654" type="restaurant"/>
> <marker name="Sake House" address="2230 1st Ave, Seattle, WA"
> lat="47.612823" lng="-122.345673" type="bar"/>
> <marker name="Crab Pot" address="1301 Alaskan Way, Seattle, WA"
> lat="47.605961" lng="-122.340363" type="restaurant"/>
> <marker name="Mama's Mexican Kitchen" address="2234 2nd Ave, Seattle,
> WA" lat="47.613976" lng="-122.345467" type="bar"/>
> <marker name="Wingdome" address="1416 E Olive Way, Seattle, WA"
> lat="47.617214" lng="-122.326584" type="bar"/>
> <marker name="Piroshky Piroshky" address="1908 Pike pl, Seattle, WA"
> lat="47.610126" lng="-122.342834" type="restaurant"/>
> </markers>
>
> Thanks everyone for your time

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to