百度地图 判断marker是否在多边形内

简介: 昨天画了圆形,判marker是否存在圆形内。今天来画多边形,判断marker在多边形内。 需要引入一个js      百度地图API覆盖物多边形类  http://developer.baidu.

 昨天画了圆形,判marker是否存在圆形内。今天来画多边形,判断marker在多边形内。

需要引入一个js      <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils.js"></script>

百度地图API覆盖物多边形类 

http://developer.baidu.com/map/reference/index.php?title=Class:%E8%A6%86%E7%9B%96%E7%89%A9%E7%B1%BB/Polygon

http://developer.baidu.com/map/reference/index.php?title=Class:%E8%A6%86%E7%9B%96%E7%89%A9%E7%B1%BB/PolygonOptions

 

和前一篇差不多的,改变的地方就是画矩形,判断点在矩形内的js;

                                 // 画可编辑矩形
                         var mPoint=new BMap.Point(e.lng,e.lat);// 得到中心点坐标
                          var pStart = new BMap.Point(e.lng,e.lat);
                          var pEnd = new BMap.Point((e.lng+0.1),(e.lat+0.1));
                          var polygon = new BMap.Polygon([
                              new BMap.Point(pStart.lng,pStart.lat),
                              new BMap.Point(pEnd.lng,pStart.lat),
                              new BMap.Point(pEnd.lng,pEnd.lat),
                              new BMap.Point(pStart.lng,pEnd.lat)
                              ], {strokeColor:"blue", strokeWeight:1, strokeOpacity:0.5});
                          map.addOverlay(polygon);
                          polygon.enableEditing();

 

判断点在多边形内

 for(var i=0;i<overlays.length;i++){
                              //判断 覆盖物为标注的并且是在多边形区域内部的
                              if(overlays[i].uQ == "Marker" && overlays[i].id){
                                  //判断marker是否在多边形内
                                    if(BMapLib.GeoUtils.isPointInPolygon(overlays[i].getPosition(), polygon)){
                                       maker_arr.push(overlays[i]);                                   
                                       maker_id.push(overlays[i].id);                                      
                                  }                                    
                              }
                            } 

 

目录
打赏
0
0
0
0
4
分享
相关文章
|
12月前
|
uniapp显示当前位置与所传入位置的距离
uniapp显示当前位置与所传入位置的距离
499 0
|
12月前
[Qt5] 矩形、圆和多边形ROI区域的交互(List View列表视图,halcon实现)
[Qt5] 矩形、圆和多边形ROI区域的交互(List View列表视图,halcon实现)
185 0
百度地图和腾讯地图开发经纬度的位置是互换的
百度地图和腾讯地图开发经纬度的位置是互换的
569 0
【IMAQ】imaqMakeRect() 返回指定位置和大小的矩形
【IMAQ】imaqMakeRect() 返回指定位置和大小的矩形
“复制100个物体的坐标的值(xyz)和旋转的值(xyz)你需要几次操作?----600次”,“我只需要2次”
在开发中,会遇到要复制场景中对象的位置坐标的操作,通常的方法是分别复制物体的xyz的值,然后再粘贴,这样效率非常低,耽误时间,也可以复制错误,造成位置的偏移。 接下来就介绍如何快速复制坐标位置,并且复制
【MATLAB】基本绘图 ( Marker 设置 | 设置 Marker 边框 | 设置 Marker 填充 )
【MATLAB】基本绘图 ( Marker 设置 | 设置 Marker 边框 | 设置 Marker 填充 )
1088 0
【MATLAB】基本绘图 ( Marker 设置 | 设置 Marker 边框 | 设置 Marker 填充 )
GPS坐标转换成百度坐标-如何解析json返回值
GPS坐标转换成百度坐标-如何解析json返回值
323 0
高德地图获取位置分析坐标
…………………. function getLnglat(e) {//e=鼠标点击位置    mapObj.clearMap();//获取位置之前清除之前的坐标,不管之前是否有坐标已保存    var x = e.
1640 0
高德地图获取位置分析坐标
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等