除了 Android API 之外,是否有任何 API 用于计算地理围栏违规
Is there any API for calculating Geofence breach other than Android API's
我想在后端计算地理围栏突破和行驶距离计算。这是我第一次使用googleAPI。我在网上找到的都是 Android。有没有什么API专门针对常规计算的
你可以自己实现,不用任何框架,非常简单...
我猜你想检查你是否在圆形地理围栏内。
为此,只需计算圆心与您所在位置(经度、纬度)之间的距离即可。如果距离小于你的圆半径,那么你在地理围栏内,否则你在地理围栏外。
像这样:
boolean checkInside(Circle circle, double longitude, double latitude) {
return calculateDistance(
circle.getLongitude(), circle.getLatitude(), longitude, latitude
) < circle.getRadius();}
要计算两点之间的距离,您可以使用:
double calculateDistance(
double longitude1, double latitude1,
double longitude2, double latitude2) {
double c =
Math.sin(Math.toRadians(latitude1)) *
Math.sin(Math.toRadians(latitude2)) +
Math.cos(Math.toRadians(latitude1)) *
Math.cos(Math.toRadians(latitude2)) *
Math.cos(Math.toRadians(longitude2) -
Math.toRadians(longitude1));
c = c > 0 ? Math.min(1, c) : Math.max(-1, c);
return 3959 * 1.609 * 1000 * Math.acos(c);
}
这个公式叫做 Haversine 公式。
它考虑了地球的曲率。
结果以米为单位。
我也在我的博客上描述过:
用于检查地理围栏圈(它还描述了两点之间的距离计算):
http://stefanbangels.blogspot.be/2014/03/point-geo-fencing-sample-code.html
用于检查地理围栏多边形:
http://stefanbangels.blogspot.be/2013/10/geo-fencing-sample-code.html
我想在后端计算地理围栏突破和行驶距离计算。这是我第一次使用googleAPI。我在网上找到的都是 Android。有没有什么API专门针对常规计算的
你可以自己实现,不用任何框架,非常简单...
我猜你想检查你是否在圆形地理围栏内。
为此,只需计算圆心与您所在位置(经度、纬度)之间的距离即可。如果距离小于你的圆半径,那么你在地理围栏内,否则你在地理围栏外。
像这样:
boolean checkInside(Circle circle, double longitude, double latitude) {
return calculateDistance(
circle.getLongitude(), circle.getLatitude(), longitude, latitude
) < circle.getRadius();}
要计算两点之间的距离,您可以使用:
double calculateDistance(
double longitude1, double latitude1,
double longitude2, double latitude2) {
double c =
Math.sin(Math.toRadians(latitude1)) *
Math.sin(Math.toRadians(latitude2)) +
Math.cos(Math.toRadians(latitude1)) *
Math.cos(Math.toRadians(latitude2)) *
Math.cos(Math.toRadians(longitude2) -
Math.toRadians(longitude1));
c = c > 0 ? Math.min(1, c) : Math.max(-1, c);
return 3959 * 1.609 * 1000 * Math.acos(c);
}
这个公式叫做 Haversine 公式。 它考虑了地球的曲率。 结果以米为单位。
我也在我的博客上描述过:
用于检查地理围栏圈(它还描述了两点之间的距离计算): http://stefanbangels.blogspot.be/2014/03/point-geo-fencing-sample-code.html
用于检查地理围栏多边形: http://stefanbangels.blogspot.be/2013/10/geo-fencing-sample-code.html