WME E40 Geometry

A script that allows aligning, scaling, and copying POI geometry

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

Autor
Anton Shevchuk
Denne inštalácií
1
Celkový počet inštalácií
459
Hodnotenie
1 0 0
Verzia
0.13.1
Vytvorené
07.08.2019
Aktualizované
22.04.2026
Veľkosť
60,3 KB
Licencia
MIT
Spustiť na

WME 🇺🇦 E40

User script for Waze Map Editor. Create additional panel with buttons for change Place geometry in one click.

Options for a Polygon

Options for a Point

Options for Editors Level 3+

Change the geometry

Development

Install & Build

npm install
npm run build       # one-off build → dist/WME-E40.user.js
npm run watch       # rebuild on changes

Project Structure

Source is written in TypeScript under src/, built with Rollup into a single IIFE at dist/WME-E40.user.js.

src/
├── meta.ts          # userscript header (comment block)
├── style.css        # plain CSS
├── globals.d.ts     # WME runtime globals
├── translations.ts  # i18n (en, uk, ru)
├── types.ts         # road type constants
├── settings.ts      # default settings
├── layers.ts        # navigation vector layer config
├── buttons.ts       # button definitions (place, point, tab)
├── geo-utils.ts     # GeoUtils — spherical geometry math
├── geometry.ts      # polygon creation and manipulation
├── e40.ts           # E40 class (main logic)
├── helpers.ts       # standalone wrapper functions
└── index.ts         # bootstrap entry point

Module Guide

Module Responsibility
translations.ts NAME, REQUIRED_LEVEL, TRANSLATION (3 languages)
types.ts Road type numeric constants (TYPES.street, TYPES.freeway, etc.)
settings.ts Default options (navigation point visibility)
layers.ts Layer style rules for navigation vector visualization
buttons.ts Three button sets: getPlaceButtons() (polygon tools), getPointButtons() (point-to-shape), getTabButtons() (batch operations for rank 3+)
geo-utils.ts GeoUtils class — bearing, angle, distance, intersection calculations on the sphere
geometry.ts createCirclePolygon, createSquarePolygon, simplifyPolygon, normalizeRightAngles
e40.ts E40 class — UI panels, keyboard shortcuts, layer management, all geometry operations
helpers.ts Thin wrappers that delegate to the E40 instance (used by button callbacks)
index.ts Bootstrap — registers translations/CSS, creates E40 instance on bootstrap.wme

Shortcuts

Shortcut Description
Shift+1 Smooth selected POI(s)
Shift+2 Orthogonalize selected POI(s)
None Simplify selected POI(s) (tolerance = 0.00001)
None Simplify selected POI(s) (tolerance = 0.00003)
None Simplify selected POI(s) (tolerance = 0.00005)
None Copy and paste selected POI(s)
Shift+3 Enable Rotation for selected Place
Shift+4 Enable Scale for selected Place
Shift+5 Scale selected POI(s) to 500m²
Shift+6 Scale selected POI(s) to 650m²
Shift+7 Scale selected POI(s) to 650m² if the square lower than 650m²

Links

Author homepage: https://anton.shevchuk.name/
Author pet projects: https://hohli.com/
Support author: https://donate.hohli.com/
Script homepage: https://github.com/AntonShevchuk/wme-e40/
GreasyFork: https://greatest.deepsurf.us/uk/scripts/388271-wme-e40-geometry