Low-Frequency Trajectory Map Matching Method Based on Vehicle Heading Segmentation

: Numerous Global Positioning System connected vehicles are collecting extensive data remotely in cities, enabling data-driven infrastructure planning. To truly beneﬁt from this emerging technology, it is important to combine telematics and map data to make it easier to extract and mine useful information from the data. By performing map matching, data points that cannot be accurately located on the road network can be projected onto the correct road segment. As an important means of remote data processing, it has become an important pre-processing step in the ﬁeld of data mining. However, due to the various errors of location devices and the complexity of road networks, map matching technology also faces great challenges. In order to improve the efﬁciency and accuracy of the map matching algorithm, this study proposes an ofﬂine method for low-frequency trajectory data map matching based on vehicle trajectory segmentation. First, the trajectory is segmented based on the vehicle’s travel direction. Then, the comprehensive probability of the corresponding road segment is calculated based on the spatial probability and the directional probability of each road segment around the location. Third, the k candidate matching paths under consideration are selected based on the comprehensive probability evaluation. Finally, the shortest path planning and the probability calculation of the different candidate paths are combined to ﬁnd the optimal matching path. The experimental results on the real trajectory dataset in Shanghai and the road network environment show that the proposed algorithm has better accuracy, efﬁciency, and robustness than other algorithms.


Introduction
In recent years, the global positioning system (GPS) has been widely used in vehicles, which will facilitate the collection of a large amount of trajectory data by city management and traffic services to reflect information such as vehicle position, speed, and direction.In intelligent transportation systems, these GPS trajectory data are usually integrated with geographic information system (GIS) to provide various services such as vehicle navigation, tracking, and mapping of new roads to individuals or businesses for GIS [1][2][3][4][5][6].In the trajectory sampling process, objects such as trees and buildings affect the accuracy of the trajectory data, so the acquired trajectory points may not fall accurately on the road network.Therefore, an important step in integration with geographic information is to match the trajectory points with the road network to determine the road segment of the vehicle's travel path and the location of the vehicle on the road network, i.e., map matching.If the GPS trajectory data and the road network data are accurate enough, effective map matching is easy to achieve.However, due to the complex structure of the road network, more accurate and efficient map matching methods are required to overcome the difficulties and challenges in map matching.
According to the different sampling frequency of trajectory points, we can distinguish between high-frequency methods for trajectory map matching and low-frequency methods for trajectory map matching.Using high-frequency trajectory data, road segments matched by the location points can be better found, resulting in higher-precision matching results.However, due to the strict limitations of the battery, the GPS-embedded handheld device cannot collect high-frequency trajectory data for long periods.Therefore, map matching for low-frequency trajectory data becomes an important issue.Achieving low-frequency trajectory map matching in a complex urban road network is the subject of this study.Existing map matching methods for low-frequency trajectory data mainly include the following three categories.
(1) Methods based on machine learning The methods based on machine learning mainly include Kalman filter and artificial neural network techniques [7].Toledo-Moreo et al. [8] proposed a particle filter-based algorithm that combines measurements from global navigation satellite system (GNSS) receivers, gyroscopes, and orometers to solve the map matching problem for parallel roads.Similarly, Szottka et al. [9] proposed a particle filter-based algorithm, using camera detection data with road network markers and commercial map data.Tao et al. [10] developed a Kalman filter-based localization solver for map matching using GPS data, vehicle data, camera observations, and road network marker data embedded in digital navigation maps.Gu et al. [11] combined multisensor measurements and 3D mapping techniques to develop a robust localization system in urban canyons.The 3D map is used to perform signal transmission and track positions to correct vehicle positioning.Shunsuke et al. [12] proposed a particle-filtered vehicle positioning system for autonomous driving that integrates global navigation system, an inertial navigation system, and camera observation data.Zheng et al. [13] proposed a machine learning segmentation and classification algorithm for lane change detection using steering angle and vehicle data in CAN-buses.This type of method uses various sensor data acquired from multiple sensors to improve the matching accuracy [14,15].However, these sensor data, which requires additional acquisition usually cannot be obtained from ordinary vehicle navigation devices.In addition, most machine learning based map matching methods rely on the process of parameter learning.In summary, the above machine learning based methods all need to collect, learn, and calculate a large amount of data.Compared with the probabilistic and weighted methods, more complex calculations are required.
(2) Methods based on probability calculation In general, probability-based map-matching methods use a hidden Markov model to find the most likely path.In this process, the different combinations of roads that the vehicle could take are evaluated to find the best matching path.The sequence of projected points is the latent state of the Markov model, and the original GPS points are the observations.Different algorithms propose different transition probability distributions to determine the probability of passing through a candidate road segment.Most algorithms use a Gaussian distribution to describe the emission probability.Newson et al. [16] first proposed a hidden Markov model for fitting GPS data based on a probabilistic map matching framework.Zeng et al. [17] proposed the application of GPS trajectory curvature integral in map matching, and used the curvature feature to find the best matching path.However, when the sampling rate of input GPS points is increased, the performance of map matching is poor.Luo et al. [18] constructed a map matching method based on the hidden Markov chain model, using the aggregated geometric data of the road network, the topology matrix of the road segments and the refined quadtree structure, and combined the Viterbi algorithm to find the optimal order of the road segments.Chen et al. [19] proposed a three-stage map matching method based on driving direction.In this method, the directional probability and spatial probability of road segments around GPS points are calculated to obtain the corresponding matching path.However, when searching for the path, the best matching path is not further found by calculation.
(3) Methods based on weight assignment Unlike probabilistic methods, weighted map matching methods assign costs to different candidate paths and use different selection methods to find potential paths.Lin et al. [20] proposed a Dijkstra-based selection mapping algorithm to evaluate the correctness of road sequences.Based on map data, a virtual directed graph is defined, whose nodes are a set of candidate points, and the weights of the edges represent the transition probability from one candidate point to another, to find a suitable path.However, the approximation between the candidate point and the GPS point is not considered.Ptošek et al. [21] proposed a map matching algorithm that combines geometric mapping with Dijkstra's shortest path algorithm to solve the problems of inaccurate vehicle position data and too short road segments in the matching process.However, when the frequency of trajectory point sampling is continuously reduced, the matching accuracy is also continuously reduced.
In addition, relevant researchers have also made significant efforts to improve the execution efficiency of map matching.Koller et al. [22] combined the computation of probabilities and assignment of weights by using a map matching method based on the HMM, but replaced the Viterbi algorithm with the Dijkstra algorithm.The method of mixing probabilities and weights reduces the running time of the map matching process by reducing the overhead in computing the transition probabilities.Traditional map matching methods for low-frequency trajectory data often need to find the shortest path between adjacent sampling points.As the sampling frequency continues to decrease, the distance between adjacent sampling points becomes larger and larger, and the shortest path selection method can no longer find the best matching path for the trajectory points.Therefore, it is necessary to match the low-frequency trajectory points to the corresponding road segments in a more precise way.To overcome the limitations of existing map matching algorithms, this study proposes a segmented map matching method based on the travel direction of trajectory points, combined with the hidden Markov model and the shortest path algorithm to ensure the matching accuracy and path topology feasibility.
The rest of the study is organized as follows.Section 2 presents the basic concepts and descriptions of related problems, and describes the framework and process of the proposed algorithm in detail.Section 3 verifies the performance of the proposed algorithm through experiments.The contribution description and associated analysis of the proposed method are discussed in Section 4. The conclusions and future prospects are presented in Section 5.

Basic Concepts and Problem Description
This section defines the relevant concepts used in this paper.

Definition 1. (road segment):
A road segment is a directed edge, defined as e = e id , e id start , e id end , where e id represents the road segment identifier, e id start represents the road segment start point e id , and e id end represents the road segment end point e id .In this study, e id start → e id end and e id end → e id start are treated as different directions of the same road segment.

Definition 2. (road segment node):
The road segment node refers to the start point or end point of the road segment, expressed as v = (v id , v lat , v lon ), where v id is the unique identifier of the road segment node and v lat and v lon are the latitude and longitude coordinates of the location of the road segment node location, respectively.

Definition 3. (road network):
The road network is represented by a single directed graph G = (V, E), where V is the set of road segment nodes, expressed as V = {v 1 , v 2 , . . . ,v n }, E is the set of all road segments, expressed as E = {e 1 , e 2 , . . . ,e n }.

Definition 4. (location point):
The location point (also called trajectory point) represents the location information acquired by the GPS device within a certain time interval, defined as p i = {lat i , lon i , t i , s i , h i }, where lat i and lon i represent the latitude and longitude coordinates of the current location point, respectively, t i represents the time of the current location point, s i represents the current speed of the vehicle, and h i represents the current driving direction of the vehicle.

Definition 5. (original trajectory segment):
The original trajectory segment consists of a set of location points ordered by timestamps, defined as τ = p i , p i+1 , . . ., p i+u−1 , where p j (i is the location point, and the length of τ is the number of location points contained in τ.That is, |τ| = u.Definition 6. (matched trajectory segment): Given an original trajectory segment, its matched trajectory segment τ m represents the actual driving segment of the vehicle in the road network, defined as τ m = e i , e i+1 , . . ., e n , where the road segments e i and e i+1 have a common road segment node.That is, they are connected to each other.

Definition 7. (travel direction angle):
The travel direction refers to the direction in which the vehicle is moving at the location point.The angle formed by the counterclockwise rotation of the forward direction to the true north direction is called the travel direction angle of the location point.
The travel direction angle of the location point p i is recorded as h i , 0 The heading direction angle can be obtained from the trajectory dataset.

Definition 8. (road segment direction angle):
The angle formed by the counterclockwise rotation of the road segment direction to the north direction is defined as the road segment direction angle.The calculation method is shown in Equation (1).
Here, (x 1 , y 1 ) and (x 2 , y 2 ) are the latitude and longitude coordinates of the two points, respectively, and As shown in Figure 1, E = {e 1 , e 2 , e 3 , . . . ,e 18 } represents the set of all road segments, and V = {v 1 , v 2 , v 3 , . . . ,v 15 } represents the set of all road segment nodes.V and E together form an instance of a road network.The sequence of location points p 1 , p 2 , p 3 , . . ., p 7 form the original trajectory segment τ, where each location point contains latitude, longitude, timestamp, instantaneous speed, and travel direction information.For example, taking true north as the base direction, the travel direction angle of p 1 is represented as h 1 .The matching trajectory segment of τ is τ m = e 9 , e 14 , e 6 , e 7 , e 17 .The proposed algorithm first divides the complete trajectory into several consecutive sub-trajectories according to the travel direction of the location point.Second, it calculates

Low-Frequency Trajectory Map Matching Algorithm 2.2.1. Algorithm Overview
The proposed algorithm first divides the complete trajectory into several consecutive sub-trajectories according to the travel direction of the location point.Second, it calculates the directional probability for each sub-trajectory after segmentation, and obtains the spatial probability according to the distance between the location point and the road segment.Based on the directional probability and the spatial probability, the corresponding comprehensive probability is then obtained.Finally, the shortest path algorithm and the result of calculating the comprehensive probability are combined to obtain the matching paths under different probabilities.The optimal path is selected based on the similarity factor between the trajectory and the road segments, so that the trajectory points are matched to the road network.Figure 2 shows the schematic diagram of the proposed algorithm, which mainly includes the following three steps.

Trajectory Segmentation
In an original trajectory segment, each trajectory point  has a corresponding travel direction angle ℎ (2 ≤  ≤ ).The direction rotation angle  between adjacent trajectory points is min (|ℎ − ℎ |, 360°− |ℎ − ℎ |).When  ≥  is satisfied, we segment the trajectory, where  is the angle threshold.In the experiments, the matching accuracy is tested under different angle thresholds, which determine the value of  .
As shown in Figure 3, there is an initial trajectory segment  = { ,  ,  ,  ,  ,  },  corresponds to the travel direction angle ℎ ,  corresponds to the travel direction angle ℎ , and so on.In the segmentation process, the travel direction difference between  and  is calculated first, and the result is less than  .Therefore, they belong to one segment.Then, we calculate the travel direction difference between  and  and find that it is greater than  , so they are divided into different segments.According to this rule, the trajectory is segmented, and the segmented sub-trajectories are finally obtained as  = { ,  } and  = { ,  ,  ,  ,  } .To ensure the connectivity between the segmented sub-trajectories, the last point in  is the first point in  .The pseudocode for trajectory segmentation is shown in Algorithm 1. (1) Trajectory segmentation Consider an original trajectory segment τ = {p 1 , p 2 , p 3 , . . . ,p n }, in which each location point p i has its direction information during the driving process.The whole trajectory is segmented according to the travel direction of the location point.The first point in the subsequent segmented sub-trajectory is the last point in the previous segmented sub-trajectory.
(2) Trajectory point matching For each trajectory point p i , there are corresponding candidate road segments around it.Based on the distance between the trajectory point and the candidate road segment, the corresponding spatial probability G 1 is obtained, and the directional probability G 2 is obtained from the travel direction angle and the road segment direction angle.Finally, combining the spatial probability and the directional probability, the comprehensive probability G w between the trajectory point and the road segment under consideration is obtained.The road segments under consideration are sorted according to their values for comprehensive probability.
(3) Best path selection For each segmented sub-trajectory τ i , we first find the path from the first point to the last point of τ i using the shortest path algorithm.For each trajectory point p i there are several candidate road segments with different probabilities, so in the path search, we obtain several matching sequences consisting of road segments with different probabilities.The path that best matches the original trajectory segment is selected based on the distance between the trajectory segment and each candidate path.After matching the first segmented sub-trajectory, the candidate road segment that matches the last point of the previous subtrajectory is recorded, then the second sub-trajectory is matched, and so on, to finally obtain the best matching path.

Trajectory Segmentation
In an original trajectory segment, each trajectory point p i has a corresponding travel direction angle h i (2 ≤ i ≤ n).The direction rotation angle θ i between adjacent trajectory points is min is satisfied, we segment the trajectory, where θ c is the angle threshold.In the experiments, the matching accuracy is tested under different angle thresholds, which determine the value of θ c .
As shown in Figure 3, there is an initial trajectory segment τ = {p 1 , p 2 , p 3 , p 4 , p 5 , p 6 }, p 1 corresponds to the travel direction angle h 1 , p 2 corresponds to the travel direction angle h 2 , and so on.In the segmentation process, the travel direction difference between p 1 and p 2 is calculated first, and the result is less than θ c .Therefore, they belong to one segment.Then, we calculate the travel direction difference between p 2 and p 3 and find that it is greater than θ c , so they are divided into different segments.According to this rule, the trajectory is segmented, and the segmented sub-trajectories are finally obtained as τ 1 = {p 1 , p 2 } and τ 2 = {p 2 , p 3 , p 4 , p 5 , p 6 }.To ensure the connectivity between the segmented sub-trajectories, the last point in τ 1 is the first point in τ 2 .The pseudocode for trajectory segmentation is shown in Algorithm 1.

Algorithm 1: Trajectory segmentation
ind = 2; 13: end if 14: end for 15: return Γ; The segmented sub-trajectories are stored in Γ, which is the basis for the next trajectory point matching.
and  is calculated first, and the result is less than  .Therefore, they belong to one segment.Then, we calculate the travel direction difference between  and  and find that it is greater than  , so they are divided into different segments.According to this rule, the trajectory is segmented, and the segmented sub-trajectories are finally obtained as  = { ,  } and  = { ,  ,  ,  ,  } .To ensure the connectivity between the segmented sub-trajectories, the last point in  is the first point in  .The pseudocode for trajectory segmentation is shown in Algorithm 1.

Trajectory Point Matching
After the trajectory is segmented, the candidate road segments are found with correspondingly different probabilities by analyzing the probabilities between the trajectory point and each road segment.As shown in Figure 4, a circle is drawn with the trajectory point p 1 as the center and r as the radius, and the road segments {e 1 , e 2 , e 3 , e 4 , e 5 } within the circle are selected as candidate road segments.In order to find the correct road segment that matches the trajectory point, we set the radius r to a relatively large value (such as 100 m).By calculating the spatial probability and the directional probability, we obtain m candidate road segments corresponding to the trajectory point for further processing.The segmented sub-trajectories are stored in  , which is the basis for the next trajectory point matching.

Trajectory Point Matching
After the trajectory is segmented, the candidate road segments are found with correspondingly different probabilities by analyzing the probabilities between the trajectory point and each road segment.As shown in Figure 4, a circle is drawn with the trajectory point  as the center and r as the radius, and the road segments { ,  ,  ,  ,  } within the circle are selected as candidate road segments.In order to find the correct road segment that matches the trajectory point, we set the radius r to a relatively large value (such as 100 m).By calculating the spatial probability and the directional probability, we obtain m candidate road segments corresponding to the trajectory point for further processing.[19]: Let  be the shortest distance from the trajectory point  to the road segment  .We define the spatial probability as a measure on the possibility of p i be the shortest distance from the trajectory point p i to the road segment e j .We define the spatial probability as a measure on the possibility of spatial matching between the p i and e j , denoted as G 1 H e j p i .The calculation methods of H e j p i and G 1 H e j p i are shown in Equations ( 2) and (3), respectively:

Definition 9. (Spatial probability)
where c 1 and c 2 are the two endpoints of the road segment e j respectively, and c 3 is the vertical projection point from p i to e j .If c 3 is not located in e j , then disp(p i , c 3 ) is set to +∞; σ 1 is the standard deviation of location measurement, which is generally set to 20 m [23].In general, the distance between the trajectory point and the road segment can be simulated as the normal distribution of the distance H e j p i .
However, matched road segments determined only by spatial probability will have corresponding errors.As shown in Figure 5, for the trajectory point p 2 (p 3 ), e 3 (e 4 ) with the maximum spatial probability is an incorrect matched road segment.According to the direction of travel of the trajectory p 1 → p 2 → p 3 → p 4 , the correct matching road segments should be e 1 → e 2 → e 5 .Therefore, the directional probability is proposed to improve the matching accuracy. = min (( ,  ), ( ,  ), ( ,  )) (2) where  and  are the two endpoints of the road segment  respectively, and  is the vertical projection point from  to  .If  is not located in  , then ( ,  ) is set to +∞;  is the standard deviation of location measurement, which is generally set to 20 m [23].In general, the distance between the trajectory point and the road segment can be simulated as the normal distribution of the distance  .
However, matched road segments determined only by spatial probability will have corresponding errors.As shown in Figure 5, for the trajectory point  ( ),  ( ) with the maximum spatial probability is an incorrect matched road segment.According to the direction of travel of the trajectory  →  →  →  , the correct matching road segments should be  →  →  .Therefore, the directional probability is proposed to improve the matching accuracy.Definition 10. (Directional probability) [19]: Let  be the angular difference between the travel direction angle of  and the road segment direction angle.Define the directional probability as a measure on the possibility of the direction matching between the trajectory point  and the candidate road segment  , denoted as   .The calculation methods of  and   are shown in Equations ( 4) and (5), respectively: where ℎ represents the travel direction angle of  ,  and  represent the angles in two different directions of the road segment;  is the standard deviation of the directional measurement, and is also set to 20 m.
Based on Equation ( 5), we obtain different directional probabilities between each trajectory point and the different candidate road segments.As for the spatial probability, the directional probability can also be simulated as a normal distribution of the travel direction angle difference  .4) and ( 5), respectively: where h i represents the travel direction angle of p i , θ 1 j and θ 2 j represent the angles in two different directions of the road segment; σ 2 is the standard deviation of the directional measurement, and is also set to 20 m.
Based on Equation ( 5), we obtain different directional probabilities between each trajectory point and the different candidate road segments.As for the spatial probability, the directional probability can also be simulated as a normal distribution of the travel direction angle difference A θ j h i .Definition 11. (Comprehensive probability) [19]: By combining the spatial probability and directional probability, this study defines the comprehensive probability as G w , which is calculated by Equation (6).
According to the above calculation and discussion, there is at least one eligible road segment around each trajectory point, so there is at least one comprehensive probability.Based on the comprehensive probability value, we select the m candidate road segments with the highest probability for the selection of the next best path and the evaluation of the map matching algorithm.The pseudocode for trajectory point matching is shown in Algorithm 2. N ij ←the spatial probability of c j calculated by Equation (3); 7: H ij ←the heading probability of c j calculated by Equation ( 5); 8: Gw ij ←the comprehensive probability of c j calculated by Equation ( 6); 9: end for 10: end for 11: return Gw, Cr; After matching the trajectory points with Algorithm 2, Gw stores the comprehensive probabilities for each trajectory point, and Cr stores the eligible road segments around each trajectory point.The next step is to find the optimal path through the segmented sub-trajectories and the comprehensive probabilities.

Best Path Selection
In each segmented sub-trajectory τ k i = p a i , p a+1 i ,. .., p b i , each trajectory point has its corresponding candidate road segments with comprehensive probability G w values.Since the research object of this paper is low-frequency trajectory data, the road segments coinciding with the adjacent trajectory points are generally not connected.Therefore, we find the best road segment matching the trajectory point through three steps.
Step 1 (Establish trajectory buffer): In the selection of the best path, we need to find the path between the trajectory points using the shortest path algorithm.Due to the size of the road network, it is impossible to find the path in the entire road network.Therefore, we filter the road network by the travel directions of the trajectory points before matching.As shown in Figure 6, there are four trajectory points.We construct a circle with the first trajectory point as the center and r' as the radius, and then translate continuously along the trajectory travel direction.After one continuous iteration, we obtain the corresponding road buffer.In this study, the trajectory buffer is constructed by determining the road segments and nodes contained in the road buffer.Step 2 (Find matching paths): Each segmented sub-trajectory    = {   ,   +1 , … ,    } corresponds to a trajectory buffer.Due to the large distance between two location points in the low-frequency trajectory, two continuous points are usually matched to two unconnected road segments in the road network, which may be far apart.Thus, we need to find possible paths between them.Let us take    as an example, for    , there are m possible road segments, and the same is true for    .Each trajectory point corresponds to several possible road segments with different probabilities.In this study, potential paths with different probabilities are found by finding the paths between the candidate road segments with different probabilities of the first point and the last point in each segmented sub-trajectory.When finding paths, the candidate road segment with the highest probability is not necessarily the matching road segment.Based on the above considerations, the following operations are performed in this study.
As shown in Figure 7, there is a segmented sub-trajectory ′ = { 1 ,  2 ,  3 } in the trajectory buffer.We first determine the start and end points of the path according to the travel direction of the trajectory.The candidate road segments of the first trajectory point Step 2 (Find matching paths): Each segmented sub-trajectory τ k i = p a i , p a+1 i ,. .., p b i corresponds to a trajectory buffer.Due to the large distance between two location points in the low-frequency trajectory, two continuous points are usually matched to two unconnected road segments in the road network, which may be far apart.Thus, we need to find possible paths between them.Let us take τ k i as an example, for p a i , there are m possible road segments, and the same is true for p b i .Each trajectory point corresponds to several possible road segments with different probabilities.In this study, potential paths with different probabilities are found by finding the paths between the candidate road segments with different probabilities of the first point and the last point in each segmented sub-trajectory.When finding paths, the candidate road segment with the highest probability is not necessarily the matching road segment.Based on the above considerations, the following operations are performed in this study.
As shown in Figure 7, there is a segmented sub-trajectory τ = {p 1 , p 2 , p 3 } in the trajectory buffer.We first determine the start and end points of the path according to the travel direction of the trajectory.The candidate road segments of the first trajectory point p 1 are {e 10 , e 7 , e 8 }, sorted by to the comprehensive probability, and the sorted candidate road segments of the last trajectory point p 3 are {e 3 , e 2 , e 12 }.Starting from the road segment with the highest probability of p 1 (i.e., e 10 ), we first find the start point of the path corresponding to the angle between the travel direction of p 1 and the direction of the road segment, which is denoted as v 6 in the figure.Then, we calculate the difference between the road segment direction angle of the maximum probability candidate road segment e 3 of the last point p 3 and the travel direction angle of p 3 , and find that the end point of the path is v 7 .Therefore, we find the shortest path from v 6 to the node v 7 is e 10 → e 11 → e 2 .
possible paths between them.Let us take    as an example, for    , there are m possible road segments, and the same is true for    .Each trajectory point corresponds to several possible road segments with different probabilities.In this study, potential paths with different probabilities are found by finding the paths between the candidate road segments with different probabilities of the first point and the last point in each segmented sub-trajectory.When finding paths, the candidate road segment with the highest probability is not necessarily the matching road segment.Based on the above considerations, the following operations are performed in this study.
As shown in Figure 7, there is a segmented sub-trajectory ′ = { 1 ,  2 ,  3 } in the trajectory buffer.We first determine the start and end points of the path according to the travel direction of the trajectory.The candidate road segments of the first trajectory point  1 are { 10 ,  7 ,  8 }, sorted by to the comprehensive probability, and the sorted candidate road segments of the last trajectory point  3 are { 3 ,  2 ,  12 }.Starting from the road segment with the highest probability of  1 (i.e.,  10 ), we first find the start point of the path corresponding to the angle between the travel direction of  1 and the direction of the road segment, which is denoted as  6 in the figure.Then, we calculate the difference between the road segment direction angle of the maximum probability candidate road segment  3 of the last point  3 and the travel direction angle of  3 , and find that the end point of the path is  7 .Therefore, we find the shortest path from  6 to the node  7 is  10 →  11 →  2 .However, the path found in the maximum comprehensive probability way is not necessarily the final matching path.As shown in Figure 8, the sub-trajectories segmented by the trajectory direction are τ 1 = {p 1 , p 2 } and τ 2 = {p 2 , p 3 }.For the last point of τ 1 (i.e., p 2 ), the road segment with the highest comprehensive probability is e 4 , but we can see in Figure 8 that p 2 should match to e 5 .Therefore, Step 3 is used to determine the best matching path.
Step 3 (Find the best matching path): For each trajectory point in the segmented subtrajectory, there are candidate road segments with different comprehensive probabilities.Therefore, in this step, k candidate paths are found from the start point to the end point in the segmented sub-trajectories, as shown in Table 1.(1) When k = 1, it is the path from the candidate road segment with the highest comprehensive probability of the start point to the candidate road segment with the highest comprehensive probability of the end point; (2) When k = 2, it is the path from the candidate road segment with the highest comprehensive probability of the start point to the candidate road segment with the second highest probability of the end point; (3) When k = 3, it means the path from the secondhighest-probability candidate road segment of the start point to the highest-probability road segment of the end point; (4) When k = 4, it means the path from the second-highestprobability candidate road segment of the start point to the second-highest-probability candidate road segment of the end point; (5) When k = 5, it means the path from the candidate road segment with the highest comprehensive probability of the start point to the candidate road segment with the third highest probability of the end point.In the experiments, different k values (k = 1, 2, 3, 4, 5) are set to evaluate the effect of k different paths and find the best path.
ISPRS Int.J. Geo-Inf.2022, 11, x FOR PEER REVIEW 11 of 23 However, the path found in the maximum comprehensive probability way is not necessarily the final matching path.As shown in Figure 8, the sub-trajectories segmented by the trajectory direction are  = { ,  } and  = { ,  }.For the last point of  (i.e.,  ), the road segment with the highest comprehensive probability is  , but we can see in Figure 8 that  should match to  .Therefore, Step 3 is used to determine the best matching path.Step 3 (Find the best matching path): For each trajectory point in the segmented subtrajectory, there are candidate road segments with different comprehensive probabilities.Therefore, in this step, k candidate paths are found from the start point to the end point in the segmented sub-trajectories, as shown in Table 1.(1) When k = 1, it is the path from the candidate road segment with the highest comprehensive probability of the start point to the candidate road segment with the highest comprehensive probability of the end point; (2) When k = 2, it is the path from the candidate road segment with the highest comprehensive probability of the start point to the candidate road segment with the second highest probability of the end point; (3) When k = 3, it means the path from the second-highest-probability candidate road segment of the start point to the highestprobability road segment of the end point; (4) When k = 4, it means the path from the second-highest-probability candidate road segment of the start point to the secondhighest-probability candidate road segment of the end point; (5) When k = 5, it means the path from the candidate road segment with the highest comprehensive probability of the start point to the candidate road segment with the third highest probability of the end point.In the experiments, different k values (k = 1, 2, 3, 4, 5) are set to evaluate the effect of k different paths and find the best path.By the above analysis, we can find the relevant k candidate paths for each segmented sub-trajectory of the original trajectory, and combine the candidate paths of the different sub-trajectories to get k complete candidate paths.Figure 9 shows the trajectory points  By the above analysis, we can find the relevant k candidate paths for each segmented sub-trajectory of the original trajectory, and combine the candidate paths of the different sub-trajectories to get k complete candidate paths.Figure 9 shows the trajectory points p 1 , p 2 , p 3 and the corresponding matching road segments e 1 and e 3 .In the path finding process, e 1 → e 2 → e 3 is one of the candidate paths.To find the best matching path, the distance between the original trajectory p 1 → p 2 → p 3 and each candidate path must be calculated.First, calculate the shortest distance from each trajectory point to each road segment in the path.That is, the projected distance from the trajectory point to the road segment.If the projected point is not on the road segment, calculate the distance between the trajectory point and the projected point on the extended line of the road segment.As shown in Figure 9, the distances from p 1 to road segments e 1 , e 2 , and e 3 are d 1 , d 2 , and d 3 , respectively; the distances from p 2 to road segments e 1 , e 2 , and e 3 are d 4 , d 5 , and d 6 , respectively; and the distances from p 3 to road segments e 1 , e 2 , and e 3 are d 7 , d 8 , and d 9 respectively.Second, add all the shortest distances to get the distance between the trajectory and the current candidate path.Since there are k candidate paths connected by road segments with different probabilities, the distance between any trajectory and its k-th candidate path is denoted as D k (k = 1, 2, 3, 4, 5).Using Equation ( 7), the path with the largest probability value P(D k ) is selected from the k candidate paths as the best matching path.
where σ 3 is set to 20 m, representing the same meaning as σ 1 and σ 2 .The pseudocode for the best path selection is shown in Algorithm 3.  ,  ,  and the corresponding matching road segments  and  .In the path finding process,  →  →  is one of the candidate paths.To find the best matching path, the distance between the original trajectory  →  →  and each candidate path must be calculated.First, calculate the shortest distance from each trajectory point to each road segment in the path.That is, the projected distance from the trajectory point to the road segment.If the projected point is not on the road segment, calculate the distance between the trajectory point and the projected point on the extended line of the road segment.As shown in Figure 9, the distances from  to road segments  ,  , and  are  ,  , and  , respectively; the distances from  to road segments  ,  , and  are  ,  , and  , respectively; and the distances from  to road segments  ,  , and  are  ,  , and  respectively.Second, add all the shortest distances to get the distance between the trajectory and the current candidate path.Since there are k candidate paths connected by road segments with different probabilities, the distance between any trajectory and its k-th candidate path is denoted as  ( = 1, 2, 3, 4, 5).Using Equation ( 7), the path with the largest probability value ( ) is selected from the k candidate paths as the best matching path.
where  is set to 20 m, representing the same meaning as  and  .The pseudocode for the best path selection is shown in Algorithm 3.
e 2 e 3 After the optimal path is selected using Algorithm 3, the final trajectory matching path is stored in Path.After the optimal path is selected using Algorithm 3, the final trajectory matching path is stored in Path.

Algorithm Complexity Analysis
The time complexity of Algorithm 1 mainly depends on the computational cost of the segment angle difference.The time complexity of this part is O(n), where n is the number of location points in the trajectory, so the time complexity of Algorithm 1 is O(n).
The time complexity of Algorithm 2 mainly depends on: (1) the cost of searching for possible road segments around each trajectory point; (2) the cost of computing spatial probability, directional probability, and comprehensive probability.The time complexity of scanning the trajectory point set and scanning the candidate road segment set are both O(n × p), where p is the number of candidate road segments, p n, so the time complexity of Algorithm 2 is O(n).
The time complexity of Algorithm 3 mainly depends on: (1) the cost of finding the shortest path of each segmented sub-trajectory, the time complexity of this part is O(m), where m is the number of segmented sub-trajectories; (2) the cost of finding the best matching path from the shortest path set, the time complexity of this part is O(k), where k is the number of candidate paths.k m, so the time complexity of Algorithm 3 is O(m).

Results
In this section, the performance of the proposed algorithm is evaluated under various aspects with real trajectory data and road network data.
The experimental environment is an Intel Corei5 processor with 2.4 GHz CPU.The operating platform is Windows 10, and the proposed algorithm is implemented using MAT-LAB 2018a.The relevant datasets, evaluation indicators, parameter settings, experimental results, and analysis are presented below.

Road Network Dataset
In this study, the road network of Shanghai is imported via ArcGIS [24].The road network data include major urban roads, urban secondary roads, urban branch roads, residential roads, expressways, tunnels, elevated expressways, suburban trails, sidewalks, driveways, and more.The data contain more than 100,000 road segments and more than 70,000 nodes.

Trajectory Dataset
The trajectory dataset is from the trajectory data of more than 10,000 taxis in Shanghai, China, on 20 February 2007, collected by the Smart City Research Group of the University of Hong Kong.The trajectory data fields include the taxi number, timestamp, latitude and longitude, the vehicle's travel direction, instantaneous speed, and whether the vehicle is carrying passengers.To illustrate the relevant features of taxi trajectory data, we used the trajectory data from 6:00 a.m. to 10:00 p.m.The number of sampling points and the average distance between adjacent points under different sampling frequencies are shown in Table 2. Following the literature [25], we use ArcGIS software to put the vehicle trajectory data and Shanghai road network data in the same layer, and find out the correct road segments matching the trajectory points by manual tagging.In this study, the sampling rate of the trajectory data is reduced to obtain low-frequency trajectory data.Based on this, experiments are conducted to evaluate the performance of the algorithm.

Evaluation Indicators
In this study, three evaluation indicators are used to measure the superiority of the algorithm, including two evaluation indicators to measure the matching accuracy and one to measure the matching time.

Trajectory Point Matching Accuracy
The trajectory point matching accuracy, denoted as R c , refers to the ratio between the number of trajectory points correctly matched with the road network and the number of trajectory points to be matched, calculated as follows: where P represents the number of trajectory points correctly matched to the road segment, and R represents the number of trajectory points used for matching.

Road Segment Matching Accuracy
The road segment matching accuracy, denoted as R m , refers to the ratio between the number of road segments correctly matched to the road network to the total number of actual road segments of the trajectory, calculated as follows: where l represents the number of correctly matched road segments, and L represents the total number of actual road segments of the trajectory.Since this algorithm is used for matching low-frequency trajectory data, the distance between trajectory points is relatively large, and there are more road segments between each two consecutive trajectory points.Therefore, the R m indicator is used to measure the accuracy of road segment matching.

Trajectory Point Matching Time
Use N s to denote the average runtime required for each trajectory point to complete the matching.
where Trt represents the total time required for the entire trajectory to complete the map matching process, and R represents the number of trajectory points used for matching.Due to the complexity of road networks, the accuracy of trajectory map matching changes accordingly for road networks with different topologies.Therefore, in this study, a visual comparison of the map matching results of different algorithms in road networks with different topologies is performed, which shows the superiority of the proposed algorithm.

Segmentation Angle
In the first stage of the algorithm, we perform the trajectory segmentation operation according to the specified segmentation angle (θ c ) value.Based on trajectory feature analysis and experimental results, we found that the best segmentation angle was 20 • .As different datasets have different characteristics, we set the angle to different values to check its effect on accuracy and time.In particluar, five different angle values of 0 • , 20 • , 40 • , 60 • , and 80 • are used to compare the matching accuracy and matching time of the same trajectory.

Number of Candidate Paths
In the second stage of the algorithm, we determine the candidate road segments around each trajectory point according to the comprehensive probability obtained from the spatial probability and the directional probability, and sort the road segments by comprehensive probability in descending order.In the third stage, we find that the final matched path is not necessarily the path between the candidate road segments with the highest comprehensive probabilities.Therefore, by fixing the number of candidate paths (k), we can find potential paths between candidate road segments with different probabilities.
To check the effect of different number of paths k on matching accuracy, we set the value of k to 1, 2, 3, 4, and 5, respectively, and use the same trajectory for experimental verification, to find the effects of the number of paths on the map matching accuracy and matching time.

Sampling Frequency
The sampling frequency reflects the time interval between two adjacent trajectory points.To verify the superiority of the proposed algorithm, trajectory data with different sampling intervals, which are 15 s, 30 s, 60 s, 90 s, and 120 s, respectively, are collected.The matching accuracy and matching time of the algorithm at different sampling frequencies are compared and analyzed, which shows the superiority of the proposed algorithm.

Experimental Comparison Results Based on Different Parameters (1) Experimental results at different segmentation angles
Figure 10 shows the results of comparing the matching accuracy R c , R m and matching time N s under different segmentation angles θ c .The "(s)" in the symbol "N s (s)" indicates that the time unit of N s is seconds.The sampling interval between trajectory points is 60 s.It can be seen that when the angle is in the range of [0 • , 40 • ], the time required is almost the same, and when the segmentation angle is in the range of [60 • , 80 • ], the matching time is reduced.In terms of accuracy, we find that for segmentation angles of 20 • and 40 • , the matching accuracy reaches a peak, and the matching accuracy is the same under the two segmentation angles.When the angle is 60 • and 80 • , the time loss decreases, the matching accuracy also decreases significantly.(

2) Experimental results under different candidate path values
As can be seen in Figure 11, as the number of candidates increases, the matching accuracy also increases, and the time peaks when k = 5.This is because the path search selects the best matching path by comparing the candidate road segments with different probabilities.When k = 1, the path searched is the path between the maximum probability matching road segments that correspond to the trajectory points, so there is a large matching error.As the k value increases, the matching accuracy improves due to the continuous correction of the path.In the following experiments for comparison with other algorithms, we set k = 5. (3) Experimental results at different sampling frequencies  From the experiments, it can be seen that at θ c = 20 • , the matching accuracy peaks and the time loss is relatively small.This is because at a segmentation angle of 0 • , all trajectory points are considered to be segmented.When the road segments in the road network are dense, using a segmentation angle of 0 • during the matching process causes the number of segmented sub-trajectories to be larger, and the number of trajectory points in each sub-trajectory to be smaller.The result cannot be corrected in the path finding process, leading to corresponding errors.When the segmentation angle is θ c = 40 • , the accuracy remains the same as θ c = 20 • , but more time is required in the matching process.For angles of 60 • and 80 • , the trajectory that should be segmented is not segmented, the number of segments in a trajectory is reduced, and the number of times a path is found is correspondingly reduced.However, the trajectories are not segmented correctly, resulting in a large error.That is, both the matching accuracy and the matching time decrease.Therefore, we set θ c to 20 • in the following experiments. (

2) Experimental results under different candidate path values
As can be seen in Figure 11, as the number of candidates increases, the matching accuracy also increases, and the time peaks when k = 5.This is because the path search selects the best matching path by comparing the candidate road segments with different probabilities.When k = 1, the path searched is the path between the maximum probability matching road segments that correspond to the trajectory points, so there is a large matching error.As the k value increases, the matching accuracy improves due to the continuous correction of the path.In the following experiments for comparison with other algorithms, we set k = 5.
accuracy also increases, and the time peaks when k = 5.This is because the path search selects the best matching path by comparing the candidate road segments with different probabilities.When k = 1, the path searched is the path between the maximum probability matching road segments that correspond to the trajectory points, so there is a large matching error.As the k value increases, the matching accuracy improves due to the continuous correction of the path.In the following experiments for comparison with other algorithms, we set k = 5. (3) Experimental results at different sampling frequencies Table 3 shows the corresponding results for the trajectory map matching accuracy  ,  and matching time  at different sampling frequencies and different path candidate values.From the table, we can see that with the continuous increase of the sampling interval, the trajectory map matching accuracy continues to decrease.This is because with (3) Experimental results at different sampling frequencies Table 3 shows the corresponding results for the trajectory map matching accuracy R c , R m and matching time N s at different sampling frequencies and different path candidate values.From the table, we can see that with the continuous increase of the sampling interval, the trajectory map matching accuracy continues to decrease.This is because with the continuous reduction of the sampling frequency, the relevant information between the trajectory points also becomes less, and the distance between two adjacent trajectory points continues to increase, which increases the possibility of matching road segments.The algorithm has to make calculations in different situations.Therefore, the accuracy will continue to decrease and the matching time will continue to increase.Figure 12a shows the comparison results of ST-Matching [23], SD-Matching [19], and the proposed algorithm in terms of trajectory point matching accuracy R c .In this study, the trajectory is segmented by setting the threshold value for the segmentation angle θ c , and the path results are corrected in path finding to better match the trajectory points to the road network.It can be seen that the proposed algorithm has about 5% higher matching accuracy compared with the SD-Matching algorithm.This is because after the trajectory segmentation, we only need to analyze the path between the first and the last trajectory points in the segmented sub-trajectories.In the path search, the paths between candidate road segments with different probabilities are compared to correct the matching result, to improve the matching accuracy.The ST-Matching algorithm assigns the location points to the road segments with a short distance, and does not consider the relationship with the neighboring points, resulting in a large matching error.Figure 13 shows the comparison results of ST-Matching, SD-Matching and the proposed algorithm in the running time   .It can be seen that the running time of the proposed algorithm is reduced by about 10-20% compared to the other two algorithms.The larger the sampling interval between the trajectory points, the smaller the difference in running time between this algorithm and the other two algorithms.The proposed algorithm segments the trajectory based on the segmentation angle threshold.The matching time of the trajectory data mainly depends on the number of segmented sub-trajectories.The road network was reduced and optimized based on the feature of the trajectory point travel direction.Compared to SD-Matching, a semicircular buffer is not built, but a trajectory buffer corresponding to the driving direction between the trajectory points is built, which improves the matching efficiency.The ST-Matching algorithm does not build a buffer during the path search, so the scope of the path includes the entire road network, which takes a lot of time.Figure 12b shows the comparison results of ST-Matching, SD-Matching, and the proposed algorithm in terms of road segment matching accuracy R m .In this study, the best path is selected by comparing and screening the paths between candidate road segments with different probabilities.It can be seen that the proposed algorithm based on the trajectory data of different sampling frequencies has about 8% improved matching accuracy compared to ST-Matching and about 5% compared to SD-Matching.From the above analysis, we can see that after calculating and analyzing the paths between the candidate road segments with different probabilities, the road segment matching accuracy is further improved.
Figure 13 shows the comparison results of ST-Matching, SD-Matching and the proposed algorithm in the running time N s .It can be seen that the running time of the proposed algorithm is reduced by about 10-20% compared to the other two algorithms.The larger the sampling interval between the trajectory points, the smaller the difference in running time between this algorithm and the other two algorithms.The proposed algorithm segments the trajectory based on the segmentation angle threshold.The matching time of the trajectory data mainly depends on the number of segmented sub-trajectories.The road network was reduced and optimized based on the feature of the trajectory point travel direction.Compared to SD-Matching, a semicircular buffer is not built, but a trajectory buffer corresponding to the driving direction between the trajectory points is built, which improves the matching efficiency.The ST-Matching algorithm does not build a buffer during the path search, so the scope of the path includes the entire road network, which takes a lot of time.
time of the trajectory data mainly depends on the number of segmented sub-trajectories.The road network was reduced and optimized based on the feature of the trajectory point travel direction.Compared to SD-Matching, a semicircular buffer is not built, but a trajectory buffer corresponding to the driving direction between the trajectory points is built, which improves the matching efficiency.The ST-Matching algorithm does not build a buffer during the path search, so the scope of the path includes the entire road network, which takes a lot of time.Figure 14 shows the visualization results of ST-Matching, SD-Matching, and the proposed algorithm under the topology of the bus-type road network.It can be seen that the three algorithms have good matching effects in the uncomplicated road network Figure 14 shows the visualization results of ST-Matching, SD-Matching, and the proposed algorithm under the topology of the bus-type road network.It can be seen that the three algorithms have good matching effects in the uncomplicated road network dominated by the bus topology, and all of them can match the trajectory points with the correct road network.Figure 15 shows three visualization results with multiple parallel road topologies.We can see that ST-Matching mainly matches the trajectory points to the nearest road segments, and finds the path between the corresponding road segments of each trajectory point.Although the SD-Matching algorithm also determines the relevant number of candidates in the matching process, it does not correct the road segments between different candidate paths.If there is a path between the candidate road segments with the highest probability corresponding to the trajectory points, it is considered as the final matching path, which leads to large errors.The proposed algorithm makes appropriate corrections to the matching results, and this improves the matching accuracy.dominated by the bus topology, and all of them can match the trajectory points with the correct road network.Figure 15 shows three visualization results with multiple parallel road topologies.We can see that ST-Matching mainly matches the trajectory points to the nearest road segments, and finds the path between the corresponding road segments of each trajectory point.Although the SD-Matching algorithm also determines the relevant number of candidates in the matching process, it does not correct the road segments between different candidate paths.If there is a path between the candidate road segments with the highest probability corresponding to the trajectory points, it is considered as the final matching path, which leads to large errors.The proposed algorithm makes appropriate corrections to the matching results, and this improves the matching accuracy.

Discussion
There is a certain range of errors in the data collected by the positioning device.If these data are directly used in traffic detection, urban planning, and other applications, it will lead to a large degree of error, resulting in waste of manpower and material resources.The map matching method plays an important role in the preprocessing step of trajectory data mining.In practice, vehicles usually report their GPS positions to the dispatch center at a lower sampling rate in order to save communication and energy costs [26][27][28].If the processing object is high-frequency trajectory data, where the distance between adjacent

Discussion
There is a certain range of errors in the data collected by the positioning device.If these data are directly used in traffic detection, urban planning, and other applications, it will lead to a large degree of error, resulting in waste of manpower and material resources.The map matching method plays an important role in the preprocessing step of trajectory data mining.In practice, vehicles usually report their GPS positions to the dispatch center at a lower sampling rate in order to save communication and energy costs [26][27][28].If the processing object is high-frequency trajectory data, where the distance between adjacent location points is short, the road network topology can be used for analysis and matching [29].By contrast, the low-frequency trajectory map matching method generally cannot guarantee a feasible matching path, due to the long time interval between two adjacent trajectory points, i.e., there may be several road segments between the segments matched by two adjacent trajectory points.
For low-frequency trajectory data, related researchers have proposed several map matching algorithms [30][31][32], which usually combine the hidden Markov model (HMM) and the shortest path algorithm to determine the shortest path between two consecutive trajectory points.Although these algorithms can achieve high matching accuracy, the time required to calculate the shortest path is significantly high.Lengthy computations impose a huge computational burden on the algorithms and limit the application scenarios of the algorithms.To overcome this challenge, this paper proposes an efficient map-matching algorithm for low-sampling-rate trajectory data.The proposed algorithm firstly segments the complete trajectory according to the travel direction of the location points; secondly, the candidate road segments around the segmented trajectory points are selected according to the comprehensive probability obtained from the spatial probability and the directional probability; thirdly, based on the obtained candidate road segments and the shortest path algorithm, each segmented sub-trajectory is matched with the road network, and the candidate paths are obtained; finally, the best matching path is found by the correlation calculation.Experiments with real trajectory datasets and road network data show that the proposed algorithm has higher matching accuracy and matching efficiency.
The main contributions of this study are as follows: (1) A new low-frequency trajectory map matching algorithm is proposed, which matches the segmentation of trajectory data according to the driving direction of location points and improves the matching accuracy; (2) The segmentation matching method, hidden Markov model and shortest path algorithm are combined to improve the matching accuracy and matching efficiency; (3) Experiments are performed using real trajectory datasets and Shanghai road network data, and the results show that the proposed vehicle direction segmentation-based map matching algorithm achieves higher accuracy and requires less running time.
In particular, the proposed method shortens the running time by almost 10−20%, and the matching accuracy is improved by almost 5%.Simultaneously, it has good adaptability under the parallel road topology.
The algorithm proposed in this paper improves the map matching ability of trajectory data to a certain extent, and improves the matching accuracy and matching efficiency of trajectory data with low sampling rate.The results of this study are helpful for vehicle navigation, tracking, and mapping of new roads, because to truly benefit from the emerging technology of data-driven infrastructure planning, it is important to combine telematics and map data to make it easier to extract and mine useful information from the GPS data to assist in designing traffic systems in large urban areas to prevent congestion.Traffic jams cause large economic losses, so anything that can assist in improving travelling time will likely be welcomed by logistics professionals and civil engineers.

Conclusions
In this study, we propose a new algorithm for low-frequency trajectory map matching that considers the vehicle's direction of travel and the hidden Markov model.The pro-

7 pFigure 1 .
Figure 1.Example of trajectory data and road network model.

Figure 1 .
Figure 1.Example of trajectory data and road network model.

Figure 4 .
Figure 4. Selection of candidate road segments.

Figure 5 .
Figure 5. Disadvantages of matching only by spatial probability.Definition 10. (Directional probability) [19]: Let A θ j h i be the angular difference between the travel direction angle of p i and the road segment direction angle.Define the directional probability as a measure on the possibility of the direction matching between the trajectory point p i and the candidate road segment e j , denoted as G 2 A θ j h i .The calculation methods of A θ j h i and G 2 A θ j h i are shown in Equations (4) and(5), respectively:

Algorithm 2 :
Trajectory point matching Input: Segmented trajectory set Γ, Road Network G, Radius threshold r, Candidate value k Output: Candidate road segment set Cr, Comprehensive probability set Gw 1: Initialize Cr= ∅, N= ∅, H= ∅; 2: for each p i ∈ Γ do 3: Construct a circle C i with p i as center and r as radius; 4: Cr←Cr∪{the candidate road segments around C i }; 5: for each c j ∈Cr do 6:

8 eFigure 8 .
Figure 8. Problems in the search for matching paths.

Figure 8 .
Figure 8. Problems in the search for matching paths.

Figure 9 .
Figure 9. Find the best matching path.

Figure 11 .
Figure 11.Matching results under different candidate values for k.

Figure 10 .
Figure 10.Matching results under different segmentation angles.

Figure 11 .
Figure 11.Matching results under different candidate values for k.

Figure 11 .
Figure 11.Matching results under different candidate values for k.

Figure 12 .
Figure 12.Comparison of the accuracy of the algorithms under different sampling frequencies.

Figure 13 .
Figure 13.Comparison of the running times of the algorithms at different sampling frequencies.

Figure 12 .
Figure 12.Comparison of the accuracy of the algorithms under different sampling frequencies.(a) Comparison of the R c indicators.(b) Comparison of the R m indicators.

Figure 13 .
Figure 13.Comparison of the running times of the algorithms at different sampling frequencies.

Figure 13 .
Figure 13.Comparison of the running times of the algorithms at different sampling frequencies.

Figure 14 .
Figure 14.Visual comparison results of the algorithms under a single road topology.Figure 14.Visual comparison results of the algorithms under a single road topology.(a) ST-Matching algorithm.(b) SD-Matching algorithm.(c) The proposed algorithm.

Figure 14 .
Figure 14.Visual comparison results of the algorithms under a single road topology.Figure 14.Visual comparison results of the algorithms under a single road topology.(a) ST-Matching algorithm.(b) SD-Matching algorithm.(c) The proposed algorithm.

Figure 14 .Figure 15 .
Figure 14.Visual comparison results of the algorithms under a single road topology.

Figure 15 .
Figure 15.Visual comparison results of the algorithms under parallel road topology.(a) ST-Matching algorithm.(b) SD-Matching algorithm.(c) The proposed algorithm.

Table 1 .
k cases of candidate paths.

Table 1 .
k cases of candidate paths.

Table 2 .
Trajectory data information at different sampling frequencies.

Table 3
shows the corresponding results for the trajectory map matching accuracy  ,  and matching time  at different sampling frequencies and different path candidate values.From the table, we can see that with the continuous increase of the sampling

Table 3 .
Comparison results under different sampling frequencies and path candidate values.