给定 GPS 的地理位置,如何在给定的 x 米半径内找到纬度和经度

Posted

技术标签:

【中文标题】给定 GPS 的地理位置,如何在给定的 x 米半径内找到纬度和经度【英文标题】:Given the geo location from the GPS, how to find the latitude and longitude within a given x meter radius 【发布时间】:2012-03-01 07:59:12 【问题描述】:

我正在编写一个 android 应用程序,我想知道是否有任何 API 可以帮助插入从 GPS 获得的纬度和经度以及插入半径 R,以非常高的精度找到新的纬度和经度。最好是Java代码。 所以说例如当前位置是 curX 和 curY 现在这个位置200米半径内可以是maxX和maxY。因此,如果我有一个条目列表,我将只打印最大范围内的条目。因此,为了比较正确,精度应该很高。有没有可以做到这一点的API?有什么公式吗? (在 Java 中)

So the function is
findNewLatitude(curLat,curLong,oldList,radius)

  do bla bla bla; //Find a newList with respect to current Geo points on MAP  and      considering the radius


output: newList such that distance between (lat,long) in newList and 
(curLat,curLong) is  equal to radius

【问题讨论】:

这是你想要的吗?在给定的位置集合 S 中找到给定位置 CURRENT 半径 R 内的位置 L,并在 L 中找到与当前位置距离最大的位置。 @Stefan 您的措辞部分正确。如,在给定位置 CURRENT 的半径 R 内找到 L。这就是我的主要目标。 好的,我猜 Gabriel Negut 的回答(见下文)解决了你的问题。 在这里查看我的答案:gis.stackexchange.com/a/21100/6020 【参考方案1】:

试试这个:

Geocoder coder = new Geocoder(this);
List<Address> address;

try 
    address = coder.getFromLocationName(strAddress,5);
    if (address == null) 
        return null;
    
    Address location = address.get(0);
    location.getLatitude();
    location.getLongitude();

    p1 = new GeoPoint((int) (location.getLatitude() * 1E6),
                      (int) (location.getLongitude() * 1E6));

     return p1;

看到这个答案How to get city name from latitude and longitude coordinates in Google Maps?

How to change 1 meter to pixel distance?

【讨论】:

我不明白半径放在哪里。你假设的半径是 5 吗? 阅读文档,是最大结果数。【参考方案2】:

我猜你正在寻找这种方法:

http://developer.android.com/reference/android/location/Location.html#distanceTo%28android.location.Location%29

这将计算两个给定位置之间的距离

【讨论】:

我不是在寻找距离。相反,我自己指定一个距离来找到纬度和对数的新值 在这种情况下,您还必须指定方向。【参考方案3】:
List<Location> filter(Location current, List<Location> locations, int radius) 
    List<Location> results = new ArrayList<Location>();
    for (Location loc : locations) 
        if (current.distanceTo(loc) <= radius) 
            results.add(loc);
        
    
    return results;

【讨论】:

以上是关于给定 GPS 的地理位置,如何在给定的 x 米半径内找到纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章

从给定位置(经度、纬度)的 Y 半径内查找 X 的所有值

获取2个GPS坐标xamarin之间的准确距离

PHP / MySQL - 从实际 gps 坐标查找半径 500 米内的所有项目

给定两点在特定时间找到gps位置?

如何获取在其半径内包含给定位置的记录?蒙古数据库

找到给定半径内的附近位置