分类:C#、Android、VS2015、百度地图应用; 创建日期:2016-02-04
3.5 示例5--多地图展示一、简介地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。
文件名:Demo04MultiMapView.cs
简介:介绍多MapView的使用
详述:在一个界面内,同时建立四个TextureMapView控件;
二、示例1、运行截图
在x86模拟器中的运行效果如下:
[flash=500,400]http://s1.knowsky.com/20160211/khn2pou10u312.png[/flash]
在上一节例子的基础上,只需要再增加下面的步骤即可。
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文件夹下添加该文件,然后将其内容改为下面的代码:
usingAndroid.App;usingAndroid.Content.PM;usingAndroid.OS;usingCom.Baidu.Mapapi.Map;usingCom.Baidu.Mapapi.Model;namespaceBdMapV371Demos.SrcSdkDemos
{///<summary>///在一个Activity中展示多个地图///</summary>[Activity(Label ="@string/demo_name_multimap",
ConfigurationChanges= ConfigChanges.Orientation |ConfigChanges.KeyboardHidden,
ScreenOrientation=ScreenOrientation.Sensor)]publicclassDemo05MutiMapView : Activity
{PRivatereadonlyLatLng Geo_BeiJing =newLatLng(39.945,116.404);privatereadonlyLatLng Geo_ShangHai =newLatLng(31.227,121.481);privatereadonlyLatLng Geo_GuangZhou =newLatLng(23.155,113.264);privatereadonlyLatLng Geo_ShenZhen =newLatLng(22.560,114.064);protectedoverridevoidOnCreate(Bundle savedInstanceState)
{base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.demo05_multimap);
InitMap();
}///<summary>///初始化Map///</summary>privatevoidInitMap()
{
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--多地图展示newDemoInfo<Activity>(Resource.String.demo_title_multimap,
Resource.String.demo_desc_multimap,newDemo05MutiMapView()),
运行观察结果。