【问题标题】:Close markers with google maps using Lat and Lng使用 Lat 和 Lng 使用谷歌地图关闭标记
【发布时间】:2013-02-15 08:01:41
【问题描述】:

我正在使用谷歌地图 API (vs3) 编写在线地图。

我正在做的是在我的数据库中存储位置(经纬度)并将它们添加到 在 initialize() 上映射 - 根据位置放置标记。到目前为止一切顺利。

现在我有一个函数可以显示我的位置(或用户定义的位置)。我想显示 111 公里 = 1 度纬度/经度以内的地方。我怎样才能做到这一点?

只是为了告诉你我的意思:

函数 showPlaceCloseBy(lat,lng){

var myLat=lat;
var myLng=lng;

for (var i=0; i < pins.length; i++) {
     // HERE WE FIND WHETHER THE PLACE IS CLOSE ENOUGH
             returnDistance(myLat, myLng, pins[i],i);

    }
}



function returnDistance(myLat,myLng,pinToCompare,i){

// PIN  
var calcLat= myLat-pinToCompare.position.hb; // IS THIS RIGHT?
var calcLong = myLng-pinToCompare.position.ib; // IS THIS RIGHT?

 // HERE I NEED TO DO THE CALCULATION AND RETURN THE PIN NAME.              

     }

所以,现在我需要在 myLat 和 pinLat 之间进行计算(可能是减法 - ? -)。谁能帮我?

谢谢大家。

【问题讨论】:

    标签: javascript google-maps geography


    【解决方案1】:

    Google Maps API v3 spherical geometry library 有一个方法:

    computeDistanceBetween(from:LatLng, to:LatLng) - number - 返回两个 LatLng 之间的距离。

    返回两个 LatLng 对象之间的距离(以米为单位)。

    (未测试)

    var closeDistance = 111000; // 111 km
    function showPlaceCloseBy(lat,lng){
      var myLocation = new google.maps.LatLng(lat, lng);
      closePins = [];
      for (var i=0; i < pins.length; i++) {
         // HERE WE FIND WHETHER THE PLACE IS CLOSE ENOUGH
         if (calculateDistanceBetween(myLocation, pins[i].getPosition()) < closeDistance)
         {
           closePins.push(pins[i]);
         }
      }
      return closePins;
    }
    
    
    // Note: do not use undocumented properties like .hb, .ib; they can and do change.
    var calcLat= myLat-pinToCompare.position.hb; // IS THIS RIGHT?
    var calcLong = myLng-pinToCompare.position.ib; // IS THIS RIGHT?
    

    【讨论】:

      【解决方案2】:

      这应该只是一个简单的距离计算 http://www.purplemath.com/modules/distform.htm

      所以你的代码是

      return Math.sqrt( Math.pow( calcLat, 2 ) + Math.pow( calcLong, 2 ) )
      

      【讨论】:

        【解决方案3】:

        你会在这里找到一切: http://www.movable-type.co.uk/scripts/latlong.html

        各种精度、方向(方位角/方位角)的距离,一切;-)

        【讨论】:

          猜你喜欢
          • 2020-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多