一、概述
實現基於EasyMap加載在線圖功能。
工具準備:EasyMap-for-AndroidSDK下載,鏈接:https://pan.baidu.com/s/1kWC0dQf 密碼:yxqt
數據準備:
鑑於在線圖加載不需要數據準備,就把在線圖放到前面進行示例說明。
在線圖主要有兩種:1.在線天地圖 2.自定義的WMTS標準地圖
(1)在線天地圖天地圖本身發佈了很多地圖服務,官網:http://www.tianditu.cn/;需要了解的可以去官網查看
(2)自定義WMTS地圖
本次以天地圖加載爲例。
二、實現邏輯
(1) 新建工程
(2)部署EasyMap到新建的工程
拷貝AndroidGIS.jar到jar,並添加jar包到主工程。
在src目錄下創建jniLibs目錄,拷貝開發包裏的armeabi目錄到jniLibs目錄下。
(3)添加權限
基礎權限如下:
<!--網絡-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--存儲-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--wifi狀態-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
(4)添加MapView控件到地圖
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.tnt.easymap.loadonlinemap.MainActivity">
<com.android.gis.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
(5)設置許可目錄,並拷貝試用許可到相應目錄
//設置許可,結尾必須以\結束,例如:/sdcard/easymap/
API.EG_SetWorkPath(licPath + File.separator);
(6)打開天地圖數據源,並添加到地圖
/**
* 打開天地圖數據
*/
private void loadTDT(){
DataSource dataSource = new DataSource();
//打開天地圖
if(dataSource.Open(DataSource.MAP_WORLD_MAPS)){
//數據集數量
int nCount = dataSource.GetDatasetCount();
if(nCount > 0){
//衛星圖層
Dataset dataset2 = dataSource.GetDatasetAt(2);
//衛星註記圖層
Dataset dataset3 = dataSource.GetDatasetAt(3);
//添加到地圖
mMapView.AddLayer(dataset2);
mMapView.AddLayer(dataset3);
}
}
}
(7)天地圖數據集順序說明
天地圖圖層封裝順序如下圖所示:
三、效果
四、示例工程地址
https://github.com/junqinghaha/LoadOnlineMap