logo separator

[mkgmap-dev] Commit: r1566: Drop all tags from the osm file that are not used

From WanMil wmgcnfg at web.de on Thu Feb 11 18:59:01 GMT 2010

>
> Version 1566 was commited by steve on 2010-02-08 12:33:09 +0000 (Mon, 08 Feb 2010)
> BRANCH: style-speed
>
> Drop all tags from the osm file that are not used
> in the applied style.
>
> Whether this makes a big difference or not depends on the country.
> In the UK which is mostly manually taged it doesn't make a great deal
> of difference.  There are only an average of 2 tags per way and about zero per
> node.
>
> In countries with data imports, there are typically many tags per way (and even nodes)
> that refer back to the original data.  Having tags on nodes is particularly bad for memory
> consumption since there are more nodes than ways and most are not POIs.  We are forced
> to allocate a Tags object even though there is likely to be nothing to do as none of the tags
> are used.
>
> Denmark is the worst in this respect and so will show the best improvement with this patch.
> See also: http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2009q3/003597.html
>
> For this to be successful you need an acurate list of all the tags that could be used.  Tags are
> examined not just in the style itself, but there are hardwired tag lookups in the style system itself
> and there are non-style related usages as well.  For the moment all the built in usages of tags
> are held in the builtin-tag-list file.  I think I have got them all for normal use, but there may be
> options that require ones I've missed.

The Osm5XMLHandler sometimes throw a NullPointerException in line 397. 
This is the key.equals("highway") part:

if((val.equals("motorway_junction") ||
	val.equals("services")) &&
	key.equals("highway"))
{
	exits.add(currentNode);
	currentNode.addTag("osm:id", "" + currentElementId);
}

It might be fixed by changing it to "highway".equals(key).

WanMil



More information about the mkgmap-dev mailing list