如何生成类似L7中的城市海量(笑)fake点

每个用过L7的小伙伴应该都demo里那些又酷又炫的城市点印象深刻吧,某个机缘巧合,我也需要这样的一组数据,但是,我只能手动在地图上刨到这个地方的一个卫星图。。。这个和海量点的差距,十万八千里好么【掀桌子】。。。。
没有GIS的小伙伴,没有数据,没有钱,但是要效果。。。好吧,自己动手。
下面是菜单。

原料

  1. Qgis软件(别问为什么不是ArcGIS,免费,支持mac)
  2. 一个建筑的经纬度点(你至少得看的到你需要的东西,参考)
  3. 高德地图(L7也是阿里的,同系的话免去坐标转换,QGis中所见及所得)

步骤

此处省略安装Qgis的所有过程。此时的我还并不会使用Qgis,所以我尽量写的详细,争取大家看教程的时候,按照步骤来就能做。

  1. QGis中创建一个工程,注意工程的坐标系选择(CGC2000 4480),选择不对的情况,会导致标记点坐标就偏到天上了
    如何生成类似L7中的城市海量(笑)fake点_第1张图片
  2. 你需要一个底图(这里可以直接选择高德矢量图,里面有各种元素的矢量图,例如道路,河流,建筑,绿地等)
    如何生成类似L7中的城市海量(笑)fake点_第2张图片

(1)右键XYZ Tiles——>(2)新建链接——>(3)输入URL
如何生成类似L7中的城市海量(笑)fake点_第3张图片
如何生成类似L7中的城市海量(笑)fake点_第4张图片

URL请自行百度,我这填的是(http:////webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z})
此处贴出链接可以获取到需要的其他的底图的URL,比如路网什么的,里面有很多,按需自取
https://blog.csdn.net/lx22722...

我这里使用的是高德卫星图,为什么呢?因为矢量图里出于法规或者保密的要求,可能部分区域就没有东西,卫星图里元素齐全,就是比较糊,我们需要自己去获取它的轮廓,经尝试,高德最大的缩放比例在1:6650。如果还是很糊的话,建议使用天地图(免费底图中的佼佼者,卫星图里最高清的有木有,但是由于坐标有偏移,需要程序或者手动纠偏【捂嘴笑,其实就是拖到正确的位置)

  1. 获取建筑的肌理
    这一步基本决定了点的效果,建筑轮廓越精细,效果越好。如果想要的点更加精细,则需要提取建筑物轮廓更加清晰,推荐大家去找一些点云数据,没有的话可参考下面链接的文章,有很多种方案可以选择,比如mapflow啊,商汤啊,V2R等。https://blog.csdn.net/m0_3725...
    http://www.megomap.com/index....
    作者也提供了很多的方法。但是,没钱没数据也不会使用软件,数据区域还比较隐秘!!这里有一个粗糙的提取办法。Magic wang插件,穷人的福音
    使用的方法参考著名学习网站B站视频(7min不算长),个人感觉和PS中的魔棒工具差不多
    https://www.bilibili.com/vide...
    如何生成类似L7中的城市海量(笑)fake点_第5张图片

获取到的图层大概是上图这样的。

  1. 在这个平面中打上很多的点
    如何生成类似L7中的城市海量(笑)fake点_第6张图片
    里面有一些配置参数,比如打点的图层选择,点的密度间隔等等,可以一一探索,选择适合自己项目的情况。
    打上点之后,我们还可以去看看点的属性,参考链接中的方法,参考入下链接的办法:https://blog.csdn.net/u012655...

关键步骤图如下
如何生成类似L7中的城市海量(笑)fake点_第7张图片

  1. 导出GeoJson数据
    选择一个你需要导出的图层,右键,点击属性图层的属性编辑,通常这样的点集只有id这一个属性,导出的时候也没有我们想要的坐标,这时候新增一个x和y列,如果想要点基于该坐标系的值,在x列输入表达式$x,y列输入表达式$y,点击更新,然后所有点的x,y就有值了。
    如何生成类似L7中的城市海量(笑)fake点_第8张图片
    如何生成类似L7中的城市海量(笑)fake点_第9张图片
    如果还有别的属性需要补充,只需要新增相应的列,赋值即可(有点儿像excel的用法)
    点击保存,关闭属性表后。回到图层,右键导出为geojson的格式(前端需要!!)

6.在L7中加载你生成的geojosn数据, 基于高德的底图,查看点集效果。

补充

  1. Q:随机点乱七八糟不好看怎么办
    (1)使用创建有序点工具,然后与指定图层做交集或裁剪,生成一组新的点。
    (2)使用网格工具(适用于想要点有序,且绘图颜色的权重属性也需要自己造的情况)
    【2/1】在图层上的多边形内生成一堆的随机点。(工具中生成随机点)
    【2/2】工具箱中,创建一个网格(生成渔网图),网格的密度依据你的坐标系来决定
    【2/3】统计网格内的点的数目,选择界面【矢量】中的【分析工具】,点击【统计多边形中的 数量】工具
    【2/4】生成计数图层(每个网格中的随机点的数目)
    【2/5】生成网格的质心点集(工具中的质心工具)
    【2/6】裁剪质心点图层,使之和边界相符合
    【2/7】导出数据(完事!)
    参考链接https://zhuanlan.zhihu.com/p/...
    (3)turfJS
    使用turf.isobands创建不同梯度的Multipolygon
  2. Q:高德卫星实在是太糊了,我用了别的底图,怎么手动纠偏?
    (1)图层切换为编辑模式
    (2)选择顶点工具,选中所有的点
    (3)点击其中一个基准点,然后移动,图层中的点都会随之移动,完成纠偏
    参考链接https://blog.csdn.net/dq5211/...
  3. Q:我还是自己画吧,怎么创建多边形图层?
    QGis 创建一个多边形,画完右键+输入一个id才会真正生成一个多边形,或者是画好了之后control+点击

以上,这里的操作只针对一些对数据准确度要求不高做演示demo的情况。今年开始认真出一些有意思的教程,好的开头吧,如果有不对的,更好的等等,欢迎小伙伴批评指正~比心❤️

你可能感兴趣的:(前端)