-
Notifications
You must be signed in to change notification settings - Fork 215
Installation of fmm (cpp)
- C++ Compiler supporting c++11 and OpenMP
- CMake >=3.5: cross platform building tools
- GDAL >= 2.2: IO with ESRI shapefile, Geometry data type
- Boost Graph >= 1.54.0: routing algorithms used in UBODT Generator
- Boost Geometry >= 1.54.0: Rtree, Geometry computation
- Boost Serialization >= 1.54.0: Serialization of UBODT in binary format
The following third-party tools are included in the repository of fmm
Install requirements with
sudo apt-get install libboost-dev libboost-serialization-dev gdal-bin libgdal-dev make cmake
Install the program with
# Under the project folder
mkdir build
cd build
cmake ..
make
sudo make install
It will build executable files under the build
folder, which are installed to /usr/local/bin
:
-
ubodt_gen
: the Upper bounded origin destination table (UBODT) generator (precomputation) program -
ubodt_gen_omp
: the parallel Upper bounded origin destination table (UBODT) generator (precomputation) program. -
fmm
: the map matching program (single processor) -
fmm_omp
: parallel map matching implemented with OpenMP.
These executable files will be copied into the ~/bin
path, which should be added to the PATH
variable by default.
Open a new terminal and type fmm
, you should see the following output:
------------ Fast map matching (FMM) ------------
------------ Author: Can Yang ------------
------------ Version: 2020.01.31 ------------
------------ Applicaton: fmm ------------
A configuration file is given in the example folder
Run `fmm config.xml` or with arguments
fmm argument lists:
--ubodt (required) <string>: Ubodt file name
--network (required) <string>: Network file name
--gps (required) <string>: GPS file name
--output (required) <string>: Output file name
--network_id (optional) <string>: Network id name (id)
--source (optional) <string>: Network source name (source)
--target (optional) <string>: Network target name (target)
--gps_id (optional) <string>: GPS id name (id)
--gps_geom (optional) <string>: GPS geometry name (geom)
--candidates (optional) <int>: number of candidates (8)
--radius (optional) <double>: search radius (300)
--error (optional) <double>: GPS error (50)
--pf (optional) <double>: penalty factor (0)
--log_level (optional) <int>: log level (2)
--output_fields (optional) <string>: Output fields
opath,cpath,tpath,ogeom,mgeom,pgeom,
offset,error,spdist,tp,ep,all
For xml configuration, check example folder
------------ Program finished ------------
To run the program, check run map matching in C++.
Tested on Win7 (64bit) with cygwin environment
After you have installed cygwin, open the cygwin-terminal and run the following scripts to install apt-cyg.
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin
- Install libraries using apt-cyg
apt-cyg install make gcc-g++ cmake gdal libboost-devel libgdal-devel
- Build the program
# Under the fmm project folder
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make
make install
- Verification of installation
In the cyg-win terminal, type
fmm
You should see
------------ Fast map matching (FMM) ------------
------------ Author: Can Yang ------------
------------ Version: 2018.03.09 ------------
------------ Applicaton: fmm ------------
No configuration file supplied
A configuration file is given in the example folder
Run `fmm config.xml`
------------ Program finished ------------
💡 You can check the folder on your windows explorer at c:\cygwin\home
(
corresponding to /home
directory in cygwin.)
Install requirements with
brew install boost gdal libomp
Install the program with
# Under the project folder
mkdir build
cd build
cmake ..
make
sudo make install