Código PHP:
<script>
//<![CDATA[
var watchId;
/* Controlamos los tiempos de espera mínimo y máximo de nuestra geolocalización respecto a la petición anterior */
var PositionOptions = {
timeout: 5000,
maximumAge: 60000,
enableHighAccurace: true // busca la mejor forma de geolocalización (GPS, tiangulación, ...)
};
/* Utiliza la geolocalalización solamente cuando se solicita.
Con PositionOptions aseguramos que la posición no corresponde a caché */
function initiate_geolocation() {
if (navigator.geolocation) {
browserSupportFlag = true;
var watchId = navigator.geolocation.getCurrentPosition(successCallback, errorCallback, PositionOptions);
} else {
document.getElementById("mensaje").value = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
}
}
/* Reitera la geolocalización hasta que la detenemos */
function watch_geolocation() {
if (navigator.geolocation) {
browserSupportFlag = true; // Para optimizarlo en los navegadores (mis dudas con IE)
var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback);
} else {
document.getElementById("mensaje").value = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
}
}
/* Detenemos la geolocalización reiterada */
function clear_watch_geolocation() {
if (navigator.geolocation) {
navigator.geolocation.clearWatch(watchId);
} else {
document.getElementById("mensaje").value = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
}
}
function successCallback(pos) {
var latitude = document.getElementById('latitude');
registro.latitude.value = pos.coords.latitude.toFixed(6); // Limito decimales de coordenadas a 6
var longitude = document.getElementById('longitude');
registro.longitude.value = pos.coords.longitude.toFixed(6);
};
/* Posibles errores que se pueden producir en la geolocalización */
function errorCallback(error) {
var appErrMessage = null;
if (error.core == error.PERMISSION_DENIED) {
appErrMessage = "El usuario no ha concedido los privilegios de geolocalización"
} else if (error.core == error.POSITION_UNAVAILABLE) {
appErrMessage = "Posicion no disponible"
} else if (error.core == error.TIMEOUT) {
appErrMessage = "Demasiado tiempo intentando obtener la localización del usuario."
} else if (error.core == error.UNKNOWN) {
appErrMessage = "Error desconocido"
} else {
appErrMessage = "Error insesperado"
}
document.getElementById("mensaje").innerHTML = appErrMessage
};
//]]>
</script>
quedo atento a sus respuestas saludos