1. ---------------------如有兴趣,请加AndroidQQ群242431704,500人的超级群,欢迎各位的加入--------------

    ---------------------如有兴趣,请加AndroidQQ群242431704,500人的超级群,欢迎各位的加入--------------



  2. packagecom.liufeng.baidumap;
  3. importAndroid.os.Bundle;
  4. importAndroid.view.View;
  5. importAndroid.view.View.OnClickListener;
  6. importAndroid.widget.Button;
  7. importAndroid.widget.EditText;
  8. importAndroid.widget.TextView;
  9. importcom.baidu.mapapi.BMapManager;
  10. importcom.baidu.mapapi.GeoPoint;
  11. importcom.baidu.mapapi.MKAddrInfo;
  12. importcom.baidu.mapapi.MKDrivingRouteResult;
  13. importcom.baidu.mapapi.MKPoiInfo;
  14. importcom.baidu.mapapi.MKPoiResult;
  15. importcom.baidu.mapapi.MKSearch;
  16. importcom.baidu.mapapi.MKSearchListener;
  17. importcom.baidu.mapapi.MKTransitRouteResult;
  18. importcom.baidu.mapapi.MKWalkingRouteResult;
  19. importcom.baidu.mapapi.MapActivity;
  20. /**
  21. *根据经纬度查询地址信息
  22. *
  23. *@authorliufeng
  24. *@date2011-05-03
  25. */
  26. publicclassQueryAddressActivityextendsMapActivity{
  27. //定义地图引擎管理类
  28. privateBMapManagermapManager;
  29. //定义搜索服务类
  30. privateMKSearchmMKSearch;
  31. privateEditTextlongitudeEditText;
  32. privateEditTextlatitudeEditText;
  33. privateTextViewaddressTextView;
  34. privateButtonqueryButton;
  35. @Override
  36. publicvoidonCreate(BundlesavedInstanceState){
  37. super.onCreate(savedInstanceState);
  38. setContentView(R.layout.query_address);
  39. //初始化MapActivity
  40. mapManager=newBMapManager(getApplication());
  41. //init方法的第一个参数需填入申请的APIKey
  42. mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4",null);
  43. super.initMapActivity(mapManager);
  44. //初始化MKSearch
  45. mMKSearch=newMKSearch();
  46. mMKSearch.init(mapManager,newMySearchListener());
  47. //通过id查询在布局文件中定义的控件
  48. longitudeEditText=(EditText)findViewById(R.id.longitude_input);
  49. latitudeEditText=(EditText)findViewById(R.id.latitude_input);
  50. addressTextView=(TextView)findViewById(R.id.address_text);
  51. queryButton=(Button)findViewById(R.id.query_button);
  52. //给地址查询按钮设置单击事件监听器
  53. queryButton.setOnClickListener(newOnClickListener(){
  54. @Override
  55. publicvoidonClick(Viewv){
  56. //用户输入的经度值
  57. StringlongitudeStr=longitudeEditText.getText().toString();
  58. //用户输入的纬度值
  59. StringlatitudeStr=latitudeEditText.getText().toString();
  60. try{
  61. //将用户输入的经纬度值转换成int类型
  62. intlongitude=(int)(1000000*Double.parseDouble(longitudeStr));
  63. intlatitude=(int)(1000000*Double.parseDouble(latitudeStr));
  64. //查询该经纬度值所对应的地址位置信息
  65. mMKSearch.reverseGeocode(newGeoPoint(latitude,longitude));
  66. }catch(Exceptione){
  67. addressTextView.setText("查询出错,请检查您输入的经纬度值!");
  68. }
  69. }
  70. });
  71. }
  72. @Override
  73. protectedbooleanisRouteDisplayed(){
  74. returnfalse;
  75. }
  76. @Override
  77. protectedvoidonDestroy(){
  78. if(mapManager!=null){
  79. //程序退出前需调用此方法
  80. mapManager.destroy();
  81. mapManager=null;
  82. }
  83. super.onDestroy();
  84. }
  85. @Override
  86. protectedvoidonPause(){
  87. if(mapManager!=null){
  88. //终止百度地图API
  89. mapManager.stop();
  90. }
  91. super.onPause();
  92. }
  93. @Override
  94. protectedvoidonResume(){
  95. if(mapManager!=null){
  96. //开启百度地图API
  97. mapManager.start();
  98. }
  99. super.onResume();
  100. }
  101. /**
  102. *内部类实现MKSearchListener接口,用于实现异步搜索服务
  103. *
  104. *@authorliufeng
  105. */
  106. publicclassMySearchListenerimplementsMKSearchListener{
  107. /**
  108. *根据经纬度搜索地址信息结果
  109. *
  110. *@paramresult搜索结果
  111. *@paramiError错误号(0表示正确返回)
  112. */
  113. @Override
  114. publicvoidonGetAddrResult(MKAddrInforesult,intiError){
  115. if(result==null){
  116. return;
  117. }
  118. StringBuffersb=newStringBuffer();
  119. //经纬度所对应的位置
  120. sb.append(result.strAddr).append("/n");
  121. //判断该地址附近是否有POI(PointofInterest,即兴趣点)
  122. if(null!=result.poiList){
  123. //遍历所有的兴趣点信息
  124. for(MKPoiInfopoiInfo:result.poiList){
  125. sb.append("----------------------------------------").append("/n");
  126. sb.append("名称:").append(poiInfo.name).append("/n");
  127. sb.append("地址:").append(poiInfo.address).append("/n");
  128. sb.append("经度:").append(poiInfo.pt.getLongitudeE6()/1000000.0f).append("/n");
  129. sb.append("纬度:").append(poiInfo.pt.getLatitudeE6()/1000000.0f).append("/n");
  130. sb.append("电话:").append(poiInfo.phoneNum).append("/n");
  131. sb.append("邮编:").append(poiInfo.postCode).append("/n");
  132. //poi类型,0:普通点,1:公交站,2:公交线路,3:地铁站,4:地铁线路
  133. sb.append("类型:").append(poiInfo.ePoiType).append("/n");
  134. }
  135. }
  136. //将地址信息、兴趣点信息显示在TextView上
  137. addressTextView.setText(sb.toString());
  138. }
  139. /**
  140. *驾车路线搜索结果
  141. *
  142. *@paramresult搜索结果
  143. *@paramiError错误号(0表示正确返回)
  144. */
  145. @Override
  146. publicvoidonGetDrivingRouteResult(MKDrivingRouteResultresult,intiError){
  147. }
  148. /**
  149. *POI搜索结果(范围检索、城市POI检索、周边检索)
  150. *
  151. *@paramresult搜索结果
  152. *@paramtype返回结果类型(11,12,21:poi列表7:城市列表)
  153. *@paramiError错误号(0表示正确返回)
  154. */
  155. @Override
  156. publicvoidonGetPoiResult(MKPoiResultresult,inttype,intiError){
  157. }
  158. /**
  159. *公交换乘路线搜索结果
  160. *
  161. *@paramresult搜索结果
  162. *@paramiError错误号(0表示正确返回)
  163. */
  164. @Override
  165. publicvoidonGetTransitRouteResult(MKTransitRouteResultresult,intiError){
  166. }
  167. /**
  168. *步行路线搜索结果
  169. *
  170. *@paramresult搜索结果
  171. *@paramiError错误号(0表示正确返回)
  172. */
  173. @Override
  174. publicvoidonGetWalkingRouteResult(MKWalkingRouteResultresult,intiError){
  175. }
  176. }
  177. }

3)AndroidManifest.xml中的配置

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:Android="http://schemas.android.com/apk/res/android"
  3. package="com.liufeng.baidumap"
  4. Android:versionCode="1"
  5. Android:versionName="1.0">
  6. <applicationAndroid:icon="@drawable/icon"android:label="@string/app_name">
  7. <activityAndroid:name=".QueryAddressActivity"android:label="@string/app_name">
  8. <intent-filter>
  9. <actionAndroid:name="android.intent.action.MAIN"/>
  10. <categoryAndroid:name="android.intent.category.LAUNCHER"/>
  11. </intent-filter>
  12. </activity>
  13. </application>
  14. <uses-sdkAndroid:minSdkVersion="4"/>
  15. <!--访问网络的权限-->
  16. <uses-permissionAndroid:name="android.permission.INTERNET"/>
  17. <!--访问精确位置的权限-->
  18. <uses-permissionAndroid:name="android.permission.ACCESS_FINE_LOCATION"/>
  19. <!--访问网络状态的权限-->
  20. <uses-permissionAndroid:name="android.permission.ACCESS_NETWORK_STATE"/>
  21. <!--访问WIFI网络状态的权限-->
  22. <uses-permissionAndroid:name="android.permission.ACCESS_WIFI_STATE"/>
  23. <!--改变WIFI网络状态的权限-->
  24. <uses-permissionAndroid:name="android.permission.CHANGE_WIFI_STATE"/>
  25. <!--读写存储卡的权限-->
  26. <uses-permissionAndroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  27. <!--读取电话状态的权限-->
  28. <uses-permissionAndroid:name="android.permission.READ_PHONE_STATE"/>
  29. </manifest>

locationManager = (LocationManager) GPSTestActivity.this.getSystemService(Context.LOCATION_SERVICE);

String provier = LocationManager.GPS_PROVIDER; location = locationManager.getLastKnownLocation(provier);

if (location == null) { Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE);

criteria.setAltitudeRequired(false);

criteria.setBearingRequired(false);

criteria.setCostAllowed(false);

criteria.setPowerRequirement(Criteria.POWER_LOW);

provier = locationManager.getBestProvider(criteria, true);

location = locationManager.getLastKnownLocation(provier); }

更多相关文章

  1. android学习轨迹之二:Android权限标签uses-permission的书写位置
  2. android linker (1) —— __linker_init()
  3. android 百度地图3.0+常用操作
  4. 【Android(安卓)应用开发】Android(安卓)开发环境下载地址 -- 百
  5. Android(安卓)获取手机本地图片所在的位置
  6. Android获取所在地城市名2
  7. Android动态获取当前手机IP地址
  8. android 仿写 screen lock
  9. android > 建立WIFI 热点

随机推荐

  1. 分享几点Android(安卓)开发中的小技巧吧
  2. Android面试过程描述
  3. 华为发布全新IDE:DevCro Studio,Facebook正
  4. Android学习及如何利用android来赚钱
  5. 浅谈android中的反编译
  6. 谈Android终端厂商的如何建设 ——
  7. android之NDK(jni)开发笔记1——运行第一个
  8. 甩掉谷歌,Android阵营的集体性尴尬
  9. Android电话来电流程源码分析
  10. Android构建模块