之前將應用中涉及到百度地圖的做的比較完善了,手賤改了點代碼,程序崩了,一步步找錯誤解決,記錄一下,重新學習一下。
首先是獲取當前所在位置的地理座標,然後將其記錄下來,顯示出你當前所在的位置,然後當你離開你當前所在的地方之後,當你在打開程序的時候,會將你所在兩地的位置進行一個對比,通過對比顯示出如何到達該地的一些信息。、
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下的文件命名出現了錯誤導致了出現了這種低級的錯誤。