マップ上で都市モデルとレイヤーを重ねる¶
PyDeckでの例¶
田町駅(港区)周辺のPLATEAUデータを読み込み¶
In [1]:
Copied!
from plateaukit import load_dataset
dataset = load_dataset("plateau-tokyo23ku-2022")
area = dataset.area_from_landmark("田町駅")
area.show()
from plateaukit import load_dataset
dataset = load_dataset("plateau-tokyo23ku-2022")
area = dataset.area_from_landmark("田町駅")
area.show()
Out[1]:
港区のオープンデータを読み込み¶
In [2]:
Copied!
import requests
from geopandas import GeoDataFrame
MINATO_AED_GEOJSON_URL = "https://opendata.city.minato.tokyo.jp/dataset/a67952bc-b318-4ab4-a797-187607c4ecf4/resource/3ccd1270-9ea7-481b-a97a-19ca80d22d05/download/minato_aed.json"
data = requests.get(MINATO_AED_GEOJSON_URL)
minato_aed_gdf = GeoDataFrame.from_features(data.json())
minato_aed_gdf
import requests
from geopandas import GeoDataFrame
MINATO_AED_GEOJSON_URL = "https://opendata.city.minato.tokyo.jp/dataset/a67952bc-b318-4ab4-a797-187607c4ecf4/resource/3ccd1270-9ea7-481b-a97a-19ca80d22d05/download/minato_aed.json"
data = requests.get(MINATO_AED_GEOJSON_URL)
minato_aed_gdf = GeoDataFrame.from_features(data.json())
minato_aed_gdf
Out[2]:
geometry | 施設名 | 所在地 | |
---|---|---|---|
0 | POINT Z (139.75556 35.65172 0.00000) | 障害保健福祉センター (ヒューマンぷらざ) | 東京都港区芝一丁目8番23号 |
1 | POINT Z (139.75275 35.65304 0.00000) | 区立公衆浴場「ふれあいの湯」 | 東京都港区芝二丁目2番18号 |
2 | POINT Z (139.75018 35.65135 0.00000) | 芝小学校 | 東京都港区芝二丁目21番3号 |
3 | POINT Z (139.75018 35.65135 0.00000) | 放課GO→クラブしば | 東京都港区芝二丁目21番3号 芝小学校内 |
4 | POINT Z (139.74808 35.65152 0.00000) | 芝高齢者在宅サービスセンター | 東京都港区芝三丁目24番5号 |
... | ... | ... | ... |
219 | POINT Z (139.77845 35.63336 0.00000) | 台場保育園 | 東京都港区台場一丁目3番6号 |
220 | POINT Z (139.77797 35.63067 0.00000) | 台場高齢者在宅サービスセンター | 東京都港区台場一丁目5番5号 |
221 | POINT Z (139.77437 35.62817 0.00000) | 子育てひろば あっぴぃ台場 | 東京都港区台場一丁目7番1号 アクアシティお台場 4階 |
222 | POINT Z (139.07125 35.23817 0.00000) | 大平台みなと荘 | 神奈川県足柄下郡箱根町大平台294番 |
223 | POINT Z (139.00762 35.27029 0.00000) | 箱根ニコニコ高原学園 | 神奈川県足柄下郡箱根町仙石原502番 |
224 rows × 3 columns
レイヤーを作成してマップに追加¶
In [3]:
Copied!
import pydeck
# 1. レイヤーを作成
layer = pydeck.Layer(
"ColumnLayer", # 円柱マーカーで表示
minato_aed_gdf, # データを指定
get_position="geometry.coordinates", # 座標を指定
radius=4, # 円柱の半径
get_elevation=400, # 高さ
get_fill_color=[255, 0, 0], # 色 (赤)
pickable=True, # マウスオーバー有効
auto_highlight=True, # マウスオーバーでハイライト
material=False, # スタイル変更
)
# 2. 先に読み込んだPLATEAU都市モデルの範囲を PyDeck のマップとして取得
r = area.pydeck()
# 3. 作成したレイヤーをマップに追加
r.layers = [layer] + r.layers
# 4. 表示
r
import pydeck
# 1. レイヤーを作成
layer = pydeck.Layer(
"ColumnLayer", # 円柱マーカーで表示
minato_aed_gdf, # データを指定
get_position="geometry.coordinates", # 座標を指定
radius=4, # 円柱の半径
get_elevation=400, # 高さ
get_fill_color=[255, 0, 0], # 色 (赤)
pickable=True, # マウスオーバー有効
auto_highlight=True, # マウスオーバーでハイライト
material=False, # スタイル変更
)
# 2. 先に読み込んだPLATEAU都市モデルの範囲を PyDeck のマップとして取得
r = area.pydeck()
# 3. 作成したレイヤーをマップに追加
r.layers = [layer] + r.layers
# 4. 表示
r
Out[3]: