WME E40 Geometry

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

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

作者のサイトでサポートを受ける。または、このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
作者
Anton Shevchuk
1日のインストール数
0
累計インストール数
456
評価
1 0 0
バージョン
0.13.1
作成日
2019/08/07
更新日
2026/04/22
大きさ
60.3KB
ライセンス
MIT
対象サイト

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