之前将应用中涉及到百度地图的做的比较完善了,手贱改了点代码,程序崩了,一步步找错误解决,记录一下,重新学习一下。
首先是获取当前所在位置的地理坐标,然后将其记录下来,显示出你当前所在的位置,然后当你离开你当前所在的地方之后,当你在打开程序的时候,会将你所在两地的位置进行一个对比,通过对比显示出如何到达该地的一些信息。、
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.在当前位置上进行标注,并将其作为地图的中心进行显示
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);
最中发现了问题所在,看到这种错误,真不知道说啥好,自学Android ,用到什么控件就去找Api,博客去看,没有一个系统的学习过程这就导致了一个问题,一些基础的东西会遗漏掉,导致了程序老是因为一些很基础的东西崩溃,之前对于字符串的问题也是搞了好久,java自学而且基本就是看完了最基础的语法,所以说开发过程中老是会出现碰壁的情况出现。这次由于在layout下的文件命名出现了错误导致了出现了这种低级的错误。