在此先感谢您。我建立了一个网站,当您单击“导航”按钮时,可以选择将您引导至特定位置。启用手机的 GPS 后,在桌面上一切正常,在移动设备上一切正常。
我使用谷歌地图参考,它工作得很好:
http://maps.google.com/maps?saddr=myLat,myLng&daddr=targetLat,targetLng
我在$('.button').click()上这样做。不在$(window).load或$(document).ready上。当您单击该按钮时,它会调用地理定位功能:
function getGeolocation(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
} else {
$('.error-message').html('<p>Your browser does not support this function</p>');
}
}
function geoSuccess(position) {
myLat = position.coords.latitude;
myLng = position.coords.longitude;
window.location.href = 'http://maps.google.com/maps?saddr=' + myLat + ',' + myLng + '&daddr=targetLat,targetLng';
}
function geoError(){
switch(error.code) {
alert('example alert - enable GPS');
case error.PERMISSION_DENIED:
$('.error-message').html('<p>User denied the request for Geolocation.</p>');
break;
case error.POSITION_UNAVAILABLE:
$('.error-message').html('<p>Location information is unavailable.</p>');
break;
case error.TIMEOUT:
$('.error-message').html('<p>The request to get user location timed out.</p>');
break;
case error.UNKNOWN_ERROR:
$('.error-message').html('<p>An unknown error occurred.</p>');
break;
}
}
但是当 GPS 被禁用时,问题就来了。
首先,有时它不会进入geoError()。我尝试了很多次,但我唯一“发现”的是它有时会缓存。那可能吗 ?
但主要问题是,当 GPS 被禁用时,弹出“示例警报”,然后我打开我的 GPS 并再次单击按钮,它不再工作。我必须刷新页面才能启用 GPS。我想避免这种情况。有谁知道为什么会这样,有没有办法做我想做的事?
另一个问题是当我在打开 GPS 的情况下加载我的页面时。然后我将其关闭并单击按钮。什么都没有发生。它进入getGeolocation(),变为真,然后停止。它不输入 getCurrentPosition()。有任何想法吗?