- 博客(114)
- 收藏
- 关注

原创 《WebGIS快速开发教程》第7版发布
拿到新书我们可以看到第7版的整体风格是以“业务场景”为核心,所有讲解的知识点和案例都是围绕着业务场景来进行,很多讲到的内容都是各位在实际开发过程中多多少少会遇到的。书籍获取方式:链接: https://pan.baidu.com/s/1G7evzZ07u70qt2f_DH40yA?可以看到我们在封面上加了“classic”的字样,这意味着第7版将会是经典版本,或者说具有里程碑意义的一个版本。
2024-07-09 10:25:25
664
3

原创 《WebGIS快速开发教程》第6版正式发布啦!
大家过完了一个开心快乐团圆的春节之后,现在也开始慢慢进入到工作和学习的节奏中去了,最近的这段时间是大家考研结果公布和换工作的高峰期,很多成绩不太理想的学生和即将打算换工作的同学都可能会想学习webgis相关,因此我们团队赶在这之前将书籍的第6版进行了发布。此外我们还细化了leaflet、mapbox、openlayers、cesium等四个章节,大家最关心的其实还是研发本身,因此我们新增了很多实践性的开发技巧。同时我们还优化了纸质版的印刷体验,我们采用了护眼纸,和更优质的封面材料。
2024-02-28 16:13:27
690

原创 《WebGIS快速开发教程》第5版“惊喜”更新啦
1.我们增加了一章——openLayers,是的,我们也开始讲openlayers了,之前一直有小伙伴要求讲一讲ol,因为ol的API相对来说比较难,因此过去的几个版本没有融入ol,但是在长时间的思考之后,在想明白如何才能讲清楚ol之后,第5版我们终于增加了ol的讲解。过去的几个版本关于前端的知识都是建议大家自学,学习别人的前端讲解,但是有小伙伴反应别人的前端讲的很一般听不懂,希望我能补充补充前端的知识。这次的封面我们经过了全新的设计,不同于以往的任何一个版本。6.书籍的整体达到了接近10万字的篇幅。
2023-12-06 17:07:28
847
2

原创 《WebGIS快速开发教程第四版》重磅更新
1.最重要的部分是在书籍的末尾新增了三个实战案例,这三个案例来自于真实的项目(稍稍改编),对各位上手练习起到了非常大的帮助,另外这个三个项目分别对应书中之前讲过的leaflet框架,mapbox框架以及cesium框架。随着笔者夜以继日的不断忙碌,丰富和完善心血之作《WebGIS快速开发教程》,第四版也终于发布了,第四版相比于前三个版本可以用四个字概括那就是“重磅更新”,重磅两个字该如何理解呢?的知识,之前只有针对于图层的交互和事件,此版本补全了针对于地图的交互和操作。2.本书在第六章新增2节分别是。
2023-10-16 17:19:12
594
原创 openlayers实现图形线性渐变填充的第二种方式
其核心的代码和上篇文章里的其实差不多。过去是径向渐变,要找到圆心和半径,现在是线性渐变,要找到圆的半径宽度。并且你想学习一些比较高阶的有深度的知识。我们在上一篇文章中跟大家讲过如何实现图形的径向的渐变。就是每当我们在放大缩小地图的时候。填充的颜色会不断的变动。那么我们这篇文章来给大家介绍一下采用另一种方式渲染渐变填充,同时解决掉上述提出的问题。之前的文章我们讲过按照官网上的案例来做图形的渐变填充。尤其是频繁的地图缩放的时候。图形的填充是一闪一闪的。我们可以利用这个原理, 先在地图上画一个线性渐变的圆。
2025-03-07 13:25:29
33
原创 OpenLayers实现多边形径向渐变填充
去构建渐变的圆,那么又有同学要问了。也很简单,还是借助turf去测量一下这个多边形的宽和高,取二者中的较大值,不用担心圆过于大,因为最后圆会被裁剪掉。我们先渲染圆形的渐变图层,再渲染需要的业务图层(比如行政区划图层),然后用业务图层去裁剪圆形图层。之前发布过一篇文章讲了在openlayers中实现了多边形的线性渐变填充,这篇文章我们再来介绍一下如何实现圆形的,以某个中心点开始的径向渐变填充。这本书真的是牛的很,它讲述了webgis开发中的很多高阶的,有深度的知识,而且很多知识你在市面上都难以见到。
2025-03-07 11:45:11
47
原创 Cesium中实现三维立体的行政区划贴图效果
完整版的代码如下,你需要准备一个行政区划的图片一般是png格式jpeg格式都行。然后还得准备一个行政区划的轮廓geojson数据。先说好,这个图片没有经过美化处理,这就是裁剪了一张最普通的天地图截图,如果实战项目中UI同事加以处理的话效果会更好。我们可以使用奥利奥夹心饼干的思想。最底层放置一个entity,中间放置一个影像贴图entity。好那么继续往下说思路,其实道理很简单,就是几个图层的叠加。但是怎么叠加如何处理?最上层再盖上一个颜色蒙层,基本上就达到了我们当前的效果。可能对于新手小朋友来讲有点难度。
2024-12-27 09:44:39
616
原创 OpenLayers实现渐变透明填充和光效边界
之前在cesium中做过多边形的填充使用渐变透明的效果,那个时候使用的是着色器,利用距离中心点的距离去写shader函数,距离中心越远颜色透明度越高,那么本文我们在openlayers中来实现这一过程。这篇文章我们重点说填充渐变的问题。实际上官网上关于填充渐变是有案例的。一文中已经讲过了,这篇就不讲了,感兴趣的可以去看看。好接下来开始讲述原理,首先关于边界发光的原理我在。但是官网的写的比较简单丑陋,
2024-12-26 16:01:14
254
原创 MapBox实现深蓝色科技风格底图方案
但是,他这个canvas写的花里胡哨我们几乎用不到,但是我们可以整理思路,就是我们要构建一个canvas元素,给其附上颜色,再将它投掷到一定的经纬度范围中。但是在maobox中,由于官方没有给用户提供渲染时的钩子,也没有给提供API接口。针对于栅格图层,仅仅提供了几个属性允许用户去修改图层的hue和对比度饱和度等等。我们都知道(不知道 的可以去看我openlayers的专栏),在ol中你可以给图层加。再去写css样式去调整图层的颜色。中去调整canvas 的滤镜,二者都是可以做到的。
2024-12-20 14:21:52
349
原创 OpenLayers实现线条发光模糊blur效果,流光线条
首先要清楚发光的原理是什么,所有发光都是相对的,首先要相对于较暗的环境,并且还得伴随着模糊的效果。解释一下,这个函数一共4个参数,当然你可以根据自己的喜好随意去修改,首先第一个参数map是你使用ol新建的那个map对象,第二个参数data是你要渲染的数据,第三个参数是你要发光的颜色,第四个参数是线条的粗细。目的很简单我们想在OpenLayers中实现类似于mapbox中的line-blur的效果,或者说时cesium中的glowpower的效果。底层是一个其他颜色的相对较宽的线条,上层是一个白色的线条。
2024-12-11 16:42:30
241
原创 OpenLayer实现线条滚动线条流动动态线条
我们本文使用到的核心原理也是通过setInterval不断的设置线条的偏移量lineDashOffset。不管在什么框架中让线条“动起来”都有很多种方式。但是无论使用什么方式,其原理都是。录屏2024-11-20 16.32.30。
2024-11-20 16:55:29
227
原创 OpenLayers实现不同地图卷帘对比
所谓的重新渲染其实还是利用了裁剪的原理,比如当滑块滑动的时候,那么上层图层的宽是在不断变化的,然后根据这个变化利用图层的prerender和postrender事件,裁切掉原来宽度减去现在宽度的那一部分,那么就剩下了现在新的图层。另外使用到的核心原理其实还是裁剪。根据中间分割线的位置,计算位于上层的图层的宽高,然后重新渲染,这里的上层的意思就是按照zindex的顺序,位于上层的那个图层。那么根据这个原理我们还可以实现任意的裁切,比如我们如果想实现上下的卷帘对比也是相当的容易,只需要实时计算滑条的高度即可。
2024-11-20 10:46:35
195
原创 openlayers实现图层裁剪,只展示关心区域,抹掉无关区域,“抠”地图
接下来我们需要准备一个用于“抠”地图的几何图形,通常这个几何图形数据都是geojson格式的,一般来说都是行政区划的geojson数据。1.这个裁剪的过程要发生在图层的预渲染阶段,也就是上面代码中监听的prerender,在栅格图层渲染之前,裁掉一部分无关紧要我们不关心的栅格。2.在进行裁剪之前要把用于裁剪几何图形的样式设置为透明的,因为如果不这样做,你会看到每次刷新页面都有颜色在闪烁,也就是图层预渲染阶段显示出了裁剪图形的颜色,这当然是要避免的。在这里我们就以天地图为例子来演示一下如何实现裁剪。
2024-11-07 16:54:38
603
原创 Leaflet封装以及扩展自定义插件教程
在这个例子当中,我们首先新建了一个自己的类叫做GIS,然后写了一个自定义的方法叫做addColorfulLayer,方法的内容就是使用L.geoJson( )来建立一个geojson图层,设置其样式为随机颜色,最后把新建的layer对象返回,由于不想让外界访问这个layer因此我写成了_layer。L.Class.extend( )的使用流程是,先建立一个自定义的类,然后使用L.Class.extend( )将L身上的方法和属性都传递给你自己建立的类,然后使用自定义类的实例去调用你自己封装的方法。
2024-08-01 17:40:00
230
原创 Cesium分屏对比功能实现,完整版代码案例
同样的,如果想左右互相控制,可以把rightViewer的相机参数也设置到leftViewer的相机上即可。首先我们创建2个viewer,分别叫leftViewer和rightViewer。使用cesium开发的小伙伴们,分屏对比功能是视图功能中比较常见的一个需求。首先我们要准备一左一右2个div容器,用来挂在两个cesium实例。因此我们需要对相机camera的改变事件做一个监听。其实分屏对比的关键就在于左右两个视图如何联动起来。那么我们需要借助相机之间的参数传递来实现这个过程。
2024-04-24 18:08:06
464
原创 Mapbox中点图层和面图层点击事件重叠,禁止点击穿透方案
然后mapbox会为我们返回一个数组,这个数组里对应的是我们每个图层查出来的元素,比如上面的写法,我们得到的features就是数组,里面有两项第一个是点要素,第二个是面要素,然后我们就可以针对不同的结果做不同的操作,这里我采用的是状态标记法,当获取到点要素之后证明用户点击了点位,那么这个时候我把state状态改掉,然后执行面要素的操作时首先判断这个state,如果他的值是true就证明点图层被点击过,那这个时候就不能执行面图层的任何操作。这表示当我点击到点位的时候。我想阻止鼠标事件下穿。
2023-11-23 16:05:25
1129
原创 MapBox免Token离线部署全套成熟方案
首先你需要把mapbox-gl.js源码文件中的一行代码进行改动,mapbox-gl.js大家可以在官网直接下载下来,然后进行修改,官网的这个文件是打包压缩之后的,修改后我们就可以直接使用,访问下面这个地址。其实需要申请token使用的本质原因是。这些东西mapbox官方肯定是不想让大家免费无脑使用的,所以加了token验证,而且这个token及其难申请,导致困扰到大家连起步都没法开始。这样的话,我们使用了非官方的layers资源,不仅可以正常的使用mapbox的功能,而且也不会因为没有token而报错。
2023-11-10 10:54:05
4015
原创 WebGIS国产化(信创)研发流程一:数据库的调研与介绍
因此如果你使用的国产数据库是openGauss数据库,还想存储计算空间数据,那么是必须要安装禹贡——YukonDB,额,这个命名的话总是感觉很奇怪,理论上讲禹贡是一个扩展,是一个产检,但是它又叫禹贡数据库。瀚高数据库是瀚高股份有限公司开发的空间数据库,官方称是基于postgresql来进行的开发,因此理论上讲应该是继承了postgresql的一些特性,并且应该也是支持postgis的。以上三个数据库都是国内比较主流的数据库,尤其涉及到toG的应用,更是几乎必选,本文先对这三个数据库进行简单的介绍。
2023-10-30 13:58:31
785
原创 MapBox 做聚合图点位聚合效果实现教程
聚合之后的点的位置还必须在点位比较密集的区域,那这样的话我们就得使用 mapbox 自带的聚合功能了。我们直接把图层的 cluster 设置开启,mapbox 会帮助我们自动计算聚合的结果。聚合多大范围也需要你指定。首先你可以手动的些代码来计算某个范围内的点的数量然后再把聚合的结果展示在这个范围的某个位置。这针对于简单的需求是比较有效的。注意聚合之后的点位必须用 circle 类型的图层来表示,使用其他的图层是不行的。第三个参数是聚合半径clusterRadius,这个半径越大会检索到越广的范围进行聚合。
2023-08-01 13:32:59
4050
原创 Cesium 中那些改变视角的方法,带你彻底了解 cesium 相机
offset 参数是指相机的偏移量。我们来看 camera 的 flyTo 方法如何使用,它一共有12 个参数其中有几个参数的意思和上面讲过的是一样的,比如duration参数和orientation参数,还有maximumHeight参数,orientation只不过是把 heading,pitch以及没跟大家说过的 roll 参数进行了封装。要注意,尽管 viewer 可以调用 camera ,并且 viewer 在执行飞行的过程中也是调用了相机,但是viewer 所调用的相机是经过进一步的封装的。
2023-07-14 15:10:11
2638
原创 Cesium 加载发光材质的行政区边界
那么如果我们在加载 geojson 行政区的时候,是不是 也可以利用这发光的线条来展示,但是在 cesium 中加载 geojson 使用的是GeoJsonDataSource这种方式,这种方式有个缺点,就是你的数据必须是线要素或者是把行政区的面要素转换成线要素在设置材质。具体的转化过程你可以依赖 turf.js将面转换成线要素,但是我不推荐这种方式原因有两个,第一转换起来比较麻烦,还得依赖第三方库,第二,不利于后续的交互操作,如果你将面转换成了线,那么后续点击面进行高亮的操作你又该如何应对?
2023-07-14 11:34:17
2196
原创 Vite+Vue3+Cesium工程搭建及初始化
cesium 中的一些资源文件是本地静态的,比如地球背后的宇宙贴图以及界面小组件的图标。这些文件必须放在项目中的静态文件夹之下,这些文件存在与 cesium 依赖包中的Build文件夹底下的Cesium文件夹之下,我们必须把整个 cesium 文件夹搬迁至项目中的 public 文件夹之下。现如今的前端更新太快了,我记得我一年前还在写 vue2+cesium 的工程构建方式。注意我们 public 文件夹是不需要写文件路径的,系统会自动帮我们锁定为根目录,也就是说直接写 Cesium/就好。
2023-07-05 15:37:01
1011
原创 Mapbox 实现热力图教程
heatmap-radius热力图的半径和heatmap-opacity热力图的密度都是通过 zoom 来确定的,跟数据本身也无关,所以这里面可以总结出一点。只有热力图的权重这个参数是跟数据息息相关的,剩下的都只和缩放层级有关系。这个颜色和热力图密度heatmap-intensity是有关系的,密度从 0-1 之间的话,每个阶段的密度值可以对应一个颜色,自己可以根据区间进行调整。热力图在 maobox 中属于专题图的一种,他通过点的颜色和权重 来渲染点和点周围的指标情况。
2023-07-04 10:32:08
937
原创 MapBox 实现自定义地图样式配置(包含本地静态引入)
还有一种方法,我们如果不想把自己的样式暴露在互联网上,不想让别人也访问到。引入的方式有很多种,直接读取 json 或者变成 js 再引入都可以,看自己的喜好。你可以点击右上角的 share 按钮,然后在弹出的窗口中往下滚动。建议各位配置的样式都是基于已有的样式进行改动,不建议自己建立空白样式。点击按钮之后我们就来到了配置的页面,选择右上角的 new style。然后复制这里的 style url 你就可以直接加载你配置的地图了。这样就可以随心所欲的改变样式玩转地图了。这就需要我们要有自己配置地图的能力了。
2023-06-26 12:18:58
1820
原创 《WebGIS快速开发教程第二版》完成修订了
主要的内容集中在补充了第一版中所存在的一些不足的,知识衔接不够紧密的部分。另外就是修改了第一版中的一些错误的表达,以及错误的格式和错别字。之前没有购买过第一版书籍的小伙伴可以直接考虑第二版了,第二版是对第一版的补充和丰富,完全包含第一版的内容,但是价格和第一版是一样的哦~哦对了,还新增了常见问题解答环节,把大家伙经常问我的问题我都补充在这一部分了。最后需要告知大家的一个消息是:如果之前购买过第一版的小伙伴们现在可以。第二版相比于第一版新增了12页的内容,字数上新增了8000字左右。
2023-06-25 17:02:53
547
2
原创 Leaflet实现要素点击查询弹窗展示属性
这个click参数的值也是个回调函数,这个回调函数的参数是鼠标点击所拾取到的所有要素信息,e是包括经纬度,图层,要素等多个信息,e.target代表着图层本身的信息。e.target.feature即当前点击的要素。首先要清楚leaflet框架的构造,leaflet在加载图层的时候是对图层添加了事件监听的,也就是说用户对于图层的任何操作都可以被捕捉到。即我们在添加geojson图层的时候有个配置参数叫onEachFeature。这个参数的值是一个回调函数,这个回调函数有两个参数,分别是每个要素和整个图层。
2023-06-21 13:52:54
1897
原创 QGIS实现shape、geojson数据的矢量切片教程
如果是shape文件必须包含四个必要的文件即:.shp、.dbf、.shx、.prj。能够实现矢量切片的办法有很多,可以使用geoserver,可以使用qgis,当然也可以自己写代码实现。第二项选择图层,qgis支持同时对多个图层进行矢量切片,我们点击右侧 的...按钮选择要切片的图层即可。切片的速度极快,也可能是数据比较简单,层级比较小,如果设置层级高的话可能花的时间会更长一些。然后下面的extent是指数据的范围,这个通常能够自动计算出来,点击右侧的鼠标箭头按钮即可。本文我们使用geojson数据。
2023-06-20 16:16:14
3268
2
原创 QGIS实现tiff影像栅格数据切片教程
然后下面的参数各位就要根据自己的情况指定了,比如最小缩放层级minimun zoom和最大缩放层级maximun zoom分别决定着从第几个缩放层级开始切片,以及到第几个层级切片结束。这两个参数大家需要自己指定一个文件夹,不然切片结果会找不到,这些参数都填写好之后,就可以点击右下角的“run”按钮,开始执行切片过程。实现栅格切片的方式有很多种,geoserver可以,qgis可以。自己写代码也可以,方式非常多。但如果你是png格式的图片的话,它是无法计算的,所以需要你手动输入图片对应的经纬度范围。
2023-06-20 11:25:33
4609
原创 MapBox实现框选查询,多边形范围查询
我们可以监听地图的“onmousemove”事件,初始状态我们可以鼠标点击确定多边形的起点,然后鼠标移动的时候,我们让鼠标当前的位置和第一次点下的位置进行连线,这样就画成了一条线,顺着这个思路我们就可以不断的使用点击和鼠标移动的方式来绘制多边形。当然如果你是矩形或者圆形 的话思路是一样的,只不过画线的数学计算不一样,例如圆形的第一次点击是确定圆心的位置,鼠标的移动是为了确定圆的半径,第二次鼠标落下圆就画好了。第二个比较坑的地方是按照这个接口查询出来的结果并不准确,因为他选择的是外部边界的范围。
2023-06-12 14:02:00
1036
原创 Mapbox表达式详细解读
初学mapbox 的小伙伴们一定会被表达式给弄的晕头转向的。明明条件判断或者回调函数能解决的问题。mapbox里非得让你用表达式。这确实比较ex。不过我们既然遇到了,也不要怕,这篇文章我就带着大家一点一点的搞明白这个所谓的表达式。首先从宏观上讲,要知道为什么使用表达式。在mapbox中。通常是为了把一些条件判断if/else简化,才选用了表达式的方式。一个表达式通常就一行代码。短短几十个字符就可以完成条件的自动匹配。
2023-06-07 14:48:23
1380
原创 自定义矢量切片工具tippecanoe的全网最详细的解读
的意思是如果在中低层级之下瓦片过大的话,要尽可能的把在一起的要素合并起来,这样做是为了在后续高层级的切片中够独立的区分出来每个要素。注意这个参数是必须的,如果你不写这个,输出的结果文件都是被mapbox提前预压缩的,这样的文件前端是不能够被渲染的,因此这里必须写这个。的意思是尽可能的切,就是指如果高缩放级别的瓦片体积还是比较大的话,就继续往下切,直到瓦片的体积不那么大为止。的意思是使用工具帮助我们判断切片的最大最小缩放层级,如果不写这个,就需要我们手动的来控制切片的最大和最小缩放层级。
2023-05-29 11:52:48
1597
原创 WebGIS统计及聚合统计效果实现
我们在实际的开发过程中难免会碰到聚合统计的需求,或者是有的时候我们一次性展示不了太多数据,我们就必须用到聚合的概念。其实在webgis中,聚合多半是空间上的聚合,也就是俗称的拓扑聚合。拓扑聚合就是将一个范围区域内的数据用一个点来表示,这个点上展示这个范围内的数据量,随着用户的选择和操作再逐步显示具体的数据(比如用户放大地图。我们本篇文章采用的是dom元素叠加到地图上,自定义聚合点的样式。不过这个行政区数据的属性中最好是携带每个子行政区中心点的数据,方便后续的名称展示和聚合dom的展示。
2023-05-18 15:24:17
395
原创 使用mapbox+turf.js完成迁徙图,流向图教程
尽管它这段弧线不是很明显,因为它的角度比较大,因此如果距离短的话,几乎就是一条直线,为了优化这一缺陷。我们可以配合另一个函数叫做:bezierSpline,这个函数是贝塞尔曲线函数,它能够将一段折线变得更加平滑,我们把greatCircle的结果放入bezierSpline中就会让这条线更有弧度。首先我们要把思路捋清楚,迁徙图表示的是从一个点出发向多个点均有流向(这个流向用线条表示)或者是从多个地方向一个地方汇总。也就是一对多或者是多对一,这里面的多和一都是城市位置,也就是经纬度坐标点。
2023-05-15 18:20:33
1633
原创 WebGIS支持国内各地方坐标系数据展示的方案
因为在国内我们认为wgs84坐标系和GCGS2000坐标系是等同的,因此很多webgis框架是支持wgs84坐标系展示数据的,甚至有的框架还支持GCGS2000坐标系,所以我们把地方坐标系转换成GCGS2000之后,其实数据就可以正常加载了。在我们的实际项目开发过程中,会存在着很多的客户提供的数据是地方坐标系的数据,这些数据通常是一些类似于地块数据,点位数据等等的矢量数据。地理坐标系又称为经纬度坐标系。我们的地方坐标系大多数都是投影坐标系,也即是地方坐标系的数据内部存储的不是经纬度,而是距离坐标。
2023-05-12 15:52:20
839
原创 《WebGIS快速开发教程》写好啦
内容上从基础的、底层的理论知识到前端的渲染再到服务端的介绍最后到架构上的设计。教会大家入门webgis,以系统化的知识体系作为基础,在这个基础上考虑了学生们没有开发经验的场景,考虑了前后端从业人员对于地理学不熟悉的场景。综合各位的需求,打造的这么一本适合入门和夯实基础的书籍。告诉大家一个好消息,经过我没日没夜,呕心沥血的创作,这本叫做《WebGIS快速开发教程》的书籍终于写好了。这本书适用于还未毕业的学生、以及正在从事传统前后端开发但是想转到WebGIS开发的人。九、GIS数据库基础。
2023-05-11 11:02:39
1641
2
原创 Mapbox多边形光效晕影特效的实现
2.使用turf.js中的transformScale获取该行政区的缩小边界,将这个边界以线要素的方式重新加载到地图上,线条的颜色和上面行政区的边界颜色一样透明度是0.3,比填充透明度稍微高一点就行。将线条的宽度设置的宽一点,线条的模糊度,也就是line-blur这个属性,设置的大一点,这样我们就得到了一个模糊的边界线,这也正是我们发光晕影的来源。这相比普通的多边形样式,边界有了渐变发光的效果,那么这篇章交给大家如何实现这样一个效果,让你的行政区,地块之类的多边形要素展示成发光的效果。
2023-04-25 10:40:16
1676
原创 使用Vite工具构建OpenLayers应用
当然这个神速是暂时的,vite不同于webpack,webpack在初始化项目的时候就会下载对应的依赖包。因此需要花费很长时间才能初始化好,而vite相反,它并没有去下载对应的依赖而是直接告诉你项目初始化好了,然后你去项目里开始运行的时候才开始给你下载对应的依赖包。openlayers最新版本的案例代码就使用了vite来构建,因此这一篇文章我们来给大家示范一下如何使用vite来构建一个基于openlayers的应用。所以我们只需要复制走html里的代码然后替换掉项目里的index.html的代码。
2023-04-19 11:42:28
483
原创 GeoServer发布一张纯图片作为地图教程
可以看到还是有一点误差,蓝色线是这个行政区标准得线,右下角的差距还是很明显,这主要是因为我们在地理配准的时候采用的是手工添加的控制点,难免会有误差,控制点误差越大就会对图形造成更严重的挤压变形,因此这就考验我们能不能精准的进行地理校准了。可能是一张手工绘图,也可能是一张影像图片,总归来说就是png,jpeg格式的纯图片,现在需要把这张图片加载到我们的地图上,该如何做呢?然后点击更新地理配准,完成后屏幕上就是我们矫正之后的地图,我们这时候可以右击图层,选择导出数据, 在弹出的对话框中要注意红色部分的配置。
2023-03-18 12:36:47
2535
1
原创 GeoServer图层切片(WMTS)详解
点击geoserver首页的图标,回到首页,点击wmts1.1.1,这时候会打开一个xml文件,这个文件内部记录了所有图层的wmts切片信息,包括每个图层是什么坐标系,切了几级,切片服务的地址等等,都记录在这个xml里面。这是 geoserver根据你的配置动态切割的图片,随着你鼠标滚轮的滚动,geoserver 会判断当前的层级比例尺分辨率,也就是zoom大小,动态的从服务端切割图片,然后再返回前端。首先我发布一个浙江省的shape作为数据源,这一步大家应该都会,不会的简单去百度一下这太简单我就不说了。
2023-03-14 15:26:28
2434
原创 PostGIS空间拓扑关系空间分析教程
但是这个函数比较不出来坐标顺序,也就是,这个函数认为两个相同的但是坐标顺序不一样的图形也是相同的图形。所以这个函数更偏重的是视觉上的是否相同。这个函数也指的是包含,两者的区别在于参数的顺序是相反的,st_within(A,B)表示B是否包含A,也就是A是否在B内部?注意这两个参数可以是任何类型的图形,可以是一个点和一个线,一个点和另一个点,一个线和另一个线,一个线和一个面,就是指空间上任意两个图形是否相交。要注意你比较的两个图形geom的坐标系必须是一样的,如果不一样需要提前转换成一样的再进行比较。
2023-03-13 15:04:30
838
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人