在百度地圖開發過程中,多邊形的點擊監聽事件。
如下圖所示,如何在黃色區域的觸發點擊事件
粗看很簡單的一個邏輯,不就是覆蓋物的點擊事件麼,然而,百度地圖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