目前QGIS的主要作用并不在于做可视化,而是较为直观的反映研究区域的路网状况。
即QGIS里看见的道路、点位,在对应的node / link文件里都有记录,严格对应。
导入了QGIS的数据,一旦形成对应图层,除非修改原始csv文件,否则图层上的点、线位置就固定死了,不可增、删、移动。
进一步的,这说明了外源导入的node / link 文件与QGIS之间的关系:QGIS只是一个根据原始数据绘制路网的单向工具,我们只有查看路网的权限。
更进一步的,QGIS主要用于配合数据整理、建模、求解和调试阶段,提供未经渲染和美化的路网骨架,更多承担测试功能。
然而,实际上
最最理想的状态是双向的可编辑,例如在QGIS 里删除一个路段,对应link文件里的那一行也被剔除,这样,我们就可以基于原始路网,较为直观、迅速、批量地删除不需要的路段,形成本研究所需的路网。
但是,目前QGIS并不直接支持该功能,如上图
那么现在较为笨拙的路线就是,在QGIS 手动记录需要修改的点、线编号,再去node / link文件里修改,最后更新图层信息,或者将修改后的node / link文件重新导入。
另一个可能的技术路线是,将node / link文件作为原始输入数据,形成QGIS里的图层后,设法将这些图层与数据源剥离。由于QGIS 本身支持手动绘图,所以如果可以将批量导入的直接点线数据转化为存储在QGIS 内的手动绘制数据,经过编辑后,再将这些数据反向导出为修改后的node / link文件,哪怕是其余任意格式,只要没有跳出前述的路网存储逻辑,数据层的格式转换并不困难。
也就是说,点亮这几个按钮,就可以开始编辑路网了
先点这个选择按钮,把移动图片小手转换为选择框,然后只打开想要编辑的图层(node/link只开一个),全选要素,
然后这儿的复制就亮啦
新建临时图层,
上图要注意的细节是,要选择临时图层的性质,才能建立新图层。
另一个重要的细节是,临时图层,不能自动保存,需要单独存储后使用,不过本技术路线中对于研究范围的编辑是批量的、临时的,所以这个模式并不耽误事儿。
看下图,在图层管理界面选中临时图层,粘贴选项就亮了,也就是说,我们想要的点就来了。
这里需要注意的细节是,需要搞清楚对应的操作是在哪个图层上。
此时,如下图,我们想要的增、删、编辑权限都来了
下面的路网增删,不做最赘述,把不想要的都删掉就好。
最后就是存储和导出
我是以csv格式,导出了各点的经纬度信息,算是勉强可用
实际上,在建立临时图层的时候,如果在要素表建立时加入更多有效字段,那么导出的数据会更加丰富
但是因为我懒惰,加上本技术路线中点位最核心的数据是经纬度,没有更多的有效信息(这也是osm地图原始数据决定的)
导出的最最原始的数据大概是这样。
综上所述,本篇探索出一种QGIS从“数据源展示器”走向“路网编辑器”的方法,即此时node / link文件表征的道路网络可以在 QGIS里肉眼可见的批量编辑和导出,这在搭建路网选定研究区域的过程中可以节省不少麻烦。