Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制大圈_Javascript_Great Circle - Fatal编程技术网

Javascript 限制大圈

Javascript 限制大圈,javascript,great-circle,Javascript,Great Circle,我需要限制大圆问题的半径。圆圈将一直延伸,直到它碰到另一个项目 我需要它把圆圈的范围限制在5英里以内 这是我的密码 function find_closest_ticket(ticket, lat, lng) { // var lat = map.position.coords.latitude; // var lon = map.position.coords.longitude; // lat = 24.709254; // lng = -81.381927; var R = 6

我需要限制大圆问题的半径。圆圈将一直延伸,直到它碰到另一个项目

我需要它把圆圈的范围限制在5英里以内

这是我的密码

function find_closest_ticket(ticket, lat, lng) {

//  var lat = map.position.coords.latitude;
//  var lon = map.position.coords.longitude;

//  lat = 24.709254;
//  lng = -81.381927;
var R = 6371; // radius of earth in km
var distances = [];
var closest = -1;

for (i = 0; i < ticket.length; i++) {
  var mlat = ticket[i].soLAT;
  var mlng = ticket[i].soLNG;
  var dLat = rad(mlat - lat);
  var dLong = rad(mlng - lng);
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
  Math.cos(rad(lat)) * Math.cos(rad(lat)) * Math.sin(dLong / 2) * Math.sin(dLong / 2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  var d = R * c;
  distances[i] = d;
  if (closest == -1 || d < distances[closest]) {
  closest = i;
  }
  }
return closest;
}
功能查找最近的车票(车票、lat、lng){
//var lat=地图位置坐标纬度;
//var lon=map.position.coords.longitude;
//lat=24.709254;
//液化天然气=-81.381927;
var R=6371;//地球半径,单位为km
var距离=[];
var最近值=-1;
对于(i=0;i
首先,令人惊讶的是,您使用了一个返回以公里为单位的半径的函数,然后希望将其限制为5英里。您应该下定决心:要么编写返回英里数的函数并添加以英里为单位的限制,要么保持函数不变并以公里为单位进行限制(8公里大约等于5英里)

如果要使用英里数,请更改此行:

var R = 6371; // radius of earth in km
致:

并替换:

return closest;
return closest;
作者:

或者,如果您想坚持km,则仅更换:

作者:


你忘了问问题了。问题被贴在第二行。我需要它将圆圈的范围限制在5英里以内。这是陈述,不是问题。你有什么问题吗?我需要把射程限制在5英里还是8公里?
return Math.min(5, closest);
return closest;
return Math.min(8, closest);