Hi WanMil, yes, it improves performance because the merge is done only once, and without the merge it would be needed to do more or less the same action for each single search. I see no better way to handle the problem with those level=7 areas.
Ciao, Gerd WanMil wrote > >> > > > >> > > > * I don't understand why you need a merge() method. Could you >> explain >> > > > what you are doing in this method and why it's required? >> > > The get method() of the tree returns the data for the first area >> that >> > > contains the coord. >> > > This area should contain all tags of the area itself plus those from >> > > areas intersecting it. >> > > Maybe this is not correct? >> > >> > Sounds wrong. If Area a1 is intersected by a2 only in 10% of its area >> > then an element located in the 90% that does not intersect would be >> > tagged with a1 and a2? >> > >> The merge() first creates a new nodeElem with the intersection, it >> merges the tags into this >> and subtracts the intersection from the others, so only the 10% part >> gets more tags. >> Thinking again about this I might not need both subtract() calls since I >> move the intersection part >> before the others . >> > > I doubt that merge improves the performance. It breaks two areas into > three probably with intersecting bounding boxes. So I would expect that > you don't save much contains checks. > But don't mind about my doubts: Did you measure a noticeable performance > difference? > > WanMil > _______________________________________________ > mkgmap-dev mailing list > [email protected] > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > -- View this message in context: http://gis.638310.n2.nabble.com/Patch-v3-LocationHook-with-new-Quadtree-tp7181669p7184965.html Sent from the Mkgmap Development mailing list archive at Nabble.com. _______________________________________________ mkgmap-dev mailing list [email protected] http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
