判斷百度地圖上的一個點是否在一個多邊形區域內


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