检查经度和纬度是否在一个圆圈内

看到这个插图:

在这里输入图像描述

我想知道的是:

  • 在给定经纬度和距离(10公里)时如何创建一个区域(圆圈)
  • 如何检查(计算)经纬度是在区域内还是区域外
  • 如果您可以使用Google Maps API V2为我提供Java代码示例或专门针对Android的代码示例,我宁愿选择


    你基本需要的是地图上点到点之间的距离:

    float[] results = new float[1];
    Location.distanceBetween(centerLatitude, centerLongitude, testLatitude, testLongitude, results);
    float distanceInMeters = results[0];
    boolean isWithin10km = distanceInMeters < 10000;
    

    如果您已经有Location对象:

    Location center;
    Location test;
    float distanceInMeters = center.distanceTo(test);
    boolean isWithin10km = distanceInMeters < 10000;
    

    以下是该API的有趣部分:https://developer.android.com/reference/android/location/Location.html


    你有没有经历过新的GeoFencing API。 它应该帮助你。 正常实施需要很长时间。 这应该可以帮助您轻松实施。


    请参阅https://developer.android.com/reference/android/location/Location.html

    Location areaOfIinterest = new Location;
    Location currentPosition = new Location;
    
    areaOfIinterest.setLatitude(aoiLat);
    areaOfIinterest.setLongitude(aoiLong);
    
    currentPosition.setLatitude(myLat);
    currentPosition.setLongitude(myLong);
    
    float dist = areaOfIinterest.distanceTo(currentPosition);
    
    return (dist < 10000);
    
    链接地址: http://www.djcxy.com/p/84905.html

    上一篇: Check if a latitude and longitude is within a circle

    下一篇: Trilateration using 4 fixed points