Last active
November 15, 2025 04:22
-
-
Save roleohibachi/71bcc38a319db28e07c86e537461b039 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "id": "repeater", | |
| "name": { | |
| "en": "Repeaters" | |
| }, | |
| "description": { | |
| "en": "Repeaters" | |
| }, | |
| "source": { | |
| "osmTags": "communication:amateur_radio:repeater~*" | |
| }, | |
| "minzoom": 0, | |
| "title": { | |
| "render": { | |
| "en": "Repeaters" | |
| } | |
| }, | |
| "pointRendering": [ | |
| { | |
| "iconSize": "40,40", | |
| "location": [ | |
| "point" | |
| ], | |
| "anchor": "center", | |
| "marker": [ | |
| { | |
| "icon": "wifi", | |
| "color": "blue" | |
| } | |
| ] | |
| } | |
| ], | |
| "lineRendering": [ | |
| { | |
| "color": "#00f", | |
| "width": "8" | |
| } | |
| ], | |
| "presets": [ | |
| { | |
| "tags": [ | |
| "man_made=communications_tower", | |
| "communication:amateur_radio:repeater=yes", | |
| "communication:amateur_radio=yes", | |
| "tower:type = communication" | |
| ], | |
| "title": { | |
| "en": "a repeater" | |
| }, | |
| "description": { | |
| "en": "An automatic transceiver that receives a signal and re-transmits it on a different frequency." | |
| } | |
| } | |
| ], | |
| "tagRenderings": [ | |
| "images", | |
| { | |
| "question": { | |
| "en": "What is the name of this repeater?" | |
| }, | |
| "id": "1_nameq", | |
| "render": { | |
| "en": "This repeater is known as {name}" | |
| }, | |
| "freeform": { | |
| "key": "name" | |
| } | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the amateur radio callsign of this repeater?" | |
| }, | |
| "id": "callsign_q", | |
| "render": { | |
| "en": "Repeater callsign: {communication:amateur_radio:callsign}" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:callsign" | |
| }, | |
| "questionHint": { | |
| "en": "amateur radio call sign assigned to the object" | |
| } | |
| }, | |
| { | |
| "question": { | |
| "en": "Who operates this repeater?" | |
| }, | |
| "id": "operator_q", | |
| "render": { | |
| "en": "Operator callsign: {operator}" | |
| }, | |
| "freeform": { | |
| "key": "operator" | |
| }, | |
| "questionHint": { | |
| "en": "Callsign of the operator that manages the repeater" | |
| }, | |
| "multiAnswer": false | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the repeater's modulation type?" | |
| }, | |
| "id": "modulation_q", | |
| "render": { | |
| "en": "Other. WARC 79 designation: {communication:amateur_radio:repeater:modulation}" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:modulation", | |
| "type": "string" | |
| }, | |
| "mappings": [ | |
| { | |
| "if": "communication:amateur_radio:repeater:modulation=11K0F3E", | |
| "then": { | |
| "en": "11K0F3E (Narrow FM, 11 kHz BW)" | |
| } | |
| }, | |
| { | |
| "if": "communication:amateur_radio:repeater:modulation=11K2F3E", | |
| "then": { | |
| "en": "11K2F3E (Narrow FM, 11.2 kHz BW)" | |
| } | |
| }, | |
| { | |
| "if": "communication:amateur_radio:repeater:modulation=16K0F3E", | |
| "then": { | |
| "en": "16K0F3E (Mid-width FM. 16.0 kHz BW)" | |
| } | |
| }, | |
| { | |
| "if": "communication:amateur_radio:repeater:modulation=20K0F3E", | |
| "then": { | |
| "en": "20K0F3E (Wideband FM, 20 kHz BW)" | |
| } | |
| } | |
| ], | |
| "questionHint": { | |
| "en": " (WARC 79 designation)" | |
| } | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the repeater's output frequency (Hz)?" | |
| }, | |
| "id": "freq_out_q", | |
| "render": { | |
| "en": "Output frequency: {communication:amateur_radio:repeater:frequency_out} Hz ({_frequency_out_mhz} MHz)" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:frequency_out", | |
| "type": "pnat" | |
| }, | |
| "questionHint": { | |
| "en": "repeater's transmitting frequency (Hz)" | |
| }, | |
| "multiAnswer": false | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the repeater's shift (Hz)?" | |
| }, | |
| "id": "shift_q", | |
| "render": { | |
| "en": "Shift: {communication:amateur_radio:repeater:shift} Hz ({_shift_khz} KHz)" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:shift", | |
| "type": "int" | |
| }, | |
| "mappings": [ | |
| { | |
| "if": "communication:amateur_radio:repeater:shift=-600000", | |
| "then": { | |
| "en": "-600000 Hz (-600KHz, -0.6MHz)" | |
| } | |
| }, | |
| { | |
| "if": "communication:amateur_radio:repeater:shift=+600000", | |
| "then": { | |
| "en": "+600000 Hz (+600KHz, +0.6MHz)" | |
| } | |
| }, | |
| { | |
| "if": "communication:amateur_radio:repeater:shift=-7600000", | |
| "then": { | |
| "en": "-7600000 Hz (-7.6MHz)" | |
| } | |
| }, | |
| { | |
| "if": "communication:amateur_radio:repeater:shift=+5000000", | |
| "then": { | |
| "en": "+5000000 (+5MHz)" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "render": { | |
| "en": "Input frequency: {_frequency_in} Hz ({_frequency_in_mhz} MHz) (calculated)" | |
| }, | |
| "id": "11_gwyvza18hr53lss", | |
| "condition": "_frequency_in~*" | |
| }, | |
| { | |
| "render": { | |
| "en": "Ham band: {_band}" | |
| }, | |
| "id": "12_yiraymkxm517t66", | |
| "condition": "_band~*" | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the repeater's transmitter power (W)?" | |
| }, | |
| "id": "power_q", | |
| "render": { | |
| "en": "Transmitter power: {communication:amateur_radio:repeater:power} W" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:power" | |
| } | |
| }, | |
| { | |
| "question": { | |
| "en": "Does this repeater require a toneburst? If so, what frequency (Hz)?" | |
| }, | |
| "id": "toneburst_q", | |
| "render": { | |
| "en": "Toneburst: {communication:amateur_radio:repeater:toneburst} Hz" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:toneburst" | |
| } | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the CTCSS tone (Hz)? (one decimal place)" | |
| }, | |
| "id": "ctcss_q", | |
| "render": { | |
| "en": "CTCSS: {communication:amateur_radio:repeater:ctcss} Hz" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:ctcss" | |
| } | |
| }, | |
| { | |
| "question": { | |
| "en": "What is the DCS code? (three-digit octal)" | |
| }, | |
| "id": "dcs_q", | |
| "render": { | |
| "en": "DCS code: {communication:amateur_radio:repeater:dcs}" | |
| }, | |
| "freeform": { | |
| "key": "communication:amateur_radio:repeater:dcs" | |
| } | |
| } | |
| ], | |
| "calculatedTags": [ | |
| "_frequency_in = (() => { const out = Number(feat.properties['communication:amateur_radio:repeater:frequency_out']); const shift = Number(feat.properties['communication:amateur_radio:repeater:shift']); return (!isNaN(out) && !isNaN(shift)) ? out + shift : null; })()", | |
| "_frequency_in_mhz = (() => { const out = Number(feat.properties['communication:amateur_radio:repeater:frequency_out']); const shift = Number(feat.properties['communication:amateur_radio:repeater:shift']); return (!isNaN(out) && !isNaN(shift)) ? (out + shift) / 1e6 : null; })()", | |
| "_frequency_out_mhz = (() => { const outHz = Number(feat.properties['communication:amateur_radio:repeater:frequency_out']); return !isNaN(outHz) ? outHz / 1e6 : null; })()", | |
| "_band = (() => { const outHz = Number(feat.properties['communication:amateur_radio:repeater:frequency_out']); if (isNaN(outHz)) return null; const mhz = outHz / 1e6; if (mhz >= 50 && mhz <= 54) return '6m'; if (mhz >= 144 && mhz <= 148) return '2m'; if (mhz >= 222 && mhz <= 225) return '1.25m'; if (mhz >= 420 && mhz <= 450) return '70cm'; if (mhz >= 902 && mhz <= 928) return '33cm'; if (mhz >= 1240 && mhz <= 1300) return '23cm'; return null; })()", | |
| "_shift_khz = (() => { const shiftHz = Number(feat.properties['communication:amateur_radio:repeater:shift']); if (isNaN(shiftHz)) return null; const shiftKHz = shiftHz / 1e3; return (shiftKHz >= 0 ? '+' : '') + shiftKHz; })()" | |
| ], | |
| "deletion": { | |
| "softDeletionTags": { | |
| "and": [ | |
| "disused:amenity:={amenity}", | |
| "amenity=" | |
| ] | |
| }, | |
| "neededChangesets": 1 | |
| }, | |
| "allowMove": false, | |
| "credits": "roleohibachi", | |
| "credits:uid": 10076920 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment