<div dir="ltr">Hi Peter,<div><br></div><div>Yes, I know.</div><div>But even though I configure it the same, it will also throw an exception due to my own flagEncoder, if I don't change EncodingManger, or do some similar stuff in GraphHopper. :)</div><div><br></div><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><b>Best Regards,</b><div><b>ZhiQiang ZHAO</b></div></div></div>
<br><div class="gmail_quote">On Thu, May 28, 2015 at 12:34 PM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi John,<br>
<br>
if you load GH from extracted files you setup the GraphHopper
class the same way as you would when doing the import.<br>
I.e. you will have to configure the GraphHopper class identical as
you did for the import.<span class="HOEnZb"><font color="#888888"><br>
<br>
Peter</font></span><div><div class="h5"><br>
<br>
On 28.05.2015 21:25, John Zhao wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">There might be a little misunderstanding here.
<div>If I start up GH with extracted files, the below string
will be feed into EncodingManger.</div>
<div>And it will throw an exception due to xxxcar is not found.</div>
<div><br>
</div>
<div>Now my solution is write the similar code as
EncodingManger.</div>
<div>My thinking is if we use reflection here, it will be very
easy to extend any kind of flagEncoder.</div>
<div><br>
</div>
<div>I can do it on my own project, but for
MoutainBike-->mtb, it's still annoying. </div>
<div><br>
</div>
<div>Nvm, thank you Peter.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Thu, May 28, 2015 at 12:16 PM, Peter
<span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>you can do so too:<br>
new
YourFlagEncoder("speedFactor=5.0|speedBits=5|turnCosts=true")<br>
<br>
or use the normal java way:<br>
new YourFlagEncoder(5, 5, 1)<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 28.05.2015 21:11, John Zhao wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Thanks Peter for your answer.
<div><br>
</div>
<div>I mean "combne" is if I have something inside
properties like:</div>
<div>graph.flagEncoders=xxxcar|speedFactor=5.0|speedBits=5|turnCosts=true,
bike, mtb, foot<br>
</div>
<div><br>
</div>
<div>I want to it can be parsed by the program
without hard code.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Thu, May 28, 2015 at
12:01 PM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi,<br>
<br>
I'm not sure what you mean with 'combine'.
You can mix Java API and read from config
too e.g. via<br>
<br>
graphHopper.init(CmdArgs.readFromConfig(..))<br>
graphHopper.setEncodingManager(new
YourFlagEncoder(), new CarFlagEncoder(),
...)<span><br>
<br>
> Could you elaborate a little bit
more about the portability reason? I am
new to reflection.<br>
<br>
</span> It is just that we want to support
JavaScript (TeaVM) and iOS, and for them
we need to avoid some stuff.<br>
<br>
Kind Regards,<br>
Peter<span><br>
<br>
On 28.05.2015 20:49, John Zhao wrote:<br>
</span></div>
<span>
<blockquote type="cite">
<div dir="ltr">Hi Peter,
<div><br>
</div>
<div>I want to keep the compatibility
of combine the existing flagEncoder
with my customized flagEncoder.</div>
<div>And intialize them from the
properties file.</div>
<div><br>
</div>
<div>Could you elaborate a little bit
more about the portability reason?</div>
<div>I am new to reflection.</div>
</div>
<div class="gmail_extra"><br clear="all">
<div>
<div><b>Best Regards,</b>
<div><b>ZhiQiang ZHAO</b></div>
</div>
</div>
<br>
<div class="gmail_quote">On Thu, May
28, 2015 at 11:44 AM, Peter <span dir="ltr"><<a href="mailto:graphhopper@gmx.de" target="_blank">graphhopper@gmx.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi John,<br>
<br>
if you have a custom
flagencoder why not just call<br>
new EncodingManager(new
YourFlagEncoder()) ?<br>
<br>
Reflections was abandoned due
to portability reasons but
also it is not really
necessary here, especially as
you use it as a library and
you have a custom flag encoder
anyway.<br>
<br>
Regards,<br>
Peter
<div>
<div><br>
<br>
On 28.05.2015 20:14, John
Zhao wrote:<br>
</div>
</div>
</div>
<blockquote type="cite">
<div>
<div>
<div dir="ltr">Hi,
<div><br>
</div>
<div>I have a project
which use GH as a
library.</div>
<div>I have implemented
my own flag encoder,
like xxxFlagEncoder.</div>
<div>I don't figure out
a good way to
initialize it, except
to change the
EncodingManger to
insert xxxFlagEncoder
on
parseEncoderString().</div>
<div>I think it's better
the change the way
EncodingManger
initialize all the
flagEncoders.</div>
<div>EncodingManger can
use reflection to find
the class or
flagEncoder from its
name, if we
standardize the name
and toString method.</div>
<div><br>
</div>
<div>Do you think it's a
good idea, or there is
a better way? </div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</span></div>
<br>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
GraphHopper mailing list<br>
<a href="mailto:GraphHopper@openstreetmap.org">GraphHopper@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/graphhopper" target="_blank">https://lists.openstreetmap.org/listinfo/graphhopper</a><br>
<br></blockquote></div><br></div>