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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章