如何从React-Native中的MapView组件的纬度和经度值计算增量纬度和增量经度值。谢谢
发布于 2016-06-28 02:54:19
如果你有一个坐标数组,并且你想要一个适合所有这些点的区域,你可以这样做:
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},
]);
然后将region
与react-native-map一起使用。
注意:我在我的例子中没有做错误检查。
发布于 2016-07-01 04:05:31
longitudeDelta
和latitudeDelta
将在源代码MapView中描述,其中表示您希望显示的最小点和最大点之间的差异。
所以,如果你想找到latitudeDelta,那么你应该计算你的纬度之间的最大差值,同样地,经度差值也是如此。您可以查看Ryan H的答案以了解实际的实现。
https://stackoverflow.com/questions/32557474
复制相似问题