欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android地图控件之多地图展示

程序员文章站 2024-03-02 19:01:52
一、简介  地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。  文件...

一、简介 
地图控件自v2.3.5版本起,支持多实例,即开发者可以在一个页面中建立多个地图对象,并且针对这些对象分别操作且不会产生相互干扰。
 文件名:demo04multimapview.cs
 简介:介绍多mapview的使用
 详述:在一个界面内,同时建立四个texturemapview控件;
 二、示例
 1、运行截图
在x86模拟器中的运行效果如下:  

Android地图控件之多地图展示

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

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()), 

运行观察结果。

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