Android百度地图应用之图层展示

一、简介
 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;

在上一节例子的基础上,只需要再增加下面的步骤即可。
 1、添加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()),

运行。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android5.x中的阴影效果elevation和translationZ的实现方法

    android5.x中 view多了一个 属性 z,垂直高度上的变化. Z属性  由两部分组成,elevation 和 translationZ <ImageView android:id="@+id/me_daijjBack" android:layout_width="27dp" android:layout_height="27dp" android:elevation="3dp" android:translat

  • Android实现ImageView阴影和图层效果

    本文实例为大家分享了ImageView阴影和图层效果的实现代码,供大家参考,具体内容如下 import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import and

  • Android编程实现图片背景渐变切换与图层叠加效果

    本文实例讲述了Android编程实现图片背景渐变切换与图层叠加效果.分享给大家供大家参考,具体如下: 本例要实现的目的: 1.图片背景渐变的切换,例如渐变的从红色切换成绿色. 2.代码中进行图层叠加,即把多个Drawable叠加在一起显示在一个组件之上. 效果图: 代码很简单: (1)布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="

  • Android滑动到顶部和底部时出现的阴影如何去掉

    android去掉滑动到顶部和底部的阴影 <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content" android:cacheColorHint="#00000000" android:divider="@color/line_color"

  • 详解Android Material设计中阴影效果的实现方法

    View可以投下的阴影,一个View的elevation值决定了它的阴影的大小和绘制的顺序.可以设置一个视图的elevation,在布局中使用属性:android:elevation <TextView android:id="@+id/my_textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=&quo

  • Android编程之阴影(Shadow)制作方法

    本文实例讲述了Android编程之阴影(Shadow)制作方法.分享给大家供大家参考,具体如下: 先看运行效果图如下: 阴影制作:包括各种形状(矩形,圆形等等),以及文字等等都能设置阴影. 阴影制作是什么原理呢? 其实很简单,你需要设置阴影的东西被看作一个主层.然后在主层下面画一个阴影层. 阴影制作涉及到一个重要函数: public void setShadowLayer (float radius, float dx, float dy, int color) 参数: radius:阴影半径

  • Android实现图片阴影效果的方法

    本文实例介绍了Android实现图片阴影效果,设置画布颜色,图像倾斜效果,图片阴影效果的方法,采用canvas.save(Canvas.MATRIX_SAVE_FLAG);来实现.由于图片的实际尺寸比显示出来的图像要大一些,因此需要适当更改下大小,以达到较好的效果,在原有矩形基础上,画成圆角矩形,同时带有阴影层.读者可以根据自身需要对该程序代码进行个性化的修改以便更符合自身项目需求. 具体实现代码如下: package canvas.test; import android.app.Activi

  • Android 自定义阴影效果详解及实例

    Android 自定义阴影效果详解及实例 Android5.X中,Google为其增加了两个属性 android:elevation=" " 与 android:translationZ=" ",对应垂直方向上的高度变化.系统会自动增加阴影效果. 在TabLayout中增加android:elevation=" 8dp" ,效果如下: 箭头指向的就是系统为我们默认提供,结果差强人意.那我们是不是可以自定义阴影,不使用系统提供的. 自定义阴影效果

  • Android编程使用自定义shape实现shadow阴影效果的方法

    本文实例讲述了Android编程使用自定义shape实现shadow阴影效果的方法.分享给大家供大家参考,具体如下: 直接上xml文件, 并且附上相应的解析: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_p

  • Android自定义ImageView实现在图片上添加图层效果

    首先我们先看下效果图 实现思路 这是两张前后对比图,右边第二张图里面的已抢光标签图片当已经没有商品的时候就会显示了,在每个图片的中心位置,第一想法是在ImageView的外层再套一层RelativeLayout 实现方法 <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <SelectableRoundedImageVi

随机推荐