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

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

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;
    }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值