在哪里放置enableHighAccuracy和其他地理定位设置

时间:2014-10-30 15:47:23

标签: javascript android jquery geolocation

我有以下代码获取地理位置并发布它,然后在div中显示一个按钮。这适用于桌面,但在android中不起作用,这是本网站提到的常见问题。建议是添加

 {frequency:5000, maximumAge: 0, timeout: 100, enableHighAccuracy:true} 

到下面的某个地方的代码,我试过几个地方只是停止工作,我在哪里放这些值?

function getCoordPosition() { 

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
    $.ajax({
        type: "POST",
        url: "{{path('login_log_location')}}",
           data: {
            latitude: position.coords.latitude,
            longitude: position.coords.longitude
        },
        success: function () {
            $("#divputinarea").html("{{path('login_log_yourarea')}}">
           <button class="btn btn-large btn-primary">
           Find </button>');
          }

           });   
       });
    }  

}

根据下面的建议我尝试了以下内容,它没有{maximumAge:0,timeout:100,enableHighAccuracy:true},如果我添加它我得到错误'geolocation.getCurrentPosition的参数2不可调用“

 function getCoordPosition() { 

  if (navigator.geolocation) {

  function getPosition(position) {

    $.post("{{path('login_log_location')}}",  {  
     latitude:position.coords.latitude,
     longitude:position.coords.longitude })
     .done(function(data)  {
     $("#divputinarea").html('<form method=post action="
{{path('login_log_yourarea')}}"><button class="btn btn-large   
btn-primary">Find your nearest matches</button>');

 });

      }

navigator.geolocation.getCurrentPosition(getPosition, {  
maximumAge: 0,timeout: 100,enableHighAccuracy:true} ); 

  }  

  }

 </script> 

1 个答案:

答案 0 :(得分:0)

getCurrentPosition方法有三个参数:成功回调,错误回调和包含配置参数的对象。

navigator.geolocation.getCurrentPosition(
    successCallback,
    errorCallback,
    {frequency:5000, maximumAge: 0, timeout: 100, enableHighAccuracy:true} 
); 

这里是jsfiddle

编辑:您可以修改代码以定义这三个参数。

function getPosition(position) {
    $.post("{{path('login_log_location')}}",  {  
     latitude:position.coords.latitude,
     longitude:position.coords.longitude })
     .done(function(data)  {
         $("#divputinarea").html('<form method=post action="
    {{path('login_log_yourarea')}}"><button class="btn btn-large   
    btn-primary">Find your nearest matches</button>');
     });
  }

function onError(positionError) {
    // error handling goes here
}

function getCoordPosition() { 
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(   
        getPosition, // success callback
        onError, // error callback
        {maximumAge: 0,timeout: 100,enableHighAccuracy:true} // extra params
    ); 
  }  
}