我可以使用GPS获取当前位置,我想检索我圈子区域内的所有POI。
哪种解决方案是检索我圈内所有POI的最佳方式。
有什么建议吗?
谢谢,
答案 0 :(得分:0)
考虑到您检索了所有的位置点,使用LocationManager检索了您的位置,并希望检查哪些位于您的圈子区域内,这可能是实现目标的一种方式:
int RADIUS;
ArrayList<Point> points;
Location myLocation;
for(Point point : points){
Location pointLocation = Location("");
pointLocation.setLatitude(point.x); // assume x values are latitudes
pointLocation.setLongitude(point.y); // assume y values are longitudes
if(myLocation.distanceTo(Location pointLocation) < RADIUS){
// This point lies inside
}
}
另一种较少的Android-ish方法是检查您的数据点是否满足等式:
(myLocation.getLatitude() - pointLocation.getLatitude()) ^ 2 + (myLocation.getLongitude()) - pointLocation.getLongitude()) ^ 2 <= RADIUS ^ 2
由于这个等式预先假定地球表面是平坦的,结果将包含误差,其幅度随着RADIUS值的增加而增加。