Então, eu tenho um pouco de JS bastante simples usando o jammy navigator.geolocation.getCurrentPosition.
$(document).ready(function(){
$("#business-locate, #people-locate").click(function() {
navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
});
navigator.geolocation.getCurrentPosition(foundLocation, noLocation);
function foundLocation(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var userLocation = lat + ', ' + lon;
$("#business-current-location, #people-current-location").remove();
$("#Near-Me")
.watermark("Current Location")
.after("<input type='hidden' name='business-current-location' id='business-current-location' value='"+userLocation+"' />");
$("#people-Near-Me")
.watermark("Current Location")
.after("<input type='hidden' name='people-current-location' id='people-current-location' value='"+userLocation+"' />");
}
function noLocation() {
$("#Near-Me").watermark("Could not find location");
$("#people-Near-Me").watermark("Could not find location");
}
})//end DocReady
Basicamente, o que está acontecendo aqui é que obtemos a posição atual; se obtida, duas "marcas d'água" são colocadas em dois campos que dizem "Posição atual" e dois campos ocultos são criados com os dados de longo prazo como valor (eles são removidos no começo para que não sejam duplicados toda vez). Há também dois botões que têm uma função de clique vinculada a eles que fazem a mesma coisa. Infelizmente, pela terceira vez, funciona. Qual é o problema aqui ???
noLocation
função está sendo chamada? Nesse caso, você pode adicionar umerror
parâmetro noLocation()
e, em seguida, error.code
e error.message
pode ajudá-lo na depuração. Também pode nos ajudar a saber qual navegador você está usando e se encontrar o mesmo problema em navegadores diferentes.