如何在graphhopper中映射osm方式?

时间:2015-04-07 10:11:53

标签: graphhopper

我需要在从OSM文件导入期间存储edgeId-osmWayId Map,以便在路由期间使用它。 可能吗? 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以在导入时将此信息存储到地图中。随着它变得非常大,我建议使用预分配的长数组,其条目数与边数一样多。例如。使用自定义编码器:

CarFlagEncoder carEncoder = new CarFlagEncoder(5, 5, 3) {
   @Override
   public void applyWayTags(OSMWay way, EdgeIteratorState edge) {
      ghEdgeIdToOSMWayIdMap[edge.getEdge()] = way.getId();
      super.applyWayTags(way, edge);
   }
};
setEncodingManager(new EncodingManager(carEncoder, ...));