【Android】3.25 示例25--调启百度地图
分类: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--调启百度地图的更多相关文章
- 【Android】3.0 第3章 百度地图及其应用--预备知识
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技 ...
- H5端调起百度地图、腾讯地图app
来自一个需求的总结: 在微信公众号中根据地图上的marker和label,或者搜索结果点击调起地图APP进行导航. 一开始是使用百度地图进行开发,后面转腾讯是因为微信不允许不是自家或者合作方的APP在 ...
- iOS地图集成示例:百度地图POI检索
一.集成百度地图(傻瓜教程,以网站说明文档为准,此处罗列几项主要步骤) 1.登录 http://lbsyun.baidu.com 百度地图开发者平台,获取SDK和集成文档. 2.百度地图可以提供的 ...
- iOS开发---集成百度地图完善版
一.成为百度的开发者.创建应用 http://developer.baidu.com/map/index.php?title=首页 (鼠标移向 然后选择你的项目需要的功能 你可以在里面了解到你想要使用 ...
- IOS百度地图语音导航
VoiceNavigationViewController.m * 客户端需安装百度导航地图 #import "VoiceNavigationViewController.h" # ...
- android 之 百度地图
简介 百度地图Android定位SDK为基于移动客户端开发LBS应用提供基础定位能力. 功能介绍 功能介绍: 地图展示:包括2D图.卫星图.3D图地图展示. 地图操作:提供控制平移.缩放.底图旋转.变 ...
- 地图调起URI API(通过连接直接调用百度地图)
网站:http://lbsyun.baidu.com/index.php?title=uri/api/web 地图调起URI API 百度地图URI API是为开发者提供直接调起百度地图产品(百度We ...
- Android Studio 百度地图导航
配置就不再多说了,上一篇已经详细说过了,这次就是根据经纬度坐标做地图导航,路径规划.直接上代码: package com.example.appview.mian_page.Frament.Anzhu ...
- Android中调用百度地图
一.调用百度地图 --第一种方法 1.下载百度地图SDK SDK可以拆分下载,需要使用那一部分功能就下载相应包含的SDK,如下图 核心的的jar 和so包,放在工程中的libs目录下 2.申请key ...
随机推荐
- VMware Workstation 12下载安装与激活图文教程
一.简介: VMware Workstation 12专门为Win10的安装和使用做了优化,支持DX10.4K高分辨率显示屏.OpenGL 3.3.7.1声道,以及各种新硬件和新技术.从vm11版本开 ...
- 如何不使用pthread_cancel而杀死线程
http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html During the time I use standalone cross ...
- javaweb笔记全套
Lesson 1 一.eclipse工具的使用 1. java代码的位置 1) 选择工作空间 workspace 选择一个文件夹存放程序(代码) 不要用中文和空格 2) 新建一个java 工程(Pr ...
- idea 免费激活(破解)
1.将补丁(JetbrainsCrack-2.7-release-str.jar)拷贝到idea的安装目录/bin下 下载破解补丁 从IntelliJ IDEA 注册码网站:http://idea ...
- eclipse javaWeb项目如何引入jar包
eclipse javaWeb项目如何引入jar包 CreateTime--2018年4月19日08:54:24 Author:Marydon 1.判断当前jar包是否已经引入到项目当中的3种方式 ...
- 1、配置JAVA的环境变量
想要成功配置Java的环境变量,那肯定就要安装JDK,才能开始配置的. 想要成功配置Java的环境变量,那肯定就要安装JDK,才能开始配置的. 安装JDK 向导进行相关参数设置.如图: 正在安装程 ...
- 在shell中使用sed命令替换/为\/
sed命令相关: https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html https://www.cnblogs.com/D ...
- linux 和windows系统下同时可用的UML建模工具(umbrello),超强
原文地址:linux 和windows系统下同时可用的UML建模工具(umbrello),超强 作者:zhangjiakouzf OPEN SOURCE 的 UML建模工具 -- umbrello ...
- HDUOJ------敌兵布阵
敌兵布阵 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- invalid configuration x86_64-unknown-linux-gnu' machine x86_64-unknown' not recognized
转载自:http://blog.csdn.net/php_boy/article/details/7382998 前两天在装机器软件的时候, 出现了下面的错误, invalid configurati ...