0

ドキュメント ( https://github.com/graphhopper/graphhopper/blob/master/docs/core/weighting.md )で説明されている例に従って、Graphhopper ルーティングでエッジをブロックしようとしています。ブロックされなければならないエッジを見つけようとします

EdgeIteratorState edge = hopper.getLocationIndex().findClosest(lat, lon, EdgeFilter.ALL_EDGES ).getClosestEdge();

しかし、アプリを実行すると、ブロックしようとしたエッジではなく、まったく異なるエッジがブロックされていることがわかります。私は何を間違っていますか、何かヒントはありますか?私はこの問題に 4 日間悩まされていましたが、アイデアが残っていませんでした。

4

1 に答える 1

0

これがエレガントかどうかはまだわかりませんが、回避策を見つけたと思います:追加したgraphhopper.shのconfig.propertiesで

prepare.chWeighting=no

グラフのロード中に、設定しました

tmpHopp.setCHEnable(false);

後でエッジをブロックするには、このエッジの速度を 0 に設定するだけです

FlagEncoder footEncoder =    TempAppData.getInstance().getHopper().getEncodingManager().getEncoder("foot");
                edge.setFlags(footEncoder.setSpeed(edge.getFlags(), 0));
于 2015-05-05T08:58:34.313 に答える