移至主內容
首頁
SLAT Blogs

主導覽

  • 首頁
使用者帳號選單
  • 登入

導航連結

  1. 首頁
  2. 部落格
  3. 肥貓的異想世界

續1:用QGIS處理有斷點的資料的示範--以杭溫高速鐵路溫州北站附近為例(OpenStreetMap)

By 肥貓, 12 二月, 2026

續前篇,既然可以在Python用命令列讀取資料,還有各線段的經緯度座標,那我何不乾脆一起把修正後的座標帶進去?比起在QGIS點放個老半天也比較簡單。

我仔細看了一下圖資裡的內容,得知資料裡每一列貯存經緯度的欄位叫做

hangzhou_wenzhou_hs2.iloc[n].geometry.wkt

對我知道很冗長,而且放在很底層的位置。若你只找到上一層的話,你只會看到轉換過後的向量圖形,如:

因為這個geometry是一種特殊的物件。因此如果直覺地用修改普通資料的方式,想直接(暴力地)賦新值進去,就會踢到鐵板像下面這樣:

linestring_new='LINESTRING (120.6843718 28.0717455, 120.6851567 28.0717212, 120.6868004 28.0715734, 120.6881804 28.0714648, 120.6888603 28.0714379, 120.6934563 28.0714466, 120.6947348 28.0714651, 120.6953718 28.0714821, 120.6959299 28.0714969, 120.6980259 28.0715527, 120.7183476 28.0720932,120.7192258 28.0721166, 120.7206746 28.0721547)'
#錯誤的方式
hangzhou_wenzhou_hs2.iloc[0].geometry.wkt=linestring_new

因此爬文後知道,必須用shapely裡面一個叫做loads的語法,把我要的東西餵進去,才能修改裡面的資料。

成功餵進去之後,您就會發現before和after的兩個座標長得不太一樣

原始的線段圖和修改後的線段圖也有類似的效果:

Before

After

回到QGIS驗證,也能得到一樣的結果。

補充說明

在執行下面這段語法的時候,裡面的"n"必須對到您那列資料的index

hangzhou_wenzhou_hs2.loc[n,'geometry']=geom

例如你如果要改Index=9的那一列資料,那你的n就必須放9。要是數字沒放對,就會改到錯的列數,這是很常見的錯誤,因此特別提醒。


 

Blog tags
Python
QGIS
  • 肥貓的異想世界

部落格列表

管理日誌
LibreOffice 正體中文文件
肥貓的異想世界
軟體自由運動部落格
馬哥的大小事
My Libre World
社會派宅爸

最新文章

續1:用QGIS處理有斷點的資料的示範--以杭溫高速鐵路溫州北站附近為例(OpenStreetMap)
用QGIS處理有斷點的資料的示範--以杭溫高速鐵路溫州北站附近為例(OpenStreetMap)
用Python/QGIS篩選地理資料的簡短示範
我的 2025 回顧
LibreOffice x GSoC 2025 成果報告
LO Conf 2025 精彩回顧:奧地利軍隊的開源轉型之路
試用Python製作一支簡單的爬蟲程式
試用Python製作一支簡單的考試程式
Interview with Sandy Corzeta, Admin of Indonesia's Fediverse Instance 'misskey.id'
簡單處理在Ubuntu終端機啟動Miniconda的問題
在LibreOffice Calc利用Vlookup做精準搜尋
現在就加入 LibreOffice 團隊當全職開發者,處理 RTL/CTL/CJK 等事宜!
Powered by Drupal