Python + staticmap으로 OpenStreetMap 또는 지리원지도의 이미지 가져 오기

개요


  • Python 라이브러리의 staticmap을 사용하여 OpenStreetMap 또는 지리원지도 이미지를 가져옵니다.

    이번 환경


  • macOS Catalina + Python 3.9.0 + staticmap 0.5.4

  • staticmap 설치



    staticmap 패키지를 설치합니다.
    $ pip install staticmap
    

    종속 라이브러리로 Pillow와 requests도 설치됩니다.

    staticmap 기본 지도 이미지 가져오기



    소스 코드.
    from staticmap import StaticMap
    
    # 地図オブジェクトを生成
    # 画像の横幅(ピクセル)と画像の縦幅(ピクセル)を指定
    map = StaticMap(800, 600)
    
    # 地図を描画した Pillow の PIL.Image オブジェクトを取得
    # ズームレベルと経度・緯度を指定
    image = map.render(zoom=17, center=[136.882090, 35.170560])
    
    # 地図画像を保存
    image.save('komoot.png')
    

    실행 결과.



    OpenStreetMap의 지도 이미지 가져오기



    소스 코드.
    from staticmap import StaticMap
    
    # 地図オブジェクトを生成
    # 画像の横幅と縦幅と OpenStreetMap 標準タイルレイヤーのタイルURLを指定
    map = StaticMap(800, 600, url_template='http://a.tile.openstreetmap.org/{z}/{x}/{y}.png')
    
    # 地図を描画した Pillow の PIL.Image オブジェクトを取得
    # ズームレベルと経度・緯度を指定
    image = map.render(zoom=17, center=[136.882090, 35.170560])
    
    # 地図画像を保存
    image.save('osm.png')
    

    실행 결과.



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



    소스 코드.
    from staticmap import StaticMap
    
    # 地図オブジェクトを生成
    # 画像の横幅と縦幅と国土地理院の地理院タイルURLを指定
    map = StaticMap(800, 600, url_template='https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png')
    
    # 地図を描画した Pillow の PIL.Image オブジェクトを取得
    # ズームレベルと経度・緯度のリストを指定
    image = map.render(zoom=14, center=[136.882090, 35.170560])
    
    # 地図画像を保存
    image.save('chiriin.png')
    

    실행 결과.



    참고 자료


  • GitHub - komoot/staticmap: A small, python-based library for creating map images with lines, markers and polygons.
  • Tiles - OpenStreetMap Wiki
  • Zoom levels - OpenStreetMap Wiki
  • Tile Usage Policy (OSMF Operations Working Group)
  • 지리원지도 | 지리원 타일에 대해
  • 지리원지도 | 지리원 타일 목록
  • Image Module — Pillow (PIL Fork) 8.0.1 documentation
  • 좋은 웹페이지 즐겨찾기