link to my map http://sharplesenterprise.com.au/Gmaps3/Markers
On Jul 8, 11:46 am, sharples <[email protected]> wrote: > Im using a mysql data base and php to query the database and the map > api to show the map with our stores within a certain radius of the > search location , with have two type of stores so i added a extra > field to the mysql table called type and assigned a red or blue marker > to the different stores , > My php xml output has the store type so the page get a valid result > but it show red markers for all stores > so i think it is the javascript (api) that not working or wrong as the > php query works and the xml out put works > here are my files > > ##### html java script ####################### > > <html xmlns="http://www.w3.org/1999/xhtml"> > <head> > <meta http-equiv="content-type" content="text/html; charset=utf-8"/ > > <title>Markers.sharplesenterprise.com.au</title> > <script src="http://maps.google.com/maps?file=api&v=2&key=@@@@@" > type="text/javascript"></script> > > <script type="text/javascript"> > > //<![CDATA[ > // set up two var's for the custom icons and download then -- > fix download icons and save to disk stop downloads > 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 = []; > // var customIcons = ['type']; > customIcons["Movingtogether"] = iconBlue; > customIcons["Medicaltogether"] = iconRed; > > var map; > var geocoder; > > //checks if browser is compatible eg. javascript, XHTML > 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(-33.894115, 151.266006), 4); > } > } > //call search location method by looking up the location in > the text box and then GEOCoding the address for SQL query > function searchLocations() { > var address = document.getElementById > ('addressInput').value; > geocoder.getLatLng(address, function(latlng) { > if (!latlng) { > alert(address + ' not found'); > } else { > searchLocationsNear(latlng); > } > }); > } > //takes the values [lat-lng] returned by search location and > then run a query in the database to find > //sites that are within a radius of the address passed to it. > function searchLocationsNear(center) { > var radius = document.getElementById > ('radiusSelect').value; > var searchUrl = 'phpsqlsearch_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(-33.894115, 151.266006), > 4); > 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 type = markers[i].getAttribute('type'); > 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, > type); > map.addOverlay(marker); > var sidebarEntry = createSidebarEntry(marker, > name, address, type, distance); > sidebar.appendChild(sidebarEntry); > bounds.extend(point); > } > map.setCenter(bounds.getCenter(), > map.getBoundsZoomLevel(bounds)); > }); > } > > function createMarker(point, name, address, type) { > var marker = new GMarker(point, customIcons[type]); > var html = '<b>' + name + '</b> <br/>' + address; > GEvent.addListener(marker, 'click', function() { > marker.openInfoWindowHtml(html); > }); > return marker; > } > > function createSidebarEntry(marker, name, address, type, > 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> > <style type="text/css"> > #addressInput > { > width: 251px; > } > </style> > </head> > <h1 style="text-align: center; color: #0000FF">Sharples Enterprise > Find Sites Near Location</h1> > <body onload="load()" onunload="GUnload()"> > > Address: <input type="text" id="addressInput"/> > > Radius: <select id="radiusSelect"> > > <option value="5" selected>5</option> > <option value="10">10</option> > <option value="15">15</option> > <option value="25">25</option> > <option value="50">50</option> > <option value="100">100</option> > <option value="200">200</option> > > </select> > > <input type="button" onclick="searchLocations()" value="Search > Locations"/> > <br/> > <br/> > <div style="width:900px; font-family:Arial, > sans-serif; font-size:11px; border:1px solid black"> > <table> > <tbody> > <tr id="cm_mapTR"> > > <td width="300" valign="top"> <div id="sidebar" > style="overflow: auto; height: 600px; font-size: 11px; color: #000"></ > div> > > </td> > <td> <div id="map" style="overflow: hidden; width:600px; > height:600px"></div> </td> > > </tr> > </tbody> > </table> > </div> > </body> > </html> > > ####################################################### > php query make xml > ################################################## > > <?php > require("phpsqlsearch_dbinfo.php"); > > // Get parameters from URL > $center_lat = $_GET["lat"]; > $center_lng = $_GET["lng"]; > $radius = $_GET["radius"]; > > // Start XML file, create parent node > $dom = new DOMDocument("1.0"); > $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()); > > } > > // Set the active mySQL database > $db_selected = mysql_select_db($database, $connection); > if (!$db_selected) { > die ("Can\'t use db : " . mysql_error()); > > } > > // Search the rows in the markers table > $query = sprintf("SELECT address, name, lat, lng, type, ( 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", > 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 the rows, adding XML nodes for each > while ($row = @mysql_fetch_assoc($result)){ > $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']); > $newnode->setAttribute("distance", $row['distance']); > > } > > echo $dom->saveXML(); > ?> --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
