百度地图的使用和编程实现

开发使用百度地图,首先需要获得api key。实现方法为:
①进入百度地图api网页创建一个新应用,输入
sha1和包名。
②sha1的获取方法:
eclipse中是直接查看:winows -> preferance -> android -> build
Android studio中是:点击studio下面的工具栏中的Open Terminal
然后进入到User\Administrator\下,
cd. android 进入后,输入keytool -v -list -keystore debug.keystore(如果是自己的keystore就要输入自己的密码,不然是没有密钥)获取到sha1.
③就可以生成api key了。

那么接下来就是导入包,下载了Android百度地图的sdk,然后把jar和so包导入,Androidstudio中点击Project项进入把jar放入libs中,然后so放入src/main中即可使用百度地图sdk。

现在就可以开发简易百度地图啦!
由于现在版本的问题,在百度sdk3.0后使用不一致。在2.3的版本中,流程是这样的。
布局为一个mapview即可

Activity中,就是有一个BMapManager对象,
BMapmanager manager=new BMapmanager(this);
manager.init(keyapi,null);这初始化 过程要在setContentView之前执行!
布局中的mapview得到,并mapview.setBuiltInZoomControls(true);支持缩放。

而后就是在onResume,onPause,和onDestroy中进行manager.start,manager.stop和manager.destroy; 以及mapview的父方法onResume等。

添加完manifest的相关权限后,就能够显示世界地图。

那么怎么实现具体的位置呢,在onCreate中获取mapview完后,我们可以直接利用LocationManager 和provider位置提供来获取Location,位置管理是getSystemService获取的,provider是可以有很多个,所以全部获取出来存在Listlist中,再一个个比较,GPS提供,INTERNET提供或者失败。然后得到Location后,就能够得到经纬度了。
具体位置
就是mapview获得mapcontroller,mapcontroller设置好setZoom(16)//缩放比例
—> 就能够通过setCenter(GeoP
oint p)实现位置了。不用说也知道GeoPoint就是一个保存使用到经纬度的对象
p=new GeoPoint((int)Location.getLatitude()*1E6,(int)Location.getLongitude()*1E6);
此处只是放大了具体位置并没有任何提示.

要添加覆盖物即添加给他一个圆点显示位置,覆盖物有两种 MyLocationOverlay和PopupOverlay

①MyLocationOverlay
新建了mylocationoverlay,
然后为其加位置数据即
LocationData l=new LocationData();
l.latitude=location.getLatitude();
经度也一样。
然后覆盖物就是这个位置bamylocationoverlay.setData(l);
通过mapview来把他加入mapview.getOverlays().add(mylocationoverlay),mapview.refresh()即可。
②PopupOverlay
可点击的图片,最多3张
新建对象 new PopupOverlay(mapview,new PopupClicklistener(){…})并且设置了监听;
然后就是覆盖物的3图
使用Bitmap []bitmaps=new Bitmap[3];保存

然后对象使用showPopup方法pop.showPopup(bitmaps,p,18)显示
图片,位置,垂直显示距离即可实现功能。
具体请参考:http://developer.baidu.com/map/sdk-android.html

你可能感兴趣的:(百度地图小测试,百度地图,api,android)