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米
其中红色部分使用“全国概要地图”,蓝色为普通的城市地图。