Jquery mobile jquery移动和地理定位我在哪里

Jquery mobile jquery移动和地理定位我在哪里,jquery-mobile,geolocation,Jquery Mobile,Geolocation,有没有人有任何演示网站可以告诉我如何判断我是否在某个地址 因此,我希望有一个地址列表,当我接近一个地址时,我希望应用程序引发一个事件,然后我可以响应它 编辑 Lat/长距离接近警报会更好实际上这段代码是php而不是javascript,但您应该能够了解发生了什么 这是我用来检查一个地址是否在另一个地址的某个邻近范围内的公式。(这基本上就是你想要做的事情) 由于地球的曲率等原因,实际计算公式相当复杂,因此使用近似技术,并根据距离_km计算边界框 然后,您只需要检查您的地址坐标是否在该边界框内 我使

有没有人有任何演示网站可以告诉我如何判断我是否在某个地址

因此,我希望有一个地址列表,当我接近一个地址时,我希望应用程序引发一个事件,然后我可以响应它

编辑


Lat/长距离接近警报会更好实际上

这段代码是php而不是javascript,但您应该能够了解发生了什么

这是我用来检查一个地址是否在另一个地址的某个邻近范围内的公式。(这基本上就是你想要做的事情)

由于地球的曲率等原因,实际计算公式相当复杂,因此使用近似技术,并根据距离_km计算边界框

然后,您只需要检查您的地址坐标是否在该边界框内

我使用GoogleMapsAPI来确定每个地址的lat/lon

function approx_boundingbox($lat, $lon, $distance_km) {

        $lat_km_per_degs  = array(
            0  => 110.574,
            15 => 110.649,
            30 => 110.852, 
            45 => 111.132,
            60 => 111.412,
            75 => 111.618,
            90 => 111.694);

        $lon_km_per_degs  = array(
            0   => 111.320,
            15  => 107.551,
            30  => 96.486, 
            45  => 78.847,
            60  => 55.800,
            75  => 28.902,
            90  => 0,
            105 => 28.902,
            120 => 55.800,          
            135 => 78.847,      
            150 => 96.486, 
            165 => 107.551,
            180 => 111.320
            );      

        // determine km per deg approxmation for lat
        foreach ($lat_km_per_degs as $deg => $km) {
            if ($lat < $deg) {
                $lat_km_per_deg = $km;
            }
        }   

        // determine km per deg approxmation for lon
        foreach ($lon_km_per_degs as $deg => $km) {
            if ($lon < $deg) {
                $lon_km_per_deg = $km;
            }
        }           

        // radius in deg
        $lat_delta = ($distance_km / $lat_km_per_deg);
        $lon_delta = ($distance_km / $lon_km_per_deg);

        // calculate approximate box
        $min_lat = $lat - $lat_delta;
        $max_lat = $lat + $lat_delta;
        $min_lon = $lon - $lon_delta;
        $max_lon = $lon + $lon_delta;

        return array($min_lat, $min_lon, $max_lat, $max_lon);
    }
函数近似边界框($lat、$lon、$distance\u km){
$lat_km_per_degs=阵列(
0  => 110.574,
15 => 110.649,
30 => 110.852, 
45 => 111.132,
60 => 111.412,
75 => 111.618,
90 => 111.694);
$lon_km_/_degs=阵列(
0   => 111.320,
15  => 107.551,
30  => 96.486, 
45  => 78.847,
60  => 55.800,
75  => 28.902,
90  => 0,
105 => 28.902,
120 => 55.800,          
135 => 78.847,      
150 => 96.486, 
165 => 107.551,
180 => 111.320
);      
//确定lat的每度公里数近似值
foreach($lat_km_/degs$deg=>$km){
如果($lat<$deg){
$lat_km_/u度=$km;
}
}   
//确定lon的每度公里数近似值
foreach($lon_km_/degs$deg=>$km){
如果($lon<$deg){
$lon_km_/u deg=$km;
}
}           
//以度为单位的半径
$lat_delta=($distance_km/$lat_km_/u deg);
$lon_delta=($distance_km/$lon_km_/u deg);
//计算近似框
$min_lat=$lat-$lat_delta;
$max_lat=$lat+$lat_delta;
$min_lon=$lon-$lon_delta;
$max_lon=$lon+$lon_delta;
返回数组($min_-lat、$min_-lon、$max_-lat、$max_-lon);
}