# basemap **Repository Path**: gzlpsdp/basemap ## Basic Information - **Project Name**: basemap - **Description**: basemap包含国家天地图和贵州天地图(2018-2022)的地图;通过arcgisruntime for android来加载 - **Primary Language**: Android - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2024-06-27 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## basemap [![](https://jitpack.io/v/com.gitee.gzlpsdp/basemap.svg)](https://jitpack.io/#com.gitee.gzlpsdp/basemap) ### 引入依赖 ```groovy implementation 'com.gitee.gzlpsdp:basemap:1.1.2' // 请使用最新版本 implementation 'com.esri.arcgisruntime:arcgis-android:100.6.0' implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' ``` ### 初始化 在获取到 ArcGISMap 对象后,创建 BaseMapApi 实例: ```java // 参数说明: // - myGzTdtTK : 贵州天地图秘钥(选填,可为null) // - myGjTdtTK : 国家天地图秘钥(选填,可为null) // - mCachePath: 天地图缓存路径(必填,需确保存储权限已授予) BaseMapApi baseMapApi = new BaseMapApi(gzKey, gjKey, cachePath, context, arcGISMap); ``` | 注意:使用前必须获取存储权限,否则缓存无法写入。 **设置初始显示范围(可选)** 默认情况下,地图将显示贵州省范围。你可以通过以下方法自定义初始视角: ```java // 1. 设置为精确范围(需与底图坐标系匹配,默认为 CGCS2000 / SRID 4490) Envelope customExtent = new Envelope(106.4, 26.3, 106.9, 26.7, SpatialReference.create(4490)); baseMapApi.setInitialExtent(customExtent); // 2. 直接设为全国范围 baseMapApi.setInitialExtentToChina(); // 3. 重新设为贵州范围(默认行为) baseMapApi.setInitialExtentToGuizhou(); ``` | 设置范围后,后续每次切换底图都会自动应用该范围,无需重复调用。 ### 加载底图 **国家天地图** ```java // 国家天地图 - 影像 baseMapApi.loadBaseMapImage(); // 国家天地图 - 矢量 baseMapApi.loadBaseMapVetor(); // 国家天地图 - 地形 baseMapApi.loadMapTer(); ``` **贵州天地图(按年份)** 贵州天地图目前仅支持影像类型,可指定年份(2018~2022): ```java baseMapApi.loadBaseMapGz2018(); // 2018年亚米级影像 baseMapApi.loadBaseMapGz2019(); baseMapApi.loadBaseMapGz2020(); baseMapApi.loadBaseMapGz2021(); baseMapApi.loadBaseMapGz2022(); ``` | 若需加载最新年份贵州影像,当前没有独立的 loadBaseMapGzLatest() 方法,可直接调用已有的年份方法(如2022),或自行扩展。 ### 完整使用示例 ```java public void initMap(MapView mapView) { // 创建 ArcGISMap 对象(坐标系建议使用 CGCS2000 / SRID 4490) ArcGISMap arcGISMap = new ArcGISMap(); mapView.setMap(arcGISMap); // 初始化底图API(秘钥可从配置文件获取) BaseMapApi baseMapApi = new BaseMapApi( "your_gz_tk", "your_gj_tk", getExternalCacheDir() + "/tianditu_cache", this, arcGISMap ); // 可选:设置初始范围为全国 baseMapApi.setInitialExtentToChina(); // 加载国家天地图影像 baseMapApi.loadBaseMapImage(); } ```