• 下载离线地图数据(支持谷歌、百度、高德等所有地图源) 离线地图分为两种:一种叫“金字塔瓦片”数据,一种叫“矢量地图数据”。我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片;另外一...

    下载离线地图数据(支持谷歌、百度、高德等所有地图源)

          离线地图分为两种:一种叫“金字塔瓦片”数据,一种叫“矢量地图数据”。我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片;另外一种是手机上用来导航的,比如高德地图APP,也可以下载离线地图数据,这个就是矢量的。

         卫星影像地图都是金字塔瓦片,无矢量数据。

         因此,我们所说的离线地图下载通常都是指离线地图金字塔瓦片数据下载。

     

         离线地图金字塔瓦片搭建的离线地图服务分很多种:一般有WEB方式,TMS、WMTS/WMS等等,不同的应用有不同的需求服务方式。

     

        第一步:  下载安装地图下载工具:BIGEMAP地图下载器

        第二步:启动下载器,如下图:

    b11.jpg

        第三步:   选择下载区域,此处以 北京 为例,如下图:

    b12.jpg

     

         第四步:双击下载,弹出下载对话框,如下图:

    b13.jpg

             以上图所示:1、此处需要选择:瓦片:BIGEMAP;后面的网片格式选择png、jpg都可以。

                                  2、勾选你所需要的级别,各个级别是用于地图的放大和缩小;此处选择了从1到13级。

     

           点击“确定”,开始下载,下载完成后,打开下载的文件夹,如下图:

    b14.jpg

     

         其中,“Tiles_BIGEMAP”里面存放的就是金字塔瓦片数据;   另外,map.ini是配置文件,在以后的添加到离线地图服务器时需要用到。

    展开全文
  • 离线地图接入指南

    2020-06-12 12:24:53
    为了在⽆⽹、弱⽹或者特殊外⽹环境下也能流畅地显示地图,腾讯地图SDK从4.3.5版本开始,提供了⼀套离线地图⽅案。可⽀持离线地图开关、城市列表获取、离线城市数据下载、下载状态回调、离线缓存管理等能⼒。 离线...

    为了在⽆⽹、弱⽹或者特殊外⽹环境下也能流畅地显示地图,腾讯地图SDK从4.3.5版本开始,提供了⼀套离线地图⽅案。可⽀持离线地图开关、城市列表获取、离线城市数据下载、下载状态回调、离线缓存管理等能⼒。

    离线地图下载地址:
    iOS地图SDKAndroid地图SDK

    本篇文章为Android地图SDK离线地图使用教程,iOS离线地图教程请参考:https://lbs.qq.com/mobile/iOSMapSDK/mapGuide/offline

    开启离线地图能力可按照以下步骤进⾏:

    1. 打开离线地图开关

    2. 获取离线地图的城市列表

    3. 获取某个城市的离线控制器

    4. 判断该城市是否有数据更新

    5. 执⾏离线数据下载

    打开离线地图开关

    通过TencentMapOptions可以配置离线地图开关,在多个地图实例的情况下,离线地图开关状态保持
    ⼀致。

    TencentMapOptions options = new TencentMapOptions();
    options.setOfflineMapEnable(true);
    MapView mapView = new MapView(context, options);
    TencentMap map = mapView.getMap();
    

    获取离线地图的城市列表

    在离线地图开关打开的前提下,通过TencentMapgetMapComponent接⼝,来获取离线地图组件

    OfflineMapComponent offlineComp = map.getMapComponent(OfflineMapComponent.class);
    

    离线地图组件提供4个接⼝:

    public interface OfflineMapComponent extends TencentMapComponent.Component {
    
        /**
         * 判断离线地图是否打开
         *
         * @return 离线地图状态
         */
        boolean isOfflineMapEnable();
    
        /**
         * 同步最新数据
         *
         * @param listener 同步结果回调
         */
        void syncLatestData(OfflineMapSyncedListener listener);
    
        /**
         * 获取某一Item的离线地图数据
         *
         * @param item     指定离线Item
         * @param listener 状态监听
         * @return 离线地图数据,当传入的Item无效(null或者未包含在离线服务内)
         * 或 没有开启离线地图模式
         * 或 离线地图初始化未完成时,返回null
         */
        OfflineItemController getOfflineItemController(OfflineItem item, OfflineStatusChangedListener listener);
    
        /**
         * 获取离线数据列表
         *
         * @return 最新离线Item列表
         */
        List<OfflineItem> getOfflineItemList();
    
        /**
         * 异步获取离线数据列表,触发重新请求
         *
         * @param callback 回调最新离线Item列表
         */
        void getOfflineItemList(Callback<List<OfflineItem>> callback);
    }
    

    通过syncLatestData接口,刷新获取最新的数据

    offlineComp.syncLatestData(new OfflineMapSyncedListener() {
      @Override
      public void onSynced(boolean result) {
        Log.i("初始化同步结果:" + result);
        if (result) {
          //处理离线数据
        }
      }
    });
    

    通过getOfflineItemList接⼝可异步获取离线城市列表数据,也可以等待syncLatestData结果,同步获
    取离线列表

    //异步获取离线城市列表
    offlineComp.getOfflineItemList(new Callback<List<OfflineItem>>(){
      @Override
      public void callback(List<OfflineMapCity> result) {
        if(result != null) {
          mOfflineCityList = result;
          //拿到数据之后,选择城市进行下一步操作
        }
      }
    });
    
    //同步获取,当syncLatestData结果为true时,列表不为空
    mOfflineCityList = offlineComp.getOfflineItemList();
    

    在返回的OfflineItem列表中,将提供每个离线城市的相关数据,OfflineItem分三类:

    1. OfflineNation(国家)

    2. OfflineProvince(省会)

    3. OfflineCity(城市)

    数据 类型 说明
    name String 下载项显示名称
    pinyin String 唯⼀标示的拼⾳
    size long 数据⼤⼩
    upgrade boolean 是否需要更新
    percentage int 数据百分⽐[0-100]

    获取某个城市的离线控制器

    通过离线地图组件获取对某个城市的离线控制器,在三种情况下,会返回Null:

    1. 离线地图开关没有开启
    2. 传⼊⾮法城市(只⽀持全国概要、直辖市、地级市,不⽀持下载⼀个省)
    3. 地图初始化未完成
    OfflineItem beijing = findCity("北京");
    OfflineItemController cityController = offlineComp.getOfflineItemController(beijing, statusChangedListener);
    

    状态变化监听接⼝

    public interface OfflineStatusChangedListener {
    
        /**
         * 离线状态回调
         *
         * @param item   城市
         * @param status 状态
         */
        void onStatusChanged(OfflineItem item, OfflineStatus status);
    }
    

    离线城市控制器提供4个接⼝:

    public interface OfflineItemController {
    
        /**
         * 检查是否无效
         *
         * @return true表示有远程更新或者本地缓存被破坏,需要执行下载
         */
        boolean checkInvalidate();
    
        /**
         * 开启离线
         *
         * @return 开启结果
         */
        boolean open();
    
        /**
         * 关闭离线
         *
         * @return 关闭结果
         */
        boolean close();
    
        /**
         * 开始下载
         */
        void startDownload();
    
        /**
         * 停止下载
         */
        void stopDownload();
    
        /**
         * 移除缓存,不影响当前正在使用的离线城市
         * @return true,清理成功
         */
        boolean removeCache();
    }
    

    判断该城市是否有数据更新

    在获取城市控制器之后,通过控制器可以检查城市是否需要进⾏数据更新,当该城市的离线数据未下
    载、数据版本升级或者缓存被清理之后,都会返回true

    if(cityController != null) {
      boolean needDownload = cityController.checkInvalidate();
      if(needDownload) {
        //执行下载
        cityController.startDownload();
      } else {
        //跳过更新,打开离线
        cityController.open();
      }
    }
    

    执行离线数据下载

    如果没有判断城市是否存在更新,直接执⾏下载,其内部也会进⾏数据更新的校验,结果都将在
    OfflineMapStatusChangedListener回调中返回

    public enum OfflineStatus {
        /**
         * 离线错误
         */
        ERROR,
        /**
         * 准备下载
         */
        READY,
        /**
         * 开始下载
         */
        START,
        /**
         * 下载中
         */
        DOWNLOADING,
        /**
         * 取消下载
         */
        CANCEL,
        /**
         * 完成下载
         */
        COMPLETED,
        /**
         * 开启离线
         */
        OPEN,
        /**
         * 关闭离线
         */
        CLOSE
    }
    

    停止下载

    通过城市控制器可以停止正在下载中的城市

     if (cityController != null) {
         cityController.stopDownload();
      }
    

    清理缓存

    通过城市控制器可以清理当前城市的缓存

    //关闭离线
    cityController.close();
    //清理该城市缓存
    boolean ret = cityController.removeCache();
    
    展开全文
  • 一份耕耘一份收获,相信我们可以做得...在上一篇关于开发ArcGIS for iOS如何搭建环境之后,接下来做的事情是具体的来加载地图包到我们的设备中,这里我采用的是使用离线地图包,关于如何制作地图包这一块,可以参看...

    一份耕耘一份收获,相信我们可以做得越来越好,眼界越来越高!在上一篇关于开发ArcGIS for iOS如何搭建环境之后,接下来做的事情是具体的来加载地图包到我们的设备中,这里我采用的是使用离线地图包,关于如何制作地图包这一块,可以参看http://resources.arcgis.com/en/help/main/10.2/index.html#//00660000045q000000 ,不过这一块最好请专业人士!微笑 好了,言归正传,本篇博客主要介绍如何将已经生成好了的离线地图文件(.tpk--basemap;.geodatabase)加载到项目中运行起来的其中一种方法。

    主要分成两块:

    1、如何加载.tpk文件

    2、如何加载.geodatabase文件

    这两个文件都是将之放入.bundle文件中,当然也有一种方法是不放在bundle文件中,但是试验了一下工程没能成功的找到文件,故此,这里我们采用这样的方式。

    1、如何加载切片图.tpk文件以显示

    把文件包放在一个bundle 文件中,之后将生成的这个包拖放倒工程中,然后再在代码中可以提供完整的包路径,具体如下所示:

    代码

    <pre name="code" class="objc">NSString* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyBundle.bundle/WildlifeHabitat.tpk"];
    AGSGDBGeodatabase *gdb = [AGSGDBGeodatabase alloc]initWithPath:path error:(NSError *error);

    2、加载.geodatabase文件(假定该文件的文件名为:WildlifeHabitat.geodatabase)

    同样和上边加载.geodatabase的方法类似,补充一点的是,该处说明的.geodatabase文件是通过ArcGIS for Desktop生成的。具体的步骤为:

    1>使用相应的类来打开geodatabase,该类有一些方法可以允许在geodatabase文件中列出特征列表和属性值

    AGSLocalTiledLayer* layer = [AGSLocalTiledLayer localTiledLayerWithPath:path];[self.mapView addMapLayer:layer withName:@"base Tiled Layer"];

    2>为了从一个geodatabase文件来创建特征层(feature layer),首先,使用geodatabase来接收一个特征列表;其次,从一个特征表创建一个特征层

    @property (strong,nonatomic) AGSGDBFeatureTable *localFeatureTable;
    @property (strong,nonatomic) AGSFeatureTableLayer *localFeatureTableLayer;
    
    self.localFeatureTable = [[geodatabase featureTables] objectAtIndex:0];
    <pre name="code" class="objc"><span style="font-family: Arial, Helvetica, sans-serif;">self.</span><span style="font-family: Arial, Helvetica, sans-serif;">localFeatureTableLayer = [[AGSFeatureTableLayer alloc] initWithFeatureTable:localFeatureTable];</span>
    <span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">[self.mapView addMapLayer:self.localFeatureTableLayer withName:@"feature Layer"];


    完成了以上步骤就实现了将两个离线地图文件给加载到项目文件中





    AGSLocalTiledLayer* layer = [AGSLocalTiledLayer localTiledLayerWithPath:path];
    [self.mapView addMapLayer:layer withName:@"base Tiled Layer"];
    展开全文
  • 的文章《离线地图接入指南》 作者:腾讯位置服务 链接:https://segmentfault.com/a/1190000022913527 来源:SegmentFault 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 为了在⽆⽹、弱...

    以下内容转载自腾讯位置服务的文章《离线地图接入指南》

    作者:腾讯位置服务

    链接:https://segmentfault.com/a/1190000022913527

    来源:SegmentFault

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    为了在⽆⽹、弱⽹或者特殊外⽹环境下也能流畅地显示地图,腾讯地图SDK从4.3.5版本开始,提供了⼀套离线地图⽅案。可⽀持离线地图开关、城市列表获取、离线城市数据下载、下载状态回调、离线缓存管理等能⼒。

    离线地图下载地址:
    iOS地图SDKAndroid地图SDK

    本篇文章为Android地图SDK离线地图使用教程,iOS离线地图教程请参考:https://lbs.qq.com/mobile/iOSMapSDK/mapGuide/offline

    开启离线地图能力可按照以下步骤进⾏:

    1. 打开离线地图开关

    2. 获取离线地图的城市列表

    3. 获取某个城市的离线控制器

    4. 判断该城市是否有数据更新

    5. 执⾏离线数据下载

    打开离线地图开关

    通过TencentMapOptions可以配置离线地图开关,在多个地图实例的情况下,离线地图开关状态保持
    ⼀致。

    TencentMapOptions options = new TencentMapOptions();
    options.setOfflineMapEnable(true);
    MapView mapView = new MapView(context, options);
    TencentMap map = mapView.getMap();
    

    获取离线地图的城市列表

    在离线地图开关打开的前提下,通过TencentMapgetMapComponent接⼝,来获取离线地图组件

    OfflineMapComponent offlineComp = map.getMapComponent(OfflineMapComponent.class);
    

    离线地图组件提供4个接⼝:

    public interface OfflineMapComponent extends TencentMapComponent.Component {
    
        /**
         * 判断离线地图是否打开
         *
         * @return 离线地图状态
         */
        boolean isOfflineMapEnable();
    
        /**
         * 同步最新数据
         *
         * @param listener 同步结果回调
         */
        void syncLatestData(OfflineMapSyncedListener listener);
    
        /**
         * 获取某一Item的离线地图数据
         *
         * @param item     指定离线Item
         * @param listener 状态监听
         * @return 离线地图数据,当传入的Item无效(null或者未包含在离线服务内)
         * 或 没有开启离线地图模式
         * 或 离线地图初始化未完成时,返回null
         */
        OfflineItemController getOfflineItemController(OfflineItem item, OfflineStatusChangedListener listener);
    
        /**
         * 获取离线数据列表
         *
         * @return 最新离线Item列表
         */
        List<OfflineItem> getOfflineItemList();
    
        /**
         * 异步获取离线数据列表,触发重新请求
         *
         * @param callback 回调最新离线Item列表
         */
        void getOfflineItemList(Callback<List<OfflineItem>> callback);
    }
    

    通过syncLatestData接口,刷新获取最新的数据

    offlineComp.syncLatestData(new OfflineMapSyncedListener() {
      @Override
      public void onSynced(boolean result) {
        Log.i("初始化同步结果:" + result);
        if (result) {
          //处理离线数据
        }
      }
    });
    

    通过getOfflineItemList接⼝可异步获取离线城市列表数据,也可以等待syncLatestData结果,同步获
    取离线列表

    //异步获取离线城市列表
    offlineComp.getOfflineItemList(new Callback<List<OfflineItem>>(){
      @Override
      public void callback(List<OfflineMapCity> result) {
        if(result != null) {
          mOfflineCityList = result;
          //拿到数据之后,选择城市进行下一步操作
        }
      }
    });
    
    //同步获取,当syncLatestData结果为true时,列表不为空
    mOfflineCityList = offlineComp.getOfflineItemList();
    

    在返回的OfflineItem列表中,将提供每个离线城市的相关数据,OfflineItem分三类:

    1. OfflineNation(国家)

    2. OfflineProvince(省会)

    3. OfflineCity(城市)

    数据 类型 说明
    name String 下载项显示名称
    pinyin String 唯⼀标示的拼⾳
    size long 数据⼤⼩
    upgrade boolean 是否需要更新
    percentage int 数据百分⽐[0-100]

    获取某个城市的离线控制器

    通过离线地图组件获取对某个城市的离线控制器,在三种情况下,会返回Null:

    1. 离线地图开关没有开启
    2. 传⼊⾮法城市(只⽀持全国概要、直辖市、地级市,不⽀持下载⼀个省)
    3. 地图初始化未完成
    OfflineItem beijing = findCity("北京");
    OfflineItemController cityController = offlineComp.getOfflineItemController(beijing, statusChangedListener);
    

    状态变化监听接⼝

    public interface OfflineStatusChangedListener {
    
        /**
         * 离线状态回调
         *
         * @param item   城市
         * @param status 状态
         */
        void onStatusChanged(OfflineItem item, OfflineStatus status);
    }
    

    离线城市控制器提供4个接⼝:

    public interface OfflineItemController {
    
        /**
         * 检查是否无效
         *
         * @return true表示有远程更新或者本地缓存被破坏,需要执行下载
         */
        boolean checkInvalidate();
    
        /**
         * 开启离线
         *
         * @return 开启结果
         */
        boolean open();
    
        /**
         * 关闭离线
         *
         * @return 关闭结果
         */
        boolean close();
    
        /**
         * 开始下载
         */
        void startDownload();
    
        /**
         * 停止下载
         */
        void stopDownload();
    
        /**
         * 移除缓存,不影响当前正在使用的离线城市
         * @return true,清理成功
         */
        boolean removeCache();
    }
    

    判断该城市是否有数据更新

    在获取城市控制器之后,通过控制器可以检查城市是否需要进⾏数据更新,当该城市的离线数据未下
    载、数据版本升级或者缓存被清理之后,都会返回true

    if(cityController != null) {
      boolean needDownload = cityController.checkInvalidate();
      if(needDownload) {
        //执行下载
        cityController.startDownload();
      } else {
        //跳过更新,打开离线
        cityController.open();
      }
    }
    

    执行离线数据下载

    如果没有判断城市是否存在更新,直接执⾏下载,其内部也会进⾏数据更新的校验,结果都将在
    OfflineMapStatusChangedListener回调中返回

    public enum OfflineStatus {
        /**
         * 离线错误
         */
        ERROR,
        /**
         * 准备下载
         */
        READY,
        /**
         * 开始下载
         */
        START,
        /**
         * 下载中
         */
        DOWNLOADING,
        /**
         * 取消下载
         */
        CANCEL,
        /**
         * 完成下载
         */
        COMPLETED,
        /**
         * 开启离线
         */
        OPEN,
        /**
         * 关闭离线
         */
        CLOSE
    }
    

    停止下载

    通过城市控制器可以停止正在下载中的城市

     if (cityController != null) {
         cityController.stopDownload();
      }
    

    清理缓存

    通过城市控制器可以清理当前城市的缓存

    //关闭离线
    cityController.close();
    //清理该城市缓存
    boolean ret = cityController.removeCache();
    
    展开全文
  • 以下内容转载自Tencent位置服务的文章《离线地图接入指南》 作者:Tencent位置服务 链接:hhttps://my.oschina.net/u/4209404/blog/4308580 来源:开源中国 著作权归作者所有。商业转载请联系作者获得授权,非商业...

    以下内容转载自Tencent位置服务的文章《离线地图接入指南》

    作者:Tencent位置服务

    链接:hhttps://my.oschina.net/u/4209404/blog/4308580

    来源:开源中国

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    为了在⽆⽹、弱⽹或者特殊外⽹环境下也能流畅地显示地图,腾讯地图SDK从4.3.5版本开始,提供了⼀套离线地图⽅案。可⽀持离线地图开关、城市列表获取、离线城市数据下载、下载状态回调、离线缓存管理等能⼒。

    离线地图下载地址:
    iOS地图SDKAndroid地图SDK

    本篇文章为Android地图SDK离线地图使用教程,iOS离线地图教程请参考:https://lbs.qq.com/mobile/iOSMapSDK/mapGuide/offline

    开启离线地图能力可按照以下步骤进⾏:

    1. 打开离线地图开关

    2. 获取离线地图的城市列表

    3. 获取某个城市的离线控制器

    4. 判断该城市是否有数据更新

    5. 执⾏离线数据下载

    打开离线地图开关

    通过TencentMapOptions可以配置离线地图开关,在多个地图实例的情况下,离线地图开关状态保持
    ⼀致。

    TencentMapOptions options = new TencentMapOptions();
    options.setOfflineMapEnable(true);
    MapView mapView = new MapView(context, options);
    TencentMap map = mapView.getMap();
    

    获取离线地图的城市列表

    在离线地图开关打开的前提下,通过TencentMapgetMapComponent接⼝,来获取离线地图组件

    OfflineMapComponent offlineComp = map.getMapComponent(OfflineMapComponent.class);
    

    离线地图组件提供4个接⼝:

    public interface OfflineMapComponent extends TencentMapComponent.Component {
    
        /**
         * 判断离线地图是否打开
         *
         * @return 离线地图状态
         */
        boolean isOfflineMapEnable();
    
        /**
         * 同步最新数据
         *
         * @param listener 同步结果回调
         */
        void syncLatestData(OfflineMapSyncedListener listener);
    
        /**
         * 获取某一Item的离线地图数据
         *
         * @param item     指定离线Item
         * @param listener 状态监听
         * @return 离线地图数据,当传入的Item无效(null或者未包含在离线服务内)
         * 或 没有开启离线地图模式
         * 或 离线地图初始化未完成时,返回null
         */
        OfflineItemController getOfflineItemController(OfflineItem item, OfflineStatusChangedListener listener);
    
        /**
         * 获取离线数据列表
         *
         * @return 最新离线Item列表
         */
        List<OfflineItem> getOfflineItemList();
    
        /**
         * 异步获取离线数据列表,触发重新请求
         *
         * @param callback 回调最新离线Item列表
         */
        void getOfflineItemList(Callback<List<OfflineItem>> callback);
    }
    

    通过syncLatestData接口,刷新获取最新的数据

    offlineComp.syncLatestData(new OfflineMapSyncedListener() {
      @Override
      public void onSynced(boolean result) {
        Log.i("初始化同步结果:" + result);
        if (result) {
          //处理离线数据
        }
      }
    });
    

    通过getOfflineItemList接⼝可异步获取离线城市列表数据,也可以等待syncLatestData结果,同步获
    取离线列表

    //异步获取离线城市列表
    offlineComp.getOfflineItemList(new Callback<List<OfflineItem>>(){
      @Override
      public void callback(List<OfflineMapCity> result) {
        if(result != null) {
          mOfflineCityList = result;
          //拿到数据之后,选择城市进行下一步操作
        }
      }
    });
    
    //同步获取,当syncLatestData结果为true时,列表不为空
    mOfflineCityList = offlineComp.getOfflineItemList();
    

    在返回的OfflineItem列表中,将提供每个离线城市的相关数据,OfflineItem分三类:

    1. OfflineNation(国家)

    2. OfflineProvince(省会)

    3. OfflineCity(城市)

    数据 类型 说明
    name String 下载项显示名称
    pinyin String 唯⼀标示的拼⾳
    size long 数据⼤⼩
    upgrade boolean 是否需要更新
    percentage int 数据百分⽐[0-100]

    获取某个城市的离线控制器

    通过离线地图组件获取对某个城市的离线控制器,在三种情况下,会返回Null:

    1. 离线地图开关没有开启
    2. 传⼊⾮法城市(只⽀持全国概要、直辖市、地级市,不⽀持下载⼀个省)
    3. 地图初始化未完成
    OfflineItem beijing = findCity("北京");
    OfflineItemController cityController = offlineComp.getOfflineItemController(beijing, statusChangedListener);
    

    状态变化监听接⼝

    public interface OfflineStatusChangedListener {
    
        /**
         * 离线状态回调
         *
         * @param item   城市
         * @param status 状态
         */
        void onStatusChanged(OfflineItem item, OfflineStatus status);
    }
    

    离线城市控制器提供4个接⼝:

    public interface OfflineItemController {
    
        /**
         * 检查是否无效
         *
         * @return true表示有远程更新或者本地缓存被破坏,需要执行下载
         */
        boolean checkInvalidate();
    
        /**
         * 开启离线
         *
         * @return 开启结果
         */
        boolean open();
    
        /**
         * 关闭离线
         *
         * @return 关闭结果
         */
        boolean close();
    
        /**
         * 开始下载
         */
        void startDownload();
    
        /**
         * 停止下载
         */
        void stopDownload();
    
        /**
         * 移除缓存,不影响当前正在使用的离线城市
         * @return true,清理成功
         */
        boolean removeCache();
    }
    

    判断该城市是否有数据更新

    在获取城市控制器之后,通过控制器可以检查城市是否需要进⾏数据更新,当该城市的离线数据未下
    载、数据版本升级或者缓存被清理之后,都会返回true

    if(cityController != null) {
      boolean needDownload = cityController.checkInvalidate();
      if(needDownload) {
        //执行下载
        cityController.startDownload();
      } else {
        //跳过更新,打开离线
        cityController.open();
      }
    }
    

    执行离线数据下载

    如果没有判断城市是否存在更新,直接执⾏下载,其内部也会进⾏数据更新的校验,结果都将在
    OfflineMapStatusChangedListener回调中返回

    public enum OfflineStatus {
        /**
         * 离线错误
         */
        ERROR,
        /**
         * 准备下载
         */
        READY,
        /**
         * 开始下载
         */
        START,
        /**
         * 下载中
         */
        DOWNLOADING,
        /**
         * 取消下载
         */
        CANCEL,
        /**
         * 完成下载
         */
        COMPLETED,
        /**
         * 开启离线
         */
        OPEN,
        /**
         * 关闭离线
         */
        CLOSE
    }
    

    停止下载

    通过城市控制器可以停止正在下载中的城市

     if (cityController != null) {
         cityController.stopDownload();
      }
    

    清理缓存

    通过城市控制器可以清理当前城市的缓存

    //关闭离线
    cityController.close();
    //清理该城市缓存
    boolean ret = cityController.removeCache();
    
    展开全文
  • 百度离线地图示例V3.0

    2020-07-08 16:08:55
    百度离线地图Demo,Javascript api V3.0 , 文件包含地图切片、init.js modules文件等
  • 如何使用OpenLayer发布离线地图 发布时间:2018-01-17 版权: 一. 说明: 本实例中使用的Openlayer 版本为最新的 Openlayer3,地图下载器使用的是Bigemap 地图下载器。 Openlayer 下载地址:...
  • https://blog.csdn.net/weixin_33854644/article/details/87628376 转载于:https://www.cnblogs.com/haoran5544/p/10845627.html
  • 一,效果图。 二,工程图。 三,代码。 ViewController.h #import #import #import "MapLocation.h" @interface ViewController : UIViewController { MKMapView *_mapView;... NSString *addressStri
  • 全能电子地图下载器 离线地图 介绍(支持几十种地图下载) 最新版 3.6 (2015.6.13) V3.6 2015.6.13 更新内容 ==================================== 1.新增 11种百度自定义风格地图。 2.新增 海图和全球...
  • 在百度地图基础上定位,轨迹,标记,信号强度,离线地图加载
  • MBTiles 是一种地图瓦片存储的数据规范,它使用SQLite数据库,可大大提高海量地图瓦片的读取速度,比通过瓦片文件方式的读取要快很多,适用于Android、IPhone等智能手机的离线地图存储。详情请参考:MBTiles移动存储...
  • 离线地图和导航对于Android和iOS设备 通常,当您外出或在一个新的位置,城镇或城市,你依赖的最佳指南是在您的智能手机或平板电脑上的GPS系统。但是现在不断变化的技术,似乎全球定位系统正在成为给你转由转动导航更...
  • 地图制作者面对一个数以百万计的地图瓦片残酷的现实:大多数文件系统和传输协议对处理数以百万计的图像不是很有效,在磁盘为FAT32格式中,一个文件夹中最多含有65536个文件,HFS最多能列出32,767个文件,EXT3超过...
  • 长期以来,离线地图都是以城市为目标来下载的,但是在某些路线或者导航类应用中,是否可以按需要离线下载或者加载呢,这个可能需要地图商来配合。...
  • iOS离线打包

    2019-08-09 01:47:24
    预备环境 ...下载HBuilder离线打包iOS版SDK(5+ SDK下载)。 SDK目录说明 HBuilder-Hello:离线打包演示应用; Feature-iOS.xls:iOS平台各扩展Feature AP...
  • iphone4使用的离线地图

    2011-07-26 22:24:34
    最近自己制作了几个iphone4使用的离线地图,总结一下经验: 1. 原始地图下载使用Global Map Download Tool 下载,网上教程很多。 2. 转为iPhone格式使用GMDL的‘->iPhone' 功能,选择firmware2.2 & 3,生成Map...
  • ArcGIS Runtime for Android开发解决方案资料 目录 前言 一、ArcGIS Runtime for Android 开发环境的搭建 二、ArcGIS Runtime for Android 离线地图包的制作 ...四、ArcGIS Runtime for Android离线地图
1 2 3 4 5 ... 20
收藏数 3,312
精华内容 1,324
热门标签