baiduMap开发(2)BaiduMapView详解及布局实现
今天来了解⼀下BaiduMap⾥的⼀些关于地图显⽰的知识和Android中如何设置横屏。如何打开GPS定位相关知识。顺便把我的毕业设计⽼师要求的布局格式实现⼀下,界⾯做的不是很好看,⼤家帮我改进。代码写的也有点凌乱,还望⾼⼿提提意见!如何将类封装使得可扩展性得到充分发挥!
⾸先要了解⼀下BaiduMap中的MapView 百度地图是通过MapView来进⾏显⽰的,我个⼈的理解:MapView应该和Android中的View是同⼀个概念。在你渲染地图之前,要⾸先创建MapView对象,切记:新版的地图不是直接创建MapVIew的,在创建MapView之前还要加载地图管理器。baiduMap⾥还有⼀个地图控制器:MapController。本⼈查看了BaiduMap官⽅api, MapController中主要提供了⼀些关于地图移动,地图加载和⼿势控制的⼀些关于控制地图⾏为的函数。此外,⼀张地图的控制器是可以通过Controller()来获取该地图的控制器的。
关于Android内置的Location定位相关的函数:你可以通过触发Android内置的关于Location函数的事件可以来实时获取当前的位置。
我这⾥是通过⼀个函数 protected whereAmI()来获取当前的经纬度坐标值来实现定位的。⽤的不是BaiduMap⾥的位置定位,⽽是Android⾃带
的LocationManager的位置定位。
主布局页⾯是⼀张baidu地图,你可以通过点击XML页⾯上的按钮来实现相关的功能。
先来说说我写的关于当前位置的函数WhereAmI()
protected void whereAmI()
{
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mLocationListener = new LocationListener()
{
@Override
public void onLocationChanged(Location location) {fake news
//1 获取经度
double lat = Longitude();
/
/2 获取纬度值
double lng = Longitude();
//3 获取GeoPoint
GeoPoint gp = new GeoPoint((int)(lat*1E6),(int)(lng*1E6));仿佛的意思
//4 添加到地图控制器中
mc.animateTo(gp);
}
@Override
public void onProviderDisabled(String provider) {
burrow
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
};
}
});
当然此函数写的还不完善::若是碰到这个情况,你⼀开始并没有打开GPS相关的设备,那在函数中应该做相应的判断,这个在后续的版本中改进:当前页⾯的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/dao_bg"
android:orientation="horizontal" >
<!-- 此处放⼀个MapView ⽤来显⽰地图 -->
<!-- 此处放⼀个MapView ⽤来显⽰地图 -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:gravity="center"
android:orientation="vertical" >
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>
<!-- ⽤⼀个Layout 存放右边的⼀排按钮集合 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
defianceandroid:orientation="vertical" >
<!-- 当前景点 -->
<LinearLayout
android:id="@+id/curbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/bg_delwords" android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp"
android:src="@drawable/current" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="2dp"
android:text="@string/curbuttonText"
android:textColor="@color/black" />
</LinearLayout>
<!-- 所有景点 -->
<LinearLayout
android:id="@+id/allbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:background="@drawable/bg_delwords" android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
风靡世界的意思android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp"
android:src="@drawable/all" />
android:src="@drawable/all" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="2dp"
android:text="@string/allbuttonText"
android:textColor="@color/black" />
</LinearLayout>
<!-- 锁定位置 -->
<LinearLayout
施丹旖android:id="@+id/suoding"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:background="@drawable/bg_delwords" android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp"
android:src="@drawable/location" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="2dp"
android:text="@string/suoding"
android:textColor="@color/black" />
</LinearLayout>
<!-- 照相机 -->
<LinearLayout
android:id="@+id/camera"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:background="@drawable/bg_delwords" android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp"
android:src="@drawable/takecamera" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"迈克杰克逊专辑
android:layout_gravity="center"
android:layout_marginLeft="2dp"
android:text="@string/camera"
android:textColor="@color/black" />
</LinearLayout>
<!-- 更多 -->
<LinearLayout
android:id="@+id/more"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:background="@drawable/bg_delwords" android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp"
android:src="@drawable/more" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="2dp"
android:text="@string/more"
方面的英文android:textColor="@color/black" />
</LinearLayout>
<!-- 退出 -->
<LinearLayout
android:id="@+id/exit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
jaywalkandroid:background="@drawable/bg_delwords" android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" android:layout_marginLeft="5dp"
android:src="@drawable/exit" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"yet
android:layout_marginLeft="2dp"
android:text="@string/exit"
android:textColor="@color/black" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
界⾯布局图如下所⽰: