こんにちは
Selected polyline で既存のポリラインデータを参照し て確認してみました。
プロジェクトの参照系(ウィンドウの右下に表示されている EPSG:xxxx )を変更したところ
その参照系における距離で表示されるようです。
つまり平面直角座標系で表示しているときは(同一系に収まるレベルであれば、若干の誤差はあるものの、
実用上問題ない程度)正確な距離となりますし、経緯度座標系( WGS84 / JGD2000 / JGD2011 等)の
ときは単位が「度」の距離 になります。
この仕様は好意的にとれば、作成されたデータの参照系がなんであろうと(たとえば GPS ログ等)
現在表示しているプロジェクト参照系における距離で表示することができます。
QGIS 式で $length であれば実際の距離、 length($geometry) であればレイヤ(ファイル)に
保存された値を(平面上とみなし)計算した距離となりますが、表示されているプロジェクト参照系における
距離は下記で計算できます。(フィールド演算機やラベルなどで使えます)
length(transform($geometry, layer_property(@layer, 'crs'), @project_crs))
さて。
約300mであるはずのところ約350mになったということですが、おそらくプロジェクト参照系が
メルカトル図法になっていると思われます。
メルカトル図法は、図法であるため紙に印刷すれば(紙面上)単位はセンチメートルだったり、
画像ファイル化すれば単位はピクセルだったりしますが、 GIS では赤道の距離が地球と一致するように
横幅を約40075016.686メートルとしています。
しかしメルカトル図法は基準線(赤道)から離れるほど、引き伸ばされるという性質があります。
そのため、単位としては「メートル 」であるにも関わらず、実際の距離とは異なる値になります。
緯度を φ としたとき(真球とみなすと) 1/cosφ だけ引き伸ばされます。
今回の場合、北緯30度付近なので鹿児島付近でしょうか?