dsh-media-desk
DeepSeek Harness 자미디어 작업대 플러그인, 한 줄 아이디어로 원클릭 스크립트·표지·이미지·스토리보드 생성
토론토 시 공원·녹지 지도 타일 레이어, JOSM·iD OSM 편집기용 참고 오버레이 및 격차 검토 페이지
Map tile layers of the City of Toronto's parks and green spaces - a reference overlay for the JOSM and iD OpenStreetMap editors, plus an OSM coverage-gap review page
플러그인Python · JavaScriptGitHub @skfd온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Turns the City of Toronto Green Spaces dataset (~1,750 park-ish polygons) into map-tile layers that OpenStreetMap mappers can add to the JOSM and iD editors as a reference overlay.
Live layer and how to add it: https://skfd.github.io/toronto-parks-layer/
It is a sibling of
toronto-addresses-layer and
toronto-waterways-layer:
the same download -> slim -> tiles -> site -> publish pipeline, pointed at
the Green Spaces polygons. (The City's older "Parks" dataset is deprecated;
its page redirects to Green Spaces.)
name, class and area_id tags./gaps/)
that compares the City polygons against
park areas already in OpenStreetMap and lists the gaps — City parks with
no overlapping OSM area ("missing"), matched parks whose OSM name differs
("mismatch"), and matched parks tagged both leisure=park and
landuse=recreation_ground ("retag") — on an interactive map and a
filterable table, with
OSM / iD / JOSM links per row (the JOSM link needs JOSM running with
Preferences → Remote Control enabled). OSM areas
are pulled from Overpass; matching is by the area the polygons really share,
with landuse=allotments accepted only for the City's gardens (see
src/compare.py). Its
history page
charts those counts over time, one point per weekly run. Matched parks whose
outlines disagree are listed apart as "worth a look", most disputed first and
off by default. They are prompts to compare two shapes, not gaps, so they stay
out of the gap counts and the chart.All of it is published to GitHub Pages and rebuilt weekly.
Green Spaces classes kept by the slim filter (INCLUDE_AREA_CLASSES in
src/config.py): Park, Open Green Space, Golf Course,
Cemetery, Civic Centre Square and their OTHER_* variants. Traffic
islands, road slivers, boulevards, hydro corridors, building grounds and the
generic administrative OTHER_* classes are dropped. Names are converted from
the City's ALL CAPS to title case.
The numbered TRCA LANDS ( n) parcels are kept out of the rendered tile layer
(they are conservation-authority land, not real named parks). The slim step
writes them to parks-slim.geojsonl but not to parks-layer.geojsonl, so the
gap-review page still tracks them while the tiles do not.
pip install -r requirements.txt
src/config.py (GITHUB_REPO, PAGES_URL).python run.py download # fetch the latest Green Spaces GeoJSON (smart-cached)
python run.py slim # filter to park-ish polygons -> slim GeoJSONL
python run.py compare # diff City polygons against OSM -> data/gaps.geojson
python run.py backfill # one-off: reconstruct past weeks' gap counts from OSM history
python run.py vector # build vector (MVT) tiles via WSL tippecanoe
python run.py raster # build labelled raster (PNG) tiles
python run.py site # render the landing page (+ the gap-review page)
python run.py publish # force-push the site to the gh-pages branch
python run.py build # download + slim + compare + vector + raster + site
python run.py update # build + publish (the scheduled entry point)
Build output lands in build/site/; that directory is what gets published.
https://skfd.github.io/toronto-parks-layer/tiles/vector/{z}/{x}/{y}.pbf (z10-19)
https://skfd.github.io/toronto-parks-layer/tiles/raster/{z}/{x}/{y}.png (z13-17)
The vector layer name is parks.
The tile pyramid is published to an orphan gh-pages branch, recreated and
force-pushed on every build so repository history never grows. One-time step:
in the GitHub repo, set Settings → Pages → Source to the
gh-pages branch (root).
Run as Administrator:
.\schedule-add.ps1 # registers a weekly task "kk-TorontoParksLayer", Mondays 16:30
.\schedule-remove.ps1 # unregisters it
Weekly is enough — the City refreshes the Green Spaces dataset monthly, so
the tiles rarely change; it is the gap page, which diffs against live OSM, that
moves week to week. 16:30 keeps the build clear of the daily address-layer task.
The task runs python run.py update and appends output to logs\scheduler.log.
Both network steps — the dataset download and the gh-pages push —
run behind addressvault.net, the same offline/metered gate the address vault
pulls behind. A dead link is not a build failure: run.py exits 75
(EX_TEMPFAIL), nothing is written, and the task's restart-on-failure retries
three times half an hour apart rather than leaving a seven-day gap. It does not
wait the link out, since the task carries a hard ExecutionTimeLimit that would
kill a long wait anyway.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗