data(extract): Wahrzeichen und Viertel für den Ausschnitt

skyline.json: die 54 Wahrzeichen im Ausschnitt aus rolux/gtamaplib-vc
(Unlicense, Commit 98b858f), reduziert auf name, id, xyz und height.
Texturen bleiben ausgeschlossen, das sind Spiel-Screenshots.

districts.json ist selbst erstellt — in gtadb gibt es keine Viertel.
Downtown und Ocean Beach sind aus den Wahrzeichen abgeleitet, dazu fünf
Suburbs-Punkte, damit die Vorstadt nicht Downtown-Höhen bekommt.

Der Plan sagte bisher nur "wird hier heruntergeladen", ohne Quelle und
Schema; das ist jetzt dokumentiert, samt korrigierter Lizenzangabe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5 committed 2026-09-12 16:31:09 +02:00
1 parent aa5d8b1f8e
commit 2c355aa3d8
3 files changed
+592 -2

No files matched your search

@@ -1477,7 +1477,7 @@ def main() -> None:
"slice": "vice-a", "source_commit": COMMIT, "seed": SEED,
"chunk_size": 250, "chunks": [p["chunk"] for p in payloads],
"class_shares": shares,
"attribution": "GTA VI Map Tiles & Landmarks (CC BY 4.0) — https://map.gtadb.org, YANIS v15",
"attribution": "Kartenkacheln: GTA VI Map (CC BY 4.0) — https://map.gtadb.org, YANIS v15. Wahrzeichen: rolux/gtamaplib-vc (Unlicense).",
})
@@ -1487,7 +1487,13 @@ if __name__ == "__main__":
Die Hilfsfunktionen `split_by_chunk_all`, `chunk_box_of` und `in_chunk` sind dünne Hüllen um `split_by_chunk` bzw. `chunk_box` aus `emit.py`; beim Umsetzen dort ergänzen, damit `run.py` keine eigene Geometrie-Logik enthält.
Die Datei `data/skyline.json` ist die aus `rolux/gtamaplib-vc` geholte `game/landmarks/landmarks.json`, `data/districts.json` enthält Name und Mittelpunkt je Viertel aus den gtadb-Landmarks. Beide werden in diesem Schritt einmalig heruntergeladen und mit committet.
Die beiden Datendateien liegen bereits unter `tools/extract/data/` im Repository und werden in diesem Schritt **nicht** heruntergeladen — sie sind einmalig erzeugt und mit committet worden, weil an ihnen die Lizenzlage hängt:
`data/skyline.json` enthält die 54 Wahrzeichen, die in den Ausschnitt fallen, aus `game/landmarks/landmarks.json` von [rolux/gtamaplib-vc](https://github.com/rolux/gtamaplib-vc) bei Commit `98b858fe6cbb3ea0bffa94aa53d86c1d6b0d5a02`. Das Repository steht unter der Unlicense (Public Domain; GitHub erkennt die Datei nicht automatisch, der Text ist wörtlich die Unlicense). Übernommen sind nur `name`, `id`, `xyz` und `height` — die Texturen des Quell-Repos sind Spiel-Screenshots und bleiben ausgeschlossen. `height` ist dort identisch mit `xyz[2]`, also die Höhe der angepeilten Spitze über Null; genau das liest `assign_heights`. Die Namen sind echte Miami-Bauten, weil gtamaplib die Karte gegen reale Referenzen trianguliert.
`data/districts.json` ist **selbst erstellt**, nicht extrahiert: in gtadb gibt es keine Viertelgrenzen. Die beiden Kerne sind aus den Wahrzeichen abgeleitet — `Downtown` als Mittelpunkt der 11 westlichen Wahrzeichen ab 150 m Höhe, `Ocean Beach` als Mittelpunkt der 27 Wahrzeichen auf der Nehrung. Dazu fünf Mittelpunkte `Suburbs` auf dem Raster x ∈ {−750, 250, 1250}, y ∈ {−250, 750, 1750}, wobei Rasterpunkte näher als 900 m an einem Kern entfallen. `Suburbs` steht absichtlich nicht in `DISTRICT_RANGES` und fällt damit auf `default` zurück — ohne diese Punkte wäre jedes Gebäude des Festlands dem Downtown-Kern am nächsten und die Vorstadt bekäme 20-60 m.
Gemessen an den 2.352 echten Grundrissen: 68 Gebäude bekommen eine Wahrzeichenhöhe (31-248 m, Median 114,5), 279 fallen auf Downtown (20-59 m, Median 29,6), 543 auf Ocean Beach (8-25 m, Median 12,5), 1.462 auf Suburbs (6-15 m, Median 8,4). Gesamtprofil p50 9,4 m, p90 27,2 m.
- [ ] **Step 6: Durchlauf und Sichtprüfung**
+37
View File
@@ -0,0 +1,37 @@
[
{
"name": "Downtown",
"x": -511,
"y": 254
},
{
"name": "Ocean Beach",
"x": 1575,
"y": 1020
},
{
"name": "Suburbs",
"x": -750,
"y": 1750
},
{
"name": "Suburbs",
"x": 250,
"y": -250
},
{
"name": "Suburbs",
"x": 250,
"y": 750
},
{
"name": "Suburbs",
"x": 250,
"y": 1750
},
{
"name": "Suburbs",
"x": 1250,
"y": -250
}
]
+547
View File
@@ -0,0 +1,547 @@
{
"source": "https://github.com/rolux/gtamaplib-vc (Unlicense), game/landmarks/landmarks.json",
"source_commit": "98b858fe6cbb3ea0bffa94aa53d86c1d6b0d5a02",
"note": "Nur name, id, xyz und height uebernommen; Texturen und Kamerafelder verworfen.",
"landmarks": [
{
"name": "Opera Tower",
"id": "L184",
"xyz": [
-417.55,
864.58,
200.87
],
"height": 200.9
},
{
"name": "Stephen P. Clark Government Center",
"id": "L211",
"xyz": [
-934.67,
19.08,
161.5
],
"height": 161.5
},
{
"name": "Southeast Financial Center",
"id": "L222",
"xyz": [
-461.31,
-460.1,
248.34
],
"height": 248.3
},
{
"name": "Kaseya Center",
"id": "L187",
"xyz": [
-272.56,
433.4,
46.77
],
"height": 46.8
},
{
"name": "Trésor Tower",
"id": "L10",
"xyz": [
1837.42,
1946.05,
119.24
],
"height": 119.2
},
{
"name": "Jade Ocean Condos",
"id": "L4",
"xyz": [
1580.99,
2482.23,
202.46
],
"height": 202.5
},
{
"name": "Portofino Tower",
"id": "L122",
"xyz": [
1734.05,
-205.8,
144.46
],
"height": 144.5
},
{
"name": "Miami Tower",
"id": "L221",
"xyz": [
-770.52,
-414.85,
161.07
],
"height": 161.1
},
{
"name": "Marriott Miami Biscayne Bay",
"id": "L185",
"xyz": [
-219.73,
859.14,
146.44
],
"height": 146.4
},
{
"name": "The Grand",
"id": "L182",
"xyz": [
-262.47,
952.24,
176.64
],
"height": 176.6
},
{
"name": "Wells Fargo Center",
"id": "L225",
"xyz": [
-655.02,
-408.58,
186.88
],
"height": 186.9
},
{
"name": "The Floridian",
"id": "L116",
"xyz": [
1265.56,
409.0,
96.47
],
"height": 96.5
},
{
"name": "The Gates Hotel South Beach",
"id": "L86",
"xyz": [
1863.97,
1612.19,
48.18
],
"height": 48.2
},
{
"name": "Sunset Harbour South Condo",
"id": "L102",
"xyz": [
1441.32,
1669.71,
87.36
],
"height": 87.4
},
{
"name": "1800 Club",
"id": "L181",
"xyz": [
-349.78,
1034.41,
161.96
],
"height": 162.0
},
{
"name": "Quantum on the Bay",
"id": "L179",
"xyz": [
-398.51,
1140.65,
194.78
],
"height": 194.8
},
{
"name": "Bank of America Financial Center",
"id": "L84",
"xyz": [
1693.67,
1372.34,
73.44
],
"height": 73.4
},
{
"name": "Blue Diamond",
"id": "L9",
"xyz": [
1830.96,
2061.61,
143.59
],
"height": 143.6
},
{
"name": "Green Diamond",
"id": "L8",
"xyz": [
1772.72,
2120.85,
144.48
],
"height": 144.5
},
{
"name": "W South Beach",
"id": "L16",
"xyz": [
1906.2,
1590.71,
48.76
],
"height": 48.8
},
{
"name": "Venetian Isle Condominium",
"id": "L151",
"xyz": [
55.22,
1191.41,
46.93
],
"height": 46.9
},
{
"name": "1000 Venetian Way",
"id": "L150",
"xyz": [
307.83,
1129.73,
54.16
],
"height": 54.2
},
{
"name": "22 Biscayne Bay",
"id": "L473",
"xyz": [
-350.41,
1354.52,
72.62
],
"height": 72.6
},
{
"name": "112 NE 41st St",
"id": "L168",
"xyz": [
26.62,
2219.87,
53.35
],
"height": 53.3
},
{
"name": "1111 Lincoln Rd",
"id": "L104",
"xyz": [
1482.94,
1340.65,
56.06
],
"height": 56.1
},
{
"name": "Capri South Beach",
"id": "L111",
"xyz": [
1316.65,
1132.18,
57.54
],
"height": 57.5
},
{
"name": "The Tides South Beach",
"id": "L26",
"xyz": [
1993.63,
888.23,
53.21
],
"height": 53.2
},
{
"name": "Old City Hall",
"id": "L70",
"xyz": [
1681.71,
605.02,
51.6
],
"height": 51.6
},
{
"name": "Vizcayne North Condominium",
"id": "L205",
"xyz": [
-528.49,
137.15,
177.17
],
"height": 177.2
},
{
"name": "Marina Blue",
"id": "L189",
"xyz": [
-455.68,
414.97,
177.13
],
"height": 177.1
},
{
"name": "Icon at South Beach",
"id": "L118",
"xyz": [
1355.98,
-13.76,
154.8
],
"height": 154.8
},
{
"name": "Citigroup Center",
"id": "L224",
"xyz": [
-382.36,
-480.26,
152.12
],
"height": 152.1
},
{
"name": "50 Biscayne Blvd",
"id": "L523",
"xyz": [
-434.64,
-246.37,
146.71
],
"height": 146.7
},
{
"name": "Ten Museum Park",
"id": "L191",
"xyz": [
-455.33,
468.57,
138.15
],
"height": 138.1
},
{
"name": "InterContinental Miami",
"id": "L569",
"xyz": [
-255.84,
-466.24,
133.46
],
"height": 133.5
},
{
"name": "Murano Grande",
"id": "L119",
"xyz": [
1415.06,
-58.77,
126.36
],
"height": 126.4
},
{
"name": "Loft Downtown II",
"id": "L206",
"xyz": [
-539.52,
50.15,
126.04
],
"height": 126.0
},
{
"name": "The Crimson",
"id": "L474",
"xyz": [
-458.38,
1238.37,
122.89
],
"height": 122.9
},
{
"name": "New Wave Condominiums",
"id": "L176",
"xyz": [
-341.11,
1419.48,
114.5
],
"height": 114.5
},
{
"name": "The Waverly South Beach",
"id": "L114",
"xyz": [
1249.0,
602.57,
110.95
],
"height": 110.9
},
{
"name": "Pelican Harbor Radio Tower",
"id": "L593",
"xyz": [
1101.8,
1869.0,
113.36
],
"height": 113.4
},
{
"name": "St. Moritz Hotel",
"id": "L21",
"xyz": [
1983.51,
1107.58,
49.35
],
"height": 49.4
},
{
"name": "Uptown Lofts",
"id": "L177",
"xyz": [
-349.03,
1316.42,
46.15
],
"height": 46.2
},
{
"name": "Knight Concert Hall",
"id": "L436",
"xyz": [
-353.55,
687.21,
46.16
],
"height": 46.2
},
{
"name": "New World Center",
"id": "L103",
"xyz": [
1653.41,
1432.42,
45.18
],
"height": 45.2
},
{
"name": "419 NE 4th Ave",
"id": "L475",
"xyz": [
-428.91,
1210.66,
34.08
],
"height": 34.1
},
{
"name": "Hotel Victor",
"id": "L32",
"xyz": [
1945.1,
733.09,
33.59
],
"height": 33.6
},
{
"name": "Miami Beach Parking Garage",
"id": "L73",
"xyz": [
1850.1,
682.39,
34.08
],
"height": 34.1
},
{
"name": "City View Parking Garage",
"id": "L169",
"xyz": [
-172.17,
2060.76,
33.16
],
"height": 33.2
},
{
"name": "Jenny Hostel",
"id": "L71",
"xyz": [
1911.18,
602.76,
30.98
],
"height": 31.0
},
{
"name": "Star Island Water Tower",
"id": "L382",
"xyz": [
760.6,
480.35,
28.73
],
"height": 28.7
},
{
"name": "Flamingo South Beach",
"id": "L112",
"xyz": [
1278.92,
950.05,
76.39
],
"height": 76.4
},
{
"name": "Cruise Terminal D",
"id": "L420",
"xyz": [
664.47,
-431.34,
34.79
],
"height": 34.8
},
{
"name": "Hotel Breakwater",
"id": "L40",
"xyz": [
1949.86,
563.75,
25.8
],
"height": 25.8
}
]
}