QGIS [坐标方位][最短距离]自动生成
1. 坐标自动生成
在属性表中添加字段 (字段计算器)
表达式如下:
concat(to_string(round($x, 2)), ',', to_string(round($y, 2)))
2. 多点到元素的最短距离 及 相对元素的方位
https://i2.343700.xyz/202407191801982.avif



CASE
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 22.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 67.5 THEN '西南'
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 67.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 112.5 THEN '西'
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 112.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 157.5 THEN '西北'
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 157.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 202.5 THEN '北'
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 202.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 247.5 THEN '东北'
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 247.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 292.5 THEN '东'
WHEN degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) > 292.5 AND degrees ( azimuth ( make_point (x(start_point($geometry)), y(start_point($geometry))), make_point (x(end_point($geometry)), y(end_point($geometry))))) <= 337.5 THEN '东南'
ELSE '南'
END
