[NUUG kart] _Rask_ routing engine for osm

Magne Mæhre magne at samfundet.no
Sun Mar 18 21:25:17 CET 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/18/2012 03:54 PM, Magne Mæhre wrote:
> On 03/18/2012 03:14 PM, Bernt M. Johnsen wrote:
> 
> 
>> Feil i data, elle feil i ruting-progammet ;-)
>> Dette, f.eks.: http://map.project-osrm.org/cF er feil i rutingprogrammet
>> (den vil tydeligvis rute over ferist (barrier=cattle_grid) )
> 
> 
> Ser ut til å være denne snippeten:
> DataStructures/PBFParser.h:
>             std::string barrierValue = keyVals.Find("barrier");
>             if(0 < barrierValue.length() &&
>                   "border_control" != barrierValue &&
>                   "toll_booth" != barrierValue &&
>                   "no" != barrierValue)
>                 n.bollard = true;
> 
> Alle barriers som ikke er grensekontroll eller innkrevingspunkt
> klassifiseres altså som en 'bollard'.


Jeg bygget osrm og testet litt med de parameterne du brukte på Hitra

%  curl
http://localhost:5000/viaroute?loc=63.51042,9.011210000000005\&loc=63.494310000000006,8.923310000000015
> akset.pre

..snip..
    "route_summary": {
        "total_time": 5420,
        "end_point": "713",
        "start_point": "713",
        "total_distance": 98120
    },

Patchet deretter PBFParser.h og kjørte igjen

...snip
   "route_summary": {
        "total_time": 291,
        "end_point": "713",
        "start_point": "713",
        "total_distance": 4860
    },

Fra ~10 mil til ~5km distanse, og halvannen time ned til knappe
fem minutter

magne at vega:/data/x/Project-OSRM$ git diff
diff --git a/DataStructures/PBFParser.h b/DataStructures/PBFParser.h
index 966b94d..001c4d5 100644
- --- a/DataStructures/PBFParser.h
+++ b/DataStructures/PBFParser.h
@@ -224,7 +224,7 @@ private:
                 denseTagIndex += 2;
             }
             std::string barrierValue = keyVals.Find("barrier");
- -            if(0 < barrierValue.length() && "border_control" !=
barrierValue && "toll_booth" != barrierValue && "no" != barrierValue)
+            if(0 < barrierValue.length() && "cattle_grid" !=
barrierValue && "border_control" != barrierValue && "toll_booth" !=
barrierValue &&
                 n.bollard = true;

             if("traffic_signals" == keyVals.Find("highway"))



Egentlig bør man sikkert tenke gjennom mye grundigere hvordan man
gjøre barriers og access, men jeg prøver sikkert å få kjørt denne
inn upstream.

- --Magne
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iD8DBQFPZkSteyfTkYb79VwRAqvxAJ9SN1iGHrVwTfWvHXd+JW8FDnxI5ACdHU89
0paD4VWrIfvQjX4p68Dh2qg=
=SH5/
-----END PGP SIGNATURE-----


More information about the kart mailing list