Node.js + osm-static-maps에서 OpenStreetMap 또는 지리원지도 이미지 얻기

개요


  • Node.js 라이브러리의 osm-static-maps를 사용하여 OpenStreetMap 또는 지리원지도 이미지를 가져옵니다.

    이번 환경


  • macOS Catalina + Node.js v14.9.0

  • osm-static-maps 설치



    osm-static-maps 패키지를 설치합니다.
    $ npm install osm-static-maps
    

    OpenStreetMap의지도 이미지 얻기



    소스 코드.
    'use strict'
    
    const osmsm = require('osm-static-maps');
    const fs = require('fs');
    
    (async () => {
    
      try {
    
        // 地図画像の Buffer オブジェクトを取得
        const imageBinaryBuffer = await osmsm({
          width:  800, // 画像の横幅(ピクセル)
          height: 600, // 画像の縦幅(ピクセル)
          center: '136.882090,35.170560', // 経度,緯度
          zoom: 20, // ズームレベル
          type: 'png' // PNG 画像フォーマット
        })
    
        // 地図画像データをファイルに出力
        await fs.promises.writeFile('osm.png', imageBinaryBuffer)
        process.exit(0);
    
      } catch (err) {
        console.error(err);
        process.exit(1);
      }
    })();
    

    실행 결과.



    지리원 지도의 지도 이미지 가져오기



    소스 코드.
    'use strict'
    
    const osmsm = require('osm-static-maps');
    const fs = require('fs');
    
    (async () => {
    
      try {
        // 国土地理院の地理院タイルを使う
        const tileserverUrl = 'https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png'
        const attribution = 'osm-static-maps / 出典: 地理院タイル'
    
        // 地図画像の Buffer オブジェクトを取得
        const imageBinaryBuffer = await osmsm({
          tileserverUrl: tileserverUrl,
          attribution: attribution,
          width:  800, // 画像の横幅(ピクセル)
          height: 600, // 画像の縦幅(ピクセル)
          center: '136.882090,35.170560', // 経度,緯度
          zoom: 14, // ズームレベル
          type: 'png' // PNG 画像フォーマット
        })
    
        // 地図画像データをファイルに出力
        await fs.promises.writeFile('chiriin.png', imageBinaryBuffer)
        process.exit(0);
    
      } catch (err) {
        console.error(err);
        process.exit(1);
      }
    })();
    

    실행 결과.



    참고 자료


  • GitHub - jperelli/osm-static-maps: Openstreetmap static maps is a nodejs lib, CLI and server open source inspired on google static map service
  • 정적 맵 이미지 - OpenStreetMap Wiki
  • Tile servers - OpenStreetMap Wiki
  • Zoom levels - OpenStreetMap Wiki
  • Tile Usage Policy (OSMF Operations Working Group)
  • 지리원지도 | 지리원 타일에 대해
  • 지리원지도 | 지리원 타일 목록
  • 파일 시스템 | Node.js v14.9.0 Documentation
  • 좋은 웹페이지 즐겨찾기