1 概述

天地图辽宁 Android SDK是一套基于Android 2.3.3及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问天地图辽宁服务和数据,构建功能丰富、交互性强的地图类应用程序。

2 入门指南

本指南是向 Android 应用添加地图的快速入门指南。

2.1 创建项目

按以下步骤新建一个 Empty Activity 的应用项目。

1)启动 Android Studio。如果您看到 Welcome to Android Studio 对话框,请选择 Start a new Android Studio project,否则,请点击 Android Studio 菜单栏中的 File,然后点击 New->New Project,按提示输入您的应用名称、公司域和项目位置。 然后点击 Next。

2)选择您的应用所需的机型。 如果您不能确定自己的需要,只需选择 Phone and Tablet。然后点击 Next。

3)在“Add an activity to Mobile”对话框中选择 Empty Activity。 然后点击 Next。

4)按提示输入 Activity 名称、布局名称和标题。 使用默认值即可。 然后点击 Finish。

2.2 导入地图开发包

将SDK文件夹中的assets文件夹拷贝覆盖至目标工程默认生成的module的\src\main目录下,然后在\src\main目录下新建jniLibs文件夹并将SDK文件夹中的\libs\armeabi文件夹拷贝到jniLibs文件夹中。最后在module的根目录下新建libs目录并将SDK文件夹中的\libs\TigerMapSDKv2-hx.jar文件拷贝至此。最后添加TigerMapSDKv2-hx.jar到Build Path。 具体步骤如下列图片所示:

1)找到module的根目录:

默认module的\src\main目录:

拷贝后:

在\src\main目录下新建jniLibs文件夹并将SDK文件夹中的\libs\armeabi文件夹拷贝到jniLibs文件夹中:

在module的根目录下找到libs目录并将SDK文件夹中的\libs\TigerMapSDKv2-hx.jar文件拷贝至此:

粘贴后的工程目录:

添加到build path的方法(要在Project视图下才能看到libs文件夹):

2.3 Hello TigerMap代码

1)配置AndroidManifest.xml

在使用地图SDK之前,需要在AndroidManifest.xml文件中进行相关的权限设置,以确保地图各功能可以正常实用。

2)初始化

在自定义Application类进行全局初始化,并且需指定地图存储位置,以及指定搜索服务、地图数据的Host:

在AndroidManifest.xml中添加对自定义Application的声明(在原有的application标签中加入android:name属性即可):

3)添加布局

在布局xml文件中添加地图控件(TKMapView):

4)显示地图

在显示地图的Activity中添加如下代码,即可显示地图:

2.4 连接Android设备

了解您的应用实际运行情况的最简单方法是将 Android 设备与计算机相连。 按照说明在您的 Android 设备上启用开发者选项,并配置您的应用和系统以检测设备。

此外,您也可以使用 Android 模拟器来运行您的应用。 使用 Android Virtual Device (AVD) Manager 来配置一台或多台虚拟设备,您可以将设备与 Android 模拟器联用来构建和运行您的应用。

2.5 构建和运行您的应用

在 Android Studio 中,点击 Run 菜单选项(或 play 按钮图标)运行您的应用。

提示您选择设备时,选择下列选项之一:

选择与您的计算机相连的 Android 设备 此外,还可以选择 Launch emulator 单选按钮,然后选择您之前配置过的虚拟设备 点击 OK。 Android Studio 将调用 Gradle 构建您的应用,然后在设备或模拟器上显示结果。应用打开可能需要几分钟的时间。

您可以看到在您的项目里有地图展示。如果您未看到地图,请检查您是否联网。

3 开发指南

3.1 创建工程

3.1.1 Eclipse配置工程

1)新建一个 Empty Activity 的应用项目。

2)将SDK文件夹的内容拷贝覆盖至目标工程目录下。

3)添加TigerMapSDKv2-hx.jar到Build Path。

3.1.2 Android Studio配置工程

1)参照入门指南创建一个Empty Activity 的应用项目。

2)将SDK文件夹的内容拷贝覆盖至目标工程默认新建的module目录下。

3)添加TigerMapSDKv2-hx.jar到Build Path。

3.2 创建地图

3.2.1 显示地图

第一步,配置AndroidManifest.xml

在使用地图SDK之前,需要在AndroidManifest.xml文件中进行相关的权限设置,以确保地图各功能可以正常实用。

第二步,初始化

1)在自定义Application类进行全局初始化,并且需指定地图存储位置,以及指定搜索服务、地图数据的Host:

2)在AndroidManifest.xml中添加对自定义Application的声明:

3)对显示地图的Activity,不需要进行初始化,需继承TKActivity类:

第三步,添加布局

在布局xml文件中添加地图控件(TKMapView),地图会显示在这个控件上。

第四步,显示地图

在显示地图的Activity中添加如下代码,即可显示地图:

3.2.2 设置地图类型

天地图辽宁提供了两种地图类型,分别为街道图和卫星图。可以通过TKMapView类的changeMapType()方法来实现。参数有两个,分别是 MapType.STREET(对应街道图)和MapType.SATELLITE(对应卫星图)。

3.2.3 使用离线地图

在MapDatDownload类中提供了一系列地图数据版本查询及下载功能的方法。首先介绍几个概念,本SDK将区域分为三级,从高到低分别为省(province),城市(city),和区(region)。获得具体的区域名称和代码的方法请参照3.5.1节。以下方法基于区(region)的地图数据。

1)地图版本检查

本SDK提供了检查检查指定Region的地图是否有更新版本的方法checkUpgrade(),具体使用方法如下:

2)开始下载

开始下载首先要开启下载地图的服务,建议在指定Activity的onCreate()方法中开启,然后调用MapDatDownload.download()即可开始下载指定region的地图数据。

3)取消下载

使用MapDatDownload.cancelDownload()方法可以停止指定的region地图数据的下载。具体使用方法如下:

4)数据清除

如果暂时不需要某个region的地图数据,可以将其清除。本SDK提供了deleteMap()方法来清除指定region的数据。

5)停止下载

提供了stop()方法用于停止地图数据的下载。由于前面开始下载的时候在Activity中开启了下载地图的服务,所以推荐在应用退出时调用此方法,否则下载会在后台持续进行。

6)地图数据存储目录

设置地图数据的存储目录的代码如下:

3.3 与地图交互

3.3.1 方法交互

1)缩放

如果您想改变地图的缩放级别,可以通过TKMapView类的以下方法来进行。

2)改变中心点

如果您想改变地图的中心点,可以通过TKMapView类的以下方法来进行。

3)切换城市

如果您想切换地图所在城市,可使用如下代码来实现:

3.3.2 手势交互

手势交互是通过给TKMapView对象设置相应的监听器实现的。主要有滑动,缩放,旋转,点击POI,长按,双击等手势。

1)滑动

TKMapView.addOnMoveBeginListener()方法和TKMapView.addOnMoveEndListener()方法用于处理地图滑动(移动)事件,分别对应移动开始和移动结束。

2)旋转

地图旋转事件也有TKMapView.addOnRotateListener()和TKMapView.addOnRotateEndListener()两个方法分别用于设置地图旋转和旋转结束事件的响应。

3)单击

TKMapView类提供了TKMapView.addOnTouchListener()和TKMapView.addOnTouchDownListener()方法,分别用于设置触屏事件和触屏按下事件的相应。

4)点击POI

TKMapView.addOnClickPOIListener()方法用于添加地图点击POI点事件的监听器。

5)长按

TKMapView.addOnLongClickListener()方法用于添加对长按事件的相应。

6)双击

TKMapView类提供了TKMapView.addOnMultiTouchZoomListener()方法用于添加对双击缩放地图事件的相应。

3.3.3 控件交互

1)缩放控件

可以控制地图的缩放级别,每次点击改变一个级别。当级别缩放到最大或最小的时候,对应的按钮变为不可用。

TKMapView.setZoomViewVisibility()方法用于设置此控件是否可见:

设置放大缩小按钮是否显示

以下两个方法用于设置此控件放大按钮和缩小按钮的图标资源:

2)定位按钮

在地图Activity的布局文件中添加如下代码即可显示定位按钮:

3.4 在地图上绘制

3.4.1 绘制标注覆盖物

开发者可根据自己实际的业务需求,利用标注覆盖物,在地图指定的位置上添加标注信息。具体实现方法如下:

3.4.2 绘制多边形(线)覆盖物

地图SDK提供多边形(线)覆盖物,以帮助您构建地图功能。

3.4.3 绘制多个标注覆盖物

地图SDK提供批量绘制标注覆盖物的功能,可以方便地绘制多个标注。示例代码如下:

3.5 获取地图数据

3.5.1 获取行政区划数据

本SDK将行政区划划分为三级,从高到低分别为省(province),城市(city),和区(region)。CityUtil类中提供了一系列的方法用于获取各级行政区划的名称(或ID)。

1)获取省级行政区划名称

CityUtil.getAllProvinceName()方法可以获取全部省级行政区划的名称,返回类型是所有省级区划名称的HashMap。

2)获取城市名称和ID

CityUtil.getCitylistByProvinceName()方法用于获得指定省的全部城市名称:

CityUtil.getCityid()方法用于获得指定城市名称对应的城市ID:

3)获取区ID

CityUtil.getRegionIdListByCityname()用于获得指定城市名称对应的全部regionId(大城市可能有多个regionId)。

3.6 地图计算工具

3.6.1 坐标转换

WGS84坐标系:即地球坐标系,国际上通用的坐标系。设备的GPS芯片或者北斗芯片获取到的经纬度为WGS84地理坐标系, 谷歌地图采用的也是WGS84地理坐标系(中国范围除外);

GCJ02坐标系:即火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系;

在LatlonUtil类中提供了两个坐标系之间相互转化的方法,具体如下:

Modifier and Type Method and Description
static Latlon gps84ToGcj02(double lat, double lon)84 to 火星坐标系 (GCJ-02) World Geodetic System ==> Mars Geodetic System

4 参考手册

参见javaDOC。

附录 地图等级与比例尺的对应关系

5 200千米

6 100千米

7 50千米

8 25千米

9 10千米

10 5千米

11 2千米

11 1千米

13 500米

14 200米

15 100米

16 50米

17 25米

18 10米

19 5米

其中红色部分使用“全国概要地图”,蓝色为普通的城市地图。