logo separator

[mkgmap-dev] Commit: r2314: Ignore access=permissive|designated|official just like access=yes.

From Felix Hartmann extremecarver at gmail.com on Wed Aug 22 11:12:48 BST 2012

On 22.08.2012 11:38, Chris66 wrote:
> Am 15.08.2012 22:27, schrieb Felix Hartmann:
>> well to be more correct, *=destination should be handled like no.
> No, it's not the same. "destination" is less strict than "no".
>
> Example:
>
> ++++++++++++++++++++++++++++
> +               -
> +               -
> +-------        -
> +      -        -
> +      -        -
> +      -        -
> +      ----B-----
> +      f
> +      f
> +++++++++++++++++++++++++++A
>
>
> + : Main Road
> - : Destination Road (motorcar=destination)
> f : Footway          (motorcar=no)
> A : route from
> B : route to
>
> If you would replace the 'destination' by 'no',
> Garmin would route a car over the footway.
>
> Chris
>
of course in this little example using current mkgmap strategy you're 
correct!

---- BUT NOT because it behaves the way it should, but because 
motorcar=destination is currently simply dropped!!

+++++++++++++++++++++++++B
+                -
+                -
+                -
+                -
+                -
+                -
+++++++++++++++++++++++++A


In this example an mkgmap created map, routes happily over the 
motorcar=destination way.
You can quickly check that motorcar=destination is not present in the 
map data, by having a look at it with gpsmapedit (or looking into the 
sourcecode of mkgmap to see, that there is no possibility to make 
difference between no and destination on the implementation side with 
keeping the way routable).

                 (D)
+++++++++++++++++++++++++B
                          f
                      f
                 f
                 - (C)
                 -
                 -
                 -
+++++++++++++++++++++++++A

In this case, garmin shouldn't route you over at all. However it does, 
because motorcar=destination doesn't matter, and motorcar=no will not be 
respected. (C) and (D) is explained below.



And that's also why the current approach, is fundamentally flawed. If 
you would build a map only for motorcar users, then all ways/streets 
where motorcars are not allowed, shouldn't be routable at all (equals 
true=no), while all motocar=destination should receive the "no" flag as 
of right now.
Garmin doesn't make any separation betweeen no and destination. What for 
Garmin means no, is actually equal to what we in OSM consider as 
"destination".



So what would happen if we made those ways unroutable and treat 
destination as no?
In the first of my examples, routing would be correct.
In the second of my examples, routing would either go "straight line // 
Garmin-Speak=direct routing" from A to B, or if the distance from - to B 
is shorter, it would route from A to (C), and then straight line to B. 
or it would route "straight line from (C) to (D) and then continue to B; 
this depends a bit on the device/Mapsource/Basecamp version.



Now the situation is however even more difficult, as Basecamp v3.1 or 
higher, as well as GPS with firmwares including activity routing, only 
respect motorcar=no as access condition. Foot=no, bicycle=no or others 
are not respected anymore. Hence we create a universal map anymore, that 
routes legally correct for different types of transport. What we could 
do however, is not including any routing information for ways, with 
access=no/access=private without exception; while setting 
access=destination to do, what we currently consider as access=no.

-- 
keep on biking and discovering new trails

Felix
openmtbmap.org & www.velomap.org






More information about the mkgmap-dev mailing list