• 概述
  • 入门指导
  • API参考
  • 代码示例
Android API简介
         天地图•四川是由四川省基础地理信息中心自主研发,可运行在为Android智能手机上的免费地图应用软件,旨在为广大公众用户提供最全最新的四川地理信息数据,同时接入国家天地图数据,并提供地图浏览、实时定位、地名地址查询,分类查询,路线规划等功能。

四川 Android API V1.0版具有如下特点:
1、地图浏览速度快,流量消耗低。
2、移动应用,方便快捷。
3、支持多种Android移动设备。
4、矢量地图和影像地图数据精细。


功能介绍
  • 基础地图服务支持在Android移动设备中,矢量、影像、透明注记等地图服务显示。
  • 图层管理管理在Android 移动设备中地图显示方式,主要是影像,矢量,注记图层显示与切换操作。
  • 地图工具提供Android移动设备中定位,全图,设置,查询,图层选择等对地图进行操作的工具。
  • 地名搜索提供Android移动设备中包括地名模糊搜索、范围搜索,分类地名搜索服务。
android api 介绍
        SCGIS API for Android是基于ArcGIS for Android 10.1.1扩展的天地图•四川地图服务接口,主要用于Android移动端天地图•四川地图应用开发。目前版本号为1.0。
        系统要求:Android2.2及以上版本。
        开发语言:Java。
功能介绍
        天地图四川 android API主要包括以下内容:地图显示、覆盖物、离线地图、POI搜索、定位等等

        1.地图显示
        在手机上显示天地图四川的地图数据,包括矢量、影像等图层显示。天地图四川android API提供覆盖全球、数据精细的矢量地图和最高精度达0.5米的影像地图数据。所需类参见API参考类说明。
        2.覆盖物
        所有叠加或覆盖到地图的内容,统称为地图覆盖物,如自定义的标注、矢量图形元素等。天地图四川android API用户可以添加自己的覆盖物(标注层)到地图上,满足个性化需求,实现各种交互优良的地图应用。所需类参见API参考类说明。
        3.离线地图
        离线地图是指在线下载地图数据包,离线使用的技术。可以减少90%以上的流量,提高地图的浏览速度,优化浏览体验。天地图移动API为用户免费提供全国所有地级市的矢量和影像地图的离线地图数据包。所需类参见API参考类说明。
        4.POI搜索
        提供关键字搜索、分类搜索和周边搜索。所需类参见API参考类说明。
        5.定位服务
        天地图四川android API支持定位服务,拥有GPS、网络等多种定位方式,定位更准确,轻松获取用户当前位置和移动方向。所需类参见API参考类说明。
使用指南
        SCGIS API for Android的使用说明,即HelloWorld工程创建过程

                1.新建“ArcGIS Project for Android”工程。



                2.名称取为“HelloWorld”。



                3.在工程中新建“lib”文件夹,将SCGIS API for Android的jar包拷到lib文件夹中。



                4.打开工程属性框,在“Java Build Path”中的“Libraries”功能卡,通过“Add External JARs”将拷到lib文件夹中的SCGIS API for Android jar包添加进来。



                在“Order and Export”功能卡中勾选刚引入的SCGIS API for Android jar包。



                5.将缓存数据库文件“iDLGTile.db”(DLG瓦片服务缓存数据库)放到SD卡中的“database”目录下。如果对影像瓦片也建立缓存需拷贝一个影像缓存数据库文件放到“database”目录下。

                6.至此,工程创建以及SCGIS API for Android jar包添加完毕,接下来进入开发过程。

        dlgUrl="http://www.scgis.net.cn/imap/imapserver/defaultrest/services/newtianditudlg";
        //在主Activity的onCreate方法中实现地图切片类:
        //获得令牌
        String mToken=" Ud1uC-jU0TmKiaeBPyog6cQBmwgWhlRllDICbePWmIYJRprioPA4ssNWeB-ZkLSn";
        //实现切片缓存管理器
        TileCacheDBManager mDLGTileDBManager=new TileCacheDBManager(this,"iDLGTile.db");
        //实例化地图切片图层
        SCGISTiledMapServiceLayer mDLGTileMapServiceLayer=
        new SCGISTiledMapServiceLayer(dlgUrl,mToken,true,mDLGTileDBManager);
        //切片图层的缓冲文件大小设为100M
        mDLGTileMapServiceLayer.setCacheSize(100); 
        //将图层添加到地图中
        mMapView.addLayer(mDLGTileMapServiceLayer);
        

                运行结果:

 

Android API 参考



SCGISTiledMapServiceLayer 类

命名空间:


com.scgis.mmap.map

说明:


缓冲地图类,可以实现矢量和影像地图服务。

构造函数:


构造函数说明参数说明
SCGISTiledMapServiceLayer(String baseurl,String token) 创建一个不带缓存的地图切片图层

baseurl:切片服务的url地址;

token:令牌

SCGISTiledMapServiceLayer(String baseurl,

Context context,

String token,

boolean iscache,

TileCacheDBManager tiledbman)

创建一个带缓存的地图切片图层

context:上下文;

baseurl:切片服务的url地址;

token:令牌;

iscache:是否使用缓存;

tiledbman:地图缓存管理器,当iscache为true时该参数才被使用


方法:


方法名功能说明参数说明
setCacheSize(long cachesize) 设置缓存大小 cachesize:缓存大小,单位为M

setTileCompressAndQuality(

boolean iscompress,

int quality)

设置瓦片读取时是否压缩及压缩率。

iscompress:是否压缩。

quality:瓦片的质量



SCGISNameSearchService 类

命名空间:


com.scgis.mmap.map

说明:


地名搜索类,可以实现地名搜索和邻近搜索

构造函数:


构造函数说明参数说明
SCGISNameSearchService(String token) 创建一个地名搜索类 token:令牌

方法:


方法名功能说明参数说明
setRegion(String region) 设置查询结果所属市州名称 region:市州名称
setCounty(String county) 设置查询结果所属区县名称 county:区县名称
setTypeCode(String typecode) 设置查询结果的类型 typecode:类型名称
setStartIndex(int startindex) 设置查询结果的起始编号 Startindex:起始编号,通过设置起始编号和终止编号可以设置查询结果分页显示个数
setStopIndex(int stopindex) 设置查询结果的终止编号 Stopindex:终止编号
int getNameSearchCount(String keyname) 获取地名搜索结果总个数

keyname:搜索关键字;

返回值:结果总个数

int getBufferSearchCount(double x,double y,double buffer,String keyname) 获取周边搜索结果总个数

x:搜索中心点的经度坐标;

y:搜索中心点的纬度坐标;

buffer:缓冲半径,单位米;

keyname:搜索关键字;

返回值:结果总个数

ArrayList<AddressT>getNameSearchResult(String keyname) 获取地名搜索结果

keyname:搜索关键字;

返回值:搜索结果集

ArrayList<AddressT>getBufferSearchResult(double x,double y,double buffer,String keyname) 获取周边搜索结果

x:搜索中心点的经度坐标;

y:搜索中心点的纬度坐标;

buffer:缓冲半径,单位米;

keyname:搜索关键字;

返回值:周边搜索结果集



TileCacheDBManager 类

命名空间


com.scgis.mmap.helper

说明


瓦片缓冲管理类,实现瓦片缓冲文件的管理

构造方法


构造函数说明参数说明
TileCacheDBManager(Context context,String dbname) 创建一个切片缓存管理器类

context:上下文;

dbname:缓存数据库名称(或路径)


方法


方法名功能说明参数说明
long getCacheFileSize() 获取缓存文件大小 返回值:缓存文件大小
String getDBFilePath() 获取缓存文件路径 返回值:缓存文件路径
boolean releaseAllDBSpace() 清空缓存文件 返回值:true表示成功清空,false表示清空失败
Boolean deleteDBFile() 删除已有的缓存文件,并初始化一个空的缓存文件。 返回值:true表示删除成功,false表示删除失败。
closeDB() 关闭缓存数据库


AddressT 类

命名空间


com.scgis.mmap.helper

说明


地名点数据类,包含一些地名点数据的属性,比如坐标、名称、地址等属性

Android API 示例

创建地图显示


1、新建“ArcGIS Project for Android”工程




2、名称取为“HelloWorld”




3、在工程中新建“lib”文件夹,将SCGIS API for Android的jar包拷到lib文件夹中。




4、打开工程属性框,在“Java Build Path”中的“Libraries”功能卡,通过“Add External JARs”将lib文件夹中的SCGIS API for Android jar包添加进来。




在“Order and Export”功能卡中勾选刚引入的SCGIS API for Android jar包。




5、确保将原始缓冲地图数据包(itile.db)放到工程的assets文件夹下。




6、至此,工程创建以及SCGIS API for Android jar包添加完毕,接下来进入开发过程。


        String dlgUrl="http://www.scgis.net.cn/iMap/iMapServer/DefaultRest/services/newtianditudlg/";
        String mToken=" Ud1uC-jU0TmKiaeBPyog6cQBmwgWhlRllDICbePWmIYJRprioPA4ssNWeB-ZkLSn";
        //实现切片缓存管理器
        TileCacheDBManager mDLGTileDBManager=new TileCacheDBManager(this,"iDLGTile.db");
        //实例化地图切片图层
        SCGISTiledMapServiceLayer mDLGTileMapServiceLayer=new SCGISTiledMapServiceLayer(this,dlgUrl,mToken,true,mDLGTileDBManager);
        //切片图层的缓冲文件大小设为100M
        mDLGTileMapServiceLayer.setCacheSize(100); 
        //对瓦片进行压缩
        mDLGTileMapServiceLayer.setTileCompressAndQuality(true, dlgTileCompress);
        //将图层添加到地图中
        mMapView.addLayer(mDLGTileMapServiceLayer);
        mMapView.setResolution(0.010986328125);
        mMapView.centerAt(new Point(105.444402, 28.871906), true);