热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

离线切片的制作和加载方式

作者:xinxin随着GIS行业的发展,越来越大的数据应用于移动端,但相比PC端,同一份大小的数据在移动端显示要比在PC端慢

作者:xinxin

      随着GIS行业的发展,越来越大的数据应用于移动端,但相比PC端,同一份大小的数据在移动端显示要比在PC端慢,这就有必要通过其他方式来提升数据加载和显示的性能了。在使用SuperMap iMobile for Android产品加载和显示地图时,为了提高性能除了在配图时抽稀数据、设置图层最大最小可见比例尺和创建数据集空间索引等方法外,还可以做离线切片。一般对只浏览的数据做离线切片,下面小编将分享离线切片的制作和在移动端的不同加载方式。
#####1、离线切片制作
      离线切片又叫地图缓存,一般在SuperMap iDesktop中生成。在生成地图缓存时可以设置缓存的级别和比例尺、切缓存的范围和存储类型,如下图:

![这里写图片描述](https://img-blog.csdn.net/20161221142949309?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

![这里写图片描述](https://img-blog.csdn.net/20161221143001497?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
切完地图缓存后得到如下图文件:
![这里写图片描述](https://img-blog.csdn.net/20161221143205107?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

![这里写图片描述](https://img-blog.csdn.net/20161221153647915?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
**PS**:如果切的地图缓存的级别较多,比例尺较大,用“原始”存储类型切出来的数据瓦片很多,拷贝到移动设置上耗时太久,建议选“紧凑”的存储类型,数据量小,方便拷贝。 #####**2、离线切片加载** #####**1)以影像引擎加载** 将切好的地图缓存拷贝到移动设备的某个路径下,加载数据的代码如下: ``` m_workSpace = new Workspace(); //将地图显示控件和工作空间关联 m_mapView = (MapView)findViewById(R.id.Map_view); m_mapControl = m_mapView.getMapControl(); m_mapControl.getMap().setWorkspace(m_workSpace); //缓存数据路径 String server = sdcard + "/SampleData/长春市区图/长春市区图.sci"; DatasourceConnectionInfo info = new DatasourceConnectionInfo(); //设置Server info.setServer(server); //设置数据源连接的引擎类型为影像只读引擎类型 info.setEngineType(EngineType.IMAGEPLUGINS); //获取数据源集合 Datasources datasources = m_workSpace.getDatasources(); //打开数据源 Datasource ds = datasources.open(info); //添加到地图窗口中 m_mapControl.getMap().getLayers().add(ds.getDatasets().get(0),true); //全幅显示 m_mapControl.getMap().viewEntire(); ```

#####2)以Rest服务方式加载
用Rest服务方式加载前需要配置数据,首先,要编辑sci文件中的Provider参数,如下图:
编辑前:

![这里写图片描述](https://img-blog.csdn.net/20161221154030531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
编辑后:
![这里写图片描述](https://img-blog.csdn.net/20161221154040375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
      在”http://127.0.0.1:8090/iserver/services/map-长春市区图/rest/maps/长春市区图”中”127.0.0.1:8090”、”长春市区图”可以自己设定,但设置的值要和放在移动设置上的路径结构保持一致,其它值保持不变。 在sci文件中设置完后,保存后将地图缓存数据拷贝到移动设备中,路径为”...\SuperMap\data\Rest\127.0.0.1_8090\map_长春市区图\长春市区图”。由于文件名中不能用英文的冒号,所以路径中的”127.0.0.1_8090”用”_”代替”:”,如下图:
![这里写图片描述](https://img-blog.csdn.net/20161221154843792?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3VwZXJtYXBzdXBwb3J0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
放在特定的路径目录中后,则通过打开Rest服务方式加载,具体代码如下: ``` m_workSpace = new Workspace(); //将地图显示控件和工作空间关联 m_mapView = (MapView)findViewById(R.id.Map_view); m_mapControl = m_mapView.getMapControl(); m_mapControl.getMap().setWorkspace(m_workSpace); //缓存数据路径 String server = "http://127.0.0.1:8090/iserver/services/map-长春市区图/rest/maps/长春市区图"; DatasourceConnectionInfo info = new DatasourceConnectionInfo(); //设置Server info.setServer(server); //设置数据源连接的引擎类型为REST 地图服务引擎类型info.setEngineType(EngineType.Rest); //获取数据源集合 Datasources datasources = m_workSpace.getDatasources(); //打开数据源 Datasource ds = datasources.open(info); //添加到地图窗口中 m_mapControl.getMap().getLayers().add(ds.getDatasets().get(0),true); //全幅显示 m_mapControl.getMap().viewEntire(); ``` **PS**:由于是以rest服务方式加载地图缓存,打开的是web数据源,所以运行时需要联网。 #####**3、小结**       当在移动端加载的数据较大时,可以通过加载地图缓存提示地图显示性能。在移动端主要有上面两种方式加载地图缓存,在可以联网的情况下,建议使用Rest服务方式加载性能优化明显,而以影像引擎方式加载提升不明显。

推荐阅读
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • 由二叉树到贪心算法
    二叉树很重要树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。单就面试而言,在 ... [详细]
  • 推荐几款高效测量图片像素的工具
    本文介绍了几款适用于Web前端开发的工具,这些工具可以帮助用户在图片上绘制线条并精确测量其像素长度。对于需要进行图像处理或设计工作的开发者来说非常实用。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
author-avatar
I-1ove-Y0u
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有