[GraphHopper] custom flagencoder

Fred Laurent fredlaurent31 at gmail.com
Fri Jul 3 08:36:41 UTC 2015


Excuse me Sir, I'm very bad
I make :
 GraphHopper tmpHopp = new GraphHopper().forMobile();

                tmpHopp.setEncodingManager(new EncodingManager(new
MyFlagEncoder()));
                tmpHopp.load(new File(mapsFolder,
currentArea).getAbsolutePath());
Or

GraphHopper tmpHopp = new GraphHopper().forMobile();
                tmpHopp.load(new File(mapsFolder,
currentArea).getAbsolutePath());
                tmpHopp.setEncodingManager(new EncodingManager(new
MyFlagEncoder()));



But I have error : No configuration changes are possible after loading the
graph
Or the same error : Encoding does not match:
Graphhopper config:
Mycar|speedFactor=5.0|speedBits=5|turnCosts=false|version=1
Graph: car|speedFactor=5.0|speedBits=5|turnCosts=false|version=1

thank you




2015-07-03 9:58 GMT+02:00 Peter <graphhopper at gmx.de>:

>  Hi Fred,
>
> please avoid duplicate postings
>
> Regarding your problem: you have to use the same settings for the import
> too.
> So do the import with your custom flagencoder e.g. via tmpHopp.importOrLoad
> deploy the created files to android and it'll work.
>
> Regards,
> Peter
>
> On 03.07.2015 09:49, Fred Laurent wrote:
>
>    hello ,
>  excuse me, I have a really problem to create My customer Flag encoder
>  this is my class MyFlagEncoder
>
>  I run My app with :
> GraphHopper tmpHopp = new GraphHopper().forMobile();
>               tmpHopp.setEncodingManager(new EncodingManager(new
> MyFlagEncoder(5,5,0))); // Or (new MyFlagEncoder());
>
>  I have Error : Graphhopper config:
> Mycar|speedFactor=5.0|speedBits=5|turnCosts=false|version=1
> Graph:
> car|speedFactor=5.0|speedBits=5|turnCosts=false|version=1,foot|speedFactor=1.0|speedBits=4|turnCosts=false|version=1,bike|speedFactor=2.0|speedBits=4|turnCosts=false|version=1,
> dir:/storage/sdcard0/graphhopper/maps/XXX-gh/
>  Thank you All,
>
> 2015-07-02 14:47 GMT+02:00 Peter <graphhopper at gmx.de>:
>
>>  Do
>> new EncodingManager(yourCustomFlagEncoder)
>> where yourCustomFlagEncoder is not a string but your encoder:
>> new EncodingManager(new MyCustomFlagEncoder())
>>
>> Also I've changed the subject - please do so yourself next time before
>> re-using unrelated threads!
>>
>> Peter
>>
>> On 02.07.2015 14:43, Fred Laurent wrote:
>>
>> Sorry ,
>> thank you , Yes , i see :
>>  I make : Graphhopper g = new Graphhopper ().forMobile();
>>                    g.setEncodingManager(new EncodingManager("car2"));
>>
>>  I have error :  an error happend while creating graph : in encoder list
>> not supportef car2
>> I don't understand
>> Thank you
>>
>> 2015-07-02 14:27 GMT+02:00 Peter <graphhopper at gmx.de>:
>>
>>>  Hi Fred,
>>>
>>> no need to extend from EncodingManager - just use it like:
>>> new EncodingManager(yourCustomFlagEncoder)
>>>
>>> Also customizing an existing flagencoder will be easier soon :) !
>>>
>>> Kind Regards,
>>> Peter
>>>
>>>
>>> On 02.07.2015 14:09, Fred Laurent wrote:
>>>
>>>   Hello..
>>>  Can you explain me the problem .. I create MyFlagEncoder (I read  :
>>> https://github.com/graphhopper/graphhopper/blob/master/docs/core/create-new-flagencoder.md)
>>> and I override toString method , I put "car2"
>>> I create class Myencoder extends EncodingManager {
>>>    public static final String CAR2 = "car2";
>>>
>>>     public MyEncoder(String car2) {
>>>         super(car2);
>>>     }
>>>  static List<FlagEncoder> parseEncoderString( String encoderList )
>>>     {
>>>         if (encoderList.contains(":"))
>>>             throw new IllegalArgumentException("EncodingManager does no
>>> longer use reflection instantiate encoders directly.");
>>>
>>>         String[] entries = encoderList.split(",");
>>>         List<FlagEncoder> resultEncoders = new ArrayList<FlagEncoder>();
>>>
>>>         for (String entry : entries)
>>>         {
>>>             entry = entry.trim().toLowerCase();
>>>             if (entry.isEmpty())
>>>                 continue;
>>>
>>>             String entryVal = "";
>>>             if (entry.contains("|"))
>>>             {
>>>                 entryVal = entry;
>>>                 entry = entry.split("\\|")[0];
>>>             }
>>>             PMap configuration = new PMap(entryVal);
>>>
>>>             AbstractFlagEncoder fe;
>>>
>>>
>>>             else if (entry.equals(CAR2))
>>>                 fe = new MyFlagEncoder(configuration);
>>>
>>>             else
>>>                 throw new IllegalArgumentException("entry in encoder
>>> list not supported " + entry);
>>>
>>>             if (configuration.has("version"))
>>>             {
>>>                 if (fe.getVersion() != configuration.getInt("version",
>>> -1))
>>>                 {
>>>                     throw new IllegalArgumentException("Encoder " +
>>> entry + " was used in version "
>>>                             + configuration.getLong("version", -1) + ",
>>> but current version is " + fe.getVersion());
>>>                 }
>>>             }
>>>
>>>             resultEncoders.add(fe);
>>>         }
>>>         return resultEncoders;
>>>     }
>>>  In MyActivity i put :
>>>
>>>   GHRequest request = new GHRequest(step2);
>>>
>>>
>>> request.setVehicle(MyEncoder.CAR2).setAlgorithm(AlgorithmOptions.ASTAR_BI);
>>>
>>>  I run My application and in my log I have error :   [java.lang.
>>> IllegalArgumentException: Vehicle car2 unsupported.
>>> Supported are:car]
>>>    I must create graph car2?....
>>>  thank you
>>>
>>> 2015-07-01 14:38 GMT+02:00 Fred Laurent <fredlaurent31 at gmail.com>:
>>>
>>>>  Yes .. multiple alternate routes calculation. Ok I 'll wait the
>>>> answer of Peter.
>>>>  Thank you..
>>>>
>>>>  2015-07-01 14:22 GMT+02:00 Emux <devemux86 at gmail.com>:
>>>>
>>>>>   Do you mean multiple alternate routes calculation?
>>>>>
>>>>> Peter can answer better, but I think this is work in progress
>>>>> currently in GraphHopper.
>>>>>
>>>>> --
>>>>> Emux
>>>>> Cruiser <http://wiki.openstreetmap.org/wiki/Cruiser> - Atlas
>>>>> <http://wiki.openstreetmap.org/wiki/Atlas_%28navigation_application%29>
>>>>>
>>>>>  ______
>>>>>
>>>>
>>>
>>>
>
> _______________________________________________
> GraphHopper mailing list
> GraphHopper at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/graphhopper
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/graphhopper/attachments/20150703/516315c8/attachment.html>


More information about the GraphHopper mailing list