第1行:
第1行:
{{androidsdk-sidebar}}{{androidsdk-sidebar}}
−
点标记用来在地图上标记任何位置,例如用户位置、车辆位置、店铺位置等一切带有位置属性的事物。
地图 SDK 提供的点标记功能包含两大部分,一部分是点(俗称 Marker)同时,SDK 对 Marker 封装了大量的触发事件,例如点击事件、长按事件、拖拽事件。
由于内容丰富,以下只能展示一些基础功能的使用,详细内容可参考类参考文档。点标记用来在地图上标记任何位置,例如用户位置、车辆位置、店铺位置等一切带有位置属性的事物。
地图 SDK 提供的点标记功能包含两大部分,一部分是点(俗称 Marker)同时,SDK 对 Marker 封装了大量的触发事件,例如点击事件、长按事件、拖拽事件。
由于内容丰富,以下只能展示一些基础功能的使用,详细内容可参考类参考文档。
第18行:
第18行:
mBaiduMap.addOverlay(option);mBaiduMap.addOverlay(option);
−+
−http://mapopen-pub-androidsdk.cdn.bcebos.com/map/newAndroid/overlay/addpopint1.png+https://mapopen-website-wiki.cdn.bcebos.com/demos/staticsdk/newimg/Screenshot_20200610_161054_baidumapsdk.demo.jpg
−
可根据实际的业务需求,在地图指定的位置上添加自定义的 Marker。MarkerOptions 是设置 Marker 参数变量的类,添加 Marker 时会经常用到。可根据实际的业务需求,在地图指定的位置上添加自定义的 Marker。MarkerOptions 是设置 Marker 参数变量的类,添加 Marker 时会经常用到。
'''Marker常用属性:''''''Marker常用属性:'''
−{| style="width: 400px" width="144" cellspacing="0" cellpadding="0" border="0"+{| style="width: 600px" width="144" cellspacing="0" cellpadding="0" border="0"
|-|-
| style="width: 168px" width="72" height="21" | '''名称'''| style="width: 168px" width="72" height="21" | '''名称'''
第99行:
第99行:
效果如图:效果如图:
−+
−http://mapopen-pub-androidsdk.cdn.bcebos.com/map/newAndroid/overlay/addpopint2.png+https://mapopen-website-wiki.cdn.bcebos.com/demos/staticsdk/newimg/Screenshot_20200610_120142_com.baidu.mapsdkexample.jpg
−
−覆盖物开源代码中提供了一些基于基础覆盖而组合而成的高级覆盖物,包括用于显示poi数据,规划路线,公交详情路线的覆盖物。+
−+
−OverlayManager /PoiOverlay / IndoorPoiOverlay /IndoorRouteOverlay /TransitRouteOverlay /WalkingRouteOverlay /BikingRouteOverlay /DrivingRouteOverlay /BusLineOverlay /MassTransitRouteOverlay / 以上源码可在BaiduMapsApiDemo工程中找到。+
−
'''{{bluepoint}}Marker点击事件''''''{{bluepoint}}Marker点击事件'''
第150行:
第146行:
−+
−+https://mapopen-website-wiki.cdn.bcebos.com/demos/staticsdk/newimg/Screenshot_20200610_112649_baidumapsdk.demo.jpg
−
自V3.6.0版本起,SDK在BaiduMap提供了控制底图标注的showMapPoi方法,默认显示底图标注。利用此属性可得到仅显示道路信息的地图,方法如下:自V3.6.0版本起,SDK在BaiduMap提供了控制底图标注的showMapPoi方法,默认显示底图标注。利用此属性可得到仅显示道路信息的地图,方法如下:
mBaiduMap.showMapPoi(false);
mBaiduMap.showMapPoi(false);
第159行:
第155行:
运行后,底图标注被隐藏,效果如图:运行后,底图标注被隐藏,效果如图:
−+
−http://mapopen-pub-androidsdk.cdn.bcebos.com/map/newAndroid/overlay/addpopint3.png+https://mapopen-website-wiki.cdn.bcebos.com/demos/staticsdk/newimg/Screenshot_20200609_172353_baidumapsdk.demo.jpg
+
2020年6月28日 (日) 16:47的最后版本
更新时间:2020-06-23
本章节将对点标记、添加Marker、绘制自定义Marker、Marker点击和拖拽操作、POI底图标注等作进一步说明。
点标记
点标记用来在地图上标记任何位置,例如用户位置、车辆位置、店铺位置等一切带有位置属性的事物。
地图 SDK 提供的点标记功能包含两大部分,一部分是点(俗称 Marker)同时,SDK 对 Marker 封装了大量的触发事件,例如点击事件、长按事件、拖拽事件。
由于内容丰富,以下只能展示一些基础功能的使用,详细内容可参考类参考文档。
添加Marker
开发者可以根据自己实际的业务需求,利用标注覆盖物,在地图指定的位置上添加标注信息。开发者通过MarkerOptions类来设置Marker的属性。
绘制Marker的代码如下:
//定义Maker坐标点
LatLng point = new LatLng(39.963175, 116.400244);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.drawable.icon_marka);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point)
.icon(bitmap);
//在地图上添加Marker,并显示
mBaiduMap.addOverlay(option);
绘制自定义Marker
可根据实际的业务需求,在地图指定的位置上添加自定义的 Marker。MarkerOptions 是设置 Marker 参数变量的类,添加 Marker 时会经常用到。
Marker常用属性:
名称
说明
icon
设置图标
animateType
动画类型
MarkerAnimateType.none
MarkerAnimateType.drop
MarkerAnimateType.grow
MarkerAnimateType.jump
alpha
透明度
position
位置坐标
perspective
是否开启近大远小效果
true
false
draggable
是否可拖拽
flat
是否平贴地图 (俯视图)(双手下拉地图查看效果)
true
false
anchor
锚点比例
rotate
旋转角度
title
设置标题
visible
是否可见
extraInfo
额外信息
自定义Marker示例
//定义Maker坐标点
LatLng point = new LatLng(39.944251, 116.494996);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.fromResource(R.drawable.marker_custom);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.position(point) //必传参数
.icon(bitmap) //必传参数
.draggable(true)
//设置平贴地图,在地图中双指下拉查看效果
.flat(true)
.alpha(0.5f);
//在地图上添加Marker,并显示
mBaiduMap.addOverlay(option);
效果如图:
注:自V3.6.0起,原内置覆盖物相关类代码开源
覆盖物开源代码中提供了一些基于基础覆盖而组合而成的高级覆盖物,包括用于显示poi数据,规划路线,公交详情路线的覆盖物。 OverlayManager /PoiOverlay / IndoorPoiOverlay /IndoorRouteOverlay /TransitRouteOverlay /WalkingRouteOverlay /BikingRouteOverlay /DrivingRouteOverlay /BusLineOverlay /MassTransitRouteOverlay / 以上源码可在BaiduMapsApiDemo工程中找到。
可触发的Marker事件
Marker点击事件
点击Marker时会回调BaiduMap.OnMarkerClickListener,监听器的实现方式示例如下:
mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
//marker被点击时回调的方法
//若响应点击事件,返回true,否则返回false
//默认返回false
@Override
public boolean onMarkerClick(Marker marker) {
return false;
}
});
Marker拖拽事件
在拖拽Marker时会回调BaiduMap.OnMarkerDragListener,监听器的实现方式如下(要在构造MarkerOptions时开启draggable):
mBaiduMap.setOnMarkerDragListener(new BaiduMap.OnMarkerDragListener() {
//在Marker拖拽过程中回调此方法,这个Marker的位置可以通过getPosition()方法获取
//marker 被拖动的Marker对象
@Override
public void onMarkerDrag(Marker marker) {
//对marker处理拖拽逻辑
}
//在Marker拖动完成后回调此方法, 这个Marker的位可以通过getPosition()方法获取
//marker 被拖拽的Marker对象
@Override
public void onMarkerDragEnd(Marker marker) {
}
//在Marker开始被拖拽时回调此方法, 这个Marker的位可以通过getPosition()方法获取
//marker 被拖拽的Marker对象
@Override
public void onMarkerDragStart(Marker marker) {
}
});
效果如图:
底图标注
自V3.6.0版本起,SDK在BaiduMap提供了控制底图标注的showMapPoi方法,默认显示底图标注。利用此属性可得到仅显示道路信息的地图,方法如下:
mBaiduMap.showMapPoi(false);
运行后,底图标注被隐藏,效果如图: