Android 如何检查位置是否在我的圆圈区域内?
我可以使用GPS获取我的当前位置,我想检索我的圆圈区域内的所有POIAndroid 如何检查位置是否在我的圆圈区域内?,android,geolocation,location,geoserver,Android,Geolocation,Location,Geoserver,我可以使用GPS获取我的当前位置,我想检索我的圆圈区域内的所有POI 圆的中心点是我的当前位置,圆区域的半径是x POI项及其位置和其他信息存储在数据库中 哪种解决方案是检索我的圈内所有POI的最佳方法 有什么建议吗 谢谢,考虑到您已检索到所有位置点,使用检索到您的位置,并希望检查哪些位置位于圆区域内,这可能是实现您的目标的一种方法: int RADIUS; ArrayList<Point> points; Location myLocation; for(Point point :
谢谢,考虑到您已检索到所有位置点,使用检索到您的位置,并希望检查哪些位置位于圆区域内,这可能是实现您的目标的一种方法:
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
}
}
int半径;
阵列列表点;
位置;
用于(点:点){
位置点位置=位置(“”);
pointLocation.setLatitude(point.x);//假设x值是纬度
pointLocation.setLongitude(point.y);//假设y值是经度
if(myLocation.distanceTo(位置点位置)<半径){
//这一点就在里面
}
}
另一种不太像Android的方法是检查数据点是否满足等式:
(myLocation.getLatitude() - pointLocation.getLatitude()) ^ 2 + (myLocation.getLongitude()) - pointLocation.getLongitude()) ^ 2 <= RADIUS ^ 2
(myLocation.getLatitude()-pointLocation.getLatitude())^2+(myLocation.getLatitude())-pointLocation.getLatitude())^2使用什么提供程序?您需要一个Web服务来为您提供这些数据。有多个提供商,每个都有不同的TOS、成本和费率限制。我们无法为您选择一个(可能不适合您的情况),但我建议mongoDB存储所有POI。然后你可以很容易地检索到你想要的东西,因为有地理查询。你不需要一个Web服务。我不认为我有一个想法,可以通过一个查询检索那些圆区域内的POI。如果是,你能给我一个如何在mongodb中存储我的POI的模式吗?谢谢回复。我不想从服务器检索所有的点。如果我的数据库中有很多数据,那将非常昂贵。我只想检索与我的圆相关的点。我想这应该是一个常见的问题,就像红鳍金枪鱼在你周围找房子一样。好吧,我明白了。您知道您仍然需要执行比较(这也可能发生在服务器端,也可能是预打包的解决方案),对吗?我建议您添加更多关于服务器端实现的信息,因为这不是一个真正的android问题是的,我认为这也是一个服务器问题。我很好奇redfin如何检索用户选择的区域内的所有POI。我想他们也有这个问题。