我们正在使用AngularJS和Google Maps API实施网站。 用户可以输入关键字,然后重定向到新页面,其中包含带有多个标记的地图(表示结果)。 在此结果页面上,浏览器始终询问用户位置。当用户选择"拒绝"时,地图会跳转到0,0位置(海中某处)。
Airbnb.com也使用Google地图,浏览器从不询问用户位置。
有任何建议吗?
答案 0 :(得分:4)
是否可以阻止浏览器位置检查?
不,出于明显的安全原因,无法从JavaScript禁用此检查。但是,用户可以记住"允许从Chrome访问位置的选择。
如果没有,是否有可以捕获的事件,所以我可以更改地图跳转到的位置?
您可以执行navigator.geolocation.getCurrentPosition(showPosition,showError);
之类的操作
function showError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
编辑:对于AirBnB事物,可以通过IP地址使用另一种类型的地理定位,这不需要任何许可,但缺乏精确性。有关按IP地理位置的详细信息,请参阅此thread