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

C#开发Android百度地图手机应用程序(多地图展示)

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

一、简介

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

文件名:demo04multimapview.cs

简介:介绍多mapview的使用

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

二、示例

1、运行截图

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

C#开发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()), 

以上所述给大家介绍了c#开发android百度地图手机应用程序(多地图展示)的相关内容,希望对大家有所帮助。