WME E40 Geometry

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

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği yüklemek için Tampermonkey gibi bir uzantı yüklemeniz gerekir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği indirebilmeniz için ayrıca Tampermonkey gibi bir eklenti kurmanız gerekmektedir.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

Bu stili yüklemek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için Stylus gibi bir uzantı kurmanız gerekir.

Bu stili yükleyebilmek için Stylus gibi bir uzantı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

Bu stili yüklemek için bir kullanıcı stili yöneticisi uzantısı kurmanız gerekir.

Bu stili yükleyebilmek için bir kullanıcı stili yöneticisi uzantısı yüklemeniz gerekir.

(Zateb bir user-style yöneticim var, yükleyeyim!)

Yazar
Anton Shevchuk
Günlük kurulumlar
0
Toplam kurulumlar
450
Değerlendirmeler
1 0 0
Versiyon
0.13.0
Oluşturulma
07.08.2019
Güncellenme
10.04.2026
Boyut
60,3 KB
Lisans
MIT
Geçerli

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