百度地图3.0以上版本标注marker及其点击事件
来源:互联网 发布:精通matlab智能算法 编辑:程序博客网 时间:2024/04/30 09:17
这里只讲解标注marker及点击事件,在安卓中加载百度地图的部分自行在网上查找
1.变量声明
private MapView mMapView = null;public BaiduMap baiduMap = null;//自定义图标private BitmapDescriptor mbitmap = BitmapDescriptorFactory.fromResource(R.drawable.mk);Handler mhandler=new Handler(){@Overridepublic void handleMessage(Message msg) {initmapEvent();//这是函数是添加百度地图点击事件的,长按地图在按下处添加一个标注/**下面两行代码添加一个标注*/makerInfo marker=new makerInfo(114.2,30.0,"我是oncreate标注"); addOverlay(marker);}};//不使用Handler机制可能会报错,地图页面无法正常显示
2.传递信息的makerInfo类,这是自定义的,可用其他方法代替
package com.example.entity;import java.io.Serializable;import com.baidu.mapapi.model.LatLng;public class makerInfo implements Serializable{private double lng,lat;private String content;private LatLng latlng;public makerInfo(){}public makerInfo(double lng, double lat, String content) {this.lng = lng;this.lat = lat;this.content = content;latlng=new LatLng(lat, lng);}public double getLng() {return lng;}public void setLng(double lng) {this.lng = lng;}public double getLat() {return lat;}public void setLat(double lat) {this.lat = lat;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public LatLng getLatlng() {return latlng;}public void setLatlng(LatLng latlng) {this.latlng = latlng;}}
3.添加marker到百度地图上
public void addOverlay(makerInfo Info){OverlayOptions overlayoptions=null;Marker marker=null;overlayoptions = new MarkerOptions()//.position(Info.getLatlng())// 设置marker的位置.icon(mbitmap)// 设置marker的图标.zIndex(9);// 設置marker的所在層級marker=(Marker) baiduMap.addOverlay(overlayoptions);Bundle bundle=new Bundle();bundle.putSerializable("marker", Info);marker.setExtraInfo(bundle);}
4.添加地图点击事件函数
//定义地图监听事件public void initmapEvent(){/* * 地图长按事件 */OnMapLongClickListener mlongclicklistener = new OnMapLongClickListener() { /** * 地图长按事件监听回调函数 * @param point 长按的地理坐标 */ public void onMapLongClick(LatLng point){ baiduMap.addOverlay(start);*/ makerInfo marker=new makerInfo(point.longitude,point.latitude,"我是marker标注"); addOverlay(marker); } };baiduMap.setOnMapLongClickListener(mlongclicklistener);/* * 设置marker点击事件 */OnMarkerClickListener mMarkerlis=new OnMarkerClickListener(){@Overridepublic boolean onMarkerClick(Marker marker) {makerInfo Info=(makerInfo) marker.getExtraInfo().get("marker");InfoWindow mInfoWindow;//生成一个TextView用户在地图中显示InfoWindow TextView location = new TextView(getActivity().getApplicationContext()); location.setBackgroundResource(R.drawable.textback); location.setPadding(30, 20, 30, 50); location.setText(Info.getContent()); //将marker所在的经纬度的信息转化成屏幕上的坐标 final LatLng ll = marker.getPosition(); Point p = baiduMap.getProjection().toScreenLocation(ll); p.y -= 50; LatLng llInfo = baiduMap.getProjection().fromScreenLocation(p); //为弹出的InfoWindow添加点击事件 mInfoWindow = new InfoWindow(location, llInfo, new OnInfoWindowClickListener() { @Override public void onInfoWindowClick() { //隐藏InfoWindow baiduMap.hideInfoWindow(); } }); //显示InfoWindow baiduMap.showInfoWindow(mInfoWindow); return true;}};baiduMap.setOnMarkerClickListener(mMarkerlis);}
5.在上面的都准备好之后,就在onCreate方法中初始化上面的地图点击事件,marker点击事件,以及添加一个marker标注
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);.../**执行mhandler.sendEmptyMessage(0)后,*会自动执行public void handleMessage(Message msg)方法*/mhandler.sendEmptyMessage(0); ...}
至此,在百度地图上添加marker及marker点击事件已经完成了
3 0
- 百度地图3.0以上版本标注marker及其点击事件
- 关于百度地图marker的点击事件
- 百度地图 标注 显示信息 Marker单击事件 代码参考
- 关于百度地图标注marker,三个以上标注只成功跳转三个的问题的解决方案
- php的百度地图应用marker及点击事件,searchInfoWindow
- 如何区分多个百度地图marker的点击事件
- Android百度地图(多个marker的点击事件)
- 百度地图marker标记即行车路线规划和marker点击气泡事件
- android集成百度地图定位、poi检索、marker标记功能,以及marker点击事件
- 百度地图API 移动的marker,移动marker点击事件及动态改变速度
- iOS——百度地图点击标注事件
- 百度地图:为标记添加点击事件显示标注
- Android百度地图3.0.0点击Marker弹出覆盖物
- 百度地图API-地图标注(Marker)用法说明
- 百度地图 Android SDK - 标注(Marker)的基本使用
- 百度地图 Android SDK - 标注(Marker)的基本使用
- 百度地图marker标注上如何加上数字
- 百度地图API一:百度地图上循环显示标注点。使用闭包循环加载点击事件
- LeetCode:Game of Life
- 习题
- JAVA中获取当前系统时间
- Redis的安装和配置(centos6.7)
- RecyclerView的全能适配器,带有header和bottom
- 百度地图3.0以上版本标注marker及其点击事件
- Servlet3.0模块化支持
- JAVA基础再回首(三)——方法、重载、数组、堆栈内存分配、数组遍历、获取最值、二维数组
- uva12563 jin ge jin qu hao
- Linux系统信息显示命令
- android面包屑导航栏的实现
- graphx初涉,结合源码学习一
- pandas SettingWithCopyWarning
- 初识java线程池