@Override protected DataReader createReader(GraphHopperStorage ghStorage) { return initDataReader(new OSMReader(ghStorage)); }
public OSMInputFile open() throws XMLStreamException { if (binary) { openPBFReader(bis); } else { openXMLStream(bis); } return this; }
@Override public SpatialRule createSpatialRule(final String id, List<Polygon> polygons) { return new DefaultSpatialRule() { @Override public String getId() { return id; } }.setBorders(polygons); } });
private void prepareRestrictionRelation(ReaderRelation relation) { OSMTurnRelation turnRelation = createTurnRelation(relation); if (turnRelation != null) { getOsmWayIdSet().add(turnRelation.getOsmIdFrom()); getOsmWayIdSet().add(turnRelation.getOsmIdTo()); } }
@Override public ReaderElement getNext() throws XMLStreamException { if (eof) throw new IllegalStateException("EOF reached"); ReaderElement item; if (binary) item = getNextPBF(); else item = getNextXML(); if (item != null) return item; eof = true; return null; }
public Collection<TurnCostTableEntry> analyzeTurnRelation(OSMTurnRelation turnRelation) { Map<Long, TurnCostTableEntry> entries = new LinkedHashMap<>(); for (FlagEncoder encoder : encodingManager.fetchEdgeEncoders()) { for (TurnCostTableEntry entry : analyzeTurnRelation(encoder, turnRelation)) { TurnCostTableEntry oldEntry = entries.get(entry.getItemId()); if (oldEntry != null) { // merging different encoders oldEntry.flags |= entry.flags; } else { entries.put(entry.getItemId(), entry); } } } return entries.values(); }
public static ReaderRelation createRelation(long id, XMLStreamReader parser) throws XMLStreamException { ReaderRelation rel = new ReaderRelation(id); parser.nextTag(); readMembers(rel, parser); readTags(rel, parser); return rel; }
/** * Stores only osmWayIds which are required for relations */ protected void storeOsmWayID(int edgeId, long osmWayId) { if (getOsmWayIdSet().contains(osmWayId)) { getEdgeIdToOsmWayIdMap().put(edgeId, osmWayId); } }
protected OSMInput openOsmInputFile(File osmFile) throws XMLStreamException, IOException { return new OSMInputFile(osmFile).setWorkerThreads(workerThreads).open(); }
public int getInternalNodeIdOfOsmNode(long nodeOsmId) { int id = getNodeMap().get(nodeOsmId); if (id < TOWER_NODE) return -id - 3; return EMPTY_NODE; }
public String getOSMFile() { return getDataReaderFile(); }
/** * Constructor for XML Parser */ public static OSMFileHeader create(long id, XMLStreamReader parser) throws XMLStreamException { OSMFileHeader header = new OSMFileHeader(); parser.nextTag(); return header; }
/** * @return OSM way ID from specified edgeId. Only previously stored OSM-way-IDs are returned in * order to reduce memory overhead. */ public long getOsmIdOfInternalEdge(int edgeId) { return getEdgeIdToOsmWayIdMap().get(edgeId); }
protected void finishedReading() { printInfo("way"); pillarInfo.clear(); eleProvider.release(); osmNodeIdToInternalNodeMap = null; osmNodeIdToNodeFlagsMap = null; osmWayIdToRouteWeightMap = null; osmWayIdSet = null; edgeIdToOsmWayIdMap = null; }
/** * Add a zero length edge with reduced routing options to the graph. */ Collection<EdgeIteratorState> addBarrierEdge(long fromId, long toId, long flags, long nodeFlags, long wayOsmId) { // clear barred directions from routing flags flags &= ~nodeFlags; // add edge barrierNodeIds.clear(); barrierNodeIds.add(fromId); barrierNodeIds.add(toId); return addOSMWay(barrierNodeIds, flags, wayOsmId); }
@Override protected DataReader importData() throws IOException { StopWatch sw = new StopWatch().start(); DataReader dr = super.importData(); put("graph.import_time", sw.stop().getSeconds()); return dr; } };
@Override protected void loadOrPrepareLM() { StopWatch sw = new StopWatch().start(); super.loadOrPrepareLM(); put(Parameters.Landmark.PREPARE + "time", sw.stop().getMillis()); }
void prepareHighwayNode(long osmId) { int tmpGHNodeId = getNodeMap().get(osmId); if (tmpGHNodeId == EMPTY_NODE) { // osmId is used exactly once getNodeMap().put(osmId, PILLAR_NODE); } else if (tmpGHNodeId > EMPTY_NODE) { // mark node as tower node as it occured at least twice times getNodeMap().put(osmId, TOWER_NODE); } else { // tmpIndex is already negative (already tower node) } }
int addTowerNode(long osmId, double lat, double lon, double ele) { if (nodeAccess.is3D()) nodeAccess.setNode(nextTowerId, lat, lon, ele); else nodeAccess.setNode(nextTowerId, lat, lon); int id = -(nextTowerId + 3); getNodeMap().put(osmId, id); nextTowerId++; return id; }