Coder Social home page Coder Social logo

id-tagging-schema's Introduction

test npm version

iD Tagging Schema

This is the directory of OpenStreetMap tagging data used by the iD editor. It includes presets, fields, deprecations, and more.

Participate!

Background

OpenStreetMap itself does not have a formal rigid database schema, but relies on a tagging folksonomy instead.

Editing tools need to know how tags are used in order to facilitate mapping. This Tagging Schema fills that need, but with a number of caveats:

  • This isn't authoritative or definitive
  • Tagging interpretations may vary from mapper to mapper, place to place, and over time
  • Our primary aim is to serve the needs of iD mappers (but other tools are welcome to use this too)
  • We support tags based on practicality, usage, and community approval
  • Sometimes there are reasons we can't support a tag even if it's used or approved

Usage

Java/Android

The westnordost/osmfeatures project, a component of StreetComplete, makes it easier to use this data with Android or other Java platforms.

Use by Other Editors

iD tagging schema is used not only by iD. Here's a list of projects which use the data from the id-tagging-schema.

Related Projects

  • The OpenStreetMap wiki documents the current usage of tags, and hosts discussions about proposed new tags.
  • The ideditor/schema-builder project holds the documentation for the data format used in this repository
  • iD also incorporates preset data from the name-suggestion-index.
  • Other editors also include their own models of interpretations of OSM tags. See for example Vespucci's or JOSM's tagging presets.

Contributing

See the dedicated CONTRIBUTING page for information about this.

id-tagging-schema's People

Contributors

1ec5 avatar andrewharvey avatar arch0345 avatar bhousel avatar binnette avatar cicku avatar danieldegroot2 avatar dependabot[bot] avatar dimitar5555 avatar elefant-aus-wuppertal avatar evancarroll avatar floedelmann avatar govvin avatar hufkratzer avatar jdhoek avatar k-yle avatar kjonosm avatar marc-marc-marc avatar matkoniecz avatar mbrzakovic avatar mnalis avatar nlehuby avatar peternewman avatar qugebert avatar quincylvania avatar tiptoptom avatar tordans avatar tyrasd avatar westnordost avatar zverik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

id-tagging-schema's Issues

Potential new validation rules?: information=* => board_type=*

It seems between 2009 and 2010 the tagging scheme changed a bit from information=nature to information=board + board_type=nature.

I found this by looking to this chart: https://taginfo.openstreetmap.org/tags/information=nature#chronology
And checking an old wiki version of the corresponding template from that time (third last table-line) gives a quite good evidence.

Would that justified for deprecating this tag & and add a new validation rule?

Seems there are also other combinations with , history and wild_life / wildlife, compare same old wiki version and taginfo information values.

Edit:

Similar for hikingmap & citymap, but this changed from
information=hikingmap to information=map + hiking=yes + map_type=topo
information=citymap to information=map + map_size=city + map_type=street

So, also osm-carto would show more specific icons on the map after these tag upgrades :-)

adding highway=service to every single leisure=slipway makes no sense

Is it intentional that iD wants to add

highway=service
service=slipway

to every single slipway, including ones mapped as areas where it break iD rendering of this feature?

See say https://en.wikipedia.org/wiki/Slipway#/media/File:Slip-V%C3%A4rldens_%C3%A4nde-Ystad.jpg or https://en.wikipedia.org/wiki/Slipway#/media/File:Slipway_at_portland.JPG

highway=service makes sense on many linear slipways (see case like https://en.wikipedia.org/wiki/Slipway#/media/File:Slipway.JPG ), or maybe even on most of slipways. But adding it to every single slipway is weird.

New preset: Bike repair shop

I feel like it's unnecessarily hard right now to add a bike repair shop that only repairs bikes, and doesn't sell any. You have to know that you open up the tags manager and add service:bicycle:retail no, after adding a node for a bicycle shop.

But if you want to add a repair shop, you won't search for a bike shop, and might not even find the correct node to add at all. This might be worse in other languages. In english the word "shop" is included in both words, but for example in Norwegian a bike shop (selling bikes) is "sykkelbutikk", while a bicycle repair shop is "sykkelreparatør" or "sykkelverksted". So if you only see the preset "sykkelbutikk" you'll conclude that you can't add a "sykkelreparatør/verksted", and give up.

So I propose a new preset with shop=bicycle, service:bicycle:repair=yes and service:bicycle:retail=no

Thank you!

Add toilets field to presets

So, in many restaurants and shops, there is usually a restroom, and some people would probably like to add the information to the map. However, inexperienced users may not know about how to tag toilets within places in the map, and for other mappers, it can be exhausting to add this information. To solve this problem, I propose that there should be a Toilets field that is similar to Internet Connection, where if a user puts toilets=yes, the editor automatically asks other details such as if the toilet is wheelchair accessible, and if the toilet is unisex or not. See https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dtoilets#Toilets_within_places for more information.

Add car detailer

Since there are several car places that only detail cars, one way to distinguish them would be to add a Car Detailer preset with shop=car_repair with service:vehicle:detailing=yes.

Deprecate various building=* values

shop [9730] → building=retail
factory [4652] → building=manufacture
abandoned [4421] → building=yes + abandoned=yes
dwelling_house [4059] → building=residential
apartment [2371] → building=apartments
storage [2159] → building=warehouse
other [1578] → building=yes
power_substation [1512] → building=service + power=substation
part [1193] → building:part=yes
offices [890] → building=office
House [853] → building=house
building=building [840] → building=yes
building=Building [509] → building=yes
appartment [441] → building=apartments
Residential [379] → building=residential
constraction [335] → building=construction
fixme [316] → building=yes + fixme=yes
convenience [197] → building=retail
under construction [190] → building=construction
shops [173] → building=retail
appartments [128] → building=apartments
public_building [330] → building=public
railway_station [189] → building=train_station
railway [201] → building=train_station
detached_house [182] → building=detached
services [137] → building=service
Service [51] → building=service
comercial [73] → building=commercial
y [373] → building=yes
Yes [78] → building=yes
true [108] → building=yes
oui [160] → building=yes
Si [68] → building=yes
yess [20] → building=yes

Code below.

CODE

  {
      "old": {"building": "abandoned"},
      "replace": {"building": "yes", "abandoned": "yes"}
  },
  {
      "old": {"building": "apartment"},
      "replace": {"building": "apartments"}
  },
  {
      "old": {"building": "appartments"},
      "replace": {"building": "apartments"}
  },
  {
      "old": {"building": "appartment"},
      "replace": {"building": "apartments"}
  },
  {
      "old": {"building": "Building"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "building"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "comercial"},
      "replace": {"building": "commercial"}
  },
  {
      "old": {"building": "constraction"},
      "replace": {"building": "construction"}
  },
  {
      "old": {"building": "convenience"},
      "replace": {"building": "retail"}
  },
  {
      "old": {"building": "detached_house"},
      "replace": {"building": "detached"}
  },
  {
      "old": {"building": "dwelling_house"},
      "replace": {"building": "residential"}
  },
  {
      "old": {"building": "factory"},
      "replace": {"building": "manufacture"}
  },
  {
      "old": {"building": "fixme"},
      "replace": {"building": "yes", "fixme": "yes"}
  },
  {
      "old": {"building": "House"},
      "replace": {"building": "house"}
  },
  {
      "old": {"building": "offices"},
      "replace": {"building": "office"}
  },
  {
      "old": {"building": "other"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "oui"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "part"},
      "replace": {"building:part": "yes"}
  },
  {
      "old": {"building": "power_substation"},
      "replace": {"building": "service", "power": "substation"}
  },
  {
      "old": {"building": "public_building"},
      "replace": {"building": "public"}
  },
  {
      "old": {"building": "railway_station"},
      "replace": {"building": "train_station"}
  },
  {
      "old": {"building": "Residential"},
      "replace": {"building": "residential"}
  },
  {
      "old": {"building": "services"},
      "replace": {"building": "service"}
  },
  {
      "old": {"building": "Service"},
      "replace": {"building": "service"}
  },
  {
      "old": {"building": "shops"},
      "replace": {"building": "retail"}
  },
  {
      "old": {"building": "shop"},
      "replace": {"building": "retail"}
  },
  {
      "old": {"building": "Si"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "storage"},
      "replace": {"building": "warehouse"}
  },
  {
      "old": {"building": "true"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "under construction"},
      "replace": {"building": "construction"}
  },
  {
      "old": {"building": "yess"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "Yes"},
      "replace": {"building": "yes"}
  },
  {
      "old": {"building": "y"},
      "replace": {"building": "yes"}
  },

Add 'import_uuid' & 'gnis:import_uuid' to discarded tag list

These tags don't appear to serve any real purpose, and the wiki discourages their use. It seems they were intended to act like a changeset ID before changesets were introduced. They have been used 224k and 52k times respectively. The discarded list already contains tiger:upload_uuid which appears to have the same intended purpose.

Add country / state specific traffic sign presets

openstreetmap/iD#5333 is fantastic, as is mapillary sign detection being present in ID.

Unfortunately, most of the time I spend editing to add sign information I am referencing https://en.wikipedia.org/wiki/Road_signs_in_Australia

Current UX adding country specific signs - a sign is easily detected, with a broad (sometimes incorrect) category suggested; however determining that is a "AU:W6-1" is difficult.
image

Obviously, adding a preset for every locality in the world is unreasonable, so I'd suggest:

  • A directory(?) or other container for a given ISO country code (ISO 3166-1 alpha-2); or country-subdivision code (ISO_3166-2)
  • An easy localisation file containing a list of sign identifier, local name, aliases for a
  • A sample implementation of the top 5 or 10 values without presets - https://taginfo.openstreetmap.org/keys/traffic_sign#values (anything with > 20,000 uses?) - the community could provide PR's for more detail/their countries

I'm unclear from reading through the preset schema if these kind of country-specific-presets are possible.

Psuedocode examples -
traffic_signs/nl/presets.json

[
     {
       "key": "traffic_sign",
       "value": "NL:G12a",
       "description": "Cyclepath Sign / 
Fietspad Teken (NL G12a)",
       "object_types": ["node"],
       "icon_url": "https://commons.wikimedia.org/wiki/File:Nederlands_verkeersbord_G12a.svg"
     }
]

Out of scope:

  • Conditional signs are complex and would require significant detail; I'd exclude them from this feature request

Enhance camp_site and caravan_site preset fields

I would like to request a number of fields to be added to the tourism camp_site and caravan_site presets:

  • tents (yes/no)
  • caravans (yes/no)
  • static_caravans (yes/no)
  • backcountry (yes/no)
  • group_only (yes/no)
  • nudism

The reason that these fields are important, is for finding a camp site with a certain vehicle or with a tent. Without these properties, camp sites may not allow access for camping with the vehicle/tent at hand. Situations like this occur when:

  • A camp site is visited where nudism is the norm, but the visitors would rather not camp in a nude manner
  • A camp site is paved with asphalt and cannot facilitate pitching tents
  • A caravan site only allows static caravans, and no overnight camping with any vehicle/tent
  • A camp site only allows tents and does not allow caravans or other large vehicles.
  • A camp site only allows groups
  • A camp site only allows private / members only access

Editors like iD and JOSM are the first point to improve the tagging experience for mappers. JOSM has a good preset, but the iD preset is lacking the required fields.

The open camping map visualizes this well.

Also see this tagging mailing list conversation about differentiating caravan_site and camp_site.


If I can make the time I will also try a pull request for this enhancement.


iD screenshot of camp_site preset:

image

JOSM screenshot of camp_site preset:

image

//edit @tyrasd

checklist for proposed fields:

  • tents #749
  • caravans #750
  • static_caravans #751
  • picnic_table #745
  • backcountry
  • group_only
  • nudism #752

Replace shop=water_sports with shop=surf

There are many water sports. Some of them have their own tags:
shop=boat - sailing, boating
shop=scuba_diving - scuba diving
shop=jetski - jet ski

shop=water_sports doesn't have a page on Wiki, so I suggest to remove this preset and add shop=surf instead:
https://wiki.openstreetmap.org/wiki/Tag:shop%3Dsurf
It's a shop that sells surfboards, sailboards, wakeboards, water skis and other types of surf style boards.

Potential adding a preset for highway=emergency_access_point

add compressed_air field to shop=scuba_diving and amenity=dive_centre

Currently a lot of scuba diving shops and diving centers that provide air are tagged with both scuba_diving:air_filling=yes and scuba_diving:filling=yes. Likely because of the "services" preset. It would be a lot less convoluted if there was a compressed_air=yes/no preset that people could use instead. Especially considering it is a much more widely used and accepted tag then either of those, and it doesn't involve duplicating a tag. Which I'm not sure why people are doing, but it would likely be fixed if there was just a compressed_air preset. Plus, it would also allow for a more intuitive addition of other tags to describe the compressed air, like compressed_air:fee etc.

https://wiki.openstreetmap.org/wiki/Key:compressed_air

"Dentist" preset with "specialties" subtag

iD 2.17.3
When editing "Dentist" POI, "specialties" field seem to be populated with all the possible options from I guess healthcare:speciality subtag..?
Perhaps that should be removed or if possible narrowed down a selection to sensible options?
Otherwise we can end up with nonsense combinations like

amenity=dentist
healthcare=dentist
healthcare:speciality=gynaecology;urology;dermatology

Remove Hobby Shop preset

...because no one knows what it is. See Wiki: https://wiki.openstreetmap.org/wiki/Tag:shop%3Dhobby
My hobby is OpenStreetMap - would I buy a map in a Hobby Store?:)

This preset has terms: manga, figurine, model - we already have separate presets for these ones - shop=anime, shop=collector and shop=model.

I suggest addding "hobby" as a term for these presets:

  • shop=anime
  • shop=bicycle
  • shop=boat
  • shop=books
  • shop=brewing_supplies
  • shop=collector
  • shop=craft
  • shop=doityourself
  • shop=fishing
  • shop=games
  • shop=hunting
  • shop=model
  • shop=music
  • shop=musical_instrument
  • shop=outdoor
  • shop=scuba_diving
  • shop=sports
  • shop=toys
  • shop=video
  • shop=video_games

So one can easily find the right preset.

Don't reuse preset icons so much

The v3 UI relies heavily on preset icons and works best when all icons are differentiable. Because of this, we should find or design new icons for presets where the icon is reused wherever possible.

Note that it's sometimes okay to use the same icon file when the presets are differentiated by other things like color or border.

Below is a list of the most-used icon names and the number of presets that use them.

(none), 75
temaki-pedestrian, 38
maki-shop, 34
maki-suitcase, 30
maki-pitch, 28
temaki-tools, 27
maki-building, 20
maki-water, 17
maki-car, 14
maki-playground, 13
maki-hospital, 12
maki-restaurant, 12
maki-golf, 12
maki-home, 11
maki-place-of-worship, 11
maki-rail, 11
maki-art-gallery, 10
temaki-military, 10
temaki-diamond, 10
maki-town-hall, 9
maki-bicycle, 9
maki-lodging, 9
maki-triangle-stroked, 9
fas-warehouse, 8
maki-bus, 8
maki-ferry, 8
maki-roadblock, 8
maki-horse-riding, 8
maki-airport, 7
temaki-storage_tank, 7
fas-swimmer, 7
maki-barrier, 7
maki-farm, 7
fas-biking, 7
iD-railway-rail, 7
maki-embassy, 6
temaki-money_hand, 6
maki-clothing-store, 6
maki-restaurant-noodle, 6
maki-shelter, 6
temaki-power, 6
iD-highway-service, 6
maki-castle, 6
temaki-tram, 6

Add Cafeteria preset

The tag fast_food=cafeteria is used for a canteen, refectory or a cafeteria, a type of food service location in which there is little or no waiting staff table service, usually found within an institution such as an office building, factory, hospital, or school.
Source: https://wiki.openstreetmap.org/wiki/Tag:fast_food%3Dcafeteria

Tag with amenity=fast_foodand fast_food=cafeteria.

support unsigned_ref

Some people love adding officially assigned road numbers that are not signposted (or are marked with signs that are invisible to drivers).

We have https://wiki.openstreetmap.org/wiki/Key:unsigned_ref for that.

Sadly, some people add it using ref tag, even to roads already tagged with correct unsigned_ref.

I propose to add it as "Road number without reassurance marker" or "Road number not listed on traffic signs" or "Unsigned road number"

See https://www.openstreetmap.org/note/2390078 https://www.openstreetmap.org/changeset/92378423 for example of case where iD mapper added ref tag that now needs to be removed.

ID wants to add building=parking to an area tagged as building:part=parking

In my example I have a building that consists of three parts, all tagged as building:part, the outer area that include all parts is tagged as building=yes. The middle part is tagged as building:part=parking. See the screenshot below:

I think the tag "building" should not be added to an area tagged with "building:part".

Skärmbild_2020-11-09_08-07-42

Deprecate landuse=churchyard, replace it by a synonym in landuse=religious and amenity=grave_yard

This tag is problematic as it duplicates more common ways to map such objects and conflicts with some uses of this word.

Currently it is a sole tag found after entering "churchyard" in https://preview.ideditor.com/master/

See https://wiki.openstreetmap.org/wiki/Tag:landuse%3Dchurchyard https://lists.openstreetmap.org/pipermail/tagging/2019-December/049875.html gravitystorm/openstreetmap-carto#3991

See https://josm.openstreetmap.de/ticket/18469#ticket for a related issue

Update Skate Park to include BMX, Roller Blading, and Scooter sports tags

Currently 'Skate Park' only includes 'skateboard' as a sport tag. Adding other sports that use skate parks like inline skating (roller blading), BMX, and Scooter converts it in iD to a 'Sport Pitch' which is less accurate.

While skate parks are most commonly associated to skateboards due to prominent figures like Tony Hawk, they do include these other sports. To add weight to this claim for those who haven't visited a skate park, Wikipedia also lists these sports under 'skate park'.

Update charging_station preset with socket information

Currently the charging station preset misses the most important part. There is no information on the socket type (socket:<type>) and the charging output (socket:<type>:output). The full documentation can be found here: https://wiki.openstreetmap.org/wiki/Tag:amenity%3Dcharging_station

I looked into adding it myself with a pull request, but the conditional tags make it harder. Is there currently a way to add a more advanced preset for this? The socket type could be a drop-down and the capacity would be conditional on the socket type.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.