Level0

From OpenStreetMap Wiki
Jump to navigation Jump to search
Level0
Level0 Screenshot.png
Author: Ilya Zverev
License: WTFPL
Platform: Web
Version: 1.3 Changelog (2024-06-01)
Languages: English, Chinese, Croatian, Dutch, French, German, Hungarian, Icelandic, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Vietnamese, and Ukrainian
Website: https://level0.osmz.ru
Source code: https://github.com/zverik/level0
Programming language: PHP

Web-based OSM data editor

Level0 is an OpenStreetMap browser-based editor, designed to be both low-level and user-friendly. It doesn't require JavaScript support and therefore can be used from mobile devices and text-based browsers.

Features

The editor is basically an advanced RawEditor, with these improvements:

  • instead of OSM XML you edit more friendly Level0L code
  • you can edit many entities at once (but please keep Automated Edits code of conduct in mind)
  • file uploads and map calls are supported
  • extra data like version numbers are stored on a server
  • there is a map for locating and moving nodes

Usage

Type an entity type and identifier into the URL or group of IDs field, for example, w123123. You can specify many entities at once (comma-separated), for downloading parent ways and relations add an asterisk after the identifier (n45678*); add an exclamation mark for downloading child objects (e.g. nodes for a way). URLs, of course, are supported, both pointing to osm.org website and to API (note that all URLs are rewritten, so you can't have anything outside osm.org website). After then press Add or Replace button, depending on whether you wish to keep edited data.

When cursor in textarea is positioned inside a node definition (e.g. node 45678), its position and coordinates will be displayed on the map. You can then move the marker and press button to update node's coordinates.

To open the editor from within Overpass after creating and running a query, click the Export button and then select Level0 from the Data choices. This will open the Level0 editor in your default browser with the query results loaded. If changing tags on multiple objects, for example, a spelling error, you can select all, copy the data to an external text editor where you can use a search & replace function, then copy and paste the result into the Level0 window.

To upload data, log in to OSM, enter a mandatory changeset comment and press the Upload button. Instead, you may download an .osm file, open it in JOSM and upload it from there.

To open the editor with a preloaded object or map region, use url query parameter: e.g. https://level0.osmz.ru/?url=node/240095754

One could also automate opening current node/way/relation openstreetmap.org URL in Level0 via this Javascript  bookmarklet:

javascript:(function(){ open(document.location.toString().replace(/^.*\/(node|way|relation)(\/[0-9]+).*$/, "https://level0.osmz.ru/?url=$1$2"),'_blank') ; })()

Buttons

The editor has many buttons, with the following functions:

Add to editor
Appends contents of a file or URL to the data being edited. May cause conflicts or overwrite anything.
Replace data in editor
Clears edited data before loading file or URL. This will result in losing all changes.
Revert changes
Reverts objects that were modified within the editor session to their base state and updates contents of deleted objects. Preserves created objects and deletion flags.
Clear data
Exactly what it says on the tin.
Log in / Log out
Authenticates you with an OSM OAuth. The editor needs editing permissions, user details are optional.
Download .osm
Provides all edited data in a JOSM file format. You can import these data later (watch out for conflicts if you wait too long).
Validate
Does nothing: the data is validated every time you press any button. The results are printed below the text area.
Check for conflicts
Downloads all objects that were modified and checks if there are new versions of them.
Show osmChange
Browse XML data stream that would be uploaded to OSM after pressing Upload button.
Upload to OSM
If the changeset comment is entered, there are modified objects and no severe validation messages, uploads changes to the OSM database. After that clears the data.
Sets or changes the coordinates of the selected node.
Edit this area
Copies current map center coordinates to URL field. Press Add or Replace button to download the area around that point.

Common Tasks

Edit a POI tags

  1. Find a POI on the osm.org (or on editor's side map), and zoom as close as you can on it.
  2. Copy osm.org URL to editor's URL field (or press Edit this area).
  3. Press Replace data in editor button.
  4. Find the POI in question. It can be a node or a way, sometimes even a multipolygon relation.
  5. Edit its tags.
  6. Press Log in button and the press Accept (or whatever osm.org site asks).
  7. Type a changeset comment (e.g. updated opening hours) and press Upload to OSM.

Create a POI

  1. Check that the POI isn't there already (steps 1-4 of editing a POI). If not, press Clear data.
  2. Navigate to the location of the POI in the side map, placing the marker at its place.
  3. Type node in the text area.
  4. Press left arrow button to add coordinates.
  5. Add tags on next lines in format tag = value.
  6. Upload changes: see steps 6-7 in POI editing section.

Delete a building

  1. Download an area with the building (see steps 1-3 of editing a POI).
  2. Find the building. We'll assume it's a way.
  3. Add a minus sign (-) to its header, like that: -way 123123.
  4. The way includes some nodes, they need to go only if they are not used by other ways. Check that and add - to headers of unused nodes.
  5. Upload changes (steps 6-7 of editing a POI).
  6. If you received an error, you probably deleted a node referenced by other ways. Remove some minuses.

How to check a way is not referenced by a relation:

  1. Copy its header (way 123123) to the URL field, add an asterisk (way 123123*) and press Add to editor.
  2. See if any relations appeared with the way as a member.
  3. To properly delete the way in this case, remove the reference to it from the relation.

Split a way

  1. Download a way with its nodes: way12345678! (with the exclamation mark)
  2. Find a node to split the way at by moving a cursor and checking the map.
  3. Duplicate that node reference line.
  4. Add way line (only three letters, no ID) between those two node lines
  5. Copy all of the tags from the first way under the new way header.
  6. Upload changes (steps 6-7 of editing a POI).

To join ways, you would have to copy node references from one of them, then prepending the way header with "-" character.

Undelete a node

  1. Open the node's page on osm.org: e.g. https://www.openstreetmap.org/node/345345
  2. Check that it is deleted and find its version.
  3. Enter n345345.W into Level0 editor's URL field, where 345345 is the node's identifier, and W is its version minus one (e.g. 2 if the version was 3).
  4. Check that coordinates are there, then add the deletion version to the node's identifier after a dot, like that: "node 345345.3: <lat>, <lon>.
  5. Upload changes (see steps 6-7 of editing a POI).

Revert a node to a previous version

  1. Open the node's page on osm.org: e.g. https://www.openstreetmap.org/node/345345
  2. Find its version.
  3. Enter n345345.W into editor's URL field, where 345345 is the node's identifier, and W is its version minus one (e.g. 2 if the current version is 3).
  4. In your browser, select "copy" on all the details
  5. Enter n345345 into editor's URL field to get the latest version
  6. In your browser, select "paste" to replace the details with those from the previous version
  7. Upload changes (see steps 6-7 of editing a POI).

Changeset tags

The interface provides a form field Changeset comment:, which adds the changeset tag comment=*. Please provide a good comment in particular as you are using a low-level editor, so other users can clearly recognise the intent of your edits. The created_by=* tag is added automatically with the software version used.

Additional changeset tags can be added in the main editor box, lead by the keyword changeset, example:

changeset
  source = survey

See also

External links