高德地图定位和位置检索
来源:互联网 发布:淘宝上怎么买处方药 编辑:程序博客网 时间:2024/06/05 22:56
高德地图定位和检索
开发步骤简单的说一下:登录高德api开发平台点击打开链接 注册账号 -->打开控制台-->创建应用-->获取appkey
android studio获取sh1值:
首先找到debug.keystore 和发布正式版的keystore 建议放在一个好找目录下(我的放在F盘)(放的太深以后其它地方需要用就不好找了)
下面以测试版为例 :
找到jdk bin目录(D:\Program Files\Android\Android Studio\jre\bin),在此目录里按下shift+右键 点击在此打开命令窗口,
输入:keytool -v -list -keystore F:debug.keystore 按下回车键后提示输入密码 默认密码:android
找到jdk bin目录(D:\Program Files\Android\Android Studio\jre\bin),在此目录里按下shift+右键 点击在此打开命令窗口,
输入:keytool -v -list -keystore F:debug.keystore 按下回车键后提示输入密码 默认密码:android
下载官方sdk
我用的是
后面就是导入jar包,so文件官方文档上有说明我就不一一细说了。
由于定位和检索在项目中会用到不少次(重新定位,很多acitivity中都用到),所以进行了简单的封装。
下面贴代码
/** * 高德地图定位 * 和地理检索(根据城市名获取这个城市的信息) */public class GaoDeMapLocation implements AMapLocationListener,PoiSearch.OnPoiSearchListener { private Context context; public final static int MSG_LOCATION_START = 0;//开始定位 public final static int MSG_LOCATION_FINISH = 1;//定位完成 public final static int MSG_LOCATION_STOP= 2;//停止定位 private AMapLocationClient locationClient = null; private AMapLocationClientOption locationOption = null; private PoiSearch.Query query;//poi查询条件类 private PoiSearch poiSearch;// POI搜索 private PoiResult poiResult; // poi返回的结果 private DingWeiSuccessListener dingWeiSuccessListener;//定位成功的接口 public GaoDeMapLocation(Context context) { this.context = context; initdata(); } /** * 初始化高德地图定位需要的类 */ private void initdata() { locationClient = new AMapLocationClient(context); locationOption = new AMapLocationClientOption(); locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving); locationClient.setLocationListener(this); } /*在启动当前APP的时候启动定位功能*/ public void startLocation(){ Log.e("dingwei","#########"+ Build.VERSION.SDK_INT); locationClient.setLocationOption(locationOption); locationClient.startLocation(); locationHandler.sendEmptyMessage(MSG_LOCATION_START); } //位置检索 public void doSearchQuery(String cityName){ query = new PoiSearch.Query(cityName,"",""); query.setPageSize(10);//设置每页返回多少条条poiitem query.setPageNum(0);//设置查第一页 poiSearch = new PoiSearch(context,query); poiSearch.setOnPoiSearchListener(this); poiSearch.searchPOIAsyn(); } /*地址切换*/ @Override public void onLocationChanged(AMapLocation aMapLocation) { if (null != aMapLocation) { Message msg = locationHandler.obtainMessage(); msg.obj = aMapLocation; msg.what = MSG_LOCATION_FINISH; locationHandler.sendMessage(msg); } } Handler locationHandler = new Handler(){ public void dispatchMessage(Message msg) { switch (msg.what) { case MSG_LOCATION_START: break; //定位完成 case MSG_LOCATION_FINISH: AMapLocation loc = (AMapLocation)msg.obj; String lng = loc.getLongitude()+"";//经度 String lat = loc.getLatitude()+"";//纬度 String citycode = loc.getCityCode()+"";//城市编码 String address = loc.getCity()+"";//城市名称//建议将上面定位成功的信息baocun到SharedPreference中可以在项目中随时用 if (dingWeiSuccessListener!=null){//当定位成功后调用此接口, dingWeiSuccessListener.onDingWeiSuccessListener(); } break; case MSG_LOCATION_STOP: break; default: break; } }; }; @Override public void onPoiSearched(PoiResult result, int resultCode) { Log.e("GAODE", "执行回调:" + resultCode + " result:" + result); //地图搜索的回调 if (resultCode == 1000) { if (result != null && result.getQuery() != null) { poiResult = result; //取得第一页的poiitem的数据,页数从0开始 List<PoiItem> poiItems = poiResult.getPois(); String cityCode = poiItems.get(0).getCityCode();//城市编码 String adName = poiItems.get(0).getAdName();//区的地址,为了给供货区提供区的地址 String pname = poiItems.get(0).getProvinceName();//省的地址,为了给供货区提供省的地址 String cname = poiItems.get(0).getCityName();//市的地址,为了给供货区提供市的地址 LatLonPoint latLonPoint = poiItems.get(0).getLatLonPoint(); double lat = latLonPoint.getLatitude();//纬度 double lng = latLonPoint.getLongitude();//经度//建议将上面检索成功的信息baocun到SharedPreference中可以在项目中随时用 if (cityChangeListener!=null){ cityChangeListener.onCityChangeListner(); } } } } @Override public void onPoiItemSearched(PoiItem poiItem, int i) { } public void setDingWeiSuccessListener(DingWeiSuccessListener dingWeiSuccessListener){ this.dingWeiSuccessListener = dingWeiSuccessListener; } private CityChangeListener cityChangeListener; public void setCityChangeListener(CityChangeListener cityChangeListener){ this.cityChangeListener = cityChangeListener; } public interface DingWeiSuccessListener{ public void onDingWeiSuccessListener(); } public interface CityChangeListener{ public void onCityChangeListner(); }}使用教程://定位 GaoDeMapLocation gaoDeMapLocation = new GaoDeMapLocation(this); gaoDeMapLocation.startLocation(); gaoDeMapLocation.setDingWeiSuccessListener(new GaoDeMapLocation.DingWeiSuccessListener() { @Override public void onDingWeiSuccessListener() { //定位成功的监听 todo } });//检索GaoDeMapLocation gdl = new GaoDeMapLocation(this);gdl.doSerchaQuery("南京");gdl.setCityChangeListener(new CityChangeLisnener(){@Overridepublic void onCityCHaneListener(){//检索成功}});
0 0
- 高德地图定位和位置检索
- 高德地图定位及显示位置
- 高德地图定位按钮位置显示
- 高德地图03---定位本地位置
- 高德地图指定位置定位
- 高德地图定位拖动改变位置
- service结合高德地图定位,上传定位位置
- google地图、高德地图基于基站定位位置纠偏
- 高德地图——定位 检索 导航全套
- Android高德地图poi检索仿微信发送位置
- Android最新版高德地图poi检索仿微信发送位置
- vue2集成amap(高德地图)位置搜索和定位
- 高德地图返回当前定位位置功能
- 我的高德地图之定位,Marker,位置信息。
- 高德地图的定位和大头针
- 高德地图定位和附近功能
- 高德地图定位
- 高德地图---定位
- mysql 原理及配置优化
- 编小一个最小的C语言程序
- Hadoop 分布式配置及Spark on yarn部署
- andoid开发——自定义控件(JAVA和XML混合使用)
- tttttt
- 高德地图定位和位置检索
- sencha app build Error: Mixed-Mode x-compile
- selenium python webdriver 操作页面的滚动条
- 虚拟机字节码执行引擎
- java运算符
- ipython notebook使用教程
- Submile Text3中的实用插件
- ListView下拉刷新SwipeRefreshLayout + 底部加载
- signal函数