首页 > 代码库 > 百度地图 判断marker是否在多边形内

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

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

百度地图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"){                                  //判断marker是否在多边形内                                    if(BMapLib.GeoUtils.isPointInPolygon(overlays[i].getPosition(), polygon)){                                       maker_arr.push(overlays[i]);                                                                          maker_id.push(overlays[i].id);                                                                        }                                                                  }                            } 

 

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