RN附近的API

时间:2016-10-27 14:06:25

标签: react-native google-nearby

我正在构建一个应用程序,需要知道也有应用程序的关闭用户。有人告诉我,Nearby API是最好的解决方案,我希望在React Native中构建我的应用程序,是否为RN提供了附近的API?

感谢您的帮助

1 个答案:

答案 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}

致谢:Movable Type Scripts