Android 百度地圖開發(定位,顯示,測距)

之前將應用中涉及到百度地圖的做的比較完善了,手賤改了點代碼,程序崩了,一步步找錯誤解決,記錄一下,重新學習一下。

首先是獲取當前所在位置的地理座標,然後將其記錄下來,顯示出你當前所在的位置,然後當你離開你當前所在的地方之後,當你在打開程序的時候,會將你所在兩地的位置進行一個對比,通過對比顯示出如何到達該地的一些信息。、

1.定位

mLocation = new LocationClient(this);
	setLocationParameter();
	mLocation.setLocOption(option);
	mLocation.registerLocationListener(listener);
	mLocation.start();
	mLocation.requestLocation();

設置LocationClient參數的方法爲:

option = new LocationClientOption();
	option.setLocationMode(LocationMode.Hight_Accuracy);
	option.setCoorType("bd09ll");
	option.setScanSpan(50000);
	option.setOpenGps(true);
	option.setIsNeedAddress(true);
	option.setNeedDeviceDirect(true);

通過這樣,我們就發送了一個獲取地理位置的請求,然後通過一個listener監聽一下,我們就可以獲取到我們當前所在的位置了。

 private BDLocationListener listener = new BDLocationListener() {
        
        @Override
        public void onReceiveLocation(BDLocation arg0) {
    	// TODO Auto-generated method stub
    	if(arg0 == null)
    	    return;
    	point1 = new LatLng(arg0.getLatitude(),arg0.getLongitude());
    	second = PlanNode.withLocation(point1);
        }
    };
2.初始化地圖,將我們當前所在的位置展現出來

mBaiduMap = map.getMap();
//	mBaiduMap.setMyLocationEnabled(true);  
	MyLocationData locData = new MyLocationData.Builder()  
	    .accuracy(radius)  
	    .direction(100).latitude(latitude)  
	    .longitude(longitude).build();  
	mBaiduMap.setMyLocationData(locData);  
	mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);

將我們所獲得數據添加到地圖的位置數據中,地圖將會根據這個數據顯示我們的位置。在地圖上添加標註物,顯示關於我們位置的一些信息。

3.顯示信息。

Button infoButton = new Button (this);
	infoButton.setBackgroundResource(R.drawable.mi_laucher_blue);
	LatLng pt = new LatLng(latitude,longitude);
	InfoWindow mInfoWindow = new InfoWindow(infoButton, pt, -47);
	infoButton.setText(address);
	mBaiduMap.showInfoWindow(mInfoWindow);
通過這個按鈕顯示出來我們位置的信息。

4.在當前位置上進行標註,並將其作爲地圖的中心進行顯示

<span style="font-size:18px;">BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_geo);
	OverlayOptions option = new MarkerOptions().position(point).icon(bitmap).draggable(true);
	mBaiduMap.addOverlay(option);
	MapStatus mMapStatus = new MapStatus.Builder().target(point).targetScreen(scrPoint).build();
	MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
	mBaiduMap.setMapStatus(mMapStatusUpdate);</span>
<span style="font-size:18px;">
</span>
最中發現了問題所在,看到這種錯誤,真不知道說啥好,自學Android ,用到什麼控件就去找Api,博客去看,沒有一個系統的學習過程這就導致了一個問題,一些基礎的東西會遺漏掉,導致了程序老是因爲一些很基礎的東西崩潰,之前對於字符串的問題也是搞了好久,java自學而且基本就是看完了最基礎的語法,所以說開發過程中老是會出現碰壁的情況出現。這次由於在layout下的文件命名出現了錯誤導致了出現了這種低級的錯誤。



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