游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

发布mbtiles存储的矢量瓦片

  之前我们分享过如何在本地发布OSM矢量瓦片地图,里面介绍了生成的矢量瓦片会存放在。mbtiles文件中,然后用tileservergl软件发布。
  mbtiles是基于sqllite数据库存储地图瓦片数据的标准规范,。mbtiles文件就是实现了这个规范的sqllite数据库。
  最近遇到个相关的问题,项目上需要将这份。mbtiles格式的矢量瓦片部署到客户服务器上并发布。
  之前分享过我在用的开源GIS解决方案,里面将postgis、geoserver、tomcat都搞成了绿色版,并且可以通过批处理脚本将它们一键注册成系统服务,这样就形成了一个套开源GIS的绿色版安装包,部署时会很方便。
  这套安装包的整体技术架构是偏java的,而这次发布矢量瓦片用到的tileservergl是基于nodejs开发的,按上面的思路,需要将nodejs也搞成绿色版的,并且可以使用批处理注册成系统服务。
  因为不想把安装包搞的太大,也不想用太多的技术体系,让后期维护变得复杂,所以就想能不能在现有的技术体系下搞定。mbtiles发布的问题。
  按这个思路,需要去研究有没有相关的geoserver插件,或是java的软件或项目。
  下面是我研究的具体过程,不想看过程的同学可以直接跳到末尾看总结。geoserver插件
  先研究了geoserver插件,还真有。
  geoserver有个mbtiles的扩展插件(https:docs。geoserver。orglatestenusercommunitymbtilesindex。html),支持对。mbtiles文件的读写。
  geoserver安装mbtiles插件的教程可以参考这篇:https:blog。csdn。netdyxcomearticledetails98375453
  从官网下载插件,安装测试后,发现跟想的有点不一样。
  geoserver安装完插件后,新建数据源的界面多了两个mbtiles相关的选项,如下图,上面的是发布矢量瓦片,下面的是发布栅格瓦片。
  我用第二个红框,发布栅格瓦片的选项,发布了下矢量瓦片,会报错。
  用第一个红框,发布矢量瓦片的选项,可以走的通,但就是过程有点曲折,需要把pbf中的图层再挨个发布一遍。
  。mbtiles文件中存的是处理好的pbf文件,按说插件只需要根据请求参数,从sqllite数据库中查询pbf文件,返回给前台就ok了。
  但geoserver不是这么做的,它是将。mbtiles文件中的pbf瓦片作为矢量数据源来使用,类似于读取。mdb文件。
  可以推理出,geoserver内部的处理方式大概是:先将pbf瓦片拼起来,读取拼接后的各图层原始数据把图层原始数据发布成geoserver的矢量瓦片服务前台调用矢量瓦片服务时,geoserver把数据处理成pbf文件返回给前台
  怎么说呢,这么做和把pbf文件直接扔给前台相比,结果是一样的,但就是感觉geoserver的戏太足,内耗太严重,还有就是这个发服务的操作过程也很麻烦。
  只能说,这个插件针对矢量瓦片的设计,仅是用来读取原始数据的,不适合用来发布数据。java项目
  再看java这边。
  在github上搜了一下,找到了这个项目:mbtiles4j(https:github。comjtremlmbtiles4j)。
  是个现成的java工程,拉取下来研究了一下,逻辑很简单,就是直接读取mbtiles中的瓦片返回给前台,这一点很符合要求,美中不足的是,这个项目是针对栅格瓦片的,默认只支持。png文件,不支持。pbf。
  这个好说,有源码,改改就是了。
  改完后发现,前端地图不显示,瓦片请求地址报404,
  将请求地址中的瓦片编号和mbtiles库中的瓦片编号对了一下,确实没有。
  为啥呢?
  哈哈,这个我有经验,持续关注我们的同学还记不记的,我之前分享过关于如何让maputinik支持geoserver的问题,里面最关键的一点就是设置mapboxgl请求瓦片的模式scheme,模式包括xyz和tms,默认使用xyz。
  难道openmaptile生成的这个mbtiles文件是按tms存储的?试一下就知道了
  果然没那么简单,地图还是没有出来,但瓦片可以请求到了,看来确实是tms的。事后简单翻了一下mbtiles规范,里面有明确写到,数据源是以tms格式来存储的。
  看来还是要多研究标准规范和说明文档。
  但为啥地图还是没有出来呢?
  对比了下tileservergl(下图左)和mbtiles4j(下图右)的返回参数,发现了问题所在。
  pbf文件是采用gzip压缩过的,需要在返回参数中明确告知返回内容的类型是gzip,而刚才将mbtiles4j中的png改成pbf后,没有加这个设置。
  加上试试,哈哈,搞定。
  这个通了,剩下的就简单了,工程编译成war包,直接扔到tomcat下就可以了。大比例时地图显示
  本来以为可以收工了,但浏览地图时发现了另一个问题。
  我的地图只切到了14级,因为在矢量瓦片中,14级包含的内容就已经很细了,所以没有必要再往下切。
  但用地图浏览时,超过14级后,因为后台没有对应的瓦片,前台就请求不到数据,地图就不显示了。
  用tileservergl发布同样的mbtiles文件,再用它的默认地图查看器浏览地图,就没有这个问题。
  看来后台需要把超过14级的请求参数处理一下,超过14级时,直接返回14级的瓦片。
  翻了翻tileservergl的代码,并没有找到相关的逻辑。
  在同事的提醒下,发现tileservergl的默认地图查看器,它的前台请求在超过14级时,是按14级来请求的,这说明我要找的逻辑是在前台完成的。
  去翻tileservergl的地图样式配置,和我自己的配置对比后发现,对数据源设置maxzoom就可以解决这个问题。
  看一下官网的解释,大概意思是,如果你设置maxzoom14,那么当地图缩放超过14级时,地图仍然会使用14级的瓦片。
  这个设置正是我要的。
  我把改完后的后台代码上传到了github,方便以后遇到同样问题的同学使用。源码:
  地址:http:gisarmory。xyzblogindex。html?sourceOSMMbtiles总结:本地发布的OSM矢量瓦片地图,生成的矢量瓦片存放在mbtiles文件中发布mbtiles中的矢量瓦片,目前主流的方式是tileservergl,它基于nodejs开发的geoserver有个读取mbtiles的插件,但它针对矢量瓦片的设计是用来读取pbf中原始数据的,不适合用来发布数据。github上有个mbtiles4j的项目,java开发的,稍加修改后,可以用来直接发布mbtilesmapboxgl使用发布的地图瓦片时,需要设置数据源的maxzoom属性。
  原文地址:http:gisarmory。xyzblogindex。html?blogOSMMbtiles。
  关注《GIS兵器库》,第一时间获得更多高质量GIS文章。
  本文章采用知识共享署名非商业性使用相同方式共享4。0国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名《GIS兵器库》(包含链接:http:gisarmory。xyzblog),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

2020十大必看电影国产2020年有哪些好看的电影?2020十大必看国产电影推荐,下面一起看看有没有你期待的!1国产电影2020十大必看电影2020十大必看电影:1、《风再起时》,2、《桂花飘乡……世界十大必看电影带你领略电影世界中的生活本文推荐:世界经典电影十大必看电影,带你领略电影世界中的生活。想必对于大多数人来说都是比较喜欢看电影的,不管是什么类型的,不管是哪个国家的,每个人或多或少的都去接触过,那世界十……少儿不宜的电视剧(5部网剧,5部韩国爱情剧)少儿不宜的电视剧(5部网剧,5部韩国爱情剧)。现在的影视剧,只要是能火的那绝对都是有特点,比如:服装精致,也有剧情能反映出人生,当然还有一种,那就是很少儿不宜了,毕竟人都是视觉……卖9万8天订单破两千,个头超H6,配十佳发动机和四轮独悬国内SUV市场还再持续火热,竞争的激烈程度也在不断升级,已经稳居销量榜首多年的哈弗H6,还再不断升级换新,而那些曾经辉煌,确实有硬实力的车企怎能甘心被淘汰掉呢?华晨中华经过多年……玉骨遥剧组声明,玉骨遥讲的是什么故事玉骨遥说出来很多人不清楚,可玉骨遥的拍摄剧组去发声明说要去抵制路透,很多网友就想去了解一下有关的故事,特别是路透出来的消息开始看到很不错,可行为要去注意点,但有的网友就不清楚玉……天官赐福简介讲述了什么天官赐福咒枷是什么天官赐福故事非常长,里面的伏笔也是非常多的,它是墨香铜臭的小说之一,是他写的第三本小说,但是这部小说里面的伏笔堪称惊艳,一些朋友看到最后才搞清楚里面讲的事情,那天官赐福简介讲述……哈利波特双胞胎演员去世(领了盒饭令人伤心)哈利波特双胞胎演员去世是真的吗?《哈利波特》捣蛋双雄韦斯莱双胞胎兄弟(韦斯莱双子)之一的弗雷德middot;韦斯莱领了盒饭,那一刻真的叫人心痛、伤心欲绝。不过,现实中已有十几位……哈利波特十大美女(哈利波特最美的女角色美照)哈利波特电影系列相信不少人或多或少看过,那么在哈利波特中,你觉得那位女主角比较好看呢?下面呢小编就根据角色魅力,来介绍一下哈利波特十大美女,来看看都有哪些美女吧。1哈利波特十大……哈利波特里赫敏是哪个学院的,哈利波特里赫敏的扮演者哈利波特说出很多人清楚,可哈利波特里赫敏到底是哪个学院的学生,很多网友就想去了解一下有关的故事,看赫敏在哈利波特中,提早给安排到一个学院,之后剧情会有趣,但有的网友就不清楚哈利……哈利波特赫敏是哪个学院的,哈利波特赫敏是谁演的哈利波特说出来很多人清楚,可哈利波特赫敏到底是属于哪个学院的,很多网友就想去了解一下有关的故事,看进行来到哈利波特的学院,之后有一个奇怪的帽子给她选定学院,但有的网友就不清楚哈……易建联落选国家队!未来十年国篮唯一依仗周琦王哲林前段时间中国女篮在塞尔维亚的贝尔格莱德三战全胜,完美的收获东京奥运会的入场券,但中国男篮就没这么好运气了,篮球世界杯上表现糟糕和波兰男篮经历加时大战遗憾落败,国手周琦更是一度因……强烈推荐这款独立站AI智能营销系统对于出海企业来说,线上营销可以说是必备渠道。越来越多的企业会利用独立站进行线上营销,但是在营销过程中,也会遇到各种各样的问题和挑战。比如:独立站得分不达标,想要投放Goo……
轻薄小巧,双向快充,aigo移动电源体验1。轻薄小巧,双向快充,aigo移动电源如今的数码产品不断升级,突然发现手头的移动电源充电效率惨不忍睹,现在的手机、平板等数码产品都是支持PD协议的,动不动20W以上的功……仅芯片缺货吗?二手车新车普遍升值,车主美了美了?最近,除了猪肉在降,粮油菜等生活必需品也都普遍涨价,再有煤炭、油品价格都在疯涨,也造成了各行业很多物资生产短缺问题,毕竟物料成本太高了。疫情期间造成的芯片短缺已经造成车企……每次10分钟跟我学Python(第八十四次课)大家好!我是幻化意识流,今天继续跟我学Python。接上次课,我们继续对列表(list)进行深入地学习:思考:我这里有两组数据:1、hello,热点,b……realmeGT大师版2399元起,三千档对决小米,问鼎价格7月21日下午14:00,realme的空中发布会现场准时发布了realmeGT大师探索版和大师版。这款宣称颜值巅峰影像巅峰屏幕巅峰的旗舰手机新品也确实调足了人们的胃口,从发布……少林张千恣大师收徒汪思宇仪式2021年10月24日,农历九月十九,恰逢观音菩萨出家的日子,少林张千恣大师收徒汪思宇仪式在齐爷庙举办。中国烹饪大师、豫菜泰斗禹建海,俄罗斯低温装备有限公司总经理王继强,和合集……RedmiNote11系列发布,共三个版本,1199元起步刚刚Redmi正式发布了RedmiNote11系列,与以往不同的是,这次RedmiNote11系列共有3个版本,分别为RedmiNote11、RedmiNote11Pro以及R……绿联十合一扩展坞,扩展你的数码生活随着科技的不断进步,笔记本用户的需求也在逐渐发生改变,更多的人把目光转向了更加便携的轻薄笔记本产品,我个人也是更加注重笔记本轻薄便携的用户。当然,轻薄本在日常生活和办公使用中还……大数据平台架构数据平台建设的几种方案随着大数据在越来越多的企业当中落地,企业要开展大数据相关的业务,那么首先要搭建起自身的数据平台。而企业搭建大数据平台,往往需要结合成本、业务、人员等各方面的因素,来规划数据平台……200w有线120w无线!小米手机的充电速度简直无敌了说起今年的小米来,可谓是热度十足啊!首先是小米已经走过了十年的历程,从一开始的互联网公司,到现在的企业巨头。从一开始没有设计的设计是最好的设计,到现在的全面领先。我是从小米一一……英特尔12代酷睿配套盒装散热器曝光!炫酷灯光加持,下吹散热设兼容机之家小牛带你发现更多新潮数码资讯!盒装的英特尔处理器一直被大家吐槽成智商税,最主要的原因是由于性价比不高,造成性价比不高的一个因素便是相对廉价低能的配套散热器。目前……名门修谱人为什么非常重视根?家谱家谱作为一本记录家族发展的历史典藏书籍,谱书中给后人传达的信息,可远远不止是一些家族成员信息这么简单。近几年,全国各地乃至全球,很多人都手捧家谱,走上了寻根之路,这种……双套马车开启多元化格局,虽迟但到的赛睿Aerox3洞洞鼠早几年的时候,赛睿旗下的Sensei系列是很多游戏玩家和职业选手的首选,大师和霜冻等一系列在外设历史里也留下了非常浓重的一笔。再后来Rival3横空出世,这款鼠标一经推出就受到……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网