<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi John,<br>
<br>
we've also custom encoders for our clients and it definitely works
without modifications to the EncodingManager. <br>
<br>
Regards,<br>
Peter<br>
<br>
On 28.05.2015 23:30, John Zhao wrote:<br>
</div>
<blockquote
cite="mid:CA+EBg9QZKsC3sKwTFJK4j=O8OBJRfEAkJtgeA2Ciw8MZuquUcw@mail.gmail.com"
type="cite">
<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 moz-do-not-send="true"
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
moz-do-not-send="true"
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
moz-do-not-send="true"
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
moz-do-not-send="true"
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>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</body>
</html>