
Hi Steve, I agree that the GType should not be copied, I never felt happy with it. It is probably better to create a new Class like ConvertedRoad which extends Way and contains some exra fields like speed and class which are modified in StyledConverter. The RoadMerger also uses something like this. Gerd
Date: Sun, 19 Jan 2014 21:38:12 +0000 From: steve@parabola.me.uk To: mkgmap-dev@lists.mkgmap.org.uk Subject: Re: [mkgmap-dev] Weird road speed
On 19/01/14 20:06, WanMil wrote:
@Gerd: StyledConverter.postConvertRules can change the road speed in the type. But this hasn't been copied before so I guess it's changing the global type of the rule. Can you check that? I added type = new GType(type); at line 202 but this didn't change the overall result. So it seems not to be the only problem.
The way I see it is that the GType is simply a representation of the type declaration in a rule. It is static and should not be modified or copied per way.
The Converter converts Way -> MapRoad
The rules produce a Gtype and a set of variables, V (that we happen to implement by adding mkgmap:* tags to the way).
You use the GType and V to initialise the MapRoad.
So to override the road_speed should be done in addRoadWithoutLoops() where it is currently initialised directly from the GType.
..Steve _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev