在百度地图开发过程中,多边形的点击监听事件。
如下图所示,如何在黄色区域的触发点击事件
粗看很简单的一个逻辑,不就是覆盖物的点击事件么,然而,百度地图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