自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴道简的博客

GIS/地图/历史/文化,实践出真知。

  • 博客(186)
  • 资源 (7)
  • 收藏
  • 关注

原创 Fiddler入门:下载、安装、配置、抓包、customize rules

一、fiddler下载安装安装包下载链接:https://www.telerik.com/download/fiddler随便选个用途,填写邮箱,地区选择China,勾选“I accept the Fiddler End User License Agreement”,点击“DownLoad for windows”,下载。双击FiddlerSetup.exe安装fiddler,可以选择常用的、不那么深的一个路径。在安装路径下,双击Fiddler.exe,能打开,说明安...

2021-09-14 10:17:38 2426

原创 python3+ffmpeg下载B站视频,附代码

最近要去外面玩,旅途漫长,于是乎,就写了个代码,从B站上下载纪录片看,代码附后,请自取,如果觉得有用,麻烦点个赞,鼓励一下。感谢~~一、下载安装ffmpegFfmpeg是一款自由软件,用于视频和音频文件的处理,在本例中,我使用它进行视频文件和音频文件的合并。合并代码写在python脚本中,你只需下载好ffmpeg即可,而且因为合并代码中使用ffmpeg的绝对路径,所以也不用设置环境配置。Ffmpeg下载:https://github.com/BtbN/FFmpeg-Builds/rele

2021-09-09 17:20:12 1482 1

原创 如何计算缓冲区:原理,数学公式,代码

一、缓冲区概念:缓冲区到底是个啥,看ARCGIS的说明就行:缓冲区:https://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analysis-toolbox/buffer.htm缓冲区(分析)的工作原理:https://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analysis-toolbox/how-buffer-analysis-works.htmarcgis的...

2021-08-18 18:04:38 3910 1

原创 如何判断一个多边形的环是逆时针还是顺时针

OGC关于数据格式有规定,多边形的外环应为逆时针,内环应为顺时针。GIS相关的库包,在对数据进行空间操作的时候,也基于这个规定,将数据标准化为外环逆时针,内环顺时针之后,再进行空间计算和分析。这种标准的数据结构,会将计算量减少一半。不过我现在看的大部分面数据,都不是严格执行这个规定的。数据不规范的话,数据量越大,处理时间越长,效率越低。所以我一般拿到数据的时候,都会把数据进行规范化标准化。重点:数据处理中,数据标准化是前置步骤。如何判断多边形是逆时针还是顺时针,比较简..

2021-08-18 13:06:27 1566 2

原创 GeoServer发布影像金字塔并leaflet加载

如果是几百M的影像数据,我们直接用GeoServer发布就可以了。但如果是几十G的影像数据怎么办?有经验的同学都知道,首选要先将影像数据构建成金字塔,才可以将数据发布浏览,要不然会卡死。我们现在就看下,怎么用GeoServer发布影像数据金字塔吧。一、安装插件ImagePyramid1-1.下载插件首先,我们要给GeoServer安装ImagePyramid插件:看下自己的GeoServer的版本号,在以下链接下载插件:因为我的GeoServer版本号是2.19.1,所以我下载插

2021-07-27 18:59:32 1502 1

原创 GeoDa入门:安装、专题图、莫兰指数

之前写过GeoDa,不过比较分散,这里把它作为一个专题,单拎出来写。一、GeoDa简介GeoDa是一个免费、开源的空间数据分析软件。通过探索和建模空间模式,GeoDa向用户提供了全新的空间数据分析视角。GeoDa支持很多空间算法,例如莫兰指数、高低聚类,支持多种文件格式,例如csv、shp等等,支持多种图表,例如折线图、散点图等等,支持多种底图,例如OSM、高德等等。用作数据可视化和图表分析,GeoDa比QGIS更简单好用。更多关于geoda的介绍,可参见官网:https://geoda

2021-07-07 23:08:29 6031 4

原创 耳切法多边形三角化与德洛内三角剖分都是什么

写这篇文章的目的是,别把德洛内三角剖分和多边形三角化给弄混了。德洛内三角剖分是德洛内三角剖分;多边形三角化是多边形三角化。在大部分前端框架和桌面软件中,例如游戏引擎unit3d和三维框架cesium,如果我们要渲染一个平面的polygon,或者一个三维的surface,首先要做的是将polygon和surface给三角化,因为这些框架和软件的底层原理是通过渲染三角形,实现polygon和surface的渲染,当然三角化的算法都是内置在程序中的,不过有时候还需要自己去划分三角形。常用的多边

2021-06-30 22:08:01 985 2

原创 GeoServer+vue2+leaflet构建地图服务

因为geoserver就是后端服务,所以如果没有太强烈的数据安全需求,其实没有必要再加一个python django或者java springboot来做服务中转,转发请求。现在其实有一个大前端的概念,前端开发模式下,能模拟服务端请求,也能解决get和post请求的跨域问题,而且前端也可以直接部署到服务器上,所以,我们只要有一个前端平台就可以了。我这里选用的前端框架是vue2,主要出于三点考虑,其一是简单易用上手快;其二是leaflet对它的集成比较好;其三是用的人比较多,有点问题上网搜,容易找到回

2021-06-22 16:47:51 1519 2

原创 GeoServer+Django(python3)+leaflet构建地图服务

做个最简单的,地图服务用GeoServer发布;Django做后端转发服务请求,leaflet做前端渲染并实现绘制功能。Python是python3.7,IDE是社区版pycharm。GeoServer如何发布地图,并测试数据位置见视频教程与图文教程:https://zhuanlan.zhihu.com/p/377826133本例代码见git,如果觉得有用,辛苦帮忙点个star:https://github.com/yimengyao13/geoserver_django_leaflet

2021-06-17 18:44:05 1925 3

原创 GeoServer进阶:要素的增删改查

本节主题:使用geoserver进行属性和几何要素的增删改查,预计学习时间10分钟。查找:按属性查找、按位置查找;删除:按fid删除;新增:新增几何要素;修改:修改要素属性、修改要素几何。如何使用GeoServer发布地图,并样例数据下载位置,参见:https://zhuanlan.zhihu.com/p/377826133视频教程见:一、查找记得要先启动geoserver。先预热一下,打开网址http://localhost:8080...

2021-06-17 18:13:26 3369 6

原创 GeoServer速成:安装启动,发布地图,加载QGIS

本节主题:Geoserver下载配置启动,发布地图,发布服务用QGIS查看。预计时间15分钟。练习数据位置:https://download.csdn.net/download/sinat_41310868/19362372视频教程见:https://www.bilibili.com/video/BV1Sg41137EZ/如果CSDN图片不清楚,请移步知乎:https://zhuanlan.zhihu.com/p/377826133一、下载配置启动访问http://geoserver

2021-06-17 17:29:22 1662 1

原创 geohash:多维空间点的编码方法和索引算法

可能是专业限制吧,相对于索引算法,我更偏向于geohash是一种编码方式,但编码也是为了方便检索嘛;就像Rtree也算是一种索引算法,但我还是更偏向于它是一种数据组织形式。我们了解geohash的原理就行,因为它毕竟是最常用的空间数据检索算法或编码方法。常用的空间数据库或程序包,很多都内嵌了geohash,例如postgis、jts、shapely等。Postgresql、MySQL等数据库,存储几何数据,用的也是geohash编码。所以不要太纠结,geohash到底是一个索引算法,还是编码方式,它

2021-05-25 22:51:07 1030 1

原创 QGIS转换shp/img文件坐标系(wgs84/gcj02/bd09)

QGIS转换shp/img文件坐标系(wgs84/gcj02/bd09)使用QGIS插件来实现,shp文件和图像文件的坐标系转换,支持wgs84、gcj02、bd09坐标系之间的转换,支持文件格式*.shp、*.jpeg、*.jpg、*.png、*.tif、*.tiff,推荐矢量数据使用shp格式,栅格数据使用png格式。一、安装插件见图:二、文件转换点击工具栏中china transform tool bar的图标。或者,菜单栏——插件——China Transfo..

2021-04-22 15:04:45 3980 2

原创 最小二乘法求解仿射变换参数

以影像数据为例:像素坐标(pixelX,pixelY)与实际地理坐标(geoX,geoY)之间的仿射变换函数为:geoX=a*pixelX+b*pixelY+cgeoY=d*pixelX+e*pixelY+f仿射能实现的效果:平移(Translation)、翻转(Flip)、旋转(Rotation)、缩放(Scale)、错切(Shear),大部分图像变换的效果,都能通过仿射来实现。如果知道一组像素坐标和实际地理坐标,可以通过最小二乘法,计算出abcdef六个参数。最小..

2021-04-16 10:56:35 2411

原创 GIS影像数据格式说明

最常用的影像数据格式应该是geotiff,除了一个tif文件外,还有一个tfw文件用以存放坐标信息。如:tiananmen.tiftiananmen.tfw组成一个geotiff文件。(如果数据比较复杂,可能还会有.aux文件存放投影信息,.ovr文件存放金字塔信息。)我们常用的一些真彩色卫星影像数据,就是geotiff格式的。首先,*.tif文件与一般的图像文件无异,可以转为一个数组矩阵,矩阵下标就是像素坐标,每个像素的值可能是RGB,也可能是CMYK,构成图片的色值;或者

2021-04-15 18:09:46 4728

原创 Leaflet实现测量功能

效果如下,标签中,In是前进方向的进入角度(方位角),out是出去角度(方位角),加号后面是当前完成的线段长度,黑色的当前完成的折线长度。代码如下:<!DOCTYPE html><html><head> <title>osm-测量</title> <meta charset="utf-8"> <style type="text/css"> body {...

2021-04-13 16:36:56 1215

原创 Leaflet加载高德瓦片到WGS84坐标系下

效果如下图,高德矢量底图、影像底图、OSM地图、天地图影像底图,坐标系都统一到WGS84坐标系下,复选框有注记图层和半透明底图图层。对图层进行叠加,能看出,纠正后的高德影像底图与OSM路网是套合的,说明瓦片中心点的平移,就能满足误差小于瓦片层级的像素分辨率,既误差在可见之内,那就够了。代码如下:<!DOCTYPE html><html><head> <title>高德-OSM-天地图瓦片对比</title&g...

2021-04-13 16:13:28 2680

原创 Leaflet加载百度瓦片到WGS84坐标系下

Leaflet加载百度瓦片到WGS84坐标系下百度技术真的很好,但还是忍不住吐槽,bd09坐标系、bd09mc投影、百度地图瓦片,真是诡异的存在。下面的代码能实现,将leaflet中加载的百度地图瓦片纠正到WGS84坐标系下。<!DOCTYPE html><html><head> <title>加载百度地图-WGS84坐标系</title> <meta charset="utf-8">...

2021-04-13 15:48:26 1488

原创 Leaflet加载百度地图

为了验证一下百度地图的影像、矢量、注记等瓦片数据是否是坐标统一的,写了一个简单的leaflet加载百度影像瓦片、矢量瓦片、注记瓦片的页面,叠加在一起,看了一下,果然坐标系是统一的。<!DOCTYPE html><html><head> <title>加载百度地图</title> <meta charset="utf-8"> <style type="text/css"&...

2021-04-13 10:30:51 2090

原创 百度地图瓦片切片规则

谷歌、高德、天地图、OSM、腾讯等的瓦片组织模式参见:https://blog.csdn.net/sinat_41310868/article/details/115561425这篇文章单独说一下百度地图的瓦片组织规则。相对于谷歌等地图的瓦片地图切片规则,百度的瓦片差异主要在如下两个方面:1.瓦片坐标系原点由东经180°,南纬85.05°,变为了东经0°,北纬0°,既赤道与格林尼治经线的交点。2.Y轴由向下,变为向上,既Y由南向北。原点也变了,坐标轴也转向了,百度地图这个瓦片切片模式,的

2021-04-11 23:32:11 3998 1

原创 WMTS服务及地图瓦片原理

WMTS,web map tile service,网络地图瓦片服务;TMS,tile map service,瓦片地图服务。名称虽然不一致,但指的都是地图瓦片服务,TMS形成更早,不过WMTS有官方OGC盖章认可。WMTS的目的是,更高效快速的加载渲染地图数据。如果海量的地图数据以矢量的形式传输到客户端,在客户端渲染,首先需要消耗大量的网络流量,其次对客户端的CPU也是很大的负荷。考虑到这些情况,WMTS提出预渲染图块的模式,在服务端将地图渲染好,并根据比例尺分割不同的栅格图块,根据客户端的请求,传输

2021-04-09 23:15:39 13769 3

原创 常用坐标系及投影:WGS84\GCJ02\CGCS2000\BD09\Pseudo-Mercator\UTM\BD09MC

把地图坐标系和相关投影的知识整理一下。一、简介先分类:WGS84\GCJ02\CGCS2000\BD09是地心坐标系,坐标表现形式为经度、纬度。Pseudo-Mercator\UTM\BD09MC是投影坐标系,坐标表现形式为x、y。WGS84\CGCS2000是原始坐标系,GCJ02\BD09是加密坐标系。目前,谷歌、OSM等地图使用的是WGS84坐标系和Pseudo-Mercator投影坐标系;高德、腾讯等地图使用的是GCJ02坐标系和Pseudo-Mercator投影坐标系;天地

2021-04-09 15:16:44 9911 1

原创 OSM和PBF数据格式说明

从openstreetmap上下载的数据都是*.osm后缀的,虽然后缀是osm,但它的格式其实是xml的,而pbf则是一种xml的压缩格式。一、osm格式复制于:http://wiki.citydatum.com/index.php/OpenStreetMap,这个网页对openstreetmap有一个整体介绍,包括openstreetmap的发展和现状等等,这里只摘抄跟数据格式有关的内容,并补充了点内容。1.数据格式OSM使用拓扑数据结构,包括四类核心要素(aka. data p.

2021-04-06 18:54:48 16253 1

原创 MIF/MID数据格式说明

Mif、mid、tab都是mapinfo定义的数据格式,虽然现在mapinfo已经很少人用了,但mif/mid格式由于其简单易读,还是很常见的数据交换格式。tab是由mif/mid生成的,除了在mapinfo软件中用外,几乎没啥用,只要知道mif和mid的数据格式定义就行了。以下复制于百度百科:https://baike.baidu.com/item/Mif/1416600(额,我把我觉得有问题的做了修改,关于专业名词解释,百度百科的确有问题。)MIF(Memory Initializatio.

2021-04-05 23:26:52 2725

原创 Shp数据格式说明

复制于维基百科:https://zh.wikipedia.org/wiki/Shapefile,因为的确经常会把数据格式的一些细节忘记,所以复制过来,以供后续有必要的时候,查缺补漏。一、简介ESRI Shapefile(shp),或简称shapefile,是美国环境系统研究所公司(ESRI)开发的空间数据开放格式。目前,该文件格式已经成为了地理信息软件界的开放标准,这表明ESRI公司在全球的地理信息系统市场的重要性。Shapefile也是重要的交换格式,能够在ESRI与其他公司的产品之间进行数据互操

2021-04-05 22:12:47 10193

原创 mapbox加载建筑物真型osm building

效果如下,按住ctrl键和鼠标左键,可以倾斜旋转地图。一、代码代码如下,把mapboxgl.accessToken替换成自己的key:<!DOCTYPE html><html><head><meta charset="utf-8" /><title>mapbox buildings</title><meta name="viewport" content="initial-scale=1.

2021-04-04 23:50:02 1091

原创 leaflet加载建筑物真型osm building

效果如下,按住alt键和鼠标左键,拖动鼠标,可以倾斜地图。一、代码代码如下:<html><head> <title>leaflet building</title> <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" /> <script src="https://unpkg.com...

2021-04-04 23:16:04 1262 1

原创 Leaflet渲染TopoJSON数据demo

非常简单,就是做一下topoJSON数据的渲染,用的是leaflet。代码如下:Html:<html><head> <title>leaflet TopoJSON</title> <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" /> <script src="https:...

2021-03-30 22:03:08 427

原创 geojson和topojson数据格式

要对地理要素数据进行传输和渲染,有两种数据格式必须要了解,基于json的地理要素扩展格式geojson,和基于geojson的拓扑扩展格式topojson。一、geojsonGeoJSON是一种基于JSON的地理空间数据交换格式,它定义了几种类型JSON对象以及它们组合在一起的方法,以表示有关地理要素、属性和它们的空间范围的数据。2015年,互联网工程任务组(IETF)与原始规范作者组建了一个GeoJSON工作组,一起规范GeoJSON标准。在2016年8月,推出了最新的GeoJSON数据格式标

2021-03-30 21:08:59 1106

原创 前端实现概化算法:Douglas-Peucker和Visvalingam-Whyatt

拿内蒙古自治区的省界线,做道格拉斯-普克算法的概化测试。前端用的是leaflet,大概效果如下,黑色的线是原始的省界线数据,红色的线是概化成101个节点后的效果,参数由url传递,nodes=101。通常情况,我们做数据概化,选用的参数也都是概化后的节点数量,而不是距离容差,这样计算效率和渲染效率会更高。全部代码如下:Leaflet_map.html:<!DOCTYPE html><html><head> <...

2021-03-29 00:42:22 1077 1

原创 常用的地图数据概化算法:Douglas-Peucker与Visvalingam-Whyatt

一、什么是概化简单说一下概化是什么,概化是地图综合中的一个概念,一个几何要素节点越多,渲染效率就会越低,渲染的流畅性就会越弱,为了加快渲染效率,提升渲染流畅性,就要稀释几何要素的节点,但又要保持几何要素的特征,这个过程就是概化,实现这个过程的算法就是概化算法。如下两张图,上图是概化前,下图是概化后,常见的开源地图前端js api在渲染几何面的时候,都使用了概化算法,据我观察,leaflet使用的应该是Douglas-Peucker算法,mapbox使用的应该是Visvalingam-Whyat...

2021-03-07 22:00:00 2834 2

原创 位置数据可视化工具kepler.gl

提供位置数据可视化的平台挺多的,先捡重点的,说下mapbox的kepler.gl,废话放在后面。除了mapbox生态,我最近也没有找到能把地图可视化做的更全面的平台了,支持专题图、支持三维、支持空间计算,支持位置可视化。All in。kepler.gl不仅是支持js api,更支持通过平台操作,无代码制作位置数据可视化地图。效果看上去很炫酷。会写代码的,直接引用js api就行,参考:https://github.com/keplergl/kepler.gl,https://docs.k

2021-02-25 22:53:09 3742 2

原创 三维地图数据资源汇总

做地图应用,数据很重要,看看从哪里能获取数据吧。要做三维地图应用,至少需要以下几种类型的数据:影像,DEM、BIM、CIM。一个一个来。一、影像各家地图,高德、百度、腾讯、天地图、谷歌、必应,都提供影像地图。直接访问访问网站,就能获取到地图瓦片。https://ditu.amap.com/?amapexchange=%2Fhttps://map.baidu.com/@12985426.375229215,4812340.450940835,13.18z/mapty...

2021-02-22 22:13:46 7108

原创 mapbox turf求缓冲区demo(代码)

Mapbox是一个大而全的开源地图前端平台,turf是mapbox的一个开源的地理空间计算脚本js库。Turf可以在前端实现缓冲区计算、拆分、合并、不规则三角网生成等功能。Turf官网:http://turfjs.org/Turf的github:https://github.com/Turfjs/turf/以下是用mapbox和turf实现一个查看缓冲区的页面。代码如下:<!DOCTYPE html><html><head>..

2021-02-21 21:56:37 1272

原创 Postgis根据经纬度坐标点和距离使用测地线创建buffer

题目有点绕,大概意思是这样的,我有一个经纬度坐标点为(116.470270,39.873813),我需要用这个坐标点创建一个半径为4000米的缓冲区。如果直接用st_buffer,它不会自动考虑到地球是曲面的,会用笛卡尔平面坐标系的场景,把经纬度坐标直接当成xy,来求buffer,纬度越高,buffer越瘦长,变形越严重,求出来的结果是不准的。(quad_segs=2,参数的意思是四分之一个圆有两条边。)select ST_AsText(ST_Buffer(ST_GeomFromText('P

2021-02-21 21:43:42 1279

原创 三维地图前端js api对比分析

三维前端渲染的技术已经很成熟了,可使用的商业、开源的js api也很多,很多时候,三维地形数据的展示效果、效率不尽如人意,原因和难点不在于前端,而在于后台数据的质量和数据的组织方式,还有硬件的配置。以下简单盘点一下市面上比较常用的三维地图前端js api吧。一、单项简述1.高德、百度、天地图目前国内的图商,高德、百度、腾讯都不支持实际意义上的三维渲染,支持的只是影像地球或2.5D。例如百度的卫星地球:http://lbsyun.baidu.com/jsdemo.htm#w...

2021-02-21 21:35:43 3025

原创 2.5维地图前端js api对比分析

汇总一下市面上能支持2.5D的地图相关前端。一、2D、2.5D、3D区分我们一般习惯于将地图分为2D、2.5D、3D,2.5D是介于二维和三维之间的一种假三维地图,说它不是三维吧,它还有高度概念,说它是三维吧,它还不太真实。二维地图长如下,完全平面:三维地图长如下,栩栩如生:2.5维长如下,建筑物轮廓是有呈现的,但它只是抽象模型,并不是真实还原的:2.5维最常见的是CIM模型,柱形图等。目前大部分开源的、商业的、平台的地图前端,都...

2021-02-21 00:59:13 3300

原创 二维地图前端js api对比分析

我一直认为,实践是检验真理的唯一标准。这段时间,分别用7个地图前端js api做了同一份专题图,so,可以通过实践,说出这7个前端各自的优劣和适用方向。这7个地图前端分别是:百度地图、腾讯地图、高德地图、天地图、mapbox、leaflet、openlayer,至于谷歌地图、必应地图、搜狗地图等,要么国内很少用,要么太小众,就没实践。一、教程列表专题图制作教程如下(包含代码):CSDN (没有效果图片,说图片违规,属于网站误杀):百度地图JS API制作专题图https:/...

2021-02-15 20:33:52 1415 2

原创 openlayer制作专题图

最近看了一份人民大学的报告,《中国城市政商关系排行榜2020》,https://new.qq.com/omn/20201230/20201230A0F3MY00.html。讲的是中国各个城市的政商关系健康指数,决定拿这份报告中的数据,来做一份html的专题图。数据是使用python脚本从腾讯地图webapi上获取的,前端页面使用的是高德地图瓦片。效果如下:一、数据获取参考腾讯web api:https://lbs.qq.com/service/webService/web...

2021-02-14 09:52:29 1210

原创 Leaflet制作专题图

最近看了一份人民大学的报告,《中国城市政商关系排行榜2020》,https://new.qq.com/omn/20201230/20201230A0F3MY00.html。讲的是中国各个城市的政商关系健康指数,决定拿这份报告中的数据,来做一份html的专题图。效果如下(腾讯瓦片):一、数据获取参考腾讯web api:https://lbs.qq.com/service/webService/webServiceGuide/webServiceDistrict脚本:...

2021-02-12 22:54:37 1143

geoserver练习数据.rar

geoserver练习数据.rar

2021-06-03

3天速成QGIS_第8讲_练习数据

3天速成QGIS_第8讲_练习数据

2021-05-11

3天速成QGIS_第7讲_练习数据

3天速成QGIS_第7讲_练习数据

2021-05-11

3天速成QGIS_第6讲_练习数据

3天速成QGIS_第6讲_练习数据

2021-05-11

3天速成QGIS_第5讲_练习数据

3天速成QGIS_第5讲_练习数据

2021-05-09

3天速成QGIS_第4讲_练习数据

3天速成QGIS_第4讲_练习数据

2021-05-09

3天速成QGIS_第3讲_练习数据

3天速成QGIS_第3讲_练习数据

2021-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除