如何在React-Native中计算MapView组件的delta经度和经度?

Che*_*eti 7 latitude-longitude delta android-mapview react-native

如何在React-Native中为MapView组件的纬度和经度值计算delta-latitude和delta-longitude值.谢谢

Rya*_* H. 12

如果你有一个坐标数组,并且你想要一个适合所有这些点的区域,你可以这样做:

const regionContainingPoints = points => {
  let minLat, maxLat, minLng, maxLng;

  // init first point
  (point => {
    minLat = point.latitude;
    maxLat = point.latitude;
    minLng = point.longitude;
    maxLng = point.longitude;
  })(points[0]);

  // calculate rect
  points.forEach(point => {
    minLat = Math.min(minLat, point.latitude);
    maxLat = Math.max(maxLat, point.latitude);
    minLng = Math.min(minLng, point.longitude);
    maxLng = Math.max(maxLng, point.longitude);
  });

  const midLat = (minLat + maxLat) / 2;
  const midLng = (minLng + maxLng) / 2;

  const deltaLat = (maxLat - minLat);
  const deltaLng = (maxLng - minLng);

  return {
    latitude: midLat, longitude: midLng,
    latitudeDelta: deltaLat, longitudeDelta: deltaLng,
  };
}

// example region
const region = regionContainingPoints([
  {latitude: 47.12345, longitude: -124.12345},
  {latitude: 47.23456, longitude: -124.23456},
  {latitude: 47.34567, longitude: -124.34567},
]);
Run Code Online (Sandbox Code Playgroud)

然后使用regionreact-native-maps.

注意:我的示例中没有错误检查.

  • 只需增加`deltaX`和`deltaY`。因此,在给出的示例中,在“ deltaX”和“ deltaY”计算的正下方,添加类似“ deltaX + = 0.02”的内容;增量+ = 0.02`。如果需要将此变量设置为变量,则将inset作为参数传递,然后传递deltaX + = inset等。 (2认同)