通过百度地图API实现搜索地址--第三方开源--百度地图(三)
搜索地址功能是建立在能够通过百度地图API获取位置的基础上
通过百度地图定位获取位置详情:http://www.cnblogs.com/zzw1994/p/5008134.html
- package com.zzw.baidumappoint;
- import com.baidu.location.BDLocation;
- import com.baidu.location.BDLocationListener;
- import com.baidu.location.LocationClient;
- import com.baidu.location.LocationClientOption;
- import com.baidu.mapapi.SDKInitializer;
- import com.baidu.mapapi.map.BaiduMap;
- import com.baidu.mapapi.map.MapStatusUpdate;
- import com.baidu.mapapi.map.MapStatusUpdateFactory;
- import com.baidu.mapapi.map.MapView;
- import com.baidu.mapapi.map.MyLocationData;
- import com.baidu.mapapi.model.LatLng;
- import com.baidu.mapapi.search.geocode.GeoCodeOption;
- import com.baidu.mapapi.search.geocode.GeoCodeResult;
- import com.baidu.mapapi.search.geocode.GeoCoder;
- import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
- import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private LocationClient mLocationClient;
- private BaiduMap mBaiduMap;
- private GeoCoder mGeoCoder;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SDKInitializer.initialize(getApplicationContext());// 使程序不崩溃的作用
- setContentView(R.layout.activity_main);
- final EditText city_edit = (EditText) findViewById(R.id.city);
- final EditText addr_edit = (EditText) findViewById(R.id.addr);
- // 获取LocationClient
- mLocationClient = new LocationClient(this);
- // 获得GeoCoder
- mGeoCoder = GeoCoder.newInstance();
- mGeoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
- @Override
- public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
- }
- @Override
- public void onGetGeoCodeResult(GeoCodeResult result) {
- try{
- LatLng ll = result.getLocation();
- // 只是完成了定位
- MyLocationData locData = new MyLocationData.Builder().latitude(ll.latitude).longitude(ll.longitude)
- .build();
- // 设置图标在地图上的位置
- mBaiduMap.setMyLocationData(locData);
- // 开始移动百度地图的定位地点到中心位置
- MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
- mBaiduMap.animateMapStatus(u);
- }catch(Exception e){
- Toast.makeText(getApplicationContext(), "请检查地址", 0).show();
- }
- }
- });
- findViewById(R.id.GO).setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- String city = city_edit.getText() + "";
- String addr = addr_edit.getText() + "";
- city_edit.setText("");
- addr_edit.setText("");
- mGeoCoder.geocode(new GeoCodeOption().city(city.trim()).address(addr.trim()));
- } catch (Exception e) {
- }
- }
- });
- LocationClientOption option = new LocationClientOption();
- option.setCoorType("bd09ll");
- mLocationClient.setLocOption(option);
- // 获取BaiduMap
- MapView mapView = (MapView) findViewById(R.id.mapView);
- mBaiduMap = mapView.getMap();
- // 显示出当前位置的小图标
- mBaiduMap.setMyLocationEnabled(true);
- MyLocationListener mListener = new MyLocationListener();
- mLocationClient.registerLocationListener(mListener);
- mLocationClient.start();
- }
- @Override
- protected void onDestroy() {
- mLocationClient.stop();
- super.onDestroy();
- }
- private class MyLocationListener implements BDLocationListener {
- @Override
- public void onReceiveLocation(BDLocation location) {
- // 只是完成了定位
- MyLocationData locData = new MyLocationData.Builder().latitude(location.getLatitude())
- .longitude(location.getLongitude()).build();
- // 设置图标在地图上的位置
- mBaiduMap.setMyLocationData(locData);
- // 开始移动百度地图的定位地点到中心位置
- LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
- MapStatusUpdate u = MapStatusUpdateFactory.newLatLngZoom(ll, 16.0f);
- mBaiduMap.animateMapStatus(u);
- }
- }
- }
通过百度地图API实现搜索地址--第三方开源--百度地图(三)的更多相关文章
- QQ地图api里的 地址解析函数 看不懂 javascript_百度知道
QQ地图api里的 地址解析函数 看不懂 javascript_百度知道 QQ地图api里的 地址解析函数 看不懂 javascript 2011-09-18 12:18 匿名 ...
- 百度地图API地点搜索-获取经纬度
分享一下地图上的地点搜索和鼠标点击获取地点经纬度,这些都是地图比较基本和实用的代码,其中还包括了根据用户IP进行地图的显示.改变地图上的鼠标样式.启用滚轮缩放等,算是半入门吧,其他的一些可以自己参考百 ...
- 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈
原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! ---------------------------- ...
- PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例
原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...
- 【百度地图API】关于如何进行城市切换的三种方式
原文:[百度地图API]关于如何进行城市切换的三种方式 摘要:本文介绍了三种切换城市的方式:查询城市.城市列表和显示城市轮廓. ------------------------------------ ...
- 使用百度地图API自动获取地址和经纬度
先上效果图,这是直接点击获取经纬度和地址的.没有做搜索的功能. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- 通过百度地图API定位--第三方开源--百度地图(一)
1.把百度地图定位API(下载地址:http://lbsyun.baidu.com/sdk/download?selected=location)里面的libs复制到自己的项目libs里面 2.进行相 ...
- 用百度地图API打造方便自己使用的手机地图
有钱人咱就不说了,因为偶是个穷银--因为穷,所以去年买的Huawei C8650+到现在还在上岗,对于没有钱买好的配置的手机的童鞋来说,类似于百度,谷歌,高德等商家的地图在自己的机器上跑起来确实是有点 ...
- 百度地图API示例之根据城市名设置地图中心点
代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" con ...
随机推荐
- 1.5.7 CharFilterFactories
CharFilterFactories 字符过滤器是一个预处理输入字符的组件,字符过滤器可以链接如token过滤器,并放置在Tokenizer(分词器)的前面,字符过滤器可以添加,更改或删除字符,同时 ...
- 使用 mina 传输大字节数组
转载自:http://seara520.blog.163.com/blog/static/16812769820103214817781/ 使用mina传输超过2k以上的数据时(采用tcp方式,如果是 ...
- struts2 零配置
一.新建一个web项目,命名为:struts2 二.导入strut2所需的jar包 所需jar下载:http://pan.baidu.com/s/1dDxP4Z3 三.配置struts2的启动文件,在 ...
- linux服务监控脚本
配置需要监控的服务器 数组定义:host_ports=(host_name=host_port=uri_path)host_name为容易识别的服务器名称host_port为服务器ip和服务端口uri ...
- 使用JSON进行数据传输的总结
一.选择的意义 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.为了更好的使用ajax, 我们将学习一种有用的数据格式 JavaScript Object Notation ...
- http错误码大全
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行.响应码分五种类型,由它们的第一位数字表示:1.1xx:信息,请求收到,继续处理2.2xx:成功,行为被成功地接受.理解和采纳3 ...
- php的一些简单算法程序(冒泡、快速等)
冒泡排序: function buttle_sort($array) { $len=count($array); if($len<2){ return $array; } for($i=0;$i ...
- 服务器调用JS
服务器控件调用JS一.两类JS的触发设计1.提交之前的JS -- 加js的事件例:<script language="javascript"> // 构造函数 func ...
- Matlab之文件操作
1.判断是否存在文件夹:if (exist(folderName,'dir')) 2.创建文件夹:mkdir(folderName) 3.删除文件夹:rmdir(folderName,'s') 4.当 ...
- Socket 两平台互相 通信 .NET
两个平台互相通信,对方发送数据过来,我方接收数据,对数据进行处理后发送结果给对方,对方进行相应的操作. 首页,我方开启服务监听: Socket socket = new Socket(AddressF ...