一.简要描述
百度地图的POI点可以分有两种:地图中已经标记的点和通过关键词搜索得到的POI点。对于这两种POI点,百度封装成了不同的类和接口来实现监听,下面简单讲一点。
二.地图中已标记POI点
首先遇到的第一个问题就时如何获取已标记点的信息,在百度地图点击已标记的点会有信息的,那么在自己的地图上如何产生点击事件呢?
(1)接口
百度提供了一个POI点击事件的接口 BaiduMap.OnMapClickListener,该接口提供了两个方法,如下表。
(测试下CSDN的MarkDown编辑器画表格的功能,不会把首行的标题居中呀)
返回类型 | 方法 | 说明 |
---|---|---|
boolean | onMapClick(LatLng point) | 地图单击事件回调函数 |
boolean | onMapPoiClick(MapPoi poi) | 地图内 Poi 单击事件回调函数 |
(2)MapPoi 类
返回类型 | 方法 | 说明 |
---|---|---|
java.lang.String | getName() | 获取该兴趣点的名称 |
LatLng | getPosition() | 获取该兴趣点的地理坐标 |
(3)获取POI
我们只需要重写onMapPoiClick()就可以了。
代码如下:
baiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
}
@Override
public boolean onMapPoiClick(MapPoi mapPoi)
{
String POIName = mapPoi.getName();//POI点名称
LatLng POIPosition = mapPoi.getPosition();//POI点坐标
//下面就是自己随便应用了
//根据POI点坐标反向地理编码
//reverseSearch(POIPosition);
//添加图层显示POI点
/*baiduMap.clear();
baiduMap.addOverlay(
new MarkerOptions()
.position(POIPosition) //坐标位