gpt4 book ai didi

Javascript 在具有纬度和经度的最小值和最大值的表中查找并返回网格值

转载 作者:行者123 更新时间:2023-12-02 22:29:55 24 4
gpt4 key购买 nike

我有一个从 json 获取的纬度/经度对。要求是我需要返回与该纬度/经度对对应的网格值。我有这个表,其中包含相应值的纬度和经度的最小值和最大值。它看起来像这样:

min_max_grid_table

我是 JavaScript 新手。在检查传入的纬度和经度是否落在每个网格值的范围内后,如何编写函数/代码来获取值?感谢您的帮助。

最佳答案

我不确定我是否正确解释了您的问题,但请尝试一下。

const [latitude, longitude] = [117.5783, -33.6768];

function getData() {
const tbody = document.querySelector("tbody");
const rows = [...tbody.rows];
const data = rows.map(row => {
const [minLng, minLat, maxLng, maxLat, gridName] = [...row.cells].map(
cell => cell.textContent
);

return {
minLng: +minLng,
minLat: +minLat,
maxLng: +maxLng,
maxLat: +maxLng,
gridName
};
});

return data;
}

function getGridValue({ latitude, longitude }) {
const data = getData();

const item = data.find(
item =>
(item.minLat >= latitude || item.maxLat <= latitude) ||
(item.minLng >= longitude || item.maxLng <= longitude)
);

if (item) {
return item.gridName;
}

return null;
}
const value = getGridValue({ latitude, longitude });

console.log(value);
<table>
<thead>
<tr>
<th>MIN_LNG</th>
<th>MIN_LAT</th>
<th>MAX_LNG</th>
<th>MAX_LAT</th>
<th>GRIDname</th>
</tr>
</thead>
<tbody>
<tr>
<td>117.5783</td>
<td>-33.6764</td>
<td>117.5787</td>
<td>-33.6766</td>
<td>5c</td>
</tr>
<tr>
<td>117.5783</td>
<td>-33.6766</td>
<td>117.5785</td>
<td>-33.6768</td>
<td>4c</td>
</tr>
<tr>
<td>117.5783</td>
<td>-33.6768</td>
<td>117.5785</td>
<td>-33.6770</td>
<td>3c</td>
</tr>
</tbody>
</table>

首先我模拟从 json 获取的一对数据 const [latitude, longitude] = [117.5783, -33.6768];

getData函数从html表中获取数据,所以我不知道数据的来源。我这样做是因为使用数组和对象比使用 DOM 节点更容易

函数getGridValue搜索数据,如果满足条件,它将返回gridName属性的值,否则将返回null

再次,我希望我正确地解释了您的问题,希望您觉得它有用

关于Javascript 在具有纬度和经度的最小值和最大值的表中查找并返回网格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58945886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com