원클릭으로
static-geojson-map
z.yuiseki.net/static/geojson/ の静的 GeoJSON ファイルをダウンロードして MapLibre レイヤーとして表示する。USGS地震・武力紛争・プレートテクトニクス・海底ケーブルなどのグローバルデータセットに使う。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
z.yuiseki.net/static/geojson/ の静的 GeoJSON ファイルをダウンロードして MapLibre レイヤーとして表示する。USGS地震・武力紛争・プレートテクトニクス・海底ケーブルなどのグローバルデータセットに使う。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Apply MapLibre style spec from legacy-work-spec.json to public/layers/config.json. Handles both inline JSON (mode=inline) and URL reference (mode=url) to tile.yuiseki.net. Do NOT read or modify src/App.tsx.
OpenStreetMapのデータを使って高品質な地図を生成する。ユーザーの日本語プロンプトを構造化→Overpass QL生成→データ取得→MapLibre可視化まで5ステップで実行する。
Valhalla ルーティング API を使って出発地→目的地のルートを GeoJSON LineString に変換し MapLibre で可視化する。「AからBまで歩く/車で行く/自転車で行く」ルート表示リクエストに使う。
Reference-only: MapLibre GL JS is installed via npm as maplibre-gl v5 and react-map-gl v8. Additional GIS libs: pmtiles, osmtogeojson, swr, @turf/turf. NOT a callable tool.
Create map artifacts in NEREID Vite+React workspace by editing src/App.tsx.
Use osmable CLI for deterministic OSM workflows (geocode, reverse, aoi, poi, route, isochrone). Trigger for OSM map requests such as parks/shops/stations and Nominatim/Overpass retrieval.
| name | static-geojson-map |
| description | z.yuiseki.net/static/geojson/ の静的 GeoJSON ファイルをダウンロードして MapLibre レイヤーとして表示する。USGS地震・武力紛争・プレートテクトニクス・海底ケーブルなどのグローバルデータセットに使う。 |
| ファイル | URL | 内容 | フィーチャ型 |
|---|---|---|---|
| usgs_m45_month.geojson | https://z.yuiseki.net/static/geojson/usgs_m45_month.geojson | 最新30日 M4.5以上地震 (USGS) | Point |
| conflicts.json | https://z.yuiseki.net/static/geojson/conflicts.json | 世界の武力紛争イベント | Point/Polygon |
| tectonicplates_GeoJSON_PB2002_boundaries.json | https://z.yuiseki.net/static/geojson/tectonicplates_GeoJSON_PB2002_boundaries.json | プレートテクトニクス境界線 | LineString |
| cable-geo.json | https://z.yuiseki.net/static/geojson/cable-geo.json | 世界の海底ケーブル | LineString |
python3 -c "
import urllib.request, json, os
os.makedirs('public/layers', exist_ok=True)
# legacy-work-spec.json から URL を取得
spec = json.load(open('legacy-work-spec.json'))
files = spec.get('staticFiles', []) # [{url, layerId, name, emoji, color, outlineColor}]
for f in files:
url = f['url']
layer_id = f['layerId']
out_path = f'public/layers/{layer_id}.geojson'
print(f'Downloading {url} -> {out_path}')
req = urllib.request.Request(url, headers={'User-Agent': 'NereidMap/1.0'})
with urllib.request.urlopen(req, timeout=30) as r:
data = r.read()
with open(out_path, 'wb') as out:
out.write(data)
fc = json.loads(data)
print(f' {len(fc.get(\"features\", []))} features')
"
python3 -c "
import json, os
spec = json.load(open('legacy-work-spec.json'))
title = spec.get('title', 'Global Data Map')
render = spec.get('render', {})
vp = render.get('viewport', {'center': [0, 20], 'zoom': 1.7})
files = spec.get('staticFiles', [])
layers = []
for f in files:
layers.append({
'id': f['layerId'],
'name': f.get('name', f['layerId']),
'file': f'./layers/{f[\"layerId\"]}.geojson',
'emoji': f.get('emoji', '📍'),
'color': f.get('color', '#2196f3'),
'outlineColor': f.get('outlineColor', '#0d47a1'),
'showMarker': f.get('showMarker', False)
})
config = {
'title': title,
'initialView': {
'longitude': vp['center'][0],
'latitude': vp['center'][1],
'zoom': vp['zoom']
},
'showPopupOnClick': spec.get('showPopupOnClick', True),
'layers': layers
}
os.makedirs('public/layers', exist_ok=True)
json.dump(config, open('public/layers/config.json', 'w'), ensure_ascii=False, indent=2)
print('Saved config.json with', len(layers), 'layers')
"
make fast-build
| データ | emoji | color | outlineColor | showMarker |
|---|---|---|---|---|
| USGS地震 | 🔴 | rgba(255,87,34,0.6) | #b71c1c | true |
| 武力紛争 | ⚔️ | rgba(255,152,0,0.6) | #e65100 | true |
| プレート境界 | 🌋 | rgba(156,39,176,0.8) | #4a148c | false |
| 海底ケーブル | 🔌 | rgba(33,150,243,0.8) | #0d47a1 | false |