使用高德地图API判定目标点是否在用户编辑的任意多边形中


在许多信息统计系统中,用户可能希望在地图中划定一块任意多边形区域,系统便会自动反馈该区域的相关目标信息。例如在学区信息系统中,用户在应用的地图上划定一块区域便能够知道这个区域中有多少小学以及小学的相关信息。
这里的核心问题在于如何判断所需计算的点是否在我编辑的任意多边形中,所以这里我使用到了高德地图API的工具类mouseTool。
这里我先写了个demo,它可以判定我设定的点marker1是否在我编辑的任意多边形中,实际应用中的点可能是从数据库中取回再处理的。
JS代码如下:

       //初始化地图对象,加载地图
       var map = new AMap.Map("container", {
         resizeEnable: true,
        });
        var marker1 = new AMap.Marker({
        map: map,
        position: […,…]//marker1的坐标位置,根据需要自己设定
      });
                    map.plugin(["AMap.MouseTool"], function() {
                    var mouseTool = new AMap.MouseTool(map);
                    //鼠标工具插件添加draw事件监听
                     AMap.event.addListener(mouseTool, "draw", function callback(e) {
            var eObject = e.obj;//obj覆盖物对象。
                var marker1InPolygon  = eObject.contains(marker1.getPosition());//是否包含marker1
        marker1.setLabel({
        content:marker1InPolygon?'内部':'外部',
        offset:new AMap.Pixel(20,0)
        });
      });
    mouseTool.polygon();
    map.setFitView();  
    map.on('dblclick',function(){
    mouseTool.close(true)//双击清除覆盖对象
    });
    });

效果如下:
多边形包含目标点
多边形未包含目标点
[1]: https://lbs.amap.com/api/javascript-api/example/calcutation/judge-the-relation-between-marker-and-polygon

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值