根据半径(公里/英里)缩放react-native-maps的方法

3

我的React Native应用有一个需求,用户提供一个数字(如5或10),地图会按照该数字作为半径进行缩放以显示区域。

我该如何根据这些输入数字更改纬度差和经度差值?

请帮忙解决。提前感谢。


你修好了吗? - Sultan Ali
2个回答

2

latitudeDelta是屏幕上可见的度数。大约111.045公里等于1度,因此您可以使用以下公式计算当前可见区域的经度范围(以公里为单位):

latitudeDelta = 直径(用户输入)/ 111.045

这假定屏幕处于纵向模式,因此latitudeDelta是较大的值。如果不是,则应使用longitudeDelta。

要更新地图,您可以设置经度和纬度状态变量,并在用户输入值时使用上述公式进行计算并更新这些状态变量,地图最终也会更新。


1
你可以简单地使用这个:
const radius = 500; 

{
latitudeDelta: radius/height/100,
longitudeDelta: radius/width/100 ,
}

这个简单的解决方案效果很好... 500 是以米为单位。height/width 指的是由 Dimensions.get('window').height/Dimensions.get('window').width 生成的屏幕尺寸。 - arif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接