按经纬度过滤数组对象

问题描述 投票:0回答:0

我想过滤距离小于200公里的数组中的所有对象。 我为此使用 geolib。数组中的每个对象都有一个纬度和经度。 我将 MapBox 与 Geocoder 一起使用。 如果我在这里搜索一个地方,数组应该根据它的纬度和经度进行过滤,并且只应该返回 200 公里范围内的那些对象。

但目前我总是得到所有的 - 无论这个地方有多远

const updateHouses = (coords) => {
const lng = coords[0];
const lat = coords[1];

const copy = [...houses];

copy.filter((house) => {
  const dis = getPreciseDistance(
    { latitude: house.lat, longitude: house.long },
    { latitude: lat, longitude: lng }
  );

  const km = dis / 1000;

  return km < 200;
  });

  setHouses(copy);
};
reactjs react-hooks mapbox mapbox-gl
© www.soinside.com 2019 - 2024. All rights reserved.