尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Fun side project
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Interactive maps built entirely on free, open Norwegian geodata. No paid APIs, no authentication required — just public data from Kartverket, SSB, NVE, MET.no, and OpenStreetMap.
Live at: datakart.no
| Feature | Route | Description | Docs |
|---|---|---|---|
| Stedsprofil | /kommune/[slug] | One dashboard per kommune (357 pages) combining population, income, housing, schools, energy, natur, charging, weather, and an interactive locator map with 6 toggleable layers | |
| Boligpriser | /bolig | Housing prices (kr/m²) per municipality — bubble map with kommune comparison and Finn.no deep-links | |
| Skoler og barnehager | /skoler | All 3 100+ skoler and 5 500+ barnehager in Norge with student/child counts, type and ownership. Data from Utdanningsdirektoratet (NSR + NBR) | |
| Helsetilbud | /helse | Kommune choropleth of fastlege data — ledig kapasitet, andel uten fastlege, gjennomsnittlig listelengde. SSB tabell 12005. Optional OSM overlay for sykehus and legevakt | |
| Energikart | /energikart | Wind, hydro, offshore wind, oil and gas — plus an animated timeline of the build-out from 1900 to today | docs/maps/energi.md |
| Magasinkart | /magasin | Regulated water reservoirs with live fill levels | docs/maps/magasin.md |
| Ladestasjoner | /lading | All EV charging stations in Norway | docs/maps/lading.md |
| Turisthytter | /hytter | Mountain huts and wilderness cabins | docs/maps/hytter.md |
| Høydekart | /map | Click anywhere for elevation (m.o.h.) and live weather | docs/maps/hoyde.md |
| Inntektskart | /lonn | Choropleth: median household income per municipality with kommune comparison | docs/maps/inntekt.md |
| Verneområder | /vern | Choropleth: protected nature area per municipality (km²) | docs/maps/vern.md |
| Kostnader | /kostnader | Choropleth of what it costs to live in each municipality: kommunale årsgebyr (water, sewage, waste, chimney) and eiendomsskatt (property tax) with Sammenlign comparison feature. SSB tables 12842 + 14674 | |
| Valgkart | /valg | Stortingsvalg 2025/2021 and Kommunestyrevalg 2023/2019 per kommune — vinnerparti choropleth, stemmefordeling, frammøte and endring from previous election. Compare two kommuner side by side. Animated timeline of all 21 Stortingsvalg 1945–2025 on today's kommuner. Data from Valgdirektoratet and SSB | docs/maps/valg.md |
| Prisvekst | /prisvekst | Inflation dashboard: KPI, categories, trends, Nordic comparison |
The home and three category landing pages (/energi, /natur, /samfunn) are tiered hubs that introduce each theme and link out to the maps above. /energi previously hosted the energy MAP — that moved to /energikart in May 2026; a conditional 301 in next.config.ts preserves Stedsprofil deep-links.
| Variable | Required | Description |
|---|---|---|
NOBIL_API_KEY | Required | API key from NOBIL — charging station data for the build-time fetch script |
ENOVA_RT_API_KEY | Optional | API key from data.enova.no (NOBIL Real-time product) — enables live charging station availability |
NVE_API_KEY | Optional | API key from NVE HydAPI — enables live river discharge and water level data on hydro plant and reservoir cards |
Set in Vercel under Project Settings → Environment Variables, or locally in .env.local. |
npm install
# Seed the pre-built static data files
node scripts/fetch-stations.mjs
node scripts/fetch-cabins.mjs
node scripts/fetch-production.mjs
node scripts/fetch-reservoirs.mjs
node scripts/fetch-kommuner.mjs
node scripts/fetch-finn-locations.mjs
node scripts/fetch-schools.mjs
node scripts/fetch-health.mjs
node scripts/fetch-valg.mjs
node scripts/build-kommune-profiles.mjs
npm run dev
scripts/fetch-valg-historikk.mjs (Stortingsvalg 1945–2025 for the /valg timeline) is not part of the seed or prebuild: historical results don't change, and its output is committed. Rerun it after a new Stortingsvalg or a kommune reform.
Open http://localhost:3000.
The seed scripts are also run automatically as a prebuild hook when deploying. If Overpass is unreachable, the existing files in public/data/ are kept.
scripts/analytics.mjs prints read-only Google Analytics 4 and Search Console reports (overview, pages, sources, hosts, queries, gsc-pages, query-pages /valg). It authenticates with a service account whose JSON key lives outside the repo; set GOOGLE_SERVICE_ACCOUNT_KEY, GA_PROPERTY_ID and GSC_SITE in .env.local. The GA tag only loads when VERCEL_ENV === "production", so localhost and preview visits are not counted.
| Data | Source | Refresh |
|---|---|---|
| Charging stations | NOBIL / Enova (datadump API) | Build-time static JSON |
| Charging status | NOBIL Real-time (Enova WebSocket) | Live via WebSocket |
| Tourist cabins | OpenStreetMap (Overpass API) | Build-time static JSON |
| Wind and hydro power | NVE ArcGIS (Vindkraft2, Vannkraft1) | 1-hour server cache |
| Reservoirs | NVE ArcGIS (Vannkraft1 layer 6) | 1-hour server cache |
| Offshore wind zones | NVE ArcGIS (Havvind2023) | 1-hour server cache |
| Oil and gas facilities | Sodir FactMaps (WGS84 MapServer) | 1-hour server cache |
| River observations | NVE HydAPI | Per-request |
| Housing prices | SSB table 06035 (Selveierboliger) | 24-hour server cache |
| Population | SSB table 07459 | Build-time static JSON |
| Income | SSB InntektStruk13 | 24-hour server cache |
| Schools | Utdanningsdirektoratet NSR (data-nsr.udir.no) | Build-time static JSON |
| Kindergartens | Utdanningsdirektoratet NBR (data-nbr.udir.no) | Build-time static JSON |
| Fastlege data | SSB table 12005 (Fastlegelister og fastlegekonsultasjoner) | Build-time static JSON |
| Kommunale gebyrer | SSB table 12842 (vann, avløp, avfall, feiing) | Build-time static JSON |
| Eiendomsskatt | SSB table 14674 (Eiendomsskatt per kommune) | Build-time static JSON |
| Eierstatus (boforhold) | SSB table 14891 (selveier, andelseier, leier per kommune) | Build-time static JSON |
| Boligtyper | SSB table 06265 (enebolig, småhus, blokk, ...) | Build-time static JSON |
| Utdanningsnivå | SSB table 09429 (grunnskole / vgs / høyere utdanning) | Build-time static JSON |
| Sykehus and legevakt | OpenStreetMap (Overpass, amenity=hospital/clinic scoped to Norway) |
Map tiles: Kartverket WMTS (topo, topograatone) and OpenTopoMap.
See CLAUDE.md for architecture decisions, code patterns, component conventions, and instructions for working with this codebase.
| Build-time static JSON |
| Election results | Valgdirektoratet (valgresultat.no) — Stortingsvalg 2025/2021, Kommunestyrevalg 2023/2019 | Build-time static JSON |
| Election history | SSB table 08092 (Stortingsvalg per kommune 1945–2025) + SSB Klass 131 (kommune changes) | Static JSON, regenerated manually |
| Finn.no location codes | Scraped from finn.no/realestate/homes/search.html | Build-time static JSON |
| Inflation (KPI) | SSB tables 03013 + 05327 | Loaded once on mount |
| Policy rate | Norges Bank API | Loaded once on mount |
| Nordic inflation | Eurostat HICP | Loaded once on mount |
| Protected areas | SSB table 08936 | 24-hour server cache |
| Weather | MET.no locationforecast | 30-minute server cache |
| Elevation | Kartverket høyde-API | Per-request |
| Municipality boundaries | GitHub (robhop/fylker-og-kommuner) | Build-time static GeoJSON |
| Address search | Geonorge adresser API (via /api/sok proxy) | 1-hour edge cache + 24-hour stale-while-revalidate |