我正在构建一个应用程序,需要知道也有应用程序的关闭用户。有人告诉我,Nearby API是最好的解决方案,我希望在React Native中构建我的应用程序,是否为RN提供了附近的API?
感谢您的帮助
答案 0 :(得分:1)
React-native在其核心中没有Nearby API,但是you could wrap native code in a manager或者看看react-native-invoke,您可以:
直接从React Native中的Javascript调用任何本机代码 (不首先用本地经理包装它)
或者,您可以使用此方法如果您拥有其他用户的坐标,并且想要检查它们是否在附近:
您可以使用Geolocation API
获取用户位置navigator.geolocation.getCurrentPosition(
(position) => {
myLocation = position.coords
},
error => alert(error),
{ enableHighAccuracy: false, timeout: 20000, maximumAge: 1000*60*5 })
然后你可以使用这个函数计算用户和地点之间的距离(如果你有坐标):
export const calculateDistance = (place, me)=>{
const toRadians = (angle)=>{
return angle * Math.PI / 180
}
let lat1 = place.latitude
let lon1 = place.longitude
let lat2 = me.latitude
let lon2 = me.longitude
var R = 6371e3; // metres
var phi1 = toRadians(lat1)
var phi2 = toRadians(lat2)
var deltaPhi = toRadians((lat2-lat1))
var deltaLambda = toRadians((lon2-lon1))
var a = Math.sin(deltaPhi/2) * Math.sin(deltaPhi/2) +
Math.cos(phi1) * Math.cos(phi2) *
Math.sin(deltaLambda/2) * Math.sin(deltaLambda/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
return d}