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,需要進行解析,但適用機型跟多

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章