通过百度地图API实现搜索地址


搜索地址功能是建立在能够通过百度地图API获取位置的基础上

通过百度地图定位获取位置详情:http://www.cnblogs.com/zzw1994/p/5008134.html

  1 package com.zzw.baidumappoint;
2
3 import com.baidu.location.BDLocation;
4 import com.baidu.location.BDLocationListener;
5 import com.baidu.location.LocationClient;
6 import com.baidu.location.LocationClientOption;
7 import com.baidu.mapapi.SDKInitializer;
8 import com.baidu.mapapi.map.BaiduMap;
9 import com.baidu.mapapi.map.MapStatusUpdate;
10 import com.baidu.mapapi.map.MapStatusUpdateFactory;
11 import com.baidu.mapapi.map.MapView;
12 import com.baidu.mapapi.map.MyLocationData;
13 import com.baidu.mapapi.model.LatLng;
14 import com.baidu.mapapi.search.geocode.GeoCodeOption;
15 import com.baidu.mapapi.search.geocode.GeoCodeResult;
16 import com.baidu.mapapi.search.geocode.GeoCoder;
17 import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
18 import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
19
20 import android.app.Activity;
21 import android.os.Bundle;
22 import android.view.View;
23 import android.view.View.OnClickListener;
24 import android.widget.EditText;
25 import android.widget.Toast;
26
27 public class MainActivity extends Activity {
28
29 private LocationClient mLocationClient;
30 private BaiduMap mBaiduMap;
31 private GeoCoder mGeoCoder;
32
33 @Override
34 protected void onCreate(Bundle savedInstanceState) {
35 super.onCreate(savedInstanceState);
36 SDKInitializer.initialize(getApplicationContext());// 使程序不崩溃的作用
37 setContentView(R.layout.activity_main);
38
39 final EditText city_edit = (EditText) findViewById(R.id.city);
40 final EditText addr_edit = (EditText) findViewById(R.id.addr);
41 // 获取LocationClient
42 mLocationClient = new LocationClient(this);
43
44 // 获得GeoCoder
45 mGeoCoder = GeoCoder.newInstance();
46 mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
47
48 @Override
49 public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
50
51 }
52
53 @Override
54 public void onGetGeoCodeResult(GeoCodeResult result) {
55 try{
56 LatLng ll = result.getLocation();
57 // 只是完成了定位
58 MyLocationData locData = new MyLocationData.Builder().latitude(ll.latitude).longitude(ll.longitude)
59 .build();
60
61 // 设置图标在地图上的位置
62 mBaiduMap.setMyLocationData(locData);
63
64 // 开始移动百度地图的定位地点到中心位置
65 MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
66 mBaiduMap.animateMapStatus(u);
67 }catch(Exception e){
68 Toast.makeText(getApplicationContext(), "请检查地址", 0).show();
69 }
70 }
71 });
72
73 findViewById(R.id.GO).setOnClickListener(new OnClickListener() {
74
75 @Override
76 public void onClick(View v) {
77 try {
78 String city = city_edit.getText() + "";
79 String addr = addr_edit.getText() + "";
80 city_edit.setText("");
81 addr_edit.setText("");
82 mGeoCoder.geocode(new GeoCodeOption().city(city.trim()).address(addr.trim()));
83 } catch (Exception e) {
84
85 }
86
87 }
88 });
89 LocationClientOption option = new LocationClientOption();
90 option.setCoorType("bd09ll");
91 mLocationClient.setLocOption(option);
92
93 // 获取BaiduMap
94 MapView mapView = (MapView) findViewById(R.id.mapView);
95 mBaiduMap = mapView.getMap();
96
97 // 显示出当前位置的小图标
98 mBaiduMap.setMyLocationEnabled(true);
99
100 MyLocationListener mListener = new MyLocationListener();
101 mLocationClient.registerLocationListener(mListener);
102 mLocationClient.start();
103 }
104
105 @Override
106 protected void onDestroy() {
107 mLocationClient.stop();
108 super.onDestroy();
109 }
110
111 private class MyLocationListener implements BDLocationListener {
112
113 @Override
114 public void onReceiveLocation(BDLocation location) {
115
116 // 只是完成了定位
117 MyLocationData locData = new MyLocationData.Builder().latitude(location.getLatitude())
118 .longitude(location.getLongitude()).build();
119
120 // 设置图标在地图上的位置
121 mBaiduMap.setMyLocationData(locData);
122
123 // 开始移动百度地图的定位地点到中心位置
124 LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
125 MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
126 mBaiduMap.animateMapStatus(u);
127 }
128
129 }
130
131 }

 

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告