Android百度地图开发(三)范围搜索

1.新建项目

将地图API添加进classpath中:

2.在activity_main.xml中添加一个MapView,用来显示地图:

1<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="fill_parent" 3 android:layout_height="fill_parent" 4 android:orientation="vertical" > 5 6 <!-- 添加显示地图的控件 --> 7 8 <com.baidu.mapapi.MapView 9 android:id="@+id/bmapView" 10 android:layout_width="fill_parent" 11 android:layout_height="fill_parent" 12 android:clickable="true" /> 13 14</LinearLayout>

3.修改AndroidManifest.xml文件,指定用户权限

1<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > 2 </uses-permission> 3 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" > 4 </uses-permission> 5 <uses-permission android:name="android.permission.INTERNET" > 6 </uses-permission> 7 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > 8 </uses-permission> 9 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > 10 </uses-permission> 11 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" > 12 </uses-permission> 13 <uses-permission android:name="android.permission.READ_PHONE_STATE" > 14 </uses-permission> 15 <uses-permission android:name="android.permission.CALL_PHONE" > 16 </uses-permission> 17 18 <supports-screens 19 android:anyDensity="true" 20 android:largeScreens="true" 21 android:normalScreens="false" 22 android:resizeable="true" 23 android:smallScreens="true" />

3.初始化地图引擎

1bMapManager = new BMapManager(MainActivity.this); 2 bMapManager.init(keyString, new MKGeneralListener() { 3 @Override 4 public void onGetPermissionState(int arg0) { 5 // TODO Auto-generated method stub 6 } 7 8 @Override 9 public void onGetNetworkState(int arg0) { 10 // TODO Auto-generated method stub 11 if (arg0 == 300) { 12 Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1) 13 .show(); 14 } 15 } 16 }); 17 initMapActivity(bMapManager); //初始化地图引擎

4.取得MapView组件

mapView = (MapView) findViewById(R.id.bmapView);

5.实例化search对象并添加监听

1mkSearch = new MKSearch(); 2mkSearch.init(bMapManager, new MySearchListener());

监听类:

1private class MySearchListener implements MKSearchListener { 2 3 @Override 4 public void onGetAddrResult(MKAddrInfo arg0, int arg1) { 5 // TODO Auto-generated method stub 6 7 } 8 9 @Override 10 public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) { 11 // TODO Auto-generated method stub 12 13 } 14 15 @Override 16 public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) { 17 // TODO Auto-generated method stub 18 19 } 20 21 @Override 22 public void onGetPoiDetailSearchResult(int arg0, int arg1) { 23 // TODO Auto-generated method stub 24 25 } 26 27 @Override 28 public void onGetPoiResult(MKPoiResult result, int type, int isError) { 29 // TODO Auto-generated method stub 30 if(result == null){ 31 return; 32 } 33 PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView); 34 poiOverlay.setData(result.getAllPoi()); 35 mapView.getOverlays().add(poiOverlay); 36 mapView.invalidate(); 37 } 38 39 @Override 40 public void onGetRGCShareUrlResult(String arg0, int arg1) { 41 // TODO Auto-generated method stub 42 43 } 44 45 @Override 46 public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) { 47 // TODO Auto-generated method stub 48 49 } 50 51 @Override 52 public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) { 53 // TODO Auto-generated method stub 54 55 } 56 57 @Override 58 public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) { 59 // TODO Auto-generated method stub 60 61 } 62 }

6.根据关键词、中心点、半径进行搜索。

1// 关键词,中心点,范围半径 2mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)), 5000);

7.恢复、暂停、停止地图时地图引擎的操作

1 @Override 2 protected void onDestroy() { 3 // TODO Auto-generated method stub 4 super.onDestroy(); 5 if (bMapManager != null) { 6 bMapManager.destroy(); 7 bMapManager = null; 8 } 9 } 10 11 @Override 12 protected void onResume() { 13 // TODO Auto-generated method stub 14 super.onResume(); 15 if (bMapManager != null) { 16 bMapManager.start(); 17 } 18 } 19 20 @Override 21 protected void onPause() { 22 // TODO Auto-generated method stub 23 super.onPause(); 24 if (bMapManager != null) { 25 bMapManager.stop(); 26 } 27 }

完整代码:

1package com.example.baiduhellopoioverlay; 2 3import android.os.Bundle; 4import android.view.Menu; 5import android.widget.Toast; 6 7import com.baidu.mapapi.BMapManager; 8import com.baidu.mapapi.GeoPoint; 9import com.baidu.mapapi.MKAddrInfo; 10import com.baidu.mapapi.MKBusLineResult; 11import com.baidu.mapapi.MKDrivingRouteResult; 12import com.baidu.mapapi.MKGeneralListener; 13import com.baidu.mapapi.MKPoiResult; 14import com.baidu.mapapi.MKSearch; 15import com.baidu.mapapi.MKSearchListener; 16import com.baidu.mapapi.MKSuggestionResult; 17import com.baidu.mapapi.MKTransitRouteResult; 18import com.baidu.mapapi.MKWalkingRouteResult; 19import com.baidu.mapapi.MapActivity; 20import com.baidu.mapapi.MapView; 21import com.baidu.mapapi.PoiOverlay; 22 23public class MainActivity extends MapActivity { 24 25 private MapView mapView; 26 private BMapManager bMapManager; 27 private String keyString = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A"; 28 private MKSearch mkSearch; 29 30 @Override 31 protected void onCreate(Bundle savedInstanceState) { 32 super.onCreate(savedInstanceState); 33 setContentView(R.layout.activity_main); 34 35 bMapManager = new BMapManager(MainActivity.this); 36 bMapManager.init(keyString, new MKGeneralListener() { 37 @Override 38 public void onGetPermissionState(int arg0) { 39 // TODO Auto-generated method stub 40 } 41 42 @Override 43 public void onGetNetworkState(int arg0) { 44 // TODO Auto-generated method stub 45 if (arg0 == 300) { 46 Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1) 47 .show(); 48 } 49 } 50 }); 51 initMapActivity(bMapManager); //初始化地图引擎 52 mapView = (MapView) findViewById(R.id.bmapView); 53 mkSearch = new MKSearch(); 54 mkSearch.init(bMapManager, new MySearchListener()); 55 56 // 关键词,中心点,范围半径 57 mkSearch.poiSearchNearBy("KFC", new GeoPoint((int) (39.915 * 1E6), 58 (int) (116.404 * 1E6)), 5000); 59 } 60 61 private class MySearchListener implements MKSearchListener { 62 63 @Override 64 public void onGetAddrResult(MKAddrInfo arg0, int arg1) { 65 // TODO Auto-generated method stub 66 67 } 68 69 @Override 70 public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) { 71 // TODO Auto-generated method stub 72 73 } 74 75 @Override 76 public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) { 77 // TODO Auto-generated method stub 78 79 } 80 81 @Override 82 public void onGetPoiDetailSearchResult(int arg0, int arg1) { 83 // TODO Auto-generated method stub 84 85 } 86 87 @Override 88 public void onGetPoiResult(MKPoiResult result, int type, int isError) { 89 // TODO Auto-generated method stub 90 if(result == null){ 91 return; 92 } 93 PoiOverlay poiOverlay = new PoiOverlay(MainActivity.this, mapView); 94 poiOverlay.setData(result.getAllPoi()); 95 mapView.getOverlays().add(poiOverlay); 96 mapView.invalidate(); 97 } 98 99 @Override 100 public void onGetRGCShareUrlResult(String arg0, int arg1) { 101 // TODO Auto-generated method stub 102 103 } 104 105 @Override 106 public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) { 107 // TODO Auto-generated method stub 108 109 } 110 111 @Override 112 public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) { 113 // TODO Auto-generated method stub 114 115 } 116 117 @Override 118 public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) { 119 // TODO Auto-generated method stub 120 121 } 122 } 123 124 @Override 125 protected void onDestroy() { 126 // TODO Auto-generated method stub 127 super.onDestroy(); 128 if (bMapManager != null) { 129 bMapManager.destroy(); 130 bMapManager = null; 131 } 132 } 133 134 @Override 135 protected void onResume() { 136 // TODO Auto-generated method stub 137 super.onResume(); 138 if (bMapManager != null) { 139 bMapManager.start(); 140 } 141 } 142 143 @Override 144 protected void onPause() { 145 // TODO Auto-generated method stub 146 super.onPause(); 147 if (bMapManager != null) { 148 bMapManager.stop(); 149 } 150 } 151 152 @Override 153 public boolean onCreateOptionsMenu(Menu menu) { 154 // Inflate the menu; this adds items to the action bar if it is present. 155 getMenuInflater().inflate(R.menu.main, menu); 156 return true; 157 } 158 159 @Override 160 protected boolean isRouteDisplayed() { 161 // TODO Auto-generated method stub 162 return false; 163 } 164 165}

运行结果:

 

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )