判断百度地图上的一个点是否在一个多边形区域内


1、首先获取该点的经纬度,百度坐标

2、将所有点,封装成百度point对象,要引入百度地图jdk,script标签引入

3、用GeoUtils插件提供的方法判断

//polygonArray是多边形区域的各点的经纬度
//longtitude,latitude是要判断的点的经纬度
//_是undersotre插件
isInPolygon: function (polygonArray, longitude, latitude) {
    if (longitude < 1 || latitude < 1) return true;
    var polygonArray = polygonArray;
    var mapPolygon = [];
    _.each(polygonArray, function (item) {
        var points = [];
        _.each(item, function (point) {
            points.push(new BMap.Point(point.lng,point.lat));
        });
        var polygon = new BMap.Polygon(points); //创建多边形  
        mapPolygon.push(polygon);
    });
    var isIn = _.some(mapPolygon, function (polygon) {
        return BMapLib.GeoUtils.isPointInPolygon(new BMap.Point(longitude, latitude), polygon);
    });
    if (isIn) {
        return true;
    } else {
        return false;
        }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM