• 百度地图3.1.0(三)图层展示


    基于之前的文章 百度地图3.1.0(一)Hello BaiduMap(http://www.cnblogs.com/creasylai19/p/3921053.html) 添加的功能

    主要是添加了三个Button,代码如下

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical"
     6     tools:context="com.example.testbaidu_v_3_1.MainActivity" >
     7 
     8     <LinearLayout
     9         android:layout_width="match_parent"
    10         android:layout_height="wrap_content"
    11         android:orientation="horizontal" >
    12 
    13         <Button
    14             android:layout_width="0dp"
    15             android:layout_height="wrap_content"
    16             android:layout_weight="1"
    17             android:onClick="openNormalMode"
    18             android:text="普通地图" />
    19 
    20         <Button
    21             android:layout_width="0dp"
    22             android:layout_height="wrap_content"
    23             android:layout_weight="1"
    24             android:onClick="openSatelliteMode"
    25             android:text="卫星地图" />
    26 
    27         <Button
    28             android:layout_width="0dp"
    29             android:layout_height="wrap_content"
    30             android:layout_weight="1"
    31             android:onClick="openTraffic"
    32             android:text="交通图" />
    33     </LinearLayout>
    34 
    35     <com.baidu.mapapi.map.MapView
    36         android:id="@+id/bmapView"
    37         android:layout_width="fill_parent"
    38         android:layout_height="fill_parent"
    39         android:clickable="true" />
    40 
    41 </LinearLayout>

    MainActivity改成:

     1 package com.example.testbaidu_v_3_1;
     2 
     3 import android.content.BroadcastReceiver;
     4 import android.content.Context;
     5 import android.content.Intent;
     6 import android.content.IntentFilter;
     7 import android.os.Bundle;
     8 import android.support.v7.app.ActionBarActivity;
     9 import android.view.View;
    10 import android.widget.Toast;
    11 
    12 import com.baidu.mapapi.SDKInitializer;
    13 import com.baidu.mapapi.map.BaiduMap;
    14 import com.baidu.mapapi.map.MapView;
    15 
    16 public class MainActivity extends ActionBarActivity {
    17 
    18     private MapView mMapView = null;
    19     private SDKReceiver mReceiver;
    20     private BaiduMap mBaiduMap;
    21     private boolean trafficStatus = false;
    22 
    23     protected void onCreate(Bundle savedInstanceState) {
    24         super.onCreate(savedInstanceState);
    25         // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
    26         // 注意该方法要再setContentView方法之前实现
    27         SDKInitializer.initialize(getApplicationContext());
    28         setContentView(R.layout.activity_main);
    29         // 获取地图控件引用
    30         mMapView = (MapView) findViewById(R.id.bmapView);
    31         mBaiduMap = mMapView.getMap();
    32 
    33         // 看baidu的Demo,发现它注册这个广播,用来监听SDKInitializer的初始化
    34         IntentFilter iFilter = new IntentFilter();
    35         iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
    36         iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
    37         mReceiver = new SDKReceiver();
    38         registerReceiver(mReceiver, iFilter);
    39     }
    40 
    41     public void openNormalMode(View mView) {
    42         mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
    43     }
    44 
    45     public void openSatelliteMode(View mView) {
    46         mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
    47     }
    48 
    49     public void openTraffic(View mView) {
    50         if (trafficStatus) {
    51             mBaiduMap.setTrafficEnabled(false);
    52             trafficStatus = false;
    53         } else {
    54             mBaiduMap.setTrafficEnabled(true);
    55             trafficStatus = true;
    56         }
    57     }
    58 
    59     protected void onDestroy() {
    60         super.onDestroy();
    61         // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
    62         mMapView.onDestroy();
    63         unregisterReceiver(mReceiver);
    64     }
    65 
    66     @Override
    67     protected void onResume() {
    68         super.onResume();
    69         // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
    70         mMapView.onResume();
    71     }
    72 
    73     @Override
    74     protected void onPause() {
    75         super.onPause();
    76         // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
    77         mMapView.onPause();
    78     }
    79 
    80     public class SDKReceiver extends BroadcastReceiver {
    81         public void onReceive(Context context, Intent intent) {
    82             String s = intent.getAction();
    83             if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {
    84                 Toast.makeText(MainActivity.this,
    85                         "key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置",
    86                         Toast.LENGTH_SHORT).show();
    87                 ;
    88             } else if (s
    89                     .equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {
    90                 Toast.makeText(MainActivity.this, "网络出错", Toast.LENGTH_SHORT)
    91                         .show();
    92             }
    93         }
    94     }
    95 
    96 }

    对比之前(一)的例子,可以看到主要是添加了  mBaiduMap = mMapView.getMap();

    并对参数mBaiduMap做控制

    运行结果截屏:

  • 相关阅读:
    OpenCV中的绘图函数
    整理不错的opencv博客
    opencv中的函数
    这是一个学习前端技术的网站
    HDU1520 Anniversary party(树形DP入门)
    CF1255C League of Leesins(图论)
    HDU4725 The Shortest Path in Nya Graph(最短路分层)
    1288C Two Arrays
    CF1294D MEX maxiszing
    CF1295C Obtain the String
  • 原文地址:https://www.cnblogs.com/creasylai19/p/3921185.html
Copyright © 2020-2023  润新知