ciao a tutti. ho un db con un elenco di punti geograficicon latitudine e longitudine. ho bisogno di creare uno script che, dato la mia posizione attuale, mi indichi le posizioni presenti attorno a me in un raggio di 5 km. ora io ho fatto questo:
il problema è che la funzione non produce risultato. nella query non riesco a inserire le coordinate del mio punto, nè quelli presenti nel db. la mia tabella ha i campi latit e long di latitudine e longitudine.
chi può darmi una dritta perchè sono bloccato da un paio di giorni su questo codice.
Codice:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(mostra_mappa);
}else{
alert('La geo-localizzazione NON è possibile');
}
function mostra_mappa(posizione) {
var my_lat = posizione.coords.latitude;
var my_lon = posizione.coords.longitude;
// Define your locations: HTML content for the info window, latitude, longitude
var locations = [
['Tu Sei Qui', posizione.coords.latitude, posizione.coords.longitude],
/*
SELECT *, TRUNCATE ( 6363 * sqrt( POW( RADIANS(posizione.coords.latitude ) - RADIANS(latit) , 2 ) + POW( RADIANS(posizione.coords.longitude) - RADIANS(long) , 2 ) ) , 3 ) AS distance FROM dd_loc WHERE TRUNCATE ( 6363 * sqrt( POW( RADIANS(posizione.coords.latitude) - RADIANS(latit) , 2 ) + POW( RADIANS(posizione.coords.longitude) - RADIANS(long) , 2 ) ) , 3 ) < 10 ORDER BY distance ASC";
*/
/*SELECT *, ( 6371 * acos( cos( radians(38.183333) ) * cos( radians( latit ) ) * cos( radians( long ) - radians(15.5668) ) + sin( radians(38.183333) ) * sin( radians( latit ) ) ) ) AS distance FROM dd_loc HAVING distance < 10 ORDER BY distance */
<?php
include("connectionDB.php");
$sel = "SELECT latit,long,citta, (6371 * acos(cos(rad2deg(38.183333)) * cos(rad2deg(latit)) * cos(rad2deg(long)-rad2deg(15.5668)) + sin(rad2deg(38.183333)) * sin(rad2deg(latit)))) AS distance FROM dd_loc HAVING distance < 5000 ORDER BY distance";
$res = mysql_query($sel);
while($dati = mysql_fetch_assoc($res)){
echo "
['$dati[citta]', $dati[latit], $dati[long]],
";
}
?>
];
// Setup the different icons and shadows
var iconURLPrefix = 'http://maps.google.com/mapfiles/ms/icons/';
var icons = [
iconURLPrefix + 'yellow-dot.png',
iconURLPrefix + 'red-dot.png',
]
var icons_length = icons.length;
var shadow = {
anchor: new google.maps.Point(posizione.coords.latitude, posizione.coords.longitude),
url: iconURLPrefix + 'msmarker.shadow.png'
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 50,
center: new google.maps.LatLng(posizione.coords.latitude, posizione.coords.longitude),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
panControl: false,
zoomControlOptions: {
position: google.maps.ControlPosition.LEFT_BOTTOM
}
});
var infowindow = new google.maps.InfoWindow({
maxWidth: 160
});
var marker;
var markers = new Array();
var iconCounter = 0;
// Add the markers and infowindows to the map
for (var i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map,
icon : icons[iconCounter],
shadow: shadow
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
if(i>0){iconCounter=1;}
// We only have a limited number of possible icon colors, so we may have to restart the counter
if(iconCounter >= icons_length){
iconCounter = 0;
}
}
function AutoCenter() {
// Create a new viewpoint bound
var bounds = new google.maps.LatLngBounds();
// Go through each...
$.each(markers, function (index, marker) {
bounds.extend(marker.position);
});
// Fit these bounds to the map
map.fitBounds(bounds);
}
AutoCenter();
}
</script>
il problema è che la funzione non produce risultato. nella query non riesco a inserire le coordinate del mio punto, nè quelli presenti nel db. la mia tabella ha i campi latit e long di latitudine e longitudine.
chi può darmi una dritta perchè sono bloccato da un paio di giorni su questo codice.