Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

技术服务线上沙龙——MVT矢量瓦片全流程解析线上问题整理



12月5日,超图集团质控与支持中心组织了岁末冲刺技术服务福利第二弹——MVT矢量瓦片全流程解析,在讲解过程中就不断有朋友们在留言区提问,后面有朋友们提出将问题整理为文档,方便大家后续查看。于是,技术支持的同事们打铁趁热,将线上关注度较高的问题整理出来,同时社区上也不少朋友提问,感兴趣的可以移步http://ask.supermap.com

矢量瓦片制作

Q:制作MVT矢量瓦片之前数据制作应该注意什么?
A:1.建议用户先将数据的坐标系转换为地图显示坐标系,再生成矢量瓦片。原因是:如果数据的坐标系与地图显示坐标系不同,在切矢量瓦片时,系统会对数据进行坐标系转换,转为地图显示坐标系;如果地图数据量很大,坐标系转换操作会占用较大的磁盘空间和切图时间,影响切图效率;
2.为了提升瓦片生成和显示效率,切图时可将对节点密集的对象进行抽稀,减少节点冗余;
3.地图要素包含了太多的子对象,在创建矢量瓦片时将影响切图速度,因此,建议对子对象进行拆分,以提高切图效率;
4.矢量瓦片的显示不支持符号随图缩放;
5.针对自定义线型,MapBox样式支持包含多个子线的线型符号,但每个子线的类型必须是“短横线(系统线型)”。另外,MapBox样式不支持子线的偏移设置和端头符号设置。

Q:矢量瓦片大小可以设置吗,固定了是512吗?
A:矢量瓦片大小固定是512, 目前切图时没有选项可以更改其切片大小。

Q:同一地图中,不同图层的坐标系要求完全一模一样吗?
A:可以不一样,前端支持动态投影,但建议在进行切图前,将数据的坐标系转换为地图显示坐标系,再生成矢量瓦片,有助于提高出图速度。

Q:相对之前的栅格瓦片,生成速度会很快吗,快多少?专题图层类型的支持怎么样,自定义的专题图支持情况怎么样?
A:相比传统切栅格瓦片,矢量瓦片在切图速度上要快许多,而且存储空间也节约很多;
专题图方面的话,单值,分段,单值标签都支持,但是有些类型不支持:矩阵,符合,分段标签不支持。

Q:iServer出图慢,如何进行优化?
A:如果是动态出图慢,可以进行数据优化(空间索引,抽稀等);静态出图慢,查找网络请求,看网络请求各阶段所占时间比。

Q:4490坐标系支持吗?
A: Leaflet、OpenLayers、MapBoxGL(911版本)都可对接4490的坐标系地图。

Q:iServer如何切MVT格式瓦片?
A:当前版本只支持动态生成,不支持iServer端切MVT格式瓦片,切MVT缓存需要使用桌面iDesktop进行。

Q:矢量瓦片的比例尺必须按照固定的来切吗?比例尺级别不能自定义?
A:目前不能自定义比例尺,需按照全球剖分比例尺进行。但是可以在iDesktop切图中,选取全球剖分中的部分比例尺进行切图。

矢量瓦片发布

Q:iServer如何发布MVT格式瓦片?
A:1.在服务管理“首页”点击快速发布一个或一组服务,选择数据来源为” UGCV5(MVT)瓦片”,点击“下一步”;
2.点击“远程浏览”按钮,在界面中选取要发布的瓦片索引文件(*.sci),点击“下一步”;
3.选择发布的服务类型,如 REST-地图服务,点击“下一步”;
4.可以看到服务配置信息,包括数据来源,发布的服务类型等,点击“完成”按钮完成发布流程;
5.发布完成后,可以看到当前发布的服务名和链接,点击可直接访问服务。

Q:iClient for Leaflet 无法使用MVT矢量瓦片吗?
A:可以使用, 可参考iClient9D官网http://iclient.supermapol.com上的Leaflet的范例,例如:
http://iclient.supermapol.com/examples/leaflet/editor.html#vectorTileLayerMVT_4326

矢量瓦片使用
Q:可以通过什么方式修改MVT瓦片风格?
A:1.可以直接修改style.json样式文件,但是此方式并不易用,不建议使用;
2.可以通过SuperMap iDesktop重新创建矢量瓦片风格,然后将新创建的矢量瓦片风格内容替换到待更新风格的矢量缓存目录即可,iServer需要重启服务;
3.你可通过iClient客户端去请求不同的style.json文件,展示不同的效果,也可以在前端直接修改单一的点线面的style。

Q:如何使用OpenLayers对接桌面切的MVT瓦片?
A:1.首先通过iServer的快速发布,将MVT瓦片发布成iServer的Rest服务;
2.OpenLayers对接,可参考iClient9D官网iclient.supermapol.com上的OpenLayerst的范例,例如:http://iclient.supermap.io/examples/openlayers/editor.html#MVTvectorlayer_mbstyle_beijing

Q:WebGL支不支持MVT矢量瓦片
A:WebGL暂时不支持MVT矢量瓦片。

Q:移动端是否支持对接MVT瓦片?
A:支持,可以在移动端直接对接MVT瓦片,也可以通过iServer发布后再对接服务。

Q:矢量瓦片主要做底图的呈现吗?叠加的其他的专题图层也通用吗?
A:是的,可以在上面叠加专题图,与其他图层的使用方式是一样的。

Q:可以直接在style.json文件里修改要素的选中样式吗?
A:style.json没有选中样式的属性设置,该属性是在前端在选择中该要素时,进行修改的。

Q:在移动端使用发布的MVT矢量瓦片服务,可以修改矢量瓦片的风格吗?
A:Web移动端可以通过style.json或者是通过对单个图层样式进行修改。
其他

Q:切图时,设置自己的索引范围设置和设置为-180和90有区别吗?
A:是有区别的,索引范围是会影响切图原点和切片的行列号的。

Q:坐标系间相互转化的方法有吗?
A:如果是在JavaScript前端的话,可调用proj4库进行转换;后端的话可以通过SuperMap iObjects当中的坐标转换方法进行转换。

Q:浏览器端渲染有数量级限制吗,比如1000万个点?
A:当数量级过大,浏览器在渲染上会遇到性能瓶颈;前端渲染,针对千万级别的数据量,可使用Openlayers的WebGL渲染 或使用Echarts来进行千万级别的渲染,例如:
http://iclient.supermap.io/examples/openlayers/editor.html#echarts_linesDrawMillionsWaterSystem

Q:SVTiles 格式的矢量瓦片与MVT格式的矢量瓦片有什么区别?
A:SVTiles 是由 SuperMap 制定的一种利用 SQLite 数据库存储矢量瓦片数据的存储格式,是一种私有格式,而MVT则是目前流行的一种通用格式。

Q:SuperMap什么版本开始支持MVT?
A:9D系列版本都支持MVT。

Q:栅格瓦片分布式切图支持几种存储类型?
A:7种。MongoDB、UGCV5、SMtiles 、OTS、GeoPackage、MBTiles、FastDFS 。

Q:紧凑和原始有什么区别?
A:紧凑生成的tiles是.cf的格式,原始是.MVT的格式;紧凑数据相对原始便于拷贝迁移。

Q:Hbase三个节点下发布的原始580万条面数据,iServerx选择MVT的动态出图不显示,而使用Classic显示,这种情况怎么处理。
A:使用Classic可以显示,说明栅格出图是正常的,MVT动态出图不显示,可以稍微等待一会儿,如果一直不出图可以检查下网络请求是否有报错。

转载自:https://blog.csdn.net/supermapsupport/article/details/85345444