WO2019227338A1 - Systems and methods for traversing spatial data - Google Patents

Systems and methods for traversing spatial data Download PDF

Info

Publication number
WO2019227338A1
WO2019227338A1 PCT/CN2018/089012 CN2018089012W WO2019227338A1 WO 2019227338 A1 WO2019227338 A1 WO 2019227338A1 CN 2018089012 W CN2018089012 W CN 2018089012W WO 2019227338 A1 WO2019227338 A1 WO 2019227338A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
index value
buffer
reference index
queue
Prior art date
Application number
PCT/CN2018/089012
Other languages
French (fr)
Inventor
Yi CHAI
Xiang WEN
Minghao GUO
Original Assignee
Beijing Didi Infinity Technology And Development Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology And Development Co., Ltd. filed Critical Beijing Didi Infinity Technology And Development Co., Ltd.
Priority to CN201880001006.7A priority Critical patent/CN110832811B/en
Priority to PCT/CN2018/089012 priority patent/WO2019227338A1/en
Publication of WO2019227338A1 publication Critical patent/WO2019227338A1/en

Links

Images

Classifications

    • G06Q50/40
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Definitions

  • the present disclosure generally relates to systems and methods for data processing, and in particular, to systems and methods for traversing spatial data.
  • a system may include a storage device storing a set of instructions and one or more processors in communication with the storage device.
  • one or more processors may be configured to cause the system to obtain, via a network, a request for data relating to the geographic region from a user terminal and determine a plurality of data groups for storing the data relating to the plurality of geographic location points.
  • the geographic region may include a plurality of geographic location points.
  • the plurality of data groups may be associated with a plurality of spatial index values.
  • the one or more processors may also cause the system to generate, based on the plurality of data groups, a priority queue including a first buffer scope data and traverse the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values.
  • the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region.
  • the one or more processors may further cause the system to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmit, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  • the one or more processors may also cause the system to determine a plurality of Hilbert distances relating to the plurality of geographic location points and store the data being associated with geographic location points having a same Hilbert distance into the same data group. In some embodiments, the one or more processors may further cause the system to designate the plurality of Hilbert distances as the plurality of spatial index values.
  • the one or more processors may also cause the system to determine, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points.
  • the data relating to the plurality of geographic location points may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, and/or information relating to a road
  • the first buffer scope data may include a first scope data and a first buffer data.
  • the first scope data may correspond to geographic location points of the first part of the geographic region.
  • the first buffer data may correspond to geographic location points surrounding the first part of the geographic region.
  • the first reference index value may be a largest value among the plurality of first queue index values.
  • the one or more processors may also cause the system to arrange, based on the plurality of spatial index values, the plurality of data groups in ascending order for generating ordered data groups and traverse the ordered data groups.
  • the first buffer scope data may include a plurality of caches. In some embodiments, each cache may be associated with a first queue index value.
  • the one or more processors may also cause the system to traverse the ordered data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values, and determine the data of a traversed data group. In some embodiments, the one or more processors may further cause the system to store the data of the traversed data group into a cache, a first queue index value of the cache being equal to the spatial index value associated with the traversed data group.
  • the one or more processors may also cause the system to obtain a second buffer scope data from the priority queue and designate a largest second queue index value among the plurality of second queue index values as the second reference index value.
  • the second buffer scope data may be associated with a plurality of second queue index values, a second reference index value, and a second part of the geographic region.
  • the one or more processors may also cause the system to determine whether the second reference index value is smaller than the first reference index value and designate the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value.
  • the one or more processors may further cause the system to designate the second reference index value as the first index value in response to the determination that the second reference index value is smaller than the first reference index value and determine whether the spatial index value of the currently traversed data group is equal to or larger than the designated first reference index value.
  • the one or more processors may also cause the system to determine whether each cache in the first buffer scope data stores data of a corresponding data group and output the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group. In some embodiments, the one or more processors may further cause the system to update the priority queue by removing the first buffer scope data from the priority queue and obtain a new first buffer scope data and a new first reference index value based on the updated priority queue.
  • a computer-implemented method may include one or more of the following operations performed by one or more processors.
  • the method may include obtaining, via a network, a request for data relating to a geographic region from a user terminal and determining a plurality of data groups for storing the data relating to the plurality of geographic location points.
  • the geographic region may include a plurality of geographic location points.
  • the plurality of data groups may be associated with a plurality of spatial index values.
  • the method may also include generating, based on the plurality of data groups, a priority queue including a first buffer scope data and traversing the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values.
  • the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region.
  • the method may further include determining whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmitting, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  • a non-transitory computer-readable medium may store instructions. When executed by one or more processors of a system, the instructions may cause the system to obtain, via a network, a request for data relating to the geographic region from a user terminal and determine a plurality of data groups for storing the data relating to the plurality of geographic location points.
  • the geographic region may include a plurality of geographic location points.
  • the plurality of data groups may be associated with a plurality of spatial index values.
  • the instructions may also cause the system to generate, based on the plurality of data groups, a priority queue including a first buffer scope data and traverse the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values.
  • the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region.
  • the instructions may further cause the system to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmit, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  • a system may include an acquisition module, a determination module, a generation module, a traversing module, a comparison module, and a transmission module.
  • the acquisition module may be configured to obtain, via a network, a request for data relating to the geographic region from a user terminal.
  • the geographic region may include a plurality of geographic location points.
  • the determination module may be configured to determine a plurality of data groups for storing the data relating to the plurality of geographic location points.
  • the plurality of data groups may be associated with a plurality of spatial index values.
  • the generation module may be configured to generate, based on the plurality of data groups, a priority queue including a first buffer scope data.
  • the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region.
  • the traversing module may be configured to traverse the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values.
  • the comparison module may be configured to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value.
  • the transmission module may be configured to transmit, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  • FIG. 1 is a block diagram illustrating an exemplary online to offline service system according to some embodiments
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device according to some embodiments
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure
  • FIG. 5 is a flowchart illustrating an exemplary process for transmitting, to a user terminal, the data relating to the first part of a geographic region according to some embodiments of the present disclosure
  • FIG. 6 is a flowchart illustrating an exemplary process for storing the data of a traversed data group into a cache according to some embodiments of the present disclosure
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a designated first buffer scope data and a designated first reference index value according to some embodiments of the present disclosure
  • FIG. 8 is a flowchart illustrating an exemplary process for traversing a plurality of data groups according to some embodiments of the present disclosure.
  • FIG. 9 is a schematic diagram illustrating a priority queue according to some embodiments of the present disclosure.
  • the flowcharts used in the present disclosure illustrate steps that systems implement according to some embodiments described in the present disclosure. It is to be expressly understood, the steps of the flowchart may be implemented not in order. Conversely, the steps may be implemented in inverted order, or simultaneously. Moreover, one or more other steps may be added to the flowcharts. One or more steps may be removed from the flowcharts.
  • the system and method in the present disclosure are described primarily with regard to distributing a request for a transportation service, it should also be understood that the present disclosure is not intended to be limiting.
  • the system or method of the present disclosure may be applied to any other kind of online to offline service.
  • the system or method of the present disclosure may be applied to transportation systems of different environments including land, ocean, aerospace, or the like, or any combination thereof.
  • the vehicle of the transportation systems may include a taxi, a private car, a hitch, a bus, a train, a bullet train, a high-speed rail, a subway, a vessel, an aircraft, a spaceship, a hot-air balloon, a driverless vehicle, or the like, or any combination thereof.
  • the transportation system may also include any transportation system for management and/or distribution, for example, a system for transmitting and/or receiving an express.
  • the application of the system or method of the present disclosure may be implemented on a user device and include a web page, a plug-in of a browser, a client terminal, a custom system, an internal analysis system, an artificial intelligence robot, or the like, or any combination thereof.
  • passenger " “requestor, “ “service requestor, “ and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity, or a tool that may request or order a service.
  • driver “ “provider, “ and “service provider” in the present disclosure are used interchangeably to refer to an individual, an entity, or a tool that may provide a service or facilitate the providing of the service.
  • service request “ “request for a service, “ “requests, “ and “order” in the present disclosure are used interchangeably to refer to a request that may be initiated by a passenger, a service requestor, a customer, a driver, a provider, a service provider, or the like, or any combination thereof.
  • the service request may be accepted by any one of a passenger, a service requestor, a customer, a driver, a provider, or a service provider.
  • the service request may be chargeable or free.
  • service provider terminal and “driver terminal” in the present disclosure are used interchangeably to refer to a mobile terminal that is used by a service provider to provide a service or facilitate the providing of the service.
  • service requestor terminal and “passenger terminal” in the present disclosure are used interchangeably to refer to a mobile terminal that is used by a service requestor to request or order a service.
  • the positioning technology used in the present disclosure may be based on a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof.
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • COMPASS compass navigation system
  • Galileo positioning system Galileo positioning system
  • QZSS quasi-zenith satellite system
  • WiFi wireless fidelity positioning technology
  • An aspect of the present disclosure relates to online systems and methods for traversing spatial data.
  • a plurality of spatial index values (Hilbert distances) relating to a geographic region may be determined.
  • a plurality of data groups for storing data relating to the geographic region may be determined. Each data group may be associated with a spatial index value.
  • a priority queue may be determined based on the plurality of spatial index values and the geographic region. The priority queue may include a first buffer scope data being associated with a first reference index value and a first part of the geographic region.
  • the plurality of data groups may be traversed, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values. If it is determined that the spatial index value of the currently traversed cache is equal to or larger than the first reference index value, the first buffer scope data may be transmitted to a user terminal.
  • the present disclosure employs Hilbert distances to determine a spatial index relating to the geographic region.
  • a processing engine traverses the data groups based on the spatial index.
  • FIG. 1 is a block diagram illustrating an exemplary online to offline service system 100 according to some embodiments.
  • the online to offline service system 100 may be an online transportation service platform for transportation services.
  • the online to offline service system 100 may include a server 110, a network 120, a service requestor terminal 130, a service provider terminal 140, a vehicle 150, a storage device 160, and a navigation system 170.
  • the online to offline service system 100 may provide a plurality of services.
  • Exemplary service may include a taxi hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, and a shuttle service.
  • the online to offline service may be any on-line service, such as booking a meal, shopping, or the like, or any combination thereof.
  • the server 110 may be a single server or a server group.
  • the server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) .
  • the server 110 may be local or remote.
  • the server 110 may access information and/or data stored in the service requestor terminal 130, the service provider terminal 140, and/or the storage device 160 via the network 120.
  • the server 110 may be directly connected to the service requestor terminal 130, the service provider terminal 140, and/or the storage device 160 to access stored information and/or data.
  • the server 110 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the server 110 may be implemented on a computing device 1000 having one or more components illustrated in FIG. 10 in the present disclosure.
  • the server 110 may include a processing engine 112.
  • the processing engine 112 may process information and/or data related to the service request to perform one or more functions described in the present disclosure. For example, the processing engine 112 may traverse spatial data.
  • the processing engine 112 may include one or more processing engines (e.g., single- core processing engine (s) or multi-core processor (s) ) .
  • the processing engine 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • ASIP application-specific instruction-set processor
  • GPU graphics processing unit
  • PPU physics processing unit
  • DSP digital signal processor
  • FPGA field programmable gate array
  • PLD programmable logic device
  • controller a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • RISC reduced
  • the network 120 may facilitate exchange of information and/or data.
  • one or more components in the online to offline service system 100 e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, the vehicle 150, the storage device 160, and the navigation system 170
  • the server 110 may receive a service request from the service requestor terminal 130 via the network 120.
  • the network 120 may be any type of wired or wireless network, or combination thereof.
  • the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof.
  • the network 120 may include one or more network access points.
  • the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, ..., through which one or more components of the online to offline service system 100 may be connected to the network 120 to exchange data and/or information.
  • a passenger may be an owner of the service requestor terminal 130. In some embodiments, the owner of the service requestor terminal 130 may be someone other than the passenger. For example, an owner A of the service requestor terminal 130 may use the service requestor terminal 130 to send a service request for a passenger B, or receive a service confirmation and/or information or instructions from the server 110.
  • a service provider may be a user of the service provider terminal 140. In some embodiments, the user of the service provider terminal 140 may be someone other than the service provider. For example, a user C of the service provider terminal 140 may use the service provider terminal 140 to receive a service request for a service provider D, and/or information or instructions from the server 110.
  • bypassenger and “passenger terminal” may be used interchangeably, and “service provider” and “service provider terminal” may be used interchangeably.
  • the service provider terminal may be associated with one or more service providers (e.g., a night-shift service provider, or a day-shift service provider) .
  • the service requestor terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a vehicle 130-4, or the like, or any combination thereof.
  • the mobile device 130-1 may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
  • the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof.
  • the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
  • the smart mobile device may include a smartphone, a personal digital assistant (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a Google TM Glass, an Oculus Rift, a HoloLens, a Gear VR, etc.
  • built-in device in the vehicle 130-4 may include an onboard computer, an onboard television, etc.
  • the service requestor terminal 130 may be a device with positioning technology for locating the position of the passenger and/or the service requestor terminal 130.
  • the service provider terminal 140 may include a plurality of service provider terminals 140-1, 140-2, ..., 140-n. In some embodiments, the service provider terminal 140 may be similar to, or the same device as the service requestor terminal 130. In some embodiments, the service provider terminal 140 may be customized to be able to implement the online to offline service. In some embodiments, the service provider terminal 140 may be a device with positioning technology for locating the service provider, the service provider terminal 140, and/or a vehicle 150 associated with the service provider terminal 140. In some embodiments, the service requestor terminal 130 and/or the service provider terminal 140 may communicate with another positioning device to determine the position of the passenger, the service requestor terminal 130, the service provider, and/or the service provider terminal 140.
  • the service requestor terminal 130 and/or the service provider terminal 140 may periodically send the positioning information to the server 110. In some embodiments, the service provider terminal 140 may also periodically send the availability status to the server 110. The availability status may indicate whether a vehicle 150 associated with the service provider terminal 140 is available to carry a passenger. For example, the service requestor terminal 130 and/or the service provider terminal 140 may send the positioning information and the availability status to the server 110 every thirty minutes. As another example, the service requestor terminal 130 and/or the service provider terminal 140 may send the positioning information and the availability status to the server 110 each time the user logs into the mobile application associated with the online to offline service.
  • the service provider terminal 140 may correspond to one or more vehicles 150.
  • the vehicles 150 may carry the passenger and travel to the destination.
  • the vehicles 150 may include a plurality of vehicles 150-1, 150-2, ..., 150-n.
  • One vehicle may correspond to one type of services (e.g., a taxi hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, and a shuttle service) .
  • the storage device 160 may store data and/or instructions. In some embodiments, the storage device 160 may store data obtained from the service requestor terminal 130 and/or the service provider terminal 140. In some embodiments, the storage device 160 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage device 160 may include a mass storage, removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
  • Exemplary volatile read-and-write memory may include a random access memory (RAM) .
  • RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc.
  • Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (PEROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
  • MROM mask ROM
  • PROM programmable ROM
  • PROM erasable programmable ROM
  • EEPROM electrically erasable programmable ROM
  • CD-ROM compact disk ROM
  • digital versatile disk ROM etc.
  • the storage device 160 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the storage device 160 may be connected to the network 120 to communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, etc. ) .
  • One or more components in the online to offline service system 100 may access the data or instructions stored in the storage device 160 via the network 120.
  • the storage device 160 may be directly connected to or communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, etc. ) .
  • the storage device 160 may be part of the server 110.
  • the navigation system 170 may determine information associated with an object, for example, one or more of the service requestor terminal 130, the service provider terminal 140, the vehicle 150, etc.
  • the navigation system 170 may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a BeiDou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS) , etc.
  • the information may include a location, an elevation, a velocity, or an acceleration of the object, or a current time.
  • the navigation system 170 may include one or more satellites, for example, a satellite 170-1, a satellite 170-2, and a satellite 170-3.
  • the satellites 170-1 through 170-3 may determine the information mentioned above independently or jointly.
  • the satellite navigation system 170 may send the information mentioned above to the network 120, the service requestor terminal 130, the service provider terminal 140, or the vehicle 150 via wireless connections.
  • one or more components in the online to offline service system 100 may have permissions to access the storage device 160.
  • one or more components in the online to offline service system 100 may read and/or modify information related to the passenger, service provider, and/or the public when one or more conditions are met.
  • the server 110 may read and/or modify one or more passengers’information after a service is completed.
  • the server 110 may read and/or modify one or more service providers’information after a service is completed.
  • information exchanging of one or more components in the online to offline service system 100 may be initiated by way of requesting a service.
  • the object of the service request may be any product.
  • the product may include food, medicine, commodity, chemical product, electrical appliance, clothing, car, housing, luxury, or the like, or any combination thereof.
  • the product may include a servicing product, a financial product, a knowledge product, an internet product, or the like, or any combination thereof.
  • the internet product may include an individual host product, a web product, a mobile internet product, a commercial host product, an embedded product, or the like, or any combination thereof.
  • the mobile internet product may be used in a software of a mobile terminal, a program, a system, or the like, or any combination thereof.
  • the mobile terminal may include a tablet computer, a laptop computer, a mobile phone, a personal digital assistance (PDA) , a smart watch, a point of sale (POS) device, an onboard computer, an onboard television, a wearable device, or the like, or any combination thereof.
  • PDA personal digital assistance
  • POS point of sale
  • the product may be any software and/or application used in the computer or mobile phone.
  • the software and/or application may relate to socializing, shopping, transporting, entertainment, learning, investment, or the like, or any combination thereof.
  • the software and/or application related to transportation may include a traveling software and/or application, a vehicle scheduling software and/or application, a mapping software and/or application, etc.
  • the vehicle may include a horse, a carriage, a rickshaw (e.g., a wheelbarrow, a bike, a tricycle, etc. ) , a car (e.g., a taxi, a bus, a private car, etc. ) , a train, a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon, etc. ) , or the like, or any combination thereof.
  • a traveling software and/or application the vehicle may include a horse, a carriage, a rickshaw (e.g., a wheelbarrow, a bike, a tricycle, etc. ) , a car (e.g., a taxi, a bus, a private car, etc. )
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, the service requestor terminal 130, and/or the service provider terminal 140 may be implemented according to some embodiments of the present disclosure.
  • the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
  • the computing device 200 may be a general-purpose computer or a special purpose computer; both may be used to implement an online to offline service system for the present disclosure.
  • the computing device 200 may be used to implement any component of the online to offline service as described herein.
  • the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof.
  • only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
  • the computing device 200 may include COM ports 250 connected to and from a network connected thereto to facilitate data communications.
  • the computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors, for executing program instructions.
  • the exemplary computing device may include an internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read-only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device.
  • the exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or another type of non-transitory storage medium to be executed by the processor 220.
  • the methods and/or processes of the present disclosure may be implemented as the program instructions.
  • the computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components.
  • the computing device 200 may also receive programming and data via network communications.
  • FIG. 2 Merely for illustration, only one CPU and/or processor is illustrated in FIG. 2. Multiple CPUs and/or processors are also contemplated; thus operations and/or method steps performed by one CPU and/or processor as described in the present disclosure may also be jointly or separately performed by the multiple CPUs and/or processors.
  • the CPU and/or processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different CPUs and/or processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device 300 according to some embodiments of the present disclosure.
  • the mobile device 300 may include a communication module 310, a display 320, a graphics processing unit (GPU) 330, a processor 340, an I/O 350, a memory 360, and a storage 390.
  • any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
  • a mobile operating system 370 e.g., iOS TM , Android TM , Windows Phone TM
  • the applications 380 may include a browser or any other suitable apps for transmitting, receiving and presenting information relating to the status of the vehicle 150 (e.g., the location of the vehicle 150) from the server 110.
  • User interactions with the information stream may be achieved via the I/O 350 and provided to the server 110 and/or other components of the online to offline service system 100 via the network 120.
  • FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure.
  • the processing engine 112 may include the acquisition module 402, the determination module 404, the generation module 406, the traversing module 408, the comparison module 410, and the transmission module 412. At least a portion of the processing engine 112 may be implemented on a computing device as illustrated in FIG. 2 or a mobile device as illustrated in FIG. 3.
  • the acquisition module 402 may be configured to obtain, via the network 120, a request for data relating to the geographic region.
  • the geographic region may include a plurality of geographic location points.
  • the plurality of geographic location points may be associated with at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road.
  • the data relating to the geographic region may be embodied in the form of map information.
  • the determination module 404 may be configured to determine a plurality of data groups for storing the data relating to the geographic region.
  • the data may be associated with the plurality of geographic location points of the geographic region.
  • the data may include spatial element data relating to the geographic region.
  • the determination module 404 may determine a plurality of Hilbert distances associated with the plurality of geographic location points. For each geographic location point, the determination module 404 may determine a Hilbert distance.
  • the determination module 404 may designate the plurality of Hilbert distances as a plurality of spatial index values.
  • the determination module 404 may determine the data relating to geographic location points having the same spatial index value.
  • the determination module 404 may further store the data associated with the same spatial index value into a data group.
  • the processing engine 112 may determine a plurality of data groups, each of which corresponds to a spatial index value (and a Hilbert distance) .
  • the generation module 406 may be configured to generate, based on the plurality of data groups, a priority queue.
  • the generation module 406 may determine the priority queue based on the plurality of spatial index values and the geographic region.
  • the priority queue may include a plurality of buffer scope data.
  • Each buffer scope data may include a plurality of queue index values.
  • a buffer scope data may be associated with a part of the geographic region.
  • a buffer scope data may include a scope data and a buffer data.
  • the buffer data may correspond to geographic location points surrounding the first part of the geographic region; the buffer data may correspond to geographic location points surrounding the part of the geographic region.
  • the traversing module 408 may be configured to traverse the data groups, starting from the data group associated with the smallest spatial index value.
  • the traversing module 408 may arrange, based on the plurality of spatial index values, the data groups in ascending order.
  • the traversing module 408 may also generate ordered data groups.
  • the traversing module 408 may traverse the ordered data groups, starting from the data group having the smallest spatial index value.
  • the traversing module 408 may traverse the ordered data groups.
  • the processing engine 112 may determine the smallest spatial index value among the plurality of spatial index values.
  • the processing engine 112 may traverse the ordered data groups, starting from the data group having the smallest spatial index value.
  • the comparison module 410 may be configured to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value. If the comparison module 410 determines that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the comparison module 410 may determine that each of the plurality of first caches may have stored corresponding data. In this situation, the first buffer scope data may be ready to be transmitted to a user. In some embodiments, the data relating to the first part of the geographic region (i.e., the first buffer scope data) may be transmitted to the user in the form of a map. The map may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, the information relating to a building, or the information relating to a road.
  • the comparison module 410 may determine a first buffer scope data from the priority queue.
  • the first buffer scope data may include a reference index value.
  • the comparison module 410 may update the priority queue.
  • the comparison module 410 may further update, based on the updated priority queue, the first buffer scope data and the first reference index value.
  • the transmission module 412 may be configured to transmit, to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , the first buffer scope data in response to the determination that the spatial index value of the currently traversing cache is equal to or larger than the first reference index value.
  • the first buffer scope data may be transmitted to the user terminal in a form of map information.
  • the storage module 414 may be configured to store the data of a traversed data group into a corresponding cache.
  • the storage module 414 may determine a spatial index value associated with the traversed data group.
  • a queue index value of the corresponding cache may equal to the spatial index value of the traversed data group.
  • the storage module 414 may store the data of the traversed data group into the corresponding cache.
  • processing engine 112 is merely provided for the purpose of illustration, and not intended to limit the scope of the present disclosure.
  • the determination module 404 and the generation module 406 may be integrated into one single module to perform their functions.
  • FIG. 5 is a flowchart illustrating an exemplary process for transmitting, to a user terminal, data relating to the first part of a geographic region according to some embodiments of the present disclosure.
  • the processing engine 112 may perform the process 500 to transmit, to the user terminal, the data relating to the first part of the geographic region.
  • one or more operations of the process 500 illustrated in FIG. 5 for transmitting, to the user terminal, the data relating to the first part of the geographic region may be implemented in the online to offline service system 100 illustrated in FIG. 1.
  • the processing engine 112 e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3 .
  • the processing engine 112 may obtain, via the network 120, a request for data relating to the geographic region.
  • the geographic region may include a plurality of geographic location points.
  • the plurality of geographic location points may be associated with at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road.
  • the data relating to the geographic region may be embodied in the form of map information.
  • a user may, via a user terminal (e.g., the service requestor terminal 130) , open an application for hailing a taxi at a start location in the geographic region (or operate a navigation application) , which means that the user may request for the data relating to the geographic region.
  • the service requestor terminal 130 may transmit the request to the server 110 via the network 120.
  • a user may be interested in the geographic region. For example, the user wishes to travel in the geographic region.
  • the user may plan to arrive at a destination from a start location.
  • the geographic region may include the start location and the destination.
  • the user may request, via a user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , for the data relating to the geographic region.
  • the processing engine 112 may obtain the request for the data relating to the geographic region from the user terminal directly or indirectly.
  • the geographic region may be associated with a historical service order.
  • historical service order generally refers to a service request that has been completed.
  • a requestor may send a service request for a service (e.g., a transportation service) to the online to offline service system 100.
  • a service provider may accept the service request and provide the service to the requestor, indicating that the service request has been completed.
  • the online to offline service system 100 may save this service request as a historical service order into a storage device (e.g., the storage device 160) .
  • the historical service order may include a historical start location and a historical destination.
  • the geographic region may include the historical start location, the historical destination, and geographic location points relating to a route.
  • the service provider may drive the requestor from the start location to the destination along the route.
  • the route may indicate a trace associated with the user (e.g., a service requestor, a service provider) or the vehicle.
  • the user may request, via the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , for the data relating to the geographic region.
  • the processing engine 112 may obtain the request for the data relating to the geographic region from the user terminal directly or a storage device (e.g., the storage device 160, disk 270) that stores the historical service order.
  • the processing engine 112 may determine a plurality of data groups for storing the data relating to the geographic region.
  • the data may be associated with the plurality of geographic location points of the geographic region.
  • the data may include spatial element data relating to the geographic region.
  • the data may include at least one of:a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road, in the geographic region.
  • the information relating to a building may include a height of the building, a position of the building, one or more exits of the building, one or more entrances of the building, or the like, or a combination thereof.
  • the information relating to a road may include the position of the road, the width of the road, the intersections associated with the road, the traffic conditions of the road, or the like, or a combination thereof.
  • the processing engine 112 may determine a plurality of Hilbert distances associated with the plurality of geographic location points. For each geographic location point, the processing engine 112 may determine a Hilbert distance. As used herein, a Hilbert distance refers to a distance in the Hilbert space. The processing engine 112 may designate the Hilbert distances as a plurality of spatial index values. In the present application, “Hilbert distance” and “spatial index value” may be used interchangeably. The processing engine 112 may determine, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points. The spatial index may be a type of extended index that allows a user to index spatial data (e.g., data relating to geographic location points) .
  • spatial index may be a type of extended index that allows a user to index spatial data (e.g., data relating to geographic location points) .
  • the processing engine 112 may determine the data relating to geographic location points having the same spatial index value (i.e., the same Hilbert distance) .
  • the processing engine 112 may further store the data associated with the same spatial index value into a data group.
  • the processing engine 112 may determine a plurality of data groups, each of which corresponds to a spatial index value (i.e., a Hilbert distance) . Geographic location points having the same Hilbert distance may be grouped and form a sub-region of the geographic region.
  • the processing engine 112 may generate, based on the plurality of data groups, a priority queue.
  • the priority queue may include a first buffer scope data.
  • the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region.
  • the priority queue may be a data type that is like a regular queue or a stack data structure.
  • the processing engine 112 may determine the priority queue based on the plurality of spatial index values and the geographic region.
  • the priority queue may include a plurality of buffer scope data.
  • FIG. 9 is a schematic diagram illustrating an exemplary priority queue according to some embodiments of the present disclosure.
  • the priority queue 900 may include a first buffer scope data 902 and a second buffer scope data 904 as illustrated in FIG. 9.
  • the first buffer scope data 902 may correspond to a 6*6 square.
  • the second buffer scope buffer scope data 904 may correspond to another 6*6 square.
  • the 6*6 square may refer that both the width and the length of the 6*6 square are six, assuming the length of a side of each smallest square is one.
  • Each buffer scope data may include a plurality of queue index values.
  • the first buffer scope data 902 may include a plurality of first queue index values.
  • the plurality of first queue index values may include 8-11 and 24-55 as illustrated in FIG. 9.
  • the first reference index value may be the largest value among the plurality of first queue index values, which is 55.
  • the first buffer scope data 902 may be associated with a first part of the geographic region.
  • the plurality of first queue index values may correspond to a plurality of spatial index values associated with the first part of the geographic region.
  • the second buffer scope data 904 may include a plurality of second queue index values.
  • the plurality of second queue index values may include 0-19, 28-35, and 52-59 as illustrated in FIG. 9.
  • the second reference index value may be the largest value among the plurality of second queue index values, which is 59.
  • the second buffer scope data may be associated with a second part of the geographic region.
  • the plurality of second queue index values may correspond to a plurality of spatial index values associated with the second part of the geographic region.
  • each of the plurality of buffer scope data in the priority queue may include a plurality of queue index values.
  • the processing engine 112 may determine the largest queue index value among the plurality of queue index values.
  • the processing engine 112 may determine a plurality of the largest queue index values, each of the largest queue index values being associated one of the plurality of buffer scope data.
  • the processing engine 112 may determine the smallest value among the largest queue index values.
  • the processing engine 112 may designate the buffer scope data associated with the smallest value as the first buffer scope data.
  • the second reference index value associated with the second buffer scope data is 59 as illustrated in FIG. 9.
  • the first reference index value associated with the first buffer scope data is 55 and is smaller than the second reference index value (i.e., 59) .
  • two buffer scope data may be overlapping.
  • the first buffer scope data 902 and the second buffer scope data 904 may include shared caches.
  • the shared caches may correspond to smallest squares whose queue index values are 8-11, 28-35, and 52-55.
  • a buffer scope data may include a scope data and a buffer data.
  • the first buffer scope data may include a first scope data 906 and a first buffer data 908; the second buffer scope data may include a second scope data 910 and a second buffer data 912; and so on.
  • the first scope data 906 may correspond to a 4*4 square.
  • the first buffer data 908 may correspond to an area equal to the area of the first buffer scope data 902 subtracted by the area of the first scope data 906.
  • the first scope data corresponds to smallest squares whose first queue index values are 32-47.
  • the first buffer data corresponds to smallest squares whose first queue index values are 8-11, 24-31, and 48-55.
  • the first buffer data 908 may surround the first scope data 906.
  • the second scope data 910 may correspond to a 4*4 square.
  • the second buffer data 912 may correspond to an area equal to the area of the second buffer scope data 904 subtracted by the area of the second scope data 910. As illustrated in FIG. 9, the second scope data corresponds to smallest squares whose second queue index values are 0-15.
  • the second buffer data corresponds to smallest squares whose second queue index values are 16-19, 28-35, and 52-59.
  • the second buffer data 912 may surround the second scope data 910.
  • first buffer scope data 902 and the buffer scope data 904 are provided for illustration purposes, and should not be designated as the only practical embodiment.
  • the buffer scope data may be located in the middle of the priority queue.
  • the size of the first buffer scope data 902 and the size of the second buffer scope data 904 may be different.
  • the first buffer scope data 902 and the second buffer scope data 904 may be spaced apart.
  • the first scope data may correspond to geographic location points of the first part of the geographic region; the second scope data may correspond to geographic location points of the second part of the geographic region; and so on.
  • the first buffer data may correspond to geographic location points surrounding the first part of the geographic region; the second buffer data may correspond to geographic location points surrounding the second part of the geographic region; and so on.
  • each buffer scope data may include a plurality of caches. As illustrated in FIG. 9, each of the smallest squares may be a cache.
  • the first buffer scope data may include a plurality of first caches.
  • the first caches may correspond to smallest squares whose first queue index values are 0-19, 28-35, and 52-59.
  • a cache may correspond to a queue index value. Different caches may correspond to different queue index values.
  • the caches may store data relating to data groups.
  • a cache may store data associated with a corresponding data group.
  • the queue index value of a cache and the spatial index value associated with the corresponding data group may be the same.
  • the cache corresponding to the queue index value 1 may store the data related to the data group whose spatial index value is 1.
  • the processing engine 112 may traverse the data groups, starting from the data group associated with the smallest spatial index value. As described in connection with step 504, each data group may have a corresponding spatial index value.
  • the processing engine 112 may arrange, based on the plurality of spatial index values, the data groups in ascending order.
  • the processing engine 112 may also generate ordered data groups.
  • the processing engine 112 may traverse the ordered data groups. In some embodiments, the processing engine 112 may determine the smallest spatial index value among the plurality of spatial index values. The processing engine 112 may traverse the ordered data groups, starting from the data group having the smallest spatial index value.
  • the processing engine 112 may determine the spatial index value of a currently traversed data group.
  • the processing engine 112 may determine the corresponding cache associated with the currently traversed data group.
  • a queue index value of the corresponding cache may be equal to the spatial index value of the currently traversed data group.
  • the processing engine 112 may store data of the currently traversed data group into the corresponding cache.
  • the smallest spatial index value may be 1.
  • the processing engine 112 may firstly traverse the data group having the smallest spatial index value (i.e., 1) .
  • the processing engine 112 may store the data of the data group having the smallest spatial index value into a cache whose queue index value is 1 (hereinafter also referred to as “cache 1” ) .
  • the processing engine 112 may traverse the data group whose spatial index value is 2 (hereinafter also referred to as “data group 2” ) .
  • the processing engine 112 may store the data of the data group 2 into the cache 2.
  • the processing engine 112 may traverse the data group 3.
  • the processing engine 112 may store the data of the data group 3 into the cache 3, and so on.
  • the processing engine 112 may traverse all the data groups.
  • the processing engine 112 may determine whether the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  • the first reference index value may be the largest spatial index value among the plurality of first spatial index values. If the processing engine 112 determines that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the processing engine 112 may determine that each of the plurality of first caches may have stored corresponding data. In this situation, the first buffer scope data may be ready to be transmitted to the user. In some embodiments, the first buffer scope data may be transmitted to the user in the form of a map.
  • the map may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, the information relating to a building, or the information relating to a road.
  • the processing engine 112 may transmit, to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , the first buffer scope data (i.e., the data relating to the first part of the geographic region) in response to the determination that the spatial index value of the currently traversing cache is equal to or larger than the first reference index value. If the processing engine 112 determines that the spatial index value of the currently traversed data group is smaller than the first reference index value, the processing engine 112 may determine that at least some of the first caches may be empty. In this situation, the first buffer scope data may be not ready. The processing engine 112 may continue to traverse the remaining data group (s) . The processing engine 112 may store data into empty first cache (s) when traversing the remaining data groups.
  • the user terminal e.g., the service requestor terminal 130, the service provider terminal 140
  • the first buffer scope data i.e., the data relating to the first part of the geographic region
  • FIG. 6 is a flowchart illustrating an exemplary process for storing the data of a traversed data group into a corresponding cache according to some embodiments of the present disclosure.
  • the processing engine 112 may perform the process 600 to store the data of the traversed data group into the cache.
  • one or more operations of the process 600 illustrated in FIG. 6 for storing the data of the traversed data group into the cache may be implemented in the online to offline service system 100 illustrated in FIG. 1.
  • the process 600 illustrated in FIG. 6 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3) .
  • the processing engine 112 may arrange, based on a plurality of spatial index values, a plurality of data groups in ascending order for generating ordered data groups.
  • the data groups to be arranged may be the data groups generated in step 506 of the process 500 described elsewhere in this disclosure, and steps 508-512 of the process 500 may be performed according to steps 604-608.
  • each data group may correspond to a spatial index value.
  • the processing engine 112 may arrange the plurality of data groups in ascending order based on the plurality of spatial index values.
  • the processing engine 112 may also generate the ordered data groups.
  • the processing engine 112 may traverse the ordered data groups, starting from the data group associated with the smallest spatial index value among the plurality of spatial index values.
  • the processing engine 112 may determine the smallest spatial index value among the plurality of spatial index value.
  • the processing engine 112 may determine the data group associated with the smallest spatial index value.
  • the processing engine 112 may traverse the plurality of data groups, starting from the data group associated with the smallest spatial index value.
  • the processing engine 112 may determine the data of a traversed data group.
  • the processing engine 112 may also determine the spatial index value associated with the traversed data group.
  • the processing engine 112 may store the data of the traversed data group into a corresponding cache.
  • the data of the traversed data group may be associated with a spatial index value (herein after referred to as “traversed spatial index value” ) .
  • a queue index value of the corresponding cache may equal to the traversed spatial index value.
  • the processing engine 112 may store the data of the traversed data group into the corresponding cache.
  • two buffer scope data may include shared caches. If the processing engine 112 stores the data of the traversed data group into a shared cache, the processing engine 112 may store the data of the traversed data group into the two buffer scope data including the shared cache. For example, as illustrated in FIG. 9, if the spatial index value of the currently traversed data group is 28, the processing engine 112 may store the data of the traversed data group into cache 28 in the first buffer scope data 902 and into cache 28 in the second buffer scope data 904. As used herein, cache 28 may refer the cache whose queue index value is 28. For the data groups whose spatial index values are smaller than a spatial index value of a currently traversed data group, the processing engine 112 may store data of the data groups into the priority queue (e.g., one or more buffer scope data) .
  • the priority queue e.g., one or more buffer scope data
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a designated first buffer scope data and a designated first reference index value according to some embodiments of the present disclosure.
  • the processing engine 112 may perform the process 700 to determine the designated first buffer scope data and the designated first reference index value.
  • one or more operations of the process 700 illustrated in FIG. 7 for determining the designated first buffer scope data and the designated first reference index value may be implemented in the online to offline service system 100 illustrated in FIG. 1.
  • the process 700 illustrated in FIG. 7 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG.
  • step 510 of process 500 may be performed based on the process 700 for determining whether a spatial index value of a currently traversed data group is equal to or larger than a first reference index value.
  • the processing engine 112 may obtain, from the priority queue, a second buffer scope data associated with a plurality of second queue index values. Similar to the first buffer scope data, the second buffer scope data may be associated with a plurality of second queue index values, a second part of the geographic region, and a second reference index value. In some embodiments, the first part of the geographic region and the second part of the geographic region may overlap, adjoin to each other, or be spaced apart.
  • the second buffer scope data may include a plurality of second caches.
  • the plurality of second queue index values may correspond to the plurality of second caches.
  • each second cache may correspond to a second queue index value.
  • Different second caches may have different second queue index values.
  • the processing engine 112 may determine the largest second queue index value among the plurality of second queue index values and designate it as the second reference index value.
  • the processing engine 112 may determine whether the second reference index value is smaller than the first reference index value.
  • the processing engine 112 may compare the second reference index value with the first reference index value.
  • the processing engine 112 may determine whether the second reference index value is smaller than the first reference index value.
  • the processing engine 112 may designate the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value.
  • the processing engine 112 may designate the second reference index value as the first index value in response to the determination that the second reference index value is smaller than the first reference index value.
  • the processing engine 112 may also designate the second part of the geographic region as the first part of the geographic region in response to the determination that the second reference index value is smaller than the first reference index value. If the processing engine 112 determines that the second reference index value is equal to or larger than the first reference index value, the first buffer scope data may remain as the first buffer scope data.
  • the processing engine 112 may determine whether the spatial index value of a currently traversed data group is equal to or larger than the designated first reference index value.
  • the processing engine 112 may obtain or determine the spatial index value of the currently traversed data group.
  • the processing engine 112 may compare the spatial index value of the currently traversed data group with the designated first reference index value.
  • the processing engine 112 may determine a larger value and/or a smaller value between the spatial index value of the currently traversed data group and the designated first reference index value.
  • the processing engine 112 may output the designated first buffer scope data.
  • the processing engine 112 may transmit the first buffer scope data to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) . If the processing engine 112 determines that the spatial index value of a currently traversed data group is smaller than the designated first reference index value, the processing engine 112 may continue to traverse the data groups.
  • FIG. 8 is a flowchart illustrating an exemplary process for traversing a plurality of data groups according to some embodiments of the present disclosure.
  • the processing engine 112 may perform the process 800 to traverse the plurality of data groups.
  • one or more operations of the process 800 illustrated in FIG. 8 for traversing the plurality of data groups may be implemented in the online to offline service system 100 illustrated in FIG. 1.
  • the process 800 illustrated in FIG. 8 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3) .
  • the processing engine 112 may traverse a plurality of data groups. More descriptions of traversing the plurality of data groups can be found elsewhere in the present disclosure (e.g., FIGs. 5-7, and the descriptions thereof) .
  • the processing engine 112 may store data of traversed data groups into caches. More descriptions of storing data of the traversed data groups into caches can be found elsewhere in the present disclosure (e.g., FIGs. 5-7 and the descriptions thereof) .
  • the processing engine 112 may determine whether each cache in the first buffer scope data has stored data of a corresponding data group.
  • the processing engine 112 may determine a spatial index value of a currently traversed data group.
  • the processing engine 112 may compare the spatial index value of the currently traversed data group with the first reference index value. If the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the processing engine 112 may determine that each cache in the first buffer scope data stores data of a corresponding data group. If the spatial index value of the currently traversed data group is smaller than the first reference index value, the processing engine 112 may traverse the remaining data group (s) and store data into empty cache (s) in the first buffer scope data.
  • the first buffer scope data may include data relating to the first part of the geographic region.
  • the data relating to the first part of the geographic region may be in the form of map information.
  • the map information may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, the information relating to a building, or the information relating to a road.
  • the processing engine 112 may output the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group.
  • the processing engine 112 may transmit, to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , the first buffer scope data in the form of map information.
  • the processing engine 112 may update the priority queue by removing the first buffer scope data from the priority queue. As such, the processing engine 112 may determine or obtain an updated priority queue.
  • the processing engine 112 may obtain a new first buffer scope data and a new first reference index value based on the updated priority queue. As described in connection with step 506, the processing engine 112 may determine a plurality of largest queue index values associated with the updated priority queue. The processing engine 112 may determine the smallest queue index value among the plurality of largest queue index values. The processing engine 112 may designate, from the updated priority queue, the buffer scope data associated with the smallest value as the new first buffer scope data.
  • the new first buffer scope data may include a plurality of new first queue index values.
  • the processing engine 112 may designate the largest first queue index value among the plurality of new first queue index values as the new first reference index value.
  • the processing engine 112 may determine whether the spatial index value of the currently traversed data group is equal to the largest spatial index value among the plurality of spatial index values. If the spatial index value of the currently traversed data group is smaller than the largest spatial index value among the plurality of spatial index values, the processing engine 112 may return to 802 and perform steps 802 to 814 as described in this disclosure. In 802, the processing engine 112 may continue to traverse the remaining data groups. In 804, the processing engine 112 may store data of newly traversed data groups into corresponding caches. In 806, the processing engine 112 may determine whether each cache in the new first buffer scope data has stored data of a corresponding data group.
  • the processing engine 112 may output the new first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data has stored data of the corresponding data group. In 810, the processing engine 112 may update the updated priority queue by removing the new first buffer scope data from the updated priority queue. In 812, the processing engine 112 may continue to update the new first buffer scope data and update the new first reference index value.
  • the processing engine 112 may have traversed all the plurality of data groups.
  • the process 800 may end in 816.
  • aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable medium having computer readable program code embodied thereon.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
  • Computer program code for carrying out steps for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy, or other programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS) .
  • LAN local area network
  • WAN wide area network
  • an Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, etc.
  • SaaS software as a service

Abstract

A system includes a storage device storing a set of instructions and a processor in communication with the storage device. When executing the set of instructions, the processor is configured to cause the system to obtain a request for data relating to the geographic region and determine a plurality of data groups for storing the data. The processor also causes the system to generate, based on the plurality of data groups, a priority queue including a first buffer scope data and traverse the plurality of data groups. The processor further causes the system to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmit, to the user terminal, the first buffer scope data in response to the determination that the spatial index value is equal to or larger than the first reference index value.

Description

SYSTEMS AND METHODS FOR TRAVERSING SPATIAL DATA TECHNICAL FIELD
The present disclosure generally relates to systems and methods for data processing, and in particular, to systems and methods for traversing spatial data.
BACKGROUND
When using a traditional method of data processing, it is necessary for an engineer to read all the data. It may take a long time to read all of the data. Moreover, in scenarios of big data, a large amount of internal storage may be needed for caching all the data. For example, in the online to offline service system, spatial element data such as the traces of drivers and passengers is large and need a large amount of internal storage. Therefore, a method of efficiently processing the spatial element data is needed.
SUMMARY
According to an aspect of the present disclosure, a system may include a storage device storing a set of instructions and one or more processors in communication with the storage device. When executing the instructions, one or more processors may be configured to cause the system to obtain, via a network, a request for data relating to the geographic region from a user terminal and determine a plurality of data groups for storing the data relating to the plurality of geographic location points. In some embodiments, the geographic region may include a plurality of geographic location points. In some embodiments, the plurality of data groups may be associated with a plurality of spatial index values. The one or more processors may also cause the system to generate, based on the plurality of data groups, a priority queue including a first buffer scope data and traverse the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values. In some embodiments, the first buffer scope data may be associated  with a plurality of first queue index values, a first reference index value, and a first part of the geographic region. The one or more processors may further cause the system to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmit, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
In some embodiments, the one or more processors may also cause the system to determine a plurality of Hilbert distances relating to the plurality of geographic location points and store the data being associated with geographic location points having a same Hilbert distance into the same data group. In some embodiments, the one or more processors may further cause the system to designate the plurality of Hilbert distances as the plurality of spatial index values.
In some embodiments, the one or more processors may also cause the system to determine, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points.
In some embodiments, the data relating to the plurality of geographic location points may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, and/or information relating to a road
In some embodiments, the first buffer scope data may include a first scope data and a first buffer data. In some embodiments, the first scope data may correspond to geographic location points of the first part of the geographic region. In some embodiments, the first buffer data may correspond to geographic location points surrounding the first part of the geographic region.
In some embodiments, the first reference index value may be a largest value among the plurality of first queue index values.
In some embodiments, the one or more processors may also cause the system to arrange, based on the plurality of spatial index values, the plurality of data groups in ascending order for generating ordered data groups and traverse the ordered data groups.
In some embodiments, the first buffer scope data may include a plurality of caches. In some embodiments, each cache may be associated with a first queue index value.
In some embodiments, the one or more processors may also cause the system to traverse the ordered data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values, and determine the data of a traversed data group. In some embodiments, the one or more processors may further cause the system to store the data of the traversed data group into a cache, a first queue index value of the cache being equal to the spatial index value associated with the traversed data group.
In some embodiments, the one or more processors may also cause the system to obtain a second buffer scope data from the priority queue and designate a largest second queue index value among the plurality of second queue index values as the second reference index value. In some embodiments, the second buffer scope data may be associated with a plurality of second queue index values, a second reference index value, and a second part of the geographic region. In some embodiments, the one or more processors may also cause the system to determine whether the second reference index value is smaller than the first reference index value and designate the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value. In some embodiments, the one or more processors may further cause the system to designate the second reference index value as the first index value in response to the determination that the second reference index value is smaller than  the first reference index value and determine whether the spatial index value of the currently traversed data group is equal to or larger than the designated first reference index value.
In some embodiments, the one or more processors may also cause the system to determine whether each cache in the first buffer scope data stores data of a corresponding data group and output the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group. In some embodiments, the one or more processors may further cause the system to update the priority queue by removing the first buffer scope data from the priority queue and obtain a new first buffer scope data and a new first reference index value based on the updated priority queue.
According to another aspect of the present disclosure, a computer-implemented method may include one or more of the following operations performed by one or more processors. The method may include obtaining, via a network, a request for data relating to a geographic region from a user terminal and determining a plurality of data groups for storing the data relating to the plurality of geographic location points. In some embodiments, the geographic region may include a plurality of geographic location points. In some embodiments, the plurality of data groups may be associated with a plurality of spatial index values. The method may also include generating, based on the plurality of data groups, a priority queue including a first buffer scope data and traversing the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values. In some embodiments, the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region. The method may further include determining whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmitting, to the user terminal, the data relating to the first part of the geographic  region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
According to yet another aspect of the present disclosure, a non-transitory computer-readable medium may store instructions. When executed by one or more processors of a system, the instructions may cause the system to obtain, via a network, a request for data relating to the geographic region from a user terminal and determine a plurality of data groups for storing the data relating to the plurality of geographic location points. In some embodiments, the geographic region may include a plurality of geographic location points. In some embodiments, the plurality of data groups may be associated with a plurality of spatial index values. The instructions may also cause the system to generate, based on the plurality of data groups, a priority queue including a first buffer scope data and traverse the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values. In some embodiments, the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region. The instructions may further cause the system to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value and transmit, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
According to yet another aspect of the present disclosure, a system may include an acquisition module, a determination module, a generation module, a traversing module, a comparison module, and a transmission module. The acquisition module may be configured to obtain, via a network, a request for data relating to the geographic region from a user terminal. In some embodiments, the geographic region may include a plurality of geographic location points. The determination module may  be configured to determine a plurality of data groups for storing the data relating to the plurality of geographic location points. In some embodiments, the plurality of data groups may be associated with a plurality of spatial index values. The generation module may be configured to generate, based on the plurality of data groups, a priority queue including a first buffer scope data. In some embodiments, the first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region. The traversing module may be configured to traverse the plurality of data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values. The comparison module may be configured to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value. The transmission module may be configured to transmit, to the user terminal, the data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
FIG. 1 is a block diagram illustrating an exemplary online to offline service system according to some embodiments;
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device according to some embodiments;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure;
FIG. 5 is a flowchart illustrating an exemplary process for transmitting, to a user terminal, the data relating to the first part of a geographic region according to some embodiments of the present disclosure;
FIG. 6 is a flowchart illustrating an exemplary process for storing the data of a traversed data group into a cache according to some embodiments of the present disclosure;
FIG. 7 is a flowchart illustrating an exemplary process for determining a designated first buffer scope data and a designated first reference index value according to some embodiments of the present disclosure;
FIG. 8 is a flowchart illustrating an exemplary process for traversing a plurality of data groups according to some embodiments of the present disclosure; and
FIG. 9 is a schematic diagram illustrating a priority queue according to some embodiments of the present disclosure.
DETAILED DESCRIPTION
The following description is presented to enable any person skilled in the art to make and use the present disclosure and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown but is to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms "a, " "an, " and "the" may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprise, " "comprises, " and/or "comprising, " "include, " "includes, " and/or "including, " when used in this specification, specify the presence of stated features, integers, steps, steps, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, steps, elements, components, and/or groups thereof.
These and other features, and characteristics of the present disclosure, as well as the methods of step and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawings, all of which form a part of this disclosure. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate steps that systems implement according to some embodiments described in the present disclosure. It is to be expressly understood, the steps of the flowchart may be implemented not in order. Conversely, the steps may be implemented in inverted order, or simultaneously. Moreover, one or more other steps may be added to the flowcharts. One or more steps may be removed from the flowcharts.
Moreover, while the system and method in the present disclosure are described primarily with regard to distributing a request for a transportation service, it should also be understood that the present disclosure is not intended to be limiting. The system or method of the present disclosure may be applied to any other kind of  online to offline service. For example, the system or method of the present disclosure may be applied to transportation systems of different environments including land, ocean, aerospace, or the like, or any combination thereof. The vehicle of the transportation systems may include a taxi, a private car, a hitch, a bus, a train, a bullet train, a high-speed rail, a subway, a vessel, an aircraft, a spaceship, a hot-air balloon, a driverless vehicle, or the like, or any combination thereof. The transportation system may also include any transportation system for management and/or distribution, for example, a system for transmitting and/or receiving an express. The application of the system or method of the present disclosure may be implemented on a user device and include a web page, a plug-in of a browser, a client terminal, a custom system, an internal analysis system, an artificial intelligence robot, or the like, or any combination thereof.
The term "passenger, " "requestor, " "service requestor, " and "customer" in the present disclosure are used interchangeably to refer to an individual, an entity, or a tool that may request or order a service. Also, the term "driver, " "provider, " and "service provider" in the present disclosure are used interchangeably to refer to an individual, an entity, or a tool that may provide a service or facilitate the providing of the service.
The term "service request, " "request for a service, " "requests, " and "order" in the present disclosure are used interchangeably to refer to a request that may be initiated by a passenger, a service requestor, a customer, a driver, a provider, a service provider, or the like, or any combination thereof. The service request may be accepted by any one of a passenger, a service requestor, a customer, a driver, a provider, or a service provider. The service request may be chargeable or free.
The term "service provider terminal" and "driver terminal" in the present disclosure are used interchangeably to refer to a mobile terminal that is used by a service provider to provide a service or facilitate the providing of the service. The term  "service requestor terminal" and "passenger terminal" in the present disclosure are used interchangeably to refer to a mobile terminal that is used by a service requestor to request or order a service.
The positioning technology used in the present disclosure may be based on a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof. One or more of the above positioning systems may be used interchangeably in the present disclosure.
An aspect of the present disclosure relates to online systems and methods for traversing spatial data. A plurality of spatial index values (Hilbert distances) relating to a geographic region may be determined. A plurality of data groups for storing data relating to the geographic region may be determined. Each data group may be associated with a spatial index value. A priority queue may be determined based on the plurality of spatial index values and the geographic region. The priority queue may include a first buffer scope data being associated with a first reference index value and a first part of the geographic region. The plurality of data groups may be traversed, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values. If it is determined that the spatial index value of the currently traversed cache is equal to or larger than the first reference index value, the first buffer scope data may be transmitted to a user terminal.
The present disclosure employs Hilbert distances to determine a spatial index relating to the geographic region. A processing engine traverses the data groups based on the spatial index.
FIG. 1 is a block diagram illustrating an exemplary online to offline service system 100 according to some embodiments. For example, the online to offline service system 100 may be an online transportation service platform for transportation  services. The online to offline service system 100 may include a server 110, a network 120, a service requestor terminal 130, a service provider terminal 140, a vehicle 150, a storage device 160, and a navigation system 170.
The online to offline service system 100 may provide a plurality of services. Exemplary service may include a taxi hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, and a shuttle service. In some embodiments, the online to offline service may be any on-line service, such as booking a meal, shopping, or the like, or any combination thereof.
In some embodiments, the server 110 may be a single server or a server group. The server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in the service requestor terminal 130, the service provider terminal 140, and/or the storage device 160 via the network 120. As another example, the server 110 may be directly connected to the service requestor terminal 130, the service provider terminal 140, and/or the storage device 160 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device 1000 having one or more components illustrated in FIG. 10 in the present disclosure.
In some embodiments, the server 110 may include a processing engine 112. The processing engine 112 may process information and/or data related to the service request to perform one or more functions described in the present disclosure. For example, the processing engine 112 may traverse spatial data. In some embodiments, the processing engine 112 may include one or more processing engines (e.g., single- core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing engine 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
The network 120 may facilitate exchange of information and/or data. In some embodiments, one or more components in the online to offline service system 100 (e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, the vehicle 150, the storage device 160, and the navigation system 170) may send information and/or data to other component (s) in the online to offline service system 100 via the network 120. For example, the server 110 may receive a service request from the service requestor terminal 130 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof. In some embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, …, through which one or more components of the online to offline service system 100 may be connected to the network 120 to exchange data and/or information.
In some embodiments, a passenger may be an owner of the service requestor terminal 130. In some embodiments, the owner of the service requestor terminal 130 may be someone other than the passenger. For example, an owner A of the service requestor terminal 130 may use the service requestor terminal 130 to send a service request for a passenger B, or receive a service confirmation and/or information or instructions from the server 110. In some embodiments, a service provider may be a user of the service provider terminal 140. In some embodiments, the user of the service provider terminal 140 may be someone other than the service provider. For example, a user C of the service provider terminal 140 may use the service provider terminal 140 to receive a service request for a service provider D, and/or information or instructions from the server 110. In some embodiments, "passenger" and "passenger terminal" may be used interchangeably, and "service provider" and "service provider terminal" may be used interchangeably. In some embodiments, the service provider terminal may be associated with one or more service providers (e.g., a night-shift service provider, or a day-shift service provider) .
In some embodiments, the service requestor terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a vehicle 130-4, or the like, or any combination thereof. In some embodiments, the mobile device 130-1 may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof. In some embodiments, the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal  digital assistant (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, an augmented reality glass, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may include a Google TM Glass, an Oculus Rift, a HoloLens, a Gear VR, etc. In some embodiments, built-in device in the vehicle 130-4 may include an onboard computer, an onboard television, etc. In some embodiments, the service requestor terminal 130 may be a device with positioning technology for locating the position of the passenger and/or the service requestor terminal 130.
The service provider terminal 140 may include a plurality of service provider terminals 140-1, 140-2, …, 140-n. In some embodiments, the service provider terminal 140 may be similar to, or the same device as the service requestor terminal 130. In some embodiments, the service provider terminal 140 may be customized to be able to implement the online to offline service. In some embodiments, the service provider terminal 140 may be a device with positioning technology for locating the service provider, the service provider terminal 140, and/or a vehicle 150 associated with the service provider terminal 140. In some embodiments, the service requestor terminal 130 and/or the service provider terminal 140 may communicate with another positioning device to determine the position of the passenger, the service requestor terminal 130, the service provider, and/or the service provider terminal 140. In some embodiments, the service requestor terminal 130 and/or the service provider terminal 140 may periodically send the positioning information to the server 110. In some embodiments, the service provider terminal 140 may also periodically send the availability status to the server 110. The availability status may indicate whether a vehicle 150 associated with the service provider terminal 140 is available to carry a passenger. For example, the  service requestor terminal 130 and/or the service provider terminal 140 may send the positioning information and the availability status to the server 110 every thirty minutes. As another example, the service requestor terminal 130 and/or the service provider terminal 140 may send the positioning information and the availability status to the server 110 each time the user logs into the mobile application associated with the online to offline service.
In some embodiments, the service provider terminal 140 may correspond to one or more vehicles 150. The vehicles 150 may carry the passenger and travel to the destination. The vehicles 150 may include a plurality of vehicles 150-1, 150-2, …, 150-n. One vehicle may correspond to one type of services (e.g., a taxi hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, and a shuttle service) .
The storage device 160 may store data and/or instructions. In some embodiments, the storage device 160 may store data obtained from the service requestor terminal 130 and/or the service provider terminal 140. In some embodiments, the storage device 160 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage device 160 may include a mass storage, removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Exemplary volatile read-and-write memory may include a random access memory (RAM) . Exemplary RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable  programmable ROM (PEROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage device 160 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the storage device 160 may be connected to the network 120 to communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, etc. ) . One or more components in the online to offline service system 100 may access the data or instructions stored in the storage device 160 via the network 120. In some embodiments, the storage device 160 may be directly connected to or communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, etc. ) . In some embodiments, the storage device 160 may be part of the server 110.
The navigation system 170 may determine information associated with an object, for example, one or more of the service requestor terminal 130, the service provider terminal 140, the vehicle 150, etc. In some embodiments, the navigation system 170 may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a BeiDou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS) , etc. The information may include a location, an elevation, a velocity, or an acceleration of the object, or a current time. The navigation system 170 may include one or more satellites, for example, a satellite 170-1, a satellite 170-2, and a satellite 170-3. The satellites 170-1 through 170-3 may determine the information mentioned above independently or jointly. The satellite navigation system 170 may send the information  mentioned above to the network 120, the service requestor terminal 130, the service provider terminal 140, or the vehicle 150 via wireless connections.
In some embodiments, one or more components in the online to offline service system 100 (e.g., the server 110, the service requestor terminal 130, the service provider terminal 140, etc. ) may have permissions to access the storage device 160. In some embodiments, one or more components in the online to offline service system 100 may read and/or modify information related to the passenger, service provider, and/or the public when one or more conditions are met. For example, the server 110 may read and/or modify one or more passengers’information after a service is completed. As another example, the server 110 may read and/or modify one or more service providers’information after a service is completed.
In some embodiments, information exchanging of one or more components in the online to offline service system 100 may be initiated by way of requesting a service. The object of the service request may be any product. In some embodiments, the product may include food, medicine, commodity, chemical product, electrical appliance, clothing, car, housing, luxury, or the like, or any combination thereof. In some other embodiments, the product may include a servicing product, a financial product, a knowledge product, an internet product, or the like, or any combination thereof. The internet product may include an individual host product, a web product, a mobile internet product, a commercial host product, an embedded product, or the like, or any combination thereof. The mobile internet product may be used in a software of a mobile terminal, a program, a system, or the like, or any combination thereof. The mobile terminal may include a tablet computer, a laptop computer, a mobile phone, a personal digital assistance (PDA) , a smart watch, a point of sale (POS) device, an onboard computer, an onboard television, a wearable device, or the like, or any combination thereof. For example, the product may be any software and/or application used in the computer or mobile phone. The software and/or  application may relate to socializing, shopping, transporting, entertainment, learning, investment, or the like, or any combination thereof. In some embodiments, the software and/or application related to transportation may include a traveling software and/or application, a vehicle scheduling software and/or application, a mapping software and/or application, etc. In the vehicle scheduling software and/or application, the vehicle may include a horse, a carriage, a rickshaw (e.g., a wheelbarrow, a bike, a tricycle, etc. ) , a car (e.g., a taxi, a bus, a private car, etc. ) , a train, a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon, etc. ) , or the like, or any combination thereof.
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, the service requestor terminal 130, and/or the service provider terminal 140 may be implemented according to some embodiments of the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
The computing device 200 may be a general-purpose computer or a special purpose computer; both may be used to implement an online to offline service system for the present disclosure. The computing device 200 may be used to implement any component of the online to offline service as described herein. For example, the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to the online to offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
The computing device 200, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The computing device 200 may also include a processor (e.g., the processor 220) , in  the form of one or more processors, for executing program instructions. The exemplary computing device may include an internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read-only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device. The exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or another type of non-transitory storage medium to be executed by the processor 220. The methods and/or processes of the present disclosure may be implemented as the program instructions. The computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components. The computing device 200 may also receive programming and data via network communications.
Merely for illustration, only one CPU and/or processor is illustrated in FIG. 2. Multiple CPUs and/or processors are also contemplated; thus operations and/or method steps performed by one CPU and/or processor as described in the present disclosure may also be jointly or separately performed by the multiple CPUs and/or processors. For example, if in the present disclosure the CPU and/or processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different CPUs and/or processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device 300 according to some embodiments of the present disclosure. As illustrated in FIG. 3, the mobile device 300 may include a communication module 310, a display 320, a graphics processing unit (GPU) 330, a processor 340, an I/O 350, a memory 360, and a storage 390. In some embodiments,  any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300. In some embodiments, a mobile operating system 370 (e.g., iOS TM, Android TM, Windows Phone TM) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the processor 340. The applications 380 may include a browser or any other suitable apps for transmitting, receiving and presenting information relating to the status of the vehicle 150 (e.g., the location of the vehicle 150) from the server 110. User interactions with the information stream may be achieved via the I/O 350 and provided to the server 110 and/or other components of the online to offline service system 100 via the network 120.
FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. The processing engine 112 may include the acquisition module 402, the determination module 404, the generation module 406, the traversing module 408, the comparison module 410, and the transmission module 412. At least a portion of the processing engine 112 may be implemented on a computing device as illustrated in FIG. 2 or a mobile device as illustrated in FIG. 3.
The acquisition module 402 may be configured to obtain, via the network 120, a request for data relating to the geographic region. The geographic region may include a plurality of geographic location points. The plurality of geographic location points may be associated with at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road. The data relating to the geographic region may be embodied in the form of map information.
The determination module 404 may be configured to determine a plurality of data groups for storing the data relating to the geographic region. The data may be associated with the plurality of geographic location points of the geographic region. In  some embodiments, the data may include spatial element data relating to the geographic region. The determination module 404 may determine a plurality of Hilbert distances associated with the plurality of geographic location points. For each geographic location point, the determination module 404 may determine a Hilbert distance. The determination module 404 may designate the plurality of Hilbert distances as a plurality of spatial index values. In some embodiments, the determination module 404 may determine the data relating to geographic location points having the same spatial index value. The determination module 404 may further store the data associated with the same spatial index value into a data group. As such, the processing engine 112 may determine a plurality of data groups, each of which corresponds to a spatial index value (and a Hilbert distance) .
The generation module 406 may be configured to generate, based on the plurality of data groups, a priority queue. The generation module 406 may determine the priority queue based on the plurality of spatial index values and the geographic region. In some embodiments, the priority queue may include a plurality of buffer scope data. Each buffer scope data may include a plurality of queue index values. A buffer scope data may be associated with a part of the geographic region. In some embodiments, a buffer scope data may include a scope data and a buffer data. The buffer data may correspond to geographic location points surrounding the first part of the geographic region; the buffer data may correspond to geographic location points surrounding the part of the geographic region.
The traversing module 408 may be configured to traverse the data groups, starting from the data group associated with the smallest spatial index value. The traversing module 408 may arrange, based on the plurality of spatial index values, the data groups in ascending order. The traversing module 408 may also generate ordered data groups. The traversing module 408 may traverse the ordered data groups, starting from the data group having the smallest spatial index value.
The traversing module 408 may traverse the ordered data groups. In some embodiments, the processing engine 112 may determine the smallest spatial index value among the plurality of spatial index values. The processing engine 112 may traverse the ordered data groups, starting from the data group having the smallest spatial index value.
The comparison module 410 may be configured to determine whether the spatial index value of a currently traversed data group is equal to or larger than the first reference index value. If the comparison module 410 determines that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the comparison module 410 may determine that each of the plurality of first caches may have stored corresponding data. In this situation, the first buffer scope data may be ready to be transmitted to a user. In some embodiments, the data relating to the first part of the geographic region (i.e., the first buffer scope data) may be transmitted to the user in the form of a map. The map may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, the information relating to a building, or the information relating to a road.
In some embodiments, the comparison module 410 may determine a first buffer scope data from the priority queue. The first buffer scope data may include a reference index value. The comparison module 410 may update the priority queue. The comparison module 410 may further update, based on the updated priority queue, the first buffer scope data and the first reference index value.
The transmission module 412 may be configured to transmit, to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , the first buffer scope data in response to the determination that the spatial index value of the currently traversing cache is equal to or larger than the first reference index value. The first buffer scope data may be transmitted to the user terminal in a form of map information.
The storage module 414 may be configured to store the data of a traversed data group into a corresponding cache. The storage module 414 may determine a spatial index value associated with the traversed data group. A queue index value of the corresponding cache may equal to the spatial index value of the traversed data group. The storage module 414 may store the data of the traversed data group into the corresponding cache.
It should be noted that the above description of the processing engine 112 is merely provided for the purpose of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, the determination module 404 and the generation module 406 may be integrated into one single module to perform their functions.
FIG. 5 is a flowchart illustrating an exemplary process for transmitting, to a user terminal, data relating to the first part of a geographic region according to some embodiments of the present disclosure. In some embodiments, the processing engine 112 may perform the process 500 to transmit, to the user terminal, the data relating to the first part of the geographic region. In some embodiments, one or more operations of the process 500 illustrated in FIG. 5 for transmitting, to the user terminal, the data relating to the first part of the geographic region may be implemented in the online to offline service system 100 illustrated in FIG. 1. For example, the process 500 illustrated in FIG. 5 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3) .
In 502, the processing engine 112 (e.g., the acquisition module 402) may obtain, via the network 120, a request for data relating to the geographic region. The  geographic region may include a plurality of geographic location points. The plurality of geographic location points may be associated with at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road. The data relating to the geographic region may be embodied in the form of map information. In some embodiments, a user may, via a user terminal (e.g., the service requestor terminal 130) , open an application for hailing a taxi at a start location in the geographic region (or operate a navigation application) , which means that the user may request for the data relating to the geographic region. The service requestor terminal 130 may transmit the request to the server 110 via the network 120.
In some embodiments, a user may be interested in the geographic region. For example, the user wishes to travel in the geographic region. The user may plan to arrive at a destination from a start location. The geographic region may include the start location and the destination. The user may request, via a user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , for the data relating to the geographic region. As such, the processing engine 112 may obtain the request for the data relating to the geographic region from the user terminal directly or indirectly.
In some embodiments, the geographic region may be associated with a historical service order. As used herein, the term “historical service order” generally refers to a service request that has been completed. For example, a requestor may send a service request for a service (e.g., a transportation service) to the online to offline service system 100. A service provider may accept the service request and provide the service to the requestor, indicating that the service request has been completed. The online to offline service system 100 may save this service request as a historical service order into a storage device (e.g., the storage device 160) .
The historical service order may include a historical start location and a historical destination. The geographic region may include the historical start location,  the historical destination, and geographic location points relating to a route. The service provider may drive the requestor from the start location to the destination along the route. The route may indicate a trace associated with the user (e.g., a service requestor, a service provider) or the vehicle. When the user wishes to search for the historical start location or the historical destination associated with a historical order, the user may request, via the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , for the data relating to the geographic region. As such, the processing engine 112 may obtain the request for the data relating to the geographic region from the user terminal directly or a storage device (e.g., the storage device 160, disk 270) that stores the historical service order.
In 504, the processing engine 112 (e.g., the determination module 404) may determine a plurality of data groups for storing the data relating to the geographic region. The data may be associated with the plurality of geographic location points of the geographic region. In some embodiments, the data may include spatial element data relating to the geographic region. For example, the data may include at least one of:a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road, in the geographic region. The information relating to a building may include a height of the building, a position of the building, one or more exits of the building, one or more entrances of the building, or the like, or a combination thereof. The information relating to a road may include the position of the road, the width of the road, the intersections associated with the road, the traffic conditions of the road, or the like, or a combination thereof.
In some embodiments, the processing engine 112 may determine a plurality of Hilbert distances associated with the plurality of geographic location points. For each geographic location point, the processing engine 112 may determine a Hilbert distance. As used herein, a Hilbert distance refers to a distance in the Hilbert space. The processing engine 112 may designate the Hilbert distances as a plurality of spatial  index values. In the present application, “Hilbert distance” and “spatial index value” may be used interchangeably. The processing engine 112 may determine, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points. The spatial index may be a type of extended index that allows a user to index spatial data (e.g., data relating to geographic location points) .
In some embodiments, the processing engine 112 may determine the data relating to geographic location points having the same spatial index value (i.e., the same Hilbert distance) . The processing engine 112 may further store the data associated with the same spatial index value into a data group. As such, the processing engine 112 may determine a plurality of data groups, each of which corresponds to a spatial index value (i.e., a Hilbert distance) . Geographic location points having the same Hilbert distance may be grouped and form a sub-region of the geographic region.
In 506, the processing engine 112 (e.g., the generation module 406) may generate, based on the plurality of data groups, a priority queue. The priority queue may include a first buffer scope data. The first buffer scope data may be associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region. In some embodiments, the priority queue may be a data type that is like a regular queue or a stack data structure.
The processing engine 112 may determine the priority queue based on the plurality of spatial index values and the geographic region. In some embodiments, the priority queue may include a plurality of buffer scope data. FIG. 9 is a schematic diagram illustrating an exemplary priority queue according to some embodiments of the present disclosure. The priority queue 900 may include a first buffer scope data 902 and a second buffer scope data 904 as illustrated in FIG. 9. The first buffer scope data 902 may correspond to a 6*6 square. The second buffer scope buffer scope data 904 may correspond to another 6*6 square. As used herein, the 6*6 square may refer that  both the width and the length of the 6*6 square are six, assuming the length of a side of each smallest square is one.
Each buffer scope data may include a plurality of queue index values. For example, the first buffer scope data 902 may include a plurality of first queue index values. The plurality of first queue index values may include 8-11 and 24-55 as illustrated in FIG. 9. The first reference index value may be the largest value among the plurality of first queue index values, which is 55. The first buffer scope data 902 may be associated with a first part of the geographic region. The plurality of first queue index values may correspond to a plurality of spatial index values associated with the first part of the geographic region.
The second buffer scope data 904 may include a plurality of second queue index values. The plurality of second queue index values may include 0-19, 28-35, and 52-59 as illustrated in FIG. 9. The second reference index value may be the largest value among the plurality of second queue index values, which is 59. The second buffer scope data may be associated with a second part of the geographic region. The plurality of second queue index values may correspond to a plurality of spatial index values associated with the second part of the geographic region.
In some embodiments, each of the plurality of buffer scope data in the priority queue may include a plurality of queue index values. For each of the plurality of buffer scope data, the processing engine 112 may determine the largest queue index value among the plurality of queue index values. The processing engine 112 may determine a plurality of the largest queue index values, each of the largest queue index values being associated one of the plurality of buffer scope data. The processing engine 112 may determine the smallest value among the largest queue index values. The processing engine 112 may designate the buffer scope data associated with the smallest value as the first buffer scope data. For example, the second reference index value associated with the second buffer scope data is 59 as illustrated in FIG. 9. The  first reference index value associated with the first buffer scope data is 55 and is smaller than the second reference index value (i.e., 59) .
In some embodiments, two buffer scope data may be overlapping. As illustrated in FIG. 9, the first buffer scope data 902 and the second buffer scope data 904 may include shared caches. The shared caches may correspond to smallest squares whose queue index values are 8-11, 28-35, and 52-55.
In some embodiments, a buffer scope data may include a scope data and a buffer data. For example, as illustrated in FIG. 9, the first buffer scope data may include a first scope data 906 and a first buffer data 908; the second buffer scope data may include a second scope data 910 and a second buffer data 912; and so on. The first scope data 906 may correspond to a 4*4 square. The first buffer data 908 may correspond to an area equal to the area of the first buffer scope data 902 subtracted by the area of the first scope data 906. As illustrated in FIG. 9, the first scope data corresponds to smallest squares whose first queue index values are 32-47. The first buffer data corresponds to smallest squares whose first queue index values are 8-11, 24-31, and 48-55. The first buffer data 908 may surround the first scope data 906.
The second scope data 910 may correspond to a 4*4 square. The second buffer data 912 may correspond to an area equal to the area of the second buffer scope data 904 subtracted by the area of the second scope data 910. As illustrated in FIG. 9, the second scope data corresponds to smallest squares whose second queue index values are 0-15. The second buffer data corresponds to smallest squares whose second queue index values are 16-19, 28-35, and 52-59. The second buffer data 912 may surround the second scope data 910.
It should be noted that the above descriptions about the first buffer scope data 902 and the buffer scope data 904 are provided for illustration purposes, and should not be designated as the only practical embodiment. For example, the buffer scope data may be located in the middle of the priority queue. The size of the first  buffer scope data 902 and the size of the second buffer scope data 904 may be different. The first buffer scope data 902 and the second buffer scope data 904 may be spaced apart.
In some embodiments, the first scope data may correspond to geographic location points of the first part of the geographic region; the second scope data may correspond to geographic location points of the second part of the geographic region; and so on. The first buffer data may correspond to geographic location points surrounding the first part of the geographic region; the second buffer data may correspond to geographic location points surrounding the second part of the geographic region; and so on.
In some embodiments, each buffer scope data may include a plurality of caches. As illustrated in FIG. 9, each of the smallest squares may be a cache. For example, the first buffer scope data may include a plurality of first caches. The first caches may correspond to smallest squares whose first queue index values are 0-19, 28-35, and 52-59. A cache may correspond to a queue index value. Different caches may correspond to different queue index values. The caches may store data relating to data groups. A cache may store data associated with a corresponding data group. The queue index value of a cache and the spatial index value associated with the corresponding data group may be the same. For example, the cache corresponding to the queue index value 1 may store the data related to the data group whose spatial index value is 1.
In 508, the processing engine 112 (e.g., the traversing module 408) may traverse the data groups, starting from the data group associated with the smallest spatial index value. As described in connection with step 504, each data group may have a corresponding spatial index value. The processing engine 112 may arrange, based on the plurality of spatial index values, the data groups in ascending order. The processing engine 112 may also generate ordered data groups.
The processing engine 112 may traverse the ordered data groups. In some embodiments, the processing engine 112 may determine the smallest spatial index value among the plurality of spatial index values. The processing engine 112 may traverse the ordered data groups, starting from the data group having the smallest spatial index value.
In some embodiments, the processing engine 112 may determine the spatial index value of a currently traversed data group. The processing engine 112 may determine the corresponding cache associated with the currently traversed data group. A queue index value of the corresponding cache may be equal to the spatial index value of the currently traversed data group. The processing engine 112 may store data of the currently traversed data group into the corresponding cache.
For example, the smallest spatial index value may be 1. The processing engine 112 may firstly traverse the data group having the smallest spatial index value (i.e., 1) . The processing engine 112 may store the data of the data group having the smallest spatial index value into a cache whose queue index value is 1 (hereinafter also referred to as “cache 1” ) . The processing engine 112 may traverse the data group whose spatial index value is 2 (hereinafter also referred to as “data group 2” ) . The processing engine 112 may store the data of the data group 2 into the cache 2. The processing engine 112 may traverse the data group 3. The processing engine 112 may store the data of the data group 3 into the cache 3, and so on. The processing engine 112 may traverse all the data groups.
In 510, the processing engine 112 (e.g., the comparison module 410) may determine whether the spatial index value of the currently traversed data group is equal to or larger than the first reference index value. The first reference index value may be the largest spatial index value among the plurality of first spatial index values. If the processing engine 112 determines that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the processing  engine 112 may determine that each of the plurality of first caches may have stored corresponding data. In this situation, the first buffer scope data may be ready to be transmitted to the user. In some embodiments, the first buffer scope data may be transmitted to the user in the form of a map. The map may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, the information relating to a building, or the information relating to a road.
In 512, the processing engine 112 (e.g., the transmission module 412) may transmit, to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , the first buffer scope data (i.e., the data relating to the first part of the geographic region) in response to the determination that the spatial index value of the currently traversing cache is equal to or larger than the first reference index value. If the processing engine 112 determines that the spatial index value of the currently traversed data group is smaller than the first reference index value, the processing engine 112 may determine that at least some of the first caches may be empty. In this situation, the first buffer scope data may be not ready. The processing engine 112 may continue to traverse the remaining data group (s) . The processing engine 112 may store data into empty first cache (s) when traversing the remaining data groups.
It should be noted that the above descriptions about the processing of transmitting, to the user terminal, the data relating to the first part of the geographic region are provided for illustration purposes, and should not be designated as the only practical embodiment. For persons having ordinary skills in the art, after understanding the general principle of the process for transmitting, to the user terminal, the data relating to the first part of the geographic region, without departing the principle, may modify or change the forms or details of the particular practical ways and steps, and further make simple deductions or substitutions, or may make modifications or combinations of some steps without further creative efforts. However, those variations and modifications do not depart the scope of the present disclosure.  Additionally or alternatively, one or more steps may be omitted. In some embodiments, two or more steps may be integrated into a step, or a step may be separated into two steps. In some embodiments, 504 and 506 may be combined into one operation.
FIG. 6 is a flowchart illustrating an exemplary process for storing the data of a traversed data group into a corresponding cache according to some embodiments of the present disclosure. In some embodiments, the processing engine 112 may perform the process 600 to store the data of the traversed data group into the cache. In some embodiments, one or more operations of the process 600 illustrated in FIG. 6 for storing the data of the traversed data group into the cache may be implemented in the online to offline service system 100 illustrated in FIG. 1. For example, the process 600 illustrated in FIG. 6 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3) .
In 602, the processing engine 112 (e.g., the traversing module 408) may arrange, based on a plurality of spatial index values, a plurality of data groups in ascending order for generating ordered data groups. In some embodiments, the data groups to be arranged may be the data groups generated in step 506 of the process 500 described elsewhere in this disclosure, and steps 508-512 of the process 500 may be performed according to steps 604-608.
In some embodiments, each data group may correspond to a spatial index value. The processing engine 112 may arrange the plurality of data groups in ascending order based on the plurality of spatial index values. The processing engine 112 may also generate the ordered data groups.
In 604, the processing engine 112 (e.g., the traversing module 408) may traverse the ordered data groups, starting from the data group associated with the  smallest spatial index value among the plurality of spatial index values. The processing engine 112 may determine the smallest spatial index value among the plurality of spatial index value. The processing engine 112 may determine the data group associated with the smallest spatial index value. The processing engine 112 may traverse the plurality of data groups, starting from the data group associated with the smallest spatial index value.
In 606, the processing engine 112 (e.g., the traversing module 408) may determine the data of a traversed data group. The processing engine 112 may also determine the spatial index value associated with the traversed data group.
In 608, the processing engine 112 (e.g., the storage module 414) may store the data of the traversed data group into a corresponding cache. As described in connection with step 606, the data of the traversed data group may be associated with a spatial index value (herein after referred to as “traversed spatial index value” ) . A queue index value of the corresponding cache may equal to the traversed spatial index value. The processing engine 112 may store the data of the traversed data group into the corresponding cache.
In some embodiments, as described in connection with step 506, two buffer scope data may include shared caches. If the processing engine 112 stores the data of the traversed data group into a shared cache, the processing engine 112 may store the data of the traversed data group into the two buffer scope data including the shared cache. For example, as illustrated in FIG. 9, if the spatial index value of the currently traversed data group is 28, the processing engine 112 may store the data of the traversed data group into cache 28 in the first buffer scope data 902 and into cache 28 in the second buffer scope data 904. As used herein, cache 28 may refer the cache whose queue index value is 28. For the data groups whose spatial index values are smaller than a spatial index value of a currently traversed data group, the processing  engine 112 may store data of the data groups into the priority queue (e.g., one or more buffer scope data) .
It should be noted that the above descriptions about the processing of storing the data of the traversed data group into the cache are provided for illustration purposes, and should not be designated as the only practical embodiment. For persons having ordinary skills in the art, after understanding the general principle of the process for storing the data of the traversed data group into the cache, without departing the principle, may modify or change the forms or details of the particular practical ways and steps, and further make simple deductions or substitutions, or may make modifications or combinations of some steps without further creative efforts. However, those variations and modifications do not depart the scope of the present disclosure. Additionally or alternatively, one or more steps may be omitted. In some embodiments, two or more steps may be integrated into a step, or a step may be separated into two steps. In some embodiments, 606 and 608 may be combined into one operation.
FIG. 7 is a flowchart illustrating an exemplary process for determining a designated first buffer scope data and a designated first reference index value according to some embodiments of the present disclosure. In some embodiments, the processing engine 112 may perform the process 700 to determine the designated first buffer scope data and the designated first reference index value. In some embodiments, one or more operations of the process 700 illustrated in FIG. 7 for determining the designated first buffer scope data and the designated first reference index value may be implemented in the online to offline service system 100 illustrated in FIG. 1. For example, the process 700 illustrated in FIG. 7 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3) . In some  embodiments, step 510 of process 500 may be performed based on the process 700 for determining whether a spatial index value of a currently traversed data group is equal to or larger than a first reference index value.
In 702, the processing engine 112 (e.g., the comparison module 410) may obtain, from the priority queue, a second buffer scope data associated with a plurality of second queue index values. Similar to the first buffer scope data, the second buffer scope data may be associated with a plurality of second queue index values, a second part of the geographic region, and a second reference index value. In some embodiments, the first part of the geographic region and the second part of the geographic region may overlap, adjoin to each other, or be spaced apart.
The second buffer scope data may include a plurality of second caches. The plurality of second queue index values may correspond to the plurality of second caches. For example, each second cache may correspond to a second queue index value. Different second caches may have different second queue index values.
In 704, the processing engine 112 (e.g., the comparison module 410) may determine the largest second queue index value among the plurality of second queue index values and designate it as the second reference index value.
In 706, the processing engine 112 (e.g., the comparison module 410) may determine whether the second reference index value is smaller than the first reference index value. The processing engine 112 may compare the second reference index value with the first reference index value. The processing engine 112 may determine whether the second reference index value is smaller than the first reference index value.
In 708, the processing engine 112 (e.g., the comparison module 410) may designate the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value.
In 710, the processing engine 112 (e.g., the comparison module 410) may designate the second reference index value as the first index value in response to the determination that the second reference index value is smaller than the first reference index value. The processing engine 112 may also designate the second part of the geographic region as the first part of the geographic region in response to the determination that the second reference index value is smaller than the first reference index value. If the processing engine 112 determines that the second reference index value is equal to or larger than the first reference index value, the first buffer scope data may remain as the first buffer scope data.
In 712, the processing engine 112 (e.g., the comparison module 410) may determine whether the spatial index value of a currently traversed data group is equal to or larger than the designated first reference index value. The processing engine 112 may obtain or determine the spatial index value of the currently traversed data group. The processing engine 112 may compare the spatial index value of the currently traversed data group with the designated first reference index value. The processing engine 112 may determine a larger value and/or a smaller value between the spatial index value of the currently traversed data group and the designated first reference index value.
If the processing engine112 determines that the spatial index value of a currently traversed data group is equal to or larger than the designated first reference index value, the processing engine 112 may output the designated first buffer scope data. The processing engine 112 may transmit the first buffer scope data to the user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) . If the processing engine 112 determines that the spatial index value of a currently traversed data group is smaller than the designated first reference index value, the processing engine 112 may continue to traverse the data groups.
It should be noted that the above descriptions about the processing of determining the designated first buffer scope data and the designated first reference index value are provided for illustration purposes, and should not be designated as the only practical embodiment. For persons having ordinary skills in the art, after understanding the general principle of the process for determining the designated first buffer scope data and the designated first reference index value, without departing the principle, may modify or change the forms or details of the particular practical ways and steps, and further make simple deductions or substitutions, or may make modifications or combinations of some steps without further creative efforts. However, those variations and modifications do not depart the scope of the present disclosure. Additionally or alternatively, one or more steps may be omitted. In some embodiments, two or more steps may be integrated into a step, or a step may be separated into two steps. In some embodiments, 708 and 710 may be combined into one operation.
FIG. 8 is a flowchart illustrating an exemplary process for traversing a plurality of data groups according to some embodiments of the present disclosure. In some embodiments, the processing engine 112 may perform the process 800 to traverse the plurality of data groups. In some embodiments, one or more operations of the process 800 illustrated in FIG. 8 for traversing the plurality of data groups may be implemented in the online to offline service system 100 illustrated in FIG. 1. For example, the process 800 illustrated in FIG. 8 may be stored in the storage device 160 in the form of instructions, and invoked and/or executed by the processing engine 112 (e.g., the processor 220 of the computing device 200 as illustrated in FIG. 2, the processor 340 of the mobile device 300 as illustrated in FIG. 3) .
In 802, the processing engine 112 (e.g., the traversing module 408) may traverse a plurality of data groups. More descriptions of traversing the plurality of data  groups can be found elsewhere in the present disclosure (e.g., FIGs. 5-7, and the descriptions thereof) .
In 804, the processing engine 112 (e.g., the storage module 414) may store data of traversed data groups into caches. More descriptions of storing data of the traversed data groups into caches can be found elsewhere in the present disclosure (e.g., FIGs. 5-7 and the descriptions thereof) .
In 806, the processing engine 112 (e.g., the comparison module 410) may determine whether each cache in the first buffer scope data has stored data of a corresponding data group. The processing engine 112 may determine a spatial index value of a currently traversed data group. The processing engine 112 may compare the spatial index value of the currently traversed data group with the first reference index value. If the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the processing engine 112 may determine that each cache in the first buffer scope data stores data of a corresponding data group. If the spatial index value of the currently traversed data group is smaller than the first reference index value, the processing engine 112 may traverse the remaining data group (s) and store data into empty cache (s) in the first buffer scope data.
In some embodiments, the first buffer scope data may include data relating to the first part of the geographic region. The data relating to the first part of the geographic region may be in the form of map information. The map information may include at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, the information relating to a building, or the information relating to a road.
In 808, the processing engine 112 (e.g., the transmission module 412) may output the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group. In some embodiments, the processing engine 112 may transmit, to the  user terminal (e.g., the service requestor terminal 130, the service provider terminal 140) , the first buffer scope data in the form of map information.
In 810, the processing engine 112 (e.g., the generation module 406) may update the priority queue by removing the first buffer scope data from the priority queue. As such, the processing engine 112 may determine or obtain an updated priority queue.
In 812, the processing engine 112 (e.g., the generation module 406) may obtain a new first buffer scope data and a new first reference index value based on the updated priority queue. As described in connection with step 506, the processing engine 112 may determine a plurality of largest queue index values associated with the updated priority queue. The processing engine 112 may determine the smallest queue index value among the plurality of largest queue index values. The processing engine 112 may designate, from the updated priority queue, the buffer scope data associated with the smallest value as the new first buffer scope data.
The new first buffer scope data may include a plurality of new first queue index values. The processing engine 112 may designate the largest first queue index value among the plurality of new first queue index values as the new first reference index value.
In 814, the processing engine 112 (e.g., the comparison module 410) may determine whether the spatial index value of the currently traversed data group is equal to the largest spatial index value among the plurality of spatial index values. If the spatial index value of the currently traversed data group is smaller than the largest spatial index value among the plurality of spatial index values, the processing engine 112 may return to 802 and perform steps 802 to 814 as described in this disclosure. In 802, the processing engine 112 may continue to traverse the remaining data groups. In 804, the processing engine 112 may store data of newly traversed data groups into corresponding caches. In 806, the processing engine 112 may determine whether each cache in the new first buffer scope data has stored data of a corresponding data  group. In 808, the processing engine 112 may output the new first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data has stored data of the corresponding data group. In 810, the processing engine 112 may update the updated priority queue by removing the new first buffer scope data from the updated priority queue. In 812, the processing engine 112 may continue to update the new first buffer scope data and update the new first reference index value.
If the spatial index value of the currently traversed data group is equal to the largest spatial index value among the plurality of spatial index values, the processing engine 112 may have traversed all the plurality of data groups. The process 800 may end in 816.
It should be noted that the above descriptions about the processing of traversing the plurality of data groups are provided for illustration purposes, and should not be designated as the only practical embodiment. For persons having ordinary skills in the art, after understanding the general principle of the process for traversing the plurality of data groups, without departing the principle, may modify or change the forms or details of the particular practical ways and steps, and further make simple deductions or substitutions, or may make modifications or combinations of some steps without further creative efforts. However, those variations and modifications do not depart the scope of the present disclosure. Additionally or alternatively, one or more steps may be omitted. In some embodiments, two or more steps may be integrated into a step, or a step may be separated into two steps.
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations,  improvements, and modifications are intended to be suggested by this disclosure and are within the spirit and scope of the exemplary embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment, ” “one embodiment, ” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
Further, it will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable medium having computer readable program code embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electromagnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a  computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
Computer program code for carrying out steps for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover  modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution-e.g., an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.

Claims (34)

  1. A system for transmitting data of a geographic region to a user terminal, the system comprising:
    a storage device storing a set of instructions; and
    one or more processors in communication with the storage device, wherein when executing the set of instructions, the one or more processors are configured to cause the system to:
    obtain, via a network, a request for data relating to the geographic region from the user terminal, the geographic region including a plurality of geographic location points;
    determine a plurality of data groups for storing the data relating to the plurality of geographic location points, the plurality of data groups being associated with a plurality of spatial index values;
    generate, based on the plurality of data groups, a priority queue including a first buffer scope data, wherein
    the first buffer scope data is associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region;
    traverse the plurality of data groups starting from a data group associated with a smallest spatial index value among the plurality of spatial index values;
    determine whether a spatial index value of a currently traversed data group is equal to or larger than the first reference index value; and
    transmit, to the user terminal, data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  2. The system of claim 1, wherein to determine the plurality of data groups for storing the data relating to the plurality of geographic location points, the one or more processors are further configured to cause the system to:
    determine a plurality of Hilbert distances relating to the plurality of geographic location points;
    store data being associated with geographic location points having a same Hilbert distance into a same data group; and
    designate the plurality of Hilbert distances as the plurality of spatial index values.
  3. The system of claim 2, the one or more processors are further configured to cause the system to:
    determine, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points.
  4. The system of any one of claims 1-3, wherein the data relating to the plurality of geographic location points includes at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road.
  5. The system of any one of claims 1-4, wherein the first buffer scope data includes a first scope data and a first buffer data, the first scope data being corresponding to geographic location points of the first part of the geographic region, the first buffer data being corresponding to geographic location points surrounding the first part of the geographic region.
  6. The system of any one of claims 1-5, wherein the first reference index value is a  largest value among the plurality of first queue index values.
  7. The system of any one of claims 1-6, wherein to traverse the plurality of data groups starting from the data group associated with the smallest spatial index value among the plurality of spatial index values, the one or more processors are further configured to cause the system to:
    arrange, based on the plurality of spatial index values, the plurality of data groups in ascending order for generating ordered data groups; and
    traverse the ordered data groups.
  8. The system of claim 7, wherein the first buffer scope data includes a plurality of caches, each cache being associated with a first queue index value.
  9. The system of claim 8, wherein the one or more processors are further configured to cause the system to:
    traverse the ordered data groups starting from a data group associated with the smallest spatial index value among the plurality of spatial index values.
    determine data of a traversed data group; and
    store the data of the traversed data group into a cache, a first queue index value of the cache being equal to the spatial index value associated with the traversed data group.
  10. The system of claim 9, wherein to determine whether the spatial index value of the currently traversed data group is equal to or larger than the first reference index value, the one or more processors are further configured to cause the system to:
    obtain a second buffer scope data from the priority queue, wherein
    the second buffer scope data are associated with a plurality of second queue  index values, a second reference index value, and a second part of the geographic region;
    designate a largest second queue index value among the plurality of second queue index values as the second reference index value;
    determine whether the second reference index value is smaller than the first reference index value;
    designate the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value;
    designate the second reference index value as the first index value in response to the determination that the second reference index value is smaller than the first reference index value; and
    determine whether the spatial index value of the currently traversed data group is equal to or larger than the designated first reference index value.
  11. The system of claim 10, wherein the one or more processors are further configured to cause the system to:
    determine whether each cache in the first buffer scope data stores data of a corresponding data group;
    output the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group;
    update the priority queue by removing the first buffer scope data from the priority queue; and
    obtain a new first buffer scope data and a new first reference index value based on the updated priority queue.
  12. A method implemented on a computing device having one or more processors and a storage device, the method comprising:
    obtaining, via a network, a request for data relating to a geographic region from a user terminal, the geographic region including a plurality of geographic location points;
    determining a plurality of data groups for storing the data relating to the plurality of geographic location points, the plurality of data groups being associated with a plurality of spatial index values;
    generating, based on the plurality of data groups, a priority queue including a first buffer scope data, wherein
    the first buffer scope data is associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region;
    traversing the plurality of data groups starting from a data group associated with a smallest spatial index value among the plurality of spatial index values;
    determining whether a spatial index value of a currently traversed data group is equal to or larger than the first reference index value; and
    transmitting, to the user terminal, data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  13. The method of claim 12, wherein determining the plurality of data groups for storing the data relating to the plurality of geographic location points comprises:
    determining a plurality of Hilbert distances relating to the plurality of geographic location points;
    storing data being associated with geographic location points having a same Hilbert distance into a same data group; and
    designating the plurality of Hilbert distances as the plurality of spatial index values.
  14. The method of claim 13, further comprising:
    determining, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points.
  15. The method of any one of claims 12-14, wherein the data relating to the plurality of geographic location points includes at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road.
  16. The method of any one of claims 12-15, wherein the first buffer scope data includes a first scope data and a first buffer data, the first scope data being corresponding to geographic location points of the first part of the geographic region, the first buffer data being corresponding to geographic location points surrounding the first part of the geographic region.
  17. The method of any one of claims 12-16, wherein the first reference index value is a largest value among the plurality of first queue index values.
  18. The method of any one of claims 12-17, wherein traversing the plurality of data groups starting from the data group associated with the smallest spatial index value among the plurality of spatial index values comprises:
    arranging, based on the plurality of spatial index values, the plurality of data groups in ascending order for generating ordered data groups; and
    traversing the ordered data groups.
  19. The method of claim 18, wherein the first buffer scope data includes a plurality of  caches, each cache being associated with a first queue index value.
  20. The method of claim 19, comprising:
    traversing the ordered data groups starting from a data group associated with the smallest spatial index value among the plurality of spatial index values.
    determining data of a traversed data group; and
    storing the data of the traversed data group into a cache, a first queue index value of the cache being equal to the spatial index value associated with the traversed data group.
  21. The method of claim 20, wherein determining whether the spatial index value of the currently traversed data group is equal to or larger than the first reference index value comprises:
    obtaining a second buffer scope data from the priority queue, wherein
    the second buffer scope data are associated with a plurality of second queue index values, a second reference index value, and a second part of the geographic region;
    designating a largest second queue index value among the plurality of second queue index values as the second reference index value;
    determining whether the second reference index value is smaller than the first reference index value;
    designating the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value;
    designating the second reference index value as the first index value in response to the determination that the second reference index value is smaller than the first reference index value; and
    determining whether the spatial index value of the currently traversed data group is equal to or larger than the designated first reference index value.
  22. The method of claim 21, comprising:
    determining whether each cache in the first buffer scope data stores data of a corresponding data group;
    outputting the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group;
    updating the priority queue by removing the first buffer scope data from the priority queue; and
    obtaining a new first buffer scope data and a new first reference index value based on the updated priority queue.
  23. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a system, cause the system to:
    obtain, via a network, a request for data relating to a geographic region from a user terminal, the geographic region including a plurality of geographic location points;
    determine a plurality of data groups for storing the data relating to the plurality of geographic location points, the plurality of data groups being associated with a plurality of spatial index values;
    generate, based on the plurality of data groups, a priority queue including a first buffer scope data, wherein
    the first buffer scope data is associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region;
    traverse the plurality of data groups starting from a data group associated with a smallest spatial index value among the plurality of spatial index values;
    determine whether a spatial index value of a currently traversed data group is equal to or larger than the first reference index value; and
    transmit, to the user terminal, data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  24. A system, comprising:
    an acquisition module configured to obtain, via a network, a request for data relating to a geographic region from a terminal, the geographic region including a plurality of geographic location points;
    a determination module configured to determine a plurality of data groups for storing the data relating to the plurality of geographic location points, the plurality of data groups being associated with a plurality of spatial index values;
    a generation module configured to generate, based on the plurality of data groups, a priority queue including a first buffer scope data, wherein
    the first buffer scope data is associated with a plurality of first queue index values, a first reference index value, and a first part of the geographic region;
    a traversing module configured to traverse the plurality of data groups, starting from a data group associated with a smallest spatial index value among the plurality of spatial index values;
    a comparison module configured to determine whether a spatial index value of a currently traversed data group is equal to or larger than the first reference index value; and
    a transmission module configured to transmit, to the user terminal, data relating to the first part of the geographic region in response to the determination that the spatial index value of the currently traversed data group is equal to or larger than the first reference index value.
  25. The system of claim 24, further comprising a storage module, wherein:
    the determination module is further configured to determine a plurality of Hilbert distances relating to the plurality of geographic location points;
    the storage module is configured to store data being associated with geographic location points having a same Hilbert distance into a same data group; and
    the determination module is further configured to designate the plurality of Hilbert distances as the plurality of spatial index values.
  26. The system of claim 25, wherein the determination module is further configured to determine, based on the plurality of Hilbert distances, a spatial index relating to the plurality of geographic location points.
  27. The system of any one of claims 24-26, wherein the data relating to the plurality of geographic location points includes at least one of: a trace of a person, a trace of an animal, a trace of a vehicle, information relating to a building, or information relating to a road.
  28. The system of any one of claims 24-27, wherein the first buffer scope data includes a first scope data and a first buffer data, the first scope data being corresponding to geographic location points of the first part of the geographic region, the first buffer data being corresponding to geographic location points surrounding the first part of the geographic region.
  29. The system of any one of claims 24-28, wherein the first reference index value is a largest value among the plurality of first queue index values.
  30. The system of any one of claims 24-29, wherein:
    the traversing module is further configured to arrange, based on the plurality of spatial index values, the plurality of data groups in ascending order for generating ordered data groups; and
    the traversing module is further configured to traverse the ordered data groups.
  31. The system of claim 30, wherein the first buffer scope data includes a plurality of caches, each cache being associated with a first queue index value.
  32. The system of claim 31, further comprising a storage module, wherein:
    the traversing module is further configured to traverse the ordered data groups, starting from a data group associated with the smallest spatial index value among the plurality of spatial index values;
    the traversing module is further configured to determine data of a traversed data group; and
    the storage module is further configured to store the data of the traversed data group into a cache, a first queue index value of the cache being equal to the spatial index value associated with the traversed data group.
  33. The system of claim 32, wherein:
    the comparison module is further configured to obtain a second buffer scope data from the priority queue, wherein
    the second buffer scope data are associated with a plurality of second queue index values, a second reference index value, and a second part of the geographic region;
    the comparison module is further configured to designate a largest second queue  index value among the plurality of second queue index values as the second reference index value;
    the comparison module is further configured to determine whether the second reference index value is smaller than the first reference index value;
    the comparison module is further configured to designate the second buffer scope data as the first buffer scope data in response to the determination that the second reference index value is smaller than the first reference index value;
    the comparison module is further configured to designate the second reference index value as the first index value in response to the determination that the second reference index value is smaller than the first reference index value; and
    the comparison module is further configured to determine whether the spatial index value of the currently traversed data group is equal to or larger than the designated first reference index value.
  34. The system of claim 33, wherein:
    the comparison module is further configured to determine whether each cache in the first buffer scope data stores data of a corresponding data group;
    the transmission module is further configured to output the first buffer scope data from the priority queue in response to the determination that each cache in the buffer scope data stores data of the corresponding data group;
    the generation module is further configured to update the priority queue by removing the first buffer scope data from the priority queue; and
    the generation module is further configured to obtain a new first buffer scope data and a new first reference index value based on the updated priority queue.
PCT/CN2018/089012 2018-05-30 2018-05-30 Systems and methods for traversing spatial data WO2019227338A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201880001006.7A CN110832811B (en) 2018-05-30 2018-05-30 System and method for transmitting spatial data
PCT/CN2018/089012 WO2019227338A1 (en) 2018-05-30 2018-05-30 Systems and methods for traversing spatial data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/089012 WO2019227338A1 (en) 2018-05-30 2018-05-30 Systems and methods for traversing spatial data

Publications (1)

Publication Number Publication Date
WO2019227338A1 true WO2019227338A1 (en) 2019-12-05

Family

ID=68697661

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/089012 WO2019227338A1 (en) 2018-05-30 2018-05-30 Systems and methods for traversing spatial data

Country Status (2)

Country Link
CN (1) CN110832811B (en)
WO (1) WO2019227338A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021045A1 (en) * 2014-07-16 2016-01-21 International Business Machines Corporation Routing messages based on geolocation information
US20160085773A1 (en) * 2014-09-18 2016-03-24 Snapchat, Inc. Geolocation-based pictographs
CN106506343A (en) * 2016-12-15 2017-03-15 山西省交通科学研究院 A kind of accident potential's Check System and method based on global position system
CN107133364A (en) * 2017-06-08 2017-09-05 浙江同力信息科技有限公司 Regular bus inquiry system based on wechat platform

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7580792B1 (en) * 2005-10-28 2009-08-25 At&T Corp. Method and apparatus for providing traffic information associated with map requests
CN101082934A (en) * 2007-06-19 2007-12-05 北京师范大学 Three-dimensional visual method of very-large-scale space data in network surroundings
CN102013015B (en) * 2010-12-02 2013-03-06 南京大学 Object-oriented remote sensing image coastline extraction method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021045A1 (en) * 2014-07-16 2016-01-21 International Business Machines Corporation Routing messages based on geolocation information
US20160085773A1 (en) * 2014-09-18 2016-03-24 Snapchat, Inc. Geolocation-based pictographs
CN106506343A (en) * 2016-12-15 2017-03-15 山西省交通科学研究院 A kind of accident potential's Check System and method based on global position system
CN107133364A (en) * 2017-06-08 2017-09-05 浙江同力信息科技有限公司 Regular bus inquiry system based on wechat platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XU SHAOWEN ET AL.: "A NEW METHOD BASED ON THE HILLBERT CURVE FOR SPATIAL QUERY UNDER WEB-GIS ENVIRONMENT", JOURNAL OF JIUJIANG UNIVERSITY, 30 June 2008 (2008-06-30), pages 12 - 15 *

Also Published As

Publication number Publication date
CN110832811A (en) 2020-02-21
CN110832811B (en) 2021-12-28

Similar Documents

Publication Publication Date Title
US11017662B2 (en) Systems and methods for determining a path of a moving device
AU2017101872A4 (en) Systems and methods for distributing request for service
US20210140774A1 (en) Systems and methods for recommending pick-up locations
US10876847B2 (en) Systems and methods for route planning
US20200013020A1 (en) Methods and systems for carpooling
EP3717871B1 (en) Systems and methods for path determination
US11580451B2 (en) Systems and methods for determining estimated time of arrival
US20200141741A1 (en) Systems and methods for determining recommended information of a service request
WO2019174630A1 (en) Systems and methods for determining destination of navigation
US11468374B2 (en) Methods and systems for carpool services
WO2021035577A1 (en) Systems and methods for identifying island areas in a road network
US11255684B2 (en) Systems and methods for allocating a service request
WO2022126354A1 (en) Systems and methods for obtaining estimated time of arrival in online to offline services
WO2019227338A1 (en) Systems and methods for traversing spatial data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18920255

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18920255

Country of ref document: EP

Kind code of ref document: A1