processWays method
List<Way>
processWays(
- QueryParameters queryParameters,
- int numberOfWays,
- BoundingBox boundingBox,
- bool filterRequired,
- double tileLatitude,
- double tileLongitude,
- MapfileSelector selector,
- Readbuffer readBuffer,
- MapDatastore mapDataStore,
Processes all ways from a data block in the given readBuffer.
This method iterates numberOfWays times, calling read1Way for each way
and collecting the results.
Implementation
List<Way> processWays(
QueryParameters queryParameters,
int numberOfWays,
BoundingBox boundingBox,
bool filterRequired,
double tileLatitude,
double tileLongitude,
MapfileSelector selector,
Readbuffer readBuffer,
MapDatastore mapDataStore,
) {
List<Way> ways = [];
List<Tag> wayTags = _mapFileHeader.getMapHeaderInfo().wayTags;
BoundingBox wayFilterBbox = filterRequired
? boundingBox.extendMeters(queryParameters.queryZoomLevel > 20 ? wayFilterDistance ~/ 4 : wayFilterDistance)
: boundingBox;
for (int elementCounter = numberOfWays; elementCounter != 0; --elementCounter) {
try {
ways.addAll(read1Way(readBuffer, queryParameters, tileLatitude, tileLongitude, mapDataStore, wayTags, filterRequired, wayFilterBbox, selector));
} catch (error, stacktrace) {
print(error);
print(stacktrace);
// reset position to next way
//readBuffer.setBufferPosition(pos + wayDataSize);
}
}
return ways;
}