android- 百度地圖 多邊形的點擊事件

在百度地圖開發過程中,多邊形的點擊監聽事件。
如下圖所示,如何在黃色區域的觸發點擊事件

百度地圖覆蓋物點擊事件
粗看很簡單的一個邏輯,不就是覆蓋物的點擊事件麼,然而,百度地圖api並沒有提供對應的接口

mBaiduMap.setOnMarkerDragListener( new BaiduMap.OnMarkerDragListener() {   
 @Override
public void onMarkerDrag(Marker marker) {    

}    

@Override
public void  onMarkerDragEnd(Marker marker) {   

 }    
@Override
 public void onMarkerDragStart(Marker marker) {   
 }
});

還好 百度提供了一個這麼一個類

SpatialRelationUtil

然後在這個監聽事件裏面處理

mBaiduMap.setOnMapClickListener(
new BaiduMap.OnMapClickListener() {   
 @Override
 public void onMapClick(LatLng latLng) {     
  SpatialRelationUtil spatialRelationUtil =  new SpatialRelationUtil();     
  boolean isInFlag =  spatialRelationUtil.isPolygonContainsPoint(positionPts
,latLng);       
//如果在區域內,isInFlag爲true, 否則爲false    
}    

@Override
public boolean onMapPoiClick(MapPoi mapPoi) {        
        //這裏點擊百度自帶的poi點會觸發
        return true
;    
}
});

想引用

SpatialRelationUtil 這個類 得引入jar包

baidumapapi_util_v3_6_1.jar

百度地圖提供api文檔

發佈了27 篇原創文章 · 獲贊 7 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章