基于百度地图的android地理位置获取

通过手机获取GPS信息,然后把利用GPS经纬度查询相应的地理位置信息。

1、利用android自带API实现,经过测试基本没有结果。留作参考。关键代码如下:

	Geocoder geocoder=new Geocoder(GotoMyLocationActivity.this);
//		        Geocoder geocoder = new Geocoder(this, Locale.CHINA);

		        try {
		                //Thread.sleep(2000);
		                places = geocoder.getFromLocation(latitude, longitude, 5);
		               // Thread.sleep(2000);
		                Toast.makeText(GotoMyLocationActivity.this, places.size()+"", Toast.LENGTH_LONG).show();
		                System.out.println(places.size()+"");
		        } catch (Exception e) {
		                e.printStackTrace();
		        }
 String placename = "";
			        if (places != null && places.size() > 0) {
			                // placename=((Address)places.get(0)).getLocality();
			                //一下的信息将会具体到某条街
			                //其中getAddressLine(0)表示国家,getAddressLine(1)表示精确到某个区,getAddressLine(2)表示精确到具体的街
			                placename = ((Address) places.get(0)).getAddressLine(0) + ", " + System.getProperty("line.separator")
			                                + ((Address) places.get(0)).getAddressLine(1) + ", "
			                                + ((Address) places.get(0)).getAddressLine(2);
			                Toast.makeText(GotoMyLocationActivity.this, placename, Toast.LENGTH_LONG).show();

			        }else{
			        	 Toast.makeText(GotoMyLocationActivity.this, "无法获取地理信息", Toast.LENGTH_LONG).show();
			        }
				

2、利用百度地图API实现

关键代码:

	// GPS编码成地理位置
				// 初始化搜索模块,注册事件监听
				// 把gps信号转成百度地图坐标
						JWD jwd = GPSToBaiDu.getData(longitude+"",latitude+"");
				//LatLng ptCenter = new LatLng(latitude, longitude);
						ptCenter = new LatLng(Double.parseDouble(jwd.getY()), Double.parseDouble(jwd.getX()));
				
mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(ptCenter));
				mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {

					@Override
					public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
						if (result == null
								|| result.error != SearchResult.ERRORNO.NO_ERROR) {
							Toast.makeText(GotoMyLocationActivity.this, "抱歉,未能找到结果",
									Toast.LENGTH_LONG).show();
							return;
						}
						Toast.makeText(GotoMyLocationActivity.this,
								result.getAddress(), Toast.LENGTH_LONG).show();

						mAddr = result.getAddress();

3、利用web api实现

关键代码:

/**
	 *
	 * @param latitude 纬度
	 * @param longitude	经度
	 * @return ReturnValue 返回地址相关信息
	 */
	public static ReturnValue geocoding(String latitude, String longitude) {

		//String l = "http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&location=39.983424,116.322987&output=json&pois=1";
		//ak mean the key.you should apply it from baidu.
		String key = "XXXXXXXXXXXXXXXXX";
		String url = "http://api.map.baidu.com/geocoder/v2/" +
				"?ak="+key+"&location="+latitude+","+longitude+"&output=json&pois=1";
		ReturnValue rv = httpRequest(url,"GET");
		if(null==rv)
			return null;
		return rv;
	}

demo下载地址:http://download.csdn.net/detail/u014600432/8184399

时间: 2024-10-05 14:16:18

基于百度地图的android地理位置获取的相关文章

java调用百度地图API根据地理位置获取经纬度

public Map<String, BigDecimal> getLatAndLngByAddress(String addr){ String address = ""; String lat = ""; String lng = ""; try { address = java.net.URLEncoder.encode(addr,"UTF-8"); } catch (UnsupportedEncodingE

android 基于百度地图api开发定位以及获取详细地址

一:百度地图开发必须要到百度开发平台android开发api下载相应的库,已经申请百度地图开发key. 二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView控件必须使用来自百度库封装好的com.baidu.mapapi.MapView .设计代码如下: Xml代码   <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&q

开源基于百度地图SDK的Android交通助手App

BaiduMap-TrafficAssistant ?? 该项目是基于百度地图SDK开发的一款交通助手App,目前已经上线豌豆荚.魅族应用市场.搜狗手机助手等多个安卓应用市场.目前我决定开源该项目,为更多的安卓应用开发者或者基于百度地图SDK开发人员提供服务和便利.当然App中还有不少bug和可扩展的功能模块,也希望各位开发者为该项目贡献自己的code力量.项目地址:https://github.com/chenyufeng1991/BaiduMap-TrafficAssistant 1.项目简

Android定位&amp;地图&amp;导航——基于百度地图实现的定位功能

一.问题描述 LBS位置服务是android应用中重要的功能,应用越来越广泛,下面我们逐步学习和实现lbs相关的应用如定位.地图.导航等,首先我们看如何基于百度地图实现定位功能 二.配置环境 1.注册密钥:地址http://developer.baidu.com/map/ 2.下载定位SDK,并导入SDK如图所示: 三.编写MyApplication类 编写MyApplication类,为了使用方便我们可以将实现定位的方法封装的Application组件中 封装下列方法 1.  获取定位信息——

百度地图的使用之获取数据库表中信息的坐标点显示在地图上

//通用封装好的js: var map = new BMap.Map("container"); //建树Map实例 var point = new BMap.Point(103.976032, 33.845509); // 建树点坐标 map.centerAndZoom(point, 6); // 初始化地图,设置中心点坐标和地图级别. //地图事件设置函数: map.enableDragging(); //启用地图拖拽事件,默认启用(可不写) map.enableScrollWhe

cordova百度地图定位Android版插件

本插件利用百度地图提供的定位功能进行Android版手机定位. 为什么没有iOS版? 因为iOS版有官方的定位插件cordova-plugin-geolocation可以使用. 请参照:cordova-plugin-geolocation Android版为什么不使用官方的cordova-plugin-geolocation插件 最新版的插件已经删除掉的Android版定位的代码,改为基于系统浏览器(chrome内核)进行定位. 为什么这样做,也有人问过同样的问题,作者的回答是这样比原生定位更快

iOS百度地图poi检索(基于百度地图2.3.0SDK开发)

正好做到百度地图的poi检索,拿来分享一下,基于百度地图2.3.0SDK开发,说实话,这个新版本poi真不好用 先来看头文件里面,定义poi对象,当然你也可以写到实现文件里面 #import <UIKit/UIKit.h> #import "BMapKit.h" @interface NearByPlaceViewController : ViewControllerBase <BMKPoiSearchDelegate> {     BMKPoiSearch *

基于百度地图的产品销售的单位查看功能设计与实现

基于百度地图实现产品销售的单位位置查看功能设计与实现 1.描述 本人最近参与基于MVC5+EF6+ Bootstrap3的食品安全监管系统设计.开发.先前感觉百度地图很神秘的样子.高大上的样子,设计.开发过程遇到些问题,经查看园子高手指点.示例摸索实践,终将百度地图嵌入系统.为感谢各位朋友的帮助,今有空,将基于百度地图实现产品销售的单位位置查看功能,分享给大家.不当之处,欢迎指正. 2.产品生产批次查询 查看单位产品生产批次信息,根据产品生产批次查看,产品销售单位情况. 效果图如下: 3.产品销

【百度地图API】如何获取行政区域的边界?

原文:[百度地图API]如何获取行政区域的边界? 摘要:以前教过大家如何自行获取行政区域,或者自定义获取一个区域的边界值.今天来教大家直接调用百度地图API1.3(目前最新版本)来获取行政区域的边界值. -------------------------------------------------------------------------------------- 一.建立地图 创建地图对象:设立中心点. var map = new BMap.Map("container")