我可以用GPS来获取我目前的位置,我想检索所有在我的圆圈区域内的POI。
哪种解决方案是检索我圈子里所有的战俘的最好方法。
有什么建议吗?
谢谢,
发布于 2016-02-23 02:07:24
考虑到您已经检索了所有的位置点,使用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的方法是检查数据点是否满足方程:
(myLocation.getLatitude() - pointLocation.getLatitude()) ^ 2 + (myLocation.getLongitude()) - pointLocation.getLongitude()) ^ 2 <= RADIUS ^ 2由于这个方程的前提是地球表面是平的,结果将包含误差,误差的大小将随着半径值的增加而增大。
https://stackoverflow.com/questions/35567207
复制相似问题