Javascript W3C地理定位API在Chrome中不起作用

Javascript W3C地理定位API在Chrome中不起作用,javascript,firefox,google-chrome,geolocation,Javascript,Firefox,Google Chrome,Geolocation,以下代码适用于Firefox,但不适用于Google Chrome: <!DOCTYPE html> <html> <head> <title>title</title> <script type="text/javascript"> var successCallback = function(data) { console.l

以下代码适用于Firefox,但不适用于Google Chrome:

<!DOCTYPE html>
<html>
    <head>
        <title>title</title>
        <script type="text/javascript">
            var successCallback = function(data) {
                console.log('latitude: ' + data.coords.latitude + ' longitude: ' + data.coords.longitude);
            };

            var failureCallback = function() {
                console.log('location failure :(');
            };

            var logLocation = function() {

                //determine if the handset has client side geo location capabilities
                if(navigator.geolocation){
                   navigator.geolocation.getCurrentPosition(successCallback, failureCallback);
                }
                else{
                   alert("Functionality not available");
                }
            };

            logLocation();
            setTimeout(logLocation, 5000);
        </script>
    </head>
    <body>
        <p>Testing</p>
    <body>
</html>

标题
var successCallback=函数(数据){
log('latitude:'+data.coords.latitude+'longitude:'+data.coords.longitude);
};
var failureCallback=函数(){
log('位置故障:(');
};
var logLocation=函数(){
//确定手机是否具有客户端地理定位功能
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(successCallback,failureCallback);
}
否则{
警报(“功能不可用”);
}
};
logLocation();
设置超时(日志位置,5000);
测试

怎么回事?我以为谷歌Chrome应该支持W3C地理定位API。

对我来说非常适合——在Win7上使用Chrome 11和Firefox 4.0.1

  • 确保您没有在Chrome中禁用位置跟踪:
    Options>Under the Hood>Content Settings>location
  • 由于安全限制,不允许使用
    文件://
    方案加载的资源访问该位置。请参阅

如果您的域不安全(例如HTTP而非HTTPS),则不允许您访问Chrome中的位置。这是从Chrome版本50(2016年4月20日太平洋标准时间12点)开始的

详情请参见。

2017年:

注意:从Chrome 50开始,地理位置API将仅在HTTPS等安全上下文中工作。如果您的站点托管在非安全源(如HTTP)上,则获取用户位置的请求将不再有效


地理定位API允许您在征得用户同意的情况下发现用户的位置。您可以使用此功能引导用户到达目的地,并对用户创建的内容进行地理标记;例如,标记拍摄照片的位置

地理定位API还允许您查看用户所在的位置,并在用户移动时对其进行跟踪,始终获得用户的同意(并且仅在页面打开时)。这创建了许多有趣的用例,例如与后端系统集成,以便在用户靠近时准备收集订单

在使用地理定位API时,您需要了解很多事情。本指南将引导您了解常见的用例和解决方案


它对我来说很好用-在Win7上使用Chrome 11和Firefox 4.0.1

确保您没有在Chrome中禁用位置跟踪:选项>引擎盖下>内容设置>位置请允许该权限 检查权限后,请运行它

运行后,它将是
successcallback
,否则将进入
errorcallback

函数成功回调(位置)
{
var userLatLng=new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
变量myOptions={
缩放:15,
中心:userLatLng,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var mapObject=new google.maps.Map(document.getElementById(“googleMap”),myOptions);
var marker=new google.maps.marker({
map:mapObject,
职位:userLatLng
});
}
函数失败回调(错误){
开关(错误代码){
案例1:
警报(“用户拒绝了地理定位请求”);
打破
案例2:
警报(“位置信息不可用。请确保位置处于打开状态”);
打破
案例3:
警报(“超时”);
打破
案例4:
警报(“发生未知错误”);
打破
}
}