Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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_Arrays_Sorting_Coordinates_Geocoding - Fatal编程技术网

Javascript-在两组数字之间添加缺少的值

Javascript-在两组数字之间添加缺少的值,javascript,arrays,sorting,coordinates,geocoding,Javascript,Arrays,Sorting,Coordinates,Geocoding,我脑子里有一个概念,但不完全确定实现它的最佳方式 我正在研究(用JavaScript)填充两点之间缺少的坐标数据值(以lat/lon对)的方法 我有两个坐标对,如下所示: Point A lat="32.7188350" lon="-16.7611710" Point B lat="32.711461" lon="-16.911347" 我首先需要把每一对的纬度和经度提取成一个单独的值 所以 latA="32.718835" lonA="-16.761171" latB="32.7114

我脑子里有一个概念,但不完全确定实现它的最佳方式

我正在研究(用JavaScript)填充两点之间缺少的坐标数据值(以lat/lon对)的方法

我有两个坐标对,如下所示:

Point A  lat="32.7188350" lon="-16.7611710"

Point B lat="32.711461" lon="-16.911347"
我首先需要把每一对的纬度和经度提取成一个单独的值

所以

latA="32.718835"
lonA="-16.761171"

latB="32.711461"
lonB="-16.911347"
我希望以该精度在latA和latB之间插入其他(缺少的)值。在本例中,我们将创建7373个额外的数字/纬度点

32.718835 - 32.711461 = 0.007374
然后,我想为每个纬度点插入相同数量的对应纵向点(7373)。
最终结果将是7373个额外的坐标对-从而填补空白

非常感谢您对如何实施此计划的任何建议

注意:我假设您想要a和B之间直线上的点列表

以下代码将运行,无论这两个点如何相互关联,即如果latA大于或小于latB,以及lonA大于或小于任何组合中的lonB

它可能有点复杂,“整数”的使用可能有点过头了,但这应该给你一个如何继续的想法

var latA=32.718835, lonA=-16.761171, latB=32.711461, lonB=-16.911347, lat=Math.floor(latA*1e6),//使用整数 lon=数学楼层(lonA*1e6), count=Math.floor(Math.abs(latA-latB)*1e6)+1,//count始终为正,我们加上1,因此以下是正确的 lonDiff=(lonB lonA)/count*1e6,//这可以是正的也可以是负的,我们不在乎,它乘以1e6,所以我们使用整数 latSign=Math.sign(latB-latA),//所以我们朝着正确的方向走 arr=[];
对于(设i=0;i我已解决类似的任务,如下所示:

let points=[[32.7188350,-16.7611710],[32.711461,-16.911347];
让结果=[];
for(设i=0;i警报(结果);
据我所知,这个问题适用于线性函数,为了填充a和B之间的点,我们必须应用由这些点a和B定义的函数。下面是一个示例:

var pointB=[“-16.911347”,“32.711461”];//x,y
var pointA=[“-16.7611710”,“32.7188350”];//x,y
变量斜率=(点B[1]-点A[1])/(点B[0]-点A[0]);
var b=点b[1]-斜率*点b[0];
var steps=Math.ceil((pointA[1]-pointB[1])*1000000);

变量点=[]//for循环可以从哪里获得经度和纬度?@Jaromanda X-这对纬度来说是有意义的,但是我如何在经度的两个点之间插入特定数量的数字呢?我觉得问题“有点不清楚,或者可能只是我自己,因为我不熟悉与纬度/经度相关的代码。”d算法。有人能说得更好吗?生成循环并用对象填充数组,数组中的每个项都将是{lat:val,lon:val}这太棒了!我将对此进行修补,看看进展如何,非常感谢。只是一个快速更新-我测试了这一点(使用最小点数方法),使用document.write(JSON.stringify)转储到屏幕(arr));-工作完美:)