logo separator

[mkgmap-dev] [PATCH v1] Handling of boundary multipolygons

From Felix Hartmann extremecarver at googlemail.com on Sun May 2 14:34:35 BST 2010


On 02.05.2010 15:08, WanMil wrote:
>>
>>
>> On 17.04.2010 20:00, WanMil wrote:
>>>> I am thinking about how to handle boundary multipolygons and want get
>>>> some feedback and ideas from you.
>>>>
>>>> There are two possible ways to use boundary information:
>>>> 1. Draw the boundaries as lines
>>>> 2. Draw the boundaries as polygons with different colours for 
>>>> different
>>>> administrative levels
>>>>
>>>> I think the 2nd option cannot be realized (at the moment). I see no 
>>>> way
>>>> how to define a style that differently colours adjoining polygons with
>>>> rather identical tags (e.g. boundary=adminstrative, admin_level=2).
>>>>
>>>> So let's concentrate on the 1st option.
>>>> One way may be part of different boundary relations. (admin_level=2&&
>>>> admin_level=3&& admin_level=4 ....). To be able to process all of them
>>>> with the style system the way must be duplicated for each relation.
>>>>
>>>> The multipolygon handling of boundaries might work as follows:
>>>> For all ways (role=outer and inner) part of the boundary relation
>>>> - Clone the original way
>>>> - Tag the cloned way with the boundary information of the mp
>>>> - Remove all tags from the original way that are also contained in the
>>>> mp (with the same value)
>>>> - Split all closed ways (polygons) in two ways to ensure that only 
>>>> ways
>>>> are tagged with the boundary information
>>>>
>>>>
>>>> What do you think? If no one really complains I will start 
>>>> implementing
>>>> this (and expect that it will be accepted when I am ready :-).
>>>> In case other multipolygon type also require such a processing we 
>>>> might
>>>> add a config file in future which types are handled in this way. So 
>>>> this
>>>> is ready to be more generic.
>>>>
>>>> WanMil
>>>>
>>>
>>> Why talking so long? Implementation was quite easy so please try this
>>> patch and post what you think about this patch.
>>>
>>> I will post v2 with some more comments in the source code if it should
>>> be committed.
>>>
>>> WanMil
>> Hallo WanMil
>> Well I do think the patch is working as supposed. However that is not
>> really what I find useful. Now on country boundaries there are sometimes
>> 10 boundaries on top of each other - is this what you want to achieve?
>> I'ld much rather have only the boundary with the highest admin level -
>> and have taken quite a bit of code into the style-file to make sure ONLY
>> the boundary with the lowest admin_level is put inside the map. Your
>> patch makes my style-file useless.
>>
>> I don't really understand what this patch is trying to achieve. There is
>> a patch by Thilo Hanneman (I'm attaching it for you) that makes it
>> possible to directly render relations from the relations file, I think
>> that is more useful - or don't I understand something here that you
>> intend to achieve???
>>
>> BTW - I'ld much rather have a patch that disables sea, if there are more
>> than 500 highway=residential inside the sea polygone, or something
>> similar to detect that nothing is flooding. Just day before yesterdays
>> alp extract from Geofabrik had one tile inside flooded, and there is the
>> dreaded flooding inside Germany as allways (well this one due to
>> geofabrik cutting). Maybe you could write a patch for that problem. I
>> get tons of comments on my website about sea flooding, no matter in how
>> many places I write that this is not solvable and any comment regarding
>> sea flooding will get into the trashbin...
>>
>
> Felix,
> I tried to understand what the patch does. I compiled a map with the 
> default style but the changed code section was never called. So I 
> suppose I am missing some style rules that trigger the patch.
>
> Can you send me your style file so that I can try to understand the 
> patch and maybe extract the good parts of it so that we might commit it?
>
> WanMil
You can now directly use [0x?? road_speed=? .... resolution ??] from the 
relations file. Hence if there are several boundaries on the same line 
(as relations) you will be able to map them all. Without the patch you 
first have to "apply" (intermediary) keys.
This means you have to put a copy of the boundary rules from the lines 
file to the relations file, of course if you don't do this, the patch 
has no effect.



More information about the mkgmap-dev mailing list