在百度地圖開發(fā)過程中肃廓,多邊形的點擊監(jiān)聽事件缀程。
如下圖所示,如何在黃色區(qū)域的觸發(fā)點擊事件
百度地圖覆蓋物點擊事件.png
粗看很簡單的一個邏輯合瓢,不就是覆蓋物的點擊事件么坦胶,然而,百度地圖api并沒有提供對應(yīng)的接口
mBaiduMap.setOnMarkerDragListener( new BaiduMap.OnMarkerDragListener() {
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
}
@Override
public void onMarkerDragStart(Marker marker) {
}
});
還好 百度提供了一個這么一個類
SpatialRelationUtil
然后在這個監(jiān)聽事件里面處理
mBaiduMap.setOnMapClickListener(
new BaiduMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
SpatialRelationUtil spatialRelationUtil = new SpatialRelationUtil();
boolean isInFlag = spatialRelationUtil.isPolygonContainsPoint(positionPts
,latLng);
//如果在區(qū)域內(nèi),isInFlag為true, 否則為false
}
@Override
public boolean onMapPoiClick(MapPoi mapPoi) {
//這里點擊百度自帶的poi點會觸發(fā)
return true
;
}
});
想引用
SpatialRelationUtil 這個類 得引入jar包
**baidumapapi_util_v3_6_1.jar **
百度地圖提供api文檔.png