I found this code on the Internet and I tried to adapt it to my project, to get the current position.
In the jsp I have the references:
<script src="repartidores/js/jquery.js" type="text/javascript"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=MI_KEY&libraries=geometry"></script>
<script src="repartidores/js/posicionActual.js" type="text/javascript"></script>
And in current position.js:
var registrandoPosicion = false;
var idRegistroPosicion;
var ultimaPosicion;
var lat;
var lng;
function registrarPosicion() {
if (registrandoPosicion) {
registrandoPosicion = false;
navigator.geolocation.clearWatch(idRegistroPosicion);
limpiarUbicacion();
} else {
idRegistroPosicion = navigator.geolocation.watchPosition(exitoRegistroPosicion, falloRegistroPosicion, {
enableHighAccuracy: true,
maximumAge: 30000,
timeout: 27000
});
}
}
function exitoRegistroPosicion(position) {
if (!registrandoPosicion) {
// Es la primera vez
registrandoPosicion = true;
lat = position.coords.latitude;
lng = position.coords.longitude;
ultimaPosicion = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
$.ajax({
type: 'GET',
url: 'localhost:8084/appRepartidores/PosicionActualServlet',
data:{"latitud": lat, "longitud": lng}
});
} else {
var posicionActual = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
if (google.maps.geometry.shperical.computeDistanceBetween(posicionActual, ultimaPosicion) > 100){
ultimaPosicion = posicionActual;
lat = position.coords.latitude;
lng = position.coords.longitude;
$.ajax({
type: 'GET',
url: 'localhost:8084/appRepartidores/PosicionActualServlet',
data:{"latitud": lat, "longitud": lng}
});
}
}
}
function falloRegistroPosicion() {
alert('No se pudo determinar la ubicación');
limpiarUbicacion();
}
function limpiarUbicacion() {
ultimaPosicionUsuario = new google.maps.LatLng(0, 0);
}
$('#localizar').on('click', function(e) {
e.preventDefault();
registrarPosicion();
});
When I run it and press the button, it throws me this error:
SCRIPT5007: Unable to get property 'computeDistanceBetween' of undefined or null reference positionActual.js (37,13)