• 【Android】3.5 示例5--多地图展示


    分类:C#、Android、VS2015、百度地图应用; 创建日期:2016-02-04

    3.5 示例5--多地图展示

    一、简介

    地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。

    文件名:Demo04MultiMapView.cs

    简介:介绍多MapView的使用

    详述:在一个界面内,同时建立四个TextureMapView控件;

    二、示例

    1、运行截图

    在x86模拟器中的运行效果如下:

    在上一节例子的基础上,只需要再增加下面的步骤即可。

    2、添加demo05_multimap.axml文件

    在layout文件夹下添加该文件,将其改为下面的代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:orientation="horizontal" >
    
            <fragment
                android:id="@+id/map1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginRight="5dp"
                android:layout_weight="1"
                class="com.baidu.mapapi.map.TextureMapFragment" />
    
            <fragment
                android:id="@+id/map2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                class="com.baidu.mapapi.map.TextureMapFragment" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" >
    
            <fragment
                android:id="@+id/map3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginRight="5dp"
                android:layout_weight="1"
                class="com.baidu.mapapi.map.TextureMapFragment" />
    
            <fragment
                android:id="@+id/map4"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                class="com.baidu.mapapi.map.TextureMapFragment" />
        </LinearLayout>
    
    </LinearLayout>

    3、添加Demo05MultiMapView.cs文件

    在SdkDemos文件夹下添加该文件,然后将其内容改为下面的代码:

    using Android.App;
    using Android.Content.PM;
    using Android.OS;
    using Com.Baidu.Mapapi.Map;
    using Com.Baidu.Mapapi.Model;
    
    namespace BdMapV371Demos.SrcSdkDemos
    {
        /// <summary>
        /// 在一个Activity中展示多个地图
        /// </summary>
        [Activity(Label = "@string/demo_name_multimap",
            ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.KeyboardHidden,
            ScreenOrientation = ScreenOrientation.Sensor)]
        public class Demo05MutiMapView : Activity
        {
            private readonly LatLng Geo_BeiJing = new LatLng(39.945, 116.404);
            private readonly LatLng Geo_ShangHai = new LatLng(31.227, 121.481);
            private readonly LatLng Geo_GuangZhou = new LatLng(23.155, 113.264);
            private readonly LatLng Geo_ShenZhen = new LatLng(22.560, 114.064);
    
            protected override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
                SetContentView(Resource.Layout.demo05_multimap);
                InitMap();
            }
    
            /// <summary>
            /// 初始化Map
            /// </summary>
            private void InitMap()
            {
                MapStatusUpdate u1 = MapStatusUpdateFactory.NewLatLng(Geo_BeiJing);
                TextureMapFragment map1 = FragmentManager.FindFragmentById<TextureMapFragment>(Resource.Id.map1);
                map1.BaiduMap.SetMapStatus(u1);
    
                MapStatusUpdate u2 = MapStatusUpdateFactory.NewLatLng(Geo_ShangHai);
                TextureMapFragment map2 = FragmentManager.FindFragmentById<TextureMapFragment>(Resource.Id.map2);
                map2.BaiduMap.SetMapStatus(u2);
    
                MapStatusUpdate u3 = MapStatusUpdateFactory.NewLatLng(Geo_GuangZhou);
                TextureMapFragment map3 = FragmentManager.FindFragmentById<TextureMapFragment>(Resource.Id.map3);
                map3.BaiduMap.SetMapStatus(u3);
    
                MapStatusUpdate u4 = MapStatusUpdateFactory.NewLatLng(Geo_ShenZhen);
                TextureMapFragment map4 = FragmentManager.FindFragmentById<TextureMapFragment>(Resource.Id.map4);
                map4.BaiduMap.SetMapStatus(u4);
            }
        }
    }

    4、修改MainActivity.cs文件

    在MainActivity.cs文件的demos字段定义中添加下面的代码。

              //示例5--多地图展示
                new DemoInfo<Activity>(Resource.String.demo_title_multimap,
                    Resource.String.demo_desc_multimap,
                    new Demo05MutiMapView()),

    运行观察结果。

  • 相关阅读:
    jquery ajax 后台响应成功,返回正确json但不执行success方法,执行error的问题
    bootstrap轮播组件,大屏幕图片居中效果
    mouseover和mouseout事件在鼠标经过子元素时也会触发
    vertical-align的深入学习
    小技巧
    css字体大小设置em与rem的区别
    子元素的margin-top影响父元素原因和解决办法
    JavaScript随机打乱数组
    JavaScript 获取当月天数
    javaScript 的option触发事件
  • 原文地址:https://www.cnblogs.com/rainmj/p/5180891.html
Copyright © 2020-2023  润新知