NH mapping changes

Actual situation:

  1. each NH has a relation for the whole trunk including the ways in both directions
    see : https://wiki.openstreetmap.org/wiki/India/National_Highways_(new_numbering)
  2. these relations have a tag „network=IN:NH“
  3. each NH has seperate relations for each state; included are the ways in only one direction. NH ways, which are shared by 2 or 3 Nhs have a seperate relation for these parts. With these relations it is possible to calculate the exact length of the Nhs in whole India and in each state. These relations have a tag like „network=IN:NH:KL“ to indicate the state.
    See for example : https://wiki.openstreetmap.org/wiki/Kerala-NH

Disadvantage of this mapping:

  1. quite complicated
  2. a lot of errors occur, because new mappers do not know the construction rules as described above


  1. exact calculation of length
  2. easy download of all Nhs in Kerala…

I want to propose now a different mapping of all Nhs, so that the additional relations are no longer needed:

  1. the relations in https://wiki.openstreetmap.org/wiki/India/National_Highways_(new_numbering): all members are to be updated with „role=forward“ or „role=backward“. I would use forward for south and east. Important is, that this choice is unique for the whole NH.
  2. all additional relations (only one direction and for each state) shall be deleted
  3. wiki-pages for the states: here we use the ID number of the whole NH-relations and the correct length in the state
  4. the length calculation for India/single state/ district…/single NH can be done by a overpass turbo query using the role-values. These queries should be defined and added to the wiki state-pages.
  5. Also the download of single Nhs/ Nhs in a single state/… can be done by overpass turbo queries.
  6. Of course we still need correct mapping, but it is a bit easier.

If you agree to this mapping changes, I could start with a single state.

Fully support having only one relation per NH for ease of maintenance.

I’m not seeing any downside to losing the mentioned advantages as they are very special uses and they could be accomplished by other ways as long as the core NH relation is not broken.

Looks good!

I am not sure that my proposal is optimal.

With the single relations for a whole trunk we have created some monster-relations.
NH44 : 4746 members
NH27 : 3138 members
NH48 : 3067 members …
The relation analyzer can no longer handle NH44 and NH27.

How are tunks/motorways mapped in other countries?

  1. China : monster-relations with more than 7000 members (Shanghai to Istambul); unpossible to maintain
  2. France, Germany… : for a single trunk/motorway several relations for each departement…; these relations are combined in a superroute relation, to define the whole highway.

I think, it is important to have the possibility to control the relations. Too often Newbies delete parts and remap these parts,but do not update the relations. With the relation analyzer it is easy to find these holes.

A solution could be :
we create for each NH a relation for each state seperately; then we combine these relations in a superroute-relation for the whole NH with „network=IN:NH“. It is not so easy to Newbies to damage superroute relations.
For superroute relations see: https://wiki.openstreetmap.org/wiki/Relation:superroute
The relation of a NH in a single state could have for example „network=IN:NH:KL“ to define the state. So it is quite easy to download this in an overpass query.

That would mean rolling back, isn’t it?

No, with my proposal in post 1 and 4 :
each way of an NH would be only in one normal relation (as PlaneMad prefers). This relation combines all ways of the NH in a single state. And these relations of the states are members of a superroute relations.

This relation combines all ways of the NH in a single state. And these relations of the states are members of a superroute relations.

Using a superroute relation sounds like the most logical solution.

I’m curious what effect this has on the Wikipedia/Wikidata dynamic map query like the generation of the map in https://en.wikipedia.org/wiki/National_Highway_44_(India) . Would it still be possible to generate such maps in Wikipedia with the relation restructuring?

These wikipedia maps are possible with splitted relations and superroute relation.
See : https://en.wikipedia.org/wiki/Bundesautobahn_1
This is a highway with two relations (north part till border Niedersachsen/NRW) and the rest. Additional a superroute relation.

Oh zooming in the NH44 wikipedia map near Dehli : You see, that wikipedia do not use the OSM relations but paint the NH in an additional layer!:lol:

I controlled a lot of NH and found really many errors. My conclusion: It is important to change the mapping system; better as simple as possible.
That means :

  • one relation for each NH in each state
  • an additional superroute relation, if the NH passes throw more than one state
  • no use of forward/bachward, since this has not the proposed meaning.

For measuring the distances I do no longer need something like forward/backward.

All trunk relations have been changed to the described simpler system. I will describe this in the wiki.

  • total length of all declared and mapped trunks = 126 001 km
  • mapped trunks without new numbers = 830 km
  • unmapped trunks = 460 km
    (in most cases: under construction or only planned)
  • mapped motorways = 1 540 km

How to map highway service roads :

See the wiki :https://wiki.openstreetmap.org/wiki/India/Tags/Highway#Highway_service_roads

Additional cases:

  1. connection of two trunks
    example : https://www.openstreetmap.org/#map=17/26.78949/79.03694
    (NH234 comes from the east, goes together with NH19, then continues to the north)

Take care that all ways that are used to drive one a trunk (here NH234) are mapped with highway=trunk and they are members of the NH-relation

example : https://www.openstreetmap.org/#map=15/24.8394/74.5787
Here NH48 and NH27 come from the south; NH27 continues to the east and NH48 to the north.
All ways that belong to NH48 and/or NH27 are mapped as trunk and are members of the trunk relations; only 2 trunk_links from north to east (not relation members)

  1. connection trunk to trunk :
    example : https://www.openstreetmap.org/#map=16/28.1671/76.6948
    Here NH234 ends at NH48
    All ways which connect NH234 to NH48 are mapped as trunk_link; these link-roads are not part of the NH234-relation
    There are also „service roads“ which are mapped with highway=tertiary (as described in the wiki)

  2. connection of trunk with primary/secondary roads :
    example : https://www.openstreetmap.org/#map=18/17.19630/79.19793
    (crossing of SH2 with NH65)
    there exist separate roads which connect SH2 to NH65; they are mapped as trunk_link (not relation members)

  3. connection of a trunk with minor roads (tertiary, unclassified) or local roads in a village or town:
    these cases are described in the wiki.

I Total length of the NHs in India

In the Annual Report 2021 the total length is 136, 440 km. This is the total sum of the NHs in all states.
If we take the individual lengths of the NHs (values from 2019) : 131048 km.
But since 2019 some NHs are newly declared and these length are not published.
If we add the mapped OSM-values of those Nhs, we get 132,627km. 10 Nh lengths are still missing.

b) OSM
Here are the correct mapped lengths in all states without counting ways double.
The sum is 126,913km.
Some NHs are not mapped. If we add here the MORTH values, we get 128,185km.
For 11 NHs there are no lengths at all.

Counting all trunk-ways in OSM (declared and not declared) there are 129,991km

That means MORTH has at least 4442 km more than OSM (3.3%).

By the way: we have now 618 NHs in India!

II Declaration of the NHs
The NHs are declared with the notifications of MORTH, published at https://egazette.nic.in

Here all the route informations of the notifications are listed.

These route informations are problematic:
a) often the data is ambigous.
There are more than one possible way to pass from one town to the next. In these cases I made corrections according to the Bhuvan map.
As far as I know this is the only available map which uses the new NH-numbers. (MORTH does not have a detailed map)
So the OSM length get more similar to the MORTH-values.

b) The data gives no information about the route through big towns and cities.

c) Bypass constructions
In the last years a lot of Bypass-roads have been constructed. I mean that MORTH only counts the Bypass route, but there are no secure informations.

d) there are a lot of cases where NHs have been declared, but they are only planned or under construction

III Mapping of NHs in OSM

a) highway-type

  • According to the wiki NHs are highway=trunk.
    If the road conditions are bad, this should be mapped with other tags.
    In very big cities mappers insist to downgrade NH-ways to primary/secondary. I did not change this. But these ways are not counted in the NH-length.

  • trunk_link : These ways conect a NH to other roads but are not members of the NH-relation.
    All ways which you pass from beginning of a trunk to the end are trunks!

  • Bypass roads
    The bypass roads are members of the NH-relation.

  • highway=construction with construction=trunk are not members of the NH-relation

  • expressways /motorways are not trunks and are not counted

b) Who complete is the NH-mapping?
More than 99% of all NHs are mapped.

c) Precision of mapping
The most important NHs are very exactly mapped. (Thanks to all mappers!)
I suppose the unprecision of minor Nhs is not greater than 5%.

IV calculation of NH length

I used the following overpass queries:
for a single NH : http://overpass-turbo.eu/s/1b6l
for the length of all NHs ina state : http://overpass-turbo.eu/s/1b6m

These queries count all highway=trunk which are members of the NH-relation. That means the relations have to be complete. At the moment they are complete. But some mappers remap ways and forget to update the relation. Also the oneway=yes tag must be correct. Otherwise the dual carriageways are not counted correctly.
There are still some NH-ways which are mapped as trunk_link and so they are not counted. I was not able to find all these cases.

V precision of length calculations
Because overpass does not use elevation data, the NH-length in high mountain areas are to small (upto 10% I guess). I suppose MORTH does include elevation data.

VI Main reasons for the differences between MORTH and OSM lengths
a) trunk ways which are shared by two or more NHS :
In this case the NH-ways have two or more ref-values. So in the map all NHs are completely to be seen.
It seems Morth made decisions that each way has only one ref-value and these ways count only in the length of this single NH.
This is the main reason for the difference values MORTH/OSM.
Because the NHs have been renumbered, the road signs are not always existing with the new numbers.
What is the actual situation about road signs of NH-numbers?
In OSM we have the „on the ground“ principle. If the signs say this is NH44 and not NH48 then we have to change the mapping and the relations. But at the moment I think that is not possible and MORTH does not give any informations to this problem.

b) elevation data
Since we do not have elevation data in OSM the error in mountain areas can be 5 to 10%.

I made a spreadsheet with all calculated lengths. If someone is interested, I can offer it for download.