我正在构建一个使用MapView的ReactNative iOS应用程序。 (实际上,我现在正在测试react-native-maps
,但我认为它们至少大致相似。)
我想实现一个“围绕我的中心地图”功能,类似于Apple的Maps.app中的功能。
在这两个屏幕截图中的第一个(对不起大小),蓝色按钮突出显示,地图正确定位在我当前位置周围:
在第二个屏幕截图中,我对地图进行了一些平移,使其不再以我当前位置为中心,按钮不再突出显示。
如果我点按该按钮,地图会再次快速回到当前位置。
如何在自己的应用中实现此按钮?
我没有看到任何方法来访问地图的状态(即是否跟踪用户的位置)。
答案 0 :(得分:0)
首先,说
(实际上,现在我正在测试反应原生地图,但我认为它们至少大致相似。)
不正确,因为他们使用不同的本机文件来处理React和iOS / Android之间的桥梁。
关于react-native-maps,您可以使用记录为here的animateToCoordinate
方法为地图中心坐标设置动画。为此,您应该为您的MapView提供一个引用(甚至可以使用MapView.Animated
类)。
基本上,您可以像这样声明地图
<MapView.Animated
ref="map"
showsUserLocation={true}
/>
然后创建一个方法:
centerOnUser(){
navigator.geolocation.getCurrentPosition(
(position) => {
this.refs.map.refs.node.animateToCoordinate(position.coords)
},
(error) => alert(error.message),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
}
然后从按钮调用此方法。