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

一、简介

调启百度地图是指:利用SDK接口,可直接在本地打开百度地图客户端或WebApp实现地图功能。 目前支持调启的功能有:POI周边检索、POI详情页面、步行线路规划、驾车线路规划、公交线路规划、驾车导航、步行导航、骑行导航(步行、骑行需百度地图App 8.6.6以上版本才支持)。

二、运行截图

简介:介绍如果利用简单接口调用,开启百度地图客户端实现复杂逻辑业务。

详述:

(1)调启百度地图导航(Native);

(2)调启百度地图POI周边检索;

(3)调启百度地图POI详情检索;

(4)调启百度地图步行线路规划;

(5)调启百度地图驾车线路规划;

(6)调启百度地图公交线路规划;

(7)调启百度地图步行导航;(需百度地图App 8.6.6以上版本支持)

(8)调启百度地图骑行导航(需百度地图App 8.6.6以上版本支持)

作为本章的最后一个例子,不再详细截取每个子功能的效果图了(由于模拟器没有安装百度地图客户端,无法看到效果图,只有在安装了百度地图客户端的真实手机上才能看到效果图),因此这里仅截取了在模拟器中运行时本章的主导航界面和本例子的导航界面。

三、设计步骤

1、添加demo25_open_baidumap.xml文件

在layout文件夹下添加该文件。

<?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="wrap_content"
android:orientation="vertical" >
<View
android:layout_width="fill_parent"
android:layout_height="1dip"
android:background="?android:attr/listDivider" />
<ListView
android:id="@+id/listView_openBaiduMap"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>

2、添加Demo25OpenBaiduMap.cs文件

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

using System;
using System.Collections.Generic;
using Android.App;
using Android.OS;
using Android.Widget;
using Android.Views;
using Com.Baidu.Mapapi.Navi;
using Com.Baidu.Mapapi.Model;
using Com.Baidu.Mapapi.Utils;
using Com.Baidu.Mapapi.Utils.Poi;
using Com.Baidu.Mapapi.Utils.Route;
namespace BdMapV371Demos.SrcSdkDemos
{
/// <summary>
/// 此demo用来展示如何在地图绘制的每帧中再额外绘制一些用户自己的内容
/// </summary>
[Activity(Label = "@string/demo_name_open_baidumap")]
public class Demo25OpenBaiduMap : Activity
{
// 天安门坐标
double mLat1 = 39.915291;
double mLon1 = 116.403857;
// 百度大厦坐标
double mLat2 = 40.056858;
double mLon2 = 116.308194;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.demo25_open_baidumap);
ListView mListView = FindViewById<ListView>(Resource.Id.listView_openBaiduMap);
mListView.Adapter = new OpenBaiduMapListAdapter(this, GetData());
mListView.ItemClick += (s, e) =>
{
switch (e.Position)
{
case : startNavi(); break;
case : startPoiNearbySearch(); break;
case : startPoiDetails(); break;
case : startRoutePlanWalking(); break;
case : startRoutePlanDriving(); break;
case : startRoutePlanTransit(); break;
case : startWalkingNavi(); break;
case : startBikingNavi(); break;
default: break;
}
};
} private List<string> GetData()
{
List<string> data = new List<string>()
{
"启动百度地图导航(Native)",
"启动百度地图Poi周边检索",
"启动百度地图Poi详情页面",
"启动百度地图步行路线规划",
"启动百度地图驾车路线规划",
"启动百度地图公交路线规划",
"启动百度地图步行导航",
"启动百度地图骑行导航"
};
return data;
} /// <summary>启动百度地图导航(Native)</summary>
public void startNavi()
{
LatLng pt1 = new LatLng(mLat1, mLon1);
LatLng pt2 = new LatLng(mLat2, mLon2);
NaviParaOption para = new NaviParaOption()
.InvokeStartPoint(pt1).InvokeEndPoint(pt2)
.InvokeStartName("天安门").InvokeEndName("百度大厦");
try
{
BaiduMapNavigation.OpenBaiduMapNavi(para, this);
}
catch (BaiduMapAppNotSupportNaviException e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图步行导航(Native)</summary>
public void startWalkingNavi()
{
LatLng pt1 = new LatLng(mLat1, mLon1);
LatLng pt2 = new LatLng(mLat2, mLon2);
NaviParaOption para = new NaviParaOption()
.InvokeStartPoint(pt1).InvokeEndPoint(pt2)
.InvokeStartName("天安门").InvokeEndName("百度大厦");
try
{
BaiduMapNavigation.OpenBaiduMapWalkNavi(para, this);
}
catch (BaiduMapAppNotSupportNaviException e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图骑行导航(Native)</summary>
public void startBikingNavi()
{
LatLng pt1 = new LatLng(mLat1, mLon1);
LatLng pt2 = new LatLng(mLat2, mLon2);
NaviParaOption para = new NaviParaOption()
.InvokeStartPoint(pt1).InvokeEndPoint(pt2)
.InvokeStartName("天安门").InvokeEndName("百度大厦");
try
{
BaiduMapNavigation.OpenBaiduMapBikeNavi(para, this);
}
catch (BaiduMapAppNotSupportNaviException e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图Poi周边检索</summary>
public void startPoiNearbySearch()
{
LatLng ptCenter = new LatLng(mLat1, mLon1); // 天安门
PoiParaOption para = new PoiParaOption()
.InvokeKey("天安门")
.InvokeCenter(ptCenter)
.InvokeRadius();
try
{
BaiduMapPoiSearch.OpenBaiduMapPoiNearbySearch(para, this);
}
catch (Exception e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图Poi详情页面</summary>
public void startPoiDetails()
{
PoiParaOption para = new PoiParaOption().InvokeUid("65e1ee886c885190f60e77ff"); // 天安门
try
{
BaiduMapPoiSearch.OpenBaiduMapPoiDetialsPage(para, this);
}
catch (Exception e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图步行路线规划</summary>
public void startRoutePlanWalking()
{
LatLng ptStart = new LatLng(34.264642646862, 108.95108518068);
LatLng ptEnd = new LatLng(mLat2, mLon2);
RouteParaOption para = new RouteParaOption()
.InvokeStartPoint(ptStart)
.InvokeEndName("大雁塔")
.InvokeCityName("西安");
try
{
BaiduMapRoutePlan.OpenBaiduMapWalkingRoute(para, this);
}
catch (Exception e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图驾车路线规划</summary>
public void startRoutePlanDriving()
{
LatLng ptStart = new LatLng(34.264642646862, 108.95108518068);
LatLng ptEnd = new LatLng(mLat2, mLon2);
RouteParaOption para = new RouteParaOption()
.InvokeStartPoint(ptStart)
.InvokeEndName("大雁塔")
.InvokeCityName("西安");
try
{
BaiduMapRoutePlan.OpenBaiduMapDrivingRoute(para, this);
}
catch (Exception e)
{
ShowDialog(e.Message);
}
} /// <summary>启动百度地图公交路线规划</summary>
public void startRoutePlanTransit()
{
LatLng ptStart = new LatLng(mLat1, mLon1);
LatLng ptEnd = new LatLng(mLat2, mLon2);
RouteParaOption para = new RouteParaOption()
.InvokeStartName("天安门").InvokeEndPoint(ptStart)
.InvokeBusStrategyType(RouteParaOption.EBusStrategyType.BusRecommendWay);
try
{
BaiduMapRoutePlan.OpenBaiduMapTransitRoute(para, this);
}
catch (Exception e)
{
ShowDialog(e.Message);
}
} protected override void OnDestroy()
{
base.OnDestroy();
BaiduMapNavigation.Finish(this);
BaiduMapRoutePlan.Finish(this);
BaiduMapPoiSearch.Finish(this);
} /// <summary>提示未安装百度地图app或app版本过低</summary>
public void ShowDialog(string message)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = null;
builder.SetMessage("您尚未安装百度地图app或app版本过低,点击确认安装?");
builder.SetTitle("提示");
builder.SetPositiveButton("确认", delegate
{
dialog.Dismiss();
OpenClientUtil.GetLatestBaiduMapApp(this);
});
builder.SetNegativeButton("取消", delegate
{
dialog.Dismiss();
});
dialog = builder.Create();
dialog.Show();
} private class OpenBaiduMapListAdapter : BaseAdapter
{
List<string> list;
Demo25OpenBaiduMap a;
public OpenBaiduMapListAdapter(Demo25OpenBaiduMap a, List<string> list)
{
this.a = a; this.list = list;
}
public override int Count
{
get { return list.Count; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
convertView = View.Inflate(a, Resource.Layout.demo_info_item, null);
TextView title = convertView.FindViewById<TextView>(Resource.Id.title);
TextView desc = convertView.FindViewById<TextView>(Resource.Id.desc);
desc.Visibility = ViewStates.Invisible;
title.Text = list[position];
return convertView;
}
public override Java.Lang.Object GetItem(int position)
{
return list[position];
}
public override long GetItemId(int position)
{
return position;
}
}
}
}

3、修改MainActivity.cs文件

在MainActivity.cs文件的demos字段定义中,去掉【示例25】下面的注释。

在手机上运行观察调启效果。

【Android】3.25 示例25--调启百度地图的更多相关文章

  1. 【Android】3.0 第3章 百度地图及其应用--预备知识

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技 ...

  2. H5端调起百度地图、腾讯地图app

    来自一个需求的总结: 在微信公众号中根据地图上的marker和label,或者搜索结果点击调起地图APP进行导航. 一开始是使用百度地图进行开发,后面转腾讯是因为微信不允许不是自家或者合作方的APP在 ...

  3. iOS地图集成示例:百度地图POI检索

    一.集成百度地图(傻瓜教程,以网站说明文档为准,此处罗列几项主要步骤) 1.登录  http://lbsyun.baidu.com  百度地图开发者平台,获取SDK和集成文档. 2.百度地图可以提供的 ...

  4. iOS开发---集成百度地图完善版

    一.成为百度的开发者.创建应用 http://developer.baidu.com/map/index.php?title=首页 (鼠标移向 然后选择你的项目需要的功能 你可以在里面了解到你想要使用 ...

  5. IOS百度地图语音导航

    VoiceNavigationViewController.m * 客户端需安装百度导航地图 #import "VoiceNavigationViewController.h" # ...

  6. android 之 百度地图

    简介 百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力. 功能介绍 功能介绍: 地图展示:包括2D图.卫星图.3D图地图展示. 地图操作:提供控制平移.缩放.底图旋转.变 ...

  7. 地图调起URI API(通过连接直接调用百度地图)

    网站:http://lbsyun.baidu.com/index.php?title=uri/api/web 地图调起URI API 百度地图URI API是为开发者提供直接调起百度地图产品(百度We ...

  8. Android Studio 百度地图导航

    配置就不再多说了,上一篇已经详细说过了,这次就是根据经纬度坐标做地图导航,路径规划.直接上代码: package com.example.appview.mian_page.Frament.Anzhu ...

  9. Android中调用百度地图

    一.调用百度地图 --第一种方法 1.下载百度地图SDK SDK可以拆分下载,需要使用那一部分功能就下载相应包含的SDK,如下图 核心的的jar 和so包,放在工程中的libs目录下 2.申请key ...

随机推荐

  1. 转:Gerrit 学习

    转载:http://www.scmeye.com/thread-1665-1-1.html 入门Gerrit简介Gerrit是一个建立在Git版本控制系统之上,基于Web的代码审查工具,但如果你已经阅 ...

  2. Xcode插件,模板安装

    一:是使用工具安装 A Package Manager for Xcode -Xcode模板管理工具Alcatraz使用 二:手动安装 1:打开资源库: 打开Finder---按住alt----前往- ...

  3. Android网络:开发浏览器(二)——功能完善之书签功能

    经过上述的编写,基本的功能已经完成了,不过工具栏里面基本还是一片空白,只有一个刷新的功能,现在咱们就先完善这些功能(之前有朋友说来点图,那么这次我会截些图更好的来描述). 既然是浏览器,怎么能没有书签 ...

  4. 微信小程序 - 各种示例

    示例更新(后续持续更新): 最后一次更新:2018-11-7 小程序-地图显示(调用高德地图.腾讯App) - (2018-11-1) 小程序-上传图片(上传.预览.展示.删除) - (2018-11 ...

  5. javascript---对象和函数的引用、浅拷贝、深拷贝、递归

    1.javascript 对象和函数的引用 <!doctype html> <html lang="en"> <head> <meta c ...

  6. python中in在list和dict中查找效率比较

    转载自:http://blog.csdn.net/wzgbm/article/details/54691615 首先给一个简单的例子,测测list和dict查找的时间: ,-,-,-,-,,,,,,] ...

  7. Stage3d AGAL GPU处理照片 旧照片效果 sepia || pixelbender

    如果看不到下边的flash,请更新flash player到最新版本. 利用AGAL实现旧照片效果,大家可以对照一下之前一篇文章,关于图像处理(pixelbender).硬件处理肯定会更快,但这里无法 ...

  8. 【SPSS】软件介绍

    SPSS软件是美国斯坦福大学三位学生1968年研制开发的统计软件,SPSS是Statistical Package for Social Science(社会科学软件统计包)的缩写,2000年SPSS ...

  9. Linux系统CentOS6.2版本下安装JDK7详细过程

    Linux系统CentOS6.2版本下安装JDK7详细过程 分类: Linux 2014-08-25 09:17 1933人阅读 评论(0) 收藏 举报 前言:        java 是一种可以撰写 ...

  10. 商业规则引擎IBM WebSphere ILog JRules概述,开发基础教程

    Ilog Jrules开发基础教程有7篇,地址规则引擎Ilog Jrules开发基础教程[连载1]-- 概述篇 概述篇 规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来 ...