如何使用javascript显示离我所在位置最近的纬度和经度
How to display the nearest latitude and longitude to my location using javascript?
我是堆栈溢出的新手,我想知道是否有人能帮助我使用javascript并获取离我当前位置最近的纬度和经度。
我有一个API,它存储纬度和经度坐标,我将这些坐标保存在javascript变量中,还将我的当前位置保存在变量中。
我需要以某种方式对列表中的经纬度坐标列表进行排序,以显示离我当前位置最近的坐标。
这有道理吗?
计算距离的Javascript函数
$nearest=1; //Limit within 1 KM.
$("#jobnews").html("<h2>Results:</h2>");
$.each(info.companies.company, function(index, job)
{
var lat = list.location.lat;
var lng = list.location.lng;
var nam = current.location.lat;
var cou = current.location.lng;
//In below line we will get the distance between current and given coordinates.
var d=distance(nam, cou, lat, lng, "K");
//Check the d is within 1 KM, If so then add it to map.
if(nearest>d)
{
var map = "</p><img src='maps.google.com/maps/api/staticmap?center="; + lat + "," +lng +"&zoom=17&size=400x300&key="+key+"&maptype=roadmap&visual_refresh=true&markers=color:red|"+lat+","+lng+"&sensor=true'width='300' height='280'alt='Map of your location.'/>";
var nearestList = "<div><h3>DISPLAY INFO: "+lis.name+link+nam+lat+lng+cou+map+"</div>";
}
}
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
return dist
}
传递到功能:
lat1,lon1=点1的纬度和经度(以十进制度数为单位)
lat2,lon2=点2的纬度和经度(十进制度数)
单位=您想要的结果单位
其中:"M"是法定里程
"K"是公里(默认值)
"N"是海里
您可能需要包含Geolib库。
第一个示例演示了getDistance
函数。如果你把它与map
和sort
结合起来,你可以在几行中得到你想要的:
var current = {lat: 10, lng: 20}
var coords = [{lat: 5, lng: 5}, {lat: 10.2, lng: 19.6}, {lat: 60, lng: 10}];
var distFromCurrent = function(coord) {
return {coord: coord, dist: geolib.getDistance(current, coord)};
}
var closest = coords.map(distFromCurrent).sort(function(a,b) { return a.dist - b.dist })[0];
console.log("Closest: " + closest.coord.lat + ", " + closest.coord.lng);
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 如何查找离单击位置最近的子项
- 如何使用javascript显示离我所在位置最近的纬度和经度
- 点击一个按钮,谷歌地图应该至少适合3个离你当前位置点最近的标记
- 找到具有绝对位置的最近元素
- 在谷歌地图API JS V3上显示距离用户当前位置最近的多个标记,距离30公里
- 将滚动位置调整到最近的容器
- 按最近的位置过滤WordPress帖子
- 如何使用jQuery或JavaScript从用户位置返回3个最近的位置
- 返回离用户位置(地理位置)最近的3个位置,并列出这些位置
- 使用jQuery查找离滚动位置最近的HTML片段标识符
- 使用javascript查找元素相对于最近相对定位的父元素的位置
- 使用谷歌地图上的地理位置,将学生按离彼此最近的位置分组
- 根据地理位置获得最近的距离
- 从谷歌地图api获取最近的位置
- 最近的位置(标记)在谷歌地图
- 谷歌地图显示最近的数据库标记到我的位置
- 用户地理位置到最近地址的计算
- 从已知位置查找最近的列出(数组?)城市