2018-11-16 地图上 判断点是否在多边形区域内

今天做项目有个需求是在地图上圈一个多边形区域,判断某个点是否在所圈多边形区域内。

js代码:

isContainsPoint: function (point) {

        var count = this.featurePoints.length,

            flag = false;

        for (var i = 0, j = count - 1; i < count; j = i++) {

            if (((point.lat >= this.featurePoints[i].lat && point.lat < this.featurePoints[j].lat) ||

                (point.lat < this.featurePoints[i].lat && point.lat >= this.featurePoints[j].lat)) &&

                (point.lng < ((this.featurePoints[j].lng - this.featurePoints[i].lng) * (point.lat - this.featurePoints[i].lat) /

                    (this.featurePoints[j].lat - this.featurePoints[i].lat) + this.featurePoints[i].lng))) {

                flag = !flag;

            }

        }

        return flag;

    } 

注意:point 是判断是否在多边形内的点

featurePoints是多边形的顶点坐标,不重复,有顺序(顺逆时针都可以)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容