首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查位置是否在我的圆圈区域内?

如何检查位置是否在我的圆圈区域内?
EN

Stack Overflow用户
提问于 2016-02-23 01:34:09
回答 1查看 927关注 0票数 0

我可以用GPS来获取我目前的位置,我想检索所有在我的圆圈区域内的POI。

  1. 圆的中心点是我现在的位置,圆区域的半径是x。
  2. POI项与其位置和其他信息一起存储在数据库中。

哪种解决方案是检索我圈子里所有的战俘的最好方法。

有什么建议吗?

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2016-02-23 02:07:24

考虑到您已经检索了所有的位置点,使用LocationManager检索了您的位置,并且希望检查这些位置中的哪一个位于您的圆圈区域内,这可能是实现您的目标的一种方法:

代码语言:javascript
复制
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的方法是检查数据点是否满足方程:

代码语言:javascript
复制
(myLocation.getLatitude() - pointLocation.getLatitude()) ^ 2 + (myLocation.getLongitude()) - pointLocation.getLongitude()) ^ 2 <= RADIUS ^ 2

由于这个方程的前提是地球表面是平的,结果将包含误差,误差的大小将随着半径值的增加而增大。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35567207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档