Ciao ragazzi sto impazzendo con questo script. Come test sto replicando questo store Locator che si trova quihttps://pgtools.proximityitalia.com/Boots/StoreLocator/
Praticamente lo store Locator di questo link accetta in entrata il cap oppure la città/provincia e restituisce sulla mappa i vari markers. Il mio problema è che io all'interno del mio db non possiedo le coordinate gps dei vari siti che devo mostrare a video. Ho visto però che il codice permette di poterle calcolare direttamente dalla via però non so proprio cosa modificare. Qualcuno che capisce un pò di javascript potrebbe aiutarmi please.
Ecco i miei tre file:
map_function.js
All'interno della funzione searchLocationsNear dopo il richamo al mio file genXML.php vi sono delle righe commentate. Ho provato di tutto , ma nn riesco a farmi stampare i vari markers.codice:function searchLocationsNear(cap,prov,city) { var searchParams=''; if (typeof(cap) != 'undefined'){ searchParams ='?cap=' + cap; } //if (typeof(prov) != 'undefined'){ // searchParams ='?prov=' + prov; //} if (typeof(city) != 'undefined'){ if(city=='--'){ searchParams ='?prov=' + prov; }else{ searchParams ='?city=' + city; } } var sidebar = document.getElementById('sidebar'); sidebar.innerHTML = ""; sidebar.style.overflow='auto'; var div = document.createElement('div'); div.style.margin='10px'; div.innerHTML = '<img src=\'img/loading.gif\' border=\'0\'>'; sidebar.appendChild(div); //alert('where: ' + where); //var radius = document.getElementById('radiusSelect').value; //var searchUrl = 'phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius; //var searchUrl = 'genXML.php?cap=' + cap; var searchUrl = 'genXML.php'+searchParams; //alert(searchUrl); GDownloadUrl(searchUrl, function(data) { var xml = GXml.parse(data); var markers = xml.documentElement.getElementsByTagName('marker'); var rootmarkers = xml.getElementsByTagName("markers"); for (var i = 0; i < rootmarkers.length; i++) { var centerLat = rootmarkers[i].getAttribute("centerLat"); var centerLng = rootmarkers[i].getAttribute("centerLng"); } map.clearOverlays(); sidebar.innerHTML = ''; //alert('searchUrl: ' + searchUrl); if (markers.length == 0) { var div = document.createElement('div'); div.style.margin='10px'; div.innerHTML = 'La ricerca non ha prodotto risultati'; sidebar.appendChild(div); //sidebar.innerHTML = 'No results found.'; //map.setCenter(new GLatLng(centerLat,centerLng), 5); return; } var bounds = new GLatLngBounds(); for (i = 0; i < markers.length; i++) { //if ((markers[i].getAttribute('lat')!="") && (markers[i].getAttribute('lng')!="")){ var name = markers[i].getAttribute('name'); var address = markers[i].getAttribute('address'); var city = markers[i].getAttribute('city'); var prov = markers[i].getAttribute('prov'); var phone = markers[i].getAttribute('phone'); var feature = markers[i].getAttribute('feature'); var distance = parseFloat(markers[i].getAttribute('distance')); // if ((markers[i].getAttribute('lat')=="") || (markers[i].getAttribute('lng')=="")){ // geocoder.getLatLng(address+", "+city, function(latlng) { // // if (latlng) { //alert(latlng) // var marker = createMarker(latlng, name, address, city, prov, phone,feature); // } // }); // } else { // var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),parseFloat(markers[i].getAttribute('lng'))); // var marker = createMarker(point, name, address, city, prov, phone,feature); // } // // // if ((markers[i].getAttribute('lat')!="") || (markers[i].getAttribute('lng')!="")){ // var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),parseFloat(markers[i].getAttribute('lng'))); // var marker = createMarker(point, name, address, city, prov, phone,feature); // var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),parseFloat(markers[i].getAttribute('lng'))); var marker = createMarker(point, name, address, city, prov, phone,feature); map.addOverlay(marker); var sidebarEntry = createSidebarEntry(marker, name, address, distance, city, prov, phone,feature); sidebar.appendChild(sidebarEntry); bounds.extend(point); //} } //} map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); }); }
Ho provato a togliere i vari commenti che vi sono alla fine del file.Quindi se lat e lng sono vuoti lui li calcola e li stampa corretti (alert (latlng) )ma non mi visualizza nulla.
Qui anche il codice di genXMLphp
codice:<?php header("Content-type: text/xml"); require("phpsqlsearch_dbinfo.php"); function parseToXML($htmlStr) { $xmlStr=str_replace('<','<',$htmlStr); $xmlStr=str_replace('>','>',$xmlStr); $xmlStr=str_replace('"','"',$xmlStr); $xmlStr=str_replace("'",''',$xmlStr); $xmlStr=str_replace("&",'&',$xmlStr); return $xmlStr; } // Get parameters from URL //$cap = $_GET["cap"]; //$prov = $_GET["prov"]; $city = $_GET["city"]; // 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()); } // Select all the rows in the markers table $query = "SELECT * FROM markers WHERE city='$city'"; $result = mysql_query($query); if (!$result) { die('Invalid query: ' . mysql_error()); } // Start XML file, echo parent node echo "<markers>\n"; // Iterate through the rows, printing XML nodes for each while ($row = @mysql_fetch_assoc($result)){ // ADD TO XML DOCUMENT NODE echo '<marker '; echo 'name="' . parseToXML($row['name']) . '" '; echo 'address="' . parseToXML($row['address']) . '" '; echo 'city="' . $row['city'] . '" '; echo 'prov="' . $row['prov'] . '" '; echo 'feature="' . $row['feature'] . '" '; echo 'lat="" '; echo 'lng="" '; echo "/>\n"; } // End XML file echo "</markers>\n"; ?>

Rispondi quotando
