Class ShapeFileReader


  • public class ShapeFileReader
    extends Object
    Access to the NWB (Nationaal WegenBestand - Dutch National Road database) shape files.

    Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
    BSD-style license. See OpenTrafficSim License.

    Version:
    $Revision$, $LastChangedDate$, by $Author$, initial version 4 may 2019
    Author:
    Alexander Verbraeck, Peter Knoppers, Wouter Schakel
    • Constructor Detail

      • ShapeFileReader

        public ShapeFileReader​(String baseDir,
                               int date,
                               String subDirAndShapeFile)
                        throws FileNotFoundException
        Construct a new ShapeFileReader.
        Parameters:
        baseDir - String; name of the directory under which the sub-directories with names representing the date of a version of the shape file database (formatted like YYYYMMDD) are stored
        date - int; requested date (formatted like YYYYMMDD)
        subDirAndShapeFile - String; name of the sub-directory with the shape file relative to the date-named directory
        Throws:
        FileNotFoundException - when a needed directory does not exist
    • Method Detail

      • findBestDate

        public int findBestDate​(int ultimateDate,
                                File dir)
                         throws FileNotFoundException
        Find the last date, no later than the specified date for which there is a sub directory.
        Parameters:
        ultimateDate - int; date encoded as an 8-digit number (YYYYMMDD)
        dir - File; directory to scan for sub-directories that have 8-digit numerical names
        Returns:
        int; the 8-digit number that identifies the best matching sub directory
        Throws:
        FileNotFoundException - when no suitable sub directory exists
      • readShapeFile

        public Map<Long,​Feature> readShapeFile​(org.opentrafficsim.road.network.factory.nwb.ShapeFileReader.FeatureQualifier qualifier)
                                              throws IOException
        Read a shape file and collect records that match a caller-provided check.
        Parameters:
        qualifier - FeatureQualifier; the check to use
        Returns:
        Map<Integer, Feature>; map with the Features that passed the check
        Throws:
        IOException - when reading a file failed
      • designLine

        public static OTSLine3D designLine​(Feature feature)
                                    throws OTSGeometryException
        Construct the design line of a Feature.
        Parameters:
        feature - Feature; the feature
        Returns:
        OTSLine3D; the design line of the feature
        Throws:
        OTSGeometryException - when the feature is not a proper line