第3章 用C#編寫百度地圖Android手機應用程式(第4講)

來源:互聯網
上載者:User

標籤:

分類:C#、Android; 日期:2016-02-04

3.4 樣本4--圖層展示一、簡介

1、地圖類型

百度地圖Android SDK 3.7.1提供了兩種類型的地圖資源(普通向量地圖和衛星圖),開發人員可以利用BaiduMap中的MapType屬性(C#)來設定地圖類型。C#核心代碼如下:

mMapView = FindViewById<TextureMapView>(Resource.Id.bmapView);mBaiduMap = mMapView.Map;//設定底圖顯示模式:普通地圖mBaiduMap.MapType = BaiduMap.MapTypeNormal;//設定底圖顯示模式:衛星地圖mBaiduMap.MapType = BaiduMap.MapTypeSatellite;

2、即時交通圖

當前,全國範圍內已支援多個城市即時路況查詢,且會陸續開通其他城市。

目前有哪些城市具有即時交通圖?

目前(2016-01-27)已有31個城市開通,分別為南京,廣州,重慶,東莞,長春,台州,福州,金華,北京,常州,杭州,溫州,大連,南昌,寧波,瀋陽,中山,珠海,佛山,泉州,石家莊,成都,青島,深圳,武漢,烏魯木齊,長沙,上海,天津,無錫,廈門。之後其他城市還會陸續開通。

在地圖上開啟即時路況的C#核心代碼如下:

mMapView = FindViewById<TextureMapView>(Resource.Id.bmapView);mBaiduMap = mMapView.Map;//開啟交通圖mBaiduMap.TrafficEnabled = true;

3、百度城市熱力圖

百度地圖SDK繼為廣大開發人員開放熱力圖本地繪製能力之後,再次進一步開放百度自有資料的城市熱力圖層,協助開發人員構建形式更加多樣的移動端應用。

百度城市熱力圖的性質及使用與即時交通圖類似,只需要簡單的介面調用,即可在地圖上展現樣式豐富的百度城市熱力圖。

在地圖上開啟百度城市熱力圖的C#核心代碼如下:

mMapView = FindViewById<TextureMapView>(Resource.Id.bmapView);mBaiduMap = mMapView.Map;//開啟交通圖mBaiduMap.BaiduHeatMapEnabled = true;

在上一節例子的基礎上,只需要再增加下面的步驟即可。

2、添加demo04_layers.axml檔案

 

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <RadioGroup            android:id="@+id/RadioGroup"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="2"            android:orientation="horizontal" >            <RadioButton                android:id="@+id/normal"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:checked="true"                android:text="普通圖" />            <RadioButton                android:id="@+id/statellite"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_weight="1"                android:text="衛星圖" />        </RadioGroup>        <CheckBox            android:id="@+id/traffice"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:checked="false"            android:text="交通圖" />                  <CheckBox            android:id="@+id/baiduHeatMap"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:checked="false"            android:text="百度城市熱力圖" />    </LinearLayout>    <com.baidu.mapapi.map.TextureMapView        android:id="@+id/bmapView"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:clickable="true" /></LinearLayout>

 

2、添加Demo04Layers.cs檔案

在SrcSdkDemos檔案夾下添加該檔案。

 

using Android.App;using Android.Content.PM;using Android.OS;using Android.Widget;using Com.Baidu.Mapapi.Map;namespace BdMapV371Demos.SrcSdkDemos{    /// <summary>    /// 示範地圖圖層顯示的控制方法    /// </summary>    [Activity(Label = "@string/demo_name_layers",        ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.KeyboardHidden,        ScreenOrientation = ScreenOrientation.Sensor)]    public class Demo04Layers : Activity    {        //TextureMapView 是地圖主控制項        private TextureMapView mMapView;        private BaiduMap mBaiduMap;        protected override void OnCreate(Bundle savedInstanceState)        {            base.OnCreate(savedInstanceState);            SetContentView(Resource.Layout.demo04_layers);            mMapView = FindViewById<TextureMapView>(Resource.Id.bmapView);            mBaiduMap = mMapView.Map;            mBaiduMap.SetMapStatus(MapStatusUpdateFactory.NewLatLng(MainActivity.HeNanUniversity));            //設定底圖顯示模式:普通圖            var normal = FindViewById<RadioButton>(Resource.Id.normal);            normal.Click += delegate            {                mBaiduMap.MapType = BaiduMap.MapTypeNormal;            };            //設定底圖顯示模式:衛星圖            var statellite = FindViewById<RadioButton>(Resource.Id.statellite);            statellite.Click += delegate            {                mBaiduMap.MapType = BaiduMap.MapTypeSatellite;            };            //是否顯示交通圖            var traffice = FindViewById<CheckBox>(Resource.Id.traffice);            traffice.CheckedChange += (s, e) =>            {                mBaiduMap.TrafficEnabled = e.IsChecked;            };            //是否顯示熱力圖            var baiduHeatMap = FindViewById<CheckBox>(Resource.Id.baiduHeatMap);            traffice.CheckedChange += (s, e) =>            {                mBaiduMap.BaiduHeatMapEnabled = e.IsChecked;            };        }        protected override void OnPause()        {            mMapView.OnPause();            base.OnPause();        }        protected override void OnResume()        {            mMapView.OnResume();            base.OnResume();        }        protected override void OnDestroy()        {            mMapView.OnDestroy();            base.OnDestroy();        }    }}

 

4、修改MainActivity.cs檔案

在MainActivity.cs檔案的demos欄位定義中添加下面的代碼。

 

          //樣本4--圖層展示            new DemoInfo<Activity>(Resource.String.demo_title_layers,                Resource.String.demo_desc_layers,                new Demo04Layers()),

運行。

第3章 用C#編寫百度地圖Android手機應用程式(第4講)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.