android百度地图4.2版本,定位成功后获取位置名称

百度地图定位后,想要获取到定位坐标的位置名称怎么办呢,在百度地图的sdk上,没有发现相关api,经过这两天的研究,发现有两种解决方案。

第一种方案是采用谷歌的geocode类  不过目前发现有一个奇怪的现象,在采用流量的情况下,部分机型无法正常获取到地理位置信息,于是我在百度地图api中找到了第二种方案

GeoPoint 参数采用latitudeE6和longitudeE6初始化

 private String getLocationAddress(GeoPoint point) {  
	        String add = "";  
	        Geocoder geoCoder = new Geocoder(getBaseContext()
//	        		, Locale.getDefault()
	        		);  
	        
	        try {  
	            List<Address> addresses = geoCoder.getFromLocation(  
	                    point.getLatitudeE6() / 1E6, point.getLongitudeE6() / 1E6,  
	                    1);  
	            for(Address adds: addresses)
	            {
	            	int maxLine = adds.getMaxAddressLineIndex(); 
	            	String addstr= "";
	            	for(int i=0;i<maxLine;i++)
	            	{
	            		addstr+=i+"==>>"+adds.getAddressLine(i)+";";
	            	}
	            	Log.e("err", "+==>>"+addstr);
	            	
	            }
	            Address address = addresses.get(0);  
	            int maxLine = address.getMaxAddressLineIndex();  
	            if (maxLine >= 2) {  
	                add = address.getAddressLine(1) + address.getAddressLine(2);  
	            } else {  
	                add = address.getAddressLine(1);  
	            }  
	        } catch (Exception e) {  
	            add = "";  
	            e.printStackTrace();  
	        }  
	        return add;  
	    }  



第二种方案是采用百度地图的webapi的方式获取位置信息


http://api.map.baidu.com/geocoder/v2/?output=json&ak=自行申请key&pois=1&location=30.568225,104.065123
这种方式获取的位置的json,需要进行解析,但适用机型跟多

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值