node Shapfile.GeoJSON과 GiitHub을 js로만 확인하기 전에

6739 단어 Node.jsgeojson

개시하다


이 보도는 노드다.js에서 Shappefile을 GeoJSON으로 변환하는 프로그램 라이브러리shapefile의 사용 방법을 소개합니다.
shape file 라이브러리는 GDAL과 iconv 등 로컬 도서관에 의존하지 않는 pure javascript 라이브러리이기 때문에 가져오기가 간단합니다.그리고 GeoJSON의 속성을 너무 고민하지 않는 것도 장점이다.

1. 대본


아오모리(靑森)현의 시가지 마치(町)마을 행정구역 다각형의 쉐퍼파일을 지오제이슨(GeoJSON)으로 전환해 경계선을 검은색으로 설정하고 내용을 노란색으로 채워 지티허브(GiitHub)로 올려 보여준다.
행정구역 다각형의 착수는 http://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03.html부터 시작하세요.다음 예에서는 N03-11500102_GML.zip이라는 2015년판을 사용하세요.
GiitHub에서 지원하는 GeoJSON의 스타일 속성은 https://help.github.com/articles/mapping-geojson-files-on-github/부터 시작합니다.이번에 다각형을 처리하기 때문에fill과strike의 관련 속성을 사용하지만 포인트 데이터의 경우marker와 관련된 속성을 사용할 수 있습니다.

2. 설치


다음 순서에 따라 환경을 준비하다
$ unzip N03-150101_02_GML.zip
Archive:  N03-150101_02_GML.zip
   creating: N03-20150101_02_GML/
  inflating: N03-20150101_02_GML/KS-META-N03-15_02_150101.xml
  inflating: N03-20150101_02_GML/N03-15_02_150101.dbf
  inflating: N03-20150101_02_GML/N03-15_02_150101.prj
  inflating: N03-20150101_02_GML/N03-15_02_150101.shp
  inflating: N03-20150101_02_GML/N03-15_02_150101.shx
  inflating: N03-20150101_02_GML/N03-15_02_150101.xml

$ npm install frogcat/shapefile
[email protected] node_modules/shapefile
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])

$
  • 가져온 zip 파일 펼치기
  • npm로 shape file
  • 설치
    그리고 여기에 필자 포크frogcat/shapefile가 설치되어 있다.본가의 도서관이라면JIS 인코딩된 Shapefile을 제대로 처리할 수 없기 때문입니다.

    3. 인코딩


    다음 node.js 스크립트 만들기
    main.js
    "use strict";
    var shapefile = require("shapefile");
    shapefile.read(process.argv[2], "shift_jis", function(error, geojson) {
      geojson.features.forEach(function(feature) {
        feature.properties["stroke"] = "#000";
        feature.properties["stroke-opacity"] = 0.8;
        feature.properties["stroke-width"] = 2;
        feature.properties["fill"] = "#ff0";
        feature.properties["fill-opacity"] = 0.5;
      });
      console.log(JSON.stringify(geojson, null, ""));
    });
    
    shapefile.read(filename,encoding,callback) 지정된 인코딩을 통해 지정된 SHP를 분석하고 변환된 Geojoson을 호출 함수에 전달한다.
    호출 함수에서 Geojoson의 각feature에 대해 스케줄과 충전 속성을 설정합니다.
    마지막으로 console.log를 사용하여 지오존을 표준 출력으로 토합니다.

    4. 실행


    다음 순서에 따라 집행하다
    $ node main.js N03-20150101_02_GML/N03-15_02_150101.shp > out.geojson
    
    완성된 지오제이슨을 지스트에 올리면 이런 느낌이 든다.순조롭게 진행되었다.
  • Gist 여기서부터 https://gist.github.com/frogcat/84a0c4cbd71b7ff09c7945a2cfbced7e
  • 5. 요약


    npm의 shape file 라이브러리를 사용하여 Shappefile을 GeoJSON으로 변환하는 방법을 소개했다.GiitHub 사용자라면 node와 npm은 기본적으로 가져오기 때문에 shape 2 Geojoson의 환경을 간단하게 준비할 수 있습니다.
    집게http://turfjs.org/의 가공 등도 활용할 수 있다.
    다만, shape file 라이브러리는 아직 개발 중이기 때문에 부호화와 일부 지원하지 않는 기능 등의 문제가 있습니다.이 경우 GDAL을 사용하여 GeoJSON을 처리하는 것이 좋습니다.

    좋은 웹페이지 즐겨찾기