From 150e0a00b586d9ef9a1641bc0faa882248d15923 Mon Sep 17 00:00:00 2001 From: Finn Skov Henriksen Date: Fri, 2 Oct 2026 21:39:38 +0200 Subject: [PATCH] Add visitor registration app with SQLite, admin tools and Docker deployment --- .dockerignore | 11 + .env.example | 5 + .gitattributes | 3 + .gitignore | 11 + Dockerfile | 18 + Program.cs | 249 + README.md | 60 + SkydesportensDag.csproj | 11 + appsettings.json | 9 + compose.yaml | 15 + output/pdf/skydedag-qr-plakat-preview.png | Bin 0 -> 92876 bytes output/pdf/skydedag-qr-plakat.pdf | Bin 0 -> 66261 bytes output/pdf/skydedag-qr.png | Bin 0 -> 5211 bytes scripts/update-postal-codes.ps1 | 32 + skydedag-qr-plakat.pdf | Bin 0 -> 66261 bytes wwwroot/admin.html | 57 + wwwroot/admin.js | 115 + wwwroot/app.js | 70 + wwwroot/favicon.svg | 6 + wwwroot/index.html | 45 + wwwroot/participant-map.js | 58 + wwwroot/postnummer-positioner.json | 5797 +++++++++++++++++++++ wwwroot/postnumre.json | 1161 +++++ wwwroot/styles.css | 274 + wwwroot/vendor/leaflet/LICENSE | 26 + wwwroot/vendor/leaflet/leaflet.css | 661 +++ wwwroot/vendor/leaflet/leaflet.js | 6 + 27 files changed, 8700 insertions(+) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Program.cs create mode 100644 README.md create mode 100644 SkydesportensDag.csproj create mode 100644 appsettings.json create mode 100644 compose.yaml create mode 100644 output/pdf/skydedag-qr-plakat-preview.png create mode 100644 output/pdf/skydedag-qr-plakat.pdf create mode 100644 output/pdf/skydedag-qr.png create mode 100644 scripts/update-postal-codes.ps1 create mode 100644 skydedag-qr-plakat.pdf create mode 100644 wwwroot/admin.html create mode 100644 wwwroot/admin.js create mode 100644 wwwroot/app.js create mode 100644 wwwroot/favicon.svg create mode 100644 wwwroot/index.html create mode 100644 wwwroot/participant-map.js create mode 100644 wwwroot/postnummer-positioner.json create mode 100644 wwwroot/postnumre.json create mode 100644 wwwroot/styles.css create mode 100644 wwwroot/vendor/leaflet/LICENSE create mode 100644 wwwroot/vendor/leaflet/leaflet.css create mode 100644 wwwroot/vendor/leaflet/leaflet.js diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..65aa9ab --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +.git +.env +.env.* +appsettings.Development.json +bin +obj +node_modules +data +*.db +*.db-shm +*.db-wal diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e75b5f2 --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +Database__Path=data/visitors.db +Admin__Username=admin +Admin__Password=change-me +APP_BIND=127.0.0.1 +APP_PORT=5187 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..d47619d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.pdf binary +*.png binary +*.jpg binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..319f549 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +bin/ +obj/ +node_modules/ +appsettings.Development.json +*.user +*.suo +data/ +*.db +*.db-shm +*.db-wal +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a59456d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +WORKDIR /src +COPY SkydesportensDag.csproj ./ +RUN dotnet restore --source https://api.nuget.org/v3/index.json +COPY Program.cs appsettings.json ./ +COPY wwwroot/ ./wwwroot/ +RUN dotnet publish --no-restore -c Release -o /out /p:UseAppHost=false + +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final +WORKDIR /app +COPY --from=build /out/ ./ +RUN mkdir -p /app/data && chown app:app /app/data +ENV ASPNETCORE_ENVIRONMENT=Production +ENV ASPNETCORE_HTTP_PORTS=8080 +ENV Database__Path=/app/data/visitors.db +USER app +EXPOSE 8080 +ENTRYPOINT ["dotnet", "SkydesportensDag.dll"] diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..6062a8f --- /dev/null +++ b/Program.cs @@ -0,0 +1,249 @@ +using System.Net; +using System.Security.Claims; +using System.Text; +using System.Text.Encodings.Web; +using Microsoft.AspNetCore.Authentication; +using Microsoft.Extensions.Options; +using Microsoft.Data.Sqlite; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddAuthentication("Basic") + .AddScheme("Basic", null); +builder.Services.AddAuthorization(); +builder.Services.AddSingleton(); + +var app = builder.Build(); + +app.UseDefaultFiles(); +app.UseStaticFiles(); +app.UseAuthentication(); +app.UseAuthorization(); + +await app.Services.GetRequiredService().InitializeAsync(); + +app.MapPost("/api/visitors", async (VisitorInput input, Database database) => +{ + var errors = Validate(input); + if (errors.Count > 0) + { + return Results.ValidationProblem(errors); + } + + await using var connection = await database.OpenConnectionAsync(); + await using var command = connection.CreateCommand(); + command.CommandText = """ + insert into visitors (name, street_address, postal_code, city, birthday, email) + values ($name, $street, $postal, $city, $birthday, $email) + """; + command.Parameters.AddWithValue("$name", input.Name.Trim()); + command.Parameters.AddWithValue("$street", input.StreetAddress.Trim()); + command.Parameters.AddWithValue("$postal", input.PostalCode.Trim()); + command.Parameters.AddWithValue("$city", input.City.Trim()); + command.Parameters.AddWithValue("$birthday", DateOnly.Parse(input.Birthday).ToString("yyyy-MM-dd")); + command.Parameters.AddWithValue("$email", input.Email.Trim().ToLowerInvariant()); + await command.ExecuteNonQueryAsync(); + + return Results.Created("/api/visitors", null); +}); + +app.MapGet("/api/visitors", async (Database database) => +{ + var visitors = new List(); + await using var connection = await database.OpenConnectionAsync(); + await using var command = connection.CreateCommand(); + command.CommandText = """ + select id, name, street_address, postal_code, city, birthday, email, created_at + from visitors + order by created_at desc, id desc + """; + await using var reader = await command.ExecuteReaderAsync(); + + while (await reader.ReadAsync()) + { + visitors.Add(new VisitorListItem( + reader.GetInt64(0), + reader.GetString(1), + reader.GetString(2), + reader.GetString(3), + reader.GetString(4), + DateOnly.Parse(reader.GetString(5)), + reader.GetString(6), + DateTime.SpecifyKind(reader.GetDateTime(7), DateTimeKind.Utc) + )); + } + + return Results.Ok(visitors); +}).RequireAuthorization(); + +app.MapDelete("/api/visitors/{id:long}", async (long id, Database database) => +{ + await using var connection = await database.OpenConnectionAsync(); + await using var command = connection.CreateCommand(); + command.CommandText = "delete from visitors where id = $id"; + command.Parameters.AddWithValue("$id", id); + var deleted = await command.ExecuteNonQueryAsync(); + return deleted == 0 ? Results.NotFound() : Results.NoContent(); +}).RequireAuthorization(); + +app.MapGet("/admin", (IWebHostEnvironment environment) => + Results.File(Path.Combine(environment.WebRootPath, "admin.html"), "text/html")); + +app.MapFallbackToFile("index.html"); + +app.Run(); + +static Dictionary Validate(VisitorInput input) +{ + var errors = new Dictionary(); + + if (string.IsNullOrWhiteSpace(input.Name)) + { + errors["name"] = ["Navn mangler."]; + } + + if (string.IsNullOrWhiteSpace(input.StreetAddress)) + { + errors["streetAddress"] = ["Vejnavn og husnummer mangler."]; + } + + if (string.IsNullOrWhiteSpace(input.PostalCode) || input.PostalCode.Trim().Length != 4 || !input.PostalCode.All(char.IsDigit)) + { + errors["postalCode"] = ["Postnummer skal være 4 cifre."]; + } + + if (string.IsNullOrWhiteSpace(input.City)) + { + errors["city"] = ["Postby mangler."]; + } + + if (string.IsNullOrWhiteSpace(input.Birthday) || !DateOnly.TryParse(input.Birthday, out _)) + { + errors["birthday"] = ["Fødselsdag mangler eller er ugyldig."]; + } + + if (string.IsNullOrWhiteSpace(input.Email) || !input.Email.Contains('@') || !input.Email.Contains('.')) + { + errors["email"] = ["Email mangler eller er ugyldig."]; + } + + return errors; +} + +public sealed record VisitorInput(string Name, string StreetAddress, string PostalCode, string City, string Birthday, string Email); + +public sealed record VisitorListItem(long Id, string Name, string StreetAddress, string PostalCode, string City, DateOnly Birthday, string Email, DateTime CreatedAt); + +public sealed class Database +{ + private readonly string _connectionString; + + public Database(IConfiguration configuration, IWebHostEnvironment environment) + { + var path = configuration["Database:Path"] ?? "data/visitors.db"; + var fullPath = Path.GetFullPath(path, environment.ContentRootPath); + Directory.CreateDirectory(Path.GetDirectoryName(fullPath)!); + _connectionString = new SqliteConnectionStringBuilder { DataSource = fullPath }.ToString(); + } + + public async Task OpenConnectionAsync() + { + var connection = new SqliteConnection(_connectionString); + try + { + await connection.OpenAsync(); + return connection; + } + catch + { + await connection.DisposeAsync(); + throw; + } + } + + public async Task InitializeAsync() + { + await using var connection = await OpenConnectionAsync(); + await using var command = connection.CreateCommand(); + command.CommandText = """ + create table if not exists visitors ( + id integer primary key autoincrement, + name text not null, + street_address text not null, + postal_code text not null, + city text not null, + birthday text not null, + email text not null, + created_at text not null default (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')) + ); + + create index if not exists visitors_created_at_idx on visitors (created_at desc); + """; + + await command.ExecuteNonQueryAsync(); + } +} + +public sealed class BasicAuthenticationHandler( + IOptionsMonitor options, + ILoggerFactory logger, + UrlEncoder encoder, + IConfiguration configuration) + : AuthenticationHandler(options, logger, encoder) +{ + protected override Task HandleAuthenticateAsync() + { + var expectedUser = configuration["Admin:Username"] ?? "admin"; + var expectedPassword = configuration["Admin:Password"]; + + if (string.IsNullOrWhiteSpace(expectedPassword)) + { + return Task.FromResult(AuthenticateResult.Fail("Admin:Password mangler.")); + } + + if (!Request.Headers.TryGetValue("Authorization", out var authorizationHeaders)) + { + return Task.FromResult(AuthenticateResult.NoResult()); + } + + var authorization = authorizationHeaders.ToString(); + if (!authorization.StartsWith("Basic ", StringComparison.OrdinalIgnoreCase)) + { + return Task.FromResult(AuthenticateResult.NoResult()); + } + + try + { + var encoded = authorization["Basic ".Length..].Trim(); + var decoded = Encoding.UTF8.GetString(Convert.FromBase64String(encoded)); + var separator = decoded.IndexOf(':'); + if (separator < 0) + { + return Task.FromResult(AuthenticateResult.Fail("Ugyldige credentials.")); + } + + var username = decoded[..separator]; + var password = decoded[(separator + 1)..]; + + if (username != expectedUser || password != expectedPassword) + { + return Task.FromResult(AuthenticateResult.Fail("Forkert login.")); + } + + var identity = new ClaimsIdentity([new Claim(ClaimTypes.Name, username)], Scheme.Name); + var principal = new ClaimsPrincipal(identity); + return Task.FromResult(AuthenticateResult.Success(new AuthenticationTicket(principal, Scheme.Name))); + } + catch + { + return Task.FromResult(AuthenticateResult.Fail("Ugyldige credentials.")); + } + } + + protected override Task HandleChallengeAsync(AuthenticationProperties properties) + { + Response.Headers.WWWAuthenticate = "Basic realm=\"Skydesportens Dag\""; + Response.StatusCode = StatusCodes.Status401Unauthorized; + return Task.CompletedTask; + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..668571c --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# Skydesportens Dag besøgsregistrering + +Lille standalone ASP.NET Core app til Vestfalster Skytteforening. + +## Funktioner + +- Offentlig registrering uden login på `/` +- Felter: navn, adresse, fødselsdag og email +- Postby udfyldes automatisk ved indtastning af et kendt dansk postnummer og kan redigeres manuelt +- Adminliste på `/admin` +- Sletning med bekræftelse på adminlisten +- CSV-download og udskrivning via browserens dialog (vælg Gem som PDF for PDF) +- Adminlisten bruger enkel HTTP Basic Auth via konfiguration +- Data gemmes lokalt i SQLite uden databaseserver eller databaselogin +- Frontend serveres direkte fra samme dotnet app + +## Opsætning + +1. Sæt adminlogin via environment variables eller user secrets (kun nødvendigt for adminlisten): + + ```powershell + $env:Admin__Username="admin" + $env:Admin__Password="change-me" + ``` + +2. Start appen: + + ```powershell + dotnet run + ``` + +Appen opretter selv databasefilen `data/visitors.db` og `visitors`-tabellen. Data bevares efter genstart. Stien regnes fra projektmappen og kan ændres med `Database__Path`. Der kræves ingen databaseopsætning. En eventuel gammel `ConnectionStrings__Default` bruges ikke længere. + +Tag backup af databasefilen, når appen er stoppet. Databasefiler er udeladt fra Git. Eksisterende data i PostgreSQL flyttes ikke automatisk. + +Appen kører typisk på den URL, `dotnet run` skriver i terminalen, fx `http://localhost:5000`. + +Postnummerlisten ligger lokalt i `wwwroot/postnumre.json`, så opslag virker uden internet. Data er hentet fra [GeoNames](https://download.geonames.org/export/zip/) den 2. oktober 2026 og bruges under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). Ukendte postnumre kan udfyldes manuelt. Opdater listen med `./scripts/update-postal-codes.ps1` (kræver internet). + +## Docker-server uden Git-runner + +Overfør `Dockerfile`, `compose.yaml`, `SkydesportensDag.csproj`, `Program.cs`, `appsettings.json`, `.dockerignore`, `.env.example` og mappen `wwwroot` til samme mappe på serveren med SCP/SFTP. Docker bygger appen på serveren; der kræves ingen .NET-installation eller Git-runner dér. + +På serveren: + +```sh +cp .env.example .env +chmod 600 .env +# Rediger .env og sæt Admin__Password samt ønsket port. +docker compose up -d --build +docker compose logs --tail=100 web +``` + +Appen lytter som standard på `127.0.0.1:5187` på serveren. En eksisterende reverse proxy kan sende trafik hertil; brug HTTPS ved adgang over internettet, da adminlogin bruger Basic Auth. Ved direkte adgang på det lokale netværk kan `APP_BIND` sættes til serverens LAN-adresse. En proxy i en anden container kræver tilpasning af Docker-netværket. + +Databasen oprettes i Docker-volumenet `visitors-data` og bevares ved genstart og nye builds. `docker compose down -v` sletter databasen. Lokale registreringer overføres ikke automatisk; aftal overførsel af databasefilen, hvis de skal med. + +Ved opdateringer overføres kodefilerne igen, og `docker compose up -d --build` køres. Bevar serverens `.env` og databasevolumen. Tag databasebackup, mens appen er stoppet. + +Adminlisten viser et interaktivt kort med antal deltagere pr. postnummer. Positioner fra GeoNames ligger i wwwroot/postnummer-positioner.json og opdateres sammen med postnummerlisten. Leaflet 1.9.4 ligger lokalt i wwwroot/vendor/leaflet med licens. Baggrundskort fra OpenStreetMap kræver internet; navne og adresser sendes ikke til korttjenesten. Kortet opdateres efter sletning og udelades fra listeudskrift. diff --git a/SkydesportensDag.csproj b/SkydesportensDag.csproj new file mode 100644 index 0000000..4aba3f9 --- /dev/null +++ b/SkydesportensDag.csproj @@ -0,0 +1,11 @@ + + + net10.0 + enable + enable + + + + + + diff --git a/appsettings.json b/appsettings.json new file mode 100644 index 0000000..76fdf1e --- /dev/null +++ b/appsettings.json @@ -0,0 +1,9 @@ +{ + "Database": { + "Path": "data/visitors.db" + }, + "Admin": { + "Username": "admin", + "Password": "" + } +} diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..583e7b4 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,15 @@ +services: + web: + build: . + restart: unless-stopped + ports: + - "${APP_BIND:-127.0.0.1}:${APP_PORT:-5187}:8080" + environment: + Admin__Username: "${Admin__Username:-admin}" + Admin__Password: "${Admin__Password:?Sæt Admin__Password i .env}" + Database__Path: /app/data/visitors.db + volumes: + - visitors-data:/app/data + +volumes: + visitors-data: diff --git a/output/pdf/skydedag-qr-plakat-preview.png b/output/pdf/skydedag-qr-plakat-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..429d2644d42e4bb5ce14d1d2d32a4c46b593a5c4 GIT binary patch literal 92876 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

o@^Qdtjf1>`ncHr2 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 WB5pzR0%9~#kQwPJ7OQq^SAPPTS2h9w literal 0 HcmV?d00001 diff --git a/output/pdf/skydedag-qr.png b/output/pdf/skydedag-qr.png new file mode 100644 index 0000000000000000000000000000000000000000..443bec054bb6e214461c378a02411c239a607d57 GIT binary patch literal 5211 zcmeHLeM}Q)7=J|7c+y1 z&Wt%l+KVpfjf4s)rIT`PjmR7st;=u3vR<>s#CU`<;~DeSHPx%dH_oLRCzE_ZpG zUY|bC^ZR(7s<*S!7tVWm9spor#YBzcp8<@*2@ZET0CRQ#usVO^46rTy^io+Iu`SrXS1obg8N&EU?8Nxs_*&FQSprwR@)3^VmCXLFO!ho1*pVuqJ-sVe zgsotCQ&2)+WjjVwjOC1iuu~Tkbx#1Z;)iYX{xYS8M)k9QFa7DMAs@hgGZsJgg)kKj zE^OUU^iVI4y17ZKM1)jwjWlG!4xfx>l8i>gpF2^_nXQ2|)K@`QIQ@Np5TSOjOm$U~ zU%ryjW-V}I=T9FgB6#UtBf61BiPD#1^bcQT2)p-zWAAD9=ZId75zrMMEp>Pry)37t z1E#{DvX$s@wVxuSwr)l#B}Yc@`)zxp=H!WlLIv7G5%krsJYyV^Odv@@a>&5lW1TRm zJEo1?!lFq2tq6o&7jv$unJBaEw_=+#CP=(Bo-u{W9c+-X-6eahY~)Ufw}e?xTV+YF z^9$78USxPl{dGZ6Jhxbhs;@}bUu%#JRFVnPm!gNrOI1n2+Eh1|zOI``Nxpg4bD3}E zAwp7MWp#M<$cDlSm90rg25R%j#2TjIj(u+rCjJm+ok1@ISsVXjT*{R=q(q>FMg}G= z2$LYWC%P&~K6~3W#OWfRy(!~IDmP1kuo5? z>Y-|dp1L+#d?-*F#Ro9Cx?X_eQ7�qX>0D9ByR!Vb;5aPbp?H-75sG0udDxJv z`l=n$rzd2Su*3Ae+cFo%|FTh&pLE&exNFfP?a|PH5y2ZJLto2A70hNy;}^fB@4PRm zmpl#LfiO#kE_2O1GOrRrVU~iD;}Ut)Kh?E3I2n{aKgDlXg@YP2%*Tjtmz-;(QG$e; z;_g)k<=w4NYL{klQgL}w7W_zSuNDU7Yo_@Ahw#r7j_#{&d<((eU}^|UE?y6r3WnDT zd&_W75h^<)G^8e1Gs;peK6}qiqX=5G)qSJ7^@RrU2PCW<#m>${gno!Xvw0P>>Y|JB z#fsF1@mb?WyUel)?<hIT!)y)T7s@4X$t%bdC-aVA*vu1I(p=cYXr#Wtpi+BUX_k|a?kJ|P?7<*B(3oZ>o#@4JYm(q5B_7~XPoml_? literal 0 HcmV?d00001 diff --git a/scripts/update-postal-codes.ps1 b/scripts/update-postal-codes.ps1 new file mode 100644 index 0000000..85ee1b9 --- /dev/null +++ b/scripts/update-postal-codes.ps1 @@ -0,0 +1,32 @@ +$ErrorActionPreference = 'Stop' +$archivePath = Join-Path ([System.IO.Path]::GetTempPath()) ('dk-postcodes-' + [guid]::NewGuid() + '.zip') +try { + Invoke-WebRequest 'https://download.geonames.org/export/zip/DK.zip' -OutFile $archivePath + Add-Type -AssemblyName System.IO.Compression.FileSystem + $archive = [System.IO.Compression.ZipFile]::OpenRead($archivePath) + try { + $reader = [System.IO.StreamReader]::new($archive.GetEntry('DK.txt').Open()) + try { $data = $reader.ReadToEnd() } finally { $reader.Dispose() } + } finally { $archive.Dispose() } + + $cities = [ordered]@{} + $locations = [ordered]@{} + foreach ($row in $data.Trim().Split("`n")) { + $fields = $row.TrimEnd("`r").Split("`t") + if ($fields[0] -ne 'DK' -or $fields[1] -notmatch '^\d{4}$' -or !$fields[2]) { + throw 'Ugyldig postnummerdata.' + } + if ($cities.Contains($fields[1]) -and $cities[$fields[1]] -ne $fields[2]) { + throw "Flere postbyer for postnummer $($fields[1])." + } + $cities[$fields[1]] = $fields[2] + $locations[$fields[1]] = @{ city = $fields[2]; lat = [double]::Parse($fields[9], [Globalization.CultureInfo]::InvariantCulture); lng = [double]::Parse($fields[10], [Globalization.CultureInfo]::InvariantCulture) } + } + if ($cities.Count -lt 1000) { throw 'Postnummerlisten er ufuldstændig.' } + $target = Join-Path $PSScriptRoot '../wwwroot/postnumre.json' + $cities | ConvertTo-Json -Depth 3 | Set-Content -LiteralPath $target -Encoding utf8 + $locations | ConvertTo-Json -Depth 3 | Set-Content -LiteralPath (Join-Path $PSScriptRoot '../wwwroot/postnummer-positioner.json') -Encoding utf8 + Write-Output "Gemt $($cities.Count) danske postnumre." +} finally { + if (Test-Path -LiteralPath $archivePath) { Remove-Item -LiteralPath $archivePath } +} diff --git a/skydedag-qr-plakat.pdf b/skydedag-qr-plakat.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a3181e7acb459c32cea141463646b69767447c93 GIT binary patch literal 66261 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 WB5pzR0%9~#kQwPJ7OQq^SAPPTS2h9w literal 0 HcmV?d00001 diff --git a/wwwroot/admin.html b/wwwroot/admin.html new file mode 100644 index 0000000..65224b2 --- /dev/null +++ b/wwwroot/admin.html @@ -0,0 +1,57 @@ + + + + + + Besøgende - Skydesportens Dag + + + + + +

+
+
+
+

Vestfalster Skytteforening

+

Besøgende

+
+ Henter... +
+
+ + +
+ +
+

Hvor kommer deltagerne fra?

+

Fordelt på postnumre. Klik på en cirkel for at se postby og antal.

+
+

Henter kort...

+
+
+ + + + + + + + + + + + + + + + +
NavnVejnavn og husnummerPostnummerPostbyFødselsdagEmailRegistreretHandling
Henter besøgende...
+
+
+
+ + + + + diff --git a/wwwroot/admin.js b/wwwroot/admin.js new file mode 100644 index 0000000..6fdcf41 --- /dev/null +++ b/wwwroot/admin.js @@ -0,0 +1,115 @@ +const tableBody = document.querySelector("#visitors"); +const count = document.querySelector("#count"); +const message = document.querySelector("#message"); +const csvButton = document.querySelector("#export-csv"); +const printButton = document.querySelector("#print-list"); +let visitors = []; + +function formatDateTime(value) { + return new Intl.DateTimeFormat("da-DK", { + dateStyle: "short", + timeStyle: "short" + }).format(new Date(value)); +} + +function showError(text) { + message.textContent = text; + message.className = "notice error"; + message.hidden = false; +} + +function escapeHtml(value) { + return String(value ?? "") + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +} + +async function loadVisitors() { + csvButton.disabled = true; + printButton.disabled = true; + try { + const response = await fetch("/api/visitors"); + if (!response.ok) { + showError("Listen kunne ikke hentes. Tjek admin-login og databaseforbindelse."); + count.textContent = "Fejl"; + return; + } + + visitors = await response.json(); + updateParticipantMap(visitors); + message.hidden = true; + csvButton.disabled = false; + printButton.disabled = false; + count.textContent = `${visitors.length} registreret`; + + if (visitors.length === 0) { + tableBody.innerHTML = 'Ingen besøgende registreret endnu.'; + return; + } + + tableBody.innerHTML = visitors.map((visitor) => ` + + ${escapeHtml(visitor.name)} + ${escapeHtml(visitor.streetAddress)} + ${escapeHtml(visitor.postalCode)} + ${escapeHtml(visitor.city)} + ${escapeHtml(visitor.birthday)} + ${escapeHtml(visitor.email)} + ${escapeHtml(formatDateTime(visitor.createdAt))} + + + `).join(""); + } catch { + showError("Der er ikke forbindelse til besøgslisten lige nu."); + count.textContent = "Fejl"; + } +} + +tableBody.addEventListener("click", async (event) => { + const button = event.target.closest("button[data-id]"); + if (!button || button.disabled) return; + const visitor = visitors.find((item) => String(item.id) === button.dataset.id); + if (!visitor || !window.confirm(`Slet registreringen for ${visitor.name}? Dette kan ikke fortrydes.`)) return; + button.disabled = true; + csvButton.disabled = true; + printButton.disabled = true; + try { + const response = await fetch(`/api/visitors/${visitor.id}`, { method: "DELETE" }); + if (!response.ok && response.status !== 404) throw new Error("Sletning mislykkedes."); + await loadVisitors(); + } catch { + showError("Registreringen kunne ikke slettes. Prøv igen."); + button.disabled = false; + csvButton.disabled = false; + printButton.disabled = false; + } +}); + +function csvCell(value) { + let text = String(value ?? ""); + // Prevent spreadsheet programs from evaluating visitor input as formulas. + if (/^[\s]*[=+@-]/.test(text)) text = "'" + text; + return `"${text.replaceAll('"', '""')}"`; +} + +csvButton.addEventListener("click", () => { + const rows = [ + ["Navn", "Vejnavn og husnummer", "Postnummer", "Postby", "Fødselsdag", "Email", "Registreret"], + ...visitors.map((visitor) => [visitor.name, visitor.streetAddress, visitor.postalCode, + visitor.city, visitor.birthday, visitor.email, formatDateTime(visitor.createdAt)]) + ]; + const csv = "\uFEFF" + rows.map((row) => row.map(csvCell).join(";")).join("\r\n") + "\r\n"; + const url = URL.createObjectURL(new Blob([csv], { type: "text/csv;charset=utf-8" })); + const link = document.createElement("a"); + link.href = url; + link.download = "skydesportens-dag-besogende.csv"; + link.click(); + setTimeout(() => URL.revokeObjectURL(url), 1000); +}); + +printButton.addEventListener("click", () => window.print()); + +loadVisitors(); diff --git a/wwwroot/app.js b/wwwroot/app.js new file mode 100644 index 0000000..29e3391 --- /dev/null +++ b/wwwroot/app.js @@ -0,0 +1,70 @@ +const form = document.querySelector("#registration-form"); +const message = document.querySelector("#message"); +const postalCodeInput = form.elements.postalCode; +const cityInput = form.elements.city; +const citySuggestions = document.querySelector("#city-suggestions"); +const postalCodes = fetch("/postnumre.json") + .then((response) => { + if (!response.ok) throw new Error("Postnummerlisten kunne ikke hentes."); + return response.json(); + }) + .catch(() => null); + +function showMessage(text, type) { + message.textContent = text; + message.className = `notice ${type}`; + message.hidden = false; +} + +form.addEventListener("submit", async (event) => { + event.preventDefault(); + + const payload = Object.fromEntries(new FormData(form).entries()); + const button = form.querySelector("button"); + button.disabled = true; + + try { + const response = await fetch("/api/visitors", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(payload) + }); + + if (!response.ok) { + showMessage("Registreringen kunne ikke gemmes. Tjek felterne og prøv igen.", "error"); + return; + } + + form.reset(); + citySuggestions.replaceChildren(); + showMessage("Tak, du er registreret.", "success"); + } catch { + showMessage("Der er ikke forbindelse til registreringen lige nu.", "error"); + } finally { + button.disabled = false; + } +}); + +async function updateCity() { + postalCodeInput.value = postalCodeInput.value.replace(/\D/g, "").slice(0, 4); + const postalCode = postalCodeInput.value; + citySuggestions.replaceChildren(); + cityInput.value = ""; + + if (postalCode.length !== 4) return; + + const cities = await postalCodes; + if (postalCodeInput.value !== postalCode || !cities) return; + + const city = cities[postalCode]; + if (!city) return; + + const option = document.createElement("option"); + option.value = city; + citySuggestions.append(option); + cityInput.value = city; +} + +postalCodeInput.addEventListener("input", updateCity); +postalCodeInput.addEventListener("change", updateCity); +if (postalCodeInput.value) updateCity(); diff --git a/wwwroot/favicon.svg b/wwwroot/favicon.svg new file mode 100644 index 0000000..1e91029 --- /dev/null +++ b/wwwroot/favicon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wwwroot/index.html b/wwwroot/index.html new file mode 100644 index 0000000..2054abd --- /dev/null +++ b/wwwroot/index.html @@ -0,0 +1,45 @@ + + + + + + Skydesportens Dag - registrering + + + + +
+
+

Vestfalster Skytteforening

+

Skydesportens Dag

+

Registrer dig som besøgende. Oplysningerne bruges kun i forbindelse med arrangementet.

+ +
+ + +
+ + +
+ + + +
+
+
+ + + diff --git a/wwwroot/participant-map.js b/wwwroot/participant-map.js new file mode 100644 index 0000000..3f22a4d --- /dev/null +++ b/wwwroot/participant-map.js @@ -0,0 +1,58 @@ +const mapStatus = document.querySelector("#map-status"); +const postalLocations = fetch("/postnummer-positioner.json") + .then((response) => { + if (!response.ok) throw new Error("Postnummerpositioner mangler."); + return response.json(); + }).catch(() => null); +let participantMap; +let participantMarkers; +let mapRevision = 0; +let tileError = false; + +async function updateParticipantMap(visitors) { + const revision = ++mapRevision; + const locations = await postalLocations; + if (revision !== mapRevision) return; + if (!locations || typeof L === "undefined") { + mapStatus.textContent = "Kortet kunne ikke indlæses. Deltagerlisten kan stadig bruges."; + return; + } + if (!participantMap) { + participantMap = L.map("participant-map").setView([56.1, 10.5], 6); + L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { + maxZoom: 18, + attribution: '© OpenStreetMap | Postbyer: GeoNames' + }).on("tileerror", () => { + if (!tileError) { + tileError = true; + mapStatus.textContent += " Baggrundskortet kunne ikke hentes; kontrollér internetforbindelsen."; + } + }).addTo(participantMap); + participantMarkers = L.layerGroup().addTo(participantMap); + } + participantMarkers.clearLayers(); + const groups = new Map(); + let missing = 0; + for (const visitor of visitors) { + const code = String(visitor.postalCode ?? "").trim(); + if (!locations[code]) { missing++; continue; } + groups.set(code, (groups.get(code) ?? 0) + 1); + } + const bounds = []; + for (const [code, total] of groups) { + const location = locations[code]; + const point = [location.lat, location.lng]; + bounds.push(point); + const popup = document.createElement("div"); + popup.textContent = `${code} ${location.city}: ${total} ${total === 1 ? "deltager" : "deltagere"}`; + L.circleMarker(point, { + radius: Math.min(32, 7 + Math.sqrt(total) * 3), + color: "#16472d", fillColor: "#1d5b39", fillOpacity: 0.65, weight: 2 + }).bindPopup(popup).bindTooltip(`${code}: ${total}`).addTo(participantMarkers); + } + if (bounds.length) participantMap.fitBounds(bounds, { padding: [35, 35], maxZoom: 11 }); + else participantMap.setView([56.1, 10.5], 6); + mapStatus.textContent = visitors.length === 0 ? "Ingen deltagere registreret endnu." : + `${visitors.length - missing} deltagere fra ${groups.size} postnumre vist.${missing ? ` ${missing} deltagere har et ukendt postnummer og vises ikke på kortet.` : ""}`; + if (tileError) mapStatus.textContent += " Baggrundskortet kunne ikke hentes; kontrollér internetforbindelsen."; +} diff --git a/wwwroot/postnummer-positioner.json b/wwwroot/postnummer-positioner.json new file mode 100644 index 0000000..ffede1e --- /dev/null +++ b/wwwroot/postnummer-positioner.json @@ -0,0 +1,5797 @@ +{ + "1050": { + "city": "København K", + "lat": 55.6806, + "lng": 12.5857 + }, + "1051": { + "city": "København K", + "lat": 55.68, + "lng": 12.5906 + }, + "1052": { + "city": "København K", + "lat": 55.6789, + "lng": 12.5901 + }, + "1053": { + "city": "København K", + "lat": 55.678, + "lng": 12.5907 + }, + "1054": { + "city": "København K", + "lat": 55.678, + "lng": 12.5888 + }, + "1055": { + "city": "København K", + "lat": 55.6781, + "lng": 12.5877 + }, + "1056": { + "city": "København K", + "lat": 55.6794, + "lng": 12.5883 + }, + "1057": { + "city": "København K", + "lat": 55.6784, + "lng": 12.5893 + }, + "1058": { + "city": "København K", + "lat": 55.6773, + "lng": 12.59 + }, + "1059": { + "city": "København K", + "lat": 55.6767, + "lng": 12.5869 + }, + "1060": { + "city": "København K", + "lat": 55.6778, + "lng": 12.5851 + }, + "1061": { + "city": "København K", + "lat": 55.6775, + "lng": 12.5813 + }, + "1062": { + "city": "København K", + "lat": 55.6775, + "lng": 12.582 + }, + "1063": { + "city": "København K", + "lat": 55.678, + "lng": 12.5838 + }, + "1064": { + "city": "København K", + "lat": 55.6784, + "lng": 12.5841 + }, + "1065": { + "city": "København K", + "lat": 55.678, + "lng": 12.5812 + }, + "1066": { + "city": "København K", + "lat": 55.6777, + "lng": 12.5822 + }, + "1067": { + "city": "København K", + "lat": 55.6787, + "lng": 12.5817 + }, + "1068": { + "city": "København K", + "lat": 55.6779, + "lng": 12.5828 + }, + "1069": { + "city": "København K", + "lat": 55.6785, + "lng": 12.5832 + }, + "1070": { + "city": "København K", + "lat": 55.6786, + "lng": 12.5835 + }, + "1071": { + "city": "København K", + "lat": 55.6781, + "lng": 12.5832 + }, + "1072": { + "city": "København K", + "lat": 55.6785, + "lng": 12.5807 + }, + "1073": { + "city": "København K", + "lat": 55.6788, + "lng": 12.5804 + }, + "1074": { + "city": "København K", + "lat": 55.6796, + "lng": 12.5836 + }, + "1100": { + "city": "København K", + "lat": 55.6798, + "lng": 12.5827 + }, + "1101": { + "city": "København K", + "lat": 55.6812, + "lng": 12.5826 + }, + "1102": { + "city": "København K", + "lat": 55.6808, + "lng": 12.5827 + }, + "1103": { + "city": "København K", + "lat": 55.6808, + "lng": 12.584 + }, + "1104": { + "city": "København K", + "lat": 55.6813, + "lng": 12.584 + }, + "1105": { + "city": "København K", + "lat": 55.6802, + "lng": 12.5821 + }, + "1106": { + "city": "København K", + "lat": 55.6804, + "lng": 12.5812 + }, + "1107": { + "city": "København K", + "lat": 55.6813, + "lng": 12.583 + }, + "1110": { + "city": "København K", + "lat": 55.6817, + "lng": 12.5823 + }, + "1111": { + "city": "København K", + "lat": 55.682, + "lng": 12.581 + }, + "1112": { + "city": "København K", + "lat": 55.6807, + "lng": 12.5801 + }, + "1113": { + "city": "København K", + "lat": 55.6801, + "lng": 12.58 + }, + "1114": { + "city": "København K", + "lat": 55.6807, + "lng": 12.5792 + }, + "1115": { + "city": "København K", + "lat": 55.681, + "lng": 12.5784 + }, + "1116": { + "city": "København K", + "lat": 55.6818, + "lng": 12.5796 + }, + "1117": { + "city": "København K", + "lat": 55.6814, + "lng": 12.5808 + }, + "1118": { + "city": "København K", + "lat": 55.6811, + "lng": 12.5807 + }, + "1119": { + "city": "København K", + "lat": 55.6825, + "lng": 12.5769 + }, + "1120": { + "city": "København K", + "lat": 55.6824, + "lng": 12.5786 + }, + "1121": { + "city": "København K", + "lat": 55.6828, + "lng": 12.5788 + }, + "1122": { + "city": "København K", + "lat": 55.6826, + "lng": 12.5797 + }, + "1123": { + "city": "København K", + "lat": 55.6835, + "lng": 12.5776 + }, + "1124": { + "city": "København K", + "lat": 55.6832, + "lng": 12.5762 + }, + "1125": { + "city": "København K", + "lat": 55.6823, + "lng": 12.5763 + }, + "1126": { + "city": "København K", + "lat": 55.6822, + "lng": 12.5752 + }, + "1127": { + "city": "København K", + "lat": 55.6829, + "lng": 12.5756 + }, + "1128": { + "city": "København K", + "lat": 55.6828, + "lng": 12.5746 + }, + "1129": { + "city": "København K", + "lat": 55.6831, + "lng": 12.5744 + }, + "1130": { + "city": "København K", + "lat": 55.6835, + "lng": 12.574 + }, + "1131": { + "city": "København K", + "lat": 55.6839, + "lng": 12.5739 + }, + "1150": { + "city": "København K", + "lat": 55.6806, + "lng": 12.5775 + }, + "1151": { + "city": "København K", + "lat": 55.6798, + "lng": 12.5773 + }, + "1152": { + "city": "København K", + "lat": 55.6804, + "lng": 12.5769 + }, + "1153": { + "city": "København K", + "lat": 55.6797, + "lng": 12.577 + }, + "1154": { + "city": "København K", + "lat": 55.6797, + "lng": 12.5759 + }, + "1155": { + "city": "København K", + "lat": 55.68, + "lng": 12.5754 + }, + "1156": { + "city": "København K", + "lat": 55.6795, + "lng": 12.5752 + }, + "1157": { + "city": "København K", + "lat": 55.6792, + "lng": 12.5753 + }, + "1158": { + "city": "København K", + "lat": 55.6786, + "lng": 12.5736 + }, + "1159": { + "city": "København K", + "lat": 55.6798, + "lng": 12.5747 + }, + "1160": { + "city": "København K", + "lat": 55.6788, + "lng": 12.578 + }, + "1161": { + "city": "København K", + "lat": 55.6786, + "lng": 12.575 + }, + "1162": { + "city": "København K", + "lat": 55.6789, + "lng": 12.5742 + }, + "1164": { + "city": "København K", + "lat": 55.6783, + "lng": 12.5735 + }, + "1165": { + "city": "København K", + "lat": 55.6809, + "lng": 12.5712 + }, + "1166": { + "city": "København K", + "lat": 55.6791, + "lng": 12.5731 + }, + "1167": { + "city": "København K", + "lat": 55.6791, + "lng": 12.5715 + }, + "1168": { + "city": "København K", + "lat": 55.6799, + "lng": 12.5722 + }, + "1169": { + "city": "København K", + "lat": 55.6806, + "lng": 12.5746 + }, + "1170": { + "city": "København K", + "lat": 55.6802, + "lng": 12.5747 + }, + "1171": { + "city": "København K", + "lat": 55.6814, + "lng": 12.5726 + }, + "1172": { + "city": "København K", + "lat": 55.6808, + "lng": 12.5734 + }, + "1173": { + "city": "København K", + "lat": 55.6817, + "lng": 12.574 + }, + "1174": { + "city": "København K", + "lat": 55.6823, + "lng": 12.5728 + }, + "1175": { + "city": "København K", + "lat": 55.6824, + "lng": 12.5738 + }, + "1200": { + "city": "København K", + "lat": 55.6784, + "lng": 12.58 + }, + "1201": { + "city": "København K", + "lat": 55.6781, + "lng": 12.5781 + }, + "1202": { + "city": "København K", + "lat": 55.6777, + "lng": 12.5784 + }, + "1203": { + "city": "København K", + "lat": 55.6764, + "lng": 12.5761 + }, + "1204": { + "city": "København K", + "lat": 55.6765, + "lng": 12.5755 + }, + "1205": { + "city": "København K", + "lat": 55.6771, + "lng": 12.5765 + }, + "1206": { + "city": "København K", + "lat": 55.6775, + "lng": 12.5771 + }, + "1207": { + "city": "København K", + "lat": 55.6781, + "lng": 12.5766 + }, + "1208": { + "city": "København K", + "lat": 55.6771, + "lng": 12.5753 + }, + "1209": { + "city": "København K", + "lat": 55.678, + "lng": 12.5753 + }, + "1210": { + "city": "København K", + "lat": 55.6775, + "lng": 12.575 + }, + "1211": { + "city": "København K", + "lat": 55.6776, + "lng": 12.5747 + }, + "1212": { + "city": "København K", + "lat": 55.6769, + "lng": 12.5789 + }, + "1213": { + "city": "København K", + "lat": 55.6764, + "lng": 12.5783 + }, + "1214": { + "city": "København K", + "lat": 55.6747, + "lng": 12.579 + }, + "1215": { + "city": "København K", + "lat": 55.6756, + "lng": 12.5846 + }, + "1216": { + "city": "København K", + "lat": 55.6752, + "lng": 12.584 + }, + "1218": { + "city": "København K", + "lat": 55.6757, + "lng": 12.5795 + }, + "1219": { + "city": "København K", + "lat": 55.6731, + "lng": 12.5818 + }, + "1220": { + "city": "København K", + "lat": 55.6742, + "lng": 12.5772 + }, + "1221": { + "city": "København K", + "lat": 55.6743, + "lng": 12.5845 + }, + "1250": { + "city": "København K", + "lat": 55.6815, + "lng": 12.5915 + }, + "1251": { + "city": "København K", + "lat": 55.6798, + "lng": 12.5935 + }, + "1252": { + "city": "København K", + "lat": 55.6813, + "lng": 12.5953 + }, + "1253": { + "city": "København K", + "lat": 55.6831, + "lng": 12.594 + }, + "1254": { + "city": "København K", + "lat": 55.6809, + "lng": 12.5901 + }, + "1255": { + "city": "København K", + "lat": 55.6811, + "lng": 12.5887 + }, + "1256": { + "city": "København K", + "lat": 55.6848, + "lng": 12.5936 + }, + "1257": { + "city": "København K", + "lat": 55.6842, + "lng": 12.5929 + }, + "1259": { + "city": "København K", + "lat": 55.69, + "lng": 12.5995 + }, + "1260": { + "city": "København K", + "lat": 55.6839, + "lng": 12.59 + }, + "1261": { + "city": "København K", + "lat": 55.6819, + "lng": 12.5869 + }, + "1263": { + "city": "København K", + "lat": 55.6875, + "lng": 12.5935 + }, + "1264": { + "city": "København K", + "lat": 55.685, + "lng": 12.5879 + }, + "1265": { + "city": "København K", + "lat": 55.6849, + "lng": 12.5902 + }, + "1266": { + "city": "København K", + "lat": 55.6878, + "lng": 12.5911 + }, + "1267": { + "city": "København K", + "lat": 55.6884, + "lng": 12.5907 + }, + "1268": { + "city": "København K", + "lat": 55.6888, + "lng": 12.5903 + }, + "1270": { + "city": "København K", + "lat": 55.689, + "lng": 12.591 + }, + "1271": { + "city": "København K", + "lat": 55.6892, + "lng": 12.5898 + }, + "1300": { + "city": "København K", + "lat": 55.685, + "lng": 12.5863 + }, + "1301": { + "city": "København K", + "lat": 55.6832, + "lng": 12.5856 + }, + "1302": { + "city": "København K", + "lat": 55.6839, + "lng": 12.5862 + }, + "1303": { + "city": "København K", + "lat": 55.686, + "lng": 12.5882 + }, + "1304": { + "city": "København K", + "lat": 55.6846, + "lng": 12.5843 + }, + "1306": { + "city": "København K", + "lat": 55.6857, + "lng": 12.5834 + }, + "1307": { + "city": "København K", + "lat": 55.6878, + "lng": 12.5789 + }, + "1308": { + "city": "København K", + "lat": 55.6866, + "lng": 12.5847 + }, + "1309": { + "city": "København K", + "lat": 55.6873, + "lng": 12.5836 + }, + "1310": { + "city": "København K", + "lat": 55.6864, + "lng": 12.5884 + }, + "1311": { + "city": "København K", + "lat": 55.6872, + "lng": 12.5868 + }, + "1312": { + "city": "København K", + "lat": 55.6875, + "lng": 12.5858 + }, + "1313": { + "city": "København K", + "lat": 55.6875, + "lng": 12.5871 + }, + "1314": { + "city": "København K", + "lat": 55.6878, + "lng": 12.5869 + }, + "1315": { + "city": "København K", + "lat": 55.6876, + "lng": 12.5879 + }, + "1316": { + "city": "København K", + "lat": 55.6881, + "lng": 12.583 + }, + "1317": { + "city": "København K", + "lat": 55.689, + "lng": 12.5829 + }, + "1318": { + "city": "København K", + "lat": 55.6885, + "lng": 12.5848 + }, + "1319": { + "city": "København K", + "lat": 55.6882, + "lng": 12.5872 + }, + "1320": { + "city": "København K", + "lat": 55.6886, + "lng": 12.5873 + }, + "1321": { + "city": "København K", + "lat": 55.6879, + "lng": 12.5894 + }, + "1322": { + "city": "København K", + "lat": 55.6889, + "lng": 12.5873 + }, + "1323": { + "city": "København K", + "lat": 55.6897, + "lng": 12.5857 + }, + "1324": { + "city": "København K", + "lat": 55.6891, + "lng": 12.588 + }, + "1325": { + "city": "København K", + "lat": 55.6895, + "lng": 12.5876 + }, + "1326": { + "city": "København K", + "lat": 55.6897, + "lng": 12.5879 + }, + "1327": { + "city": "København K", + "lat": 55.6902, + "lng": 12.5876 + }, + "1328": { + "city": "København K", + "lat": 55.6902, + "lng": 12.5882 + }, + "1329": { + "city": "København K", + "lat": 55.689, + "lng": 12.5851 + }, + "1350": { + "city": "København K", + "lat": 55.6885, + "lng": 12.5813 + }, + "1352": { + "city": "København K", + "lat": 55.6896, + "lng": 12.5726 + }, + "1353": { + "city": "København K", + "lat": 55.6879, + "lng": 12.572 + }, + "1354": { + "city": "København K", + "lat": 55.6893, + "lng": 12.5719 + }, + "1355": { + "city": "København K", + "lat": 55.6891, + "lng": 12.5713 + }, + "1356": { + "city": "København K", + "lat": 55.6869, + "lng": 12.5676 + }, + "1357": { + "city": "København K", + "lat": 55.6884, + "lng": 12.569 + }, + "1358": { + "city": "København K", + "lat": 55.6819, + "lng": 12.5701 + }, + "1359": { + "city": "København K", + "lat": 55.6833, + "lng": 12.5655 + }, + "1360": { + "city": "København K", + "lat": 55.6843, + "lng": 12.5698 + }, + "1361": { + "city": "København K", + "lat": 55.684, + "lng": 12.5706 + }, + "1362": { + "city": "København K", + "lat": 55.6843, + "lng": 12.5691 + }, + "1363": { + "city": "København K", + "lat": 55.6844, + "lng": 12.5671 + }, + "1364": { + "city": "København K", + "lat": 55.683, + "lng": 12.5662 + }, + "1365": { + "city": "København K", + "lat": 55.6821, + "lng": 12.5644 + }, + "1366": { + "city": "København K", + "lat": 55.6833, + "lng": 12.5649 + }, + "1367": { + "city": "København K", + "lat": 55.6831, + "lng": 12.5635 + }, + "1368": { + "city": "København K", + "lat": 55.6815, + "lng": 12.5632 + }, + "1369": { + "city": "København K", + "lat": 55.6808, + "lng": 12.5622 + }, + "1370": { + "city": "København K", + "lat": 55.6833, + "lng": 12.563 + }, + "1371": { + "city": "København K", + "lat": 55.686, + "lng": 12.5651 + }, + "1400": { + "city": "København K", + "lat": 55.6726, + "lng": 12.591 + }, + "1401": { + "city": "København K", + "lat": 55.6752, + "lng": 12.5922 + }, + "1402": { + "city": "København K", + "lat": 55.6724, + "lng": 12.5864 + }, + "1403": { + "city": "København K", + "lat": 55.6755, + "lng": 12.594 + }, + "1406": { + "city": "København K", + "lat": 55.6752, + "lng": 12.593 + }, + "1407": { + "city": "København K", + "lat": 55.6741, + "lng": 12.5946 + }, + "1408": { + "city": "København K", + "lat": 55.6733, + "lng": 12.5903 + }, + "1409": { + "city": "København K", + "lat": 55.6737, + "lng": 12.5877 + }, + "1410": { + "city": "København K", + "lat": 55.672, + "lng": 12.5911 + }, + "1411": { + "city": "København K", + "lat": 55.6704, + "lng": 12.5849 + }, + "1412": { + "city": "København K", + "lat": 55.6706, + "lng": 12.586 + }, + "1413": { + "city": "København K", + "lat": 55.6706, + "lng": 12.5866 + }, + "1414": { + "city": "København K", + "lat": 55.6729, + "lng": 12.5908 + }, + "1415": { + "city": "København K", + "lat": 55.6733, + "lng": 12.5929 + }, + "1416": { + "city": "København K", + "lat": 55.6731, + "lng": 12.5931 + }, + "1417": { + "city": "København K", + "lat": 55.6728, + "lng": 12.5924 + }, + "1418": { + "city": "København K", + "lat": 55.671, + "lng": 12.5908 + }, + "1419": { + "city": "København K", + "lat": 55.6705, + "lng": 12.5888 + }, + "1420": { + "city": "København K", + "lat": 55.6716, + "lng": 12.5912 + }, + "1421": { + "city": "København K", + "lat": 55.6703, + "lng": 12.5882 + }, + "1422": { + "city": "København K", + "lat": 55.6732, + "lng": 12.5956 + }, + "1423": { + "city": "København K", + "lat": 55.6707, + "lng": 12.5926 + }, + "1424": { + "city": "København K", + "lat": 55.6704, + "lng": 12.5917 + }, + "1425": { + "city": "København K", + "lat": 55.6718, + "lng": 12.5942 + }, + "1426": { + "city": "København K", + "lat": 55.6723, + "lng": 12.5969 + }, + "1427": { + "city": "København K", + "lat": 55.6751, + "lng": 12.597 + }, + "1428": { + "city": "København K", + "lat": 55.6758, + "lng": 12.5979 + }, + "1429": { + "city": "København K", + "lat": 55.6755, + "lng": 12.5986 + }, + "1430": { + "city": "København K", + "lat": 55.6764, + "lng": 12.5993 + }, + "1432": { + "city": "København K", + "lat": 55.6878, + "lng": 12.6129 + }, + "1433": { + "city": "København K", + "lat": 55.7119, + "lng": 12.6981 + }, + "1434": { + "city": "København K", + "lat": 55.6797, + "lng": 12.6028 + }, + "1435": { + "city": "København K", + "lat": 55.6806, + "lng": 12.6053 + }, + "1436": { + "city": "København K", + "lat": 55.6775, + "lng": 12.6034 + }, + "1437": { + "city": "København K", + "lat": 55.6801, + "lng": 12.6043 + }, + "1438": { + "city": "København K", + "lat": 55.6823, + "lng": 12.6021 + }, + "1439": { + "city": "København K", + "lat": 55.6865, + "lng": 12.6085 + }, + "1440": { + "city": "København K", + "lat": 55.6748, + "lng": 12.6034 + }, + "1441": { + "city": "København K", + "lat": 55.6769, + "lng": 12.6099 + }, + "1450": { + "city": "København K", + "lat": 55.6775, + "lng": 12.5734 + }, + "1451": { + "city": "København K", + "lat": 55.6801, + "lng": 12.5695 + }, + "1452": { + "city": "København K", + "lat": 55.6795, + "lng": 12.5684 + }, + "1453": { + "city": "København K", + "lat": 55.6791, + "lng": 12.5686 + }, + "1454": { + "city": "København K", + "lat": 55.6784, + "lng": 12.5694 + }, + "1455": { + "city": "København K", + "lat": 55.6785, + "lng": 12.5692 + }, + "1456": { + "city": "København K", + "lat": 55.6777, + "lng": 12.57 + }, + "1457": { + "city": "København K", + "lat": 55.6782, + "lng": 12.5719 + }, + "1458": { + "city": "København K", + "lat": 55.677, + "lng": 12.5714 + }, + "1459": { + "city": "København K", + "lat": 55.6772, + "lng": 12.5709 + }, + "1460": { + "city": "København K", + "lat": 55.6766, + "lng": 12.571 + }, + "1461": { + "city": "København K", + "lat": 55.6768, + "lng": 12.5728 + }, + "1462": { + "city": "København K", + "lat": 55.6763, + "lng": 12.5717 + }, + "1463": { + "city": "København K", + "lat": 55.6758, + "lng": 12.5723 + }, + "1464": { + "city": "København K", + "lat": 55.6765, + "lng": 12.5728 + }, + "1465": { + "city": "København K", + "lat": 55.6761, + "lng": 12.5735 + }, + "1466": { + "city": "København K", + "lat": 55.6768, + "lng": 12.5741 + }, + "1467": { + "city": "København K", + "lat": 55.6761, + "lng": 12.5741 + }, + "1468": { + "city": "København K", + "lat": 55.6755, + "lng": 12.5735 + }, + "1470": { + "city": "København K", + "lat": 55.6751, + "lng": 12.574 + }, + "1471": { + "city": "København K", + "lat": 55.6743, + "lng": 12.5756 + }, + "1472": { + "city": "København K", + "lat": 55.6737, + "lng": 12.5765 + }, + "1473": { + "city": "København K", + "lat": 55.6722, + "lng": 12.579 + }, + "1550": { + "city": "København V", + "lat": 55.6761, + "lng": 12.5695 + }, + "1551": { + "city": "København V", + "lat": 55.6788, + "lng": 12.566 + }, + "1552": { + "city": "København V", + "lat": 55.675, + "lng": 12.5724 + }, + "1553": { + "city": "København V", + "lat": 55.6744, + "lng": 12.5711 + }, + "1554": { + "city": "København V", + "lat": 55.6771, + "lng": 12.5654 + }, + "1555": { + "city": "København V", + "lat": 55.6746, + "lng": 12.5739 + }, + "1556": { + "city": "København V", + "lat": 55.6736, + "lng": 12.5735 + }, + "1557": { + "city": "København V", + "lat": 55.6731, + "lng": 12.5748 + }, + "1558": { + "city": "København V", + "lat": 55.672, + "lng": 12.577 + }, + "1559": { + "city": "København V", + "lat": 55.6716, + "lng": 12.5776 + }, + "1560": { + "city": "København V", + "lat": 55.6664, + "lng": 12.569 + }, + "1561": { + "city": "København V", + "lat": 55.6607, + "lng": 12.5628 + }, + "1562": { + "city": "København V", + "lat": 55.6705, + "lng": 12.5741 + }, + "1563": { + "city": "København V", + "lat": 55.6709, + "lng": 12.5741 + }, + "1564": { + "city": "København V", + "lat": 55.672, + "lng": 12.5755 + }, + "1567": { + "city": "København V", + "lat": 55.6703, + "lng": 12.5709 + }, + "1568": { + "city": "København V", + "lat": 55.67, + "lng": 12.5713 + }, + "1569": { + "city": "København V", + "lat": 55.6713, + "lng": 12.5708 + }, + "1570": { + "city": "København V", + "lat": 55.6735, + "lng": 12.5642 + }, + "1571": { + "city": "København V", + "lat": 55.6711, + "lng": 12.5728 + }, + "1572": { + "city": "København V", + "lat": 55.6716, + "lng": 12.5732 + }, + "1573": { + "city": "København V", + "lat": 55.6716, + "lng": 12.5745 + }, + "1574": { + "city": "København V", + "lat": 55.6718, + "lng": 12.5724 + }, + "1575": { + "city": "København V", + "lat": 55.6718, + "lng": 12.5709 + }, + "1576": { + "city": "København V", + "lat": 55.6712, + "lng": 12.57 + }, + "1577": { + "city": "København V", + "lat": 55.669, + "lng": 12.5663 + }, + "1600": { + "city": "København V", + "lat": 55.6801, + "lng": 12.5619 + }, + "1601": { + "city": "København V", + "lat": 55.6782, + "lng": 12.56 + }, + "1602": { + "city": "København V", + "lat": 55.6786, + "lng": 12.561 + }, + "1603": { + "city": "København V", + "lat": 55.6792, + "lng": 12.5623 + }, + "1604": { + "city": "København V", + "lat": 55.6777, + "lng": 12.5614 + }, + "1605": { + "city": "København V", + "lat": 55.6761, + "lng": 12.5607 + }, + "1606": { + "city": "København V", + "lat": 55.6772, + "lng": 12.5623 + }, + "1607": { + "city": "København V", + "lat": 55.6782, + "lng": 12.5634 + }, + "1608": { + "city": "København V", + "lat": 55.6761, + "lng": 12.5658 + }, + "1609": { + "city": "København V", + "lat": 55.6758, + "lng": 12.5648 + }, + "1610": { + "city": "København V", + "lat": 55.6739, + "lng": 12.5548 + }, + "1611": { + "city": "København V", + "lat": 55.676, + "lng": 12.5638 + }, + "1612": { + "city": "København V", + "lat": 55.6752, + "lng": 12.562 + }, + "1613": { + "city": "København V", + "lat": 55.6745, + "lng": 12.5617 + }, + "1614": { + "city": "København V", + "lat": 55.6739, + "lng": 12.5606 + }, + "1615": { + "city": "København V", + "lat": 55.6737, + "lng": 12.5591 + }, + "1616": { + "city": "København V", + "lat": 55.6732, + "lng": 12.557 + }, + "1617": { + "city": "København V", + "lat": 55.673, + "lng": 12.5545 + }, + "1618": { + "city": "København V", + "lat": 55.6736, + "lng": 12.551 + }, + "1619": { + "city": "København V", + "lat": 55.6737, + "lng": 12.5501 + }, + "1620": { + "city": "København V", + "lat": 55.6722, + "lng": 12.5507 + }, + "1621": { + "city": "København V", + "lat": 55.6729, + "lng": 12.548 + }, + "1622": { + "city": "København V", + "lat": 55.6724, + "lng": 12.5463 + }, + "1623": { + "city": "København V", + "lat": 55.6719, + "lng": 12.5453 + }, + "1624": { + "city": "København V", + "lat": 55.6721, + "lng": 12.546 + }, + "1631": { + "city": "København V", + "lat": 55.6827, + "lng": 12.5555 + }, + "1632": { + "city": "København V", + "lat": 55.6827, + "lng": 12.5549 + }, + "1633": { + "city": "København V", + "lat": 55.6823, + "lng": 12.5564 + }, + "1634": { + "city": "København V", + "lat": 55.6819, + "lng": 12.5558 + }, + "1635": { + "city": "København V", + "lat": 55.6829, + "lng": 12.5561 + }, + "1650": { + "city": "København V", + "lat": 55.6697, + "lng": 12.5549 + }, + "1651": { + "city": "København V", + "lat": 55.6722, + "lng": 12.5637 + }, + "1652": { + "city": "København V", + "lat": 55.6718, + "lng": 12.5626 + }, + "1653": { + "city": "København V", + "lat": 55.672, + "lng": 12.5612 + }, + "1654": { + "city": "København V", + "lat": 55.6715, + "lng": 12.5595 + }, + "1655": { + "city": "København V", + "lat": 55.6714, + "lng": 12.5581 + }, + "1656": { + "city": "København V", + "lat": 55.6711, + "lng": 12.5568 + }, + "1657": { + "city": "København V", + "lat": 55.6704, + "lng": 12.5558 + }, + "1658": { + "city": "København V", + "lat": 55.6704, + "lng": 12.5548 + }, + "1659": { + "city": "København V", + "lat": 55.6718, + "lng": 12.5545 + }, + "1660": { + "city": "København V", + "lat": 55.67, + "lng": 12.5528 + }, + "1661": { + "city": "København V", + "lat": 55.6714, + "lng": 12.5518 + }, + "1662": { + "city": "København V", + "lat": 55.6698, + "lng": 12.551 + }, + "1663": { + "city": "København V", + "lat": 55.6692, + "lng": 12.5499 + }, + "1664": { + "city": "København V", + "lat": 55.6719, + "lng": 12.5492 + }, + "1665": { + "city": "København V", + "lat": 55.6687, + "lng": 12.549 + }, + "1666": { + "city": "København V", + "lat": 55.6699, + "lng": 12.5485 + }, + "1667": { + "city": "København V", + "lat": 55.6691, + "lng": 12.547 + }, + "1668": { + "city": "København V", + "lat": 55.6684, + "lng": 12.548 + }, + "1669": { + "city": "København V", + "lat": 55.6672, + "lng": 12.5474 + }, + "1670": { + "city": "København V", + "lat": 55.667, + "lng": 12.546 + }, + "1671": { + "city": "København V", + "lat": 55.6667, + "lng": 12.5461 + }, + "1672": { + "city": "København V", + "lat": 55.6685, + "lng": 12.5464 + }, + "1673": { + "city": "København V", + "lat": 55.668, + "lng": 12.5465 + }, + "1674": { + "city": "København V", + "lat": 55.6685, + "lng": 12.5447 + }, + "1675": { + "city": "København V", + "lat": 55.6665, + "lng": 12.5468 + }, + "1676": { + "city": "København V", + "lat": 55.6662, + "lng": 12.5485 + }, + "1677": { + "city": "København V", + "lat": 55.666, + "lng": 12.5469 + }, + "1699": { + "city": "København V", + "lat": 55.6677, + "lng": 12.5619 + }, + "1700": { + "city": "København V", + "lat": 55.6695, + "lng": 12.5597 + }, + "1701": { + "city": "København V", + "lat": 55.6718, + "lng": 12.5633 + }, + "1702": { + "city": "København V", + "lat": 55.6713, + "lng": 12.5637 + }, + "1703": { + "city": "København V", + "lat": 55.6705, + "lng": 12.5629 + }, + "1704": { + "city": "København V", + "lat": 55.6711, + "lng": 12.567 + }, + "1705": { + "city": "København V", + "lat": 55.6647, + "lng": 12.5522 + }, + "1706": { + "city": "København V", + "lat": 55.6707, + "lng": 12.56 + }, + "1707": { + "city": "København V", + "lat": 55.6718, + "lng": 12.5607 + }, + "1708": { + "city": "København V", + "lat": 55.6696, + "lng": 12.5575 + }, + "1709": { + "city": "København V", + "lat": 55.6685, + "lng": 12.5543 + }, + "1710": { + "city": "København V", + "lat": 55.6703, + "lng": 12.5625 + }, + "1711": { + "city": "København V", + "lat": 55.6679, + "lng": 12.5596 + }, + "1712": { + "city": "København V", + "lat": 55.6683, + "lng": 12.5577 + }, + "1714": { + "city": "København V", + "lat": 55.6663, + "lng": 12.5586 + }, + "1715": { + "city": "København V", + "lat": 55.6686, + "lng": 12.5609 + }, + "1716": { + "city": "København V", + "lat": 55.6689, + "lng": 12.5588 + }, + "1717": { + "city": "København V", + "lat": 55.6667, + "lng": 12.5574 + }, + "1718": { + "city": "København V", + "lat": 55.6666, + "lng": 12.5561 + }, + "1719": { + "city": "København V", + "lat": 55.6663, + "lng": 12.5554 + }, + "1720": { + "city": "København V", + "lat": 55.6654, + "lng": 12.5481 + }, + "1721": { + "city": "København V", + "lat": 55.6663, + "lng": 12.5524 + }, + "1722": { + "city": "København V", + "lat": 55.666, + "lng": 12.5548 + }, + "1723": { + "city": "København V", + "lat": 55.6674, + "lng": 12.5524 + }, + "1724": { + "city": "København V", + "lat": 55.668, + "lng": 12.552 + }, + "1725": { + "city": "København V", + "lat": 55.6655, + "lng": 12.5542 + }, + "1726": { + "city": "København V", + "lat": 55.6654, + "lng": 12.5529 + }, + "1727": { + "city": "København V", + "lat": 55.6651, + "lng": 12.5517 + }, + "1728": { + "city": "København V", + "lat": 55.6648, + "lng": 12.5506 + }, + "1729": { + "city": "København V", + "lat": 55.6646, + "lng": 12.5492 + }, + "1730": { + "city": "København V", + "lat": 55.6644, + "lng": 12.5482 + }, + "1731": { + "city": "København V", + "lat": 55.6641, + "lng": 12.5468 + }, + "1732": { + "city": "København V", + "lat": 55.6639, + "lng": 12.5458 + }, + "1733": { + "city": "København V", + "lat": 55.6637, + "lng": 12.5443 + }, + "1734": { + "city": "København V", + "lat": 55.6652, + "lng": 12.5457 + }, + "1735": { + "city": "København V", + "lat": 55.665, + "lng": 12.5452 + }, + "1736": { + "city": "København V", + "lat": 55.6654, + "lng": 12.5441 + }, + "1737": { + "city": "København V", + "lat": 55.6648, + "lng": 12.5444 + }, + "1738": { + "city": "København V", + "lat": 55.6646, + "lng": 12.5437 + }, + "1739": { + "city": "København V", + "lat": 55.6644, + "lng": 12.543 + }, + "1749": { + "city": "København V", + "lat": 55.6696, + "lng": 12.5369 + }, + "1750": { + "city": "København V", + "lat": 55.6678, + "lng": 12.5397 + }, + "1751": { + "city": "København V", + "lat": 55.6703, + "lng": 12.5446 + }, + "1752": { + "city": "København V", + "lat": 55.6701, + "lng": 12.5432 + }, + "1753": { + "city": "København V", + "lat": 55.6696, + "lng": 12.5433 + }, + "1754": { + "city": "København V", + "lat": 55.6692, + "lng": 12.5441 + }, + "1755": { + "city": "København V", + "lat": 55.6696, + "lng": 12.5428 + }, + "1756": { + "city": "København V", + "lat": 55.6695, + "lng": 12.5418 + }, + "1757": { + "city": "København V", + "lat": 55.6691, + "lng": 12.5408 + }, + "1758": { + "city": "København V", + "lat": 55.6682, + "lng": 12.542 + }, + "1759": { + "city": "København V", + "lat": 55.6686, + "lng": 12.5435 + }, + "1760": { + "city": "København V", + "lat": 55.6657, + "lng": 12.5448 + }, + "1761": { + "city": "København V", + "lat": 55.6666, + "lng": 12.5401 + }, + "1762": { + "city": "København V", + "lat": 55.6651, + "lng": 12.5408 + }, + "1763": { + "city": "København V", + "lat": 55.6651, + "lng": 12.5417 + }, + "1764": { + "city": "København V", + "lat": 55.665, + "lng": 12.5408 + }, + "1765": { + "city": "København V", + "lat": 55.6643, + "lng": 12.5391 + }, + "1766": { + "city": "København V", + "lat": 55.6641, + "lng": 12.5407 + }, + "1770": { + "city": "København V", + "lat": 55.6686, + "lng": 12.538 + }, + "1771": { + "city": "København V", + "lat": 55.6685, + "lng": 12.5392 + }, + "1772": { + "city": "København V", + "lat": 55.6684, + "lng": 12.5386 + }, + "1773": { + "city": "København V", + "lat": 55.6682, + "lng": 12.538 + }, + "1774": { + "city": "København V", + "lat": 55.6678, + "lng": 12.5383 + }, + "1775": { + "city": "København V", + "lat": 55.6679, + "lng": 12.5368 + }, + "1777": { + "city": "København V", + "lat": 55.6675, + "lng": 12.5376 + }, + "1799": { + "city": "København V", + "lat": 55.6661, + "lng": 12.5347 + }, + "2100": { + "city": "København Ø", + "lat": 55.7072, + "lng": 12.572 + }, + "2150": { + "city": "Nordhavn", + "lat": 55.7119, + "lng": 12.5984 + }, + "2200": { + "city": "København N", + "lat": 55.6948, + "lng": 12.5503 + }, + "2300": { + "city": "København S", + "lat": 55.6511, + "lng": 12.603 + }, + "2400": { + "city": "København NV", + "lat": 55.7086, + "lng": 12.5263 + }, + "2450": { + "city": "København SV", + "lat": 55.6484, + "lng": 12.5359 + }, + "2500": { + "city": "Valby", + "lat": 55.661, + "lng": 12.5006 + }, + "2700": { + "city": "Brønshøj", + "lat": 55.7069, + "lng": 12.4845 + }, + "2720": { + "city": "Vanløse", + "lat": 55.6896, + "lng": 12.4869 + }, + "1800": { + "city": "Frederiksberg C", + "lat": 55.6707, + "lng": 12.5345 + }, + "1801": { + "city": "Frederiksberg C", + "lat": 55.6693, + "lng": 12.5342 + }, + "1802": { + "city": "Frederiksberg C", + "lat": 55.6698, + "lng": 12.534 + }, + "1803": { + "city": "Frederiksberg C", + "lat": 55.6701, + "lng": 12.5335 + }, + "1804": { + "city": "Frederiksberg C", + "lat": 55.6698, + "lng": 12.5322 + }, + "1805": { + "city": "Frederiksberg C", + "lat": 55.668, + "lng": 12.5313 + }, + "1806": { + "city": "Frederiksberg C", + "lat": 55.6722, + "lng": 12.5334 + }, + "1807": { + "city": "Frederiksberg C", + "lat": 55.6714, + "lng": 12.5333 + }, + "1808": { + "city": "Frederiksberg C", + "lat": 55.6715, + "lng": 12.5342 + }, + "1809": { + "city": "Frederiksberg C", + "lat": 55.6724, + "lng": 12.5358 + }, + "1810": { + "city": "Frederiksberg C", + "lat": 55.6719, + "lng": 12.5397 + }, + "1811": { + "city": "Frederiksberg C", + "lat": 55.673, + "lng": 12.5369 + }, + "1812": { + "city": "Frederiksberg C", + "lat": 55.6721, + "lng": 12.5375 + }, + "1813": { + "city": "Frederiksberg C", + "lat": 55.6722, + "lng": 12.5387 + }, + "1814": { + "city": "Frederiksberg C", + "lat": 55.6724, + "lng": 12.5412 + }, + "1815": { + "city": "Frederiksberg C", + "lat": 55.6728, + "lng": 12.5424 + }, + "1816": { + "city": "Frederiksberg C", + "lat": 55.6728, + "lng": 12.5435 + }, + "1817": { + "city": "Frederiksberg C", + "lat": 55.6722, + "lng": 12.543 + }, + "1818": { + "city": "Frederiksberg C", + "lat": 55.6727, + "lng": 12.5446 + }, + "1819": { + "city": "Frederiksberg C", + "lat": 55.6736, + "lng": 12.5496 + }, + "1820": { + "city": "Frederiksberg C", + "lat": 55.6739, + "lng": 12.5418 + }, + "1822": { + "city": "Frederiksberg C", + "lat": 55.6726, + "lng": 12.5458 + }, + "1823": { + "city": "Frederiksberg C", + "lat": 55.6729, + "lng": 12.5454 + }, + "1824": { + "city": "Frederiksberg C", + "lat": 55.6743, + "lng": 12.547 + }, + "1825": { + "city": "Frederiksberg C", + "lat": 55.6745, + "lng": 12.5456 + }, + "1826": { + "city": "Frederiksberg C", + "lat": 55.6748, + "lng": 12.5445 + }, + "1827": { + "city": "Frederiksberg C", + "lat": 55.6749, + "lng": 12.5433 + }, + "1828": { + "city": "Frederiksberg C", + "lat": 55.675, + "lng": 12.542 + }, + "1829": { + "city": "Frederiksberg C", + "lat": 55.6752, + "lng": 12.541 + }, + "1850": { + "city": "Frederiksberg C", + "lat": 55.6763, + "lng": 12.5424 + }, + "1851": { + "city": "Frederiksberg C", + "lat": 55.6755, + "lng": 12.5396 + }, + "1852": { + "city": "Frederiksberg C", + "lat": 55.6758, + "lng": 12.5382 + }, + "1853": { + "city": "Frederiksberg C", + "lat": 55.6754, + "lng": 12.5364 + }, + "1854": { + "city": "Frederiksberg C", + "lat": 55.6755, + "lng": 12.5346 + }, + "1855": { + "city": "Frederiksberg C", + "lat": 55.6762, + "lng": 12.5355 + }, + "1856": { + "city": "Frederiksberg C", + "lat": 55.6768, + "lng": 12.5371 + }, + "1857": { + "city": "Frederiksberg C", + "lat": 55.6771, + "lng": 12.5356 + }, + "1860": { + "city": "Frederiksberg C", + "lat": 55.6809, + "lng": 12.536 + }, + "1861": { + "city": "Frederiksberg C", + "lat": 55.6793, + "lng": 12.5351 + }, + "1862": { + "city": "Frederiksberg C", + "lat": 55.6795, + "lng": 12.536 + }, + "1863": { + "city": "Frederiksberg C", + "lat": 55.6798, + "lng": 12.5375 + }, + "1864": { + "city": "Frederiksberg C", + "lat": 55.6785, + "lng": 12.5383 + }, + "1865": { + "city": "Frederiksberg C", + "lat": 55.6789, + "lng": 12.5386 + }, + "1866": { + "city": "Frederiksberg C", + "lat": 55.6779, + "lng": 12.5382 + }, + "1867": { + "city": "Frederiksberg C", + "lat": 55.6786, + "lng": 12.54 + }, + "1868": { + "city": "Frederiksberg C", + "lat": 55.6775, + "lng": 12.5404 + }, + "1870": { + "city": "Frederiksberg C", + "lat": 55.6804, + "lng": 12.5417 + }, + "1871": { + "city": "Frederiksberg C", + "lat": 55.6812, + "lng": 12.545 + }, + "1872": { + "city": "Frederiksberg C", + "lat": 55.6803, + "lng": 12.5452 + }, + "1873": { + "city": "Frederiksberg C", + "lat": 55.68, + "lng": 12.5444 + }, + "1874": { + "city": "Frederiksberg C", + "lat": 55.6796, + "lng": 12.5465 + }, + "1875": { + "city": "Frederiksberg C", + "lat": 55.6789, + "lng": 12.5452 + }, + "1876": { + "city": "Frederiksberg C", + "lat": 55.678, + "lng": 12.5449 + }, + "1877": { + "city": "Frederiksberg C", + "lat": 55.677, + "lng": 12.5433 + }, + "1878": { + "city": "Frederiksberg C", + "lat": 55.6768, + "lng": 12.5446 + }, + "1879": { + "city": "Frederiksberg C", + "lat": 55.6802, + "lng": 12.5485 + }, + "1900": { + "city": "Frederiksberg C", + "lat": 55.6778, + "lng": 12.555 + }, + "1901": { + "city": "Frederiksberg C", + "lat": 55.6761, + "lng": 12.5464 + }, + "1902": { + "city": "Frederiksberg C", + "lat": 55.6774, + "lng": 12.5481 + }, + "1903": { + "city": "Frederiksberg C", + "lat": 55.677, + "lng": 12.5492 + }, + "1904": { + "city": "Frederiksberg C", + "lat": 55.6764, + "lng": 12.5503 + }, + "1905": { + "city": "Frederiksberg C", + "lat": 55.6757, + "lng": 12.5508 + }, + "1906": { + "city": "Frederiksberg C", + "lat": 55.6752, + "lng": 12.5515 + }, + "1908": { + "city": "Frederiksberg C", + "lat": 55.6748, + "lng": 12.5536 + }, + "1909": { + "city": "Frederiksberg C", + "lat": 55.6758, + "lng": 12.5525 + }, + "1910": { + "city": "Frederiksberg C", + "lat": 55.6794, + "lng": 12.551 + }, + "1911": { + "city": "Frederiksberg C", + "lat": 55.6781, + "lng": 12.5509 + }, + "1912": { + "city": "Frederiksberg C", + "lat": 55.679, + "lng": 12.5512 + }, + "1913": { + "city": "Frederiksberg C", + "lat": 55.6786, + "lng": 12.5524 + }, + "1914": { + "city": "Frederiksberg C", + "lat": 55.6781, + "lng": 12.5536 + }, + "1915": { + "city": "Frederiksberg C", + "lat": 55.6787, + "lng": 12.5531 + }, + "1916": { + "city": "Frederiksberg C", + "lat": 55.6776, + "lng": 12.5554 + }, + "1917": { + "city": "Frederiksberg C", + "lat": 55.6769, + "lng": 12.5552 + }, + "1920": { + "city": "Frederiksberg C", + "lat": 55.68, + "lng": 12.5516 + }, + "1921": { + "city": "Frederiksberg C", + "lat": 55.6799, + "lng": 12.5529 + }, + "1922": { + "city": "Frederiksberg C", + "lat": 55.6801, + "lng": 12.5534 + }, + "1923": { + "city": "Frederiksberg C", + "lat": 55.6811, + "lng": 12.5503 + }, + "1924": { + "city": "Frederiksberg C", + "lat": 55.6812, + "lng": 12.5514 + }, + "1925": { + "city": "Frederiksberg C", + "lat": 55.6808, + "lng": 12.5536 + }, + "1926": { + "city": "Frederiksberg C", + "lat": 55.6801, + "lng": 12.556 + }, + "1927": { + "city": "Frederiksberg C", + "lat": 55.6794, + "lng": 12.5557 + }, + "1928": { + "city": "Frederiksberg C", + "lat": 55.6788, + "lng": 12.5558 + }, + "1950": { + "city": "Frederiksberg C", + "lat": 55.6817, + "lng": 12.5371 + }, + "1951": { + "city": "Frederiksberg C", + "lat": 55.6821, + "lng": 12.5364 + }, + "1952": { + "city": "Frederiksberg C", + "lat": 55.6824, + "lng": 12.537 + }, + "1953": { + "city": "Frederiksberg C", + "lat": 55.6828, + "lng": 12.5377 + }, + "1954": { + "city": "Frederiksberg C", + "lat": 55.6839, + "lng": 12.5392 + }, + "1955": { + "city": "Frederiksberg C", + "lat": 55.6836, + "lng": 12.5403 + }, + "1956": { + "city": "Frederiksberg C", + "lat": 55.6835, + "lng": 12.5413 + }, + "1957": { + "city": "Frederiksberg C", + "lat": 55.6832, + "lng": 12.5421 + }, + "1958": { + "city": "Frederiksberg C", + "lat": 55.6848, + "lng": 12.5425 + }, + "1959": { + "city": "Frederiksberg C", + "lat": 55.6858, + "lng": 12.5413 + }, + "1960": { + "city": "Frederiksberg C", + "lat": 55.6847, + "lng": 12.5512 + }, + "1961": { + "city": "Frederiksberg C", + "lat": 55.6816, + "lng": 12.5471 + }, + "1962": { + "city": "Frederiksberg C", + "lat": 55.6824, + "lng": 12.5475 + }, + "1963": { + "city": "Frederiksberg C", + "lat": 55.6813, + "lng": 12.5481 + }, + "1964": { + "city": "Frederiksberg C", + "lat": 55.6842, + "lng": 12.548 + }, + "1965": { + "city": "Frederiksberg C", + "lat": 55.6833, + "lng": 12.5483 + }, + "1966": { + "city": "Frederiksberg C", + "lat": 55.6833, + "lng": 12.5508 + }, + "1967": { + "city": "Frederiksberg C", + "lat": 55.6843, + "lng": 12.5499 + }, + "1970": { + "city": "Frederiksberg C", + "lat": 55.6826, + "lng": 12.5499 + }, + "1971": { + "city": "Frederiksberg C", + "lat": 55.6841, + "lng": 12.5521 + }, + "1972": { + "city": "Frederiksberg C", + "lat": 55.6836, + "lng": 12.5526 + }, + "1973": { + "city": "Frederiksberg C", + "lat": 55.6835, + "lng": 12.5538 + }, + "1974": { + "city": "Frederiksberg C", + "lat": 55.6828, + "lng": 12.5543 + }, + "2000": { + "city": "Frederiksberg", + "lat": 55.6825, + "lng": 12.5179 + }, + "2740": { + "city": "Skovlunde", + "lat": 55.7154, + "lng": 12.3989 + }, + "2750": { + "city": "Ballerup", + "lat": 55.7333, + "lng": 12.3566 + }, + "2760": { + "city": "Måløv", + "lat": 55.7513, + "lng": 12.3197 + }, + "2605": { + "city": "Brøndby", + "lat": 55.6527, + "lng": 12.4132 + }, + "2660": { + "city": "Brøndby Strand", + "lat": 55.6227, + "lng": 12.417 + }, + "2791": { + "city": "Dragør", + "lat": 55.5882, + "lng": 12.6482 + }, + "2820": { + "city": "Gentofte", + "lat": 55.751, + "lng": 12.5302 + }, + "2870": { + "city": "Dyssegård", + "lat": 55.7328, + "lng": 12.5268 + }, + "2900": { + "city": "Hellerup", + "lat": 55.7344, + "lng": 12.5601 + }, + "2920": { + "city": "Charlottenlund", + "lat": 55.7582, + "lng": 12.573 + }, + "2930": { + "city": "Klampenborg", + "lat": 55.7701, + "lng": 12.5886 + }, + "2860": { + "city": "Søborg", + "lat": 55.7361, + "lng": 12.483 + }, + "2880": { + "city": "Bagsværd", + "lat": 55.7571, + "lng": 12.4558 + }, + "2600": { + "city": "Glostrup", + "lat": 55.6813, + "lng": 12.4039 + }, + "2730": { + "city": "Herlev", + "lat": 55.7338, + "lng": 12.4278 + }, + "2620": { + "city": "Albertslund", + "lat": 55.6671, + "lng": 12.349 + }, + "2650": { + "city": "Hvidovre", + "lat": 55.6367, + "lng": 12.4717 + }, + "2630": { + "city": "Taastrup", + "lat": 55.65, + "lng": 12.2904 + }, + "2640": { + "city": "Hedehusene", + "lat": 55.6508, + "lng": 12.1977 + }, + "2800": { + "city": "Kongens Lyngby", + "lat": 55.7801, + "lng": 12.5122 + }, + "2830": { + "city": "Virum", + "lat": 55.7912, + "lng": 12.4705 + }, + "2610": { + "city": "Rødovre", + "lat": 55.6889, + "lng": 12.451 + }, + "2635": { + "city": "Ishøj", + "lat": 55.6154, + "lng": 12.3395 + }, + "2770": { + "city": "Kastrup", + "lat": 55.6227, + "lng": 12.6094 + }, + "2625": { + "city": "Vallensbæk", + "lat": 55.6477, + "lng": 12.3623 + }, + "2665": { + "city": "Vallensbæk Strand", + "lat": 55.6218, + "lng": 12.3864 + }, + "3500": { + "city": "Værløse", + "lat": 55.7763, + "lng": 12.364 + }, + "3520": { + "city": "Farum", + "lat": 55.8171, + "lng": 12.3713 + }, + "3450": { + "city": "Allerød", + "lat": 55.8692, + "lng": 12.3484 + }, + "3540": { + "city": "Lynge", + "lat": 55.8379, + "lng": 12.2804 + }, + "2980": { + "city": "Kokkedal", + "lat": 55.9115, + "lng": 12.4889 + }, + "2990": { + "city": "Nivå", + "lat": 55.9374, + "lng": 12.5002 + }, + "3050": { + "city": "Humlebæk", + "lat": 55.9604, + "lng": 12.5221 + }, + "3480": { + "city": "Fredensborg", + "lat": 55.9727, + "lng": 12.4105 + }, + "3000": { + "city": "Helsingør", + "lat": 56.0337, + "lng": 12.5881 + }, + "3060": { + "city": "Espergærde", + "lat": 55.9917, + "lng": 12.5419 + }, + "3070": { + "city": "Snekkersten", + "lat": 56.0119, + "lng": 12.5766 + }, + "3080": { + "city": "Tikøb", + "lat": 56.029, + "lng": 12.4465 + }, + "3100": { + "city": "Hornbæk", + "lat": 56.084, + "lng": 12.4523 + }, + "3140": { + "city": "Ålsgårde", + "lat": 56.0774, + "lng": 12.5283 + }, + "3150": { + "city": "Hellebæk", + "lat": 56.0668, + "lng": 12.5577 + }, + "3490": { + "city": "Kvistgård", + "lat": 55.9961, + "lng": 12.501 + }, + "3320": { + "city": "Skævinge", + "lat": 55.9179, + "lng": 12.1528 + }, + "3330": { + "city": "Gørløse", + "lat": 55.8839, + "lng": 12.1997 + }, + "3400": { + "city": "Hillerød", + "lat": 55.9359, + "lng": 12.2918 + }, + "2960": { + "city": "Rungsted Kyst", + "lat": 55.8868, + "lng": 12.5306 + }, + "2970": { + "city": "Hørsholm", + "lat": 55.8892, + "lng": 12.4963 + }, + "2840": { + "city": "Holte", + "lat": 55.8192, + "lng": 12.4855 + }, + "2850": { + "city": "Nærum", + "lat": 55.8182, + "lng": 12.533 + }, + "2942": { + "city": "Skodsborg", + "lat": 55.8275, + "lng": 12.5719 + }, + "2950": { + "city": "Vedbæk", + "lat": 55.8461, + "lng": 12.5454 + }, + "3460": { + "city": "Birkerød", + "lat": 55.8423, + "lng": 12.4296 + }, + "2765": { + "city": "Smørum", + "lat": 55.7361, + "lng": 12.2977 + }, + "3650": { + "city": "Ølstykke", + "lat": 55.7836, + "lng": 12.1609 + }, + "3660": { + "city": "Stenløse", + "lat": 55.7772, + "lng": 12.2177 + }, + "3670": { + "city": "Veksø Sjælland", + "lat": 55.7576, + "lng": 12.2386 + }, + "3550": { + "city": "Slangerup", + "lat": 55.8462, + "lng": 12.1744 + }, + "3600": { + "city": "Frederikssund", + "lat": 55.8383, + "lng": 12.0732 + }, + "3630": { + "city": "Jægerspris", + "lat": 55.8631, + "lng": 11.96 + }, + "4050": { + "city": "Skibby", + "lat": 55.7585, + "lng": 11.9552 + }, + "3300": { + "city": "Frederiksværk", + "lat": 55.9787, + "lng": 12.0242 + }, + "3310": { + "city": "Ølsted", + "lat": 55.9124, + "lng": 12.0604 + }, + "3360": { + "city": "Liseleje", + "lat": 56.0078, + "lng": 11.9679 + }, + "3370": { + "city": "Melby", + "lat": 55.992, + "lng": 11.9718 + }, + "3390": { + "city": "Hundested", + "lat": 55.9662, + "lng": 11.8782 + }, + "3120": { + "city": "Dronningmølle", + "lat": 56.0969, + "lng": 12.3818 + }, + "3200": { + "city": "Helsinge", + "lat": 56.016, + "lng": 12.1849 + }, + "3210": { + "city": "Vejby", + "lat": 56.0804, + "lng": 12.1437 + }, + "3220": { + "city": "Tisvildeleje", + "lat": 56.0579, + "lng": 12.0915 + }, + "3230": { + "city": "Græsted", + "lat": 56.0765, + "lng": 12.2586 + }, + "3250": { + "city": "Gilleleje", + "lat": 56.116, + "lng": 12.2866 + }, + "3700": { + "city": "Rønne", + "lat": 55.1065, + "lng": 14.7247 + }, + "3720": { + "city": "Aakirkeby", + "lat": 55.053, + "lng": 14.9259 + }, + "3730": { + "city": "Nexø", + "lat": 55.0428, + "lng": 15.1073 + }, + "3740": { + "city": "Svaneke", + "lat": 55.1313, + "lng": 15.1295 + }, + "3751": { + "city": "Østermarie", + "lat": 55.1385, + "lng": 15.0191 + }, + "3760": { + "city": "Gudhjem", + "lat": 55.1964, + "lng": 14.9504 + }, + "3770": { + "city": "Allinge", + "lat": 55.2654, + "lng": 14.805 + }, + "3782": { + "city": "Klemensker", + "lat": 55.18, + "lng": 14.8112 + }, + "3790": { + "city": "Hasle", + "lat": 55.1928, + "lng": 14.7193 + }, + "8700": { + "city": "Horsens", + "lat": 55.8623, + "lng": 9.8468 + }, + "8732": { + "city": "Hovedgård", + "lat": 55.9484, + "lng": 9.9577 + }, + "8740": { + "city": "Brædstrup", + "lat": 55.9727, + "lng": 9.6192 + }, + "8751": { + "city": "Gedved", + "lat": 55.9319, + "lng": 9.8467 + }, + "8752": { + "city": "Østbirk", + "lat": 55.9699, + "lng": 9.7518 + }, + "8789": { + "city": "Endelave", + "lat": 55.755, + "lng": 10.284 + }, + "6933": { + "city": "Kibæk", + "lat": 56.0102, + "lng": 8.8682 + }, + "6973": { + "city": "Ørnhøj", + "lat": 56.1973, + "lng": 8.5671 + }, + "7270": { + "city": "Stakroge", + "lat": 55.8965, + "lng": 8.847 + }, + "7280": { + "city": "Sønder Felding", + "lat": 55.9411, + "lng": 8.7837 + }, + "7400": { + "city": "Herning", + "lat": 56.1331, + "lng": 8.9736 + }, + "7451": { + "city": "Sunds", + "lat": 56.2173, + "lng": 9.0229 + }, + "7480": { + "city": "Vildbjerg", + "lat": 56.1877, + "lng": 8.7674 + }, + "7490": { + "city": "Aulum", + "lat": 56.2731, + "lng": 8.8037 + }, + "7540": { + "city": "Haderup", + "lat": 56.3566, + "lng": 8.9744 + }, + "7550": { + "city": "Sørvad", + "lat": 56.2605, + "lng": 8.6559 + }, + "6990": { + "city": "Ulfborg", + "lat": 56.2967, + "lng": 8.2163 + }, + "7500": { + "city": "Holstebro", + "lat": 56.363, + "lng": 8.6301 + }, + "7570": { + "city": "Vemb", + "lat": 56.3474, + "lng": 8.3622 + }, + "7830": { + "city": "Vinderup", + "lat": 56.4743, + "lng": 8.7959 + }, + "7620": { + "city": "Lemvig", + "lat": 56.541, + "lng": 8.292 + }, + "7650": { + "city": "Bøvlingbjerg", + "lat": 56.4376, + "lng": 8.2097 + }, + "7660": { + "city": "Bækmarksbro", + "lat": 56.4146, + "lng": 8.3202 + }, + "7673": { + "city": "Harboøre", + "lat": 56.6012, + "lng": 8.1592 + }, + "7680": { + "city": "Thyborøn", + "lat": 56.6984, + "lng": 8.2122 + }, + "7560": { + "city": "Hjerm", + "lat": 56.4395, + "lng": 8.6457 + }, + "7600": { + "city": "Struer", + "lat": 56.4925, + "lng": 8.5722 + }, + "7790": { + "city": "Thyholm", + "lat": 56.6368, + "lng": 8.5454 + }, + "8400": { + "city": "Ebeltoft", + "lat": 56.2173, + "lng": 10.6747 + }, + "8410": { + "city": "Rønde", + "lat": 56.3108, + "lng": 10.4664 + }, + "8420": { + "city": "Knebel", + "lat": 56.1792, + "lng": 10.4728 + }, + "8444": { + "city": "Balle", + "lat": 56.3145, + "lng": 10.7922 + }, + "8543": { + "city": "Hornslet", + "lat": 56.3161, + "lng": 10.3114 + }, + "8544": { + "city": "Mørke", + "lat": 56.3521, + "lng": 10.3423 + }, + "8550": { + "city": "Ryomgård", + "lat": 56.3849, + "lng": 10.4826 + }, + "8560": { + "city": "Kolind", + "lat": 56.3532, + "lng": 10.5908 + }, + "8581": { + "city": "Nimtofte", + "lat": 56.4133, + "lng": 10.5803 + }, + "8500": { + "city": "Grenaa", + "lat": 56.4213, + "lng": 10.8743 + }, + "8570": { + "city": "Trustrup", + "lat": 56.3567, + "lng": 10.7585 + }, + "8585": { + "city": "Glesborg", + "lat": 56.5089, + "lng": 10.6657 + }, + "8586": { + "city": "Ørum Djurs", + "lat": 56.445, + "lng": 10.6601 + }, + "8592": { + "city": "Anholt", + "lat": 56.7066, + "lng": 11.5396 + }, + "8950": { + "city": "Ørsted", + "lat": 56.5294, + "lng": 10.3334 + }, + "8961": { + "city": "Allingåbro", + "lat": 56.4807, + "lng": 10.4173 + }, + "8963": { + "city": "Auning", + "lat": 56.4306, + "lng": 10.3752 + }, + "8370": { + "city": "Hadsten", + "lat": 56.3324, + "lng": 10.0663 + }, + "8382": { + "city": "Hinnerup", + "lat": 56.2595, + "lng": 10.0657 + }, + "8450": { + "city": "Hammel", + "lat": 56.2572, + "lng": 9.8651 + }, + "8472": { + "city": "Sporup", + "lat": 56.2128, + "lng": 9.8331 + }, + "8860": { + "city": "Ulstrup", + "lat": 56.3874, + "lng": 9.7928 + }, + "8881": { + "city": "Thorsø", + "lat": 56.3045, + "lng": 9.7856 + }, + "8300": { + "city": "Odder", + "lat": 55.9626, + "lng": 10.1795 + }, + "8350": { + "city": "Hundslund", + "lat": 55.913, + "lng": 10.0565 + }, + "8799": { + "city": "Tunø", + "lat": 55.9512, + "lng": 10.4371 + }, + "8870": { + "city": "Langå", + "lat": 56.4097, + "lng": 9.9173 + }, + "8900": { + "city": "Randers C", + "lat": 56.464, + "lng": 10.0341 + }, + "8920": { + "city": "Randers NV", + "lat": 56.4764, + "lng": 9.9773 + }, + "8930": { + "city": "Randers NØ", + "lat": 56.4835, + "lng": 10.0844 + }, + "8940": { + "city": "Randers SV", + "lat": 56.4358, + "lng": 10.0334 + }, + "8960": { + "city": "Randers SØ", + "lat": 56.4422, + "lng": 10.1127 + }, + "8970": { + "city": "Havndal", + "lat": 56.6359, + "lng": 10.2281 + }, + "8981": { + "city": "Spentrup", + "lat": 56.54, + "lng": 10.0408 + }, + "8983": { + "city": "Gjerlev J", + "lat": 56.5835, + "lng": 10.1393 + }, + "8990": { + "city": "Fårup", + "lat": 56.5456, + "lng": 9.879 + }, + "8600": { + "city": "Silkeborg", + "lat": 56.1726, + "lng": 9.5564 + }, + "8620": { + "city": "Kjellerup", + "lat": 56.286, + "lng": 9.4126 + }, + "8632": { + "city": "Lemming", + "lat": 56.2401, + "lng": 9.5379 + }, + "8641": { + "city": "Sorring", + "lat": 56.1772, + "lng": 9.7805 + }, + "8643": { + "city": "Ans By", + "lat": 56.2993, + "lng": 9.6023 + }, + "8653": { + "city": "Them", + "lat": 56.0898, + "lng": 9.5503 + }, + "8654": { + "city": "Bryrup", + "lat": 56.026, + "lng": 9.517 + }, + "8882": { + "city": "Fårvang", + "lat": 56.2703, + "lng": 9.7072 + }, + "8883": { + "city": "Gjern", + "lat": 56.2244, + "lng": 9.738 + }, + "8305": { + "city": "Samsø", + "lat": 55.8602, + "lng": 10.5856 + }, + "8362": { + "city": "Hørning", + "lat": 56.0848, + "lng": 10.0333 + }, + "8464": { + "city": "Galten", + "lat": 56.1563, + "lng": 9.9273 + }, + "8660": { + "city": "Skanderborg", + "lat": 56.0401, + "lng": 9.9302 + }, + "8670": { + "city": "Låsby", + "lat": 56.1514, + "lng": 9.8075 + }, + "8680": { + "city": "Ry", + "lat": 56.0885, + "lng": 9.759 + }, + "8000": { + "city": "Aarhus C", + "lat": 56.1535, + "lng": 10.2034 + }, + "8200": { + "city": "Aarhus N", + "lat": 56.1888, + "lng": 10.1901 + }, + "8210": { + "city": "Aarhus V", + "lat": 56.1712, + "lng": 10.1605 + }, + "8220": { + "city": "Brabrand", + "lat": 56.1578, + "lng": 10.1092 + }, + "8230": { + "city": "Åbyhøj", + "lat": 56.1526, + "lng": 10.1602 + }, + "8240": { + "city": "Risskov", + "lat": 56.1976, + "lng": 10.2292 + }, + "8250": { + "city": "Egå", + "lat": 56.2216, + "lng": 10.293 + }, + "8260": { + "city": "Viby J", + "lat": 56.1284, + "lng": 10.1421 + }, + "8270": { + "city": "Højbjerg", + "lat": 56.1119, + "lng": 10.1907 + }, + "8310": { + "city": "Tranbjerg J", + "lat": 56.0904, + "lng": 10.1318 + }, + "8320": { + "city": "Mårslet", + "lat": 56.0698, + "lng": 10.1619 + }, + "8330": { + "city": "Beder", + "lat": 56.0578, + "lng": 10.2156 + }, + "8340": { + "city": "Malling", + "lat": 56.036, + "lng": 10.2065 + }, + "8355": { + "city": "Solbjerg", + "lat": 56.0396, + "lng": 10.0881 + }, + "8361": { + "city": "Hasselager", + "lat": 56.1077, + "lng": 10.0882 + }, + "8380": { + "city": "Trige", + "lat": 56.2648, + "lng": 10.1466 + }, + "8381": { + "city": "Tilst", + "lat": 56.1859, + "lng": 10.1089 + }, + "8462": { + "city": "Harlev J", + "lat": 56.1449, + "lng": 9.9963 + }, + "8471": { + "city": "Sabro", + "lat": 56.2079, + "lng": 10.0395 + }, + "8520": { + "city": "Lystrup", + "lat": 56.2374, + "lng": 10.2318 + }, + "8530": { + "city": "Hjortshøj", + "lat": 56.2628, + "lng": 10.2499 + }, + "8541": { + "city": "Skødstrup", + "lat": 56.2658, + "lng": 10.3144 + }, + "7330": { + "city": "Brande", + "lat": 55.9339, + "lng": 9.11 + }, + "7361": { + "city": "Ejstrupholm", + "lat": 55.9894, + "lng": 9.2921 + }, + "7362": { + "city": "Hampen", + "lat": 56.0173, + "lng": 9.3582 + }, + "7430": { + "city": "Ikast", + "lat": 56.1334, + "lng": 9.1573 + }, + "7441": { + "city": "Bording", + "lat": 56.1509, + "lng": 9.2703 + }, + "7442": { + "city": "Engesvang", + "lat": 56.1689, + "lng": 9.3436 + }, + "8765": { + "city": "Klovborg", + "lat": 55.9306, + "lng": 9.4903 + }, + "8766": { + "city": "Nørre Snede", + "lat": 55.9653, + "lng": 9.3974 + }, + "6880": { + "city": "Tarm", + "lat": 55.8883, + "lng": 8.5146 + }, + "6893": { + "city": "Hemmet", + "lat": 55.8418, + "lng": 8.3124 + }, + "6900": { + "city": "Skjern", + "lat": 55.9668, + "lng": 8.4999 + }, + "6920": { + "city": "Videbæk", + "lat": 56.0762, + "lng": 8.6563 + }, + "6940": { + "city": "Lem St", + "lat": 56.0361, + "lng": 8.3917 + }, + "6950": { + "city": "Ringkøbing", + "lat": 56.1039, + "lng": 8.2118 + }, + "6960": { + "city": "Hvide Sande", + "lat": 55.9573, + "lng": 8.1433 + }, + "6971": { + "city": "Spjald", + "lat": 56.137, + "lng": 8.5018 + }, + "6980": { + "city": "Tim", + "lat": 56.1977, + "lng": 8.2896 + }, + "7130": { + "city": "Juelsminde", + "lat": 55.7519, + "lng": 9.9985 + }, + "7140": { + "city": "Stouby", + "lat": 55.7077, + "lng": 9.798 + }, + "7150": { + "city": "Barrit", + "lat": 55.7131, + "lng": 9.8894 + }, + "7160": { + "city": "Tørring", + "lat": 55.8592, + "lng": 9.504 + }, + "7171": { + "city": "Uldum", + "lat": 55.8443, + "lng": 9.591 + }, + "8721": { + "city": "Daugård", + "lat": 55.7314, + "lng": 9.7117 + }, + "8722": { + "city": "Hedensted", + "lat": 55.7692, + "lng": 9.7022 + }, + "8723": { + "city": "Løsning", + "lat": 55.8028, + "lng": 9.6973 + }, + "8762": { + "city": "Flemming", + "lat": 55.8706, + "lng": 9.6629 + }, + "8763": { + "city": "Rask Mølle", + "lat": 55.875, + "lng": 9.6114 + }, + "8781": { + "city": "Stenderup", + "lat": 55.7903, + "lng": 9.8068 + }, + "8783": { + "city": "Hornsyld", + "lat": 55.7627, + "lng": 9.8514 + }, + "7800": { + "city": "Skive", + "lat": 56.5678, + "lng": 9.0226 + }, + "7840": { + "city": "Højslev", + "lat": 56.5815, + "lng": 9.1723 + }, + "7860": { + "city": "Spøttrup", + "lat": 56.615, + "lng": 8.8218 + }, + "7870": { + "city": "Roslev", + "lat": 56.7234, + "lng": 8.9892 + }, + "7884": { + "city": "Fur", + "lat": 56.822, + "lng": 9.0224 + }, + "7470": { + "city": "Karup J", + "lat": 56.3262, + "lng": 9.2049 + }, + "7850": { + "city": "Stoholm Jyll", + "lat": 56.484, + "lng": 9.1354 + }, + "8800": { + "city": "Viborg", + "lat": 56.4451, + "lng": 9.3909 + }, + "8830": { + "city": "Tjele", + "lat": 56.502, + "lng": 9.6119 + }, + "8831": { + "city": "Løgstrup", + "lat": 56.519, + "lng": 9.3224 + }, + "8832": { + "city": "Skals", + "lat": 56.5807, + "lng": 9.3716 + }, + "8840": { + "city": "Rødkærsbro", + "lat": 56.3503, + "lng": 9.5115 + }, + "8850": { + "city": "Bjerringbro", + "lat": 56.379, + "lng": 9.6515 + }, + "9632": { + "city": "Møldrup", + "lat": 56.6077, + "lng": 9.5031 + }, + "7900": { + "city": "Nykøbing M", + "lat": 56.8107, + "lng": 8.8325 + }, + "7950": { + "city": "Erslev", + "lat": 56.8472, + "lng": 8.7063 + }, + "7960": { + "city": "Karby", + "lat": 56.7533, + "lng": 8.5789 + }, + "7970": { + "city": "Redsted M", + "lat": 56.741, + "lng": 8.6453 + }, + "7980": { + "city": "Vils", + "lat": 56.7585, + "lng": 8.7271 + }, + "7990": { + "city": "Øster Assels", + "lat": 56.7025, + "lng": 8.7222 + }, + "7700": { + "city": "Thisted", + "lat": 56.9726, + "lng": 8.6263 + }, + "7730": { + "city": "Hanstholm", + "lat": 57.107, + "lng": 8.6391 + }, + "7741": { + "city": "Frøstrup", + "lat": 57.1063, + "lng": 8.9832 + }, + "7742": { + "city": "Vesløs", + "lat": 57.022, + "lng": 8.9721 + }, + "7752": { + "city": "Snedsted", + "lat": 56.8782, + "lng": 8.5045 + }, + "7755": { + "city": "Bedsted Thy", + "lat": 56.821, + "lng": 8.4021 + }, + "7760": { + "city": "Hurup Thy", + "lat": 56.7306, + "lng": 8.4147 + }, + "7770": { + "city": "Vestervig", + "lat": 56.7726, + "lng": 8.2802 + }, + "9320": { + "city": "Hjallerup", + "lat": 57.1772, + "lng": 10.1484 + }, + "9330": { + "city": "Dronninglund", + "lat": 57.1791, + "lng": 10.2976 + }, + "9340": { + "city": "Asaa", + "lat": 57.1367, + "lng": 10.3919 + }, + "9700": { + "city": "Brønderslev", + "lat": 57.273, + "lng": 9.9482 + }, + "9740": { + "city": "Jerslev J", + "lat": 57.2896, + "lng": 10.1101 + }, + "9300": { + "city": "Sæby", + "lat": 57.3102, + "lng": 10.5013 + }, + "9352": { + "city": "Dybvad", + "lat": 57.2803, + "lng": 10.3281 + }, + "9750": { + "city": "Østervrå", + "lat": 57.3401, + "lng": 10.2594 + }, + "9900": { + "city": "Frederikshavn", + "lat": 57.4404, + "lng": 10.5041 + }, + "9970": { + "city": "Strandby", + "lat": 57.4956, + "lng": 10.4893 + }, + "9981": { + "city": "Jerup", + "lat": 57.5261, + "lng": 10.4362 + }, + "9982": { + "city": "Ålbæk", + "lat": 57.5996, + "lng": 10.4044 + }, + "9990": { + "city": "Skagen", + "lat": 57.7208, + "lng": 10.5621 + }, + "9600": { + "city": "Aars", + "lat": 56.8062, + "lng": 9.4964 + }, + "9620": { + "city": "Aalestrup", + "lat": 56.694, + "lng": 9.4909 + }, + "9631": { + "city": "Gedsted", + "lat": 56.6911, + "lng": 9.3438 + }, + "9640": { + "city": "Farsø", + "lat": 56.7691, + "lng": 9.2872 + }, + "9670": { + "city": "Løgstør", + "lat": 56.9303, + "lng": 9.2656 + }, + "9681": { + "city": "Ranum", + "lat": 56.8967, + "lng": 9.2038 + }, + "9940": { + "city": "Læsø", + "lat": 57.288, + "lng": 11.0146 + }, + "9520": { + "city": "Skørping", + "lat": 56.8442, + "lng": 9.9058 + }, + "9530": { + "city": "Støvring", + "lat": 56.8945, + "lng": 9.8197 + }, + "9541": { + "city": "Suldrup", + "lat": 56.8479, + "lng": 9.6904 + }, + "9574": { + "city": "Bælum", + "lat": 56.8271, + "lng": 10.1248 + }, + "9575": { + "city": "Terndrup", + "lat": 56.8125, + "lng": 10.0575 + }, + "9610": { + "city": "Nørager", + "lat": 56.7454, + "lng": 9.6701 + }, + "9500": { + "city": "Hobro", + "lat": 56.6469, + "lng": 9.7953 + }, + "9510": { + "city": "Arden", + "lat": 56.7647, + "lng": 9.892 + }, + "9550": { + "city": "Mariager", + "lat": 56.6527, + "lng": 10.008 + }, + "9560": { + "city": "Hadsund", + "lat": 56.7505, + "lng": 10.2076 + }, + "9440": { + "city": "Aabybro", + "lat": 57.1458, + "lng": 9.7416 + }, + "9460": { + "city": "Brovst", + "lat": 57.1072, + "lng": 9.5186 + }, + "9490": { + "city": "Pandrup", + "lat": 57.2111, + "lng": 9.6381 + }, + "9492": { + "city": "Blokhus", + "lat": 57.2542, + "lng": 9.6048 + }, + "9493": { + "city": "Saltum", + "lat": 57.2809, + "lng": 9.6602 + }, + "9690": { + "city": "Fjerritslev", + "lat": 57.0961, + "lng": 9.2608 + }, + "9000": { + "city": "Aalborg", + "lat": 57.0394, + "lng": 9.9135 + }, + "9200": { + "city": "Aalborg SV", + "lat": 57.0116, + "lng": 9.8702 + }, + "9210": { + "city": "Aalborg SØ", + "lat": 57.0108, + "lng": 9.9382 + }, + "9220": { + "city": "Aalborg Øst", + "lat": 57.0291, + "lng": 9.9939 + }, + "9230": { + "city": "Svenstrup J", + "lat": 56.9679, + "lng": 9.8502 + }, + "9240": { + "city": "Nibe", + "lat": 56.9807, + "lng": 9.6229 + }, + "9260": { + "city": "Gistrup", + "lat": 56.9813, + "lng": 9.9943 + }, + "9270": { + "city": "Klarup", + "lat": 57.0119, + "lng": 10.05 + }, + "9280": { + "city": "Storvorde", + "lat": 56.9769, + "lng": 10.1718 + }, + "9293": { + "city": "Kongerslev", + "lat": 56.8928, + "lng": 10.1153 + }, + "9310": { + "city": "Vodskov", + "lat": 57.1002, + "lng": 10.0665 + }, + "9362": { + "city": "Gandrup", + "lat": 57.0555, + "lng": 10.1854 + }, + "9370": { + "city": "Hals", + "lat": 57.0316, + "lng": 10.3312 + }, + "9380": { + "city": "Vestbjerg", + "lat": 57.1318, + "lng": 9.9628 + }, + "9381": { + "city": "Sulsted", + "lat": 57.1645, + "lng": 9.9601 + }, + "9382": { + "city": "Tylstrup", + "lat": 57.1981, + "lng": 9.9408 + }, + "9400": { + "city": "Nørresundby", + "lat": 57.0698, + "lng": 9.9249 + }, + "9430": { + "city": "Vadum", + "lat": 57.1195, + "lng": 9.8578 + }, + "9480": { + "city": "Løkken", + "lat": 57.3825, + "lng": 9.7439 + }, + "9760": { + "city": "Vrå", + "lat": 57.3581, + "lng": 9.9481 + }, + "9800": { + "city": "Hjørring", + "lat": 57.4654, + "lng": 9.9685 + }, + "9830": { + "city": "Tårs", + "lat": 57.3804, + "lng": 10.1308 + }, + "9850": { + "city": "Hirtshals", + "lat": 57.5707, + "lng": 9.9667 + }, + "9870": { + "city": "Sindal", + "lat": 57.4677, + "lng": 10.236 + }, + "9881": { + "city": "Bindslev", + "lat": 57.5707, + "lng": 10.2023 + }, + "2670": { + "city": "Greve", + "lat": 55.5906, + "lng": 12.3018 + }, + "2690": { + "city": "Karlslunde", + "lat": 55.5663, + "lng": 12.2468 + }, + "4030": { + "city": "Tune", + "lat": 55.5955, + "lng": 12.1851 + }, + "4140": { + "city": "Borup", + "lat": 55.4947, + "lng": 11.9809 + }, + "4600": { + "city": "Køge", + "lat": 55.4624, + "lng": 12.1696 + }, + "4623": { + "city": "Lille Skensved", + "lat": 55.4975, + "lng": 12.096 + }, + "4632": { + "city": "Bjæverskov", + "lat": 55.4571, + "lng": 12.0418 + }, + "4681": { + "city": "Herfølge", + "lat": 55.4109, + "lng": 12.1414 + }, + "4682": { + "city": "Tureby", + "lat": 55.3841, + "lng": 12.0821 + }, + "4000": { + "city": "Roskilde", + "lat": 55.6513, + "lng": 12.0958 + }, + "4040": { + "city": "Jyllinge", + "lat": 55.7585, + "lng": 12.1069 + }, + "4130": { + "city": "Viby Sjælland", + "lat": 55.5499, + "lng": 12.0221 + }, + "4621": { + "city": "Gadstrup", + "lat": 55.5705, + "lng": 12.1032 + }, + "2680": { + "city": "Solrød Strand", + "lat": 55.532, + "lng": 12.213 + }, + "4622": { + "city": "Havdrup", + "lat": 55.5438, + "lng": 12.1221 + }, + "4500": { + "city": "Nykøbing Sj", + "lat": 55.9281, + "lng": 11.6393 + }, + "4534": { + "city": "Hørve", + "lat": 55.7538, + "lng": 11.4328 + }, + "4540": { + "city": "Fårevejle", + "lat": 55.8166, + "lng": 11.4282 + }, + "4550": { + "city": "Asnæs", + "lat": 55.8255, + "lng": 11.4991 + }, + "4560": { + "city": "Vig", + "lat": 55.8585, + "lng": 11.5577 + }, + "4571": { + "city": "Grevinge", + "lat": 55.7935, + "lng": 11.5885 + }, + "4572": { + "city": "Nørre Asmindrup", + "lat": 55.8798, + "lng": 11.6151 + }, + "4573": { + "city": "Højby", + "lat": 55.9059, + "lng": 11.5548 + }, + "4581": { + "city": "Rørvig", + "lat": 55.9497, + "lng": 11.7498 + }, + "4583": { + "city": "Sjællands Odde", + "lat": 55.9712, + "lng": 11.3624 + }, + "4300": { + "city": "Holbæk", + "lat": 55.7186, + "lng": 11.7069 + }, + "4305": { + "city": "Orø", + "lat": 55.7717, + "lng": 11.813 + }, + "4340": { + "city": "Tølløse", + "lat": 55.6114, + "lng": 11.727 + }, + "4350": { + "city": "Ugerløse", + "lat": 55.5881, + "lng": 11.6489 + }, + "4360": { + "city": "Kirke Eskilstrup", + "lat": 55.5705, + "lng": 11.7737 + }, + "4370": { + "city": "Store Merløse", + "lat": 55.5462, + "lng": 11.7159 + }, + "4390": { + "city": "Vipperød", + "lat": 55.6675, + "lng": 11.7431 + }, + "4420": { + "city": "Regstrup", + "lat": 55.6664, + "lng": 11.6185 + }, + "4440": { + "city": "Mørkøv", + "lat": 55.6513, + "lng": 11.5085 + }, + "4450": { + "city": "Jyderup", + "lat": 55.6602, + "lng": 11.4104 + }, + "4520": { + "city": "Svinninge", + "lat": 55.7188, + "lng": 11.4769 + }, + "4532": { + "city": "Gislinge", + "lat": 55.7328, + "lng": 11.5543 + }, + "4640": { + "city": "Faxe", + "lat": 55.2452, + "lng": 12.12 + }, + "4653": { + "city": "Karise", + "lat": 55.3055, + "lng": 12.1959 + }, + "4654": { + "city": "Faxe Ladeplads", + "lat": 55.2174, + "lng": 12.1601 + }, + "4683": { + "city": "Rønnede", + "lat": 55.2514, + "lng": 12.0302 + }, + "4690": { + "city": "Haslev", + "lat": 55.325, + "lng": 11.9696 + }, + "4270": { + "city": "Høng", + "lat": 55.5073, + "lng": 11.296 + }, + "4281": { + "city": "Gørlev", + "lat": 55.5324, + "lng": 11.1825 + }, + "4400": { + "city": "Kalundborg", + "lat": 55.6882, + "lng": 11.0848 + }, + "4460": { + "city": "Snertinge", + "lat": 55.7118, + "lng": 11.3801 + }, + "4470": { + "city": "Svebølle", + "lat": 55.6511, + "lng": 11.2885 + }, + "4480": { + "city": "Store Fuglede", + "lat": 55.5759, + "lng": 11.1709 + }, + "4490": { + "city": "Jerslev Sjælland", + "lat": 55.6163, + "lng": 11.2278 + }, + "4591": { + "city": "Føllenslev", + "lat": 55.746, + "lng": 11.3329 + }, + "4592": { + "city": "Sejerø", + "lat": 55.8916, + "lng": 11.1334 + }, + "4593": { + "city": "Eskebjerg", + "lat": 55.7022, + "lng": 11.274 + }, + "4100": { + "city": "Ringsted", + "lat": 55.4442, + "lng": 11.8065 + }, + "4174": { + "city": "Jystrup Midtsj", + "lat": 55.5176, + "lng": 11.8643 + }, + "4200": { + "city": "Slagelse", + "lat": 55.4044, + "lng": 11.3353 + }, + "4220": { + "city": "Korsør", + "lat": 55.3415, + "lng": 11.1549 + }, + "4230": { + "city": "Skælskør", + "lat": 55.2517, + "lng": 11.3043 + }, + "4241": { + "city": "Vemmelev", + "lat": 55.3612, + "lng": 11.2565 + }, + "4242": { + "city": "Boeslunde", + "lat": 55.305, + "lng": 11.2653 + }, + "4243": { + "city": "Rude", + "lat": 55.2142, + "lng": 11.4891 + }, + "4244": { + "city": "Agersø", + "lat": 55.2155, + "lng": 11.186 + }, + "4245": { + "city": "Omø", + "lat": 55.1575, + "lng": 11.1527 + }, + "4261": { + "city": "Dalmose", + "lat": 55.2855, + "lng": 11.4168 + }, + "4652": { + "city": "Hårlev", + "lat": 55.3509, + "lng": 12.2291 + }, + "4660": { + "city": "Store Heddinge", + "lat": 55.3096, + "lng": 12.3772 + }, + "4671": { + "city": "Strøby", + "lat": 55.395, + "lng": 12.2964 + }, + "4672": { + "city": "Klippinge", + "lat": 55.3553, + "lng": 12.3319 + }, + "4673": { + "city": "Rødvig Stevns", + "lat": 55.2576, + "lng": 12.3671 + }, + "4173": { + "city": "Fjenneslev", + "lat": 55.4334, + "lng": 11.6617 + }, + "4180": { + "city": "Sorø", + "lat": 55.4361, + "lng": 11.5633 + }, + "4190": { + "city": "Munke Bjergby", + "lat": 55.4991, + "lng": 11.5253 + }, + "4291": { + "city": "Ruds Vedby", + "lat": 55.5393, + "lng": 11.3794 + }, + "4293": { + "city": "Dianalund", + "lat": 55.5331, + "lng": 11.4889 + }, + "4295": { + "city": "Stenlille", + "lat": 55.543, + "lng": 11.5842 + }, + "4296": { + "city": "Nyrup", + "lat": 55.5434, + "lng": 11.6494 + }, + "4060": { + "city": "Kirke Såby", + "lat": 55.6459, + "lng": 11.8572 + }, + "4070": { + "city": "Kirke Hyllinge", + "lat": 55.7007, + "lng": 11.8935 + }, + "4320": { + "city": "Lejre", + "lat": 55.5819, + "lng": 11.9668 + }, + "4330": { + "city": "Hvalsø", + "lat": 55.5938, + "lng": 11.8649 + }, + "4895": { + "city": "Errindlev", + "lat": 54.6636, + "lng": 11.5015 + }, + "4900": { + "city": "Nakskov", + "lat": 54.8288, + "lng": 11.1277 + }, + "4912": { + "city": "Harpelunde", + "lat": 54.8771, + "lng": 11.0719 + }, + "4913": { + "city": "Horslunde", + "lat": 54.9212, + "lng": 11.2104 + }, + "4920": { + "city": "Søllested", + "lat": 54.8032, + "lng": 11.278 + }, + "4930": { + "city": "Maribo", + "lat": 54.7737, + "lng": 11.4972 + }, + "4941": { + "city": "Bandholm", + "lat": 54.8389, + "lng": 11.4681 + }, + "4942": { + "city": "Askø", + "lat": 54.893, + "lng": 11.4993 + }, + "4943": { + "city": "Torrig L", + "lat": 54.9085, + "lng": 11.3244 + }, + "4944": { + "city": "Fejø", + "lat": 54.9441, + "lng": 11.4089 + }, + "4945": { + "city": "Femø", + "lat": 54.9739, + "lng": 11.5378 + }, + "4951": { + "city": "Nørreballe", + "lat": 54.8094, + "lng": 11.4285 + }, + "4952": { + "city": "Stokkemarke", + "lat": 54.843, + "lng": 11.3728 + }, + "4953": { + "city": "Vesterborg", + "lat": 54.8652, + "lng": 11.2954 + }, + "4960": { + "city": "Holeby", + "lat": 54.7098, + "lng": 11.4829 + }, + "4970": { + "city": "Rødby", + "lat": 54.6835, + "lng": 11.3591 + }, + "4983": { + "city": "Dannemare", + "lat": 54.7396, + "lng": 11.189 + }, + "4160": { + "city": "Herlufmagle", + "lat": 55.3139, + "lng": 11.751 + }, + "4171": { + "city": "Glumsø", + "lat": 55.3621, + "lng": 11.6897 + }, + "4250": { + "city": "Fuglebjerg", + "lat": 55.3092, + "lng": 11.5482 + }, + "4262": { + "city": "Sandved", + "lat": 55.2534, + "lng": 11.5218 + }, + "4684": { + "city": "Holmegaard", + "lat": 55.268, + "lng": 11.8297 + }, + "4700": { + "city": "Næstved", + "lat": 55.2237, + "lng": 11.7629 + }, + "4733": { + "city": "Tappernøje", + "lat": 55.1769, + "lng": 11.9719 + }, + "4736": { + "city": "Karrebæksminde", + "lat": 55.1778, + "lng": 11.6523 + }, + "4800": { + "city": "Nykøbing F", + "lat": 54.7723, + "lng": 11.884 + }, + "4840": { + "city": "Nørre Alslev", + "lat": 54.9069, + "lng": 11.8529 + }, + "4850": { + "city": "Stubbekøbing", + "lat": 54.8846, + "lng": 12.0383 + }, + "4862": { + "city": "Guldborg", + "lat": 54.8637, + "lng": 11.7322 + }, + "4863": { + "city": "Eskilstrup", + "lat": 54.8542, + "lng": 11.8843 + }, + "4871": { + "city": "Horbelev", + "lat": 54.8238, + "lng": 12.0644 + }, + "4872": { + "city": "Idestrup", + "lat": 54.7247, + "lng": 11.9782 + }, + "4873": { + "city": "Væggerløse", + "lat": 54.6829, + "lng": 11.9496 + }, + "4874": { + "city": "Gedser", + "lat": 54.5953, + "lng": 11.944 + }, + "4880": { + "city": "Nysted", + "lat": 54.6704, + "lng": 11.7255 + }, + "4891": { + "city": "Toreby L", + "lat": 54.7597, + "lng": 11.7775 + }, + "4892": { + "city": "Kettinge", + "lat": 54.7008, + "lng": 11.747 + }, + "4894": { + "city": "Øster Ulslev", + "lat": 54.6958, + "lng": 11.6061 + }, + "4990": { + "city": "Sakskøbing", + "lat": 54.7971, + "lng": 11.6452 + }, + "4720": { + "city": "Præstø", + "lat": 55.1112, + "lng": 12.0618 + }, + "4735": { + "city": "Mern", + "lat": 55.0464, + "lng": 12.0706 + }, + "4750": { + "city": "Lundby", + "lat": 55.1098, + "lng": 11.8361 + }, + "4760": { + "city": "Vordingborg", + "lat": 55.0184, + "lng": 11.9152 + }, + "4771": { + "city": "Kalvehave", + "lat": 55.003, + "lng": 12.1508 + }, + "4772": { + "city": "Langebæk", + "lat": 54.9976, + "lng": 12.0811 + }, + "4773": { + "city": "Stensved", + "lat": 54.995, + "lng": 12.0268 + }, + "4780": { + "city": "Stege", + "lat": 54.9904, + "lng": 12.2915 + }, + "4791": { + "city": "Borre", + "lat": 54.9777, + "lng": 12.4697 + }, + "4792": { + "city": "Askeby", + "lat": 54.9063, + "lng": 12.1605 + }, + "4793": { + "city": "Bogø By", + "lat": 54.9233, + "lng": 12.0508 + }, + "5463": { + "city": "Harndrup", + "lat": 55.4572, + "lng": 10.0226 + }, + "5464": { + "city": "Brenderup Fyn", + "lat": 55.4986, + "lng": 9.9731 + }, + "5466": { + "city": "Asperup", + "lat": 55.4964, + "lng": 9.9025 + }, + "5500": { + "city": "Middelfart", + "lat": 55.5063, + "lng": 9.764 + }, + "5580": { + "city": "Nørre Aaby", + "lat": 55.4544, + "lng": 9.8711 + }, + "5591": { + "city": "Gelsted", + "lat": 55.3948, + "lng": 9.9623 + }, + "5592": { + "city": "Ejby", + "lat": 55.4228, + "lng": 9.9224 + }, + "5492": { + "city": "Vissenbjerg", + "lat": 55.3875, + "lng": 10.137 + }, + "5560": { + "city": "Aarup", + "lat": 55.3759, + "lng": 10.0484 + }, + "5610": { + "city": "Assens", + "lat": 55.2803, + "lng": 9.9166 + }, + "5620": { + "city": "Glamsbjerg", + "lat": 55.2758, + "lng": 10.0941 + }, + "5631": { + "city": "Ebberup", + "lat": 55.2081, + "lng": 9.9902 + }, + "5683": { + "city": "Haarby", + "lat": 55.2123, + "lng": 10.1075 + }, + "5690": { + "city": "Tommerup", + "lat": 55.3243, + "lng": 10.2044 + }, + "5600": { + "city": "Faaborg", + "lat": 55.1049, + "lng": 10.2503 + }, + "5601": { + "city": "Lyø", + "lat": 55.0434, + "lng": 10.1513 + }, + "5602": { + "city": "Avernakø", + "lat": 55.025, + "lng": 10.2758 + }, + "5603": { + "city": "Bjørnø", + "lat": 55.0639, + "lng": 10.2517 + }, + "5642": { + "city": "Millinge", + "lat": 55.1412, + "lng": 10.1733 + }, + "5672": { + "city": "Broby", + "lat": 55.2422, + "lng": 10.2629 + }, + "5750": { + "city": "Ringe", + "lat": 55.2326, + "lng": 10.4568 + }, + "5772": { + "city": "Kværndrup", + "lat": 55.179, + "lng": 10.5316 + }, + "5792": { + "city": "Årslev", + "lat": 55.3009, + "lng": 10.4407 + }, + "5854": { + "city": "Gislev", + "lat": 55.2161, + "lng": 10.6006 + }, + "5856": { + "city": "Ryslinge", + "lat": 55.2371, + "lng": 10.5366 + }, + "5863": { + "city": "Ferritslev Fyn", + "lat": 55.3133, + "lng": 10.5821 + }, + "5290": { + "city": "Marslev", + "lat": 55.395, + "lng": 10.5238 + }, + "5300": { + "city": "Kerteminde", + "lat": 55.4519, + "lng": 10.6486 + }, + "5330": { + "city": "Munkebo", + "lat": 55.458, + "lng": 10.5544 + }, + "5350": { + "city": "Rynkeby", + "lat": 55.3997, + "lng": 10.6134 + }, + "5370": { + "city": "Mesinge", + "lat": 55.508, + "lng": 10.629 + }, + "5380": { + "city": "Dalby", + "lat": 55.5166, + "lng": 10.6722 + }, + "5390": { + "city": "Martofte", + "lat": 55.5703, + "lng": 10.6254 + }, + "5550": { + "city": "Langeskov", + "lat": 55.3614, + "lng": 10.5855 + }, + "5540": { + "city": "Ullerslev", + "lat": 55.3583, + "lng": 10.6646 + }, + "5800": { + "city": "Nyborg", + "lat": 55.322, + "lng": 10.7801 + }, + "5853": { + "city": "Ørbæk", + "lat": 55.264, + "lng": 10.6608 + }, + "5871": { + "city": "Frørup", + "lat": 55.2388, + "lng": 10.7645 + }, + "5000": { + "city": "Odense C", + "lat": 55.4028, + "lng": 10.392 + }, + "5200": { + "city": "Odense V", + "lat": 55.3953, + "lng": 10.3289 + }, + "5210": { + "city": "Odense NV", + "lat": 55.415, + "lng": 10.3132 + }, + "5220": { + "city": "Odense SØ", + "lat": 55.3727, + "lng": 10.4601 + }, + "5230": { + "city": "Odense M", + "lat": 55.381, + "lng": 10.4017 + }, + "5240": { + "city": "Odense NØ", + "lat": 55.4176, + "lng": 10.4446 + }, + "5250": { + "city": "Odense SV", + "lat": 55.3585, + "lng": 10.3366 + }, + "5260": { + "city": "Odense S", + "lat": 55.3462, + "lng": 10.3902 + }, + "5270": { + "city": "Odense N", + "lat": 55.4341, + "lng": 10.3612 + }, + "5320": { + "city": "Agedrup", + "lat": 55.4259, + "lng": 10.4757 + }, + "5491": { + "city": "Blommenslyst", + "lat": 55.3879, + "lng": 10.25 + }, + "5700": { + "city": "Svendborg", + "lat": 55.0528, + "lng": 10.6094 + }, + "5762": { + "city": "Vester Skerninge", + "lat": 55.0722, + "lng": 10.4594 + }, + "5771": { + "city": "Stenstrup", + "lat": 55.1272, + "lng": 10.5131 + }, + "5874": { + "city": "Hesselager", + "lat": 55.1711, + "lng": 10.766 + }, + "5881": { + "city": "Skårup Fyn", + "lat": 55.0869, + "lng": 10.6986 + }, + "5882": { + "city": "Vejstrup", + "lat": 55.1092, + "lng": 10.7094 + }, + "5883": { + "city": "Oure", + "lat": 55.1218, + "lng": 10.725 + }, + "5884": { + "city": "Gudme", + "lat": 55.1497, + "lng": 10.7034 + }, + "5892": { + "city": "Gudbjerg Sydfyn", + "lat": 55.157, + "lng": 10.6569 + }, + "5400": { + "city": "Bogense", + "lat": 55.5548, + "lng": 10.0939 + }, + "5450": { + "city": "Otterup", + "lat": 55.5401, + "lng": 10.4029 + }, + "5462": { + "city": "Morud", + "lat": 55.4437, + "lng": 10.1928 + }, + "5471": { + "city": "Søndersø", + "lat": 55.4912, + "lng": 10.2028 + }, + "5474": { + "city": "Veflinge", + "lat": 55.4682, + "lng": 10.1526 + }, + "5485": { + "city": "Skamby", + "lat": 55.5188, + "lng": 10.2766 + }, + "5900": { + "city": "Rudkøbing", + "lat": 54.923, + "lng": 10.7403 + }, + "5932": { + "city": "Humble", + "lat": 54.8126, + "lng": 10.6901 + }, + "5935": { + "city": "Bagenkop", + "lat": 54.7511, + "lng": 10.6862 + }, + "5943": { + "city": "Strynø", + "lat": 54.9049, + "lng": 10.6108 + }, + "5953": { + "city": "Tranekær", + "lat": 55.0605, + "lng": 10.8773 + }, + "5960": { + "city": "Marstal", + "lat": 54.8575, + "lng": 10.5085 + }, + "5965": { + "city": "Birkholm", + "lat": 54.9307, + "lng": 10.5042 + }, + "5970": { + "city": "Ærøskøbing", + "lat": 54.8771, + "lng": 10.3895 + }, + "5985": { + "city": "Søby Ærø", + "lat": 54.9319, + "lng": 10.2671 + }, + "6100": { + "city": "Haderslev", + "lat": 55.2431, + "lng": 9.5239 + }, + "6500": { + "city": "Vojens", + "lat": 55.2428, + "lng": 9.2999 + }, + "6510": { + "city": "Gram", + "lat": 55.2814, + "lng": 9.0265 + }, + "6541": { + "city": "Bevtoft", + "lat": 55.198, + "lng": 9.204 + }, + "6560": { + "city": "Sommersted", + "lat": 55.3226, + "lng": 9.284 + }, + "6623": { + "city": "Vorbasse", + "lat": 55.6354, + "lng": 9.0813 + }, + "7190": { + "city": "Billund", + "lat": 55.7261, + "lng": 9.1164 + }, + "7200": { + "city": "Grindsted", + "lat": 55.7602, + "lng": 8.9211 + }, + "7250": { + "city": "Hejnsvig", + "lat": 55.6884, + "lng": 8.9799 + }, + "7260": { + "city": "Sønder Omme", + "lat": 55.8425, + "lng": 8.8964 + }, + "6300": { + "city": "Gråsten", + "lat": 54.9146, + "lng": 9.5725 + }, + "6310": { + "city": "Broager", + "lat": 54.8859, + "lng": 9.6782 + }, + "6320": { + "city": "Egernsund", + "lat": 54.9041, + "lng": 9.6154 + }, + "6400": { + "city": "Sønderborg", + "lat": 54.9213, + "lng": 9.7764 + }, + "6430": { + "city": "Nordborg", + "lat": 55.0331, + "lng": 9.7881 + }, + "6440": { + "city": "Augustenborg", + "lat": 54.9631, + "lng": 9.9198 + }, + "6470": { + "city": "Sydals", + "lat": 54.9011, + "lng": 9.9565 + }, + "6240": { + "city": "Løgumkloster", + "lat": 55.0555, + "lng": 8.979 + }, + "6261": { + "city": "Bredebro", + "lat": 55.0545, + "lng": 8.7706 + }, + "6270": { + "city": "Tønder", + "lat": 54.9442, + "lng": 8.8692 + }, + "6280": { + "city": "Højer", + "lat": 54.973, + "lng": 8.704 + }, + "6520": { + "city": "Toftlund", + "lat": 55.1794, + "lng": 9.0356 + }, + "6534": { + "city": "Agerskov", + "lat": 55.1294, + "lng": 9.1426 + }, + "6535": { + "city": "Branderup J", + "lat": 55.1198, + "lng": 9.065 + }, + "6780": { + "city": "Skærbæk", + "lat": 55.1659, + "lng": 8.7766 + }, + "6792": { + "city": "Rømø", + "lat": 55.1154, + "lng": 8.5377 + }, + "6690": { + "city": "Gørding", + "lat": 55.4732, + "lng": 8.8019 + }, + "6700": { + "city": "Esbjerg", + "lat": 55.4732, + "lng": 8.4592 + }, + "6705": { + "city": "Esbjerg Ø", + "lat": 55.4886, + "lng": 8.4965 + }, + "6710": { + "city": "Esbjerg V", + "lat": 55.5165, + "lng": 8.3942 + }, + "6715": { + "city": "Esbjerg N", + "lat": 55.517, + "lng": 8.4587 + }, + "6731": { + "city": "Tjæreborg", + "lat": 55.4648, + "lng": 8.5852 + }, + "6740": { + "city": "Bramming", + "lat": 55.4711, + "lng": 8.7055 + }, + "6760": { + "city": "Ribe", + "lat": 55.3209, + "lng": 8.7714 + }, + "6771": { + "city": "Gredstedbro", + "lat": 55.4033, + "lng": 8.7495 + }, + "6720": { + "city": "Fanø", + "lat": 55.4173, + "lng": 8.4037 + }, + "6753": { + "city": "Agerbæk", + "lat": 55.6024, + "lng": 8.8009 + }, + "6800": { + "city": "Varde", + "lat": 55.6349, + "lng": 8.5033 + }, + "6818": { + "city": "Årre", + "lat": 55.5748, + "lng": 8.6743 + }, + "6823": { + "city": "Ansager", + "lat": 55.7173, + "lng": 8.7474 + }, + "6830": { + "city": "Nørre Nebel", + "lat": 55.7814, + "lng": 8.2688 + }, + "6840": { + "city": "Oksbøl", + "lat": 55.6419, + "lng": 8.2731 + }, + "6851": { + "city": "Janderup Vestj", + "lat": 55.6306, + "lng": 8.3734 + }, + "6852": { + "city": "Billum", + "lat": 55.6137, + "lng": 8.3274 + }, + "6853": { + "city": "Vejers Strand", + "lat": 55.6247, + "lng": 8.1316 + }, + "6854": { + "city": "Henne", + "lat": 55.7332, + "lng": 8.2051 + }, + "6855": { + "city": "Outrup", + "lat": 55.7166, + "lng": 8.353 + }, + "6857": { + "city": "Blåvand", + "lat": 55.5542, + "lng": 8.1504 + }, + "6862": { + "city": "Tistrup", + "lat": 55.7165, + "lng": 8.612 + }, + "6870": { + "city": "Ølgod", + "lat": 55.8017, + "lng": 8.6196 + }, + "6600": { + "city": "Vejen", + "lat": 55.4789, + "lng": 9.1389 + }, + "6621": { + "city": "Gesten", + "lat": 55.5269, + "lng": 9.2039 + }, + "6622": { + "city": "Bække", + "lat": 55.5753, + "lng": 9.1472 + }, + "6630": { + "city": "Rødding", + "lat": 55.3707, + "lng": 9.1124 + }, + "6650": { + "city": "Brørup", + "lat": 55.4951, + "lng": 9.0153 + }, + "6660": { + "city": "Lintrup", + "lat": 55.4117, + "lng": 8.9784 + }, + "6670": { + "city": "Holsted", + "lat": 55.4998, + "lng": 8.9129 + }, + "6682": { + "city": "Hovborg", + "lat": 55.6063, + "lng": 8.9381 + }, + "6683": { + "city": "Føvling", + "lat": 55.4394, + "lng": 8.9093 + }, + "6752": { + "city": "Glejbjerg", + "lat": 55.5571, + "lng": 8.8302 + }, + "6200": { + "city": "Aabenraa", + "lat": 55.033, + "lng": 9.4398 + }, + "6210": { + "city": "Barsø", + "lat": 55.1214, + "lng": 9.5554 + }, + "6230": { + "city": "Rødekro", + "lat": 55.072, + "lng": 9.3241 + }, + "6330": { + "city": "Padborg", + "lat": 54.8367, + "lng": 9.3538 + }, + "6340": { + "city": "Kruså", + "lat": 54.858, + "lng": 9.4359 + }, + "6360": { + "city": "Tinglev", + "lat": 54.9316, + "lng": 9.2426 + }, + "6372": { + "city": "Bylderup-Bov", + "lat": 54.9577, + "lng": 9.1024 + }, + "6392": { + "city": "Bolderslev", + "lat": 54.9917, + "lng": 9.2719 + }, + "7000": { + "city": "Fredericia", + "lat": 55.5618, + "lng": 9.7151 + }, + "6000": { + "city": "Kolding", + "lat": 55.4924, + "lng": 9.4798 + }, + "6051": { + "city": "Almind", + "lat": 55.5629, + "lng": 9.4824 + }, + "6052": { + "city": "Viuf", + "lat": 55.5882, + "lng": 9.4914 + }, + "6064": { + "city": "Jordrup", + "lat": 55.5509, + "lng": 9.3138 + }, + "6070": { + "city": "Christiansfeld", + "lat": 55.3609, + "lng": 9.4699 + }, + "6091": { + "city": "Bjert", + "lat": 55.4528, + "lng": 9.5657 + }, + "6092": { + "city": "Sønder Stenderup", + "lat": 55.4581, + "lng": 9.6225 + }, + "6093": { + "city": "Sjølund", + "lat": 55.4074, + "lng": 9.5588 + }, + "6094": { + "city": "Hejls", + "lat": 55.3733, + "lng": 9.5986 + }, + "6580": { + "city": "Vamdrup", + "lat": 55.4235, + "lng": 9.3053 + }, + "6640": { + "city": "Lunderskov", + "lat": 55.4831, + "lng": 9.3079 + }, + "6040": { + "city": "Egtved", + "lat": 55.61, + "lng": 9.3509 + }, + "7080": { + "city": "Børkop", + "lat": 55.6471, + "lng": 9.6723 + }, + "7100": { + "city": "Vejle", + "lat": 55.7042, + "lng": 9.5245 + }, + "7120": { + "city": "Vejle Øst", + "lat": 55.7229, + "lng": 9.6142 + }, + "7173": { + "city": "Vonge", + "lat": 55.8628, + "lng": 9.4181 + }, + "7182": { + "city": "Bredsten", + "lat": 55.7049, + "lng": 9.3603 + }, + "7183": { + "city": "Randbøl", + "lat": 55.687, + "lng": 9.2611 + }, + "7184": { + "city": "Vandel", + "lat": 55.7109, + "lng": 9.2101 + }, + "7300": { + "city": "Jelling", + "lat": 55.7642, + "lng": 9.425 + }, + "7321": { + "city": "Gadbjerg", + "lat": 55.7698, + "lng": 9.3054 + }, + "7323": { + "city": "Give", + "lat": 55.8507, + "lng": 9.25 + }, + "9100": { + "city": "Aalborg", + "lat": 57.048, + "lng": 9.9187 + }, + "8100": { + "city": "Aarhus C", + "lat": 56.1567, + "lng": 10.2108 + }, + "8245": { + "city": "Risskov Ø", + "lat": 56.1972, + "lng": 10.248 + }, + "5100": { + "city": "Odense C", + "lat": 55.3959, + "lng": 10.3883 + }, + "6701": { + "city": "Esbjerg", + "lat": 55.4703, + "lng": 8.4519 + }, + "7007": { + "city": "Fredericia", + "lat": 55.5657, + "lng": 9.7526 + }, + "0900": { + "city": "København C", + "lat": 57.048, + "lng": 9.9187 + }, + "0960": { + "city": "Udland", + "lat": 56.804, + "lng": 9.5144 + }, + "0999": { + "city": "København C", + "lat": 57.7209, + "lng": 10.5839 + }, + "1001": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1002": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1003": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1004": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1005": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1006": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1007": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1008": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1009": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1010": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1011": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1012": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1013": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1014": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1015": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1016": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1017": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1018": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1019": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1020": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1021": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1022": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1023": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1024": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1025": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1026": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1092": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1093": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1095": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1098": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1140": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1147": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1148": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1217": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1240": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1448": { + "city": "København K", + "lat": 55.6759, + "lng": 12.5655 + }, + "1500": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1501": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1502": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1503": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1504": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1505": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1506": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1507": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1508": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1509": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1510": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1513": { + "city": "Centraltastning", + "lat": 55.6711, + "lng": 12.5653 + }, + "1592": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1599": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1630": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1780": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1785": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1786": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1787": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1790": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1835": { + "city": "Frederiksberg C", + "lat": 55.6794, + "lng": 12.5346 + }, + "0917": { + "city": "Københavns Pakkecent", + "lat": 55.6759, + "lng": 12.5655 + }, + "0800": { + "city": "Høje Taastrup", + "lat": 55.6471, + "lng": 12.2742 + }, + "1532": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + }, + "1533": { + "city": "København V", + "lat": 55.6759, + "lng": 12.5655 + } +} diff --git a/wwwroot/postnumre.json b/wwwroot/postnumre.json new file mode 100644 index 0000000..5e4df6f --- /dev/null +++ b/wwwroot/postnumre.json @@ -0,0 +1,1161 @@ +{ + "1050": "København K", + "1051": "København K", + "1052": "København K", + "1053": "København K", + "1054": "København K", + "1055": "København K", + "1056": "København K", + "1057": "København K", + "1058": "København K", + "1059": "København K", + "1060": "København K", + "1061": "København K", + "1062": "København K", + "1063": "København K", + "1064": "København K", + "1065": "København K", + "1066": "København K", + "1067": "København K", + "1068": "København K", + "1069": "København K", + "1070": "København K", + "1071": "København K", + "1072": "København K", + "1073": "København K", + "1074": "København K", + "1100": "København K", + "1101": "København K", + "1102": "København K", + "1103": "København K", + "1104": "København K", + "1105": "København K", + "1106": "København K", + "1107": "København K", + "1110": "København K", + "1111": "København K", + "1112": "København K", + "1113": "København K", + "1114": "København K", + "1115": "København K", + "1116": "København K", + "1117": "København K", + "1118": "København K", + "1119": "København K", + "1120": "København K", + "1121": "København K", + "1122": "København K", + "1123": "København K", + "1124": "København K", + "1125": "København K", + "1126": "København K", + "1127": "København K", + "1128": "København K", + "1129": "København K", + "1130": "København K", + "1131": "København K", + "1150": "København K", + "1151": "København K", + "1152": "København K", + "1153": "København K", + "1154": "København K", + "1155": "København K", + "1156": "København K", + "1157": "København K", + "1158": "København K", + "1159": "København K", + "1160": "København K", + "1161": "København K", + "1162": "København K", + "1164": "København K", + "1165": "København K", + "1166": "København K", + "1167": "København K", + "1168": "København K", + "1169": "København K", + "1170": "København K", + "1171": "København K", + "1172": "København K", + "1173": "København K", + "1174": "København K", + "1175": "København K", + "1200": "København K", + "1201": "København K", + "1202": "København K", + "1203": "København K", + "1204": "København K", + "1205": "København K", + "1206": "København K", + "1207": "København K", + "1208": "København K", + "1209": "København K", + "1210": "København K", + "1211": "København K", + "1212": "København K", + "1213": "København K", + "1214": "København K", + "1215": "København K", + "1216": "København K", + "1218": "København K", + "1219": "København K", + "1220": "København K", + "1221": "København K", + "1250": "København K", + "1251": "København K", + "1252": "København K", + "1253": "København K", + "1254": "København K", + "1255": "København K", + "1256": "København K", + "1257": "København K", + "1259": "København K", + "1260": "København K", + "1261": "København K", + "1263": "København K", + "1264": "København K", + "1265": "København K", + "1266": "København K", + "1267": "København K", + "1268": "København K", + "1270": "København K", + "1271": "København K", + "1300": "København K", + "1301": "København K", + "1302": "København K", + "1303": "København K", + "1304": "København K", + "1306": "København K", + "1307": "København K", + "1308": "København K", + "1309": "København K", + "1310": "København K", + "1311": "København K", + "1312": "København K", + "1313": "København K", + "1314": "København K", + "1315": "København K", + "1316": "København K", + "1317": "København K", + "1318": "København K", + "1319": "København K", + "1320": "København K", + "1321": "København K", + "1322": "København K", + "1323": "København K", + "1324": "København K", + "1325": "København K", + "1326": "København K", + "1327": "København K", + "1328": "København K", + "1329": "København K", + "1350": "København K", + "1352": "København K", + "1353": "København K", + "1354": "København K", + "1355": "København K", + "1356": "København K", + "1357": "København K", + "1358": "København K", + "1359": "København K", + "1360": "København K", + "1361": "København K", + "1362": "København K", + "1363": "København K", + "1364": "København K", + "1365": "København K", + "1366": "København K", + "1367": "København K", + "1368": "København K", + "1369": "København K", + "1370": "København K", + "1371": "København K", + "1400": "København K", + "1401": "København K", + "1402": "København K", + "1403": "København K", + "1406": "København K", + "1407": "København K", + "1408": "København K", + "1409": "København K", + "1410": "København K", + "1411": "København K", + "1412": "København K", + "1413": "København K", + "1414": "København K", + "1415": "København K", + "1416": "København K", + "1417": "København K", + "1418": "København K", + "1419": "København K", + "1420": "København K", + "1421": "København K", + "1422": "København K", + "1423": "København K", + "1424": "København K", + "1425": "København K", + "1426": "København K", + "1427": "København K", + "1428": "København K", + "1429": "København K", + "1430": "København K", + "1432": "København K", + "1433": "København K", + "1434": "København K", + "1435": "København K", + "1436": "København K", + "1437": "København K", + "1438": "København K", + "1439": "København K", + "1440": "København K", + "1441": "København K", + "1450": "København K", + "1451": "København K", + "1452": "København K", + "1453": "København K", + "1454": "København K", + "1455": "København K", + "1456": "København K", + "1457": "København K", + "1458": "København K", + "1459": "København K", + "1460": "København K", + "1461": "København K", + "1462": "København K", + "1463": "København K", + "1464": "København K", + "1465": "København K", + "1466": "København K", + "1467": "København K", + "1468": "København K", + "1470": "København K", + "1471": "København K", + "1472": "København K", + "1473": "København K", + "1550": "København V", + "1551": "København V", + "1552": "København V", + "1553": "København V", + "1554": "København V", + "1555": "København V", + "1556": "København V", + "1557": "København V", + "1558": "København V", + "1559": "København V", + "1560": "København V", + "1561": "København V", + "1562": "København V", + "1563": "København V", + "1564": "København V", + "1567": "København V", + "1568": "København V", + "1569": "København V", + "1570": "København V", + "1571": "København V", + "1572": "København V", + "1573": "København V", + "1574": "København V", + "1575": "København V", + "1576": "København V", + "1577": "København V", + "1600": "København V", + "1601": "København V", + "1602": "København V", + "1603": "København V", + "1604": "København V", + "1605": "København V", + "1606": "København V", + "1607": "København V", + "1608": "København V", + "1609": "København V", + "1610": "København V", + "1611": "København V", + "1612": "København V", + "1613": "København V", + "1614": "København V", + "1615": "København V", + "1616": "København V", + "1617": "København V", + "1618": "København V", + "1619": "København V", + "1620": "København V", + "1621": "København V", + "1622": "København V", + "1623": "København V", + "1624": "København V", + "1631": "København V", + "1632": "København V", + "1633": "København V", + "1634": "København V", + "1635": "København V", + "1650": "København V", + "1651": "København V", + "1652": "København V", + "1653": "København V", + "1654": "København V", + "1655": "København V", + "1656": "København V", + "1657": "København V", + "1658": "København V", + "1659": "København V", + "1660": "København V", + "1661": "København V", + "1662": "København V", + "1663": "København V", + "1664": "København V", + "1665": "København V", + "1666": "København V", + "1667": "København V", + "1668": "København V", + "1669": "København V", + "1670": "København V", + "1671": "København V", + "1672": "København V", + "1673": "København V", + "1674": "København V", + "1675": "København V", + "1676": "København V", + "1677": "København V", + "1699": "København V", + "1700": "København V", + "1701": "København V", + "1702": "København V", + "1703": "København V", + "1704": "København V", + "1705": "København V", + "1706": "København V", + "1707": "København V", + "1708": "København V", + "1709": "København V", + "1710": "København V", + "1711": "København V", + "1712": "København V", + "1714": "København V", + "1715": "København V", + "1716": "København V", + "1717": "København V", + "1718": "København V", + "1719": "København V", + "1720": "København V", + "1721": "København V", + "1722": "København V", + "1723": "København V", + "1724": "København V", + "1725": "København V", + "1726": "København V", + "1727": "København V", + "1728": "København V", + "1729": "København V", + "1730": "København V", + "1731": "København V", + "1732": "København V", + "1733": "København V", + "1734": "København V", + "1735": "København V", + "1736": "København V", + "1737": "København V", + "1738": "København V", + "1739": "København V", + "1749": "København V", + "1750": "København V", + "1751": "København V", + "1752": "København V", + "1753": "København V", + "1754": "København V", + "1755": "København V", + "1756": "København V", + "1757": "København V", + "1758": "København V", + "1759": "København V", + "1760": "København V", + "1761": "København V", + "1762": "København V", + "1763": "København V", + "1764": "København V", + "1765": "København V", + "1766": "København V", + "1770": "København V", + "1771": "København V", + "1772": "København V", + "1773": "København V", + "1774": "København V", + "1775": "København V", + "1777": "København V", + "1799": "København V", + "2100": "København Ø", + "2150": "Nordhavn", + "2200": "København N", + "2300": "København S", + "2400": "København NV", + "2450": "København SV", + "2500": "Valby", + "2700": "Brønshøj", + "2720": "Vanløse", + "1800": "Frederiksberg C", + "1801": "Frederiksberg C", + "1802": "Frederiksberg C", + "1803": "Frederiksberg C", + "1804": "Frederiksberg C", + "1805": "Frederiksberg C", + "1806": "Frederiksberg C", + "1807": "Frederiksberg C", + "1808": "Frederiksberg C", + "1809": "Frederiksberg C", + "1810": "Frederiksberg C", + "1811": "Frederiksberg C", + "1812": "Frederiksberg C", + "1813": "Frederiksberg C", + "1814": "Frederiksberg C", + "1815": "Frederiksberg C", + "1816": "Frederiksberg C", + "1817": "Frederiksberg C", + "1818": "Frederiksberg C", + "1819": "Frederiksberg C", + "1820": "Frederiksberg C", + "1822": "Frederiksberg C", + "1823": "Frederiksberg C", + "1824": "Frederiksberg C", + "1825": "Frederiksberg C", + "1826": "Frederiksberg C", + "1827": "Frederiksberg C", + "1828": "Frederiksberg C", + "1829": "Frederiksberg C", + "1850": "Frederiksberg C", + "1851": "Frederiksberg C", + "1852": "Frederiksberg C", + "1853": "Frederiksberg C", + "1854": "Frederiksberg C", + "1855": "Frederiksberg C", + "1856": "Frederiksberg C", + "1857": "Frederiksberg C", + "1860": "Frederiksberg C", + "1861": "Frederiksberg C", + "1862": "Frederiksberg C", + "1863": "Frederiksberg C", + "1864": "Frederiksberg C", + "1865": "Frederiksberg C", + "1866": "Frederiksberg C", + "1867": "Frederiksberg C", + "1868": "Frederiksberg C", + "1870": "Frederiksberg C", + "1871": "Frederiksberg C", + "1872": "Frederiksberg C", + "1873": "Frederiksberg C", + "1874": "Frederiksberg C", + "1875": "Frederiksberg C", + "1876": "Frederiksberg C", + "1877": "Frederiksberg C", + "1878": "Frederiksberg C", + "1879": "Frederiksberg C", + "1900": "Frederiksberg C", + "1901": "Frederiksberg C", + "1902": "Frederiksberg C", + "1903": "Frederiksberg C", + "1904": "Frederiksberg C", + "1905": "Frederiksberg C", + "1906": "Frederiksberg C", + "1908": "Frederiksberg C", + "1909": "Frederiksberg C", + "1910": "Frederiksberg C", + "1911": "Frederiksberg C", + "1912": "Frederiksberg C", + "1913": "Frederiksberg C", + "1914": "Frederiksberg C", + "1915": "Frederiksberg C", + "1916": "Frederiksberg C", + "1917": "Frederiksberg C", + "1920": "Frederiksberg C", + "1921": "Frederiksberg C", + "1922": "Frederiksberg C", + "1923": "Frederiksberg C", + "1924": "Frederiksberg C", + "1925": "Frederiksberg C", + "1926": "Frederiksberg C", + "1927": "Frederiksberg C", + "1928": "Frederiksberg C", + "1950": "Frederiksberg C", + "1951": "Frederiksberg C", + "1952": "Frederiksberg C", + "1953": "Frederiksberg C", + "1954": "Frederiksberg C", + "1955": "Frederiksberg C", + "1956": "Frederiksberg C", + "1957": "Frederiksberg C", + "1958": "Frederiksberg C", + "1959": "Frederiksberg C", + "1960": "Frederiksberg C", + "1961": "Frederiksberg C", + "1962": "Frederiksberg C", + "1963": "Frederiksberg C", + "1964": "Frederiksberg C", + "1965": "Frederiksberg C", + "1966": "Frederiksberg C", + "1967": "Frederiksberg C", + "1970": "Frederiksberg C", + "1971": "Frederiksberg C", + "1972": "Frederiksberg C", + "1973": "Frederiksberg C", + "1974": "Frederiksberg C", + "2000": "Frederiksberg", + "2740": "Skovlunde", + "2750": "Ballerup", + "2760": "Måløv", + "2605": "Brøndby", + "2660": "Brøndby Strand", + "2791": "Dragør", + "2820": "Gentofte", + "2870": "Dyssegård", + "2900": "Hellerup", + "2920": "Charlottenlund", + "2930": "Klampenborg", + "2860": "Søborg", + "2880": "Bagsværd", + "2600": "Glostrup", + "2730": "Herlev", + "2620": "Albertslund", + "2650": "Hvidovre", + "2630": "Taastrup", + "2640": "Hedehusene", + "2800": "Kongens Lyngby", + "2830": "Virum", + "2610": "Rødovre", + "2635": "Ishøj", + "2770": "Kastrup", + "2625": "Vallensbæk", + "2665": "Vallensbæk Strand", + "3500": "Værløse", + "3520": "Farum", + "3450": "Allerød", + "3540": "Lynge", + "2980": "Kokkedal", + "2990": "Nivå", + "3050": "Humlebæk", + "3480": "Fredensborg", + "3000": "Helsingør", + "3060": "Espergærde", + "3070": "Snekkersten", + "3080": "Tikøb", + "3100": "Hornbæk", + "3140": "Ålsgårde", + "3150": "Hellebæk", + "3490": "Kvistgård", + "3320": "Skævinge", + "3330": "Gørløse", + "3400": "Hillerød", + "2960": "Rungsted Kyst", + "2970": "Hørsholm", + "2840": "Holte", + "2850": "Nærum", + "2942": "Skodsborg", + "2950": "Vedbæk", + "3460": "Birkerød", + "2765": "Smørum", + "3650": "Ølstykke", + "3660": "Stenløse", + "3670": "Veksø Sjælland", + "3550": "Slangerup", + "3600": "Frederikssund", + "3630": "Jægerspris", + "4050": "Skibby", + "3300": "Frederiksværk", + "3310": "Ølsted", + "3360": "Liseleje", + "3370": "Melby", + "3390": "Hundested", + "3120": "Dronningmølle", + "3200": "Helsinge", + "3210": "Vejby", + "3220": "Tisvildeleje", + "3230": "Græsted", + "3250": "Gilleleje", + "3700": "Rønne", + "3720": "Aakirkeby", + "3730": "Nexø", + "3740": "Svaneke", + "3751": "Østermarie", + "3760": "Gudhjem", + "3770": "Allinge", + "3782": "Klemensker", + "3790": "Hasle", + "8700": "Horsens", + "8732": "Hovedgård", + "8740": "Brædstrup", + "8751": "Gedved", + "8752": "Østbirk", + "8789": "Endelave", + "6933": "Kibæk", + "6973": "Ørnhøj", + "7270": "Stakroge", + "7280": "Sønder Felding", + "7400": "Herning", + "7451": "Sunds", + "7480": "Vildbjerg", + "7490": "Aulum", + "7540": "Haderup", + "7550": "Sørvad", + "6990": "Ulfborg", + "7500": "Holstebro", + "7570": "Vemb", + "7830": "Vinderup", + "7620": "Lemvig", + "7650": "Bøvlingbjerg", + "7660": "Bækmarksbro", + "7673": "Harboøre", + "7680": "Thyborøn", + "7560": "Hjerm", + "7600": "Struer", + "7790": "Thyholm", + "8400": "Ebeltoft", + "8410": "Rønde", + "8420": "Knebel", + "8444": "Balle", + "8543": "Hornslet", + "8544": "Mørke", + "8550": "Ryomgård", + "8560": "Kolind", + "8581": "Nimtofte", + "8500": "Grenaa", + "8570": "Trustrup", + "8585": "Glesborg", + "8586": "Ørum Djurs", + "8592": "Anholt", + "8950": "Ørsted", + "8961": "Allingåbro", + "8963": "Auning", + "8370": "Hadsten", + "8382": "Hinnerup", + "8450": "Hammel", + "8472": "Sporup", + "8860": "Ulstrup", + "8881": "Thorsø", + "8300": "Odder", + "8350": "Hundslund", + "8799": "Tunø", + "8870": "Langå", + "8900": "Randers C", + "8920": "Randers NV", + "8930": "Randers NØ", + "8940": "Randers SV", + "8960": "Randers SØ", + "8970": "Havndal", + "8981": "Spentrup", + "8983": "Gjerlev J", + "8990": "Fårup", + "8600": "Silkeborg", + "8620": "Kjellerup", + "8632": "Lemming", + "8641": "Sorring", + "8643": "Ans By", + "8653": "Them", + "8654": "Bryrup", + "8882": "Fårvang", + "8883": "Gjern", + "8305": "Samsø", + "8362": "Hørning", + "8464": "Galten", + "8660": "Skanderborg", + "8670": "Låsby", + "8680": "Ry", + "8000": "Aarhus C", + "8200": "Aarhus N", + "8210": "Aarhus V", + "8220": "Brabrand", + "8230": "Åbyhøj", + "8240": "Risskov", + "8250": "Egå", + "8260": "Viby J", + "8270": "Højbjerg", + "8310": "Tranbjerg J", + "8320": "Mårslet", + "8330": "Beder", + "8340": "Malling", + "8355": "Solbjerg", + "8361": "Hasselager", + "8380": "Trige", + "8381": "Tilst", + "8462": "Harlev J", + "8471": "Sabro", + "8520": "Lystrup", + "8530": "Hjortshøj", + "8541": "Skødstrup", + "7330": "Brande", + "7361": "Ejstrupholm", + "7362": "Hampen", + "7430": "Ikast", + "7441": "Bording", + "7442": "Engesvang", + "8765": "Klovborg", + "8766": "Nørre Snede", + "6880": "Tarm", + "6893": "Hemmet", + "6900": "Skjern", + "6920": "Videbæk", + "6940": "Lem St", + "6950": "Ringkøbing", + "6960": "Hvide Sande", + "6971": "Spjald", + "6980": "Tim", + "7130": "Juelsminde", + "7140": "Stouby", + "7150": "Barrit", + "7160": "Tørring", + "7171": "Uldum", + "8721": "Daugård", + "8722": "Hedensted", + "8723": "Løsning", + "8762": "Flemming", + "8763": "Rask Mølle", + "8781": "Stenderup", + "8783": "Hornsyld", + "7800": "Skive", + "7840": "Højslev", + "7860": "Spøttrup", + "7870": "Roslev", + "7884": "Fur", + "7470": "Karup J", + "7850": "Stoholm Jyll", + "8800": "Viborg", + "8830": "Tjele", + "8831": "Løgstrup", + "8832": "Skals", + "8840": "Rødkærsbro", + "8850": "Bjerringbro", + "9632": "Møldrup", + "7900": "Nykøbing M", + "7950": "Erslev", + "7960": "Karby", + "7970": "Redsted M", + "7980": "Vils", + "7990": "Øster Assels", + "7700": "Thisted", + "7730": "Hanstholm", + "7741": "Frøstrup", + "7742": "Vesløs", + "7752": "Snedsted", + "7755": "Bedsted Thy", + "7760": "Hurup Thy", + "7770": "Vestervig", + "9320": "Hjallerup", + "9330": "Dronninglund", + "9340": "Asaa", + "9700": "Brønderslev", + "9740": "Jerslev J", + "9300": "Sæby", + "9352": "Dybvad", + "9750": "Østervrå", + "9900": "Frederikshavn", + "9970": "Strandby", + "9981": "Jerup", + "9982": "Ålbæk", + "9990": "Skagen", + "9600": "Aars", + "9620": "Aalestrup", + "9631": "Gedsted", + "9640": "Farsø", + "9670": "Løgstør", + "9681": "Ranum", + "9940": "Læsø", + "9520": "Skørping", + "9530": "Støvring", + "9541": "Suldrup", + "9574": "Bælum", + "9575": "Terndrup", + "9610": "Nørager", + "9500": "Hobro", + "9510": "Arden", + "9550": "Mariager", + "9560": "Hadsund", + "9440": "Aabybro", + "9460": "Brovst", + "9490": "Pandrup", + "9492": "Blokhus", + "9493": "Saltum", + "9690": "Fjerritslev", + "9000": "Aalborg", + "9200": "Aalborg SV", + "9210": "Aalborg SØ", + "9220": "Aalborg Øst", + "9230": "Svenstrup J", + "9240": "Nibe", + "9260": "Gistrup", + "9270": "Klarup", + "9280": "Storvorde", + "9293": "Kongerslev", + "9310": "Vodskov", + "9362": "Gandrup", + "9370": "Hals", + "9380": "Vestbjerg", + "9381": "Sulsted", + "9382": "Tylstrup", + "9400": "Nørresundby", + "9430": "Vadum", + "9480": "Løkken", + "9760": "Vrå", + "9800": "Hjørring", + "9830": "Tårs", + "9850": "Hirtshals", + "9870": "Sindal", + "9881": "Bindslev", + "2670": "Greve", + "2690": "Karlslunde", + "4030": "Tune", + "4140": "Borup", + "4600": "Køge", + "4623": "Lille Skensved", + "4632": "Bjæverskov", + "4681": "Herfølge", + "4682": "Tureby", + "4000": "Roskilde", + "4040": "Jyllinge", + "4130": "Viby Sjælland", + "4621": "Gadstrup", + "2680": "Solrød Strand", + "4622": "Havdrup", + "4500": "Nykøbing Sj", + "4534": "Hørve", + "4540": "Fårevejle", + "4550": "Asnæs", + "4560": "Vig", + "4571": "Grevinge", + "4572": "Nørre Asmindrup", + "4573": "Højby", + "4581": "Rørvig", + "4583": "Sjællands Odde", + "4300": "Holbæk", + "4305": "Orø", + "4340": "Tølløse", + "4350": "Ugerløse", + "4360": "Kirke Eskilstrup", + "4370": "Store Merløse", + "4390": "Vipperød", + "4420": "Regstrup", + "4440": "Mørkøv", + "4450": "Jyderup", + "4520": "Svinninge", + "4532": "Gislinge", + "4640": "Faxe", + "4653": "Karise", + "4654": "Faxe Ladeplads", + "4683": "Rønnede", + "4690": "Haslev", + "4270": "Høng", + "4281": "Gørlev", + "4400": "Kalundborg", + "4460": "Snertinge", + "4470": "Svebølle", + "4480": "Store Fuglede", + "4490": "Jerslev Sjælland", + "4591": "Føllenslev", + "4592": "Sejerø", + "4593": "Eskebjerg", + "4100": "Ringsted", + "4174": "Jystrup Midtsj", + "4200": "Slagelse", + "4220": "Korsør", + "4230": "Skælskør", + "4241": "Vemmelev", + "4242": "Boeslunde", + "4243": "Rude", + "4244": "Agersø", + "4245": "Omø", + "4261": "Dalmose", + "4652": "Hårlev", + "4660": "Store Heddinge", + "4671": "Strøby", + "4672": "Klippinge", + "4673": "Rødvig Stevns", + "4173": "Fjenneslev", + "4180": "Sorø", + "4190": "Munke Bjergby", + "4291": "Ruds Vedby", + "4293": "Dianalund", + "4295": "Stenlille", + "4296": "Nyrup", + "4060": "Kirke Såby", + "4070": "Kirke Hyllinge", + "4320": "Lejre", + "4330": "Hvalsø", + "4895": "Errindlev", + "4900": "Nakskov", + "4912": "Harpelunde", + "4913": "Horslunde", + "4920": "Søllested", + "4930": "Maribo", + "4941": "Bandholm", + "4942": "Askø", + "4943": "Torrig L", + "4944": "Fejø", + "4945": "Femø", + "4951": "Nørreballe", + "4952": "Stokkemarke", + "4953": "Vesterborg", + "4960": "Holeby", + "4970": "Rødby", + "4983": "Dannemare", + "4160": "Herlufmagle", + "4171": "Glumsø", + "4250": "Fuglebjerg", + "4262": "Sandved", + "4684": "Holmegaard", + "4700": "Næstved", + "4733": "Tappernøje", + "4736": "Karrebæksminde", + "4800": "Nykøbing F", + "4840": "Nørre Alslev", + "4850": "Stubbekøbing", + "4862": "Guldborg", + "4863": "Eskilstrup", + "4871": "Horbelev", + "4872": "Idestrup", + "4873": "Væggerløse", + "4874": "Gedser", + "4880": "Nysted", + "4891": "Toreby L", + "4892": "Kettinge", + "4894": "Øster Ulslev", + "4990": "Sakskøbing", + "4720": "Præstø", + "4735": "Mern", + "4750": "Lundby", + "4760": "Vordingborg", + "4771": "Kalvehave", + "4772": "Langebæk", + "4773": "Stensved", + "4780": "Stege", + "4791": "Borre", + "4792": "Askeby", + "4793": "Bogø By", + "5463": "Harndrup", + "5464": "Brenderup Fyn", + "5466": "Asperup", + "5500": "Middelfart", + "5580": "Nørre Aaby", + "5591": "Gelsted", + "5592": "Ejby", + "5492": "Vissenbjerg", + "5560": "Aarup", + "5610": "Assens", + "5620": "Glamsbjerg", + "5631": "Ebberup", + "5683": "Haarby", + "5690": "Tommerup", + "5600": "Faaborg", + "5601": "Lyø", + "5602": "Avernakø", + "5603": "Bjørnø", + "5642": "Millinge", + "5672": "Broby", + "5750": "Ringe", + "5772": "Kværndrup", + "5792": "Årslev", + "5854": "Gislev", + "5856": "Ryslinge", + "5863": "Ferritslev Fyn", + "5290": "Marslev", + "5300": "Kerteminde", + "5330": "Munkebo", + "5350": "Rynkeby", + "5370": "Mesinge", + "5380": "Dalby", + "5390": "Martofte", + "5550": "Langeskov", + "5540": "Ullerslev", + "5800": "Nyborg", + "5853": "Ørbæk", + "5871": "Frørup", + "5000": "Odense C", + "5200": "Odense V", + "5210": "Odense NV", + "5220": "Odense SØ", + "5230": "Odense M", + "5240": "Odense NØ", + "5250": "Odense SV", + "5260": "Odense S", + "5270": "Odense N", + "5320": "Agedrup", + "5491": "Blommenslyst", + "5700": "Svendborg", + "5762": "Vester Skerninge", + "5771": "Stenstrup", + "5874": "Hesselager", + "5881": "Skårup Fyn", + "5882": "Vejstrup", + "5883": "Oure", + "5884": "Gudme", + "5892": "Gudbjerg Sydfyn", + "5400": "Bogense", + "5450": "Otterup", + "5462": "Morud", + "5471": "Søndersø", + "5474": "Veflinge", + "5485": "Skamby", + "5900": "Rudkøbing", + "5932": "Humble", + "5935": "Bagenkop", + "5943": "Strynø", + "5953": "Tranekær", + "5960": "Marstal", + "5965": "Birkholm", + "5970": "Ærøskøbing", + "5985": "Søby Ærø", + "6100": "Haderslev", + "6500": "Vojens", + "6510": "Gram", + "6541": "Bevtoft", + "6560": "Sommersted", + "6623": "Vorbasse", + "7190": "Billund", + "7200": "Grindsted", + "7250": "Hejnsvig", + "7260": "Sønder Omme", + "6300": "Gråsten", + "6310": "Broager", + "6320": "Egernsund", + "6400": "Sønderborg", + "6430": "Nordborg", + "6440": "Augustenborg", + "6470": "Sydals", + "6240": "Løgumkloster", + "6261": "Bredebro", + "6270": "Tønder", + "6280": "Højer", + "6520": "Toftlund", + "6534": "Agerskov", + "6535": "Branderup J", + "6780": "Skærbæk", + "6792": "Rømø", + "6690": "Gørding", + "6700": "Esbjerg", + "6705": "Esbjerg Ø", + "6710": "Esbjerg V", + "6715": "Esbjerg N", + "6731": "Tjæreborg", + "6740": "Bramming", + "6760": "Ribe", + "6771": "Gredstedbro", + "6720": "Fanø", + "6753": "Agerbæk", + "6800": "Varde", + "6818": "Årre", + "6823": "Ansager", + "6830": "Nørre Nebel", + "6840": "Oksbøl", + "6851": "Janderup Vestj", + "6852": "Billum", + "6853": "Vejers Strand", + "6854": "Henne", + "6855": "Outrup", + "6857": "Blåvand", + "6862": "Tistrup", + "6870": "Ølgod", + "6600": "Vejen", + "6621": "Gesten", + "6622": "Bække", + "6630": "Rødding", + "6650": "Brørup", + "6660": "Lintrup", + "6670": "Holsted", + "6682": "Hovborg", + "6683": "Føvling", + "6752": "Glejbjerg", + "6200": "Aabenraa", + "6210": "Barsø", + "6230": "Rødekro", + "6330": "Padborg", + "6340": "Kruså", + "6360": "Tinglev", + "6372": "Bylderup-Bov", + "6392": "Bolderslev", + "7000": "Fredericia", + "6000": "Kolding", + "6051": "Almind", + "6052": "Viuf", + "6064": "Jordrup", + "6070": "Christiansfeld", + "6091": "Bjert", + "6092": "Sønder Stenderup", + "6093": "Sjølund", + "6094": "Hejls", + "6580": "Vamdrup", + "6640": "Lunderskov", + "6040": "Egtved", + "7080": "Børkop", + "7100": "Vejle", + "7120": "Vejle Øst", + "7173": "Vonge", + "7182": "Bredsten", + "7183": "Randbøl", + "7184": "Vandel", + "7300": "Jelling", + "7321": "Gadbjerg", + "7323": "Give", + "9100": "Aalborg", + "8100": "Aarhus C", + "8245": "Risskov Ø", + "5100": "Odense C", + "6701": "Esbjerg", + "7007": "Fredericia", + "0900": "København C", + "0960": "Udland", + "0999": "København C", + "1001": "København K", + "1002": "København K", + "1003": "København K", + "1004": "København K", + "1005": "København K", + "1006": "København K", + "1007": "København K", + "1008": "København K", + "1009": "København K", + "1010": "København K", + "1011": "København K", + "1012": "København K", + "1013": "København K", + "1014": "København K", + "1015": "København K", + "1016": "København K", + "1017": "København K", + "1018": "København K", + "1019": "København K", + "1020": "København K", + "1021": "København K", + "1022": "København K", + "1023": "København K", + "1024": "København K", + "1025": "København K", + "1026": "København K", + "1092": "København K", + "1093": "København K", + "1095": "København K", + "1098": "København K", + "1140": "København K", + "1147": "København K", + "1148": "København K", + "1217": "København K", + "1240": "København K", + "1448": "København K", + "1500": "København V", + "1501": "København V", + "1502": "København V", + "1503": "København V", + "1504": "København V", + "1505": "København V", + "1506": "København V", + "1507": "København V", + "1508": "København V", + "1509": "København V", + "1510": "København V", + "1513": "Centraltastning", + "1592": "København V", + "1599": "København V", + "1630": "København V", + "1780": "København V", + "1785": "København V", + "1786": "København V", + "1787": "København V", + "1790": "København V", + "1835": "Frederiksberg C", + "0917": "Københavns Pakkecent", + "0800": "Høje Taastrup", + "1532": "København V", + "1533": "København V" +} diff --git a/wwwroot/styles.css b/wwwroot/styles.css new file mode 100644 index 0000000..f1e4999 --- /dev/null +++ b/wwwroot/styles.css @@ -0,0 +1,274 @@ +:root { + color-scheme: light; + --bg: #edf2ef; + --panel: #fbfcf7; + --text: #18221c; + --muted: #617066; + --line: #cad6ce; + --accent: #1d5b39; + --accent-dark: #16472d; + --danger: #8a1f11; + --success: #1f6a3c; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + background: linear-gradient(135deg, rgba(29, 91, 57, 0.12), transparent 34%), var(--bg); + color: var(--text); + font-family: Arial, Helvetica, sans-serif; +} + +.shell { + width: min(100% - 32px, 920px); + margin: 0 auto; + padding: 36px 0; +} + +.shell.admin-shell { + width: calc(100% - 32px); + max-width: 1600px; +} + +.panel { + max-width: 560px; + margin: 0 auto; + padding: 28px; + background: var(--panel); + border: 1px solid var(--line); + border-radius: 8px; + box-shadow: 0 16px 50px rgba(24, 34, 28, 0.12); +} + +.panel.wide { + max-width: none; +} + +.eyebrow { + margin: 0 0 8px; + color: var(--accent); + font-size: 14px; + font-weight: 700; + letter-spacing: 0; + text-transform: uppercase; +} + +h1 { + margin: 0 0 12px; + font-size: 32px; + line-height: 1.15; +} + +.intro { + margin: 0 0 24px; + color: var(--muted); + font-size: 16px; + line-height: 1.5; +} + +.form { + display: grid; + gap: 16px; +} + +.address-grid { + display: grid; + grid-template-columns: minmax(120px, 0.6fr) minmax(180px, 1fr); + gap: 16px; +} + +label { + display: grid; + gap: 7px; + color: var(--text); + font-size: 15px; + font-weight: 700; +} + +input { + width: 100%; + border: 1px solid var(--line); + border-radius: 6px; + padding: 12px; + color: var(--text); + background: #fff; + font: inherit; +} + +input:focus { + border-color: var(--accent); + box-shadow: 0 0 0 3px rgba(29, 91, 57, 0.16); + outline: none; +} + +button { + margin-top: 8px; + border: 0; + border-radius: 6px; + padding: 13px 18px; + color: #fff; + background: var(--accent); + font: inherit; + font-weight: 700; + cursor: pointer; +} + +button:hover { + background: var(--accent-dark); +} + +button:disabled { + cursor: wait; + opacity: 0.72; +} + +.notice { + margin: 0 0 18px; + border-radius: 6px; + padding: 12px 14px; + font-size: 15px; + line-height: 1.45; +} + +.notice.error { + color: var(--danger); + background: #fff2ef; + border: 1px solid #efc5bd; +} + +.notice.success { + color: var(--success); + background: #edf8f0; + border: 1px solid #bfddc8; +} + +.toolbar { + display: flex; + align-items: start; + justify-content: space-between; + gap: 20px; + margin-bottom: 20px; +} + +.count { + white-space: nowrap; + border: 1px solid var(--line); + border-radius: 999px; + padding: 8px 12px; + color: var(--accent); + background: #fff; + font-size: 14px; + font-weight: 700; +} + +.table-wrap { + overflow-x: auto; + border: 1px solid var(--line); + border-radius: 8px; + background: #fff; +} + +table { + width: 100%; + border-collapse: collapse; + min-width: 920px; +} + +th, +td { + padding: 12px 14px; + border-bottom: 1px solid var(--line); + text-align: left; + vertical-align: top; + font-size: 14px; + line-height: 1.4; +} + +th { + color: var(--muted); + background: #f5f8f6; + font-weight: 700; +} + +tr:last-child td { + border-bottom: 0; +} + +a { + color: var(--accent); +} + +.empty { + color: var(--muted); + text-align: center; +} + +.admin-actions { + display: flex; + flex-wrap: wrap; + gap: 12px; + margin-bottom: 20px; +} + +.participant-map { margin: 0 0 24px; } +.participant-map h2 { margin: 0 0 8px; font-size: 22px; } +.participant-map p { color: var(--muted); font-size: 14px; } +#participant-map { height: 380px; border: 1px solid var(--line); border-radius: 8px; z-index: 0; } + +.delete-button { + margin: 0; + padding: 8px 12px; + background: var(--danger); +} + +.delete-button:hover { + background: #69170d; +} + +@media print { + @page { size: A4 landscape; margin: 12mm; } + body { min-height: 0; background: #fff; color: #000; } + .shell { width: 100%; margin: 0; padding: 0; } + .shell.admin-shell { width: 100%; max-width: none; } + .panel { padding: 0; border: 0; box-shadow: none; } + .no-print, .notice { display: none !important; } + .table-wrap { overflow: visible; border: 0; } + table { min-width: 0; width: 100%; table-layout: fixed; } + th, td { padding: 6px; font-size: 10px; overflow-wrap: anywhere; } + thead { display: table-header-group; } + tr { break-inside: avoid; } + a { color: #000; text-decoration: none; } + .count { color: #000; } +} + +@media (max-width: 620px) { + .shell { + width: min(100% - 20px, 920px); + padding: 16px 0; + } + + .panel { + padding: 20px; + } + + h1 { + font-size: 28px; + } + + .toolbar { + display: block; + } + + .count { + display: inline-block; + margin-top: 6px; + } + + .address-grid { + grid-template-columns: 1fr; + } +} diff --git a/wwwroot/vendor/leaflet/LICENSE b/wwwroot/vendor/leaflet/LICENSE new file mode 100644 index 0000000..7b41f20 --- /dev/null +++ b/wwwroot/vendor/leaflet/LICENSE @@ -0,0 +1,26 @@ +BSD 2-Clause License + +Copyright (c) 2010-2023, Volodymyr Agafonkin +Copyright (c) 2010-2011, CloudMade +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/wwwroot/vendor/leaflet/leaflet.css b/wwwroot/vendor/leaflet/leaflet.css new file mode 100644 index 0000000..9ade8dc --- /dev/null +++ b/wwwroot/vendor/leaflet/leaflet.css @@ -0,0 +1,661 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; + } +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + width: auto; + padding: 0; + } + +.leaflet-container img.leaflet-tile { + /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ + mix-blend-mode: plus-lighter; +} + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +svg.leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline-offset: 1px; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + font-size: 0.75rem; + line-height: 1.5; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover, +.leaflet-bar a:focus { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + font-size: 13px; + font-size: 1.08333em; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.8); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + line-height: 1.4; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover, +.leaflet-control-attribution a:focus { + text-decoration: underline; + } +.leaflet-attribution-flag { + display: inline !important; + vertical-align: baseline !important; + width: 1em; + height: 0.6669em; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + -moz-box-sizing: border-box; + box-sizing: border-box; + background: rgba(255, 255, 255, 0.8); + text-shadow: 1px 1px #fff; + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 24px 13px 20px; + line-height: 1.3; + font-size: 13px; + font-size: 1.08333em; + min-height: 1px; + } +.leaflet-popup-content p { + margin: 17px 0; + margin: 1.3em 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-top: -1px; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + pointer-events: auto; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + border: none; + text-align: center; + width: 24px; + height: 24px; + font: 16px/24px Tahoma, Verdana, sans-serif; + color: #757575; + text-decoration: none; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover, +.leaflet-container a.leaflet-popup-close-button:focus { + color: #585858; + } +.leaflet-popup-scrolled { + overflow: auto; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-interactive { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } + +/* Printing */ + +@media print { + /* Prevent printers from removing background-images of controls. */ + .leaflet-control { + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + } diff --git a/wwwroot/vendor/leaflet/leaflet.js b/wwwroot/vendor/leaflet/leaflet.js new file mode 100644 index 0000000..a3bf693 --- /dev/null +++ b/wwwroot/vendor/leaflet/leaflet.js @@ -0,0 +1,6 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1