Get a sneak peek at whats next for Permanent Hazards on our April 7th Office Hours!
Discussion for the unofficial, community-developed addons, extensions and scripts built for the Waze Map Editor.

The official index of these tools is the Community Plugins, Extensions and Tools wiki page.

Post Reply
Forum rules
Discussion for the unofficial, community-developed addons, extensions and scripts built for the Waze Map Editor.

DO NOT START a new thread unless it is about a new idea. Keep discussion of existing tools within the main thread for that tool.

The official index of these tools is the Community Plugins, Extensions and Tools wiki page.

[Script] WME MagicWand

Post by
WME MagicWand
https://greasyfork.org/ru/scripts/6512-wme-magicwand

Features
  • Magic wand tool - the very same thing as in Photoshop: point on a pixel on the map, click and the tool will create a landmark covering whole area of the same color (see example GIF here)
  • Clone landmark (see GIF example here). With this simple tool plus rotate and resize feature (below) you can create dozens of houses in a minute! Press Ctrl (Cmd) + C to Clone.
  • Orthogonalize landmark corners - same tool as many of you have seen before in OpenStreetMaps iD editor, will make "almost" straight corners of the selected landmark perfectly straight thus making a beautiful landmarks in mobile clients :) See example here. Press Ctrl (Cmd) + X to Orthogonalize selected landmark.

    You can set "Enable Highlight" option ON to highlight those landmarks that need to be orthogonalized.
  • Rotate and resize landmarks option
WME MagicWand has been tested in Chrome and Firefox.
This is the early version, please report any bug you'll encounter and I'll try to fix it ASAP :)

Usage
Advanced editing tools
Clone landmark
Select a landmark you want to clone and press "Clone landmark" button on the left hand menu or use Ctrl (Cmd) + C shortcut. The landmark will be cloned with a same venue type but otherwise empty.

Orthogonalize landmark
Select a landmark and press "Orthogonalize" button on the left hand menu or use Ctrl (Cmd) + X shortcut. This algorithm will try to make "about" straight corners really strait to avoid ugly look in Waze client.

Simplify landmark
Remove excessive points in landmark geometry. Can be tuned by changing "Simplificate landmark" parameter in Magic Wand options tab.

Options for Rotation and Resize
- Open the MagicWand tab in the left menu;
- Check or uncheck boxes to enable or disable Rotate and Resize functionality;
- Select landmark;
- ROTATE: drag the additional landmark's vertice to rotate it;
- RESIZE: drag the additional landmark's vertice to resize. Please note that when RESIZE option is enabled you cannot modify individual vertices.

Right angles helper
- Hold SHIFT while editing a feature to display a helper circle that will help you to draw right angles.

Magic Wand tool
- Open the MagicWand tab in the left menu;
- Choose the type of the supposed landmark (can be changed later);
- Toggle MAGIC WAND button: red means ACTIVE state;
- Click somewhere in the area you'd like to be converted to landmark based on the color (best work with farmland, water, building and forests);
- Wait a bit (the actual time depend on your computer) for landmark to be created;
- Edit the created landmark to fine tune the area.

Note
Error "Cannot create landmark, need at least 3 points to create polygon" means that the script was unable to find enough pixels of the similar colour where you clicked to build a concave hull. Please, try some other point nearby. Also, it happens that the server stops responding for tiles request for some reason, so try to refresh the page.

What does all that options mean?
Color match algorithm - WME MagicWand can use two different algorithms to detect similar pixels on the tiles: based on color "distance" and based on "human-eye similarity". Choose the best suitable option for you but please keep in mind that when changing algorithm you will need to play with Tolerance option too as both algorithms uses it differently.

Tolerance option basically changes sensitivity of the algorithm, what pixels would be supposed to have "similar" color. Large values will select all pixels -- that is not what you want :)

Landmark simplification - as map tiles contains tons of pixels of different color finding appropriate polygon to contain all of "similar" pixels is a difficult computational problem. Current implementation uses one of convex hull algorithms to do it. The problem is that it creates many points on the curves and corners and thus you can use simplification parameter to remove unnecessary points automatically.

Notes
* Please wait when map tiles will be fully loaded after moving or zooming to make plugin work properly.
* As far as I understand we can make the script more accurate if it will compare not individual pixels but certain groups, say 5x5 or 10x10. Need an advice about it though.

I'm really open for any suggestions and comments :)

Installation
- Download script using Install button in the right top corner;
- Open Options -> Tools -> Extensions page;
- Drag & Drop downloaded file to Extensions page.

Version history
2.2
- NEW: New option to draw a helper circle to draw right angels while holding SHIFT key.

2.1
- NEW: Highly experimental support of Magic Wand on custom layers via Map Overlays browser extension (https://chrome.google.com/webstore/deta ... babdkfbbia). Please, do not use layers for editing the maps unless you comply with the terms of use specific to each layer provider.

2.0.1
- FIX: Fixed Rotate and Resize options

2.0
- NEW: Finally, I've managed to implement a correct concave hull algorithm, which means that now complex landmarks will be correctly covered! Thanks, AndriiHeonia, for the lib!
- FIX: Plugin was broken after the Editor updates

1.0
- NEW: Highlight mode: set a Enable Highlight checkbox ON to highlight landmarks to be Orthogonalized.
- Compatibility with newer Editor version
- Minor fixes (thanks skirda!)
0.9
- NEW (requested by Griev0us): Landmark simplification using OpenLayers build-in simplify method for polygons. You can tune the algorithm by setting "Simplify landmark" parameter on MagicWand settings tab.

0.8.2
- NEW: Auto-select created landmark after clone operation

0.8.1
- FIX: compatibility issues with new Editor version fixed

0.8
- NEW (Requested by AlanOfTheBerg): Resize and Rotate checkboxes moved to "Selected Landmark" tab
- NEW: Introduced "Angle threshold" option to allow user to make Orthogonalize method more or less aggressive
- FIX (Reported by davielde): "undefined" options in Landmark removed
- CHANGE (Requested by sketch): "CLICK TO START MAGIC WAND" changed to "CLICK TO STOP MAGIC WAND" while it was active

0.7
- NEW: Options will be saved between session
- NEW: Hotkeys: Press Ctrl (Cmd) + C to Clone or Ctrl (Cmd) + X to Orthogonalize selected landmark

0.6
- NEW: Orthogonalize functionality for landmarks: now you can easily make a perfect straight angles on your landmarks
- Updated to support Venues and Places update

0.5
- NEW: Advanced Editing options for landmarks rotation and resize

0.3
- NEW: added sampling box setting
- CHANGED: a bit better UI
- FIX: Stability fixes
- FIX: Firefox performance hugely improved
0.2
- Stability fixes
0.1
- Initial release

POSTER_ID:10341191

1

Send a message
Last edited by wasd42 on Mon Mar 05, 2018 5:20 pm, edited 8 times in total.

Post by a525ao37
Thank you for useful script, often using
a525ao37
Posts: 8
Has thanked: 3 times
Been thanked: 7 times
Send a message

Post by AlanOfTheBerg
In Chrome/Win7 Tampermonkey, once the Magic Wand creates a landmark, there are no geometry handles so I cannot change the shape.

EDIT: I found that when the "resize landmark" option is checked, the geometry nodes disappear. And now I re-read the notes that found this is a known situation. Why is it this way?
AlanOfTheBerg
EmeritusChamps
EmeritusChamps
Posts: 23627
Has thanked: 568 times
Been thanked: 3478 times
Send a message
Wiki Resources: Map Editing Manual | alanoftheberg@gmail.com
Oregon-based US Ex-Global Champ Editor | iPhone13Pro - VZ

Post by AlanOfTheBerg
wasd42 wrote:That is a restriction set by OpenLayers library (mapping framework used by Waze Editor). I'll try to figure something out, maybe a custom control. Thank you.
Perhaps you could put the option as a button on the tab when the Place is selected, instead of on the Magic Wand tab, and then when a Place is selected, I can choose to click the Resize button to do the change, rather than having to go back to the Magic Wand tab?
AlanOfTheBerg
EmeritusChamps
EmeritusChamps
Posts: 23627
Has thanked: 568 times
Been thanked: 3478 times
Send a message
Wiki Resources: Map Editing Manual | alanoftheberg@gmail.com
Oregon-based US Ex-Global Champ Editor | iPhone13Pro - VZ

Post by alexletov
Hello, to quick fix this issue you can replace

Code: Select all

var userTabs = getElId('user-tabs');
with

Code: Select all

var userTabs = getElId('user-info');
in source code.

It should work with new WME.
alexletov
Coordinators
Coordinators
Posts: 35
Has thanked: 25 times
Been thanked: 19 times
Send a message


Post by aureozb
Hello,

i have a big problem here, the first thing that appears wen i open the wme: unable fo find appropriate control element, script is broken

what should i do ?
aureozb
Waze Global Champs
Waze Global Champs
Posts: 107
Has thanked: 114 times
Been thanked: 32 times
Send a message

Post by aureozb
kentsmith9 wrote:
aureozb wrote:Hello,

i have a big problem here, the first thing that appears wen i open the wme: unable fo find appropriate control element, script is broken

what should i do ?
How funny. I just did a search for this error and didn't see anything. I then restarted my computer and still saw the error. I narrowed the error down to this script and then here is another report of the problem. :lol:

I just disabled it for now and the error goes away while it is being investigated.
But now i can´t move any places :|
aureozb
Waze Global Champs
Waze Global Champs
Posts: 107
Has thanked: 114 times
Been thanked: 32 times
Send a message

Post by aureozb
TheGridExe wrote:
JustinS83 wrote:I tried looking into this. The control that this script uses to add in its additional Place modifications no longer exist in WME. Disable the script until it is brought back.

Since the WME update it is no longer possible to move a Place, and that control is what this script was relying on finding.
but I want to move places!
me too, what kind of person want us to work in map but don't move places ?
aureozb
Waze Global Champs
Waze Global Champs
Posts: 107
Has thanked: 114 times
Been thanked: 32 times
Send a message

Post by aureozb
DauserShenkt wrote:
wasd42 wrote:Hello, everyone!

Waze.map.getControlsByClass(/.*geometryediting.*/i) to find a ModifyFeature control

Any ideas where to find it? :)
WMECH old code with same control type

Code: Select all

// add current city in to drop-down list
function initCityList() {
  var locationInfo = Waze.map.getControlsByClass('Waze.Control.LocationInfo')[0];
  if (locationInfo === null || locationInfo.location === null)
    return;

  var cityName = locationInfo.location.city;
  var thisCity = null;
  for (var city in Waze.model.cities.objects) {
    var cityObj = Waze.model.cities.get(city);
    if (cityObj.name == cityName) {
      thisCity = cityObj.id;
      break;
    }
  }
  if (thisCity === null)
    return;
Latest WMECH latest code for same function

Code: Select all

// add current city in to drop-down list
function initCityList() {
  var thisCity = Waze.model.segments.topCityID;
  if (thisCity === null) return;
  var thisName = Waze.model.cities.get(thisCity).attributes.name;

  var selectCity = getId('_selectCity');
  var cityOption = document.createElement('option');
  var cityText = document.createTextNode(thisName);
  cityOption.appendChild(cityText);
  cityOption.setAttribute('value',thisCity);
  selectCity.appendChild(cityOption);
  console.info("WME Highlights: Init City list: " + thisName);
Hope this helps.
i don't understand, can you please be more specific ?

Many thanks in advance
aureozb
Waze Global Champs
Waze Global Champs
Posts: 107
Has thanked: 114 times
Been thanked: 32 times
Send a message

Post by aureozb
WazingArch wrote:Hello, I am using this script mainly to geometrically edit places - simplify, ortogonize and rotate places.

It seems that the rotation tool doesn't work any more. Also I noticed that when the script is enabled it disables Toolbox's feature "Select in area place or map comment".
should be because of the wme update
aureozb
Waze Global Champs
Waze Global Champs
Posts: 107
Has thanked: 114 times
Been thanked: 32 times
Send a message