高德地图 判断打的点是否在圈内

代码片

// An highlighted block
                                    var circle = new AMap.Circle({
                                        center: new AMap.LngLat(q, p),// 圆心位置
                                        radius: 100, //半径
                                        strokeColor: "red", //线颜色
                                        strokeOpacity:0, //线透明度
                                        strokeWeight: 3,    //线宽
                                        fillColor: "#1791fc", //填充色
                                        fillOpacity: 0//填充透明度
                                    });
                                    for(var i=0;i<e.target.getExtData().data.length;i++){
                                        myObj= e.target.getExtData().data[i].location;
                                        myLngLat=new AMap.LngLat(myObj.Q,myObj.P)
                                        if(myObj.P == ''){
                                        false
                                        }else if(myObj.Q == ''){
                                            false
                                        }else{
                                            if(circle.contains(myLngLat)){//如果点在圆内则输出
                                                var marker = new AMap.Marker({
                                                    position: e.target.getExtData().data[i].location,
                                                });
                                            info.push('<div class="div"><p id="lnglat2container" οnclick="getLngLat()" style="margin-left:15px;">DTU:<a>'+e.target.getExtData().data[i].code+'</a></p><p>柜温:'+e.target.getExtData().data[i].s_pr1+'℃</p></div>');
                                            infoWindow = new AMap.InfoWindow({
                                                content:  info.join(''),
                                                position: e.target.getExtData().data[i].location,
                                            });
                                            infoWindow.open(map, e.target.getExtData().data[i].location);
                                        }else{
                                            //marker = new AMap.Marker({});
                                        }
                                    }
                                }
                                circle.setMap(map);

/

在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文件中注册相关权限和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值