鐵人賽Day 7-常見的GIS資料格式-轉換篇

web
  1. 1. > 本文是參加鐵人賽的文章,同步發表於 “2018鐵人賽-30天打造我的WebGIS系列”
    1. 1.1. geojson資料轉換工具:
    2. 1.2. shapefile資料轉換工具:
    3. 1.3. kml資料轉換工具:
    4. 1.4. 後記

昨天介紹了geojson、shapefile、kml基本概念,今天我們簡單用npm上面的工具寫個簡單轉換,有關node.js的安裝及使用請各位參考其他線上教學資源,這邊我們就直接使用囉。

> 本文是參加鐵人賽的文章,同步發表於 “2018鐵人賽-30天打造我的WebGIS系列”

geojson資料轉換工具:

這邊使用npm上的geojson2,直接安裝:

1
npm install geojson2

建立test.js,寫一個geojson2.kml的轉換

1
2
3
4
var geojson2 = require('geojson2');
geojson2.kml('test.geojson', './out.kml', function (err) {
console.log("finish")
})

執行
node test.js

結果out.kml

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Folder><name>OGRGeoJSON</name>
<Placemark>
<name>Dinagat Islands</name>
<Point><coordinates>125.6,10.1</coordinates></Point>
</Placemark>
</Folder>
</Document></kml>

geojson2這個模組,包含了四個子功能

  • geojson2csv
  • geojson2shape
  • geojson2kml
  • geojson2topojson

有需要可以自行測試!

其中官方文件提到,若要輸出kml and shp. 須先安裝gdal
Run ‘brew install gdal’ on OSX,
or ‘sudo apt-get install gdal’ on linux.


shapefile資料轉換工具:

這邊一樣使用NPM上的shp2json

一樣須先安裝gdal
Run ‘brew install gdal’ on OSX,
or ‘sudo apt-get install gdal’ on linux.

安裝
npm install shp2json.

建立test.js

1
2
3
var toJSON = require('shp2json');
var result = toJSON.fromShpFile('out.shp').pipe(process.stdout);
console.log(result);

執行
node test.js

結果

1
2
3
4
5
6
7
8
9
10
11
{
"type": "FeatureCollection",
"features":
[
{
"type": "Feature",
"properties": { "name": "Dinagat Islands" },
"geometry": { "type": "Point", "coordinates": [125.6, 10.1] }
}
]
}


kml資料轉換工具:

使用NPM上的kml-stream

安裝kml-stream
npm install kml-stream

test.js

1
2
3
4
5
var fs = require('fs');
var KmlStream = require("kml-stream");
var data = fs.createReadStream('./out.kml').pipe(new KmlStream()).on('data', function (d) {
console.log(d);
});

執行
node test.js

結果

1
2
3
4
5
{
type: 'Feature',
properties: { },
geometry: { type: 'Point', coordinates: [125.6, 10.1] }
}

後記

基本上只要掌握了這三類資料互轉,大多數webgis線上資源的格式應該幾乎可以掌握了,後續如果真的有其他GIS資料轉換及讀取的問題,建議可進一步研究專業的GIS軟體:QGIS,由於本次鐵人賽的目標是快速上手webgis,比較可惜無法操作太多QGIS,QGIS無論在轉檔、分析及處理等功能都很強大,可以自行試看看唷。