logo separator

[mkgmap-dev] Address & city country name assignment.

From Steve Ratcliffe steve at parabola.me.uk on Wed Feb 16 11:06:16 GMT 2011

> I don't understand which tags are used to find the country (and other
> address data) for a street, or city to use in address search.

[First I should say that I did not write any of the code in question and
haven't looked at it much at all so I don't really know how it works in
any detail]

It should use the is_in tags where they are present. If they are not
it tries to find something nearby with tags and use them, that depends
on the autofill option.

It is fundamentally unreliable though since this happens after tiles
are split, and tiles are processed one at a time. So even in cases
where the closest town is correct, if it happens to be on another tile
it will not be found.

> I understand the address search function is still shaky, but can you say
> where a point / way will get its country info from?

Ha! I think it was shaky, but now it is solid enough to expose the
lack of good data or processing of the data that exists.

> With the city nodes containing the wrong country name, I suppose any
> street near it gets assigned that incorrect country name.

Yes, probably.

> Will it help to play with is_in tags with the style files, or is the
> index created before the style file changes are done?

It might help, the index is created last, but all the information that
it requires is in the tiles themselves.

> Is boundary information considered at all? Because boundaries in my map
> is still faulty. A lot of boundaries are not rendered by mkgmap. Some

No, boundary data isn't used for this.

> I know nothing of code language, but would like to read through it
> anyway.
> Where can I see the code that assigns the address info to the street /
> cities?

There is code in

	StyledConverter.java
	Locator.java
	MapBuilder.java

It is quite likely that there are bugs or that it doesn't quite work in
the intended way. I found a bug just by looking at the code while
researching this answer!

It would probably be best to start with a tiny OSM file, containing
only cities, then add a few streets, POIs as you work out what is
happening.

..Steve



More information about the mkgmap-dev mailing list