android关于高德地图判断点是否在某一个区域内

这段时间 , 项目里需要做关于导航功能 ,但是在导航前需要判断当前起点是否在一个不规则区域内 。虽然后台会把所有范围坐标返回给我, 但是对于我来说还是毫无头绪 。于是就开始在高德文档中慢慢寻找 ,但是需要在那么多的类中找到实现自己功能的代码确实有些难度。 于是就上百度 , 百度上确实有许多方法 , 比如从起点发出一条直线穿过 不规则区域 ,用于多规则区域的交点来判断 是否在区域内 。 嗯 ,想法确实 是很好 ,但是 代码确实很复杂 ,于是我懒癌又犯了 。 没办法 ,于是向公司大佬请教 ,大佬于是发了我一句代码 。 

polygon.contains(arg0);

于是我就在高德文档中开始寻找polygon类 ,果然 这些问题高德早就有现成的可以直接使用 。下面是我封装的方法 , 可以直接使用 ,返回是否在区域内 ,Boolean 值。

/**
     * 某个点是否在区域内
     * @param aMap 地图元素
     * @param latLngList 区域坐标合集
     * @param latLng 需要判断的点
     * @return
     */
    public static boolean polygonCon(AMap aMap, List<LatLng> latLngList ,LatLng latLng ){
        PolygonOptions options = new PolygonOptions();
        for (LatLng i : latLngList){
            options.add(i);
        }
        options.visible(false); //设置区域是否显示
        Polygon polygon = aMap.addPolygon(options);
        boolean contains = polygon.contains(latLng);
        polygon.remove();
        return contains;
    }

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android Studio中,我们可以使用高德地图的API来根据经纬度计算面积并判断一个是否在圈内。 首先,我们需要导入高德地图的相关库文件,并获取一个AMap对象,用来进行地图操作。 然后,我们可以使用AMap对象中的AMapUtils类中的calculateArea()方法来计算多边形的面积。这个方法接收一个List<LatLng>类型的参数,用于传入多边形的顶经纬度坐标。返回的面积单位为平方米。 另外,要判断一个是否在圈内,我们可以使用AMap对象中的AMapUtils类中的isPolygonContainsPoint()方法。这个方法接收一个LatLng类型的坐标和一个List<LatLng>类型的多边形顶坐标。返回一个布尔值,表示该是否在多边形内部。 具体代码如下: ``` // 导入相关库文件 import com.amap.api.maps.AMap; import com.amap.api.maps.AMapUtils; import com.amap.api.maps.model.LatLng; // 获取AMap对象 AMap aMap = mapView.getMap(); // 计算多边形面积 List<LatLng> polygonPoints = new ArrayList<>(); polygonPoints.add(new LatLng(39.90923, 116.397428)); polygonPoints.add(new LatLng(39.90823, 116.397428)); polygonPoints.add(new LatLng(39.90823, 116.398428)); polygonPoints.add(new LatLng(39.90923, 116.398428)); float area = AMapUtils.calculateArea(polygonPoints); // 判断一个是否在圈内 LatLng point = new LatLng(39.90923, 116.397428); boolean isContains = AMapUtils.isPolygonContainsPoint(point, polygonPoints); ``` 以上就是使用Android Studio中的高德地图API根据经纬度计算面积和判断一个是否在圈内的方法。注意,要在项目中正确引入高德地图的API,并在AndroidManifest.xml文件中注册相关权限和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值