2015-04-07 114 views

回答

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

感謝您的回答。
我以這種方式創建我的地圖:
[代碼]保護無效storeOsmWayID(INT EdgeID的,長osmWayId) \t { \t如果(getOsmWayIdSet()包含(osmWayId)。) \t { \t getEdgeIdToOsmWayIdMap()把(。 edgeId,osmWayId); \t} \t // Creo associazione tra edgeId e osmWayId \t osmEdgeIdOsmWayIdMap.put(edgeId,osmWayId); \t} [code]
但我不知道如何將它存儲在我的圖中並在路由期間使用它。例如。在自定義加權。 –

+0

查看描述類似的權重文檔(weighting.md) – Karussell

+0

我想用這種方式創建自定義權重:Weighting customWeighting = new MyFastestWeighting(ghEdgeIdToOSMWayIdMap,encoder);但是如何在導入過程中創建ghEdgeIdToOSMWayIdMap?我應該將它保存爲StorableProperties屬性嗎? –