1.功能简介

  自定义服务数据,将符合要求的矢量数据和栅格数据集等数据以服务的方式发布,将数据存储在某服务器中,在有网络的情况下可以根据URL就可以访问,比较常见的服务数据类型的有ArcGIS Server,天地图在线地图,百度在线地图,高德在线地图等,如果没有他们大型的服务器可以发布就可以自己自定义发布并调用。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

设置自定义服务URL(即服务链接地址)

第二步

根据URL得到自定义图层tiledLayer

第三步

设置瓦片信息并设置为自定义图层tiledLayer的瓦片信息

第四步

将tiledLayer添加到地图控件中并设置显示范围

2.2 . 核心接口与方法

接口/类

方法

说明

PIE.Carto.CustomerOnlineTiledLayer

SetTileInfo

设置瓦片信息

Name

图层名称

PIE.Carto.TileInfo

Format

瓦片图像格式

DPI

每英寸点数

CompressionQuality

压缩的质量

LODInfos

LOD信息

SpatialReference

空间参考

InitialExtent

初始化范围

FullExtent

全图范围

TileWidth

瓦片宽度

TileHeight

瓦片高度

PIE.Carto.LODInfo

Level

瓦片级别

Resolution

瓦片分辨率

Scale

瓦片比例尺

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/03.数据加载/14. 打开自定义服务数据

视频路径

百度云盘地址下/PIE视频教程/03.数据加载/14.打开自定义服务数据.avi

示例代码

         /// <summary>
/// 自定义服务影像图加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_CustomerServer_Click(object sender, EventArgs e)
{
string strUrl = "http://imageservices.cresda.com/seis/v3/wmts/tile/1027/131?service=WMTS&request=GetTile&version=1.0.0&layer=&style=&tilematrixSet=&format=image%2Fpng&transparent=false&width=256&height=256&token=guest&zIndex=0&maxNativeZoom=10&srs=EPSG%3A4326&tilematrix=[$Level]&tilerow=[$Row]&tilecol=[$Column]";
//根据url字符串得到自定义在线地图图层
CustomerOnlineTiledLayer tiledLayer = new CustomerOnlineTiledLayer(strUrl);
tiledLayer.Name = "自定义服务影像";
//设置瓦片信息
TileInfo tileInfo = new TileInfo();
tileInfo.Format = TileImageFormat.Png;
tileInfo.DPI = ;
tileInfo.CompressionQuality = ;
tileInfo.LODInfos = new List<LODInfo>();
double dResolution = 1.40625;
double dScale = 5.90995197141668E8;
for (int i = ; i < ; ++i)//显示16级数据
{
LODInfo lodInfo = new LODInfo();
lodInfo.Level = i;
lodInfo.Resolution = dResolution / Math.Pow(2.0, i);
lodInfo.Scale = dScale / Math.Pow(2.0, i); ;
tileInfo.LODInfos.Add(lodInfo);
}
//设置瓦片开始位置
ISpatialReference spatialReference = SpatialReferenceFactory.CreateSpatialReference();
tileInfo.SpatialReference = spatialReference;
IPoint point = new PIE.Geometry.Point();
point.PutCoords(-, );//开始点切片
(point as IGeometry).SpatialReference = spatialReference;
tileInfo.Origin = point; //设置瓦片显示范围
IEnvelope envelope = new Envelope();
envelope.PutCoords(-, -, , );
tileInfo.InitialExtent = envelope;
tileInfo.FullExtent = envelope;
tileInfo.TileWidth = ;
tileInfo.TileHeight = ;
tiledLayer.SetTileInfo(tileInfo); //加载影像并设置地图显示范围
mapControlMain.FocusMap.AddLayer(tiledLayer);
IEnvelope envelop = new Envelope();
envelop.PutCoords(, , , );
mapControlMain.ActiveView.Extent = envelop; mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.4 . 示例截图

注明:

1、如果想加载自定义注记图(效果如上图所示),可以将代码的URL修改为:

stringstrUrl= "http://t0.tianditu.gov.cn/cva_c/wmts?service=WMTS&request=GetTile&version=1.0.0&layer=cva&style=&tilematrixSet=c&format=tiles&transparent=false&width=256&height=256&zIndex=200&tk=f2b11a204a2f84fc62bc5af15e483b48&token=guest&srs=EPSG%3A4326&tilematrix=[$Level]&tilerow=[$Row]&tilecol=[$Column]";

上述链接用浏览器打开报错为: 400 Bad Request,原因是,为了用加载一个URL加载全球的服务数据将链接在请求服务信息中的返回瓦片比例尺级别和行列号用了模糊查找,如果为了测试可以将链接中的[$Level]、[$Row] 和[$Column] 换成你要浏览的参数即可,例如level为10,row为150, column为858,下图左为注记图,右为影像图,

         

2、本文提供的链接为资源卫星中心发布的服务,示例中URL的token为guest,如果大家想用自己的token,可以自己注册一个(token为用户获取令牌)。

PIE SDK加载自定义服务数据的更多相关文章

  1. PIE SDK加载WMS服务数据

    1.   功能简介 WMS服务,WMS是OGC标准中比较简单也是比较重要的标准之一.它全称是“Web Map Service”(网络地图服务):利用具有地理空间位置信息的数据制作地图.其中将地图定义为 ...

  2. PIE加载自定义服务数据详细介绍

    这段时间我一直在研究如何用PIE加载在线地图服务,遇到了许多问题,多亏了技术员小姐姐的帮助,才让我能正确加载ArcGIS Online在线服务.天地图在线地图和谷歌在线地图.我是根据博客园PIE官方博 ...

  3. mxnet自定义dataloader加载自己的数据

    实际上关于pytorch加载自己的数据之前有写过一篇博客,但是最近接触了mxnet,发现关于这方面的教程很少 如果要加载自己定义的数据的话,看mxnet关于mnist基本上能够推测12 看pytorc ...

  4. Arcgis for Js之加载wms服务

    概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...

  5. cesium加载WFS服务(GeoServer发布)

    需求: 为了便于前端渲染数据,自定义图层渲染. 思路: 获取地图服务中的要素进行渲染. 工具: GeoServer 2.6.4,cesium, 思路有了就开始找资料写代码,cesium有接口可以加载W ...

  6. [Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]

    Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如 ...

  7. hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)

    数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果 ...

  8. TensorFlow2.0(10):加载自定义图片数据集到Dataset

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  9. PHP+Ajax点击加载更多列表数据实例

    一款简单实用的PHP+Ajax点击加载更多列表数据实例,实现原理:通过“更多”按钮向服务端发送Ajax请求,PHP根据分页参数查询将最新的几条记录,数据以JSON形式返回,前台Query解析JSON数 ...

随机推荐

  1. html5标签---不常用新标签的整理

    状态标签 meter 用来显示已知范围的标量值或者分数值. value:当前的数值. min:值域的最小边界值.如果设置了,它必须比最大值要小.如果没设置,默认为0 max:值域的上限边界值.如果设置 ...

  2. mysql 添加字段,修改字段的用法

    1.添加字段 ALTER TABLE 表明 add 字段名称 类型(int,char,VARCHAR...) DEFAULT 默认值  位置(FIRST, AFTER+字段名称); 2.删除 ALTE ...

  3. hydra(九头蛇)多协议暴力破解工具

    一.简介 hydra(九头蛇)全能暴力破解工具,是一款全能的暴力破解工具,使用方法简单 二.使用 使用hydra -h 查看基本用法 三.命令 hydra [[[-l LOGIN|-L FILE] [ ...

  4. 启动Hadoop HDFS时的“Incompatible clusterIDs”错误原因分析

    "Incompatible clusterIDs"的错误原因是在执行"hdfs namenode -format"之前,没有清空DataNode节点的data目 ...

  5. Alpha冲刺(五)

    Information: 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Details: 组员1 柯奇豪 过去两天完成了哪些任务 基于ssm框架的前后端交互测试,结合微信小 ...

  6. 利用APT实现Android编译时注解

    摘要: 一.APT概述 我们在前面的java注解详解一文中已经讲过,可以在运行时利用反射机制运行处理注解.其实,我们还可以在编译时处理注解,这就是不得不说官方为我们提供的注解处理工具APT (Anno ...

  7. 一些linux工具在windows版本下的文件放置位置

    首先说明一下windows下的常用变量(这里是XP的,win7及以上的C:\Documents and Settings实际为C:\Users) %SystemDrive%        操作系统所在 ...

  8. django 'set' object does not support indexing

    在定义Model之后使用syncdb 同步的时候报出这个错误,检查之后发现是用错了.在model的Meta里面,排序这些用的应该是 ordering = ['last','first','middle ...

  9. 曲苑杂坛--查看CPU配置

    ​--===================================================--查看CPU配置SELECT cpu_count AS [Logical CPU Coun ...

  10. 纸壳CMS(ZKEACMS)体验升级,快速创建页面,直接在页面中修改内容

    关于纸壳CMS 纸壳CMS又名 ZKEACMS Core 是ZKEACMS的 .net core 版本,可运行在 .net core 1.1 平台上.是一个开源的CMS. 纸壳CMS对于 ZKEACM ...