如何获得坐标数组的最大/最小边界
How to get maximum/minimum boundaries with array of coordinates
谁能帮助我的逻辑上我应该如何得到最大/最小坐标,与坐标数组?我想要得到的是它从这些坐标数组中所能得到的最长距离。交货。
<>之前Var坐标= [{纬度:-231,液化天然气:223升}, {纬度:43岁液化天然气:-4323}, {纬度:42312,液化天然气:-231}, {纬度:435345,液化天然气:-6563})//这里有一些过滤器计算…//这就是我需要的Var min_coord = {lat, LNG}Var max_cods = {lat, LNG}您可以创建值的数组,然后使用Math.max
和Math.min
来获得最高和最低的值
var coordinates = [{
lat: -231,
lng: 223
}, {
lat: 43,
lng: -4323
}, {
lat: 42312,
lng: -231
}, {
lat: 435345,
lng: -6563
}]
var lat = coordinates.map(function(p) {return p.lat});
var lng = coordinates.map(function(p) {return p.lng});
var min_coords = {
lat : Math.min.apply(null, lat),
lng : Math.min.apply(null, lng)
}
var max_coords = {
lat : Math.max.apply(null, lat),
lng : Math.max.apply(null, lng)
}
console.log(min_coords);
console.log(max_coords);
使用Array.prototype.reduce
对数组进行最小值和最大值过滤的解决方案-下面的演示:
var coordinates=[{lat:-231,lng:223},{lat:43,lng:-4323},{lat:42312,lng:-231},{lat:435345,lng:-6563}];
var result = coordinates.reduce(function(prev,curr){
if(curr.lat < prev.min_cords.lat)
prev.min_cords.lat = curr.lat;
if(curr.lat > prev.max_cords.lat)
prev.max_cords.lat = curr.lat;
if(curr.lng < prev.min_cords.lng)
prev.min_cords.lng = curr.lng;
if(curr.lng > prev.max_cords.lng)
prev.max_cords.lng = curr.lng;
return prev;
},{min_cords:{lat:Infinity,lng:Infinity},max_cords:{lat:-Infinity,lng:-Infinity}});
console.log(result);
.as-console-wrapper{top:0;max-height:100%!important;}
相关文章:
- 如何在下面的ES6循环中获得前面的文本
- 我可以获得相对于被点击元素的确切点击位置吗
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- 如何在javascript中获得与特定数字相等的随机数
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 我怎样才能获得承诺的价值
- 检查元素是如何获得焦点的
- javascript处理一个对象数组以获得一个新的对象数组
- 如何更改<选择>使用angularJS从控制器获得的值
- 我如何才能获得Facebook在边界内的位置列表
- 有没有一种方法可以获得DOM元素的边界框(以像素为单位)
- 如何获得Formee图例边界增长与DOM元素添加编程
- 如何获得坐标数组的最大/最小边界
- 如何获得地图边界
- 如何获得边界框坐标为我的谷歌地图窗口
- 如何在边界框内获得无头浏览器中的元素