如何在graphhopper中映射osm方式?

如何在graphhopper中映射osm方式?,graphhopper,Graphhopper,我需要在从OSM文件导入期间存储edgeId osmWayId映射,以便在路由期间使用它。 可能吗? 有什么建议吗?您可以在导入时将此信息存储到地图中。随着它变得越来越大,我建议使用一个预分配的长数组,它的条目数和边数一样多。例如,使用自定义编码器: CarFlagEncoder carEncoder = new CarFlagEncoder(5, 5, 3) { @Override public void applyWayTags(OSMWay way, EdgeIteratorS

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

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

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, ...));

谢谢你的回答。我是这样创建地图的:[code]受保护的void storeOsmWayID int-edgeId,long-osmWayId{if-getOsmWayIdSet.containsosmWayId{getEdgeIdToOsmWayIdMap.putedgeId,osmWayId;}//Creo associazione tra-edgeId e-osmWayId-osmedgeiddosmwayidmap.putedgeId,osmWayId;}[code]但我不知道如何将它存储在我的图形中,并在路由过程中使用它。例如,在自定义加权中。查看描述类似加权的加权文档。mdI希望以以下方式创建自定义加权:加权自定义加权=新MyFastTestWeighting GhedgeToosmWayIDMap,编码器;但是如何在导入过程中创建ghEdgeIdToOSMWayIdMap?我应该像StorableProperties一样保存它吗?您可以使用您喜欢的任何存储组件,也可以只使用graphhopper数据访问实现。我可能应该看看com.graphhopper.storage.GraphExtension接口?