昨天畫了圓形,判marker是否存在圓形內。今天來畫多邊形,判斷marker在多邊形內。
需要引入一個js <script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils.js"></script>
百度地圖API覆蓋物多邊形類
和前一篇差不多的,改變的地方就是畫矩形,判斷點在矩形內的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); } } }