WO2019232702A1 - System and method for determining location identifier - Google Patents

System and method for determining location identifier Download PDF

Info

Publication number
WO2019232702A1
WO2019232702A1 PCT/CN2018/090034 CN2018090034W WO2019232702A1 WO 2019232702 A1 WO2019232702 A1 WO 2019232702A1 CN 2018090034 W CN2018090034 W CN 2018090034W WO 2019232702 A1 WO2019232702 A1 WO 2019232702A1
Authority
WO
WIPO (PCT)
Prior art keywords
geographic
location
coordinate
cells
location identifier
Prior art date
Application number
PCT/CN2018/090034
Other languages
French (fr)
Inventor
Kehua SHENG
Zhen Zhang
Jianhang LAN
Yue Wang
Taixu JIANG
Quancheng RAO
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 PCT/CN2018/090034 priority Critical patent/WO2019232702A1/en
Priority to CN201880044139.2A priority patent/CN110832886B/en
Publication of WO2019232702A1 publication Critical patent/WO2019232702A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services

Definitions

  • the present disclosure generally relates to on-demand services, and in particular, relates to systems and methods for assigning a location identifier associated with an object.
  • on-demand services such as online taxi hailing services and delivery services
  • precision marketing of the on-demand services relies on accurate acquisition of location information of the users (e.g., passengers, drivers, etc. ) .
  • the on-demand service may obtain a uniform cell structure with lower areal and angular distortions, and further simplify data analysis for the acquisition of location information.
  • a system may be configured to assign a location identifier associated with an object.
  • the system may include at least one storage including a set of instructions or programs; and/or at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor may be configured to cause the system to: obtain a geographic coordinate corresponding to a geographic location of the object; obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and/or determine the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
  • a system may be configured to determine an area including a geographic location of an object.
  • the system may include at least one storage including a set of instructions or programs; and/or at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor may be configured to cause the system to: obtain a location identifier associated with the object; determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier; obtain a shape of the plurality of cells; determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier; determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate; determine a plurality of geographic locations on earth corresponding to the plurality of vertexes
  • a system may be configured to determine a current service capacity of an on-demand service platform.
  • the system may include at least one storage including a set of instructions or programs; and/or at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor may be configured to cause the system to: determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers; determine a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells; update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and/or for each of the plurality of discrete global grid cells, determine a current number of requests for on-demand service, determine a current number of available service providers, and/or determine a current service capacity gap based on
  • a method is provided.
  • the method may be implemented on at least one device each of which has at least one processor and a storage for assigning a location identifier associated with an object.
  • the method may include: obtaining a geographic coordinate corresponding to a geographic location of the object; obtaining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determining a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and/or determining the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
  • a method may be implemented on at least one device each of which has at least one processor and a storage for determining an area including a geographic location of an object.
  • the method may include: obtaining a location identifier associated with the object; determining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier; obtaining a shape of the plurality of cells; determining a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier; determining a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate; determining a plurality of geographic locations on earth corresponding to the plurality of vertexes; and/or determining the area based on the plurality of geographic locations.
  • a method may be implemented on at least one device each of which has at least one processor and a storage for determining a service capacity of an on-demand service platform.
  • the method may include: determining, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers; determining a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells; updating a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and/or for each of the plurality of discrete global grid cells, determining a current number of requests for on-demand service, determining a current number of available service providers, and/or determining a current service capacity gap based on the current number of requests and the current number of available service providers.
  • a non-transitory computer readable medium embodying a computer program product may include instructions configured to cause a computing device to: obtain a geographic coordinate corresponding to a geographic location of the object; obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and/or determine the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
  • a non-transitory computer readable medium embodying a computer program product may include instructions configured to cause a computing device to: obtain a location identifier associated with the object; determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier; obtain a shape of the plurality of cells; determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier; determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate; determine a plurality of geographic locations on earth corresponding to the plurality of vertexes; and/or determine the area based on the plurality of geographic locations.
  • a non-transitory computer readable medium embodying a computer program product may include instructions configured to cause a computing device to: determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers; determine a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells; update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and/or for each of the plurality of discrete global grid cells, determine a current number of requests for on-demand service, determine a current number of available service providers, and/or determine a current service capacity gap based on the current number of requests and the current number of available service providers.
  • the polyhedron representing the earth may be an octahedron having eight faces with a substantially same size and/or shape.
  • the plurality of cells of the polyhedron representing the earth may be generated by producing, on one or more faces of the octahedron, a plurality of first cells at an initial resolution, and/or performing one or more iterations to divide the first cells according to the refinement level.
  • the at least one processor may be further configured to cause the system to: transform the geographic coordinate to a spherical coordinate; transform the spherical coordinate to a Cartesian coordinate; and/or transform the Cartesian coordinate to the first projection coordinate.
  • each cell of the plurality of cells may have a shape of hexagon, which has a center point, and to determine the location identifier associated with the object, the at least one processor may be further configured to cause the system to: determine a target center point nearest to the first projection coordinate of the geographic location of the object; and/or determine the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target center point on the corresponding face.
  • each cell of the plurality of cells may have a shape of rhombus, each adjacent three or more cells of the plurality of cells may have a common point, and to determine the location identifier associated with the object, the at least one processor may be further configured to cause the system to: determine a target common point having an integer coordinate of the first projection coordinate of the geographic location of the object; and/or determine the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target common point on the corresponding face.
  • the at least one processor may be further configured to cause the system to: transform a plurality of projection coordinates of the plurality of vertexes to a plurality of Cartesian coordinates; transform the plurality of Cartesian coordinates to a plurality of spherical coordinates; and/or transform the plurality of spherical coordinates to a plurality of geographic coordinates corresponding to the plurality of geographic locations on earth.
  • the at least one processor may be further configured to cause the system to: receive a service request that includes a departure location; determine a location identifier based on the departure location; and/or update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by adding 1 to the current number of requests of the discrete global grid cell.
  • the at least one processor may be further configured to cause the system to: receive a request response for serving a service request from an available service provider, wherein the service request may include a departure location; determine a location identifier based on the departure location; and/or update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by subtracting 1 from the current number of requests of the discrete global grid cell.
  • the at least one processor may be further configured to cause the system to: for each available service provider, obtain a geographic coordinate corresponding to a geographic location of the each available service provider; obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determine a first projection coordinate of the geographic location of the each available service provider on a corresponding face of the polyhedron based on the geographic coordinate; and/or determine the location identifier associated with the each available service provider based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the each available service provider.
  • FIG. 1 is a schematic diagram of an exemplary on-demand service system according to some embodiments of the present disclosure
  • FIG. 2 is a block diagram of an exemplary mobile device configured to implement a specific system disclosed in the present disclosure
  • FIG. 3 is a block diagram illustrating an exemplary computing device according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure
  • FIG. 5 is a block diagram illustrating an exemplary location identifier assignment module according to some embodiments of the present disclosure
  • FIG. 6 is a block diagram illustrating an exemplary area determination module according to some embodiments of the present disclosure.
  • FIG. 7 is a block diagram illustrating an exemplary service capacity gap determination module according to some embodiments of the present disclosure.
  • FIG. 8 is a flowchart of an exemplary process for assigning a location identifier associated with an object according to some embodiments of the present disclosure
  • FIG. 9 is a schematic diagram illustrating an octahedron representing the earth according to some embodiments of the present disclosure.
  • FIGs. 10A-10C are schematic diagrams illustrating exemplary refinement operations for refining a face of an octahedron according to some embodiments of the present disclosure
  • FIGs. 11A and 11 B are schematic diagrams illustrating an exemplary projection coordinate system on a face of an octahedron according to some embodiments of the present disclosure
  • FIG. 12 is a flowchart of an exemplary process for determining the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron according to some embodiments of the present disclosure
  • FIG. 13 is a schematic diagram illustrating a point P in the geographic coordinate system according to some embodiments of the present disclosure.
  • FIG. 14 is a schematic diagram illustrating a point P in the spherical coordinate system according to some embodiments of the present disclosure.
  • FIG. 15A is a graph illustrating the arctan function curve according to some embodiments of the present disclosure.
  • FIG. 15B is a graph illustrating the arccos function curve according to some embodiments of the present disclosure.
  • FIG. 16 is a schematic diagram illustrating the transformation of the Cartesian coordinate to the first projection coordinate according to some embodiments of the present disclosure
  • FIG. 17A is a flowchart of an exemplary process for determining a location identifier associated with the object according to some embodiments of the present disclosure
  • FIG. 17B is a flowchart of an exemplary process for determining a location identifier associated with the object according to some embodiments of the present disclosure
  • FIG. 18A is a schematic diagram illustrating a target center point in a hexagon-shaped cell according to some embodiments of the present disclosure
  • FIG. 18B is a schematic diagram illustrating a target common point in a rhombus-shaped cell according to some embodiments of the present disclosure.
  • FIG. 19 is a schematic diagram illustrating the ascription of the target center point of a crossover cell according to some embodiments of the present disclosure.
  • FIG. 20 is a flowchart of an exemplary process for determining an area including a geographic location of an object according to some embodiments of the present disclosure
  • FIG. 21A is a schematic diagram illustrating the vertexes in a hexagon-shaped cell according to some embodiments of the present disclosure
  • FIG. 21B is a schematic diagram illustrating the vertexes in a rhombus-shaped cell according to some embodiments of the present disclosure.
  • FIG. 21C is a schematic diagram illustrating neighboring cells of a rhombus-shaped cell according to some embodiments of the present disclosure.
  • FIG. 21D is a schematic diagram illustrating neighboring cells of a hexagon-shaped cell according to some embodiments of the present disclosure.
  • FIGs. 22A and 22B are schematic diagrams illustrating a plurality of discrete global grid cells on earth according to some embodiments of the present disclosure
  • FIG. 23 is a flowchart of an exemplary process for transforming a plurality of projection coordinates to a plurality of geographic locations on earth according to some embodiments of the present disclosure
  • FIG. 24 is a flowchart of an exemplary process for determining a service capacity of an on-demand service platform according to some embodiments of the present disclosure
  • FIG. 25 is a flowchart of an exemplary process for determining a mapping relation between a user identifier of an available service provider and a location identifier according to some embodiments of the present disclosure
  • FIG. 26A is a flowchart of an exemplary process for determining a current number of requests for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure
  • FIG. 26B is a flowchart of an exemplary process for determining a current number of request for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure
  • FIG. 27A is a schematic diagram illustrating the display of a plurality of discrete global grid cells associated with the current service capacity gap on a map according to some embodiments of the present disclosure.
  • FIG. 27B is a schematic diagram illustrating an enlarged view of a sub-region indicated by the dashed line in FIG. 27A according to some embodiments of the present disclosure.
  • system, ” “module, ” and/or “block” used herein are one method to distinguish different components, elements, parts, section or assembly of different level in ascending order. However, the terms may be displaced by another expression if they achieve the same purpose.
  • module refers to logic embodied in hardware or firmware, or to a collection of software instructions.
  • a module or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable medium or another storage device.
  • a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or themselves, and/or may be invoked in response to detected events or interrupts.
  • Software modules/units/blocks configured for execution on computing devices (e.g., the processor 320 as illustrated in FIG.
  • a computer-readable medium such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) .
  • a computer-readable medium such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) .
  • Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device.
  • Software instructions may be embedded in firmware, such as an Electrically Programmable Read-Only-Memory (EPROM) .
  • EPROM Electrically Programmable Read-Only-Memory
  • modules/units/blocks may be included in connected logic components, such as gates and flip-flops, and/or can be included in programmable units, such as programmable gate arrays or processors.
  • the modules/units/blocks or computing device functionality described herein may be implemented as software modules/units/blocks but may be represented in hardware or firmware.
  • the modules/units/blocks described herein refer to logical modules/units/blocks that may be combined with other modules/units/blocks or divided into sub-modules/sub-units/sub-blocks despite their physical organization or storage. The description may apply to a system, an engine, or a portion thereof.
  • module or block when a module or block is referred to as being “connected to, ” or “coupled to, ” another module, or block, it may be directly connected or coupled to, or communicate with the other module, or block, or an intervening unit, engine, module, or block may be present, unless the context clearly indicates otherwise.
  • the term “and/or” includes any and all combinations of one or more of the associated listed items.
  • the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
  • the system or method of the present disclosure may be applied to any other kind of online on-demand service.
  • the system or method of the present disclosure may be applied to different transportation systems 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, a bicycle, a tricycle, a motorcycle, or the like, or any combination thereof.
  • the system or method of the present disclosure may be applied to taxi hailing, chauffeur services, delivery service, carpool, bus service, take-out service, driver hiring, vehicle hiring, bicycle sharing service, train service, subway service, shuttle services, location service, or the like.
  • the system or method of the present disclosure may be applied to shopping service, learning service, fitness service, financial service, social service, or the like.
  • the application scenarios of the system or method of the present disclosure may 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 object of the on-demand service may be any product.
  • the product may be a tangible product or an immaterial product.
  • the tangible product may include food, medicine, commodity, chemical product, electrical appliance, clothing, car, housing, luxury, or the like, or any combination thereof.
  • the immaterial 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.
  • 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 relating to transporting 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 horse e.g., 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 e.g., a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon, etc.
  • user in the present disclosure may refer to an individual, an entity, or a tool that may request a service, order a service, provide a service, or facilitate the providing of the service.
  • user terminal may be used interchangeably.
  • FIG. 1 is a block diagram of an exemplary on-demand service system 100 according to some embodiments.
  • the on-demand service system 100 may be an online on-demand service system for transportation services (e.g., taxi hailing, chauffeur services, delivery services, carpool, bus services, take-out services, driver hiring, vehicle hiring, train services, subway services, shuttle services) , shopping services, fitness services, learning services, financial services, or the like.
  • transportation services e.g., taxi hailing, chauffeur services, delivery services, carpool, bus services, take-out services, driver hiring, vehicle hiring, train services, subway services, shuttle services
  • shopping services e.g., fitness services, learning services, financial services, or the like.
  • the on-demand service system 100 may include a server 110, a network 120, one or more user terminals (e.g., one or more passenger terminals 130, driver terminals 140) , and a storage 150.
  • a server 110 may include a server 110, a network 120, one or more user terminals (e.g., one or more passenger terminals 130, driver terminals 140) , and a storage 150.
  • user terminals e.g., one or more passenger terminals 130, driver terminals 140
  • storage 150 e.g., a storage 150.
  • the server 110 may include a processing engine 112. It should be noted that the on-demand service system 100 shown in FIG. 1 is merely an example, and not intended to be limiting. In some embodiments, the on-demand service system 100 may include the passenger terminal (s) 130 or the driver terminal (s) 140. In some embodiments, the on-demand service system 100 may assign a location identifier associated with an object (e.g., a passenger associated with a passenger terminal 130, a driver associated with a driver terminal 140, a building, a point of interest (POI) , etc. ) .
  • POI point of interest
  • the on-demand service system 100 may determine an area including a geographic location of an object (e.g., a passenger associated with a passenger terminal 130, a driver associated with a driver terminal 140, a building, a point of interest (POI) , etc. ) .
  • the on-demand service system 100 may determine a service capacity (e.g., a real-time service capacity) of an on-demand service platform.
  • the server 110 may be a single server, or a server group.
  • the server group may be centralized, or distributed (e.g., 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 one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) , and/or the storage 150 via the network 120.
  • the server 110 may be directly connected to the one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) , and/or the storage 150 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 300 having one or more components illustrated in FIG. 3 in the present disclosure.
  • the server 110 may include a processing engine 112.
  • the processing engine 112 may process information and/or data relating to one or more objects.
  • the processing engine 112 may assign a location identifier associated with an object based on a geographic location of the object, determine an area including a geographic location of the object based on a location identifier, and/or determine a service capacity (e.g., a real-time service capacity) of an on-demand service platform in the area.
  • the object may include a user (e.g., a passenger, a driver, etc. ) , a building, a POI, etc.
  • the processing engine 112 may include one or more processing engines (e.g., signal-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
  • the network 120 may facilitate exchange of information and/or data.
  • one or more components in the on-demand service system 100 e.g., the server 110, the one or more passenger terminals 130 the one or more driver terminal 140, or the storage 150
  • the server 110 may send information and/data to other component (s) in the on-demand service system 100 via the network 120.
  • the server 110 may obtain/acquire service request from the passenger terminal 130 via the network 120.
  • the server 110 may receive information relating to one or more objects from the storage 150 directly or via the network 120.
  • the server 110 may receive information relating to one or more objects from the passenger terminal 130 and/or the driver terminal 140 via the network 120.
  • the network 120 may be any type of wired or wireless network, or any combination thereof.
  • the network 120 may include a cable network, a wireline network, an optical fiber network, a telecommunications 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 (PTSN) , 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 on-demand service system 100 may be connected to the network 120 to exchange data and/or information.
  • the passenger 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 motor 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 combination thereof.
  • the wearable device may include a smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a 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 assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination.
  • 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 Glass, an Oculus Rift, a Hololens, a Gear VR, etc.
  • built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc.
  • the passenger terminal 130 may be a device with positioning technology for locating the position of the service requester and/or the passenger terminal 130.
  • the driver terminal 140 may be similar to, or the same device as the passenger terminal 130. In some embodiments, the driver terminal 140 may be a device with positioning technology for locating the position of the driver and/or the driver terminal 140. In some embodiments, the passenger terminal 130 and/or the driver terminal 140 may communicate with other positioning device to determine the position of the service requester, the passenger terminal 130, the driver, and/or the driver terminal 140. In some embodiments, the passenger terminal 130 and/or the driver terminal 140 may send positioning information to the server 110.
  • the storage 150 may store data and/or instructions.
  • the data may be a training model, one or more training samples, historical orders, or the like, or a combination thereof.
  • the storage 150 may store data obtained from the one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) .
  • the storage 150 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure.
  • the storage 150 may include a mass storage, a 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 drives, 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.
  • DRAM dynamic RAM
  • DDR SDRAM double date rate synchronous dynamic RAM
  • SRAM static RAM
  • T-RAM thyristor RAM
  • Z-RAM zero-capacitor RAM
  • Exemplary ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically-erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
  • the storage 150 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 150 may be connected to the network 120 to communicate with one or more components in the on-demand service system 100 (e.g., the server 110, the one or more user terminals, etc. ) .
  • One or more components in the on-demand service system 100 may access the data and/or instructions stored in the storage 150 via the network 120.
  • the storage 150 may be directly connected to or communicate with one or more components in the on-demand service system 100 (e.g., the server 110, the one or more user terminals, etc. ) .
  • the storage 150 may be part of the server 110.
  • one or more components in the on-demand service system 100 may have a permission to access the storage 150.
  • one or more components in the on-demand service system 100 may read and/or modify information relating to the service requester, driver, and/or the public when one or more conditions are met.
  • the server 110 may read and/or modify one or more users'information after a service.
  • the on-demand service system 100 is merely an example for illustrating an application of the processing engine 112 for assigning a location identifier, determining an area, and/or determining a service capacity.
  • the processing engine 112 may be implemented on one or more other systems (e.g., a customer relationship management system, a project risk management system, an education management system, etc. ) .
  • a customer relationship management system e.g., a customer relationship management system, a project risk management system, an education management system, etc.
  • the above description of the processing engine 112 and the on-demand service system 100 is provided for the purposes of illustration, and is not intended to limit the scope of the present disclosure.
  • FIG. 2 is a block diagram of an exemplary mobile device 200 configured to implement a specific system disclosed in the present disclosure.
  • a user terminal device configured to display and communicate information related to locations may be a mobile device 200.
  • the mobile device 200 may include but is not limited to a smartphone, a tablet computer, a music player, a portable game console, a GPS receiver, a wearable calculating device (e.g. glasses, watches, etc. ) , or the like.
  • the mobile device 200 may include one or more central processing units (CPUs) 240, one or more graphical processing units (GPUs) 230, a display 220, a memory 260, a communication unit 210, a storage unit 290, and one or more input/output (I/O) devices 250.
  • the mobile device 200 may also be any other suitable component that includes but is not limited to a system bus or a controller (not shown in FIG. 2) .
  • a mobile operating system 270 e.g. IOS, Android, Windows Phone, etc.
  • one or more applications 280 may be loaded from the storage unit 290 to the memory 260 and implemented by the CPUs 240.
  • the application 280 may include a browser or other mobile applications configured to receive and process information related to a query (e.g., a name of a location) inputted by a user in the mobile device 200.
  • the passenger/driver may obtain information related to one or more search results through the system I/O device 250, and provide the information to the server 110 and/or other modules or units of the on-demand service system 100 (e.g., the network 120) .
  • a computer hardware platform may be used as hardware platforms of one or more elements (e.g., the server 110 and/or other sections of the on-demand service system 100 described in FIG. 1 through FIG. 27) . Since these hardware elements, operating systems and program languages are common, it may be assumed that persons skilled in the art may be familiar with these techniques and they may be able to provide information required in the on-demand service according to the techniques described in the present disclosure.
  • a computer with user interface may be used as a personal computer (PC) , or other types of workstations or terminal devices. After being properly programmed, a computer with user interface may be used as a server. It may be considered that those skilled in the art may also be familiar with such structures, programs, or general operations of this type of computer device. Thus, extra explanations are not described for the Figures.
  • FIG. 3 is a block diagram illustrating exemplary hardware and software components of a computing device 300 on which the server 110, the one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) may be implemented according to some embodiments of the present disclosure.
  • the computing device 300 may be configured to perform one or more functions of the server 110, passenger terminal 130, and driver terminal 140 disclosed in this disclosure.
  • the processing engine 112 may be implemented on the computing device 300 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
  • the computing device 300 may be a general-purpose computer or a special purpose computer, both may be used to implement an on-demand service system 100 for the present disclosure.
  • the computing device 300 may be used to implement any component of the on-demand service system 100 as described herein.
  • the processing engine 112 may be implemented on the computing device 300, via its hardware, software program, firmware, or a combination thereof.
  • only one such computer is shown, for convenience, the computer functions relating to the search 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 300 may include COM ports 250 connected to and from a network connected thereto to facilitate data communications.
  • the computing device 300 may also include a processor 320, in the form of one or more processors, for executing program instructions.
  • the exemplary computer platform may include an internal communication bus 310, program storage and data storage of different forms, for example, a disk 370, and a read only memory (ROM) 330, or a random access memory (RAM) 340, for various data files to be processed and/or transmitted by the computer.
  • the exemplary computer platform may also include program instructions stored in the ROM 330, RAM 340, and/or other type of non-transitory storage medium to be executed by the processor 320.
  • the methods and/or processes of the present disclosure may be implemented as the program instructions.
  • the computing device 300 may also include an I/O component 360, supporting input/output between the computer and other components therein.
  • the computing device 300 may also receive programming and data via network communications.
  • the computing device 300 may also include a hard disk controller communicated with a hard disk, a keypad/keyboard controller communicated with a keypad/keyboard, a serial interface controller communicated with a serial peripheral equipment, a parallel interface controller communicated with a parallel peripheral equipment, a display controller communicated with a display, or the like, or any combination thereof.
  • a hard disk controller communicated with a hard disk
  • a keypad/keyboard controller communicated with a keypad/keyboard
  • a serial interface controller communicated with a serial peripheral equipment
  • a parallel interface controller communicated with a parallel peripheral equipment
  • a display controller communicated with a display, or the like, or any combination thereof.
  • the computing device 300 in the present disclosure may also include multiple CPUs and/or processors, thus operations and/or method steps that are 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 300 executes both step A and step B
  • step A and step B may also be performed by two different CPUs and/or processors jointly or separately in the computing device 300 (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. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure.
  • the processing engine 112 may be in communication with a computer-readable storage (e.g., the storage 150, a user terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. ) and may execute instructions stored in the computer-readable storage medium.
  • the processing engine 112 may include an acquisition module 402, a location identifier assignment module 404, an area determination module 406, a service capacity gap determination module 408, and a display module 410.
  • the acquisition module 402 may be configured to obtain data and/or information related to the on-demand service system 100.
  • the acquisition module 402 may obtain information related to an object as described elsewhere in this disclosure.
  • the object may be any composition of organic and/or inorganic matters that are with or without life and located on earth.
  • the object may be a service provider (e.g., a driver) or a service requester (e.g., a passenger) using an on-demand service platform.
  • the acquisition module 402 may obtain position information and/or available status of the object. The availability status may indicate whether the object (e.g., the service provider) is available to provide a service.
  • the acquisition module 402 may obtain a location identifier associated with the object.
  • the acquisition module 402 may obtain a service request and/or a request response for serving the service request from the object.
  • the acquisition module 402 may obtain information related to a polyhedron representing the earth in a discrete global grid system (DGGS) .
  • DGGS discrete global grid system
  • the acquisition module 402 may obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of the polyhedron representing the earth.
  • the acquisition module 402 may obtain a shape of the plurality of cells. More descriptions of the polyhedron representing the earth may be found elsewhere in the present disclosure (e.g., FIGs. 8-11 and the description thereof) .
  • the acquisition module 402 may obtain the data and/or information related to the on-demand service system 100 from a user terminal (e.g., the passenger terminal 130, the driver terminal 140, etc. ) , the storage 150, and/or an external data source (not shown) . In some embodiments, the data acquisition module 402 may obtain the data and/or information related to the on-demand service system 100 via the network 120.
  • a user terminal e.g., the passenger terminal 130, the driver terminal 140, etc.
  • the storage 150 e.g., the storage 150
  • an external data source not shown
  • the data acquisition module 402 may obtain the data and/or information related to the on-demand service system 100 via the network 120.
  • the location identifier assignment module 404 may be configured to determine or assign a location identifier for the object.
  • the location identifier may be represented as a combination of one or more numbers, one or more letters, one or more symbols, etc.
  • the location identifier assignment module 404 may determine or assign the location identifier based on information relating to the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or the first projection coordinate of the geographic location of the object. More descriptions of the determination of the location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 8-11 and the description thereof) .
  • the area determination module 406 may be configured to determine an area including a geographic location of an object. In some embodiments, the area determination module 406 may determine the area based on a location identifier associated with the object and a shape of a plurality of cells that divide one or more faces of a polyhedron representing the earth.
  • the location identifier associated with the object may include information relating to the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or the first projection coordinate of the geographic location of the object.
  • the area determination module 406 may determine a plurality of vertexes of a cell including the first projection coordinate on a corresponding face based on the shape of cells and the first projection coordinate of the geographic location of the object.
  • the area determination module 406 may then determine the area based on a plurality of geographic locations corresponding to the plurality of vertexes. More descriptions of the determination of the area may be found elsewhere in the present disclosure (e.g., FIGs. 20-23 and the description thereof) .
  • the service capacity gap determination module 408 may be configured to determine a service capacity gap of an on-demand service platform. In some embodiments, the service capacity gap determination module 408 may determine a current service capacity gap in one or more of a plurality of discrete global grid cells corresponding to one or more regions based on a current number of requests and a current number of available service providers in each of the plurality of discrete global grid cells. For example, for each of the discrete global grid cells, the service capacity gap determination module 408 may determine the current service capacity gap based on a difference between the current number of requests and the current number of available service providers in the discrete global grid cell.
  • the display module 410 may be configured to display information relating to the on-demand service system 100.
  • the display module 410 may display the information on a map or a user interface of an application.
  • the display module 410 may display the information on a display (e.g., the display 220) .
  • the information displayed may include the service capacity gap in one or more regions corresponding to one or more discrete global grid cells.
  • the display module 410 may represent the current service capacity gap in each discrete global grid cell by a colored icon. The color of the colored icon may relate to the value of the current service capacity gap.
  • the display module 410 may display the color based on a red, green, and blue (RGB) system.
  • the information displayed may include an area on earth corresponding to one or more discrete global grid cells, one or more geographic coordinates, etc.
  • processing engine 112 may include one or more other modules.
  • the processing engine 112 may include a storage module to store data generated by the modules in the processing engine 112.
  • any two of the modules may be combined as a single module, and any one of the modules may be divided into two or more units.
  • FIG. 5 is a block diagram illustrating an exemplary location identifier assignment module 404 according to some embodiments of the present disclosure.
  • the location identifier assignment module 404 may include a projection coordinate determination unit 502 and a location identifier determination unit 504.
  • the projection coordinate determination unit 502 may be configured to determine the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron. In some embodiments, the projection coordinate determination unit 502 may determine the first projection coordinate based on the geographic coordinate of the geographic location of the object. In some embodiments, the projection coordinate determination unit 502 may determine the first projection coordinate based on one or more coordinate transformation operations. For example, the projection coordinate determination unit 502 may transform the geographic coordinate corresponding to the geographic location of the object to a spherical coordinate. The projection coordinate determination unit 502 may then transform the spherical coordinate to a Cartesian coordinate. The projection coordinate determination unit 502 may further transform the Cartesian coordinate to the first projection coordinate. More descriptions of the coordinate transformation operations may be found elsewhere in the present disclosure (e.g., FIGs. 12 through 16 and the description thereof) .
  • the location identifier determination unit 504 may be configured to determine the location identifier associated with the object. In some embodiments, if the cells on the face of an octahedron have a shape of hexagon, the location identifier determination unit 504 may determine a target center point nearest to the first projection coordinate of the geographic location of the object. The location identifier determination unit 504 may then determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target center point on the corresponding face.
  • the location identifier determination unit 504 may determine a target common point having an integer coordinate of the first projection coordinate of the geographic location of the object. The location identifier determination unit 504 may then determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target common point on the corresponding face.
  • FIG. 6 is a block diagram illustrating an exemplary area determination module 406 according to some embodiments of the present disclosure.
  • the area determination module 406 may include an interpretation unit 602, a vertex determination unit 604, and a geographic coordinate determination unit 606.
  • the interpretation unit 602 may be configured to interpret information relating to the object and/or the polyhedron representing the earth based on the location identifier. In some embodiments, the interpretation unit 602 may interpret a refinement level relating to a resolution of a plurality of cells that divide one or more faces of the octahedron representing the earth based on the location identifier. For example, the processing engine 112 may parse the field “L12” representing the refinement level in a location identifier “OL12F3i4567j7890” , and may determine the refinement level as 12. In some embodiments, the interpretation unit 602 may interpret a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron.
  • the processing engine 112 may parse the field “i4567j7890” representing the projection coordinate in the location identifier “OL12F3i4567j7890” , and may determine the first projection coordinate as (45.67, 78.90) .
  • the vertex determination unit 604 may be configured to determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face. In some embodiments, the vertex determination unit 604 may determine the plurality of vertexes based on the shape of the cells and the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron. More descriptions of the determination of the vertexes of the cell including the first projection coordinate on the corresponding face may be found elsewhere in the present disclosure (e.g., FIGs. 20 and 21 and the description thereof) .
  • the geographic coordinate determination unit 606 may be configured to determine a plurality of geographic locations on earth corresponding to a plurality of points on a corresponding face. In some embodiments, the geographic coordinate determination unit 606 may determine the plurality of geographic locations on earth corresponding to the plurality of vertexes. In some embodiments, the geographic coordinate determination unit 606 may determine the geographic coordinates of the plurality of vertexes based on one or more coordinate transformation operations. For example, the geographic coordinate determination unit 606 may transform a plurality of projection coordinates to a plurality of Cartesian coordinates, and transform the Cartesian coordinates to a plurality of spherical coordinates, and further transform the spherical coordinates to the geographic coordinates. More descriptions of the transformation of the projection coordinates to the geographic coordinates may be found elsewhere in the present disclosure (e.g., FIG. 23 and the description thereof) .
  • FIG. 7 is a block diagram illustrating an exemplary service capacity gap determination module 408 according to some embodiments of the present disclosure.
  • the service capacity gap determination module 408 may include a request number determination unit 702, a service provider number determination unit 704, a mapping relation determination unit 706, and an updating unit 708.
  • the request number determination unit 702 may be configured to determine the number of requests for the on-demand service.
  • the service provider number determination unit 704 may determine a current number of requests in one or more discrete global grid cells.
  • the request number determination unit 702 may determine the current number of requests for the on-demand service in the discrete global grid cells based on the number of requests and the number of request responses for serving the service requests in the discrete global grid cells. For example, the current number of requests for the on-demand service in a discrete global grid cell may be a difference between the number of requests and the number of request responses in the discrete global grid cell.
  • the service provider number determination unit 704 may be configured to determine the number of service providers for the on-demand service. In some embodiments, the service provider number determination unit 704 may determine a current number of available service providers in one or more discrete global grid cells. The available service providers may indicate that the service provider is available to provide a service. In some embodiments, the service provider number determination unit 704 may determine the current number of available service providers in the discrete global grid cells based on position information and availability status of the service providers. In some embodiments, the service provider number determination unit 704 may determine the current number of available service providers in the discrete global grid cells based on a mapping relation between user identifiers of the available service providers and a plurality of location identifiers. More descriptions of the mapping relation between user identifiers of the available service providers and the location identifiers may be found elsewhere in the present disclosure (e.g., FIGs. 24, 25 and the description thereof) .
  • the mapping relation determination unit 706 may be configured to determine a mapping relation between the user identifiers of the available service providers and the location identifiers.
  • a user identifier may be associated with identity information of a service provider. More descriptions of the user identifier may be found elsewhere in the present disclosure (e.g., FIG. 24 and the description thereof) .
  • the mapping relation determination unit 706 may determine the mapping relation between the user identifiers of the available service providers and the location identifiers based on recorded location identifiers for the available service providers.
  • a “recorded location identifier” for an available service provider may refer to a location identifier corresponding to a previously determined geographic coordinate of the available service provider.
  • the updating unit 708 may be configured to update information related to the on-demand service system 100.
  • geographic locations of the available service providers may change with time.
  • the updating unit 708 may update the recorded location identifiers for the available service providers.
  • the updating unit 708 may update the recorded location identifiers for the available service providers as the current location identifiers for the available service providers.
  • a “current location identifier” for an available service provider may refer to a location identifier corresponding to a current geographic coordinate of the available service provider.
  • the processing engine 112 may update the mapping relation between the user identifiers of the available service providers and the location identifiers based on the current location identifiers for the available service providers.
  • the number of service requests and/or the number of request responses may change with time.
  • the updating unit 708 may update the number of requests and/or the number of request responses in one or more discrete global grid cells.
  • the updating unit 708 may update the current number of requests and/or the number of request responses in real time. More descriptions of the update of the current number of requests and/or the number of request responses may be found elsewhere in the present disclosure (e.g., FIGs. 24-26 and the description thereof) .
  • FIG. 8 is a flowchart of an exemplary process 800 for assigning a location identifier associated with an object according to some embodiments of the present disclosure.
  • the process 800 for assigning a location identifier associated with an object may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 800 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 800 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 800 as illustrated in FIG. 8 and described below is not intended to be limiting.
  • the processing engine 112 may obtain a geographic coordinate corresponding to a geographic location of an object.
  • the object may be any composition of organic and/or inorganic matters that are with or without life and located on earth.
  • the object may be a service provider (e.g., a driver) or a service requester (e.g., a passenger) using an on-demand service platform.
  • the geographic coordinate corresponding to the geographic location of the object may include longitudinal and latitudinal coordinates of a position where the object locates.
  • the processing engine 112 may obtain the geographic coordinate of the object from one or more components of the on-demand service system 100.
  • the object may be associated with a device with positioning function, and the processing engine 112 may obtain the geographic coordinate from the device.
  • the processing engine 112 may obtain the geographic coordinate via a GPS receiver mounted on a portable device associated with the object (e.g., a passenger terminal 130, a driver terminal 140, etc. ) .
  • the processing engine 112 may continuously or periodically obtain a real-time geographic coordinate of the object from the device.
  • the device with positioning function may transmit the geographic coordinate of the object to the storage (e.g., the storage 150, the storage 290) via the network 120 continuously or periodically.
  • the processing engine 112 may access the storage and retrieve one or more geographic coordinates of the object.
  • the processing engine 112 may obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth.
  • the earth may be modeled based on a discrete global grid system (DGGS) .
  • DGGS discrete global grid system
  • the earth may be approximated as a polyhedron.
  • the polyhedron representing the earth may have any shape, for example, a tetrahedron, a cube, an octahedron, an icosahedron, a dodecahedron, etc.
  • the polyhedron representing the earth may be an octahedron having eight faces with a substantially same size and shape, as shown in FIG. 9.
  • FIG. 9 is a schematic diagram illustrating an octahedron representing the earth according to some embodiments of the present disclosure.
  • the octahedron has six vertexes.
  • the longitudinal and latitudinal coordinates of the six vertexes in a geographic coordinate system may be (0, 90) , (0, -90) , (0, 0) , (90, 0) , (-90, 0) , and (180, 0) .
  • Two of the vertexes e.g., A and F
  • the other four vertexes e.g., B, C, D, and E
  • Point G may represent the center point of the earth.
  • the octahedron has eight faces (e.g., ⁇ ABC, ⁇ ACD, ⁇ ADE, ⁇ AEB, ⁇ FBC, ⁇ FCD, ⁇ FDE, ⁇ FEB) , which may correspond to eight equal portions of the surface of the earth.
  • ⁇ ABC, ⁇ ACD, ⁇ ADE, and ⁇ AEB may correspond to a quarter of the northern hemisphere surface of the earth, respectively.
  • ⁇ FBC, ⁇ FCD, ⁇ FDE, and ⁇ FEB may correspond to a quarter of the southern hemisphere surface of the earth, respectively.
  • each face of the polyhedron may be divided into a plurality of cells.
  • Each cell may have a shape such as but not limited to hexagon, rhombus, square, rectangle, triangle, etc.
  • the cells formed with a division have the same size and shape.
  • the cells formed with a division have different sizes and shapes.
  • a relatively fine resolution of the DGGS may be realized when a face is divided into more cells with smaller areas.
  • a refinement operation may be applied to subdividing faces to generate finer cells.
  • the refinement operation may refer to the conversion of a set of relatively coarse cells to relatively finer cells.
  • the refinement operation may be performed for one or more times.
  • the refinement level may refer to the number of times of refinements.
  • the refinement level may be a default value determined by the processing engine 112 or set by a user or operator via a terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. ) .
  • the processing engine 112 may obtain the refinement level from the storage 150, the passenger terminal 130, and/or the driver terminal 140.
  • the processing engine 112 may obtain the refinement level from the I/O 230 of the computing device 200 via the communication port 240, and/or the I/O 350 of the mobile device 300 via the communication platform 310.
  • the processing engine 112 may obtain the refinement level from an external data source connected to the on-demand service system 100 via the network 120.
  • one or more faces of the polyhedron e.g., the octahedron
  • Each refinement operation may be performed based on a refinement factor.
  • the refinement factor may relate to how fine a cell may be divided in a single refinement operation.
  • the plurality of cells of the polyhedron representing the earth may be generated based on a 1-to-m refinement.
  • the number m may be the refinement factor.
  • a cell (or a face of the polyhedron) with an area of A may be divided into cells with an area of A/m.
  • each cell may be divided into four cells.
  • the number of cells may grow exponentially by a factor of four from one resolution to a next.
  • two or more refinement operations in different number of times may be performed based on a same refinement factor. In some embodiments, two or more refinement operations in different number of times may be performed based on different refinement factors. For example, a 1-to-4 refinement may be performed in a first refinement operation, and subsequently a 1-to-2 refinement may be performed in a second refinement operation.
  • the plurality of cells of one or more faces of the polyhedron representing the earth may be generated by performing one or more iterations of refinement operations to divide each face according to the refinement level and/or one or more refinement factors.
  • FIGs. 10A-10C are schematic diagrams illustrating exemplary refinement operations for refining a face of an octahedron according to some embodiments of the present disclosure. As shown in FIGs. 10A-10C, ⁇ HIJ may represent an exemplary face of an octahedron. As shown in FIG. 10A, in a first refinement operation, a 1-to-4.5 refinement may be performed, and 4.5 first cells having a shape of rhombus may be generated.
  • the processing engine 112 may determine two points of trisection along each side of the face ⁇ HIJ to obtain a plurality of first points at resolution 1.
  • the three vertexes H, I, and J may be regarded as first points.
  • the first points may include the points g, j, k, m, n, and i.
  • the terms “first point” and “first level equal diversion point” are used interchangeably.
  • a plurality of first cells may be formed based on the first points.
  • the first cells may include three complete rhombuses (e.g., the rhombus “Hghi, ” “gjkh, ” hospicen) and three incomplete rhombuses (e.g., the semi-rhombus “jIk, ” “hkm, ” “nmJ” ) .
  • the first cells may be regarded as resolution 1 cells.
  • the refinement level of the resolution 1 cells may be 1.
  • the processing engine 112 may perform one or more iterations of the refinement operation to generate cells at different resolutions. As shown in FIG. 10B, in a second refinement operation, a 1-to-4 refinement may be performed, and 4 cells having a shape of rhombus may be generated based on each first cell. Specifically, the processing engine 112 may determine a point of bisection between each two of the plurality of first points along each side of the face ⁇ HIJ to obtain a plurality of second points at resolution 2. At resolution 2, the three vertexes H, I, and J may be regarded as second points. In the present disclosure, the terms “second point” and “second level equal diversion point” are used interchangeably.
  • a plurality of second cells may be formed based on the second points.
  • the second cells may be regarded as resolution 2 cells.
  • the refinement level of the resolution 2 cells may be 2.
  • a 1-to-4 refinement may be performed, and 4 cells having a shape of rhombus may be generated based on each second cell.
  • the processing engine 112 may determine a point of bisection between each two of the plurality of second points along each side of the face ⁇ HIJ to obtain a plurality of third points at resolution 3.
  • the three vertexes H, I, and J may be regarded as third points.
  • the terms “third point” and “third level equal diversion point” are used interchangeably.
  • a plurality of third cells may be formed based on the third points.
  • the third cells may be regarded as resolution 3 cells.
  • the refinement level of the resolution 3 cells may be 3.
  • further refinement operations e.g., 1-to-4 refinements
  • Each cell at lower resolution (s) may be represented at a relatively high resolution.
  • the resolution 1 cells and the resolution 2 cells may be represented by resolution 3 cells.
  • the shape of the plurality of cells may be determined based on the shape of the face of the polyhedron, one or more refinement factors, and/or the refinement level.
  • the shape of the cells may be triangle or hexagon in addition to rhombus.
  • a same refinement operation may generate different shapes of cells with different refinement factors.
  • the refinement factor is 4.5 for rhombus but 9/7 for hexagon, and no hexagon is formed.
  • a semi-hexagon indicated by the dashed lines is defined by the vertexes points a, b, c, d, e, and f, and have a center point h.
  • FIG. 10A the refinement factor is 4.5 for rhombus but 9/7 for hexagon, and no hexagon is formed.
  • a semi-hexagon indicated by the dashed lines is defined by the vertexes points a, b, c, d, e, and f, and have a center point h.
  • FIG. 10A the refinement factor is 4.5
  • the refinement factor is 4 for rhombus but 3.5 for hexagon.
  • the refinement factor is 4 for rhombus but 3.5 for hexagon.
  • the hexagons are indicated by dashed lines in FIGs. 10B and 10C.
  • the shape of the plurality of cells may be set manually or be determined by one or more components of the on-demand service system 100 according to different situations.
  • the number of points on a face of the polyhedron generated by the refinement operations as shown in FIGs. 10A-10C may be determined as follows:
  • V e (T n ) 3*2 n-1 +1, (1)
  • V (T n ) 9*2 n-2 (2 n-1 +1) +1, (3)
  • V e (T n ) may refer to the number of points on one side of a face of the octahedron
  • n may refer to the refinement level
  • M e (T n ) may refer to the number of equal segments on one side of a face of the octahedron
  • V (T n ) may refer to the number of all the points on one face of the octahedron
  • E (T n ) may refer to the number of segments between two adjacent points on a face of the octahedron
  • F (T n ) may refer to the number of finest triangles on a face of the octahedron.
  • points H, g, j, and I may be on one side (e.g., side “HI” ) of the octahedron.
  • Ten points H, g, j, I, k, m, J, n, i, and h may be on one face (e.g., face “HIJ” ) of the octahedron.
  • Rhombus-shaped cells may have a plurality of features, for example: simple geometry, consistent direction, radial symmetry, translational congruity, easy for space operation (e.g., neighborhood search) , etc.
  • Hexagon-shaped cells may have a plurality of features, for example: uniform neighborhood relationship, the distances between two center points of any two adjacent hexagon-shaped cells being the same, high spatial coverage, neighborhood consistency, etc.
  • the uniform neighborhood relationship may indicate that each hexagon-shaped cell has six adjacent hexagon-shaped cells, and each hexagon-shaped cell and an adjacent hexagon-shaped cell have a common side.
  • a projection coordinate system may be constructed for each of the faces of the polyhedron.
  • AC and AD may be designated as an I-axis and a J-axis.
  • An axis passing through the vertex A and perpendicular to the face ⁇ ACD may be designated as a K-axis.
  • a face of the polyhedron may have a plurality of points including the vertexes of the cells and the points inside the cells. Each of the plurality of points may have a corresponding projection coordinate on the face of the polyhedron.
  • the projection coordinate of a point on a face of the polyhedron may be determined based on an origin of the projection coordinate system on the face and one or more basis vectors, as shown in FIGs. 11A and 11B.
  • FIGs. 11A and 11 B are schematic diagrams illustrating an exemplary projection coordinate system on a face of an octahedron according to some embodiments of the present disclosure.
  • the projection coordinates of the points on the face of the octahedron may be determined based on the projection coordinates of vertexes of the faces, and the refinement level.
  • face “KLM” may be one of the faces of the octahedron representing the earth.
  • the number of points on one side of the face “KLM” may be determined based on Equation (6) :
  • V e 3*2 n-1 +1, (6)
  • V e may refer to the number of points on one side of the face “KLM” ; and n may refer to the refinement level.
  • a vertex (e.g., vertex K) may be regarded as an origin of the projection coordinate system.
  • two basis vectors e.g., a first basis vector and a second basis vector ) may be determined based on the vector the vector and/or the number of points on one side of the face KLM V e .
  • the first basis vector may refer to a vector formed by the origin K and an adjacent nth level equal diversion point along the direction.
  • the second basis vector may refer to a vector formed by the origin K and an adjacent nth level equal diversion point along the direction.
  • the basis vectors may be determined based on Equation (7) :
  • the projection coordinate of a point on the face “KLM” may be determined based on the two basis vectors.
  • any point (e.g., a point X) on the face “KLM” may be represented by a vector and the vector may be represented as and thus, the projection coordinate of the point X on the face “KLM” may be represented as (i, j) , in which i may be an integer equal to 0, 1, ..., or V e -1, j may be an integer equal to 0, 1, ..., or V e -1, and i+j may be equal to or less than V e -1.
  • the projection coordinates of points in rhombus-shaped cells at different refinement levels may be interconvertible.
  • the projection coordinate of a first rhombus-shaped cell at refinement level n may be determined based on the projection coordinate of a second rhombus-shape cell at refinement level q (q>n) , as illustrated in Equation (8) :
  • (ii, jj) may refer to the projection coordinate of the first rhombus-shaped cell at refinement level n in the projection coordinate system, and (i, j) may refer to the projection coordinate of the second rhombus-shaped cell at refinement level q in the projection coordinate system.
  • the processing engine 112 may determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate.
  • the processing engine 112 may determine the corresponding face based on the geographic location of the object. For example, as illustrated in FIG. 9, assuming that the geographic coordinate of vertex A is (0, 90) , the geographic coordinate of vertex C is (0, 0) , the geographic coordinate of vertex D is (90, 0) , the longitude of the object is between 0 and 90, and the latitude of the object is between 0 and 90, then the corresponding face may be ⁇ ACD.
  • the eight faces of the octahedron may be numbered, and thus each face may have an identifier.
  • the eight faces of the octahedron may be numbered from 0 to 7.
  • the identifier of the face of the octahedron may be determined based on the range of the longitudinal and latitudinal coordinates of the geographic location of the object.
  • the identifier of the face of the octahedron may be determined based on Equation (9) :
  • f may refer to the identifier of the face of the octahedron
  • lat may refer to the latitudinal coordinate in the geographic coordinate system
  • lon may refer to the longitudinal coordinate in the geographic coordinate system.
  • the processing engine 112 may determine a corresponding face of the polyhedron for the object based on the geographic coordinates of the object according to Equation (9) .
  • the processing engine 112 may determine a first projection point on the corresponding face of the polyhedron for the object.
  • a projection point may refer to an intersection point of a line and the corresponding face of the polyhedron, in which the line connects the geographic location point of the object on earth and the center point of the earth.
  • the first projection coordinate of the geographic location of the object on the corresponding face of the polyhedron may be referred to as the projection coordinate of the first projection point in the projection coordinate system.
  • the processing engine 112 may determine the first projection coordinate based on one or more coordinate transformation operations. For example, the processing engine 112 may transform the geographic coordinate corresponding to the geographic location of the object to a spherical coordinate. The processing engine 112 may then transform the spherical coordinate to a Cartesian coordinate. The processing engine 112 may further transform the Cartesian coordinate to the first projection coordinate. More descriptions of the coordinate transformation operations may be found elsewhere in the present disclosure (e.g., FIGs. 12 through 16 and the description thereof) .
  • the processing engine 112 may determine a location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, the shape of the plurality of cells, and/or the first projection coordinate of the geographic location of the object.
  • the location identifier may be represented as a combination of one or more numbers, one or more letters, one or more symbols, etc.
  • the location identifier can uniquely identify a cell on a face of the polyhedron.
  • a region including discrete geographic coordinates of objects located on earth may be indexed to a cell on a face of the polyhedron.
  • the location identifier may simplify data analysis for the on-demand service system 100.
  • the on-demand service system 100 may determine a region on earth based on a location identifier of a cell on a face of the polyhedron.
  • the location identifier may include information relating to the refinement level obtained in 803, the shape of the polyhedron, the identifier of the corresponding face, and/or the first projection coordinate of the geographic location of the object determined in 805.
  • the identifier of the corresponding face may be determined according to Equation (9) .
  • the processing engine 112 may determine the location identifier in the form of a string “OL [] F [] i [] j [] ” , in which “O” may refer to that the polyhedron is an octahedron, “L” may refer to the refinement level, “F” may refer to the identifier of the corresponding face of the octahedron, “i” and “j” may refer to a second projection coordinate, and “ [] ” may refer to that one or more numbers can be filled in a current position of the string.
  • the location identifier may be “OL13F1i1234j5678” .
  • the processing engine 112 may determine the second projection coordinate based on the first projection coordinate and the shape of the cells on the corresponding face. More descriptions of the determination of the second projection coordinate may be found elsewhere in the present disclosure (e.g., FIGs. 17 and 18 and the description thereof) .
  • the processing engine 112 may update the location identifier associated with the object based on real time location information of the object on earth. For example, if the object changes location from a first position to a second position, the first position corresponds to a first location identifier, and the second position corresponds to a second location identifier, then the processing engine 112 may update the first location identifier to the second location identifier.
  • one or more other optional operations may be added elsewhere in the exemplary process 800.
  • the processing engine 112 may store information and/or data associated with the polyhedron representing the earth (e.g., the shape, the refinement level) in a storage (e.g., the storage 150) disclosed elsewhere in the present disclosure.
  • a storage e.g., the storage 150
  • one or more parameters in the location identifier associated with the object may be added, replaced, or removed.
  • FIG. 12 is a flowchart of an exemplary process 1200 for determining the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron according to some embodiments of the present disclosure.
  • the process 1200 for determining the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 1200 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 1200 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative.
  • the process 1200 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 1200 as illustrated in FIG. 12 and described below is not intended to be limiting. In some embodiments, operation 805 illustrated in FIG. 8 may be performed according to the process 1200.
  • the processing engine 112 may transform the geographic coordinate to a spherical coordinate.
  • the geographic coordinate may be converted to a corresponding geographic coordinate that corresponds to a reference face. Any one of the eight faces of the octahedron may be designated as the reference face. In some embodiments, a face with an identifier “0” may be designated as the reference face, and if the corresponding face for the object is not the reference face “0” , the processing engine 112 may convert the geographic coordinate of the object into a corresponding geographic coordinate that corresponds to the reference face “0” . For example, as illustrated in FIG.
  • a face with an identifier “4” may be represented as an inverted triangle, after conversion, the face with identifier “4” may be mapped to the reference face “0” , and thus, the point F may be regarded as the origin (with a projection coordinate (0, 0) ) of the projection coordinate system, the vector FD may correspond to the I-axis of the projection coordinate system, and the vector FC may correspond to the J-axis of the projection coordinate system.
  • the geographic coordinate may include a longitude coordinate and a latitude coordinate in a geographic coordinate system, as shown in FIG. 13.
  • FIG. 13 is a schematic diagram illustrating a point P in the geographic coordinate system according to some embodiments of the present disclosure.
  • a position of a geographic location on the earth's surface may be represented by a latitude coordinate and a longitude coordinate.
  • Each line of longitude runs north–south and measures the number of degrees east or west of the prime meridian.
  • the value of the longitude coordinate ranges from -180° to +180°. Lines of latitude run east–west and measure the number of degrees north or south of the equator.
  • the value of the latitude coordinate ranges from +90° at the North Pole to -90° at the South Pole.
  • the geographic coordinate of the point P may be represented as P (lat, lon) .
  • the latitude of the point P is the angle between the ellipsoidal normal through the point P and the equatorial plane.
  • the longitude of the point P is the angle between the meridian ellipse which passes through Greenwich and the meridian ellipse containing the point P.
  • FIG. 14 is a schematic diagram illustrating a point P in the spherical coordinate system according to some embodiments of the present disclosure.
  • the position of the point P may be specified by three numbers: the radial distance (also referred to as r) of the point P from an origin (e.g., point O as shown in FIG.
  • the spherical coordinate of the point P may be represented as
  • the geographic coordinate and the spherical coordinate may be interconvertible.
  • the processing engine 112 may transform the geographic coordinate of the object (e.g., P (lat, lon) ) to the spherical coordinate of the object (e.g., ) based on Equation (10) .
  • the processing engine 112 may transform the spherical coordinate to the geographic coordinate based on Equation (11) .
  • lat may refer to the latitude of the point P in the geographic coordinate system
  • lon may refer to longitude of the point P in the geographic coordinate system
  • may refer to azimuth angle of the point P in the spherical coordinate
  • rad2deg may refer to a function that convert a radian to an angle
  • deg2rad may refer to a function that convert an angle to a radian.
  • the processing engine 112 may transform the spherical coordinate to a Cartesian coordinate.
  • Cartesian coordinate (also referred to as a rectangular coordinate) may indicate the position of a point on a two-dimensional (2D) surface or in a three-dimensional (3D) space.
  • the coordinate of a point in the Cartesian coordinate system may include one or more distances from a set of orthogonal coordinate axes (e.g., X-axis, Y-axis, Z-axis shown in FIG. 14) that intersect at an origin (e.g., origin O shown in FIG. 14) .
  • the spherical coordinate and the Cartesian coordinate may be interconvertible.
  • the processing engine 112 may transform the spherical coordinate (e.g., ) in the sphere coordinate system to a Cartesian coordinate (e.g., (x, y, z) ) based on Equation (12) . In some embodiments, the processing engine 112 may transform the Cartesian coordinate to the spherical coordinate based on Equation (13) .
  • x may refer to the position of the perpendicular projection of the point P onto the X-axis
  • y may refer to the position of the perpendicular projection of the point P onto the Y-axis
  • z may refer to the position of the perpendicular projection of the point P onto the Z-axis.
  • FIG. 15A is a graph illustrating the arctan function curve according to some embodiments of the present disclosure.
  • the azimuth angle ⁇ may be determined based on Equation (15) :
  • the azimuth angle ⁇ may be determined as
  • FIG. 15B is a graph illustrating the arccos function curve according to some embodiments of the present disclosure.
  • the processing engine 112 may transform the Cartesian coordinate to the first projection coordinate.
  • FIG. 16 is a schematic diagram illustrating the transformation of the Cartesian coordinate to the first projection coordinate according to some embodiments of the present disclosure.
  • GC, GA, and GB may be correspond to X-axis, Y-axis, and Z-axis in the Cartesian coordinate system, respectively.
  • Point G may be the origin of the Cartesian coordinate system.
  • the Cartesian coordinates of points A, C, D, and P may be (0, 1, 0) , (0, 0, 1) , (1, 0, 0) , and P (x, y, z) , respectively.
  • AC and AD may correspond to the I-axis and J-axis.
  • An axis passing through point A and perpendicular to the plane ACD may correspond to the K-axis.
  • Point P’ may be the projection point for the point P on the face ACD.
  • Point P’ may have a projection coordinate P’ (i, j, k) .
  • Vector AP’ may be determined based on Equation (16) :
  • vector AP may refer to the vector AC, and may refer to the vector AD.
  • Vector AP may be determined based on Equation (17) :
  • the Cartesian coordinate P (x, y, z) and the projection coordinate P’ (i, j, k) may have a relationship illustrated in Equation (18) :
  • Equation (18) may be expressed as Equation (19) :
  • the projection coordinate P’ (i, j, k) may be determined based on Equation (20) :
  • FIG. 17A is a flowchart of an exemplary process 1700 for determining a location identifier associated with the object according to some embodiments of the present disclosure.
  • the process 1700 for determining a location identifier associated with the object may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 1700 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 1700 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative.
  • the process 1700 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 1700 as illustrated in FIG. 17A and described below is not intended to be limiting. In some embodiments, operation 807 illustrated in FIG. 8 may be performed according to the process 1700.
  • the processing engine 112 may determine a target center point nearest to the first projection coordinate of the geographic location of the object.
  • the projection coordinate of the target center point on a corresponding face may be regarded as the projection coordinate of a hexagon-shaped cell where the first projection point for the object is located.
  • FIG. 18A is a schematic diagram illustrating a target center point in a hexagon-shaped cell according to some embodiments of the present disclosure.
  • Point P’ may be the projection point of the geographic location of the object on an exemplary corresponding face ACD of the octahedron.
  • the projection coordinate of the point P’on the corresponding face ACD may be the first projection coordinate of the geographic location of the object.
  • Points R 1 , R 2 , R 3 , R 4 , R 5 , R 6 , and R 7 are center points of the hexagon-shaped cells.
  • the processing engine 112 may determine a center point nearest to the projection point P’as the target center point. In some embodiments, the processing engine 112 may determine the distances between point P’and the center points (e.g., the points R 1 , R 2 , R 3 , R 4 , R 5 , R 6 , and R 7 ) of the hexagon-shaped cells based on the projection coordinates of point P’and the center points on the face ACD. The processing engine 112 may determine the center point nearest to the projection point P’based on the distances between point P’and a number of surrounding center points. As shown in FIG. 18A, point R 7 may be the target center point.
  • the center points e.g., the points R 1 , R 2 , R 3 , R 4 , R 5 , R 6 , and R 7
  • point R 7 may be the target center point.
  • the processing engine 112 may determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target center point on the corresponding face.
  • the processing engine 112 may designate the projection coordinate of the target center point on the corresponding face as the second projection coordinate.
  • the processing engine 112 may determine the location identifier in the form of a string “OL [] F [] i [] j [] ” , in which “O” may refer to that the polyhedron is an octahedron, “L” may refer to the refinement level, “F” may refer to the identifier of the corresponding face of the octahedron, “i” and “j” may refer to a second projection coordinate, and “ [] ” may refer to that one or more numbers can be filled in a current position of the string.
  • the location identifier may be “OL2F0i1234j5678” .
  • a hexagon-shaped cell may cross over two or more faces of the octahedron.
  • the hexagon-shaped cell that crosses over two or more faces of the octahedron may be referred to as a crossover cell.
  • four 1/6 hexagon-shaped cells AK 1 K 2 , AK 2 K 3 , AK 3 K 4 , and AK 4 K 1 may belong to a same hexagon-shaped cell.
  • the target center point may be located at a vertex of the corresponding face.
  • a border of two adjacent faces may divide a hexagon-shaped cell into two halves, that is, two 1/2 hexagon-shaped cells on two different faces may belong to a same hexagon-shaped cell.
  • the target center point may be located on a side of the corresponding face. Therefore, it may be desirable to determine which face the target center point of a crossover cell belongs to.
  • the processing engine 112 may determine the ascription of the target center point of a crossover cell based on one or more rules, as illustrated in FIG. 19.
  • the processing engine 112 may determine the location identifier associated with the object based on a ruled identifier of the corresponding face, wherein the “ruled identifier” refers to the identifier of the corresponding face of the target center point determined according to the one or more rules.
  • the one or more rules may be a system default determined by the processing engine 112 or set by a user or operator via a terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. )
  • FIG. 19 is a schematic diagram illustrating the ascription of the target center point of a crossover cell according to some embodiments of the present disclosure.
  • the eight faces of the octahedron may be unfolded into a plane.
  • the identifiers of the eight faces may be 0, 1, 2, 3, 4, 5, 6, and 7.
  • the six vertexes of the octahedron may be point A, B, C, D, E, and F.
  • the projection coordinate of the target center point of a crossover cell on the corresponding face may be (0, 0) . Accordingly, the processing engine 112 may determine the ascription of the target center point based on Equation (21) :
  • f may refer to an initial identifier of the corresponding face of the target center point
  • f′ may refer to a ruled identifier of the corresponding face of the target center point
  • the target center point may be point A, and the initial identifier of the corresponding face of the target center point may be “2” .
  • the initial identifier is less than 4, the ruled identifier of the corresponding face may be determined as 0.
  • the processing engine 112 may determine that the target center point belongs to the face located on the north side of the border.
  • the target center point may be located on the side BC, CD, DE, or EB, and the processing engine 112 may designate the target center point as belonging to face “3” , “0” , “1” , or “2” , respectively.
  • the projection coordinate of the target center point of a crossover cell is on a border of two adjacent faces, and the two adjacent faces are located on the east side and the west side of the border, respectively. That is, the I-coordinate or the J-coordinate of the target center point may be 0, and thus in certain embodiments, the processing engine 112 may determine that the target center point belongs to the face located on the east side of the border. For example, the target center point may be located on the side AB, AC, AD, or AE, and the processing engine 112 may designate the target center point as belonging to face “3” , “0” , “1” , or “2” , respectively.
  • FIG. 17B is a flowchart of an exemplary process 1750 for determining a location identifier associated with the object according to some embodiments of the present disclosure.
  • the process 1750 for determining a location identifier associated with the object may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 1750 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 1750 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative.
  • the process 1750 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 1750 as illustrated in FIG. 17B and described below is not intended to be limiting. In some embodiments, operation 807 illustrated in FIG. 8 may be performed according to the process 1750.
  • the processing engine 112 may determine a target common point having an integer coordinate of the first projection coordinate of the geographic location of the object.
  • the target common point may be a top vertex of the rhombus-shaped cell on a corresponding face.
  • the projection coordinate of the target common point on the corresponding face may be regarded as the projection coordinate of a rhombus-shaped cell where the first projection point for the object is located.
  • FIG. 18B is a schematic diagram illustrating a target common point in a rhombus-shaped cell according to some embodiments of the present disclosure.
  • Point P’ may be the projection point of the geographic location of the object on an exemplary corresponding face of the octahedron.
  • the projection coordinate of point P’on the corresponding face may be the first projection coordinate of the geographic location of the object.
  • the corresponding face may have a plurality of rhombus-shaped cells, three or more adjacent cells may have a common point. As each vertex of a rhombus-shaped cell may also be a vertex of two or more other rhombus-shaped cells, therefore, each vertex of a rhombus-shaped cell may be a common point.
  • the cell “STUV” may have four common points S, T, U, and V. Each side of a rhombus-shaped cell may have 1 unit length. Assuming that the projection coordinate of point S is (i, j) , the projection coordinates of the points T, V, and U may be (i+1, j) , (i, j+1) , and (i+1, j+1) , respectively. Each point inside the cell “STUV” may have an I-coordinate within the range of (i, i+1) . Each point inside the cell “STUV” may have a J-coordinate within the range of (j, j+1) .
  • the processing engine 112 may determine a common point having the integer coordinate of the first projection coordinate as the target common point.
  • the first projection coordinate of the point P’ may be (i+x, j+y) , in which x may be less than 1 and larger than 0, and y may be less than 1 and larger than 0.
  • the integer coordinate of the first projection coordinate may be (i, j) , that is, point S may be determined as the target common point.
  • the processing engine 112 may determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target common point on the corresponding face.
  • the processing engine 112 may designate the projection coordinate of the target common point on the corresponding face as the second projection coordinate.
  • the processing engine 112 may determine the location identifier in the form of a string “OL [] F [] i [] j [] ” , in which “O” may refer to that the polyhedron is an octahedron, “L” may refer to the refinement level, “F” may refer to the identifier of the corresponding face of the octahedron, “i” and “j” may refer to a second projection coordinate, and “ [] ” may refer to that one or more numbers can be filled in a current position of the string.
  • the location identifier may be “OL11 F5i1234j5678” .
  • FIG. 20 is a flowchart of an exemplary process 2000 for determining an area including a geographic location of an object according to some embodiments of the present disclosure.
  • the process 2000 for determining an area including a geographic location of an object may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 2000 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 2000 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 2000 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2000 as illustrated in FIG. 20 and described below is not intended to be limiting.
  • the processing engine 112 may obtain a location identifier associated with an object.
  • the location identifier associated with the object may include information relating to a shape of the polyhedron representing the earth, a refinement level relating to a resolution of a plurality of cells that divide one or more faces of the polyhedron, and a geographic location of the object.
  • the location identifier associated with the object may be in the form of “OL12F3i4567j7890” . More descriptions of the location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 17 and 18 and the description thereof) .
  • the processing engine 112 may obtain the location identifier associated with the object from one or more components in the on-demand service system 100, such as a storage device (e.g., the storage 150) , or a terminal (e.g., a passenger terminal 130, a driver terminal 140) . In some embodiments, the processing engine 112 may obtain the location identifier associated with the object from an external data source connected to the on-demand service system 100 via the network 120
  • the processing engine 112 may determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth. In some embodiments, the processing engine 112 may determine the refinement level based on the location identifier obtained in 2001. In some embodiments, the processing engine 112 may parse a field corresponding to a refinement level in the location identifier, and/or determine a value of the refinement level. For example, the processing engine 112 may parse the field “L12” representing the refinement level in the location identifier “OL12F3i4567j7890” , and may determine the refinement level as 12.
  • the processing engine 112 may obtain a shape of the plurality of cells.
  • the shape of the plurality of cells may be a system default determined by the processing engine 112 or set by a user or operator via a terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. ) .
  • the processing engine 112 may obtain the shape of the plurality of cells from the storage 150, the passenger terminal 130, and/or the driver terminal 140.
  • the processing engine 112 may obtain the shape of the plurality of cells from the I/O 230 of the computing device 200 via the communication port 240, and/or the I/O 350 of the mobile device 300 via the communication platform 310.
  • the processing engine 112 may obtain the shape of the plurality of cells from an external data source connected to the on-demand service system 100 via the network 120.
  • the obtained shape may be a hexagon, a rhombus, a square, a rectangle, a triangle, etc.
  • the processing engine 112 may determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron. In some embodiments, the processing engine 112 may determine the first projection coordinate based on the location identifier obtained in 2001. In some embodiments, the processing engine 112 may parse a field corresponding to a projection coordinate in the location identifier, and/or determine the value of the projection coordinate as the first projection coordinate. For example, the processing engine 112 may parse the field “i4567j7890” representing the projection coordinate in the location identifier “OL12F3i4567j7890” , and may determine the first projection coordinate as (45.67, 78.90) .
  • the processing engine 112 may determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face. In some embodiments, the processing engine 112 may determine the vertexes based on the shape obtained in 2005 and the first projection coordinate determined in 2007.
  • the cell may have a shape of hexagon.
  • the first projection coordinate may be the projection coordinate of a center point of the hexagon-shaped cell on the corresponding face, as shown in FIG. 12A.
  • FIG. 21A is a schematic diagram illustrating the vertexes in a hexagon- shaped cell according to some embodiments of the present disclosure.
  • the center point Q may have the first projection coordinate
  • “V 1 V 2 V 3 V 4 V 5 V 6 ” may represent a hexagon-shaped cell that includes the center point Q.
  • the projection coordinates of the vertexes V 1 , V 2 , V 3 , V 4 , V 5 , and V 6 may be represented by and
  • the cell may have a shape of rhombus.
  • the first projection coordinate may be the projection coordinate of a top vertex of the rhombus-shaped cell on the corresponding face, as shown in FIG. 12B.
  • FIG. 21 B is a schematic diagram illustrating the vertexes in a rhombus-shaped cell according to some embodiments of the present disclosure. As shown in FIG. 21B, the top vertex Q may have the first projection coordinate, and “QV 7 V 8 V 9 ” may represent a rhombus-shaped cell that includes the top vertex Q.
  • the projection coordinates of the vertexes V 7 , V 8 , and V 9 may be represented by V 7 (i+1, j) , V 8 (i+1, j+1) , and V 9 (i, j+1) .
  • the processing engine 112 may determine a plurality of geographic locations on earth corresponding to the plurality of vertexes.
  • the processing engine 112 may determine the geographic coordinates of the plurality of vertexes based on one or more coordinate transformation operations. For example, the processing engine 112 may transform a plurality of projection coordinates to a plurality of Cartesian coordinates, and transform the Cartesian coordinates to the geographic coordinates. More descriptions of the transformation of the projection coordinates to the geographic coordinates may be found elsewhere in the present disclosure (e.g., FIG. 23 and the description thereof) .
  • FIGs. 22A and 22B are schematic diagrams illustrating a plurality of discrete global grid cells on earth according to some embodiments of the present disclosure.
  • the plurality of discrete global grid cells may have a shape of rhombus (as shown in FIG. 22A) or hexagon (as shown in FIG. 22B) .
  • the refinement level relating to the discrete global grid cells may be 7.
  • the processing engine 112 may further determine one or more areas around the determined area. In some embodiments, the processing engine 112 may determine the areas by querying one or more neighboring cells of an identified cell (e.g., the cell with the location identifier) , and determining the areas based on the neighboring cells according to process 2000. In some embodiments, an identified cell may have k layer neighboring cells. The 1 layer neighboring cells may be adjacent to the identified cell, the 2 layer neighboring cells may be adjacent to the 1 layer neighboring cells, and accordingly, the k layer neighboring cells may be adjacent to the k-1 layer neighboring cells. In some embodiments, the processing engine 112 may query the neighboring cells based on the shape of the identified cell, as shown in FIGs. 21 C and 21 D.
  • FIG. 21 C is a schematic diagram illustrating neighboring cells of a rhombus-shaped cell according to some embodiments of the present disclosure.
  • cell 1 may refer to the identified cell. Take 1 layer neighboring cells as an example.
  • the processing engine 112 may determine a plurality of cells adjacent to the identified cell as the 1 layer neighboring cells.
  • the 1 layer neighboring cells may include a first set of 1 layer neighboring cells and a second set of 1 layer neighboring cells. Each of the first set of 1 layer neighboring cells may have only one common point with the identified cell, for example, cell 2, cell 3, cell 4, and cell 5.
  • Each of the second set of 1 layer neighboring cells may have one common side with the identified cell, for example, cell 6, cell 7, cell 8, and cell 9.
  • the processing engine 112 may query different sets of neighboring cells based on different query criteria (e.g., the common point, the common side, etc. ) . For example, the processing engine 112 may query the first set of 1 layer neighboring cells based on the common points corresponding to the four vertexes of cell 1. As another example, the processing engine 112 may query the second set of 1 layer neighboring cells based on the first set of 1 layer neighboring cells.
  • different query criteria e.g., the common point, the common side, etc.
  • the processing engine 112 may query the first set of 1 layer neighboring cells based on the common points corresponding to the four vertexes of cell 1.
  • the processing engine 112 may query the second set of 1 layer neighboring cells based on the first set of 1 layer neighboring cells.
  • FIG. 21 D is a schematic diagram illustrating neighboring cells of a hexagon-shaped cell according to some embodiments of the present disclosure.
  • cell 1 may refer to the identified cell. Take 1 layer neighboring cells as an example.
  • the processing engine 112 may determine a plurality of cells adjacent to the identified cell as the 1 layer neighboring cells.
  • the identified cell 1 may have six 1 layer neighboring cells, for example, cell 2, cell 3, cell 4, cell 5, cell 6, and cell 7.
  • Each of the 1 layer neighboring cells may have one common side with the identified cell 1.
  • the processing engine 112 may query different sets of neighboring cells based on different query criteria (e.g., a querying direction, a querying distance, etc. ) .
  • FIG. 23 is a flowchart of an exemplary process 2300 for transforming a plurality of projection coordinates to a plurality of geographic locations on earth according to some embodiments of the present disclosure.
  • the process 2300 is also applicable to transforming one projection coordinate.
  • the process 2300 for transforming a plurality of projection coordinates to a plurality of geographic locations on earth may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 2300 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 2300 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • process 2300 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2300 as illustrated in FIG. 23 and described below is not intended to be limiting. In some embodiments, operation 2011 illustrated in FIG. 20 may be performed according to the process 2300.
  • the processing engine 112 may transform a plurality of projection coordinates of the plurality of vertexes to a plurality of Cartesian coordinates. In some embodiments, the processing engine 112 may transform the projection coordinates to the Cartesian coordinates based on Equation (19) . More descriptions of the transformation of the projection coordinates to the Cartesian coordinates may be found elsewhere in the present disclosure (e.g., FIGs. 12 and 16 and the related descriptions thereof) .
  • the processing engine 112 may transform the plurality of Cartesian coordinates to a plurality of spherical coordinates. In some embodiments, the processing engine 112 may transform the Cartesian coordinates to the spherical coordinates based on Equation (13) . More descriptions of the transformation of the Cartesian coordinates to the spherical coordinates may be found elsewhere in the present disclosure (e.g., FIGs. 12, 14, 15A and 15B and the related descriptions thereof) .
  • the processing engine 112 may transform the plurality of spherical coordinates to a plurality of geographic coordinates corresponding to the plurality of geographic locations on earth. In some embodiments, the processing engine 112 may transform the spherical coordinates to the geographic coordinates based on Equation (11) . More descriptions of the transformation of the spherical coordinates to the geographic coordinates may be found elsewhere in the present disclosure (e.g., FIGs. 12-14 and the related descriptions thereof) .
  • the transformation of the projection coordinates to the geographic coordinates may be achieved based on other coordinate transformation operations.
  • FIG. 24 is a flowchart of an exemplary process 2400 for determining a service capacity of an on-demand service platform according to some embodiments of the present disclosure.
  • the process 2400 for determining a service capacity of an on-demand service platform may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 2400 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 2400 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 2400 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2400 as illustrated in FIG. 24 and described below is not intended to be limiting.
  • the processing engine 112 may determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers.
  • the region may be any area on earth.
  • the region may be any administrative area, for example, a country, a province, a city, a district, etc.
  • the region may include one or more discrete global grid cells on the earth.
  • the available service providers may provide a transportation service (e.g., a taxi hailing service) .
  • the available service providers may be associated with user terminals (e.g., driver terminals 140) .
  • the driver terminals 140 may be devices with positioning technology for locating the service providers.
  • the driver terminals 140 may transmit position information of the service providers and availability status of the service providers to the processing engine 112 continuously or periodically (e.g., every 3 seconds) .
  • the position information of the service providers may include the country, the city, the street, and/or the longitudinal and latitudinal coordinates of the current location of the service provider.
  • the position information of the service providers may include geographic coordinates of a plurality of current geographic locations of service providers.
  • the availability status may indicate whether the service provider is available to provide a service.
  • the processing engine 112 may identify the available service providers in the region based on the availability status. Therefore, the processing engine 112 may determine the geographic coordinates of the available service providers in the region based on the position information and the availability status of the service providers.
  • the processing engine 112 may determine or assign a location identifier for each available service provider based on the geographic coordinates.
  • each location identifier may correspond to one of the plurality of discrete global grid cells.
  • operation 2403 may be performed according to the process 800 illustrated in FIG. 8.
  • the processing engine 112 may obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth.
  • the processing engine 112 may determine a first projection coordinate of the geographic location of the each available service provider on a corresponding face of the polyhedron.
  • the processing engine 112 may determine the location identifier associated with each available service provider based on the refinement level, a shape of the polyhedron, an identifier of the corresponding face, a shape of the plurality of cells, and/or the first projection coordinate of the geographic location of the each available service provider. More descriptions of the determination of the location identifier for each available service provider may be found elsewhere in the present disclosure (e.g., FIGs. 8-18 and the related descriptions thereof) .
  • the processing engine 112 may update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers.
  • a user identifier may be associated with identity information of a service provider.
  • each service provider may have a unique user identifier, which may be part of the identity information.
  • the user identifier may be set manually by the service provider or be determined by one or more components of the on-demand service system 100.
  • the user identifier may be a string including one or more letters, one or more numbers, and/or one or more symbols.
  • the user identifier of the service provider may be in any form, for example, “123” , “A123” .
  • the processing engine 112 may determine the mapping relation between the user identifiers of the available service providers and the location identifiers before operation 2405. In some embodiments, the processing engine 112 may determine the mapping relation based on recorded location identifiers for the available service providers. As used herein, “a recorded location identifier” for an available service provider may refer to a location identifier corresponding to a previously determined geographic coordinate of the available service provider.
  • geographic locations of the available service providers may change with time. For example, if an available service provider is moving (e.g., driving a car) , the geographic location of the available service provider may change from a first location at a first time to a second location at a second time. In some embodiments, the first location and the second location may have a same location identifier. In some embodiments, the first location and the second location may have different location identifiers.
  • the processing engine 112 may update the mapping relation between the user identifiers of the available service providers and the location identifiers based on the current location identifiers for the available service providers.
  • a current location identifier for an available service provider may refer to a location identifier corresponding to a current geographic coordinate of the available service provider (e.g., the current geographic coordinate illustrated in 2401) .
  • the processing engine 112 may update the recorded location identifiers as the current location identifiers for the available service providers. More descriptions of the update of the mapping relation between user identifiers of the available service providers and the plurality of location identifiers may be found elsewhere in the present disclosure (e.g., FIG. 25 and the related descriptions thereof) .
  • the processing engine 112 may determine the mapping relation between the user identifier of the available service provider and the current location identifier.
  • the processing engine 112 may determine a current number of requests for on-demand service in each of the plurality of discrete global grid cells.
  • the processing engine 112 may determine the current number of requests for on-demand service in a discrete global grid cell based on the number of requests in the discrete global grid cell and the number of request responses for serving the service requests in the discrete global grid cell.
  • the current number of requests for the on-demand service in the discrete global grid cell may be a difference between the number of requests and the number of request responses in the discrete global grid cell.
  • the number of service requests and/or the number of request responses may change with time.
  • the processing engine 112 may update the current number of requests for the on-demand service in each of the plurality of discrete global grid cells.
  • the processing engine 112 may update the current number of requests for the on-demand service in real time. More descriptions of the update of the current number of requests for on-demand service in discrete global grid cells may be found elsewhere in the present disclosure (e.g., FIGs. 26A and 26B, and the related descriptions thereof) .
  • the processing engine 112 may determine a current number of available service providers in each of the plurality of discrete global grid cells.
  • the processing engine 112 may determine the current number of available service providers in each of the plurality of discrete global grid cells based on the mapping relation (e.g., the mapping relation updated in 2405) between user identifiers of the available service providers and the plurality of location identifiers. For example, for a discrete global grid cell, the processing engine 112 may determine a number of available service providers whose recorded location identifiers are the same as the location identifier corresponding to the discrete global grid cell, and then designate the number as the current number of available service providers in the discrete global grid cell.
  • the mapping relation e.g., the mapping relation updated in 2405
  • the processing engine 112 may determine a current service capacity gap based on the current number of requests determined in 2407 and the current number of available service providers determined in 2409 in each of the plurality of discrete global grid cells.
  • the current service capacity gap may be determined based on a difference between the current number of requests and the current number of available service providers in the discrete global grid cell, as illustrated in Equation (23) :
  • Gap N r -N p (23)
  • Gap may refer to the service capacity gap in a discrete global grid cell
  • N r may refer to the current number of requests in the discrete global grid cell
  • N p may refer to the current number of available service providers in the discrete global grid cell.
  • the processing engine 112 may display the current service capacity gap in the plurality of discrete global grid cells on a map.
  • the processing engine 112 may represent the current service capacity gap in each discrete global grid cell by a colored icon.
  • the color of the colored icon may be related to the value of the current service capacity gap.
  • the processing engine 112 may determine the color based on a red, green, and blue (RGB) system.
  • the processing engine 112 may determine a maximum gap and a minimum gap among values of the current capacity gaps in the plurality of discrete global grid cells.
  • the value of a current service capacity gap may be positive (i.e., the current number of requests is larger than the current number of available service providers)
  • the processing engine 112 may map the value of the current service capacity gap into a R value proportionally based on the maximum gap and the minimum gap. For example, a redder discrete global grid cell displayed on the map corresponds to a greater value of the current service capacity gap, as shown in FIGs. 27A and 27B.
  • the value of the current service capacity gap may be negative (i.e., the current number of requests is less than the current number of available service providers)
  • the processing engine 112 may map the value of the current service capacity gap into G value proportionally, as shown in FIGs. 27A and 27B. For example, a greener discrete global grid cell displayed on the map corresponds to a smaller value of the current service capacity gap.
  • FIG. 27A is a schematic diagram illustrating the display of a plurality of discrete global grid cells associated with the current service capacity gap on a map according to some embodiments of the present disclosure.
  • FIG. 27B is a schematic diagram illustrating an enlarged view of a sub-region indicated by the dashed line in FIG. 27A according to some embodiments of the present disclosure.
  • the color of the discrete global grid cells may be associated with the current service capacity gap.
  • Discrete global grid cells with darker green may indicate that the sub-regions corresponding to the discrete global grid cells have more sufficient current service capacity.
  • Sub-regions without a colored icon may indicate that there is no request and no service provider in the sub regions.
  • FIG. 25 is a flowchart of an exemplary process 2500 for determining a mapping relation between a user identifier of an available service provider and a location identifier according to some embodiments of the present disclosure.
  • the process 2500 for determining a mapping relation between a user identifier of an available service provider and a location identifier may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 2500 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 2500 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative.
  • the process 2500 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2500 as illustrated in FIG. 25 and described below is not intended to be limiting. In some embodiments, operation 2405 illustrated in FIG. 24 may be performed according to the process 2500.
  • the processing engine 112 may obtain a recorded location identifier for an available service provider.
  • the processing engine 112 may obtain the recorded location identifier from one or more components in the on-demand service system 100, such as a storage (e.g., the storage 150) , or a user terminal (e.g., the passenger terminal 130, the driver terminal 140) .
  • the processing engine 112 may determine a current location identifier for the available service provider based on a geographic coordinate of the current geographic location of the available service provider. In some embodiments, the determination of the location identifier for the available service provider is performed according to other embodiments of the present invention, such as but not limited to what is provided in FIGs. 8-18 and the related descriptions thereof.
  • the processing engine 112 may determine whether the current location identifier is different from the recorded location identifier. In response to the determination that the current location identifier is different from the recorded location identifier, the process 2500 may proceed to 2507.
  • the current location identifier is different from the recorded location identifier for the available service provider may indicate that the service provider has moved from a first area corresponding to the recorded location identifier to a second area corresponding to the current location identifier.
  • the process 2500 may proceed to 2509.
  • the current location identifier is the same as the recorded location identifier for the available service provider may indicate that the service provider is still located in the area corresponding to the recorded location identifier.
  • the processing engine 112 may determine the mapping relation between the user identifier of the available service provider and the recorded location identifier for the available service provider without updating the recorded location identifier for the available service provider.
  • the processing engine 112 may update the recorded location identifier for the available service provider as the current location identifier for the available service provider. For example, the processing engine 112 may delete the recorded location identifier for the available service provider in the storage 150 and designate the current location identifier as the recorded location identifier for the available service provider.
  • the processing engine 112 may determine a mapping relation between the user identifier of the available service provider and the recorded location identifier for the available service provider, so that the user identifier of the available service provider may correspond to the recorded location identifier for the available service provider.
  • the processing engine 112 may store the mapping relation in a storage (e.g., the storage 150) , or a user terminal (e.g., the passenger terminal 130, the driver terminal 140) , so that in a further process, the processing engine 112 may determine that the available service provider that has the user identifier may be located in an area corresponding to the recorded location identifier.
  • one or more operations may be added or omitted.
  • operation 2505 may be omitted.
  • the processing engine 112 may update the recorded location identifier for the available service provider as the current location identifier for the available service provider without determining whether the current location identifier is different from the recorded location identifier.
  • FIG. 26A is a flowchart of an exemplary process 2600 for determining a current number of requests for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure.
  • the process 2600 for determining a current number of requests for on-demand service in a discrete global grid cell may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 2600 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 2600 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative.
  • the process 2600 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2600 as illustrated in FIG. 26A and described below is not intended to be limiting. In some embodiments, operation 2407 illustrated in FIG. 24 may be performed according to the process 2600.
  • the processing engine 112 may receive a service request that includes a first departure location. In some embodiments, the processing engine 112 may receive the service request from the passenger terminal 130 via the network 120.
  • the service request may be a request for an on-demand transportation service (e.g., a taxi service, a carpooling service, a hitch service) .
  • the service request may include a first departure location, a destination, a start time, etc.
  • the first departure location may refer to a place where the service requester needs the on-demand service.
  • the service request may further include a passenger identity information (e.g., a telephone number, a terminal identity associated with the passenger terminal 130, a user name, etc. ) .
  • the processing engine 112 may determine a first location identifier based on the first departure location. For example, the processing engine 112 may determine the first location identifier for the first departure location based on a geographic coordinate of the first departure location. More descriptions of the determination of the first location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 8-19, and the related descriptions thereof) .
  • the processing engine 112 may update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the first location identifier by adding 1 to the current number of requests of the discrete global grid cell. For example, assuming the current number of requests for the on-demand service in the discrete global grid cell is K, the processing engine 112 may update the current number of requests for the on-demand service in the discrete global grid cell as K+1.
  • FIG. 26B is a flowchart of an exemplary process 2650 for determining a current number of request for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure.
  • the process 2650 for determining a current number of request for on-demand service in a discrete global grid cell may be implemented in the on-demand service system 100 as illustrated in FIG. 1.
  • the process 2650 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110.
  • the process 2650 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112.
  • the operations of the illustrated process presented below are intended to be illustrative.
  • the process 2650 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2650 as illustrated in FIG. 26B and described below is not intended to be limiting. In some embodiments, operation 2407 illustrated in FIG. 24 may be performed according to the process 2650.
  • the processing engine 112 may receive a request response for serving a service request from an available service provider.
  • the service request may include a second departure location.
  • the processing engine 112 may receive the request response for serving the service request from the driver terminal 140 via the network 120.
  • the service provider may respond to one of the service requests. For example, the service provider may select a service request he or she is interested in, and/or send a request response for serving the service request, so that the processing engine 112 may receive the request response via the network 120.
  • the second departure location may refer to a place where the service provider needs to start to provide the on-demand service.
  • the second departure location may be the same as or different from the first departure location illustrated in FIG. 26A.
  • the second departure location may be the same as the first departure location.
  • the second departure location may be different from the first departure location.
  • the processing engine 112 may determine a second location identifier based on the second departure location.
  • the processing engine 112 may determine the second location identifier for the departure location based on a geographic coordinate of the second departure location. More descriptions of the determination of the second location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 8-19, and the related descriptions thereof) .
  • the second location identifier may be the same as or different from the first location identifier determined in operation 2603.
  • the processing engine 112 may update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the second location identifier by subtracting 1 from the current number of requests of the discrete global grid cell. For example, assuming the current number of requests for the on-demand service in the discrete global grid cell is K, the processing engine 112 may update the current number of requests for the on-demand service in the discrete global grid cell as K-1.
  • operations 2601 and 2603 may be combined as a single operation in which the processing engine 112 may both receive the service request including the departure location and determine the location identifier based on the departure location.
  • 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 “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media 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 electro-magnetic, 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 operations 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 2003, Perl, COBOL 2002, 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
  • SaaS Software as a Service

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present disclosure relates to a system and method for assigning a location identifier associated with an object. A geographic coordinate corresponding to a geographic location of the object may be obtained. A refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth may be obtained. A first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron may be determined based on the geographic coordinate. The location identifier associated with the object may be determined based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, and the first projection coordinate of the geographic location of the object.

Description

[Title established by the ISA under Rule 37.2] SYSTEM AND METHOD FOR DETERMINING LOCATION IDENTIFIER TECHNICAL FIELD
The present disclosure generally relates to on-demand services, and in particular, relates to systems and methods for assigning a location identifier associated with an object.
BACKGROUND
With the development of Internet technology, on-demand services, such as online taxi hailing services and delivery services, are starting to play a significant role in people’s daily lives. Precision marketing of the on-demand services relies on accurate acquisition of location information of the users (e.g., passengers, drivers, etc. ) . By strategic discretization of the surface of the earth, the on-demand service may obtain a uniform cell structure with lower areal and angular distortions, and further simplify data analysis for the acquisition of location information. Thus, it is desirable to develop effective systems and methods for dividing the surface of the earth into a plurality of discrete grid cells and/or assigning a location identifier associated with an object involved in an online on-demand service platform.
SUMMARY
According to an aspect of the present disclosure, a system is provided. The system may be configured to assign a location identifier associated with an object. The system may include at least one storage including a set of instructions or programs; and/or at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor may be configured to cause the system to: obtain a geographic coordinate corresponding to a geographic location of the object; obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determine a first projection coordinate of the  geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and/or determine the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
According to another aspect of the present disclosure, a system is provided. The system may be configured to determine an area including a geographic location of an object. The system may include at least one storage including a set of instructions or programs; and/or at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor may be configured to cause the system to: obtain a location identifier associated with the object; determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier; obtain a shape of the plurality of cells; determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier; determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate; determine a plurality of geographic locations on earth corresponding to the plurality of vertexes; and/or determine the area based on the plurality of geographic locations.
According to another aspect of the present disclosure, a system is provided. The system may be configured to determine a current service capacity of an on-demand service platform. The system may include at least one storage including a set of instructions or programs; and/or at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor may be configured to cause the system to: determine, in a region corresponding to a plurality of discrete global grid  cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers; determine a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells; update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and/or for each of the plurality of discrete global grid cells, determine a current number of requests for on-demand service, determine a current number of available service providers, and/or determine a current service capacity gap based on the current number of requests and the current number of available service providers.
According to another aspect of the present disclosure, a method is provided. The method may be implemented on at least one device each of which has at least one processor and a storage for assigning a location identifier associated with an object. The method may include: obtaining a geographic coordinate corresponding to a geographic location of the object; obtaining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determining a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and/or determining the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
According to another aspect of the present disclosure, a method is provided. The method may be implemented on at least one device each of which has at least one processor and a storage for determining an area including a geographic location of an object. The method may include: obtaining a location identifier associated with the object; determining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on  the location identifier; obtaining a shape of the plurality of cells; determining a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier; determining a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate; determining a plurality of geographic locations on earth corresponding to the plurality of vertexes; and/or determining the area based on the plurality of geographic locations.
According to another aspect of the present disclosure, a method is provided. The method may be implemented on at least one device each of which has at least one processor and a storage for determining a service capacity of an on-demand service platform. The method may include: determining, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers; determining a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells; updating a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and/or for each of the plurality of discrete global grid cells, determining a current number of requests for on-demand service, determining a current number of available service providers, and/or determining a current service capacity gap based on the current number of requests and the current number of available service providers.
According to another aspect of the present disclosure, a non-transitory computer readable medium embodying a computer program product is provided. The computer program product may include instructions configured to cause a computing device to: obtain a geographic coordinate corresponding to a geographic location of the object; obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determine a first projection coordinate of the geographic location of the object on a  corresponding face of the polyhedron based on the geographic coordinate; and/or determine the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
According to another aspect of the present disclosure, a non-transitory computer readable medium embodying a computer program product is provided. The computer program product may include instructions configured to cause a computing device to: obtain a location identifier associated with the object; determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier; obtain a shape of the plurality of cells; determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier; determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate; determine a plurality of geographic locations on earth corresponding to the plurality of vertexes; and/or determine the area based on the plurality of geographic locations.
According to another aspect of the present disclosure, a non-transitory computer readable medium embodying a computer program product is provided. The computer program product may include instructions configured to cause a computing device to: determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers; determine a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells; update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and/or for each of the plurality of discrete global grid cells, determine a current number of requests for on-demand service,  determine a current number of available service providers, and/or determine a current service capacity gap based on the current number of requests and the current number of available service providers.
In some embodiments, the polyhedron representing the earth may be an octahedron having eight faces with a substantially same size and/or shape.
In some embodiments, the plurality of cells of the polyhedron representing the earth may be generated by producing, on one or more faces of the octahedron, a plurality of first cells at an initial resolution, and/or performing one or more iterations to divide the first cells according to the refinement level.
In some embodiments, to determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron, the at least one processor may be further configured to cause the system to: transform the geographic coordinate to a spherical coordinate; transform the spherical coordinate to a Cartesian coordinate; and/or transform the Cartesian coordinate to the first projection coordinate.
In some embodiments, each cell of the plurality of cells may have a shape of hexagon, which has a center point, and to determine the location identifier associated with the object, the at least one processor may be further configured to cause the system to: determine a target center point nearest to the first projection coordinate of the geographic location of the object; and/or determine the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target center point on the corresponding face.
In some embodiments, each cell of the plurality of cells may have a shape of rhombus, each adjacent three or more cells of the plurality of cells may have a common point, and to determine the location identifier associated with the object, the at least one processor may be further configured to cause the system to: determine a target common point having an integer coordinate of the first projection coordinate  of the geographic location of the object; and/or determine the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target common point on the corresponding face.
In some embodiments, to determine a plurality of geographic locations on earth corresponding to the plurality of vertexes, the at least one processor may be further configured to cause the system to: transform a plurality of projection coordinates of the plurality of vertexes to a plurality of Cartesian coordinates; transform the plurality of Cartesian coordinates to a plurality of spherical coordinates; and/or transform the plurality of spherical coordinates to a plurality of geographic coordinates corresponding to the plurality of geographic locations on earth.
In some embodiments, the at least one processor may be further configured to cause the system to: receive a service request that includes a departure location; determine a location identifier based on the departure location; and/or update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by adding 1 to the current number of requests of the discrete global grid cell.
In some embodiments, the at least one processor may be further configured to cause the system to: receive a request response for serving a service request from an available service provider, wherein the service request may include a departure location; determine a location identifier based on the departure location; and/or update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by subtracting 1 from the current number of requests of the discrete global grid cell.
In some embodiments, to determine a location identifier for each available service provider based on the geographic coordinates, the at least one processor may be further configured to cause the system to: for each available service provider, obtain a geographic coordinate corresponding to a geographic location of  the each available service provider; obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth; determine a first projection coordinate of the geographic location of the each available service provider on a corresponding face of the polyhedron based on the geographic coordinate; and/or determine the location identifier associated with the each available service provider based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the each available service provider.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities, and combinations set forth in the detailed examples discussed below.
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 schematic diagram of an exemplary on-demand service system according to some embodiments of the present disclosure;
FIG. 2 is a block diagram of an exemplary mobile device configured to implement a specific system disclosed in the present disclosure;
FIG. 3 is a block diagram illustrating an exemplary computing device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure;
FIG. 5 is a block diagram illustrating an exemplary location identifier assignment module according to some embodiments of the present disclosure;
FIG. 6 is a block diagram illustrating an exemplary area determination module according to some embodiments of the present disclosure;
FIG. 7 is a block diagram illustrating an exemplary service capacity gap determination module according to some embodiments of the present disclosure;
FIG. 8 is a flowchart of an exemplary process for assigning a location identifier associated with an object according to some embodiments of the present disclosure;
FIG. 9 is a schematic diagram illustrating an octahedron representing the earth according to some embodiments of the present disclosure;
FIGs. 10A-10C are schematic diagrams illustrating exemplary refinement operations for refining a face of an octahedron according to some embodiments of the present disclosure;
FIGs. 11A and 11 B are schematic diagrams illustrating an exemplary projection coordinate system on a face of an octahedron according to some embodiments of the present disclosure;
FIG. 12 is a flowchart of an exemplary process for determining the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron according to some embodiments of the present disclosure;
FIG. 13 is a schematic diagram illustrating a point P in the geographic coordinate system according to some embodiments of the present disclosure;
FIG. 14 is a schematic diagram illustrating a point P in the spherical coordinate system according to some embodiments of the present disclosure;
FIG. 15A is a graph illustrating the arctan function curve according to some embodiments of the present disclosure;
FIG. 15B is a graph illustrating the arccos function curve according to some embodiments of the present disclosure;
FIG. 16 is a schematic diagram illustrating the transformation of the Cartesian coordinate to the first projection coordinate according to some embodiments of the present disclosure;
FIG. 17A is a flowchart of an exemplary process for determining a location identifier associated with the object according to some embodiments of the present disclosure;
FIG. 17B is a flowchart of an exemplary process for determining a location identifier associated with the object according to some embodiments of the present disclosure;
FIG. 18A is a schematic diagram illustrating a target center point in a hexagon-shaped cell according to some embodiments of the present disclosure;
FIG. 18B is a schematic diagram illustrating a target common point in a rhombus-shaped cell according to some embodiments of the present disclosure;
FIG. 19 is a schematic diagram illustrating the ascription of the target center point of a crossover cell according to some embodiments of the present disclosure;
FIG. 20 is a flowchart of an exemplary process for determining an area including a geographic location of an object according to some embodiments of the present disclosure;
FIG. 21A is a schematic diagram illustrating the vertexes in a hexagon-shaped cell according to some embodiments of the present disclosure;
FIG. 21B is a schematic diagram illustrating the vertexes in a rhombus-shaped cell according to some embodiments of the present disclosure;
FIG. 21C is a schematic diagram illustrating neighboring cells of a rhombus-shaped cell according to some embodiments of the present disclosure;
FIG. 21D is a schematic diagram illustrating neighboring cells of a hexagon-shaped cell according to some embodiments of the present disclosure;
FIGs. 22A and 22B are schematic diagrams illustrating a plurality of discrete global grid cells on earth according to some embodiments of the present disclosure;
FIG. 23 is a flowchart of an exemplary process for transforming a plurality of projection coordinates to a plurality of geographic locations on earth according to some embodiments of the present disclosure;
FIG. 24 is a flowchart of an exemplary process for determining a service capacity of an on-demand service platform according to some embodiments of the present disclosure;
FIG. 25 is a flowchart of an exemplary process for determining a mapping relation between a user identifier of an available service provider and a location identifier according to some embodiments of the present disclosure;
FIG. 26A is a flowchart of an exemplary process for determining a current number of requests for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure;
FIG. 26B is a flowchart of an exemplary process for determining a current number of request for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure;
FIG. 27A is a schematic diagram illustrating the display of a plurality of discrete global grid cells associated with the current service capacity gap on a map according to some embodiments of the present disclosure; and
FIG. 27B is a schematic diagram illustrating an enlarged view of a sub-region indicated by the dashed line in FIG. 27A 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 “comprises, ” “comprising, ” “includes, ” and/or “including” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
It will be understood that the term “system, ” “module, ” and/or “block” used herein are one method to distinguish different components, elements, parts, section or assembly of different level in ascending order. However, the terms may be displaced by another expression if they achieve the same purpose.
The term “module, ” or “block, ” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions. A module or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable medium or another storage device. In some embodiments, a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or themselves, and/or may be invoked in response to detected events or interrupts. Software modules/units/blocks configured for execution on computing devices (e.g., the processor 320 as illustrated in FIG. 3) may be provided on a computer-readable medium, such as a compact disc, a digital video disc, a flash drive, a magnetic disc,  or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) . Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device. Software instructions may be embedded in firmware, such as an Electrically Programmable Read-Only-Memory (EPROM) . It will be further appreciated that hardware modules/units/blocks may be included in connected logic components, such as gates and flip-flops, and/or can be included in programmable units, such as programmable gate arrays or processors. The modules/units/blocks or computing device functionality described herein may be implemented as software modules/units/blocks but may be represented in hardware or firmware. In general, the modules/units/blocks described herein refer to logical modules/units/blocks that may be combined with other modules/units/blocks or divided into sub-modules/sub-units/sub-blocks despite their physical organization or storage. The description may apply to a system, an engine, or a portion thereof.
It will be understood that when a module or block is referred to as being “connected to, ” or “coupled to, ” another module, or block, it may be directly connected or coupled to, or communicate with the other module, or block, or an intervening unit, engine, module, or block may be present, unless the context clearly indicates otherwise. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
These and other features, and characteristics of the present disclosure, as well as the methods of operations 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 drawing (s) , all of which form part of this specification. It is to be expressly understood, however, that the drawing (s) 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 operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
Moreover, the system or method of the present disclosure may be applied to any other kind of online on-demand service. For example, the system or method of the present disclosure may be applied to different transportation systems 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, a bicycle, a tricycle, a motorcycle, or the like, or any combination thereof. The system or method of the present disclosure may be applied to taxi hailing, chauffeur services, delivery service, carpool, bus service, take-out service, driver hiring, vehicle hiring, bicycle sharing service, train service, subway service, shuttle services, location service, or the like. As another example, the system or method of the present disclosure may be applied to shopping service, learning service, fitness service, financial service, social service, or the like. The application scenarios of the system or method of the present disclosure may 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 object of the on-demand service may be any product. In some embodiments, the product may be a tangible product or an immaterial product. The tangible product may include food, medicine, commodity, chemical product, electrical appliance, clothing, car, housing, luxury, or the like, or any combination thereof.  The immaterial 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 relating to transporting 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.
The term “user” in the present disclosure may refer to an individual, an entity, or a tool that may request a service, order a service, provide a service, or facilitate the providing of the service. In the present disclosure, terms “user” and “user terminal” may be used interchangeably.
FIG. 1 is a block diagram of an exemplary on-demand service system 100 according to some embodiments. For example, the on-demand service system 100 may be an online on-demand service system for transportation services (e.g., taxi hailing, chauffeur services, delivery services, carpool, bus services, take-out  services, driver hiring, vehicle hiring, train services, subway services, shuttle services) , shopping services, fitness services, learning services, financial services, or the like.
The on-demand service system 100 may include a server 110, a network 120, one or more user terminals (e.g., one or more passenger terminals 130, driver terminals 140) , and a storage 150.
The server 110 may include a processing engine 112. It should be noted that the on-demand service system 100 shown in FIG. 1 is merely an example, and not intended to be limiting. In some embodiments, the on-demand service system 100 may include the passenger terminal (s) 130 or the driver terminal (s) 140. In some embodiments, the on-demand service system 100 may assign a location identifier associated with an object (e.g., a passenger associated with a passenger terminal 130, a driver associated with a driver terminal 140, a building, a point of interest (POI) , etc. ) . In some embodiments, the on-demand service system 100 may determine an area including a geographic location of an object (e.g., a passenger associated with a passenger terminal 130, a driver associated with a driver terminal 140, a building, a point of interest (POI) , etc. ) . In some embodiments, the on-demand service system 100 may determine a service capacity (e.g., a real-time service capacity) of an on-demand service platform.
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., 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 one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) , and/or the storage 150 via the network 120. As another example, the server 110 may be directly connected to the one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) , and/or the storage 150 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 300 having one or more components illustrated in FIG. 3 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 relating to one or more objects. In some embodiments, the processing engine 112 may assign a location identifier associated with an object based on a geographic location of the object, determine an area including a geographic location of the object based on a location identifier, and/or determine a service capacity (e.g., a real-time service capacity) of an on-demand service platform in the area. In some embodiments, the object may include a user (e.g., a passenger, a driver, etc. ) , a building, a POI, etc. In some embodiments, the processing engine 112 may include one or more processing engines (e.g., signal-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 on-demand service system 100 (e.g., the server 110, the one or more passenger terminals 130 the one or more driver terminal 140, or the storage 150) may send information and/data to other component (s) in the on-demand service system 100 via the network 120. For  example, the server 110 may obtain/acquire service request from the passenger terminal 130 via the network 120. As another example, the server 110 may receive information relating to one or more objects from the storage 150 directly or via the network 120. As a further example, the server 110 may receive information relating to one or more objects from the passenger terminal 130 and/or the driver terminal 140 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or any combination thereof. Merely by way of example, the network 120 may include a cable network, a wireline network, an optical fiber network, a telecommunications 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 (PTSN) , 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 on-demand service system 100 may be connected to the network 120 to exchange data and/or information.
In some embodiments, the passenger 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 motor 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 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, a 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 assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination. 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 Glass, an Oculus Rift, a Hololens, a Gear VR, etc. In some embodiments, built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc. In some embodiments, the passenger terminal 130 may be a device with positioning technology for locating the position of the service requester and/or the passenger terminal 130.
In some embodiments, the driver terminal 140 may be similar to, or the same device as the passenger terminal 130. In some embodiments, the driver terminal 140 may be a device with positioning technology for locating the position of the driver and/or the driver terminal 140. In some embodiments, the passenger terminal 130 and/or the driver terminal 140 may communicate with other positioning device to determine the position of the service requester, the passenger terminal 130, the driver, and/or the driver terminal 140. In some embodiments, the passenger terminal 130 and/or the driver terminal 140 may send positioning information to the server 110.
The storage 150 may store data and/or instructions. For example, the data may be a training model, one or more training samples, historical orders, or the like, or a combination thereof. In some embodiments, the storage 150 may store data obtained from the one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) . In some embodiments, the storage 150 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 150 may include a mass storage, a 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 drives, 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 (EPROM) , an electrically-erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage 150 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 150 may be connected to the network 120 to communicate with one or more components in the on-demand service system 100 (e.g., the server 110, the one or more user terminals, etc. ) . One or more components in the on-demand service system 100 may access the data and/or instructions stored in the storage 150 via the network 120. In some embodiments, the storage 150 may be directly connected to or communicate with one or more components in the on-demand service system 100 (e.g., the server 110, the one or more user terminals, etc. ) . In some embodiments, the storage 150 may be part of the server 110.
In some embodiments, one or more components in the on-demand service  system 100 (e.g., the server 110, the one or more user terminals, etc. ) may have a permission to access the storage 150. In some embodiments, one or more components in the on-demand service system 100 may read and/or modify information relating to the service requester, driver, and/or the public when one or more conditions are met. For example, the server 110 may read and/or modify one or more users'information after a service. It should be noted that the on-demand service system 100 is merely an example for illustrating an application of the processing engine 112 for assigning a location identifier, determining an area, and/or determining a service capacity. The processing engine 112 may be implemented on one or more other systems (e.g., a customer relationship management system, a project risk management system, an education management system, etc. ) . The above description of the processing engine 112 and the on-demand service system 100 is provided for the purposes of illustration, and is not intended to limit the scope of the present disclosure.
FIG. 2 is a block diagram of an exemplary mobile device 200 configured to implement a specific system disclosed in the present disclosure. In some embodiments, a user terminal device configured to display and communicate information related to locations may be a mobile device 200. The mobile device 200 may include but is not limited to a smartphone, a tablet computer, a music player, a portable game console, a GPS receiver, a wearable calculating device (e.g. glasses, watches, etc. ) , or the like. The mobile device 200 may include one or more central processing units (CPUs) 240, one or more graphical processing units (GPUs) 230, a display 220, a memory 260, a communication unit 210, a storage unit 290, and one or more input/output (I/O) devices 250. Moreover, the mobile device 200 may also be any other suitable component that includes but is not limited to a system bus or a controller (not shown in FIG. 2) . As shown in FIG. 2, a mobile operating system 270 (e.g. IOS, Android, Windows Phone, etc. ) and one or more applications 280 may be loaded from the storage unit 290 to the memory 260 and  implemented by the CPUs 240. The application 280 may include a browser or other mobile applications configured to receive and process information related to a query (e.g., a name of a location) inputted by a user in the mobile device 200. The passenger/driver may obtain information related to one or more search results through the system I/O device 250, and provide the information to the server 110 and/or other modules or units of the on-demand service system 100 (e.g., the network 120) .
In order to implement various modules, units and their functions described above, a computer hardware platform may be used as hardware platforms of one or more elements (e.g., the server 110 and/or other sections of the on-demand service system 100 described in FIG. 1 through FIG. 27) . Since these hardware elements, operating systems and program languages are common, it may be assumed that persons skilled in the art may be familiar with these techniques and they may be able to provide information required in the on-demand service according to the techniques described in the present disclosure. A computer with user interface may be used as a personal computer (PC) , or other types of workstations or terminal devices. After being properly programmed, a computer with user interface may be used as a server. It may be considered that those skilled in the art may also be familiar with such structures, programs, or general operations of this type of computer device. Thus, extra explanations are not described for the Figures.
FIG. 3 is a block diagram illustrating exemplary hardware and software components of a computing device 300 on which the server 110, the one or more user terminals (e.g., the one or more passenger terminals 130, driver terminals 140) may be implemented according to some embodiments of the present disclosure. The computing device 300 may be configured to perform one or more functions of the server 110, passenger terminal 130, and driver terminal 140 disclosed in this disclosure. For example, the processing engine 112 may be implemented on the computing device 300 and configured to perform functions of the processing engine  112 disclosed in this disclosure.
The computing device 300 may be a general-purpose computer or a special purpose computer, both may be used to implement an on-demand service system 100 for the present disclosure. The computing device 300 may be used to implement any component of the on-demand service system 100 as described herein. For example, the processing engine 112 may be implemented on the computing device 300, 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 search 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 300, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The computing device 300 may also include a processor 320, in the form of one or more processors, for executing program instructions. The exemplary computer platform may include an internal communication bus 310, program storage and data storage of different forms, for example, a disk 370, and a read only memory (ROM) 330, or a random access memory (RAM) 340, for various data files to be processed and/or transmitted by the computer. The exemplary computer platform may also include program instructions stored in the ROM 330, RAM 340, and/or other type of non-transitory storage medium to be executed by the processor 320. The methods and/or processes of the present disclosure may be implemented as the program instructions. The computing device 300 may also include an I/O component 360, supporting input/output between the computer and other components therein. The computing device 300 may also receive programming and data via network communications.
The computing device 300 may also include a hard disk controller communicated with a hard disk, a keypad/keyboard controller communicated with a  keypad/keyboard, a serial interface controller communicated with a serial peripheral equipment, a parallel interface controller communicated with a parallel peripheral equipment, a display controller communicated with a display, or the like, or any combination thereof.
Merely for illustration, only one CPU and/or processor is described in the computing device 300. However, it should be noted that the computing device 300 in the present disclosure may also include multiple CPUs and/or processors, thus operations and/or method steps that are 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 300 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 300 (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. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. In some embodiments, the processing engine 112 may be in communication with a computer-readable storage (e.g., the storage 150, a user terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. ) and may execute instructions stored in the computer-readable storage medium. The processing engine 112 may include an acquisition module 402, a location identifier assignment module 404, an area determination module 406, a service capacity gap determination module 408, and a display module 410.
The acquisition module 402 may be configured to obtain data and/or information related to the on-demand service system 100. In some embodiments, the acquisition module 402 may obtain information related to an object as described elsewhere in this disclosure. The object may be any composition of organic and/or  inorganic matters that are with or without life and located on earth. In some embodiments, the object may be a service provider (e.g., a driver) or a service requester (e.g., a passenger) using an on-demand service platform. For example, the acquisition module 402 may obtain position information and/or available status of the object. The availability status may indicate whether the object (e.g., the service provider) is available to provide a service. As another example, the acquisition module 402 may obtain a location identifier associated with the object. As still another example, the acquisition module 402 may obtain a service request and/or a request response for serving the service request from the object.
In some embodiments, the acquisition module 402 may obtain information related to a polyhedron representing the earth in a discrete global grid system (DGGS) . For example, the acquisition module 402 may obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of the polyhedron representing the earth. As another example, the acquisition module 402 may obtain a shape of the plurality of cells. More descriptions of the polyhedron representing the earth may be found elsewhere in the present disclosure (e.g., FIGs. 8-11 and the description thereof) .
In some embodiments, the acquisition module 402 may obtain the data and/or information related to the on-demand service system 100 from a user terminal (e.g., the passenger terminal 130, the driver terminal 140, etc. ) , the storage 150, and/or an external data source (not shown) . In some embodiments, the data acquisition module 402 may obtain the data and/or information related to the on-demand service system 100 via the network 120.
The location identifier assignment module 404 may be configured to determine or assign a location identifier for the object. The location identifier may be represented as a combination of one or more numbers, one or more letters, one or more symbols, etc. In some embodiments, the location identifier assignment module 404 may determine or assign the location identifier based on information  relating to the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or the first projection coordinate of the geographic location of the object. More descriptions of the determination of the location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 8-11 and the description thereof) .
The area determination module 406 may be configured to determine an area including a geographic location of an object. In some embodiments, the area determination module 406 may determine the area based on a location identifier associated with the object and a shape of a plurality of cells that divide one or more faces of a polyhedron representing the earth. The location identifier associated with the object may include information relating to the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or the first projection coordinate of the geographic location of the object. For example, the area determination module 406 may determine a plurality of vertexes of a cell including the first projection coordinate on a corresponding face based on the shape of cells and the first projection coordinate of the geographic location of the object. The area determination module 406 may then determine the area based on a plurality of geographic locations corresponding to the plurality of vertexes. More descriptions of the determination of the area may be found elsewhere in the present disclosure (e.g., FIGs. 20-23 and the description thereof) .
The service capacity gap determination module 408 may be configured to determine a service capacity gap of an on-demand service platform. In some embodiments, the service capacity gap determination module 408 may determine a current service capacity gap in one or more of a plurality of discrete global grid cells corresponding to one or more regions based on a current number of requests and a current number of available service providers in each of the plurality of discrete global grid cells. For example, for each of the discrete global grid cells, the service capacity gap determination module 408 may determine the current service capacity  gap based on a difference between the current number of requests and the current number of available service providers in the discrete global grid cell.
The display module 410 may be configured to display information relating to the on-demand service system 100. In some embodiments, the display module 410 may display the information on a map or a user interface of an application. In some embodiments the display module 410 may display the information on a display (e.g., the display 220) . In some embodiments, the information displayed may include the service capacity gap in one or more regions corresponding to one or more discrete global grid cells. In some embodiments, the display module 410 may represent the current service capacity gap in each discrete global grid cell by a colored icon. The color of the colored icon may relate to the value of the current service capacity gap. For example, the display module 410 may display the color based on a red, green, and blue (RGB) system. In some embodiments, the information displayed may include an area on earth corresponding to one or more discrete global grid cells, one or more geographic coordinates, etc.
It should be noted that the descriptions above in relation to processing engine 112 is provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, various variations and modifications may be conducted under the guidance of the present disclosure. However, those variations and modifications do not depart the scope of the present disclosure. In some embodiments, the processing engine 112 may include one or more other modules. For example, the processing engine 112 may include a storage module to store data generated by the modules in the processing engine 112. In some embodiments, any two of the modules may be combined as a single module, and any one of the modules may be divided into two or more units.
FIG. 5 is a block diagram illustrating an exemplary location identifier assignment module 404 according to some embodiments of the present disclosure.  The location identifier assignment module 404 may include a projection coordinate determination unit 502 and a location identifier determination unit 504.
The projection coordinate determination unit 502 may be configured to determine the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron. In some embodiments, the projection coordinate determination unit 502 may determine the first projection coordinate based on the geographic coordinate of the geographic location of the object. In some embodiments, the projection coordinate determination unit 502 may determine the first projection coordinate based on one or more coordinate transformation operations. For example, the projection coordinate determination unit 502 may transform the geographic coordinate corresponding to the geographic location of the object to a spherical coordinate. The projection coordinate determination unit 502 may then transform the spherical coordinate to a Cartesian coordinate. The projection coordinate determination unit 502 may further transform the Cartesian coordinate to the first projection coordinate. More descriptions of the coordinate transformation operations may be found elsewhere in the present disclosure (e.g., FIGs. 12 through 16 and the description thereof) .
The location identifier determination unit 504 may be configured to determine the location identifier associated with the object. In some embodiments, if the cells on the face of an octahedron have a shape of hexagon, the location identifier determination unit 504 may determine a target center point nearest to the first projection coordinate of the geographic location of the object. The location identifier determination unit 504 may then determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target center point on the corresponding face.
In some embodiments, if the cells on the face of the octahedron have a shape of rhombus, the location identifier determination unit 504 may determine a  target common point having an integer coordinate of the first projection coordinate of the geographic location of the object. The location identifier determination unit 504 may then determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target common point on the corresponding face.
FIG. 6 is a block diagram illustrating an exemplary area determination module 406 according to some embodiments of the present disclosure. The area determination module 406 may include an interpretation unit 602, a vertex determination unit 604, and a geographic coordinate determination unit 606.
The interpretation unit 602 may be configured to interpret information relating to the object and/or the polyhedron representing the earth based on the location identifier. In some embodiments, the interpretation unit 602 may interpret a refinement level relating to a resolution of a plurality of cells that divide one or more faces of the octahedron representing the earth based on the location identifier. For example, the processing engine 112 may parse the field “L12” representing the refinement level in a location identifier “OL12F3i4567j7890” , and may determine the refinement level as 12. In some embodiments, the interpretation unit 602 may interpret a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron. For example, the processing engine 112 may parse the field “i4567j7890” representing the projection coordinate in the location identifier “OL12F3i4567j7890” , and may determine the first projection coordinate as (45.67, 78.90) .
The vertex determination unit 604 may be configured to determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face. In some embodiments, the vertex determination unit 604 may determine the plurality of vertexes based on the shape of the cells and the first projection coordinate of the geographic location of the object on a corresponding face of the  polyhedron. More descriptions of the determination of the vertexes of the cell including the first projection coordinate on the corresponding face may be found elsewhere in the present disclosure (e.g., FIGs. 20 and 21 and the description thereof) .
The geographic coordinate determination unit 606 may be configured to determine a plurality of geographic locations on earth corresponding to a plurality of points on a corresponding face. In some embodiments, the geographic coordinate determination unit 606 may determine the plurality of geographic locations on earth corresponding to the plurality of vertexes. In some embodiments, the geographic coordinate determination unit 606 may determine the geographic coordinates of the plurality of vertexes based on one or more coordinate transformation operations. For example, the geographic coordinate determination unit 606 may transform a plurality of projection coordinates to a plurality of Cartesian coordinates, and transform the Cartesian coordinates to a plurality of spherical coordinates, and further transform the spherical coordinates to the geographic coordinates. More descriptions of the transformation of the projection coordinates to the geographic coordinates may be found elsewhere in the present disclosure (e.g., FIG. 23 and the description thereof) .
FIG. 7 is a block diagram illustrating an exemplary service capacity gap determination module 408 according to some embodiments of the present disclosure. The service capacity gap determination module 408 may include a request number determination unit 702, a service provider number determination unit 704, a mapping relation determination unit 706, and an updating unit 708.
The request number determination unit 702 may be configured to determine the number of requests for the on-demand service. In some embodiments, the service provider number determination unit 704 may determine a current number of requests in one or more discrete global grid cells. In some embodiments, the request number determination unit 702 may determine the current number of  requests for the on-demand service in the discrete global grid cells based on the number of requests and the number of request responses for serving the service requests in the discrete global grid cells. For example, the current number of requests for the on-demand service in a discrete global grid cell may be a difference between the number of requests and the number of request responses in the discrete global grid cell.
The service provider number determination unit 704 may be configured to determine the number of service providers for the on-demand service. In some embodiments, the service provider number determination unit 704 may determine a current number of available service providers in one or more discrete global grid cells. The available service providers may indicate that the service provider is available to provide a service. In some embodiments, the service provider number determination unit 704 may determine the current number of available service providers in the discrete global grid cells based on position information and availability status of the service providers. In some embodiments, the service provider number determination unit 704 may determine the current number of available service providers in the discrete global grid cells based on a mapping relation between user identifiers of the available service providers and a plurality of location identifiers. More descriptions of the mapping relation between user identifiers of the available service providers and the location identifiers may be found elsewhere in the present disclosure (e.g., FIGs. 24, 25 and the description thereof) .
The mapping relation determination unit 706 may be configured to determine a mapping relation between the user identifiers of the available service providers and the location identifiers. In some embodiments, a user identifier may be associated with identity information of a service provider. More descriptions of the user identifier may be found elsewhere in the present disclosure (e.g., FIG. 24 and the description thereof) . In some embodiments, the mapping relation determination unit 706 may determine the mapping relation between the user identifiers of the available  service providers and the location identifiers based on recorded location identifiers for the available service providers. As used herein, a “recorded location identifier” for an available service provider may refer to a location identifier corresponding to a previously determined geographic coordinate of the available service provider.
The updating unit 708 may be configured to update information related to the on-demand service system 100.
In some embodiments, geographic locations of the available service providers may change with time. The updating unit 708 may update the recorded location identifiers for the available service providers. For example, the updating unit 708 may update the recorded location identifiers for the available service providers as the current location identifiers for the available service providers. As used herein, a “current location identifier” for an available service provider may refer to a location identifier corresponding to a current geographic coordinate of the available service provider. In some embodiments, the processing engine 112 may update the mapping relation between the user identifiers of the available service providers and the location identifiers based on the current location identifiers for the available service providers.
In some embodiments, the number of service requests and/or the number of request responses may change with time. In some embodiments, the updating unit 708 may update the number of requests and/or the number of request responses in one or more discrete global grid cells. In some embodiments, the updating unit 708 may update the current number of requests and/or the number of request responses in real time. More descriptions of the update of the current number of requests and/or the number of request responses may be found elsewhere in the present disclosure (e.g., FIGs. 24-26 and the description thereof) .
FIG. 8 is a flowchart of an exemplary process 800 for assigning a location identifier associated with an object according to some embodiments of the present disclosure. In some embodiments, the process 800 for assigning a location  identifier associated with an object may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 800 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 800 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 800 as illustrated in FIG. 8 and described below is not intended to be limiting.
In 801, the processing engine 112 (e.g., the acquisition module 402) may obtain a geographic coordinate corresponding to a geographic location of an object. The object may be any composition of organic and/or inorganic matters that are with or without life and located on earth. For example, the object may be a service provider (e.g., a driver) or a service requester (e.g., a passenger) using an on-demand service platform. In some embodiments, the geographic coordinate corresponding to the geographic location of the object may include longitudinal and latitudinal coordinates of a position where the object locates.
In some embodiments, the processing engine 112 may obtain the geographic coordinate of the object from one or more components of the on-demand service system 100. In some embodiments, the object may be associated with a device with positioning function, and the processing engine 112 may obtain the geographic coordinate from the device. For example, the processing engine 112 may obtain the geographic coordinate via a GPS receiver mounted on a portable device associated with the object (e.g., a passenger terminal 130, a driver terminal 140, etc. ) . The processing engine 112 may continuously or periodically obtain a real-time geographic coordinate of the object from the device. Additionally or  alternatively, the device with positioning function may transmit the geographic coordinate of the object to the storage (e.g., the storage 150, the storage 290) via the network 120 continuously or periodically. The processing engine 112 may access the storage and retrieve one or more geographic coordinates of the object.
In 803, the processing engine 112 (e.g., the acquisition module 402) may obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth.
In some embodiments, the earth may be modeled based on a discrete global grid system (DGGS) . In the DGGS, the earth may be approximated as a polyhedron. The polyhedron representing the earth may have any shape, for example, a tetrahedron, a cube, an octahedron, an icosahedron, a dodecahedron, etc. In some embodiments, the polyhedron representing the earth may be an octahedron having eight faces with a substantially same size and shape, as shown in FIG. 9. FIG. 9 is a schematic diagram illustrating an octahedron representing the earth according to some embodiments of the present disclosure. The octahedron has six vertexes. The longitudinal and latitudinal coordinates of the six vertexes in a geographic coordinate system may be (0, 90) , (0, -90) , (0, 0) , (90, 0) , (-90, 0) , and (180, 0) . Two of the vertexes (e.g., A and F) may represent the two poles of the earth, respectively. The other four vertexes (e.g., B, C, D, and E) may divide the equator of the earth into four equal portions. Point G may represent the center point of the earth. The octahedron has eight faces (e.g., ΔABC, ΔACD, ΔADE, ΔAEB, ΔFBC, ΔFCD, ΔFDE, ΔFEB) , which may correspond to eight equal portions of the surface of the earth. For example, ΔABC, ΔACD, ΔADE, and ΔAEB may correspond to a quarter of the northern hemisphere surface of the earth, respectively. As another example, ΔFBC, ΔFCD, ΔFDE, and ΔFEB may correspond to a quarter of the southern hemisphere surface of the earth, respectively.
In some embodiments, each face of the polyhedron may be divided into a  plurality of cells. Each cell may have a shape such as but not limited to hexagon, rhombus, square, rectangle, triangle, etc. In some embodiments, the cells formed with a division have the same size and shape. In some embodiments, the cells formed with a division have different sizes and shapes. A relatively fine resolution of the DGGS may be realized when a face is divided into more cells with smaller areas. A refinement operation may be applied to subdividing faces to generate finer cells. The refinement operation may refer to the conversion of a set of relatively coarse cells to relatively finer cells. The refinement operation may be performed for one or more times. The refinement level may refer to the number of times of refinements. In some embodiments, the refinement level may be a default value determined by the processing engine 112 or set by a user or operator via a terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. ) . In some embodiments, the processing engine 112 may obtain the refinement level from the storage 150, the passenger terminal 130, and/or the driver terminal 140. In some embodiments, the processing engine 112 may obtain the refinement level from the I/O 230 of the computing device 200 via the communication port 240, and/or the I/O 350 of the mobile device 300 via the communication platform 310. In some embodiments, the processing engine 112 may obtain the refinement level from an external data source connected to the on-demand service system 100 via the network 120. In some embodiments, one or more faces of the polyhedron (e.g., the octahedron) may be refined according to the refinement level to provide a plurality of cells with a relatively fine resolution.
Each refinement operation may be performed based on a refinement factor. The refinement factor may relate to how fine a cell may be divided in a single refinement operation. In some embodiments, the plurality of cells of the polyhedron representing the earth may be generated based on a 1-to-m refinement. The number m may be the refinement factor. Based on the 1-to-m refinement, a cell (or a face of the polyhedron) with an area of A may be divided into cells with an area of  A/m. For example, in a 1-to-4 refinement, each cell may be divided into four cells. As a result, the number of cells may grow exponentially by a factor of four from one resolution to a next. In some embodiments, two or more refinement operations in different number of times may be performed based on a same refinement factor. In some embodiments, two or more refinement operations in different number of times may be performed based on different refinement factors. For example, a 1-to-4 refinement may be performed in a first refinement operation, and subsequently a 1-to-2 refinement may be performed in a second refinement operation.
In some embodiments, the plurality of cells of one or more faces of the polyhedron representing the earth may be generated by performing one or more iterations of refinement operations to divide each face according to the refinement level and/or one or more refinement factors. FIGs. 10A-10C are schematic diagrams illustrating exemplary refinement operations for refining a face of an octahedron according to some embodiments of the present disclosure. As shown in FIGs. 10A-10C, ΔHIJ may represent an exemplary face of an octahedron. As shown in FIG. 10A, in a first refinement operation, a 1-to-4.5 refinement may be performed, and 4.5 first cells having a shape of rhombus may be generated. Specifically, the processing engine 112 may determine two points of trisection along each side of the face ΔHIJ to obtain a plurality of first points at resolution 1. At resolution 1, the three vertexes H, I, and J may be regarded as first points. Merely by way of example, the first points may include the points g, j, k, m, n, and i. In the present disclosure, the terms “first point” and “first level equal diversion point” are used interchangeably. A plurality of first cells may be formed based on the first points. The first cells may include three complete rhombuses (e.g., the rhombus “Hghi, ” “gjkh, ” ihmn) and three incomplete rhombuses (e.g., the semi-rhombus “jIk, ” “hkm, ” “nmJ” ) . The first cells may be regarded as resolution 1 cells. The refinement level of the resolution 1 cells may be 1.
To obtain finer resolution cells, the processing engine 112 may perform one  or more iterations of the refinement operation to generate cells at different resolutions. As shown in FIG. 10B, in a second refinement operation, a 1-to-4 refinement may be performed, and 4 cells having a shape of rhombus may be generated based on each first cell. Specifically, the processing engine 112 may determine a point of bisection between each two of the plurality of first points along each side of the face ΔHIJ to obtain a plurality of second points at resolution 2. At resolution 2, the three vertexes H, I, and J may be regarded as second points. In the present disclosure, the terms “second point” and “second level equal diversion point” are used interchangeably. A plurality of second cells may be formed based on the second points. The second cells may be regarded as resolution 2 cells. The refinement level of the resolution 2 cells may be 2. As shown in FIG. 10C, in a third refinement operation, a 1-to-4 refinement may be performed, and 4 cells having a shape of rhombus may be generated based on each second cell. Specifically, the processing engine 112 may determine a point of bisection between each two of the plurality of second points along each side of the face ΔHIJ to obtain a plurality of third points at resolution 3. At resolution 3, the three vertexes H, I, and J may be regarded as third points. In the present disclosure, the terms “third point” and “third level equal diversion point” are used interchangeably. A plurality of third cells may be formed based on the third points. The third cells may be regarded as resolution 3 cells. The refinement level of the resolution 3 cells may be 3. Similarly, further refinement operations (e.g., 1-to-4 refinements) may be performed to further refine the plurality of cells. Each cell at lower resolution (s) may be represented at a relatively high resolution. For example, as shown in FIG. 10C, the resolution 1 cells and the resolution 2 cells may be represented by resolution 3 cells.
It should be noted that the shape of the plurality of cells may be determined based on the shape of the face of the polyhedron, one or more refinement factors, and/or the refinement level. Take octahedron as an example, the shape of the cells may be triangle or hexagon in addition to rhombus. A same refinement operation  may generate different shapes of cells with different refinement factors. For example, as shown in FIG. 10A, the refinement factor is 4.5 for rhombus but 9/7 for hexagon, and no hexagon is formed. A semi-hexagon indicated by the dashed lines is defined by the vertexes points a, b, c, d, e, and f, and have a center point h. As another example, as shown in FIG. 10B, the refinement factor is 4 for rhombus but 3.5 for hexagon. As a further example, as shown in FIG. 10C, the refinement factor is 4 for rhombus but 3.5 for hexagon. The hexagons are indicated by dashed lines in FIGs. 10B and 10C. In some embodiments, the shape of the plurality of cells may be set manually or be determined by one or more components of the on-demand service system 100 according to different situations.
In some embodiments, regardless of the shape of the cells, the number of points on a face of the polyhedron generated by the refinement operations as shown in FIGs. 10A-10C may be determined as follows:
V e (T n) =3*2 n-1+1,     (1)
M e (T n) =V e (T n) -1=3*2 n-1,    (2)
V (T n) =9*2 n-2 (2 n-1+1) +1,    (3)
E (T n) =9*2 n-2 (3*2 n-1+1) ,    (4)
F (T n) =9*4 n-1,    (5)
where V e (T n) may refer to the number of points on one side of a face of the octahedron, n may refer to the refinement level, M e (T n) may refer to the number of equal segments on one side of a face of the octahedron, V (T n) may refer to the number of all the points on one face of the octahedron, E (T n) may refer to the number of segments between two adjacent points on a face of the octahedron, and F (T n) may refer to the number of finest triangles on a face of the octahedron. As shown in FIG. 10A, four points H, g, j, and I may be on one side (e.g., side “HI” ) of the octahedron. Ten points H, g, j, I, k, m, J, n, i, and h may be on one face (e.g., face “HIJ” ) of the octahedron.
Rhombus-shaped cells may have a plurality of features, for example: simple  geometry, consistent direction, radial symmetry, translational congruity, easy for space operation (e.g., neighborhood search) , etc. Hexagon-shaped cells may have a plurality of features, for example: uniform neighborhood relationship, the distances between two center points of any two adjacent hexagon-shaped cells being the same, high spatial coverage, neighborhood consistency, etc. The uniform neighborhood relationship may indicate that each hexagon-shaped cell has six adjacent hexagon-shaped cells, and each hexagon-shaped cell and an adjacent hexagon-shaped cell have a common side.
In some embodiments, for each of the faces of the polyhedron, a projection coordinate system may be constructed. As illustrated in FIGs. 9 and 16, taking the face ΔACD as an example, AC and AD may be designated as an I-axis and a J-axis. An axis passing through the vertex A and perpendicular to the face ΔACD may be designated as a K-axis.
A face of the polyhedron may have a plurality of points including the vertexes of the cells and the points inside the cells. Each of the plurality of points may have a corresponding projection coordinate on the face of the polyhedron. The projection coordinate of a point on a face of the polyhedron may be determined based on an origin of the projection coordinate system on the face and one or more basis vectors, as shown in FIGs. 11A and 11B. FIGs. 11A and 11 B are schematic diagrams illustrating an exemplary projection coordinate system on a face of an octahedron according to some embodiments of the present disclosure. In some embodiments, the projection coordinates of the points on the face of the octahedron may be determined based on the projection coordinates of vertexes of the faces, and the refinement level. Merely by way of example, as shown in FIG. 11A, face “KLM” may be one of the faces of the octahedron representing the earth. The number of points on one side of the face “KLM” may be determined based on Equation (6) :
V e=3*2 n-1+1,    (6)
where V e may refer to the number of points on one side of the face “KLM” ; and n may refer to the refinement level.
In some embodiments, a vertex (e.g., vertex K) may be regarded as an origin of the projection coordinate system. Then two basis vectors (e.g., a first basis vector
Figure PCTCN2018090034-appb-000001
and a second basis vector
Figure PCTCN2018090034-appb-000002
) may be determined based on the vector 
Figure PCTCN2018090034-appb-000003
the vector
Figure PCTCN2018090034-appb-000004
and/or the number of points on one side of the face KLM V e. The first basis vector may refer to a vector formed by the origin K and an adjacent nth level equal diversion point along the
Figure PCTCN2018090034-appb-000005
direction. The second basis vector may refer to a vector formed by the origin K and an adjacent nth level equal diversion point along the
Figure PCTCN2018090034-appb-000006
direction. The basis vectors may be determined based on Equation (7) :
Figure PCTCN2018090034-appb-000007
The projection coordinate of a point on the face “KLM” may be determined based on the two basis vectors. For example, any point (e.g., a point X) on the face “KLM” may be represented by a vector
Figure PCTCN2018090034-appb-000008
and the vector
Figure PCTCN2018090034-appb-000009
may be represented as
Figure PCTCN2018090034-appb-000010
and thus, the projection coordinate of the point X on the face “KLM” may be represented as (i, j) , in which i may be an integer equal to 0, 1, …, or V e-1, j may be an integer equal to 0, 1, …, or V e-1, and i+j may be equal to or less than V e-1.
It should be noted that the projection coordinates of points in rhombus-shaped cells at different refinement levels may be interconvertible. For example, the projection coordinate of a first rhombus-shaped cell at refinement level n may be determined based on the projection coordinate of a second rhombus-shape cell at refinement level q (q>n) , as illustrated in Equation (8) :
Figure PCTCN2018090034-appb-000011
where (ii, jj) may refer to the projection coordinate of the first rhombus-shaped cell at refinement level n in the projection coordinate system, and (i, j) may refer to the  projection coordinate of the second rhombus-shaped cell at refinement level q in the projection coordinate system.
In 805, the processing engine 112 (e.g., the projection coordinate determination unit 502) may determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate.
In some embodiments, the processing engine 112 may determine the corresponding face based on the geographic location of the object. For example, as illustrated in FIG. 9, assuming that the geographic coordinate of vertex A is (0, 90) , the geographic coordinate of vertex C is (0, 0) , the geographic coordinate of vertex D is (90, 0) , the longitude of the object is between 0 and 90, and the latitude of the object is between 0 and 90, then the corresponding face may be ΔACD.
In some embodiments, as shown in FIG. 19, the eight faces of the octahedron may be numbered, and thus each face may have an identifier. For example, the eight faces of the octahedron may be numbered from 0 to 7. The identifier of the face of the octahedron may be determined based on the range of the longitudinal and latitudinal coordinates of the geographic location of the object. The identifier of the face of the octahedron may be determined based on Equation (9) :
Figure PCTCN2018090034-appb-000012
where f may refer to the identifier of the face of the octahedron, lat may refer to the latitudinal coordinate in the geographic coordinate system, and lon may refer to the longitudinal coordinate in the geographic coordinate system.
In some embodiments, the processing engine 112 may determine a corresponding face of the polyhedron for the object based on the geographic  coordinates of the object according to Equation (9) .
In some embodiments, the processing engine 112 may determine a first projection point on the corresponding face of the polyhedron for the object. As used herein, a projection point may refer to an intersection point of a line and the corresponding face of the polyhedron, in which the line connects the geographic location point of the object on earth and the center point of the earth. The first projection coordinate of the geographic location of the object on the corresponding face of the polyhedron may be referred to as the projection coordinate of the first projection point in the projection coordinate system.
In some embodiments, the processing engine 112 may determine the first projection coordinate based on one or more coordinate transformation operations. For example, the processing engine 112 may transform the geographic coordinate corresponding to the geographic location of the object to a spherical coordinate. The processing engine 112 may then transform the spherical coordinate to a Cartesian coordinate. The processing engine 112 may further transform the Cartesian coordinate to the first projection coordinate. More descriptions of the coordinate transformation operations may be found elsewhere in the present disclosure (e.g., FIGs. 12 through 16 and the description thereof) .
In 807, the processing engine 112 (e.g., location identifier determination unit 504) may determine a location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, the shape of the plurality of cells, and/or the first projection coordinate of the geographic location of the object.
The location identifier may be represented as a combination of one or more numbers, one or more letters, one or more symbols, etc. In some embodiments, the location identifier can uniquely identify a cell on a face of the polyhedron. A region including discrete geographic coordinates of objects located on earth may be indexed to a cell on a face of the polyhedron. The location identifier may simplify  data analysis for the on-demand service system 100. In some embodiments, the on-demand service system 100 may determine a region on earth based on a location identifier of a cell on a face of the polyhedron. In some embodiments, the location identifier may include information relating to the refinement level obtained in 803, the shape of the polyhedron, the identifier of the corresponding face, and/or the first projection coordinate of the geographic location of the object determined in 805. In some embodiments, the identifier of the corresponding face may be determined according to Equation (9) .
Merely by way of example, the processing engine 112 may determine the location identifier in the form of a string “OL [] F [] i [] j [] ” , in which “O” may refer to that the polyhedron is an octahedron, “L” may refer to the refinement level, “F” may refer to the identifier of the corresponding face of the octahedron, “i” and “j” may refer to a second projection coordinate, and “ [] ” may refer to that one or more numbers can be filled in a current position of the string. For example, the location identifier may be “OL13F1i1234j5678” . In some embodiments, the processing engine 112 may determine the second projection coordinate based on the first projection coordinate and the shape of the cells on the corresponding face. More descriptions of the determination of the second projection coordinate may be found elsewhere in the present disclosure (e.g., FIGs. 17 and 18 and the description thereof) .
In some embodiments, the processing engine 112 may update the location identifier associated with the object based on real time location information of the object on earth. For example, if the object changes location from a first position to a second position, the first position corresponds to a first location identifier, and the second position corresponds to a second location identifier, then the processing engine 112 may update the first location identifier to the second location identifier.
It should be noted that the above description 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, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 800. In the storing operation, the processing engine 112 may store information and/or data associated with the polyhedron representing the earth (e.g., the shape, the refinement level) in a storage (e.g., the storage 150) disclosed elsewhere in the present disclosure. As another example, one or more parameters in the location identifier associated with the object may be added, replaced, or removed.
FIG. 12 is a flowchart of an exemplary process 1200 for determining the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron according to some embodiments of the present disclosure. In some embodiments, the process 1200 for determining the first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 1200 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 1200 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1200 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 1200 as illustrated in FIG. 12 and described below is not intended to be limiting. In some embodiments, operation 805 illustrated in FIG. 8 may be performed according to the process 1200.
In 1201, the processing engine 112 (e.g., the projection coordinate determination unit 502) may transform the geographic coordinate to a spherical  coordinate.
In some embodiments, to facilitate a transformation operation, the geographic coordinate may be converted to a corresponding geographic coordinate that corresponds to a reference face. Any one of the eight faces of the octahedron may be designated as the reference face. In some embodiments, a face with an identifier “0” may be designated as the reference face, and if the corresponding face for the object is not the reference face “0” , the processing engine 112 may convert the geographic coordinate of the object into a corresponding geographic coordinate that corresponds to the reference face “0” . For example, as illustrated in FIG. 19, a face with an identifier “4” may be represented as an inverted triangle, after conversion, the face with identifier “4” may be mapped to the reference face “0” , and thus, the point F may be regarded as the origin (with a projection coordinate (0, 0) ) of the projection coordinate system, the vector FD may correspond to the I-axis of the projection coordinate system, and the vector FC may correspond to the J-axis of the projection coordinate system.
The geographic coordinate may include a longitude coordinate and a latitude coordinate in a geographic coordinate system, as shown in FIG. 13. FIG. 13 is a schematic diagram illustrating a point P in the geographic coordinate system according to some embodiments of the present disclosure. In the geographic coordinate system, a position of a geographic location on the earth's surface may be represented by a latitude coordinate and a longitude coordinate. Each line of longitude runs north–south and measures the number of degrees east or west of the prime meridian. The value of the longitude coordinate ranges from -180° to +180°. Lines of latitude run east–west and measure the number of degrees north or south of the equator. The value of the latitude coordinate ranges from +90° at the North Pole to -90° at the South Pole. The geographic coordinate of the point P may be represented as P (lat, lon) . The latitude of the point P is the angle between the ellipsoidal normal through the point P and the equatorial plane. The longitude of the  point P is the angle between the meridian ellipse which passes through Greenwich and the meridian ellipse containing the point P.
A spherical coordinate may be shown in FIG. 14. FIG. 14 is a schematic diagram illustrating a point P in the spherical coordinate system according to some embodiments of the present disclosure. In the spherical coordinate system, the position of the point P may be specified by three numbers: the radial distance (also referred to as r) of the point P from an origin (e.g., point O as shown in FIG. 14) , its polar angle (also referred to as
Figure PCTCN2018090034-appb-000013
) measured from a zenith direction, and the azimuth angle (also be referred to as θ) of its orthogonal projection on a reference plane that passes through the origin and is orthogonal to the zenith, in which the azimuth angle is measured from a predetermined reference direction on that plane. The spherical coordinate of the point P may be represented as
Figure PCTCN2018090034-appb-000014
The geographic coordinate and the spherical coordinate may be interconvertible. In some embodiments, the processing engine 112 may transform the geographic coordinate of the object (e.g., P (lat, lon) ) to the spherical coordinate of the object (e.g., 
Figure PCTCN2018090034-appb-000015
) based on Equation (10) . In some embodiments, the processing engine 112 may transform the spherical coordinate to the geographic coordinate based on Equation (11) .
Figure PCTCN2018090034-appb-000016
Figure PCTCN2018090034-appb-000017
where lat may refer to the latitude of the point P in the geographic coordinate system, lon may refer to longitude of the point P in the geographic coordinate system, 
Figure PCTCN2018090034-appb-000018
may refer to the polar angle of the point P in the spherical coordinate, θ may refer to azimuth angle of the point P in the spherical coordinate, “rad2deg” may refer to a function that convert a radian to an angle, and “deg2rad” may refer to a function that convert an angle to a radian.
In 1203, the processing engine 112 (e.g., the projection coordinate  determination unit 502) may transform the spherical coordinate to a Cartesian coordinate.
Cartesian coordinate (also referred to as a rectangular coordinate) may indicate the position of a point on a two-dimensional (2D) surface or in a three-dimensional (3D) space. The coordinate of a point in the Cartesian coordinate system may include one or more distances from a set of orthogonal coordinate axes (e.g., X-axis, Y-axis, Z-axis shown in FIG. 14) that intersect at an origin (e.g., origin O shown in FIG. 14) . The spherical coordinate and the Cartesian coordinate may be interconvertible. In some embodiments, the processing engine 112 may transform the spherical coordinate (e.g., 
Figure PCTCN2018090034-appb-000019
) in the sphere coordinate system to a Cartesian coordinate (e.g., (x, y, z) ) based on Equation (12) . In some embodiments, the processing engine 112 may transform the Cartesian coordinate to the spherical coordinate based on Equation (13) .
Figure PCTCN2018090034-appb-000020
Figure PCTCN2018090034-appb-000021
where x may refer to the position of the perpendicular projection of the point P onto the X-axis, y may refer to the position of the perpendicular projection of the point P onto the Y-axis, and z may refer to the position of the perpendicular projection of the point P onto the Z-axis.
It should be noted that the azimuth angle θ is in a range of [-π, π] , while the value of the arctan function is in a range of
Figure PCTCN2018090034-appb-000022
as shown in FIG. 15A. FIG. 15A is a graph illustrating the arctan function curve according to some embodiments of the present disclosure. The value of the function y=arctan x is in the range of
Figure PCTCN2018090034-appb-000023
which is different from the range of the azimuth angle θ of the point P in the spherical coordinate.
To compensate for this difference, the azimuth angle θ may be determined based on the quadrant of the coordinate (x, y) . Specifically, if x=0, then the azimuth angle θ may be determined based on Equation (14) :
Figure PCTCN2018090034-appb-000024
If x<0, then the azimuth angle θ may be determined based on Equation (15) :
Figure PCTCN2018090034-appb-000025
where
Figure PCTCN2018090034-appb-000026
If x>0, then the azimuth angle θ may be determined as
Figure PCTCN2018090034-appb-000027
The value of the arccos function is in a range of [0, π] (as shown in FIG. 15B) , which is consistent with the range of the polar angle
Figure PCTCN2018090034-appb-000028
FIG. 15B is a graph illustrating the arccos function curve according to some embodiments of the present disclosure.
In 1205, the processing engine 112 (e.g., the projection coordinate determination unit 502) may transform the Cartesian coordinate to the first projection coordinate.
The Cartesian coordinate and the first projection coordinate may be interconvertible, as shown in FIG. 16. FIG. 16 is a schematic diagram illustrating the transformation of the Cartesian coordinate to the first projection coordinate according to some embodiments of the present disclosure. As shown in FIG. 16, GC, GA, and GB may be correspond to X-axis, Y-axis, and Z-axis in the Cartesian coordinate system, respectively. Point G may be the origin of the Cartesian coordinate system. Assuming that the radius of the earth has 1 unit length, then the Cartesian coordinates of points A, C, D, and P may be (0, 1, 0) , (0, 0, 1) , (1, 0, 0) , and P (x, y, z) , respectively. In the projection coordinate system, AC and AD may correspond to the I-axis and J-axis. An axis passing through point A and  perpendicular to the plane ACD may correspond to the K-axis. Point P’may be the projection point for the point P on the face ACD. Point P’may have a projection coordinate P’ (i, j, k) .
Vector AP’may be determined based on Equation (16) :
Figure PCTCN2018090034-appb-000029
where
Figure PCTCN2018090034-appb-000030
may refer to vector AP’, 
Figure PCTCN2018090034-appb-000031
may refer to the vector AC, and
Figure PCTCN2018090034-appb-000032
may refer to the vector AD.
Vector AP may be determined based on Equation (17) :
Figure PCTCN2018090034-appb-000033
where
Figure PCTCN2018090034-appb-000034
may refer to the vector AP, and
Figure PCTCN2018090034-appb-000035
may refer to the vector GP.
The Cartesian coordinate P (x, y, z) and the projection coordinate P’ (i, j, k) may have a relationship illustrated in Equation (18) :
Figure PCTCN2018090034-appb-000036
Equation (18) may be expressed as Equation (19) :
Figure PCTCN2018090034-appb-000037
Assuming that s=x+y+z, the projection coordinate P’ (i, j, k) may be determined based on Equation (20) :
Figure PCTCN2018090034-appb-000038
It should be noted that the above description 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. In some embodiments, one or more steps may be added or omitted. In some embodiments, one or more equations applied in the process 1200 may be modified.  In some embodiments, one or more equations illustrated above may be expressed in other forms.
FIG. 17A is a flowchart of an exemplary process 1700 for determining a location identifier associated with the object according to some embodiments of the present disclosure. In some embodiments, the process 1700 for determining a location identifier associated with the object may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 1700 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 1700 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1700 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 1700 as illustrated in FIG. 17A and described below is not intended to be limiting. In some embodiments, operation 807 illustrated in FIG. 8 may be performed according to the process 1700.
In 1701, the processing engine 112 (e.g., the location identifier determination unit 504) may determine a target center point nearest to the first projection coordinate of the geographic location of the object. In some embodiments, the projection coordinate of the target center point on a corresponding face may be regarded as the projection coordinate of a hexagon-shaped cell where the first projection point for the object is located.
In some embodiments, if the cells on the face of the octahedron have a shape of hexagon, the processing engine 112 may determine the target center point, as shown in FIG. 18A. FIG. 18A is a schematic diagram illustrating a target center point in a hexagon-shaped cell according to some embodiments of the present disclosure. Point P’may be the projection point of the geographic location of the  object on an exemplary corresponding face ACD of the octahedron. The projection coordinate of the point P’on the corresponding face ACD may be the first projection coordinate of the geographic location of the object. As illustrated in FIG. 18A, there are a plurality of level 2 hexagon-shaped cells on face ACD. Points R 1, R 2, R 3, R 4, R 5, R 6, and R 7 are center points of the hexagon-shaped cells.
The processing engine 112 may determine a center point nearest to the projection point P’as the target center point. In some embodiments, the processing engine 112 may determine the distances between point P’and the center points (e.g., the points R 1, R 2, R 3, R 4, R 5, R 6, and R 7) of the hexagon-shaped cells based on the projection coordinates of point P’and the center points on the face ACD. The processing engine 112 may determine the center point nearest to the projection point P’based on the distances between point P’and a number of surrounding center points. As shown in FIG. 18A, point R 7 may be the target center point.
In 1703, the processing engine 112 (e.g., location identifier determination unit 504) may determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target center point on the corresponding face.
The processing engine 112 may designate the projection coordinate of the target center point on the corresponding face as the second projection coordinate. Merely by way of example, the processing engine 112 may determine the location identifier in the form of a string “OL [] F [] i [] j [] ” , in which “O” may refer to that the polyhedron is an octahedron, “L” may refer to the refinement level, “F” may refer to the identifier of the corresponding face of the octahedron, “i” and “j” may refer to a second projection coordinate, and “ [] ” may refer to that one or more numbers can be filled in a current position of the string. For example, if the refinement level is 2, the identifier of the corresponding face of the octahedron is 0, and the projection coordinate of the target center point is (12.34, 56.78) , then the location identifier may  be “OL2F0i1234j5678” .
In some embodiments, a hexagon-shaped cell may cross over two or more faces of the octahedron. The hexagon-shaped cell that crosses over two or more faces of the octahedron may be referred to as a crossover cell. For example, as shown in FIG. 19, four 1/6 hexagon-shaped cells AK 1K 2, AK 2K 3, AK 3K 4, and AK 4K 1 may belong to a same hexagon-shaped cell. Accordingly, the target center point may be located at a vertex of the corresponding face. As another example, as shown in FIG. 19, a border of two adjacent faces may divide a hexagon-shaped cell into two halves, that is, two 1/2 hexagon-shaped cells on two different faces may belong to a same hexagon-shaped cell. Accordingly, the target center point may be located on a side of the corresponding face. Therefore, it may be desirable to determine which face the target center point of a crossover cell belongs to. In some embodiments, the processing engine 112 may determine the ascription of the target center point of a crossover cell based on one or more rules, as illustrated in FIG. 19. In 1703, the processing engine 112 may determine the location identifier associated with the object based on a ruled identifier of the corresponding face, wherein the “ruled identifier” refers to the identifier of the corresponding face of the target center point determined according to the one or more rules. The one or more rules may be a system default determined by the processing engine 112 or set by a user or operator via a terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. )
FIG. 19 is a schematic diagram illustrating the ascription of the target center point of a crossover cell according to some embodiments of the present disclosure. For convenience of illustration, the eight faces of the octahedron may be unfolded into a plane. The identifiers of the eight faces may be 0, 1, 2, 3, 4, 5, 6, and 7. The six vertexes of the octahedron may be point A, B, C, D, E, and F.
In some embodiments, the projection coordinate of the target center point of a crossover cell on the corresponding face may be (0, 0) . Accordingly, the processing engine 112 may determine the ascription of the target center point based  on Equation (21) :
Figure PCTCN2018090034-appb-000039
where f may refer to an initial identifier of the corresponding face of the target center point, and f′may refer to a ruled identifier of the corresponding face of the target center point.
For example, assuming that a projection point P’is located on face “2” , then the target center point may be point A, and the initial identifier of the corresponding face of the target center point may be “2” . As the initial identifier is less than 4, the ruled identifier of the corresponding face may be determined as 0.
In some embodiments, the projection coordinate of the target center point of a crossover cell is on a border of two adjacent faces, and the two adjacent faces are located on the north side and the south side of the border, respectively. That is, the projection coordinate of the target center point (i, j) has a relationship i+j=N, in which N may refer to the number of equal segments on the border, and thus in certain embodiments, the processing engine 112 may determine the ascription of the target center point based on Equation (22) :
Figure PCTCN2018090034-appb-000040
That is, the processing engine 112 may determine that the target center point belongs to the face located on the north side of the border. For example, the target center point may be located on the side BC, CD, DE, or EB, and the processing engine 112 may designate the target center point as belonging to face “3” , “0” , “1” , or “2” , respectively.
In some embodiments, the projection coordinate of the target center point of a crossover cell is on a border of two adjacent faces, and the two adjacent faces are located on the east side and the west side of the border, respectively. That is, the I-coordinate or the J-coordinate of the target center point may be 0, and thus in certain embodiments, the processing engine 112 may determine that the target center point belongs to the face located on the east side of the border. For example, the target  center point may be located on the side AB, AC, AD, or AE, and the processing engine 112 may designate the target center point as belonging to face “3” , “0” , “1” , or “2” , respectively.
FIG. 17B is a flowchart of an exemplary process 1750 for determining a location identifier associated with the object according to some embodiments of the present disclosure. In some embodiments, the process 1750 for determining a location identifier associated with the object may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 1750 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 1750 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1750 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 1750 as illustrated in FIG. 17B and described below is not intended to be limiting. In some embodiments, operation 807 illustrated in FIG. 8 may be performed according to the process 1750.
In 1751, the processing engine 112 (e.g., location identifier determination unit 504) may determine a target common point having an integer coordinate of the first projection coordinate of the geographic location of the object. In some embodiments, the target common point may be a top vertex of the rhombus-shaped cell on a corresponding face. In some embodiments, the projection coordinate of the target common point on the corresponding face may be regarded as the projection coordinate of a rhombus-shaped cell where the first projection point for the object is located.
In some embodiments, if the cells on the face of the octahedron have a shape of rhombus, the processing engine 112 may determine the target common  point, as shown in FIG. 18B. FIG. 18B is a schematic diagram illustrating a target common point in a rhombus-shaped cell according to some embodiments of the present disclosure. Point P’may be the projection point of the geographic location of the object on an exemplary corresponding face of the octahedron. In some embodiments, the projection coordinate of point P’on the corresponding face may be the first projection coordinate of the geographic location of the object. The corresponding face may have a plurality of rhombus-shaped cells, three or more adjacent cells may have a common point. As each vertex of a rhombus-shaped cell may also be a vertex of two or more other rhombus-shaped cells, therefore, each vertex of a rhombus-shaped cell may be a common point.
As shown in FIG. 18B, take the cell “STUV” as an example, the cell “STUV” may have four common points S, T, U, and V. Each side of a rhombus-shaped cell may have 1 unit length. Assuming that the projection coordinate of point S is (i, j) , the projection coordinates of the points T, V, and U may be (i+1, j) , (i, j+1) , and (i+1, j+1) , respectively. Each point inside the cell “STUV” may have an I-coordinate within the range of (i, i+1) . Each point inside the cell “STUV” may have a J-coordinate within the range of (j, j+1) . In some embodiments, the processing engine 112 may determine a common point having the integer coordinate of the first projection coordinate as the target common point. For example, the first projection coordinate of the point P’may be (i+x, j+y) , in which x may be less than 1 and larger than 0, and y may be less than 1 and larger than 0. Correspondingly, the integer coordinate of the first projection coordinate may be (i, j) , that is, point S may be determined as the target common point.
In 1753, the processing engine 112 (e.g., location identifier determination unit 504) may determine the location identifier associated with the object based on the refinement level, the shape of the polyhedron, the identifier of the corresponding face, and/or a second projection coordinate of the target common point on the corresponding face.
The processing engine 112 may designate the projection coordinate of the target common point on the corresponding face as the second projection coordinate. Merely by way of example, the processing engine 112 may determine the location identifier in the form of a string “OL [] F [] i [] j [] ” , in which “O” may refer to that the polyhedron is an octahedron, “L” may refer to the refinement level, “F” may refer to the identifier of the corresponding face of the octahedron, “i” and “j” may refer to a second projection coordinate, and “ [] ” may refer to that one or more numbers can be filled in a current position of the string. For example, if the refinement level is 11, the identifier of the corresponding face of the octahedron is 5, and the projection coordinate of the target common point is (12.34, 56.78) , then the location identifier may be “OL11 F5i1234j5678” .
FIG. 20 is a flowchart of an exemplary process 2000 for determining an area including a geographic location of an object according to some embodiments of the present disclosure. In some embodiments, the process 2000 for determining an area including a geographic location of an object may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 2000 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 2000 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 2000 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2000 as illustrated in FIG. 20 and described below is not intended to be limiting.
In 2001, the processing engine 112 (e.g., the acquisition module 402) may obtain a location identifier associated with an object.
In some embodiments, the location identifier associated with the object may  include information relating to a shape of the polyhedron representing the earth, a refinement level relating to a resolution of a plurality of cells that divide one or more faces of the polyhedron, and a geographic location of the object. For example, the location identifier associated with the object may be in the form of “OL12F3i4567j7890” . More descriptions of the location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 17 and 18 and the description thereof) .
In some embodiments, the processing engine 112 may obtain the location identifier associated with the object from one or more components in the on-demand service system 100, such as a storage device (e.g., the storage 150) , or a terminal (e.g., a passenger terminal 130, a driver terminal 140) . In some embodiments, the processing engine 112 may obtain the location identifier associated with the object from an external data source connected to the on-demand service system 100 via the network 120
In 2003, the processing engine 112 (e.g., the interpretation unit 602) may determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth. In some embodiments, the processing engine 112 may determine the refinement level based on the location identifier obtained in 2001. In some embodiments, the processing engine 112 may parse a field corresponding to a refinement level in the location identifier, and/or determine a value of the refinement level. For example, the processing engine 112 may parse the field “L12” representing the refinement level in the location identifier “OL12F3i4567j7890” , and may determine the refinement level as 12.
In 2005, the processing engine 112 (e.g., the acquisition module 402) may obtain a shape of the plurality of cells. In some embodiments, the shape of the plurality of cells may be a system default determined by the processing engine 112 or set by a user or operator via a terminal (e.g., a passenger terminal 130, a driver terminal 140, etc. ) . In some embodiments, the processing engine 112 may obtain  the shape of the plurality of cells from the storage 150, the passenger terminal 130, and/or the driver terminal 140. In some embodiments, the processing engine 112 may obtain the shape of the plurality of cells from the I/O 230 of the computing device 200 via the communication port 240, and/or the I/O 350 of the mobile device 300 via the communication platform 310. In some embodiments, the processing engine 112 may obtain the shape of the plurality of cells from an external data source connected to the on-demand service system 100 via the network 120. In some embodiments, the obtained shape may be a hexagon, a rhombus, a square, a rectangle, a triangle, etc.
In 2007, the processing engine 112 (e.g., the interpretation unit 602) may determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron. In some embodiments, the processing engine 112 may determine the first projection coordinate based on the location identifier obtained in 2001. In some embodiments, the processing engine 112 may parse a field corresponding to a projection coordinate in the location identifier, and/or determine the value of the projection coordinate as the first projection coordinate. For example, the processing engine 112 may parse the field “i4567j7890” representing the projection coordinate in the location identifier “OL12F3i4567j7890” , and may determine the first projection coordinate as (45.67, 78.90) .
In 2009, the processing engine 112 (e.g., the vertexes determination unit 604) may determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face. In some embodiments, the processing engine 112 may determine the vertexes based on the shape obtained in 2005 and the first projection coordinate determined in 2007.
In some embodiments, the cell may have a shape of hexagon. Correspondingly, the first projection coordinate may be the projection coordinate of a center point of the hexagon-shaped cell on the corresponding face, as shown in FIG. 12A. FIG. 21A is a schematic diagram illustrating the vertexes in a hexagon- shaped cell according to some embodiments of the present disclosure. As shown in FIG. 21A, the center point Q may have the first projection coordinate, and “V 1V 2V 3V 4V 5V 6” may represent a hexagon-shaped cell that includes the center point Q. Assuming that the first projection coordinate is represented by Q (i, j) , the projection coordinates of the vertexes V 1, V 2, V 3, V 4, V 5, and V 6 may be represented by
Figure PCTCN2018090034-appb-000041
and
Figure PCTCN2018090034-appb-000042
In some embodiments, the cell may have a shape of rhombus. Correspondingly, the first projection coordinate may be the projection coordinate of a top vertex of the rhombus-shaped cell on the corresponding face, as shown in FIG. 12B. FIG. 21 B is a schematic diagram illustrating the vertexes in a rhombus-shaped cell according to some embodiments of the present disclosure. As shown in FIG. 21B, the top vertex Q may have the first projection coordinate, and “QV 7V 8V 9” may represent a rhombus-shaped cell that includes the top vertex Q. Assuming that the first projection coordinate is represented by Q (i, j) , the projection coordinates of the vertexes V 7, V 8, and V 9 may be represented by V 7 (i+1, j) , V 8 (i+1, j+1) , and V 9 (i, j+1) .
In 2011, the processing engine 112 (e.g., the geographic coordinate determination unit 606) may determine a plurality of geographic locations on earth corresponding to the plurality of vertexes.
In some embodiments, the processing engine 112 may determine the geographic coordinates of the plurality of vertexes based on one or more coordinate transformation operations. For example, the processing engine 112 may transform a plurality of projection coordinates to a plurality of Cartesian coordinates, and transform the Cartesian coordinates to the geographic coordinates. More descriptions of the transformation of the projection coordinates to the geographic coordinates may be found elsewhere in the present disclosure (e.g., FIG. 23 and the description thereof) .
In 2013, the processing engine 112 (e.g., the area determination module 406) may determine an area based on the plurality of geographic locations determined in 2011. In some embodiments, the processing engine 112 may determine the area by connecting the plurality of geographic locations on earth. FIGs. 22A and 22B are schematic diagrams illustrating a plurality of discrete global grid cells on earth according to some embodiments of the present disclosure. Merely by way of example, the plurality of discrete global grid cells may have a shape of rhombus (as shown in FIG. 22A) or hexagon (as shown in FIG. 22B) . In FIGs. 22A and 22B, the refinement level relating to the discrete global grid cells may be 7.
In some embodiments, upon determining the area corresponding to a location identifier, the processing engine 112 may further determine one or more areas around the determined area. In some embodiments, the processing engine 112 may determine the areas by querying one or more neighboring cells of an identified cell (e.g., the cell with the location identifier) , and determining the areas based on the neighboring cells according to process 2000. In some embodiments, an identified cell may have k layer neighboring cells. The 1 layer neighboring cells may be adjacent to the identified cell, the 2 layer neighboring cells may be adjacent to the 1 layer neighboring cells, and accordingly, the k layer neighboring cells may be adjacent to the k-1 layer neighboring cells. In some embodiments, the processing engine 112 may query the neighboring cells based on the shape of the identified cell, as shown in FIGs. 21 C and 21 D.
FIG. 21 C is a schematic diagram illustrating neighboring cells of a rhombus-shaped cell according to some embodiments of the present disclosure. As illustrated, cell 1 may refer to the identified cell. Take 1 layer neighboring cells as an example. The processing engine 112 may determine a plurality of cells adjacent to the identified cell as the 1 layer neighboring cells. The 1 layer neighboring cells may include a first set of 1 layer neighboring cells and a second set of 1 layer  neighboring cells. Each of the first set of 1 layer neighboring cells may have only one common point with the identified cell, for example, cell 2, cell 3, cell 4, and cell 5. Each of the second set of 1 layer neighboring cells may have one common side with the identified cell, for example, cell 6, cell 7, cell 8, and cell 9. In some embodiments, the processing engine 112 may query different sets of neighboring cells based on different query criteria (e.g., the common point, the common side, etc. ) . For example, the processing engine 112 may query the first set of 1 layer neighboring cells based on the common points corresponding to the four vertexes of cell 1. As another example, the processing engine 112 may query the second set of 1 layer neighboring cells based on the first set of 1 layer neighboring cells.
FIG. 21 D is a schematic diagram illustrating neighboring cells of a hexagon-shaped cell according to some embodiments of the present disclosure. As illustrated, cell 1 may refer to the identified cell. Take 1 layer neighboring cells as an example. The processing engine 112 may determine a plurality of cells adjacent to the identified cell as the 1 layer neighboring cells. The identified cell 1 may have six 1 layer neighboring cells, for example, cell 2, cell 3, cell 4, cell 5, cell 6, and cell 7. Each of the 1 layer neighboring cells may have one common side with the identified cell 1. In some embodiments, the processing engine 112 may query different sets of neighboring cells based on different query criteria (e.g., a querying direction, a querying distance, etc. ) .
It should be noted that the above description 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,  operations  2003 and 2007 may be combined as a single operation in which the processing engine 112 may parse the refinement level and the first projection coordinate simultaneously based on the location identifier.
FIG. 23 is a flowchart of an exemplary process 2300 for transforming a plurality of projection coordinates to a plurality of geographic locations on earth according to some embodiments of the present disclosure. The process 2300 is also applicable to transforming one projection coordinate. In some embodiments, the process 2300 for transforming a plurality of projection coordinates to a plurality of geographic locations on earth may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 2300 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 2300 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 2300 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2300 as illustrated in FIG. 23 and described below is not intended to be limiting. In some embodiments, operation 2011 illustrated in FIG. 20 may be performed according to the process 2300.
In 2301, the processing engine 112 (e.g., the geographic coordinate determination unit 606) may transform a plurality of projection coordinates of the plurality of vertexes to a plurality of Cartesian coordinates. In some embodiments, the processing engine 112 may transform the projection coordinates to the Cartesian coordinates based on Equation (19) . More descriptions of the transformation of the projection coordinates to the Cartesian coordinates may be found elsewhere in the present disclosure (e.g., FIGs. 12 and 16 and the related descriptions thereof) .
In 2303, the processing engine 112 (e.g., the geographic coordinate determination unit 606) may transform the plurality of Cartesian coordinates to a plurality of spherical coordinates. In some embodiments, the processing engine 112 may transform the Cartesian coordinates to the spherical coordinates based on  Equation (13) . More descriptions of the transformation of the Cartesian coordinates to the spherical coordinates may be found elsewhere in the present disclosure (e.g., FIGs. 12, 14, 15A and 15B and the related descriptions thereof) .
In 2305, the processing engine 112 (e.g., the geographic coordinate determination unit 606) may transform the plurality of spherical coordinates to a plurality of geographic coordinates corresponding to the plurality of geographic locations on earth. In some embodiments, the processing engine 112 may transform the spherical coordinates to the geographic coordinates based on Equation (11) . More descriptions of the transformation of the spherical coordinates to the geographic coordinates may be found elsewhere in the present disclosure (e.g., FIGs. 12-14 and the related descriptions thereof) .
It should be noted that the above description 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. In some embodiments, the transformation of the projection coordinates to the geographic coordinates may be achieved based on other coordinate transformation operations.
FIG. 24 is a flowchart of an exemplary process 2400 for determining a service capacity of an on-demand service platform according to some embodiments of the present disclosure. In some embodiments, the process 2400 for determining a service capacity of an on-demand service platform may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 2400 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 2400 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented  below are intended to be illustrative. In some embodiments, the process 2400 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2400 as illustrated in FIG. 24 and described below is not intended to be limiting.
In 2401, the processing engine 112 (e.g., the acquisition module 402) may determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers. The region may be any area on earth. In some embodiments, the region may be any administrative area, for example, a country, a province, a city, a district, etc. In some embodiments, the region may include one or more discrete global grid cells on the earth.
In some embodiments, the available service providers may provide a transportation service (e.g., a taxi hailing service) . In some embodiments, the available service providers may be associated with user terminals (e.g., driver terminals 140) . In some embodiments, the driver terminals 140 may be devices with positioning technology for locating the service providers. In some embodiments, the driver terminals 140 may transmit position information of the service providers and availability status of the service providers to the processing engine 112 continuously or periodically (e.g., every 3 seconds) . The position information of the service providers may include the country, the city, the street, and/or the longitudinal and latitudinal coordinates of the current location of the service provider. For example, the position information of the service providers may include geographic coordinates of a plurality of current geographic locations of service providers. The availability status may indicate whether the service provider is available to provide a service. In some embodiments, the processing engine 112 may identify the available service providers in the region based on the availability status. Therefore, the processing engine 112 may determine the geographic  coordinates of the available service providers in the region based on the position information and the availability status of the service providers.
In 2403, the processing engine 112 (e.g., location identifier assignment module 404) may determine or assign a location identifier for each available service provider based on the geographic coordinates. In some embodiments, each location identifier may correspond to one of the plurality of discrete global grid cells.
In some embodiments, operation 2403 may be performed according to the process 800 illustrated in FIG. 8. For example, the processing engine 112 may obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth. The processing engine 112 may determine a first projection coordinate of the geographic location of the each available service provider on a corresponding face of the polyhedron. The processing engine 112 may determine the location identifier associated with each available service provider based on the refinement level, a shape of the polyhedron, an identifier of the corresponding face, a shape of the plurality of cells, and/or the first projection coordinate of the geographic location of the each available service provider. More descriptions of the determination of the location identifier for each available service provider may be found elsewhere in the present disclosure (e.g., FIGs. 8-18 and the related descriptions thereof) .
In 2405, the processing engine 112 (e.g., the updating unit 708) may update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers.
In some embodiments, a user identifier may be associated with identity information of a service provider. For example, each service provider may have a unique user identifier, which may be part of the identity information. The user identifier may be set manually by the service provider or be determined by one or more components of the on-demand service system 100. In some embodiments, the user identifier may be a string including one or more letters, one or more  numbers, and/or one or more symbols. The user identifier of the service provider may be in any form, for example, “123” , “A123” .
In some embodiments, the processing engine 112 may determine the mapping relation between the user identifiers of the available service providers and the location identifiers before operation 2405. In some embodiments, the processing engine 112 may determine the mapping relation based on recorded location identifiers for the available service providers. As used herein, “a recorded location identifier” for an available service provider may refer to a location identifier corresponding to a previously determined geographic coordinate of the available service provider.
In some embodiments, geographic locations of the available service providers may change with time. For example, if an available service provider is moving (e.g., driving a car) , the geographic location of the available service provider may change from a first location at a first time to a second location at a second time. In some embodiments, the first location and the second location may have a same location identifier. In some embodiments, the first location and the second location may have different location identifiers. The processing engine 112 may update the mapping relation between the user identifiers of the available service providers and the location identifiers based on the current location identifiers for the available service providers. As used herein, “a current location identifier for an available service provider” may refer to a location identifier corresponding to a current geographic coordinate of the available service provider (e.g., the current geographic coordinate illustrated in 2401) . For example, the processing engine 112 may update the recorded location identifiers as the current location identifiers for the available service providers. More descriptions of the update of the mapping relation between user identifiers of the available service providers and the plurality of location identifiers may be found elsewhere in the present disclosure (e.g., FIG. 25 and the related descriptions thereof) . In some embodiments, if there is no mapping relation  between a user identifier of an available service provider and a recorded location identifier, the processing engine 112 may determine the mapping relation between the user identifier of the available service provider and the current location identifier.
In 2407, the processing engine 112 (e.g., the request number determination unit 702) may determine a current number of requests for on-demand service in each of the plurality of discrete global grid cells.
In some embodiments, the processing engine 112 may determine the current number of requests for on-demand service in a discrete global grid cell based on the number of requests in the discrete global grid cell and the number of request responses for serving the service requests in the discrete global grid cell. For example, the current number of requests for the on-demand service in the discrete global grid cell may be a difference between the number of requests and the number of request responses in the discrete global grid cell.
In some embodiments, the number of service requests and/or the number of request responses may change with time. In some embodiments, the processing engine 112 may update the current number of requests for the on-demand service in each of the plurality of discrete global grid cells. In some embodiments, the processing engine 112 may update the current number of requests for the on-demand service in real time. More descriptions of the update of the current number of requests for on-demand service in discrete global grid cells may be found elsewhere in the present disclosure (e.g., FIGs. 26A and 26B, and the related descriptions thereof) .
In 2409, the processing engine 112 (e.g., the service provider number determination unit 704) may determine a current number of available service providers in each of the plurality of discrete global grid cells.
In some embodiments, the processing engine 112 may determine the current number of available service providers in each of the plurality of discrete global grid cells based on the mapping relation (e.g., the mapping relation updated in 2405)  between user identifiers of the available service providers and the plurality of location identifiers. For example, for a discrete global grid cell, the processing engine 112 may determine a number of available service providers whose recorded location identifiers are the same as the location identifier corresponding to the discrete global grid cell, and then designate the number as the current number of available service providers in the discrete global grid cell.
In 2411, the processing engine 112 (e.g., service capacity gap determination module 408) may determine a current service capacity gap based on the current number of requests determined in 2407 and the current number of available service providers determined in 2409 in each of the plurality of discrete global grid cells.
For each of the discrete global grid cells, the current service capacity gap may be determined based on a difference between the current number of requests and the current number of available service providers in the discrete global grid cell, as illustrated in Equation (23) :
Gap=N r-N p   (23)
where Gap may refer to the service capacity gap in a discrete global grid cell, N r may refer to the current number of requests in the discrete global grid cell, and N p may refer to the current number of available service providers in the discrete global grid cell.
In 2413, the processing engine 112 (e.g., the display module 410) may display the current service capacity gap in the plurality of discrete global grid cells on a map. In some embodiments, the processing engine 112 may represent the current service capacity gap in each discrete global grid cell by a colored icon. The color of the colored icon may be related to the value of the current service capacity gap. For example, the processing engine 112 may determine the color based on a red, green, and blue (RGB) system.
In some embodiments, the processing engine 112 may determine a maximum gap and a minimum gap among values of the current capacity gaps in the  plurality of discrete global grid cells. In some embodiments, the value of a current service capacity gap may be positive (i.e., the current number of requests is larger than the current number of available service providers) , the processing engine 112 may map the value of the current service capacity gap into a R value proportionally based on the maximum gap and the minimum gap. For example, a redder discrete global grid cell displayed on the map corresponds to a greater value of the current service capacity gap, as shown in FIGs. 27A and 27B. In some embodiments, the value of the current service capacity gap may be negative (i.e., the current number of requests is less than the current number of available service providers) , the processing engine 112 may map the value of the current service capacity gap into G value proportionally, as shown in FIGs. 27A and 27B. For example, a greener discrete global grid cell displayed on the map corresponds to a smaller value of the current service capacity gap.
FIG. 27A is a schematic diagram illustrating the display of a plurality of discrete global grid cells associated with the current service capacity gap on a map according to some embodiments of the present disclosure. FIG. 27B is a schematic diagram illustrating an enlarged view of a sub-region indicated by the dashed line in FIG. 27A according to some embodiments of the present disclosure. As originally illustrated, the color of the discrete global grid cells may be associated with the current service capacity gap. Discrete global grid cells with darker green may indicate that the sub-regions corresponding to the discrete global grid cells have more sufficient current service capacity. Sub-regions without a colored icon may indicate that there is no request and no service provider in the sub regions.
It should be noted that the above description 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.  In some embodiments, one or more operations may be added or omitted. For example, operation 2413 may be omitted.
FIG. 25 is a flowchart of an exemplary process 2500 for determining a mapping relation between a user identifier of an available service provider and a location identifier according to some embodiments of the present disclosure. In some embodiments, the process 2500 for determining a mapping relation between a user identifier of an available service provider and a location identifier may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 2500 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 2500 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 2500 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2500 as illustrated in FIG. 25 and described below is not intended to be limiting. In some embodiments, operation 2405 illustrated in FIG. 24 may be performed according to the process 2500.
In 2501, the processing engine 112 (e.g., the acquisition module 402) may obtain a recorded location identifier for an available service provider. In some embodiments, the processing engine 112 may obtain the recorded location identifier from one or more components in the on-demand service system 100, such as a storage (e.g., the storage 150) , or a user terminal (e.g., the passenger terminal 130, the driver terminal 140) .
In 2503, the processing engine 112 (e.g., the location identifier assignment module 404) may determine a current location identifier for the available service provider based on a geographic coordinate of the current geographic location of the  available service provider. In some embodiments, the determination of the location identifier for the available service provider is performed according to other embodiments of the present invention, such as but not limited to what is provided in FIGs. 8-18 and the related descriptions thereof.
In 2505, the processing engine 112 (e.g., the mapping relation determination unit 706) may determine whether the current location identifier is different from the recorded location identifier. In response to the determination that the current location identifier is different from the recorded location identifier, the process 2500 may proceed to 2507. The current location identifier is different from the recorded location identifier for the available service provider may indicate that the service provider has moved from a first area corresponding to the recorded location identifier to a second area corresponding to the current location identifier.
In response to the determination that the current location identifier is the same as the recorded location identifier, the process 2500 may proceed to 2509. The current location identifier is the same as the recorded location identifier for the available service provider may indicate that the service provider is still located in the area corresponding to the recorded location identifier. The processing engine 112 may determine the mapping relation between the user identifier of the available service provider and the recorded location identifier for the available service provider without updating the recorded location identifier for the available service provider.
In 2507, the processing engine 112 (e.g., the updating unit 708) may update the recorded location identifier for the available service provider as the current location identifier for the available service provider. For example, the processing engine 112 may delete the recorded location identifier for the available service provider in the storage 150 and designate the current location identifier as the recorded location identifier for the available service provider.
In 2509, the processing engine 112 (e.g., the mapping relation determination unit 706) may determine a mapping relation between the user identifier of the  available service provider and the recorded location identifier for the available service provider, so that the user identifier of the available service provider may correspond to the recorded location identifier for the available service provider. In some embodiments, the processing engine 112 may store the mapping relation in a storage (e.g., the storage 150) , or a user terminal (e.g., the passenger terminal 130, the driver terminal 140) , so that in a further process, the processing engine 112 may determine that the available service provider that has the user identifier may be located in an area corresponding to the recorded location identifier.
It should be noted that the above description 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. In some embodiments, one or more operations may be added or omitted. For example, operation 2505 may be omitted. The processing engine 112 may update the recorded location identifier for the available service provider as the current location identifier for the available service provider without determining whether the current location identifier is different from the recorded location identifier.
FIG. 26A is a flowchart of an exemplary process 2600 for determining a current number of requests for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure. In some embodiments, the process 2600 for determining a current number of requests for on-demand service in a discrete global grid cell may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 2600 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 2600 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below  are intended to be illustrative. In some embodiments, the process 2600 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2600 as illustrated in FIG. 26A and described below is not intended to be limiting. In some embodiments, operation 2407 illustrated in FIG. 24 may be performed according to the process 2600.
In 2601, the processing engine 112 (e.g., the acquisition module 402) may receive a service request that includes a first departure location. In some embodiments, the processing engine 112 may receive the service request from the passenger terminal 130 via the network 120.
In some embodiments, the service request may be a request for an on-demand transportation service (e.g., a taxi service, a carpooling service, a hitch service) . The service request may include a first departure location, a destination, a start time, etc. The first departure location may refer to a place where the service requester needs the on-demand service. The service request may further include a passenger identity information (e.g., a telephone number, a terminal identity associated with the passenger terminal 130, a user name, etc. ) .
In 2603, the processing engine 112 (e.g., the location identifier assignment module 404) may determine a first location identifier based on the first departure location. For example, the processing engine 112 may determine the first location identifier for the first departure location based on a geographic coordinate of the first departure location. More descriptions of the determination of the first location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 8-19, and the related descriptions thereof) .
In 2605, the processing engine 112 (e.g., the updating unit 708) may update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the first location identifier by adding 1 to the current number of requests of the discrete global grid cell. For example, assuming the current number  of requests for the on-demand service in the discrete global grid cell is K, the processing engine 112 may update the current number of requests for the on-demand service in the discrete global grid cell as K+1.
FIG. 26B is a flowchart of an exemplary process 2650 for determining a current number of request for on-demand service in a discrete global grid cell according to some embodiments of the present disclosure. In some embodiments, the process 2650 for determining a current number of request for on-demand service in a discrete global grid cell may be implemented in the on-demand service system 100 as illustrated in FIG. 1. For example, the process 2650 may be implemented in a user terminal (e.g., the passenger terminal 130, the driver terminal 140) and/or the server 110. The process 2650 may also be implemented as one or more instructions stored in the storage 150 and called and/or executed by the processing engine 112. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 2650 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 2650 as illustrated in FIG. 26B and described below is not intended to be limiting. In some embodiments, operation 2407 illustrated in FIG. 24 may be performed according to the process 2650.
In 2651, the processing engine 112 (e.g., the acquisition module 402) may receive a request response for serving a service request from an available service provider. In some embodiments, the service request may include a second departure location. In some embodiments, the processing engine 112 may receive the request response for serving the service request from the driver terminal 140 via the network 120. In some embodiments, if one or more service requests are transmitted to the driver terminal 140, the service provider may respond to one of the service requests. For example, the service provider may select a service request he or she is interested in, and/or send a request response for serving the service  request, so that the processing engine 112 may receive the request response via the network 120.
The second departure location may refer to a place where the service provider needs to start to provide the on-demand service. In some embodiments, the second departure location may be the same as or different from the first departure location illustrated in FIG. 26A. For example, if the request response obtained in 2651 corresponds to the service request obtained in 2601, the second departure location may be the same as the first departure location. As another example, if the request response obtained in 2651 does not corresponds to the service request obtained in 2601, the second departure location may be different from the first departure location.
In 2653, the processing engine 112 (e.g., the location identifier assignment module 404) may determine a second location identifier based on the second departure location. In some embodiments, the processing engine 112 may determine the second location identifier for the departure location based on a geographic coordinate of the second departure location. More descriptions of the determination of the second location identifier may be found elsewhere in the present disclosure (e.g., FIGs. 8-19, and the related descriptions thereof) . In some embodiments, the second location identifier may be the same as or different from the first location identifier determined in operation 2603.
In 2655, the processing engine 112 (e.g., the updating unit 708) may update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the second location identifier by subtracting 1 from the current number of requests of the discrete global grid cell. For example, assuming the current number of requests for the on-demand service in the discrete global grid cell is K, the processing engine 112 may update the current number of requests for the on-demand service in the discrete global grid cell as K-1.
It should be noted that the above description 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,  operations  2601 and 2603 may be combined as a single operation in which the processing engine 112 may both receive the service request including the departure location and determine the location identifier based on the departure location.
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” or “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 “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media 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 electro-magnetic, 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 operations 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 2003, Perl, COBOL 2002, 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 (27)

  1. A system configured to assign a location identifier associated with an object, comprising:
    at least one storage including a set of instructions or programs; and
    at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor is configured to cause the system to:
    obtain a geographic coordinate corresponding to a geographic location of the object;
    obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth;
    determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and
    determine the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
  2. The system of claim 1, wherein the polyhedron representing the earth is an octahedron having eight faces with a substantially same size and shape.
  3. The system of claim 2, wherein the plurality of cells of the polyhedron representing the earth is generated by producing, on one or more faces of the octahedron, a plurality of first cells at an initial resolution, and performing one or more iterations to divide the first cells according to the refinement level.
  4. The system of any of claims 1-3, wherein to determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron, the at least one processor is further configured to cause the system to:
    transform the geographic coordinate to a spherical coordinate;
    transform the spherical coordinate to a Cartesian coordinate; and
    transform the Cartesian coordinate to the first projection coordinate.
  5. The system of claim 2, wherein each cell of the plurality of cells has a shape of hexagon, which has a center point, and to determine the location identifier associated with the object, the at least one processor is further configured to cause the system to:
    determine a target center point nearest to the first projection coordinate of the geographic location of the object; and
    determine the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target center point on the corresponding face.
  6. The system of claim 2, wherein each cell of the plurality of cells has a shape of rhombus, each adjacent three or more cells of the plurality of cells have a common point, and to determine the location identifier associated with the object, the at least one processor is further configured to cause the system to:
    determine a target common point having an integer coordinate of the first projection coordinate of the geographic location of the object; and
    determine the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target common point on the corresponding face.
  7. A system configured to determine an area including a geographic location of an object, comprising:
    at least one storage including a set of instructions or programs; and
    at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor is configured to cause the system to:
    obtain a location identifier associated with the object;
    determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier;
    obtain a shape of the plurality of cells;
    determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier;
    determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate;
    determine a plurality of geographic locations on earth corresponding to the plurality of vertexes; and
    determine the area based on the plurality of geographic locations.
  8. The system of claim 7, wherein to determine a plurality of geographic locations on earth corresponding to the plurality of vertexes, the at least one processor is further configured to cause the system to:
    transform a plurality of projection coordinates of the plurality of vertexes to a plurality of Cartesian coordinates;
    transform the plurality of Cartesian coordinates to a plurality of spherical coordinates; and
    transform the plurality of spherical coordinates to a plurality of geographic coordinates corresponding to the plurality of geographic locations on earth.
  9. A system configured to determine a current service capacity of an on-demand service platform, comprising:
    at least one storage including a set of instructions or programs; and
    at least one processor configured to communicate with the at least one storage, wherein when executing the set of instructions or programs, the at least one processor is configured to cause the system to:
    determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers;
    determine a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells;
    update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and
    for each of the plurality of discrete global grid cells,
    determine a current number of requests for on-demand service;
    determine a current number of available service providers; and
    determine a current service capacity gap based on the current number of requests and the current number of available service providers.
  10. The system of claim 9, wherein the at least one processor is further configured to cause the system to:
    receive a service request that includes a departure location;
    determine a location identifier based on the departure location; and
    update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by adding 1 to the current number of requests of the discrete global grid cell.
  11. The system of claim 9, wherein the at least one processor is further configured to cause the system to:
    receive a request response for serving a service request from an available service provider, wherein the service request includes a departure location;
    determine a location identifier based on the departure location; and
    update the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by subtracting 1 from the current number of requests of the discrete global grid cell.
  12. The system of claim 9, wherein to determine a location identifier for each available service provider based on the geographic coordinates, the at least one processor is further configured to cause the system to:
    for each available service provider,
    obtain a geographic coordinate corresponding to a geographic location of the each available service provider;
    obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth;
    determine a first projection coordinate of the geographic location of the each available service provider on a corresponding face of the polyhedron based on the geographic coordinate; and
    determine the location identifier associated with the each available service provider based on at least one of the refinement level, a shape of the  polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the each available service provider.
  13. A method implemented on at least one device each of which has at least one processor and a storage for assigning a location identifier associated with an object, the method comprising:
    obtaining a geographic coordinate corresponding to a geographic location of the object;
    obtaining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth;
    determining a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and
    determining the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
  14. The method of claim 13, wherein the polyhedron representing the earth is an octahedron having eight faces with a substantially same size and shape.
  15. The method of claim 14, wherein the plurality of cells of the polyhedron representing the earth is generated by producing, on one or more faces of the octahedron, a plurality of first cells at an initial resolution, and performing one or more iterations to divide the first cells according to the refinement level.
  16. The method of any of claims 13-15, wherein determining a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron comprises:
    transforming the geographic coordinate to a spherical coordinate;
    transforming the spherical coordinate to a Cartesian coordinate; and
    transforming the Cartesian coordinate to the first projection coordinate.
  17. The method of claim 14, wherein each cell of the plurality of cells has a shape of hexagon, which has a center point, and determining the location identifier associated with the object comprises:
    determining a target center point nearest to the first projection coordinate of the geographic location of the object; and
    determining the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target center point on the corresponding face.
  18. The method of claim 14, wherein each cell of the plurality of cells has a shape of rhombus, each adjacent three or more cells of the plurality of cells have a common point, and determining the location identifier associated with the object comprises:
    determining a target common point having an integer coordinate of the first projection coordinate of the geographic location of the object; and
    determining the location identifier associated with the object based on at least one of the refinement level, the shape of the polyhedron, the identifier of the corresponding face, or a second projection coordinate of the target common point on the corresponding face.
  19. A method implemented on at least one device each of which has at least one processor and a storage for determining an area including a geographic location of an object, the method comprising:
    obtaining a location identifier associated with the object;
    determining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier;
    obtaining a shape of the plurality of cells;
    determining a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier;
    determining a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate;
    determining a plurality of geographic locations on earth corresponding to the plurality of vertexes; and
    determining the area based on the plurality of geographic locations.
  20. The method of claim 19, wherein determining a plurality of geographic locations on earth corresponding to the plurality of vertexes comprises:
    transforming a plurality of projection coordinates of the plurality of vertexes to a plurality of Cartesian coordinates;
    transforming the plurality of Cartesian coordinates to a plurality of spherical coordinates; and
    transforming the plurality of spherical coordinates to a plurality of geographic coordinates corresponding to the plurality of geographic locations on earth.
  21. A method implemented on at least one device each of which has at least one processor and a storage for determining a service capacity of an on-demand service platform, the method comprising:
    determining, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers;
    determining a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells;
    updating a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and
    for each of the plurality of discrete global grid cells,
    determining a current number of requests for on-demand service;
    determining a current number of available service providers; and
    determining a current service capacity gap based on the current number of requests and the current number of available service providers.
  22. The method of claim 21, further comprising:
    receiving a service request that includes a departure location;
    determining a location identifier based on the departure location; and
    updating the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by adding 1 to the current number of requests of the discrete global grid cell.
  23. The method of claim 21, further comprising:
    receiving a request response for serving a service request from an available service provider, wherein the service request includes a departure location;
    determining a location identifier based on the departure location; and
    updating the current number of requests for the on-demand service in a discrete global grid cell corresponding to the location identifier by subtracting 1 from the current number of requests of the discrete global grid cell.
  24. The method of claim 21, wherein determining a location identifier for each available service provider based on the geographic coordinates comprises:
    for each available service provider,
    obtaining a geographic coordinate corresponding to a geographic location of the each available service provider;
    obtaining a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth;
    determining a first projection coordinate of the geographic location of the each available service provider on a corresponding face of the polyhedron based on the geographic coordinate; and
    determining the location identifier associated with the each available service provider based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the each available service provider.
  25. A non-transitory computer readable medium embodying a computer program product, the computer program product comprising instructions configured to cause a computing device to:
    obtain a geographic coordinate corresponding to a geographic location of the object;
    obtain a refinement level relating to a resolution of a plurality of cells that divide one or more faces of a polyhedron representing the earth;
    determine a first projection coordinate of the geographic location of the object on a corresponding face of the polyhedron based on the geographic coordinate; and
    determine the location identifier associated with the object based on at least one of the refinement level, a shape of the polyhedron, an identifier of the corresponding face, or the first projection coordinate of the geographic location of the object.
  26. A non-transitory computer readable medium embodying a computer program product, the computer program product comprising instructions configured to cause a computing device to:
    obtain a location identifier associated with the object;
    determine a refinement level relating to a resolution of a plurality of cells that divide one or more faces of an octahedron representing the earth based on the location identifier;
    obtain a shape of the plurality of cells;
    determine a first projection coordinate of the geographic location of the object on a corresponding face of the octahedron based on the location identifier;
    determine a plurality of vertexes of a cell including the first projection coordinate on the corresponding face based on the shape and the first projection coordinate;
    determine a plurality of geographic locations on earth corresponding to the plurality of vertexes; and
    determine the area based on the plurality of geographic locations.
  27. A non-transitory computer readable medium embodying a computer program product, the computer program product comprising instructions configured to cause a computing device to:
    determine, in a region corresponding to a plurality of discrete global grid cells on earth, geographic coordinates of a plurality of current geographic locations of available service providers;
    determine a location identifier for each available service provider based on the geographic coordinates, wherein each location identifier corresponds to one of the plurality of discrete global grid cells;
    update a mapping relation between user identifiers of the available service providers and the plurality of location identifiers; and
    for each of the plurality of discrete global grid cells,
    determine a current number of requests for on-demand service;
    determine a current number of available service providers; and
    determine a current service capacity gap based on the current number of requests and the current number of available service providers.
PCT/CN2018/090034 2018-06-06 2018-06-06 System and method for determining location identifier WO2019232702A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2018/090034 WO2019232702A1 (en) 2018-06-06 2018-06-06 System and method for determining location identifier
CN201880044139.2A CN110832886B (en) 2018-06-06 2018-06-06 System and method for determining location identifier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/090034 WO2019232702A1 (en) 2018-06-06 2018-06-06 System and method for determining location identifier

Publications (1)

Publication Number Publication Date
WO2019232702A1 true WO2019232702A1 (en) 2019-12-12

Family

ID=68769168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/090034 WO2019232702A1 (en) 2018-06-06 2018-06-06 System and method for determining location identifier

Country Status (2)

Country Link
CN (1) CN110832886B (en)
WO (1) WO2019232702A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10893379B2 (en) 2018-11-28 2021-01-12 Beijing Didi Infinity Technology And Development Co., Ltd. System and method for determining whether an object belongs to a target geo-fence

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797093B (en) * 2020-05-13 2023-04-11 中国科学院软件研究所 Discrete global grid structure generation method and rapid unit positioning method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389289B1 (en) * 1998-05-07 2002-05-14 Hughes Electronics Corporation Earth tiling system for providing regional based service in a mobile satellite communication network
US20140011522A1 (en) * 2012-07-03 2014-01-09 Uber Technologies, Inc. System and method for providing dynamic supply positioning for on-demand services
US20140022951A1 (en) * 2012-07-20 2014-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Logical inter-cloud dispatcher
CN106570917A (en) * 2016-10-25 2017-04-19 先锋智道(北京)科技有限公司 Vehicle demand thermodynamic diagram generation method and device thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6833811B2 (en) * 2002-10-07 2004-12-21 Harris Corporation System and method for highly accurate real time tracking and location in three dimensions
US7966301B2 (en) * 2003-05-09 2011-06-21 Planeteye Company Ulc System and method for employing a grid index for location and precision encoding
EP2071546A1 (en) * 2007-12-12 2009-06-17 Alcatel Lucent System for determining a geographical location, a related geographical map, and a related resolution server
GB2513196A (en) * 2013-04-19 2014-10-22 What3Words Ltd A method and apparatus for identifying and communicating locations
EP2957922B1 (en) * 2014-06-16 2017-07-26 Fujitsu Limited Locating mobile users in emergency
CN106384371B (en) * 2016-09-20 2020-08-11 国家基础地理信息中心 Map drawing method based on vector tiles

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389289B1 (en) * 1998-05-07 2002-05-14 Hughes Electronics Corporation Earth tiling system for providing regional based service in a mobile satellite communication network
US20140011522A1 (en) * 2012-07-03 2014-01-09 Uber Technologies, Inc. System and method for providing dynamic supply positioning for on-demand services
US20140022951A1 (en) * 2012-07-20 2014-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Logical inter-cloud dispatcher
CN106570917A (en) * 2016-10-25 2017-04-19 先锋智道(北京)科技有限公司 Vehicle demand thermodynamic diagram generation method and device thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10893379B2 (en) 2018-11-28 2021-01-12 Beijing Didi Infinity Technology And Development Co., Ltd. System and method for determining whether an object belongs to a target geo-fence

Also Published As

Publication number Publication date
CN110832886A (en) 2020-02-21
CN110832886B (en) 2023-04-21

Similar Documents

Publication Publication Date Title
US10969239B2 (en) Systems and methods for determining a point of interest
US11526536B2 (en) Systems and methods for identifying grids of geographical region in map
US10893379B2 (en) System and method for determining whether an object belongs to a target geo-fence
CN111882977B (en) High-precision map construction method and system
EP3632139B1 (en) Methods and systems for naming a pick up location
CN111465936B (en) System and method for determining new road on map
CN110998239A (en) System and method for determining a new path in a map
US20220214185A1 (en) Systems and methods for recommendation and display of point of interest
WO2019232702A1 (en) System and method for determining location identifier
WO2020237741A1 (en) Systems and methods for identifying closed road section
US11112264B2 (en) System and method for rendering an overpass object using map and link data
US20200151197A1 (en) Systems and methods for joining data sets
CN112805534B (en) System and method for locating a target object
WO2021114279A1 (en) Systems and methods for determining restriction attribute of area of interset
CN110799968A (en) System and method for spatial indexing

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: 18921664

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: 18921664

Country of ref document: EP

Kind code of ref document: A1