设为首页 加入收藏

TOP

【Android】3.0 第3章 百度地图及其应用--预备知识(一)
2017-10-12 11:36:53 】 浏览:7571
Tags:Android 3.0 百度 地图 及其 应用 预备 知识

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

一、概述

这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技术。

本章以百度官网2016年1月发布的地图API(3.7.1版)为例,演示如何用C#和VS2015编写百度地图应用程序,这些示例程序既可以在Android 6.0的x86模拟器中运行,也可以发布到Android 4.0以上版本的手机中测试实际运行的效果。

1、下载官网提供的Demos

首先访问下面的网址:

http://developer.baidu.com/map/

打开网页后,选择【开发】à【Andoid开发】下的第1项“Android地图SDK”,单击该网页中的【相关下载】,就会出现下面的界面:

image

单击【自定义下载】,在弹出的界面中,除了导航功能外,其他全部选中,然后将其下载到本机中,并解压到某个文件夹下,以便后续的步骤使用它。

2、使用Gaxaxy_Api23_x86模拟器观察运行结果

为了解决MapView使用硬件加速时存在的问题,百度提供了一个TextureMapView控件,使用此控件呈现地图时,要求修改模拟器的开发者选项。

要使用TextureMapView显示百度地图,需要满足下面的条件:

  • 将所有官方示例中的MapView全部改为用TextureMapView控件来呈现。
  • 修改模拟器的开发者选项,将其设置为允许模拟器“强制进行GPU渲染”(如下图所示)。

image

这两个条件都满足后,百度地图才能顺利显示出来。

好了,以后也不需要忍受没有硬件加速的ARM模拟器那个特别的“慢”了,后面的例子将继续用带硬件加速的x86模拟器来演示。

当然也可以直接用手机调试运行(这是建议的调试办法,手机连上电脑后可直接在debug右侧的下拉框中看到该手机的选项,用这种办法调试地图应用程序也更符合实际。但是,由于手机调试截图麻烦,所以这里还是直接用模拟器来演示了。

二、创建BdMapV371BindingLib解决方案

解决方案和项目名:BdmapV371BindingLib

模板:Bindings Library(Android)

创建绑定库的目的是将百度地图SDK 3.7.1版本的所有.jar文件自动转换为.cs文件并生成对应的.dll文件,转换以后,就可以在应用项目中引用生成的.dll文件了。

这也是转换.jar文件为.cs文件最常用的办法。

1、添加JAR文件

将以下文件复制到项目的jars文件夹下,并将这些文件的【生成操作】属性全部改为“EmbeddedJar”。

BaiduLBS_Android.jar

IndoorscapeAlbumPlugin.jar

2、添加最新稳定版Xamarin.Android.Support.v4的引用

鼠标右击【引用】à【管理NuGet程序包】,添加最新稳定版Xamarin.Android.Support.v4的引用,本人添加的是Xamarin.Android.Support.v4.23.1.1.0。

3、修改Metadata.xml文件

打开Transforms文件夹下的Metadata.xml文件,将其改为下面的内容:

<metadata>
  <attr path="/api/package[@name='com.baidu.mapapi']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="managedName">VersionInfoString</attr>
  <attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='A']/field[@name='a']" name="managedName">aVar</attr>
  <attr path="/api/package[@name='com.baidu.platform.comapi.map']/class[@name='B']/field[@name='b']" name="managedName">bVar</attr>
  <attr path="/api/package[@name='com.baidu.location']/class[@name='Address']/field[@name='address']" name="managedName">AddressString</attr>
  <attr path="/api/package[@name='com.baidu.mapapi.cloud']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="managedName">VersionInfoString</attr>
  <attr path="/api/package[@name='com.baidu.mapapi.radar']/class[@name='VersionInfo']/field[@name='VERSION_INFO']" name="managedName">VersionInfoString</attr>
  <attr path="/api/package[@name='com.baidu.mapapi.search.core']/class[@name='g']" name="obfuscated">false</attr>
  <attr path="/api/package[@name='com.baidu.mapapi.search.district']/class[@name='DistrictSearch']" name="managedName">DistrictSearchs</attr>
  <attr path="/api/package[@name='com.baidu.pano.platform.comapi.a']/class[@name='a']" name="obfuscated">false</attr>
  <attr path="/api/package[@name='com.baidu.location']/class[@name='LocationClientOption']/field[@name
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【Android】3.10 热力图功能 下一篇Android--字符串和16进制相互转化..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目