第3章 用C#编写百度地图Android手机应用程序(第4讲)

分类: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()),

运行。

时间: 2024-11-03 22:53:00

第3章 用C#编写百度地图Android手机应用程序(第4讲)的相关文章

第3章 用C#编写百度地图Android手机应用程序(第1讲)

示例1--显示地图并为后续内容做准备 1.运行效果 本章共有25个示例,在x86模拟器中运行的效果如下: 下面介绍主要设计步骤. 2.添加资源 (1)drawable-hdpi Resources/ drawable-hdpi下的文件:将下载的示例对应文件夹下的文件全部拖放到该文件夹下,并将所有[生成操作]属性全部设置为“AndroidResource”. (2)layout Resources/layout下的文件:该文件夹下的所有文件的[生成操作]属性全部为“AndroidResource”

第3章 用C#编写百度地图Android手机应用程序(第2讲)

分类:C#.Android: 日期:2016-02-04 3.2 示例2--基本地图功能 一.简介 1.地图 地图展示:普通地图(2D,3D).卫星图和实时交通图. 地图操作:可通过接口或手势控制来实现地图的点击.双击.长按.缩放.平移.旋转.改变视角等操作. 2.地图类型 百度地图Android SDK 3.6.1提供了两种类型的地图资源(普通矢量地图和卫星图,设置办法见demo04),如果不指定地图类型,默认为普通矢量地图. 此示例仅演示普通矢量图的基本用法. 3.本示例功能描述 该例子介绍

第3章 用C#编写百度地图Android手机应用程序(第3讲)

分类:C#.Android: 日期:2016-02-04 3.3 示例3--MapFragment的使用 一.简介 TextureMapFragment:用于显示地图片段. 二.示例3--Demo03MapFragment.cs 文件名:Demo02MapFragment.cs 简介:介绍在Fragment框架下使用地图 详述:介绍如何在Fragment框架下添加一个TextureMapFragment控件: 1.运行截图 在x86模拟器中运行的效果如下: 2.设计步骤 在上一节例子的基础上,只

百度地图 Android SDK - 新的版本号(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 在版本号 2014 年 11 月 07 日本正式推出工作完成! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FsbG1lc2Vu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 在这个版本号中.我们主要为广大开发人员开放了百度城市热力图层,帮助开发人员构建形式更加丰富的地图应用! 那么这里可能

百度地图 Android SDK - 检索功能使用的简单示例

百度地图 SDK 不仅为广大开发者提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发者提供了多种 LBS 检索的能力.通过这些接口,开发者可以轻松的访问百度的 LBS 数据,丰富自己的移动端地图应用. 目前百度地图 SDK 为开发者提供的检索服务有: POI 检索:可以检索百度 POI 数据信息: 线路规划:利用百度的引擎帮助开发者规划线路: 在线建议检索.短链接分享.地理编码等等.... 本文将以一个很简单的 POI 城市内检索为例,像广大开发者介绍接口的使用. 第一步,选择并下载 SD

百度地图 Android SDK - Hello Baidu Map

如下内容主要向广大开发者介绍如何利用百度地图Android SDK来构建一个最基本的地图应用! 第一步,创建Android工程,将百度地图Android SDK的开发包导入到工程相应位置: 在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示: 注:l

Android 关于百度地图Android SDK几处修正使用说明(非官方)

本篇主要是因为最近在学习使用百度地图,发现了一些问题,跟大伙分享一下. 1.根据android sdk开发指南中"Hello World"的例子,构建一个基础的地图页面,如果大家完全按照示例代码中所写的那样,是不会执行成功的,会有以下问题的错误提示"java.lang.RuntimeException: Unable to instantiate activity ComponentInfo" 这个问题出现的原因是 在第二步,配置Activity部分,android

分享:百度地图Android SDK开发指南

最新的百度地图(v3.2)下载包中居然没有开发指南,自己整理了一下网页版的百度地图Android SDK开发指南,分享给和自己一样需要Demo的学生党.下载链接: http://pan.baidu.com/s/1jGqYF5c 密码: wpf9.

百度地图 Android SDK - 新版本(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 版本于 2014 年 11 月 07 日完成正式上线工作! 在这个版本中,我们主要为广大开发者开放了百度城市热力图层,帮助开发者构建形式更加丰富的地图应用! 那么这里可能一些细心的开发者就会有疑问了,曾经的 v3.1.0 版本貌似就有一个什么热力图,这两个之间是怎么回事,有什么区别呢?别急,听我慢慢道来: v3.1.0 版本所开放的是热力图的绘制能力,说白了就是你来给我们提供数据,我们来帮助您实现本地的一个热力图绘制,最主要的前提是由开发者传入位置