当前位置:操作系统 > 安卓/Android >>

百度地图SDK for Android[Demo地图图层]

    第一,修改布局文件,添加控制不同图层显示的button控件;具体代码如下:
[html] 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity" >  
      
    <!-- 放入百度地图的mapview -->  
    <com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:clickable="true"/>  
  
    <!-- 添加button,控制地图显示 -->  
    <Button  
        android:id="@+id/button1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentRight="true"  
        android:layout_alignParentTop="true"  
        android:text="Button" />  
  
</RelativeLayout>  
        第二,在主类中初始化button对象、并设置相应的点击事件。不同图层的显示使用方法setSatellite和setTraffic来实现,具体代码如下所示:
[java]  
import com.baidu.mapapi.BMapManager;  
import com.baidu.mapapi.map.MapController;  
import com.baidu.mapapi.map.MapView;  
import com.baidu.platform.comapi.basestruct.GeoPoint;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.app.Activity;  
  
  
public class MainActivity extends Activity {  
  
    BMapManager bMapManager = null;  // 定义管理sdk的对象  
    MapView mapView = null;  // 定义mapview对象  
  
    Button button;  
    int flag = 0;  
      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
          
        // 初始化管理对象,注意要在setContentView(R.layout.activity_main)之前初始化,否则会报错  
        bMapManager = new BMapManager(getApplication());  
        bMapManager.init("您申请的key", null);  
          
        setContentView(R.layout.activity_main);  
          
        // 初始化mapview对象,并且设置显示缩放控件  
        mapView = (MapView) findViewById(R.id.bmapsView);  
        mapView.setBuiltInZoomControls(true);  
          
        // 初始化button  
        button = (Button) findViewById(R.id.button1);  
        button.setText("点击进入《卫星图》");  
          
        // 定义地图控件,获取mapview的控制,并把地图范围定位北京市  
        MapController mapController = mapView.getController();  
        GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));  
        mapController.setCenter(point);  
        mapController.setZoom(12);  
          
        // 设置button的点击事件,根据点击次数的变化,分别设置显示普通地图、实时交通图和卫星图  
        button.setOnClickListener(new OnClickListener()   
        {  
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                if(flag == 0)  
                {  
                    flag = flag + 1;  
                    mapView.setSatellite(true);  
                    button.setText("点击进入《实时交通图》");  
                }  
                else if(flag == 1)  
                {  
                    flag = flag + 1;  
                    mapView.setSatellite(false);  
                    mapView.setTraffic(true);  
                    button.setText("点击进入《普通地图》");  
                }  
                else if(flag == 2)  
                {  
                    flag = 0;  
                    mapView.setTraffic(false);  
                    button.setText("点击进入《卫星图》");  
                }  
            }  
        });  
          
    }  
      
      
    //注意在onResume、onDestroy和onPause中控制mapview和地图管理对象的状态  
  
    @Override  
    protected void onResume() {  
        // TODO Auto-generated method stub  
        mapView.onResume();  
        if(bMapManager!=null){  
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,