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下的文件命名出现了错误导致了出现了这种低级的错误。



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