Arcgis API for Javascript实现点在多边形内判断

实验准备:

 1.一个多边形图层(可以是FeatureLayer、GraphicLayer或任意包含polygon的Graphic[])

 2.一个点图层(同上,包含的geomery类型应为point)

实验目的:判断多边形图层中,每一个多边形中包含多少个点图层中的点

实现步骤及思路:

1.将多边形图层中的每个多边形graphic对象遍历

dojo.forEach(featureLayer.graphics, function (graphic){

        ...

}

2.提取graphic对象中的geometry对象

var polygon = graphic.geometry;

3.再遍历每一个点graphic并提取点geometry(同上)

4.判断点在多边形内(单个点单个多边形判断)

if (polygon.contains(point)){

...

}

具体代码

               var featureLayer=new FeatureLayer(url);//多边形图层
               var featureSet=new FeatureSet();//用于承接点的graphic对象
               var a=[];//用来记录对应id的多边形内点的个数,应先将a[]初始化再使用          
               dojo.forEach(featureLayer.graphics, function (graphic) {//循环遍历每一个多边形graphic对象
               var polygon = graphic.geometry;//polygon为geometry对象,用来提取出graphic对象中的geometry对象
               dojo.forEach(featureSet.features, function (feature) {//再遍历循环每一个点graphic对象
                   var point = feature.geometry;//point对象
                   if (polygon.contains(point)) {//判断点是否在多边形内,返回值为Boolean
                       a[graphic.attributes.FID]++;//用于记录对应fid的多边形内有多少个点
                   }
               });

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值