mapboxgl-jupyter로 OpenStreetMap에 그리기

MapBox 계정을 만들지 않고 MapBoxGL을 사용하여지도에 그리기를 원할 때 사용
import os
import pandas as pd
from mapboxgl.utils import create_color_stops, df_to_geojson
from mapboxgl.viz import CircleViz

# ベースとなるレイヤの定義(OpenStreetMap)
style_json = '''
{
  "version": 8,
  "sources": {
    "osmSource": {
      "type": "raster",
        "tiles": [
          "https://a.tile.openstreetmap.org/{z}/{x}/{y}.png",
          "https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"
        ],
        "tileSize": 256
     }
  },
  "layers": [
    {
      "id": "osmLayer",
      "type": "raster",
      "source": "osmSource",
      "minzoom": 0,
      "maxzoom": 22
    }
  ]
}
'''
style = json.loads(style_json)

# サンプルデータDL -> DataFrame
data_url = 'https://raw.githubusercontent.com/mapbox/mapboxgl-jupyter/master/examples/data/points.csv'
df = pd.read_csv(data_url)

# DataFrame -> GeoJsonに直変換(簡略化のためファイルには起こさない)
df_geo = df_to_geojson(df,
                       properties=['Avg Medicare Payments', 'Avg Covered Charges', 'date'],
                       lat='lat', lon='lon', precision=3,
                      )

# 色設定
color_breaks = [0,10,100,1000,10000]
color_stops = create_color_stops(color_breaks, colors='YlGnBu')

# 描画
viz = CircleViz(df_geo,
                style=style,
                height='400px',
                color_property = "Avg Medicare Payments",
                color_stops = color_stops,
                center = (-95, 40),
                zoom = 3,
               )
viz.show()



완벽하지는 않지만 그리기에 성공
(Payments 값이 10000 밖에 그려지지 않은 파일에서 발생하지 않기 때문에 데이터 점수 때문입니까?)

참고


  • Mapbox GL with OSM Tiles
  • htps : // 기주 b. 코 m / Mapbo x / Mapbo xgl - py와 r # 토끼
  • 좋은 웹페이지 즐겨찾기