Thanks for the replies, sorry if the info was short details below:
<?php
require("config.php")
//get parameters from url
$center_lat = $_GET["lat"];
$center_lng = $_GET["lng"];
$radius = $_GET["radius"];
//Start xml file
$dom = new DOMDocument ("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Opens a connection to a mySQL server
$connection = mysql_connect ($db_server, $db_user, $db_password);
if (!$connection) {
die("Not connected : " . mysql_error());
}
//Set the active databse
$db_selected = mysql_select_db($db_name, $connection);
if(!$db_selected) {
die("cannot use db : " . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM markers WHERE 1";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
//iterate through rows, adding xml nodes for each
while ($row = @mysql_fetch_assoc($result)){
$node = $dom->createElement("markers");
$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("distance", $row['distance']);
}
echo $dom->saveXML();
?>
out put from this is here http://www.easzy.co.uk/store_locator/gemxml.php
lists test stores
but when I use http://www.easzy.co.uk/store_locator/genxml.php I get
nothing returned.
<?php
require("config.php");
//get parameters from url
$center_lat = $_GET["lat"];
$center_lng = $_GET["lng"];
$radius = $_GET["radius"];
//Start xml file
$dom = new DOMDocument ("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Opens a connection to a mySQL server
$connection = mysql_connect ($db_server, $db_user, $db_password);
if (!$connection) {
die("Not connected : " . mysql_error());
}
//Set the active databse
$db_selected = mysql_select_db($db_name, $connection);
if(!$db_selected) {
die("cannot use db : " . mysql_error());
}
// Select all the rows in the markers table
$query = sprintf("SELECT address, name, lat, lng, ( 3959 * acos( cos
(radians('%s')) * cos(radians( lat ) ) *cos(radians( lng ) - radians
('%s') ) + sin( radians('%s')) * sin( radians( lat )))) AS distance
FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
//$query = "SELECT * FROM markers WHERE
1";
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
$result = mysql_query($query);
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
//iterate through rows, adding xml nodes for each
while ($row = @mysql_fetch_assoc($result)){
$node = $dom->createElement("markers");
$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("distance", $row['distance']);
}
echo $dom->saveXML();
?>
This the index.php page
<!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"/
><link rel="stylesheet" type="text/css" href="css/store_loc.css"/>
<title>Store Locator</title>
<script src="http://maps.google.com/maps?
file=api&v=2&key=ABQIAAAAM0F6uo9iSaMHv2QYAOI7uRQE-G3HraHU-
dhuvhKCU2LEEeqTYBSLjnPOai2vre-UFs7ZYqKOWGcaCQ"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map;
var geocoder;
function load() {
if (GBrowserIsCompatible()) {
geocoder = new GClientGeocoder();
map = new GMap2(document.getElementById('map'));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(55, -2), 5);
}
}
function searchLocations() {
var address = document.getElementById('addressInput').value;
geocoder.getLatLng(address, function(latlng) {
if (!latlng) {
alert(address + ' not found');
} else {
searchLocationsNear(latlng);
}
});
}
function searchLocationsNear(center) {
var radius = document.getElementById('radiusSelect').value;
var searchUrl = 'http://www.easzy.co.uk/store_locator/genxml.php?
lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;
GDownloadUrl(searchUrl, function(data) {
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName
('marker');
map.clearOverlays();
var sidebar = document.getElementById('sidebar');
sidebar.innerHTML = '';
if (markers.length == 0) {
sidebar.innerHTML = 'No results found.';
map.setCenter(new GLatLng(55, -2), 5);
return;
}
var bounds = new GLatLngBounds();
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute('name');
var address = markers[i].getAttribute('address');
var distance = parseFloat(markers[i].getAttribute
('distance'));
var point = new GLatLng(parseFloat(markers[i].getAttribute
('lat')),
parseFloat(markers[i].getAttribute
('lng')));
var marker = createMarker(point, name, address);
map.addOverlay(marker);
var sidebarEntry = createSidebarEntry(marker, name, address,
distance);
sidebar.appendChild(sidebarEntry);
bounds.extend(point);
}
map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel
(bounds));
});
}
function createMarker(point, name, address) {
var marker = new GMarker(point);
var html = '<b>' + name + '</b> <br/>' + address;
GEvent.addListener(marker, 'click', function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
function createSidebarEntry(marker, name, address, distance) {
var div = document.createElement('div');
var html = '<b>' + name + '</b> (' + distance.toFixed(1) + ')<br/
>' + address;
div.innerHTML = html;
div.style.cursor = 'pointer';
div.style.marginBottom = '5px';
GEvent.addDomListener(div, 'click', function() {
GEvent.trigger(marker, 'click');
});
GEvent.addDomListener(div, 'mouseover', function() {
div.style.backgroundColor = '#eee';
});
GEvent.addDomListener(div, 'mouseout', function() {
div.style.backgroundColor = '#fff';
});
return div;
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<h1>Store Locator</h1> <p>Address:
<input type="text" id="addressInput"/>
Radius: <select id="radiusSelect">
<option value="25" selected>25</option>
<option value="100">100</option>
<option value="200">200</option>
</select>
<input type="button" onclick="searchLocations()" value="Search
Locations"/></p>
<br/>
<br/>
<div style="width:500px; font-family:Arial,
sans-serif; font-size:11px; border:1px solid black">
<table>
<tbody>
<tr id="cm_mapTR">
<td width="200" valign="top"> <div id="sidebar"
style="overflow: auto; height: 400px; font-size: 11px; color: #000"></
div>
</td>
<td> <div id="map" style="overflow: hidden; width:300px;
height:400px"></div> </td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
On Nov 27, 1:38 pm, Mike Williams <[email protected]> wrote:
> Try changing your XML from being like this:
>
> <markers>
> <markers ... />
> <markers ... />
> </markers>
>
> to this:
>
> <markers>
> <marker ... />
> <marker ... />
> </markers>
>
> So that it matches this line:
>
> var markers = xml.documentElement.getElementsByTagName('marker');
>
> Javascript considers "marker" and "markers" to be different things, and
> your XML contains no tags called "marker".
>
> Note: Probably not a good idea to have your root tag have the same
> TagName as your marker tags, so leave that tag alone.
>
> --
> Mike Williamshttp://econym.org.uk/gmap
--
You received this message because you are subscribed to the Google Groups
"Google Maps API" 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-api?hl=en.