百度地圖 判斷marker是否在多邊形內


 昨天畫了圓形,判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);                                      
                                  }                                    
                              }
                            } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM