获取与我当前位置相比存储在数据库中的附近位置列表

时间:2014-03-19 14:16:46

标签: javascript jquery html5 google-maps jquery-mobile

我使用jQuery mobile和html5,我希望将我的数据库中存储的附近(可变固定)位置列表与我当前的位置相比较, 我应该使用ComputeDistanceBetween函数和select如何? 拜托,我需要帮助 这是我的尝试:

<!DOCTYPE html>
<html>
 <head>
<script src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry">        </script>
</head>
 <body>
<p id="demo"></p>
<button onclick="getLocation()" id="demo">get current location</button>
<button onclick="console.log(distance)">get ditance from current location to other location</button>

<script>


    var x=document.getElementById("demo");

    function getLocation() {
   navigator.geolocation.getCurrentPosition(
            function(position) {
             var latLngA = new     google.maps.LatLng(position.coords.latitude,position.coords.longitude);
              var latLngB = new google.maps.LatLng(40.778721618334295,             -73.96648406982422);
            var distance =                
    google.maps.geometry.spherical.computeDistanceBetween
   (latLngA, latLngB);
            alert(distance);//In metres
        },
        function() {
            alert("geolocation not supported!!");
        }
  );
   }
    </script>
   </body>
   </html>

我需要与数据库中的所有列表进行比较,而不是使用单点修复

1 个答案:

答案 0 :(得分:0)

如果您正在处理非常少量的数据,那么您可以查询数据库中的所有数据点并比较距离,然后选择最小化距离的数据点。如果你有一些数据点,那么非常不足

更好的解决方案可能是将您的地理点划分为象限,并将象限信息与点一起存储到数据库中。

然后,当您想要找到接近给定点的点时,您可以从相关点计算象限,并在数据库中查询象限中的所有点。然后,您只需比较该象限中的那些。

<强>更新

您忘记提及的另一个重要事实是您的数据库后端是什么。这很重要,因为例如,如果您使用SQL Server 2008或更新版本,则它具有built-in support for spatial data。你可能想看看这个..