arn-c0de / arn-c0de/InteractiveChecklists

Feature: πŸ—ΊοΈ Add map markers for a new DCS map

Open
#20 0 comments 0 reactions 1 assignee Claimed by @arn-c0de View on GitHub
enhancement good first issue help wanted priority: low
Dominant language
Kotlin
Stars
45
Forks
4
PR merge metrics
No merged PRs in 30d

Description

We need community help to expand DCS map coverage! Choose a missing map from the list below and contribute a marker script with representative airfields/airstrips for testing and QA.

---

### Available DCS maps (pick one!) πŸ—ΊοΈ
Pick a map that doesn't have markers yet:

Map | In Work | In Database | Finished | Last Updated
-- | -- | -- | -- | --
Marianas | ☐ | β˜‘ | β˜‘ | 2026-01-03
Caucasus | ☐ | β˜‘ | β˜‘ | 2026-01-03
South Atlantic | ☐ | ☐ | ☐ | -
Kola | ☐ | ☐ | ☐ | -
Afghanistan | ☐ | ☐ | ☐ | -
Iraq | ☐ | ☐ | ☐ | -
Iraq North | ☐ | ☐ | ☐ | -
East Afghanistan | ☐ | ☐ | ☐ | -
Southwest Afghanistan | ☐ | ☐ | ☐ | -
Sinai | ☐ | ☐ | ☐ | -
Syria | ☐ | ☐ | ☐ | -
Nevada | ☐ | ☐ | ☐ | -
Persian Gulf | ☐ | ☐ | ☐ | -
Normandy 1944 | ☐ | ☐ | ☐ | -
The Channel | ☐ | ☐ | ☐ | -
CW Germany | β˜‘ | β˜‘ | ☐ | 2026-01-06
Normandy | ☐ | ☐ | ☐ | -

> **Check existing scripts** in `scripts/MapDatabaseTools/` before starting to avoid duplicate work!

---

### What to do (contributor checklist) πŸ”§
- [ ] Choose your map from the list above (comment on this issue to claim it!)
- [ ] Create `scripts/MapDatabaseTools/add__markers.py` (use existing scripts as templates)
- [ ] Script CLI: `python add__markers.py [--replace]` to optionally clear existing data
- [ ] Implement `def _samples() -> List[Location]:` returning sample locations
- [ ] Include for each `Location(...)`:
- `name`, `latitude`, `longitude`, `marker_type`
- `icaoiata` (if known, else empty string)
- `elevation_m`, `runways` (as `Runway(...)` objects)
- `frequencies`, `country`, `tags`, `source`, `map`
- [ ] Use `estimate_heading_from_name()` for missing runway headings
- [ ] Add comments for estimated/uncertain values (e.g., `# elevation estimated from imagery`)
- [ ] Include at least **5-10 representative locations** (mix civilian/military if applicable)

---

### Example code snippet πŸ“‹
```py
Location(
name="Guam International Airport",
latitude=13.4834,
longitude=144.7960,
marker_type=MarkerType.AIRPORT.value,
icao="PGUM",
iata="GUM",
elevation_m=91.0,
runways=[
Runway(name="06L/24R", length_m=3048, width_m=45, heading=None, surface="asphalt"),
Runway(name="06R/24L", length_m=2743, width_m=45, heading=None, surface="asphalt")
],
frequencies={"tower": "118.1 MHz", "ground": "121.8 MHz"},
country="United States (Guam)",
tags=["civilian", "international"],
source="OurAirports / DCS Marianas",
map="Marianas"
),
```

---
There is a template script for adding new map markers: add_new_map_template.py.
To create a new map file, copy and rename it (e.g. `add_syria_markers.py`), replace `MAP_NAME` and other placeholders, edit the example locations, then run:

`python add__markers.py [--replace]`

The `--replace` option deletes existing location data before inserting the samples.
---

### How to test πŸ§ͺ
1. **Insert markers:**
```bash
python scripts/MapDatabaseTools/add__markers.py
```
2. **Replace existing (fresh start):**
```bash
python scripts/MapDatabaseTools/add__markers.py --replace
```
3. Verify console output shows inserted locations with IDs
4. (Optional) Test in UI/app to confirm display and metadata

> ⚠️ **Disclaimer:** These are development/testing markers only β€” not for real-world navigation!

---

### Acceptance criteria βœ…
- [ ] Script `add__markers.py` created and working
- [ ] At least 5-10 representative locations included
- [ ] Sources cited, estimates documented in comments
- [ ] Script runs without errors and inserts to database
- [ ] PR opened with the new script

---

**Want to contribute?** Comment below with the map you're working on to avoid duplicates! πŸš€

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.