WME E40 Geometry

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

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

Maker
Anton Shevchuk
Dagelijks aantal installaties
0
Totaal aantal installaties
450
Beoordelingen
1 0 0
Versie
0.11.0
Gemaakt op
07-08-2019
Bijgewerkt op
03-04-2026
Grootte
57,1 KB
Licentie
MIT
Wordt toegepast op

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://greasyfork.org/uk/scripts/388271-wme-e40-geometry