QGIS将OSM道路数据可视化

1. 首先,打开QGIS软件并加载OSM道路数据。可以通过点击“Layer”菜单栏中的“Add Layer”选项来加载数据,或者使用快捷键“Ctrl+Shift+T”。

2. 接着,选择要按照属性分类的道路数据。可以通过点击图层列表中的道路图层,或者选择图层列表中的道路图层并右键单击来选择“Properties”选项。

3. 在“Properties”对话框的左侧菜单栏中,选择“Symbology”选项卡。在这里,您可以为道路数据选择符号,例如线条颜色、宽度和样式。

4. 选择“Categorized”符号类型,并选择您要按照其属性分类的属性字段。例如,您可以选择“highway”属性字段,这将使道路按照其类型进行分类,例如主干道、次干道、小路等等。

5. 点击“Classify”按钮,这将基于您选择的属性字段为道路数据创建不同的分类。您可以为每个分类选择不同的线条颜色、宽度和样式。

6. 点击“OK”按钮以应用符号设置,并将道路数据按照其属性分类进行可视化。

7. 如果您想要进一步自定义符号设置,可以返回到“Properties”对话框中的“Symbology”选项卡,并更改符号设置。

# 导入必要的库
from qgis.core import (
    QgsApplication,
    QgsVectorLayer,
    QgsCategorizedSymbolRenderer,
    QgsSymbol,
    QgsRendererCategory,
    QgsField,
    QgsVectorFileWriter
)

# 初始化QGIS应用程序
qgs = QgsApplication([], False)
qgs.initQgis()

# 加载OSM道路数据
layer_path = 'path/to/your/OSM/road/data.shp'
layer_name = 'OSM Road Data'
layer = QgsVectorLayer(layer_path, layer_name, 'ogr')

# 按照属性字段分类
category_field = 'highway'
categories = []
for category_value in layer.uniqueValues(layer.fields().indexFromName(category_field)):
    symbol = QgsSymbol.defaultSymbol(layer.geometryType())
    symbol.setColor(QColor('red')) # 更改颜色属性
    symbol.setWidth(0.5) # 更改线条宽度
    category = QgsRendererCategory(category_value, symbol, str(category_value))
    categories.append(category)

# 创建符号渲染器
renderer = QgsCategorizedSymbolRenderer(category_field, categories)

# 应用符号渲染器并更新图层风格
layer.setRenderer(renderer)
layer.triggerRepaint()

# 保存渲染后的图层
output_path = 'path/to/your/output/file.shp'
QgsVectorFileWriter.writeAsVectorFormat(layer, output_path, 'utf-8', layer.crs(), 'ESRI Shapefile')

# 退出QGIS应用程序
qgs.exitQgis()
这段代码将按照“highway”属性字段分类OSM道路数据,并为每个分类设置红色颜色和0.5宽度的线条。您可以根据需要更改这些符号设置。最后,代码将保存渲染后的图层到指定的输出路径中。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

认真学GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值