Skip to main content
Log in

GMOBench: Benchmarking generic moving objects

  • Published:
GeoInformatica Aims and scope Submit manuscript

Abstract

In real world scenarios, people’s movement include several environments rather than one, for example, road network, pavement areas and indoor. This imposes a new challenge for moving objects database that the complete trip needs to be managed by a database system. In the meantime, novel queries regarding different transportation modes should also be supported. Since existing methods are limited to trips in a single environment and do not support queries on moving objects with different transportation modes, new technologies are essentially needed in a database system. In this paper, we introduce a benchmark called GMOBench that aims to evaluate the performance of a database system managing moving objects in different environments. GMOBench is settled in a realistic scenario and is comprised of three components: (1) a data generator with the capability of creating a scalable set of trips representing the complete movement of humans (both indoor and outdoor); (2) a set of carefully designed and benchmark queries; (3) Mode-RTree, an index structure for managing generic moving objects. The generator defines some parameters so that users can control the characteristics of results. We create the benchmark data in such a way that the dataset can mirror important characteristics and real world distributions of human mobility. Efficient access methods and optimization techniques are developed for query processing. In particular, we propose an index structure called Mode-RTree to manage moving objects in different environments. By employing the proposed index, the cost of benchmark queries is greatly reduced. GMOBench is implemented in a real database system to have a practical result. We perform an extensive experimental study on comprehensive datasets to evaluate the performance. The results show that by using the Mode-RTree we achieve significant performance improvement over the baseline method, demonstrating the effectiveness and efficiency of our approaches.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. Given a set of values, we produce a set of bin numbers and each value corresponds to a bin. This procedure is called binning in bitmap indexes [51].

  2. In the implementation, a movement unit is developed to be a relational tuple containing four attributes (traj_id, box, m, ref_id). In order to efficiently access the data in the future, we combine each movement tuple with its corresponding subtrip in one relational tuple. The subtrip is represented by a moving point. Movement units with the same mu.m, time interval id, cellx and celly are sorted by the moving point.

References

  1. Bauer V, Gamper J, Loperfido R, Profanter S, Putzer S, Timko I (2008) Computing isochrones in multi-modal, schedule-based transport networks. In: ACM GIS, Demo

  2. Berchtold S, Böhm C, Kriegel HP (1998) Improving the query performance of high-dimensional index structures by bulk load operations. In: EDBT, pp 216–230

  3. Bercken J, Seeger B, Widmayer P (1997) A generic approach to bulk loading multidimensional index structures. In: VLDB, pages 406–415

  4. Bitton D, DeWitt DJ, Turbyfill C (1983) Benchmarking database systems a systematic approach. In: VLDB, pp 8–19

  5. Booth J, Sistla P, Wolfson O, Cruz IF (2009) A data model for trip planning in multimodal transportation systems. In: EDBT, pp 994–1005

  6. Brinkhoff T (2000) Generating network-based moving objects. In: SSDBM, pp 253–255

  7. Brinkhoff T (2002) A framework for generating network-based moving objects. GeoInformatica 6 (2): 153–180

    Article  Google Scholar 

  8. Cai Y, Ng R (2004) Indexing spatio-temporal trajectories with chebyshev polynomials. In: SIGMOD, pp 599–610

  9. Carey MJ, DeWitt DJ, Naughton JF (1993) The oo7 benchmark. In: SIGMOD conference, pp 12–21

  10. Chakka VP, Everspaugh A, Patel JM (2003) Indexing large trajectory data sets with seti. In: CIDR

  11. Chen S, Jensen CS, Lin D (2008) A benchmark for evaluating moving object indexes. PVLDB 1 (2): 1574–1585

    Google Scholar 

  12. de Almeida VT, Güting RH (2005) Indexing the trajectories of moving objects in networks. GeoInformatica 9 (1): 33–60

    Article  Google Scholar 

  13. Duan S, Kementsietsidis A, Srinivas K, Udrea O (2011) Apples and oranges: a comparison of rdf benchmarks and real rdf datasets. In: SIGMOD Conference, pp 145–156

  14. Düntgen C, Behr T, Güting RH (2009) Berlinmod: a benchmark for moving object databases. VLDB J 18 (6): 1335–1368

    Article  Google Scholar 

  15. Frentzos E (2003) Indexing objects moving on fixed networks. In: SSTD, pp 289–305

  16. Frentzos E, Gratsias K, Pelekis N, Theodoridis Y (2007) Algorithms for nearest neighbor search on moving object trajectories. GeoInformatica 11 (2): 159–193

    Article  Google Scholar 

  17. Giannotti F, Nanni M, Pedreschi D, Pinelli F, Renso C, Rinzivillo S, Trasarti R (2011) Unveiling the complexity of human mobility by querying and mining massive trajectory data. VLDB J 20 (5): 695– 719

    Article  Google Scholar 

  18. Giannotti F, Nanni M, Pedreschi D, Pinelli F, Renso C, Rinzivillo S, Trasarti R (2011) Unveiling the complexity of human mobility by querying and mining massive trajectory data. VLDB J Spec Issue

  19. Gidófalvi G, Pedersen TB (2006) St-acts: a spatio-temporal activity simulator. In: GIS, pp 155–162

  20. González MC, Hidalgo CAR, Barabási A (2008) Understanding individual human mobility patterns. Nature 453: 779–282

    Article  Google Scholar 

  21. Gray J (ed.) (1993) The benchmark handbook for database and transaction systems (2nd Edition). Morgan Kaufmann

  22. Güting RH, Almedia V, Ansorge D, Behr T, Ding Z, Höse T, Hoffmann F, Spiekermann M (2005) Secondo:an extensible dbms platform for research prototyping and teaching. In: ICDE, Demo Paper, pp 1115–1116

  23. Hu H, Lee DL (2005) Gamma: A framework for moving object simulation. In: SSTD, pp 37–54

  24. Jensen CS, Lu H, Yang B (2009) Indexing the trajectories of moving objects in symbolic indoor space. In: SSTD, pp 208–227

  25. Jensen CS, Tiesyte D, Tradisauskas N (2006) The cost benchmark-comparison and evaluation of spatio-temporal indexes. In: DASFAA, pp 125–140

  26. Dinh L, Aref WG, Mokbel MF (2010) Spatio-temporal access methods: Part 2 (2003–2010). IEEE Data Eng Bull 33 (2): 46–55

    Google Scholar 

  27. Lu H, Cao X, Jensen CS (2012) A foundation for efficient indoor distance-aware query processing. In: ICDE, pp 438–449

  28. Mascetti S, Freni D, Bettini C, Wang XS, Jajodia S (2008) On the impact of user movement simulations in the evaluation of lbs privacy- preserving techniques. In: PiLBA

  29. Mouratidis K, Hadjieleftheriou M, Papadias D (2005) Conceptual partitioning: an efficient method for continuous nearest neighbor monitoring. In: SIGMOD, pp 634–645

  30. Myllymaki J, Kaufman JH (2003) Dynamark: a benchmark for dynamic spatial indexing. In: Mobile data management, pp 92–105

  31. Nguyen AD, Sénac P, Ramiro V, Diaz M (2011) Steps-an approach for human mobility modeling. Networking 1: 254–265

    Google Scholar 

  32. Pelanis M, Saltenis S, Jensen CS (2006) Indexing the past, present, and anticipated future positions of moving objects. ACM TODS 31 (1): 255–298

    Article  Google Scholar 

  33. Pfoser D, Jensen CS (2003) Indexing of network constrained moving objects. In: GIS, pp 25–32

  34. Pfoser D, Jensen CS (2000) Novel approaches to the indexing of moving object trajectories. In: VLDB

  35. Pfoser D, Theodoridis Y (2003) Generating semantics-based trajectories of moving objects. Comput Environ Urban Syst 27 (3): 243–263

    Article  Google Scholar 

  36. Popa IS, Zeitouni K, Oria V, Barth D, Vial S (2011) Indexing in-network trajectory flows. VLDB J 20 (5): 643–669

    Article  Google Scholar 

  37. Ray S, Simion B, Brown AD (2011) Jackpine: a benchmark to evaluate spatial database performance. In: ICDE, pp 1139–1150

  38. Reddy S, Mun M, Burke J, Estrin D, Hansen MH, Srivastava MB (2010) Using mobile phones to determine transportation modes. TOSN 6 (2)

  39. Saglio JM, Moreira J (2001) Oporto: a realistic scenario generator for moving objects. GeoInformatica 5 (1): 71–93

    Article  Google Scholar 

  40. Saltenis S, Jensen CS, Leutenegger ST, Lopez MA (2000) Indexing the positions of continuously moving objects. In: SIGMOD Conference, pp 331–342

  41. Schmidt M, Hornung T, Lausen G, Pinkel C (2009) Sp2bench: a sparql performance benchmark. In: ICDE, pp 222–233

  42. Stenneth L, Wolfson O, Yu P, Xu B (2011) Transportation mode detection using mobile devices and gis information. In: ACM SIGSPATIAL, pp 54–63

  43. Stonebraker M, Frew J, Gardels K, Meredith J (1993) The sequoia 2000 benchmark. In: SIGMOD Conference, pp 2–11

  44. Tao Y, Papadias D (2001) Mv3r-tree: a spatio-temporal access method for timestamp and interval queries. In: VLDB, pp 431–440

  45. Tao Y, Papadias D, Shen Q (2002) Continuous nearest neighbor search. In: VLDB, pp 287–298

  46. Theodoridis Y (2003) Ten benchmark database queries for location-based services. Comput J 46 (6): 713–725

    Article  Google Scholar 

  47. Theodoridis Y, Silva JRO, Nascimento MA (1999) On the generation of spatiotemporal datasets. In: SSD, pp 147–164

  48. Tözün P, Pandis I, Kaynak C, Jevdjic D, Ailamaki A (2013) From a to e: analyzing tpc’s oltp benchmarks: the obsolete, the ubiquitous, the unexplored. In: EDBT, pp 17–28

  49. Tzouramanis T, Vassilakopoulos M, Manolopoulos Y (2002) On the generation of time-evolving regional data. 6 3

  50. Werstein PF (1998) A performance benchmark for spatiotemporal databases. In: 10th annual colloquium of the spatial information research centre, pp 365–373

  51. Wu K, Shoshani A, Stockinger K (2010) Analyses of multi-level and multi-component compressed bitmap indexes. ACM Trans Database Syst 35 (1)

  52. Xie X, Lu H, Pedersen TB (2013) Efficient distance-aware query evaluation on indoor moving objects. In: ICDE, pp 434–445

  53. Xu J, Güting RH (2011) Infrastructures for research on multimodal moving objects. In: MDM, Demo Paper, pp 329–332

  54. Xu J, Güting RH (2012) MWGen: a mini world generator. In: MDM, pp 258–267

  55. Xu J, Güting RH (2013) A generic data model for moving objects. GeoInformatica 17 (1): 125–172

    Article  Google Scholar 

  56. Yang B, Lu H, Jensen CS (2010) Probabilistic threshold k nearest neighbor queries over moving objects in symbolic indoor space. In: EDBT, pp 335–346

  57. Zheng Y, Chen Y, Xie X, Ma WY (2010) Understanding transportation mode based on gps data for web application. ACM Trans Web 4 (1): 1–36

    Article  Google Scholar 

  58. Zheng Y, Liu L, Wang L, Xie X (2008) Learning transportation mode from raw gps data for geographic applications on the web. In: WWW, pp 247–256

  59. Zheng Y, Zhou X (2011) Computing with spatial trajectories. Springer

  60. Zhou P, Zhang D, Salzberg B, Cooperman G, Kollios G (2005) Close pair queries in moving object databases. In: GIS, pp 2–11

Download references

Acknowledgment

This work is supported in part by NSFC under grants 61300052, the Scientific Research Foundation for the Returned Overseas Chinese Scholars (State Education Ministry), and Natural Science Foundation of Jiangsu Province of China under grants BK20130810.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jianqiu Xu.

Additional information

A short version appears in ACM SIGSPATIAL, Nov.6-9, Redondo Beach, California, 2012

Part of the work is done when the author is a Ph.D student in FernUniversität in Hagen, Germany

Appendices

Appendix A - Formulate Benchmark queries

To formulate queries, we provide a relational interface to exchange information. Several relations are provided to manage infrastructure data and moving objects, summarized in Table 4. \(\underline {route}\) is a data type that we propose to represent bus (metro) routes. A bus (metro) route is represented by a sequence of segments each of which defines the locations of start and end bus stops as well as the connection described by a line. For the indoor environment, we design a data type called \(\underline {groom}\) used in Rel_Room to represent all rooms of a building, e.g., office rooms, corridors, staircases. Since in some cases one room can have several floors such as an amphitheater and a chamber, a \(\underline {groom}\) object consists of a set of elements each of which defines the 2D area of a floor and the height above the ground level.

Table 4 Data relation schemas

To access an infrastructure, we assign a symbol to each relation (summarized in Fig.12a) and obtain the data from the operator get_infra described in Fig. 12b. Figure 13 lists the operators that are used to access the data and formulate the queries. To represent the trajectories of moving objects (i.e., the projection into space), we propose a data type \(\underline {genrange}\) which defines a set of elements. Each element records the path according to a referenced object as well as the transportation mode.

Fig. 12
figure 12

Access infrastructures

Fig. 13
figure 13

Operators used in queries

We use qt to denote the query time parameter. For the queries (Q4, Q5, Q17, Q18, Q20) on both bus and metro, it is sufficient to show the query expression for a bus network as the procedure is similar for metros.

  • Q1. Find out all metros passing through the city center.

    Let Reg_C be a region denoting the city center area.

    • SELECT mr.Mr_id

    • FROM get_infra (SpaceGendon, METROROUTE) as mr

    • WHERE mr.GeoData intersects Reg_C

  • Q2. Given a building named by X, find all bus stops within 300 meters.

    • SELECT bs FROM get_infra (SpaceGendon, BUILDING) as b,

    • get_infra (SpaceGendon, BUSSTOP) as bs WHERE b.Name = X and distance (b.GeoData, bs.GeoData) < 300

  • Q3. Which streets does bus No. 12 pass by?

    • SELECT r.Name

    • FROM get_infra (SpaceGendon, BUSROUTE) as br

    •     get_infra (SpaceGendon, ROAD) as r WHERE br.Br_id = 12 and br.GeoData intersects r.GeoData

  • Q4. Where can I switch between bus route No. 16 and No. 38?

    • SELECT bs1, bs2

    • FROM get_infra (SpaceGendon, BUSSTOP) as bs1,

    •     get_infra (SpaceGendon, BUSSTOP) as bs2, WHERE bs1.Br_id = 16 AND bs2.Br_id = 38 AND bs1.GeoData = bs2.GeoData

  • Q5. At 8am on Monday, who sits in the bus No. 32?

    • SELECT mo.Name

    • FROM get_infra (SpaceGendon, BUS) as bus, MOGendon as mo

    • WHERE ref_id(val (mo.Traj atinstant qt)) = bus.Bus_id and bus.Br_id = 32

  • Q6. What is the percentage of people traveling by public transportation vehicles?

    • Let no_mo = SELECT COUNT(⋆) FROM MOGendon

    • Let no_submo = SELECT COUNT(⋆)

    •         FROM MOGendon as mo

    •         WHERE mo.Traj contains BUS or

    •            mo.Traj contains METRO or

    •            mo.Traj contains TAXI

    • SELECT DIV(no_submo, no_mo)

  • Q7. Where and how long does Bobby walk during his trip?

    • SELECT mo.Traj at Walk

    • FROM MOGendon as mo

    • WHERE mo.Name = "Bobby"

    • SELECT duration(deftime (mo.Traj at Walk))

    • FROM MOGendon as mo

    • WHERE mo.Name = "Bobby"

  • Q8. Find out all people passing room 312 at the office building between 9:00am and 11:00am on Monday.

    • SELECT mo.Name

    • FROM MOGendon as mo,

    •      get_infra (SpaceGendon, BUILDING) as b,

    •      get_infra (SpaceGendon, ROOM) as rm

    • WHERE b.Name = "Office-X" and b.B_id = rm.B_id and

    •      and rm.Room_id = 312 and

    •      ((mo.Traj at Indoor) atperiods qt) contains rm.Room_id

  • Q9. Who arrived by taxi at the university on Friday?

    To arrive by taxi at the university means that the final location of the passenger within the taxi belongs to some driveway area close to the university. Such a part of the road network is also managed in the database as an object UniDriveway of type line.

    • SELECT mo.Name

    • FROM MOGendon AS mo

    • WHERE val(final ((mo.Traj atperiods qt) at Taxi)))

    •      inside UniDriveway

  • Q10. Who entered bus No. 3 at bus stop University on Tuesday afternoon?

    • SELECT mo.Name

    • FROM MOGendon AS mo,

    •      get_infra (SpaceGendon, BUSSTOP) AS bs,

    •      get_infra (SpaceGendon, BUS) AS bus

    • WHERE bs.Br_id = 3 AND bs.Name = "University" AND bus.Br_id = 3 AND

    •       bs.GeoData = freespace(val(initial ((mo.Traj atperiods qt) at

    •                theloc (bus.Bus_id, undef, undef)))))

  • Q11. Find out all people walking through zone A and zone B on Saturday between 10am and 3pm.

    • SELECT mo.Name

    • FROM MOGendon AS mo,

    •      get_infra (SpaceGendon, RBO) AS R1,

    •      get_infra (SpaceGendon, RBO) AS R2

    • WHERE R1.Name = "Zone-A" AND R2.Name = "Zone-B" AND

    •        ((mo.Traj atperiods qt) at Walk) passes R1.Reg AND

    •        ((mo.Traj atperiods qt) at Walk) passes R2.Reg

  • Q12. Did anyone who was on floor H-5 of the office building between 2pm and 5pm take a bus to the stop “train station” on Friday?

    To be on floor H-5 means to be in any of the rooms of floor H-5. We create a table associating rooms with their floors:

    Uni_Rel(B_id: int, Floor: string, Room_id: int)

    • SELECT mo.Name

    • FROM MOGendon AS mo,

    •       Uni_Rel AS u,

    •       get_infra(SpaceGendon, ROOM) AS r,

    •       get_infra(SpaceGendon, BUSSTOP) AS bs1,

    •       get_infra(SpaceGendon, BUSSTOP) AS bs2

    • WHERE u.Floor = "H-2" AND u.B_id = r.B_id AND u.Room_id = r.Room_id AND

    •       (mo.Traj atperiods qt) passes r.GeoData AND

    •       bs1.Name = "University" AND

    •       bs2.Name = "Main station" AND

    •       freespace(val(initial ((mo.Traj atperiods qt) at Bus))) =

    •       bs1.GeoData AND

    • freespace(val(final ((mo.Traj atperiods qt) at Bus))) =

    • bs2.GeoData

  • Q13. Did bus No. 35 pass any bicycle traveler by on Monday?

    We define pass to mean that there exists a time instant that the distance between the two moving objects is less than 3 meters.

    • SELECT mo.Name

    • FROM get_infra (SpaceGendon, BUS) AS bus,

    •       MOGendon AS mo

    • WHERE bus.Br_id = 35 AND

    •       sometimes(distance(freespace (bus.Traj atperiods qt),

    •                      freespace ((mo.Traj atperiods qt) at Bicycle)) < 3.0)

  • Q14. Did someone spend more than 15 minutes on waiting for the bus at the bus stop Cinema on Saturday?

    • SELECT mo.Name

    • FROM MOGendon AS mo,

    •       get_infra (SpaceGendon, BUSSTOP) AS bs

    • WHERE bs.Name = "Cinema" AND

    •       duration(deftime ((mo.Traj atperiods qt) at bs.GeoData)) > 15

  • Q15. How many people visit the cinema on Saturday?

    • SELECT COUNT(⋆)

    • FROM MOGendon AS mo,

    •       get_infra (SpaceGendon, BUILDING) AS b

    • WHERE b.Name = "Cinema" AND

    •       (mo.Traj atperiods qt) contains b.B_id

  • Q16. Find out all people staying at room 154 in the university for more than one hour on Thursday.

    • SELECT mo.Name

    • FROM MOGendon AS mo,

    •       get_infra (SpaceGendon, BUILDING) AS b,

    •       get_infra (SpaceGendon, ROOM) AS r

    • WHERE b.Name = "University" AND b.B_id = r.B_id AND

    •       r.Room_id = 154 AND

    •       duration(deftime (mo.Traj atperiods qt) at

    •            theloc (r.Room_id, undef, undef))) > 60

  • Q17. Did someone spend more than one hour traveling by bus?

    • SELECT mo.Name

    • FROM MOGendon AS mo

    • WHERE duration(deftime (mo.Traj at Bus)) > 60

  • Q18. Find out all people changing from bus No. A to bus No. B at stop X.

    • SELECT mo.Name

    • FROM MOGendon AS mo

    •       get_infra (SpaceGendon, BUSSTOP) as bs,

    •       get_infra (SpaceGendon, BUS) as bus1,

    •       get_infra (SpaceGendon, BUS) as bus2

    • WHERE bus1.Br_id = A AND bus2.Br_id = B AND

    •       bs.Name = X AND

    •       freespace(val(final (mo.Traj at theloc(bus1.Bus_id)))) =

    • freespace(val(initial (mo.Traj at theloc(bus2.Bus_id)))) AND

    • freespace(val(final (mo.Traj at theloc(bus1.Bus_id)))) =

    •       bs.GeoData

  • Q19. Find out all trips starting from zone A and ending in zone B by public transportation vehicles with the length of the walking path being less than 300 meters.

    • SELECT mo.Name

    • FROM MOGendon AS mo

    •       get_infra (SpaceGendon, RBO) AS R1,

    •       get_infra (SpaceGendon, RBO) AS R2

    • WHERE R1.Name = "ZoneA" AND R2.Name = "ZoneB" AND

    •       val(initial (mo.Traj)) inside R1.GeoData AND

    •       val(final (mo.Traj)) inside R2.GeoData AND

    •       ((mo.Traj contains Bus) OR (mo.Traj contains Metro) OR

    •       (mo.Traj contains Taxi)) AND

    •       length(trajectory (mo.Traj at Walk)) < 300

  • Q20. Find the top k bus (metro) routes with high passenger flow for all workdays.

    • SELECT TOP k ⋆

    • FROM

    •       SELECT bus.Br_id, COUNT(⋆) AS NO

    •       FROM MOGendon AS mo

    •            get_infra (SpaceGendon, BUS) AS bus

    •       WHERE mo.Traj contains Bus AND

    •            ((mo.Traj atperiods qt) at Bus)) contains bus.Bus_id

    •       GROUP BY bus.Br_ide

    •       ORDER BY NO DESC

  • Q21. Find the top k road segments with high traffic during the rush hour for all workdays.

    To answer such a query, we create a relation storing all road segments with the schema

    Rel_RoadSeg: (S_id: int, GeoData: line, R_id: int)where S_id is the unique segment id, GeoData stores the geometrical property and R_id indicates the id for the road that the segment belongs to. For each road, we decompose it into a set of pieces at the junction positions and each piece is stored as a tuple in Rel_RoadSeg.

    First, we get the traffic of each road segment by aggregrating the number of buses passing by.

    • LET Rel_BRCOUNT =

    •       SELECT br.Br_id, br.GeoData, COUNT(⋆) AS NO

    •       FROM get_infra (SpaceGendon, BUSROUTE) as br,

    •            get_infra (SpaceGendon, BUS) as bus

    •       WHERE deftime (bus.Traj) intersects qt AND bus.Br_id = br.Br_id

    •       GROUP BY br.Br_id

    Each tuple in Rel_BRCOUNT indicates the number of trips for each bus route.

    • LET Rel_RES1 =

    •       SELECT s.S_id, SUM(br.NO) AS FLOW

    •       FROM Rel_BRCOUNT as br,

    •            Rel_RoadSeg as s

    •       WHERE br.GeoData intersects s.GeoData

    •       GROUP BY s.S_id

    We perform the join on bus routes and road segments to get the segments that each bus route maps to. Then, we group the tuple by segment id and call the aggregation function to get the total number of buses passing a segment from different routes.

    Second, we get the traffic from moving objects that contain one of the modes {Car, Taxi, Bike }. At first, we collect the paths of these trips.

    • LET Rel_Traj_C =

    •       SELECT trajectory (mo.Traj at CAR) AS Path

    •       FROM MOGendon AS mo

    •       WHERE deftime (mo.Traj) intersects qt

    • LET Rel_Traj_T =

    •       SELECT trajectory (mo.Traj at TAXI) AS Path

    •       FROM MOGendon AS mo

    •       WHERE deftime (mo.Traj) intersects qt

    • LET Rel_Traj_B =

    •       SELECT trajectory (mo.Traj at BIKE) AS Path

    •       FROM MOGendon AS mo

    •       WHERE deftime (mo.Traj) intersects qt

    • LET Rel_Traj = Rel_Traj_C union Rel_Traj_T union Rel_Traj_B

    Then, we do the join on the paths and road segments to get the traffic value.

    • LET Rel_RES2 =

    •       SELECT s.S_id, COUNT(⋆) AS FLOW

    •       FROM Rel_Traj AS p,

    •            Rel_RoadSeg AS s

    •       WHERE p.Path intersects s.GeoData

    •       GROUP BY s.S_id

    Third, we merge the two traffic relations Res_RES1 and Res_RES2 to get the final result.

    • SELECT TOP k ⋆

    • FROM

    •      SELECT r1.S_id, r1.FLOW + r2.FLOW as C

    •      FROM Rel_RES1 as r1,

    •          Rel_RES2 as r2

    •      WHERE r1.S_id = r2.S_id

    •      ORDER BY C DESC

Appendix B

1.1 Unique IFOB id and reference id for an indoor location

In order to have a unique id for each IFOB, we define a set of disjoint ranges each of which is used for one infrastructure, e.g., [1, 5000] for I rn , [6000, 7000] for I bn . Given a generic location \(gl \in D_{\underline {genloc}}\), the meaning of gl.oid is clear if the IFOB belongs to an outdoor infrastructure. However, for the indoor environment different buildings can have the same room id (e.g., ROOM NO 12, ROOM NO 35), only using the building id cannot uniquely identify an indoor location.

To solve the problem, gl.oid is set by combining a building id and a room id for an indoor location. We introduce how to achieve the goal in the following. For the sake of clear presentation, we use two strings B_Id and R_Id to denote a building id and a room id, respectively. Suppose that gl is located in the room R_Id = “123” of a building B_Id = “167654”, then gl.oid is assigned by the concatenation of B_Id and R_Id, that is “167654123”. Let len(B_Id) return the length of a string for B_Id. The range for all building ids is carefully chosen in order to fulfill the condition len(B_Id min )=len(B_Id max ), i.e., the number of digits is the same for each id. Otherwise, an ambiguous case can occur.

Afterwards, len(B_Id) is a fixed value (new building construction is not considered) and we can extract B_Id and R_Id from an indoor location. Using the example before, we can get B_Id = “167654” and R_Id = “123“ from gl.oid = “167654123”.

Appendix C - experimental statistics

Fig. 14
figure 14

Scaling datasets by employing the Mode-RTree

Fig. 15
figure 15

Scaling datasets by baseline method

Fig. 16
figure 16

CPU time (sec) for B2M

Fig. 17
figure 17

I/O accesses (k) for B2M

Fig. 18
figure 18

CPU time (sec) for H1M

Fig. 19
figure 19

I/O accesses (k) for H1M

Fig. 20
figure 20

Query parameters: B2M

Fig. 21
figure 21

Query parameters: H1M

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Xu, J., Güting, R.H. & Qin, X. GMOBench: Benchmarking generic moving objects. Geoinformatica 19, 227–276 (2015). https://doi.org/10.1007/s10707-014-0211-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10707-014-0211-9

Keywords

Navigation