Javascript 在操作之前获取用户的经度和纬度

Javascript 在操作之前获取用户的经度和纬度,javascript,php,html,google-maps,Javascript,Php,Html,Google Maps,我知道如何通过手机上的HTML5获取经度和纬度。但问题是,在用户每次访问我网站上的谷歌地图(locations/map)之前,如何获取用户的位置。我需要它,因为我正在使用haversine sql收集用户位置周围100公里范围内的数据。我曾考虑过提交带有经度和纬度值的表单,但这并不是很有效,因为用户可以直接打开地图的url(位置/地图),然后就不会发布任何值 问题是我必须使用javascript来获取lat和lng值,但我不确定将ti发送到sql查询的最佳方式是什么 哈弗森SQL select(

我知道如何通过手机上的HTML5获取经度和纬度。但问题是,在用户每次访问我网站上的谷歌地图(locations/map)之前,如何获取用户的位置。我需要它,因为我正在使用haversine sql收集用户位置周围100公里范围内的数据。我曾考虑过提交带有经度和纬度值的表单,但这并不是很有效,因为用户可以直接打开地图的url(位置/地图),然后就不会发布任何值

问题是我必须使用javascript来获取lat和lng值,但我不确定将ti发送到sql查询的最佳方式是什么

哈弗森SQL

select("6371 * acos(cos(radians(:MOJLAT)) * cos(radians(geolat)) * cos(radians(geolong) - radians(:MOJLONG)) + sin(radians(:MOJLAT)) * sin(radians(geolat)) )) AS distance_query HAVING distance_query <= 100");

addParams([':MOJLAT'=>$_POST["geolat_beforeaction"], ':MOJLONG'=>$_POST["geolong_beforeaction"]]);
我建议使用navigator.geolocation.getCurrentPosition,而不是
navigator.geolocation.getCurrentPosition
,这样位置会自动更新,并且可能更准确


至于问题的其余部分,您的界面是什么样子的?为什么以及何时提交表格?也许您可以使用AJAX获取数据?

这是从数据库生成的带有PIN的google地图。我正在提交表格,将lat和lng坐标发送到haversine sql。AJAX会让事情变得更复杂Dok,AJAX会让事情变得更复杂,但至少你想要的值会更新得更频繁。我在想,但如果用户关闭浏览器或断开与internet的连接,然后稍后刷新站点(我指的是手机),它应该还能工作,为什么不能呢?让我知道您认为可能会出现什么问题?
if(navigator.geolocation) 
{
    var options= {
      enableHighAccuracy: true,
      timeout: 5000,
      maximumAge: 0
    };

    navigator.geolocation.getCurrentPosition
    (
        function(position) 
        {   
            find(position);
        }, 
        function() 
        {       
          //handleNoGeolocation(true);
        },
        options
    );
} 

function find(position)
{
    //data to post to database. fill input fields with longitude and latitude
    var geoLat, geoLong;
    if(geoLat=$("#geolat"))
    {
        geoLat.val(position.coords.latitude);
    }

    if(geoLong=$("#geolong"))
    {
        geoLong.val(position.coords.longitude);
    }

}