Code Monkey home page Code Monkey logo

taipei-house-age-map's Introduction

台北市屋齡地圖

利用台北市政府開放的建築使用執照資料,製作台北市屋齡地圖

製作說明

製作台北市屋齡地圖的過程中,使用了R、Node、QGIS、Command Line等工具,以下根據製作過程先後,說明repo內檔案的功能:

  • 使用執照:從台北市開放資料網站下載的原始資料
  • taipei_build_license_xml.R:由於原始資料是不容易處理的XML檔,先使用R將不同年份的XML資料整合成一個檔案,並將整理好的結果輸出成台北市建築使用執照.csv
  • 台北市建築使用執照.csv:taipei_build_license_xml.R的產出。
  • building_geocode.R:讀取台北市建築使用執照.csv,進行近一步的處理,包括地址轉經緯度、計算屋齡、舊地址轉新地址等。整理好的結果輸出成台北市建築年份加經緯度.csv台北市建築年份加經緯度欄位較少版.csv
  • geocode.R:專門為了地址轉經緯度寫的爬蟲程式,使用國土規劃地理資訊圖台的全國門牌地址搜尋功能。
  • twd_to_wgs.R:由於geocode.R產生的經緯度為TWD97格式,需要轉換成WGS84格式,才能與openstreetmap的地圖做搭配,因此寫了twd_to_wgs.R進行轉換,轉換公式主要參考網路上TWD97轉WGS84的文章。
  • old_new_addr.R:專門為舊地址轉新地址寫的爬蟲程式,使用台北市政府民政局門牌整合檢索系統的門牌變動查詢功能。
  • geoproject.ssh:我將台北市建築年份加經緯度欄位較少版.csv丟到QGIS,將csv轉成shp之後,用Command Line的指令(主要使用Mike Bostock的NPM moduleshapefile和d3),把shp轉成geojson,並預先做好做好座標轉換,減少瀏覽器的計算負荷,產出的結果為tp-projection.json
  • tp-projection.json:geoproject.ssh的產出結果
  • split_json.js:由於一口氣繪製全台北市的建築,對瀏覽器的負擔還是太高,因此我用Nodejs讀取tp-projection.json,將單一檔案根據行政區切成12個檔案,放到data資料夾。
  • data:存放實際用來畫地圖的12個行政區建築屋齡資料,內有12個geojson檔。
  • index.html:網頁呈現的檔案,內有地圖的html、css和javascript。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.