OpenStreetMap logo OpenStreetMap

Diary Entries in Chinese (Taiwan)

Recent diary entries

無國界醫生台灣辦公室配合他們全球的行動,3/17在台灣辦圖客松,可以說是台灣到目前為止,辦過最大的圖客爬之一。最初聽到人數規模嚇一跳,剛聽到嚇到了。很可惜這次並不是 OpenStreetMap 台灣社群主導,而是國際組織脈落下進行的活動,只能說社群力量還沒辦法找到足夠資源。

Joanna開場 ▲ 無國界醫生 Joanna 開場,介紹整場活動。

See full entry

Location: 天福里, 士林區, 臺北市, 11152, 臺灣

最近因為寶可夢玩家擁入開放街圖,不少玩家為了遊戲性而在開放街圖資料庫,新繪製現實存在但沒有標注的公園。但不少人畫了一些之後就沒繼續,很可惜不能成為長期的在地貢獻者,更慘的是往往把公園的點沾到鄰近的道路上面。

自動化找出上述公園構成點黏到變成種可行方式,初步想到的作法是:

  1. 用Overpass API搜出全台的公園
  2. 在JOSM選擇所有點,然後按下載點關照或上層關係
  3. 搜尋道路,然後與公園分離

實際執行,太耗運算資源了。因此調整方式:

  1. 用diff語法找出寶可夢玩家大量擁入之後,新增或變動的公園
  2. 在JOSM選擇所有點,然後按下載點關照或上層關係
  3. 搜尋道路,然後與公園分離
Location: 拉夫郎社, 地利村, 信義鄉, 南投縣, 臺灣

交通部的大眾運輸資料交換平台 PTX 相當好用,整合不同交通主管單位手台的資料,如台北市公共運輸處、新北市交通局、公路總局等。PTX 能輸出站牌和路線詳細資料,不過路線的線型資料卻是輸出為微軟 oData 的 LineString,不為一般程式設計師熟悉。

所幸昨日 (2/12) 臺北聚會時遇到小貓 MingTsay,跟他討論後,現場直接寫 code,將 LineString 轉為 GeoJson。相關記錄記在 Hackpad 上面,PHP 的實作部分在這邊

隔天看到出現 JavaScript 版本,果然 MingTsay 是天生適合吃這行飯的人,很快就能轉寫成其他語言版本。感謝他昨天花時間撰寫寫出的程式,解決公車路線線型顯示問題,能夠運用成果編輯 OpenStreetMap 公車路線時參照著看。

Location: 光華商場, 梅花里, 中正區, 華山, 臺北市, 100013, 臺灣
Location: 下內埔, 大安區, 公館, 臺北市, 106037, 臺灣

由於 COSCUP OpenStreetMap 軌是我籌畫,這篇比較多涉已部分。

OpenStreetMap 圖資可以離線運用,並且裝在從手機到 GPS 等裝置,因此在登山族群中 OpenStreetMap 成為實際用到的地圖資料。我請來 Rudy 談登山族群的地圖需求,談整合 OpenStreetMap 與內政部 DEM 資料的 Taiwan Topo Map,如何變成登山客愛用地圖。Rudy 談處理資料的部分一開始不是那麼好理解,不過講述和投影片的條理夠清楚。

感謝天氣炎熱的狀況,因此每間教室都塞滿人,也慶幸應該沒人有熱症發生狀況。吳政璋做了很少張投影片,其中一張有解釋成就的三角形,拿來套用他的鄉民風水師欲達成的目標。不過當然事情不會那麼順利,常常停留在最低層三角形。

原先答應來的洪朝貴老師不能來,因此請來國網的人代打。國網的 Thomas 介紹 Overpass Turbo,不過可惜我引言沒說到 Overpass Turbo 有多麼強大,很多屬於架站技術和參數設置的部分,觀眾不是那麼快進入狀況。

工作坊部分很可惜講解 OpenStreetMap 的部分太長了,實際動手時間不夠多。Kagami 著重在整個歷史部分的交待,但我會覺得動手作更重要,尤其有不少有經驗的 mapper 在場能解決問題。

在舉行工作坊的同一時間,第一天的 Lighting Talk 也在進行。我找來的 Littlebtc 竟然給我在會場睡覺,等到 Light Talk 的時間到了,他就去講了,不管 OSM 軌的死活。聽說回響還不錯呢。

我找來不少工作人員,欠了不少人情。不過因此確保不論是演講分享的部分,或是 OpenStreetMap 工作坊都順利進行,而且每個人工作量負擔都不會太大。

Location: 下內埔, 大安區, 公館, 臺北市, 106037, 臺灣

COSCUP 2017 年的 OSM 相關議程心得,這篇可能比較多吐糟點多了點,不喜勿入。有關自身有涉入的 OSM 軌演演講和工作坊部分之後會再敘述。

聽了 COSCUP 社群軌談 OpenStreetMap 社群經營,講者簡介 OSM 之外就是談社群經營經營談。回過頭想想為何這場演講內容變得偏抱怨性質,像是覺得我這麼認真結果為何讓我失落。我想我事情思索的太複雜了,要回到最基本的部分-目標怎麼定,社群成員投入得到什麼,而能參與什麼有趣的專案,可以選擇做到什麼程度?

社群是由一群志同道合的人組成,大家會運用 OpenStreetMap 都有各自的理由,目標也不盡相同。你的目標未必別人很在意,極端的狀況我在意的部分別人覺得不值一曝,甚至彼此目標會衝突。如果社群成員有彼此能合作的目標,自然就會討論何種重要得先做,力量集結起來,共同先完成該目標。

因此社群經營包含大量彼此溝通協調,說服以及交換的過程。儘管是資訊社群,仍跑不了經營過程大量人與人之間的接觸對話。

回到,OSM 甚至 GIS 技術對於平凡人求職來說並不是找到好工作的保證。社群辦活動都是 Go Dutch,並不是免錢可以吃吃喝喝飽餐一頓。社群也不是企業,也不會出現董事長訂目標,底下人答有領旨執行,幾個月後將成果彙報上去。訂目標的人在讓社群力量呈多頭馬車是常態,如何選擇則是社群成員個人衡量下,採用社群共識決處理。

有時候有人提倡要進行有趣的專案,能夠招募到一些人跟隨做出不錯的成果。號召到的追隨大小和人數就得看領頭人的魅力和功力了,而且往往領頭人得先自己做,如果自己不身先士卒,你也不能期待大家衝鋒陷陣。

會有不等式狀況出現,那可能代表提出的條件不夠,或者專案不夠有趣吸引人吧!

Location: 下內埔, 大安區, 公館, 臺北市, 106037, 臺灣

儘管跑出臺灣的避難所已經修正完畢,但還未解決跑錯縣市的避難場所問題,在 OpenStreetMap 的避難場所仍有錯誤處,因此用 OverPass 來找看看跑到其他縣市的點位。

先看看新北市的狀況。OverPass Turbo Link: http://overpass-turbo.eu/s/qSM

測出來結果只有兩個點,比例上來說出錯率還好。

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“emergency=assembly_point and "addr:full"!~"新北市" in "新北市"”
*/
[out:json][timeout:225];
// fetch area “新北市” to search in
{{geocodeArea:新北市}}->.searchArea;
// gather results
(
  // query part for: “emergency=assembly_point and "addr:full"!~/新北市/”
  node["emergency"="assembly_point"]["addr:full"!~"新北市"]["addr:city"!~"新北市"](area.searchArea);
  way["emergency"="assembly_point"]["addr:full"!~"新北市"]["addr:city"!~"新北市"](area.searchArea);
  relation["emergency"="assembly_point"]["addr:full"!~"新北市"]["addr:city"!~"新北市"](area.searchArea);
);
// print results
out body;
>;
out skel qt;
{{style:
  node, way, relation {
    text: name;
  }
}}
Location: 馬明潭, 文山區, 臺北市, 116080, 臺灣

瑞芳,在地人推薦的必吃美食給你瞧瞧吧! 首推這間是在瑞芳美食街內,經營近四十年的豐味肉羹 用溫體黑毛豬肉切作肉條還需加入獨門配方的醃料,再醃製數小時後才做與新鮮尚美的旗魚漿混打的動作, 做出肉塊,再搭配上比例適當、口味適中的羹湯,所有的細節都不容出錯,才能成就一碗好的肉羹。 我試問老闆為什們你會開這家店, 老版回答在六零年代末期, 礦業在瑞芳、猴峒一帶仍然熱鬧發展的時候, 來自三貂嶺、豐味肉羹第一代老闆開始了他在瑞芳的擺攤生活。 靠著從城市裡大飯店學回來的廚師手藝,他酌磨著「肉羹」在瑞芳的市場性, 初期也靠著礦工朋友們的支持,經過不斷的口味調整, 才有今天仍然深受歡迎的豐味肉羹。 談到礦業,老老闆和老闆娘有很深的記憶,他有親人是礦工;來到異地,地處交通要鎮,他的第一批老主顧也多是礦工, 他回憶礦工當時常常坐在他攤子前的長板凳上一邊吃肉羹、一邊等換車的空檔,大夥兒雖是隨意的聊著天,卻有著一樣的心聲。 人今天進了礦坑,不知還有沒有明天?平日一起等回家車的礦工伙伴,若是今日不見蹤跡,恐是凶多吉少。老老闆和老闆娘見多聽多,格外珍惜與老顧客相處的緣分,也發展出一套特別的「老主顧」哲學。 也因為他們珍惜與「老主顧」的緣分,對於外來客也有著寬容,常常有外來客拎著鎮上的龍鳳腿 、門口的胡椒餅上門來點一碗羹,老闆也本著「相逢自是有緣」的情分,沒有所謂的「外食不進門」的規定,熱誠地款待著。 作為一個小吃店的客人,能被老闆這般地重視著,不只是嘴裡吃到的、也是心理感受到的幸福

Location: 龍興里, 瑞芳區, 新北市, 臺灣

NCDR 手上有相當詳盡的災難時候避難場所資料,其中為數不少是學校。因此可以利用避難場的清單,挑出學校,然後在 OSM 上面對照是否已經繪製學校了,假若沒有則可以補充資料。NCDR 資料相比 GNS 中學校資料豐富太多了。

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“emergency=access_point and name~"國小|國中|高中"”
*/
[out:xml]/*fixed by auto repair*/[timeout:225];
// gather results
(
  // query part for: “emergency=assembly_point and name~/國小|國中/”
  node["emergency"="assembly_point"]["name"~"國小|國中|高中"]({{bbox}});
  way["emergency"="assembly_point"]["name"~"國小|國中|高中"]({{bbox}});
  relation["emergency"="assembly_point"]["name"~"國小|國中|高中"]({{bbox}});
  node["amenity"="school"]({{bbox}});
  way["amenity"="school"]({{bbox}});
  relation["amenity"="school"]({{bbox}});
);
// print results
out meta;/*fixed by auto repair*/
>;
out meta qt;/*fixed by auto repair*/

OverPass Turbo連結

Location: 洪厝, 林口區, 新北市, 24451, 臺灣

依據桃園市Open Data平台的Youbike站點資料集,與先前已經在OpenStreetMap上面的Youbike站點在JOSM整合後,再整批上傳上去OpenStreetMap上面。

現在臺北市、新北市、桃園市、臺中市、臺南市、高雄市都有把它們的公共自行車站點資料集放到Open Data平台。而比較麻煩的是新竹,在國發會的Open Data平台標示依政府開放資料授權條款釋出,但連結指向新竹市Open Data平台,新竹市用客製化的授權條款,看來不是那麼合OpenStreetMap的授權條款。現在新竹的站點已經陸陸續續標示上去了。

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“amenity=bicycle_rental in "新竹市"”
*/
[out:json][timeout:25];
// fetch area “新竹市” to search in
{{geocodeArea:新竹市}}->.searchArea;
// gather results
(
  // query part for: “amenity=bicycle_rental”
  node["amenity"="bicycle_rental"]["operator"="新竹市政府"](area.searchArea);
  way["amenity"="bicycle_rental"]["operator"="新竹市政府"](area.searchArea);
  relation["amenity"="bicycle_rental"]["operator"="新竹市政府"](area.searchArea);
);
// print results
out body;
>;
out skel qt;
{{style:
	node,way,relation {
  		text:name;
}
}}

OverPass檢索連結

Location: 文明里, 桃園區, 桃園市, 330, 臺灣

想不到還可以有Part II

這次是name欄位中有「建设中」,因此用Overpass搜尋找到144個站標示為營運中車站,實際上是還在蓋。

OverPass檢索

OverPass檢索語言:

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“railway=station and name~"建设中"”
*/
[out:xml]/*fixed by auto repair*/[timeout:225];
// gather results
(
  // query part for: “railway=station and name~/在建/”
  node["railway"="station"]["name"~"建设中"]({{bbox}});
  way["railway"="station"]["name"~"建设中"]({{bbox}});
  relation["railway"="station"]["name"~"建设中"]({{bbox}});
);
// print results
out meta;/*fixed by auto repair*/
>;
out meta qt;/*fixed by auto repair*/

變更集

Location: 龙归街道, 白云区, 广州市, 广东省, 中国

有點受不了在施工的車站標示與營運中車站一樣,因此運用Overpass+Level0 動手修改,待完工後再改就可以了。

/*
This has been generated by the overpass-turbo wizard.
The original search was:
“railway=station and name~"在建"”
*/
[out:xml]/*fixed by auto repair*/[timeout:225];
// gather results
(
  // query part for: “railway=station and name~/在建/”
  node["railway"="station"]["name"~"在建"]({{bbox}});
  way["railway"="station"]["name"~"在建"]({{bbox}});
  relation["railway"="station"]["name"~"在建"]({{bbox}});
);
// print results
out meta;/*fixed by auto repair*/
>;
out meta qt;/*fixed by auto repair*/

話說先前跟一位德國畫中國的mapper溝通,跟他提life cycle概念,但他重視render,所以理解我的說法,但沒被說服。

Location: 长岭街道, 黄埔区, 广州市, 广东省, 中国

這次去馬尼拉,參與 State of the Map Asia 其實是很倉促的決定,看到有 scholarship 可申請,就想說談談臺灣社群狀況,順便會會一些相關公司、社群的人。這次決定並沒有讓我失望,除了見到朋友 Wular,還碰到 Mapbox data team印度團隊的人,以及久聞大名的 Manning。

Manning Opening

Mapbox 的團隊最近在幫忙對齊臺灣的道路網路,採用新出爐的 Mapbox 衛星影像,還有 Strava GPS 軌跡。先前我只有跟 Manning 和 Mapbox data team 線上打過交道而已,見到面感謝他們的貢獻,發聲說說臺灣的狀況,能夠配合遠端鍵盤繪圖的人做些什麼事情。

這是我的演講Slide,由於時間有限,刪減不少內容。在這邊大略敘述我講了什麼,留下文字記錄。

See full entry

Location: UP Campus, Diliman, 4th District, 计顺市, Eastern Manila District, Metro Manila, 1101, 菲律宾