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

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
