[go: up one dir, main page]

WO2021056303A1 - Systems and methods for determining a pick-up location - Google Patents

Systems and methods for determining a pick-up location Download PDF

Info

Publication number
WO2021056303A1
WO2021056303A1 PCT/CN2019/108033 CN2019108033W WO2021056303A1 WO 2021056303 A1 WO2021056303 A1 WO 2021056303A1 CN 2019108033 W CN2019108033 W CN 2019108033W WO 2021056303 A1 WO2021056303 A1 WO 2021056303A1
Authority
WO
WIPO (PCT)
Prior art keywords
historical
pick
location
locations
walking
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/CN2019/108033
Other languages
French (fr)
Inventor
Chao Huang
Yu Zhou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Didi Infinity Technology and Development Co Ltd
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/CN2019/108033 priority Critical patent/WO2021056303A1/en
Publication of WO2021056303A1 publication Critical patent/WO2021056303A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry

Definitions

  • the present disclosure generally relates to online to offline (O2O) services, and in particular, to systems and methods for determining a pick-up location based on an area to which a current location belongs to.
  • O2O online to offline
  • O2O online to offline
  • a passenger can place an order conveniently and save the time in finding a taxi.
  • the location also referred to as an anchor point
  • vehicles passing or parking e.g., a community, a shopping mall
  • an actual pick-up location is different from the anchor point.
  • there may be multiple candidate pick-up locations surrounding the anchor point e.g., a North Gate of the community or the shopping mall, a South Gate of the community or the shopping mall, an East Gate of the community or the shopping mall, etc.
  • a system may include at least one storage device, and at least one processor in communication with the at least one storage device.
  • the at least one storage device may include a set of instructions.
  • the at least one processor may be configured to cause the system to obtain a map including a plurality of links, and determine a plurality of regions based on the plurality of links on the map.
  • the at least one processor may be further configured to cause the system to obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region.
  • Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location.
  • the at least one processor may be further configured to cause the system to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and divide the region into a plurality of areas based on the plurality of clusters.
  • Each area of the plurality of areas may have first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  • the at least one processor may be further configured to cause the system to identify the plurality of links from the map; generate a binary image by processing the plurality of links; and map the binary image to the map to determine the plurality of regions.
  • the clustering algorithm may include at least one of a DBSCAN algorithm or a density peaks algorithm.
  • the at least one processor may be further configured to cause the system to for each of the plurality of clusters, determine at least part of the first historical anchor points corresponding to the cluster; and determine an area of the plurality of areas corresponding to the cluster by processing the at least part of the first historical anchor points using a minimum convex hull algorithm.
  • the at least one processor may be further configured to cause the system to obtain a current location of a user via a user terminal; determine an area to which the current location belongs among the plurality of areas; determine at least part of the first historical pick-up locations corresponding to the area as candidate pick-up locations; and recommend at least one of the candidate pick-up locations to the user via the user terminal.
  • the at least one processor may be further configured to cause the system to rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users; and recommend the ranked candidate pick-up locations to the user.
  • the at least one processor may be further configured to cause the system to for each of the candidate pick-up locations, determine a walking cost from the current location to the candidate pick-up location based on historical walking trajectories; determine a candidate pick-up location with a lowest walking cost as a target pick-up location among the candidate pick-up locations; and recommend the target pick-up location to the user via the user terminal.
  • the at least one processor may be further configured to cause the system to determine a walking trajectory between the current location and the candidate pick-up location based on historical walking trajectories; and determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof.
  • the plurality of parameters may include at least one of a length of the walking trajectory, a number of intersections on the walking trajectory, a number of traffic lights on the walking trajectory, a number of overpasses on the walking trajectory, or a number of times that the walking trajectory is selected by historical users.
  • the historical walking trajectories may be determined according to a process including: obtaining a plurality of second historical orders including second historical anchor points and second historical pick-up locations; determining a plurality of candidate historical walking trajectories between the second historical anchor points and corresponding second historical pick-up locations; and determining the historical walking trajectories by performing a second clustering algorithm on the plurality of candidate historical walking trajectories.
  • the at least one processor may be configured to cause the system to determine whether the candidate pick-up location locates at one of a plurality of links that permit vehicles parking, and if the candidate pick-up location does not locate at any one of the plurality of links, remove the candidate pick-up location from the candidate pick-up locations.
  • the plurality of links that permit vehicles parking may be determined according to a process including: obtaining driving trajectory data associated with a plurality of third historical pick-up locations, the driving trajectory data including longitude-latitude coordinates of historical parking points and corresponding historical parking times, each of the plurality of third historical pick-up locations corresponding to a link; for one of the plurality of third historical pick-up locations, determining one or more historical parking points corresponding to a same link as the third historical pick-up location; determining a number of the one or more historical parking points whose parking time is greater than or equal to a time threshold; and if the number of the one or more historical parking points is greater than or equal to a quantity threshold, determine the link corresponding to the third historical pick-up location as a link that permits vehicles parking.
  • the at least one processor is further configured to cause the system to perform data cleaning on the obtained driving trajectory data.
  • the at least one processor may be further configured to cause the system to obtain parking violation information corresponding to the driving trajectory data, and determine the plurality of links that permit vehicles parking based on the parking violation information and the driving trajectory data.
  • the at least one processor may be further configured to cause the system to update the driving trajectory data periodically.
  • the plurality of third historical pick-up locations may be generated by performing a third clustering algorithm on all historical pick-up locations in third historical orders.
  • a method may be implemented on a computing device having at least one processor, at least one computer-readable storage medium, and a communication platform connected to a network.
  • the method may include obtaining a map including a plurality of links, and determining a plurality of regions based on the plurality of links on the map. For a region of the plurality of regions, the method may include obtaining a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location.
  • the method may further include determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and dividing the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  • a non-transitory computer-readable storage medium may include at least one set of instructions. When executed by at least one processor of a computing device, the at least one set of instructions may direct the at least one processor to perform acts of obtaining a map including a plurality of links, and determining a plurality of regions based on the plurality of links on the map.
  • the at least one set of instructions may direct the at least one processor to perform acts of obtaining a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region, each of the plurality of historical location pairs including a first historical anchor point and a first historical pick-up location; determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and dividing the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  • a system may include an obtaining module, a region determination module, a cluster determination module, and a region division module.
  • the obtaining module may be configured to obtain a map including a plurality of links.
  • the region determination module may be configured to determine a plurality of regions based on the plurality of links on the map. For a region of the plurality of regions, the obtaining module may be configured to obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location.
  • the cluster determination module may be configured to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm.
  • the region division module may be configured to divide the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  • FIG. 1 is a schematic diagram illustrating an exemplary O2O service system according to some embodiments of the present disclosure
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device according to some embodiments of the present disclosure
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device on which a terminal may be implemented according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary processing device according to some embodiments of the present disclosure.
  • FIG. 5A is a flowchart illustrating an exemplary process for dividing a region into a plurality of areas according to some embodiments of the present disclosure
  • FIG. 5B shows a plurality of location pairs within a region
  • FIG. 6 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure
  • FIG. 8 is flowchart illustrating an exemplary process for determining historical walking trajectories according to some embodiments of the present disclosure.
  • FIG. 9 is flowchart illustrating an exemplary process for determining one or more links that permit vehicles parking according to some embodiments of the present disclosure.
  • system, ” “engine, ” “unit, ” “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, ” “unit, ” or “block, ” as used herein refers to logic embodied in hardware or firmware, or to a collection of software instructions.
  • a module, a unit, 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 other 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 from themselves, and/or may be invoked in response to detected events or interrupts.
  • Software modules/units/blocks configured for execution on computing devices 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) .
  • 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 a firmware, such as an erasable programmable read-only memory (EPROM) .
  • EPROM erasable 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 of 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 be applicable to a system, an engine, or a portion thereof.
  • the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments in the present disclosure. It is to be expressly understood, the operations of the flowchart 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.
  • Embodiments of the present disclosure may be applied to different transportation systems including but not limited to land transportation, sea transportation, air transportation, space transportation, or the like, or any combination thereof.
  • a vehicle of the transportation systems may include a rickshaw, travel tool, taxi, chauffeured car, hitch, bus, rail transportation (e.g., a train, a bullet train, high-speed rail, and subway) , ship, airplane, spaceship, hot-air balloon, driverless vehicle, or the like, or any combination thereof.
  • the transportation system may also include any transportation system that applies management and/or distribution, for example, a system for sending and/or receiving an express.
  • the application scenarios of different embodiments of the present disclosure may include but not limited to one or more webpages, browser plugins and/or extensions, client terminals, custom systems, intracompany analysis systems, artificial intelligence robots, or the like, or any combination thereof. It should be understood that application scenarios of the system and method disclosed herein are only some examples or embodiments. Those having ordinary skills in the art, without further creative efforts, may apply these drawings to other application scenarios. For example, other similar server.
  • passenger, ” “requester, ” “requestor, ” “service requester, ” “service requestor” and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may request or order a service.
  • driver, ” “provider, ” “service provider, ” and “supplier” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may provide a service or facilitate the providing of the service.
  • 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.
  • the user may be a requester, a passenger, a driver, an operator, or the like, or any combination thereof.
  • requester and “requester terminal” may be used interchangeably, and “provider” and “provider terminal” may be used interchangeably.
  • the term “request, ” “service, ” “service request, ” and “order” in the present disclosure are used interchangeably to refer to a request that may be initiated by a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, a supplier, or the like, or any combination thereof.
  • the service request may be accepted by any one of a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, or a supplier.
  • the service request may be chargeable or free.
  • An aspect of the present disclosure relates to systems and methods for determining a pick-up location based on an area to which a current location belongs among a plurality of areas.
  • the systems and methods may obtain a map include a plurality of links.
  • the systems and methods may determine a plurality of regions based on the plurality of links on the map.
  • the systems and methods may obtain a plurality of historical location pairs associated with a plurality of historical orders corresponding to the region. Each historical location pair may include a first historical anchor point and a first historical pick-up location.
  • the systems and methods may determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm, and divide the region into a plurality of area based on the plurality of clusters.
  • Each area may have first historical anchor points and correspond to first historical pick-up locations associated with the first historical anchor points.
  • FIG. 1 is a block diagram illustrating an exemplary O2O service system 100 according to some embodiments of the present disclosure.
  • the O2O service system 100 may be an online transportation service platform for transportation services.
  • the O2O service system 100 may include a server 110, a network 120, a requester terminal 130, a provider terminal 140, a vehicle 150, a storage device 160, and a navigation device 170.
  • the O2O service system 100 may provide a plurality of services.
  • Exemplary service may include a taxi-hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, and a shuttle service.
  • the O2O service may be any online service, such as booking a meal, shopping, or the like, or any combination thereof.
  • the O2O service system 100 may be configured to determine a pick-up location based on a current location of a user.
  • the server 110 may be a single server or a server group.
  • the server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) .
  • the server 110 may be local or remote.
  • the server 110 may access information and/or data stored in the requester terminal 130, the provider terminal 140, and/or the storage device 160 via the network 120.
  • the server 110 may be directly connected to the requester terminal 130, the provider terminal 140, and/or the storage device 160 to access stored information and/or data.
  • the server 110 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
  • the server 110 may include a processing device 112.
  • the processing device 112 may process information and/or data relating to lane broadcast to perform one or more functions described in the present disclosure.
  • the processing device 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) .
  • the processing device 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field-programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • ASIP application-specific instruction-set processor
  • GPU graphics processing unit
  • PPU physics processing unit
  • DSP digital signal processor
  • FPGA field-programmable gate array
  • PLD programmable logic device
  • controller a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
  • RISC reduced
  • the network 120 may facilitate exchange of information and/or data.
  • one or more components of the O2O service system 100 e.g., the server 110, the requester terminal 130, the provider terminal 140, the vehicle 150, the storage device 160, and the navigation device 170
  • the server 110 may receive a service request from the requester terminal 130 via the network 120.
  • the network 120 may be any type of wired or wireless network, or combination thereof.
  • the network 120 may include a cable network, a wireline network, an optical fiber network, a 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 (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof.
  • the network 120 may include one or more network access points.
  • the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, through which one or more components of the O2O service system 100 may be connected to the network 120 to exchange data and/or information.
  • a passenger may be an owner of the requester terminal 130. In some embodiments, the owner of the requester terminal 130 may be someone other than the passenger. For example, an owner A of the requester terminal 130 may use the requester terminal 130 to transmit a service request for a passenger B or receive a service confirmation and/or information or instructions from the server 110.
  • a service provider may be a user of the provider terminal 140. In some embodiments, the user of the provider terminal 140 may be someone other than the service provider. For example, a user C of the provider terminal 140 may use the provider terminal 140 to receive a service request for a service provider D, and/or information or instructions from the server 110.
  • passenger and “passenger terminal” may be used interchangeably, and “service provider” and “provider terminal” may be used interchangeably.
  • the provider terminal may be associated with one or more service providers (e.g., a night-shift service provider, or a day-shift service provider) .
  • the requester terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a vehicle 130-4, or the like, or any combination thereof.
  • the mobile device 130-1 may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
  • the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof.
  • the wearable device may include a smart bracelet, a smart footgear, smart glasses, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
  • the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include a virtual reality helmet, virtual reality glasses, a virtual reality patch, an augmented reality helmet, augmented reality glasses, an augmented reality patch, or the like, or any combination thereof.
  • the virtual reality device and/or the augmented reality device may include Google TM Glasses, an Oculus Rift, a HoloLens, a Gear VR, etc.
  • the built-in device in the vehicle 130-4 may include an onboard computer, an onboard television, etc.
  • the requester terminal 130 may be a device with positioning technology for locating the position of the passenger and/or the requester terminal 130.
  • the provider terminal 140 may include a plurality of provider terminals 140-1, 140-2, ..., 140-n. In some embodiments, the provider terminal 140 may be similar to, or the same device as the requester terminal 130. In some embodiments, the provider terminal 140 may be customized to be able to implement the O2O service system 100. In some embodiments, the provider terminal 140 may be a device with positioning technology for locating the service provider, the provider terminal 140, and/or a vehicle 150 associated with the provider terminal 140. In some embodiments, the requester terminal 130 and/or the provider terminal 140 may communicate with another positioning device to determine the position of the passenger, the requester terminal 130, the service provider, and/or the provider terminal 140.
  • the requester terminal 130 and/or the provider terminal 140 may periodically transmit the positioning information to the server 110.
  • the provider terminal 140 may also periodically transmit the availability status to the server 110.
  • the availability status may indicate whether a vehicle 150 associated with the provider terminal 140 is available to carry a passenger.
  • the requester terminal 130 and/or the provider terminal 140 may transmit the positioning information and the availability status to the server 110 every thirty minutes.
  • the requester terminal 130 and/or the provider terminal 140 may transmit the positioning information and the availability status to the server 110 each time the user logs into the mobile application associated with the O2O transportation service 100.
  • the provider terminal 140 may correspond to one or more vehicles 150.
  • the vehicles 150 may carry the passenger and travel to the destination.
  • the vehicles 150 may include a plurality of vehicles 150-1, 150-2, ..., 150-n.
  • One vehicle may correspond to one type of services (e.g., a taxi-hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, or a shuttle service) .
  • the vehicles may include a car, an aircraft, a space shuttle, an electric car, a hybrid vehicle, or the like, or any combination thereof.
  • the storage device 160 may store data and/or instructions. In some embodiments, the storage device 160 may store data obtained from the requester terminal 130 and/or the provider terminal 140. In some embodiments, the storage device 160 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage device 160 may include a mass storage, removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, 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) .
  • 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.
  • MROM mask ROM
  • PROM programmable ROM
  • EPROM erasable programmable ROM
  • EEPROM electrically-erasable programmable ROM
  • CD-ROM compact disk ROM
  • digital versatile disk ROM etc.
  • the storage device 160 may be implemented on a cloud platform.
  • the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
  • the storage device 160 may be connected to the network 120 to communicate with one or more components of the O2O service system 100 (e.g., the server 110, the requester terminal 130, or the provider terminal 140) .
  • One or more components of the O2O service system 100 may access the data or instructions stored in the storage device 160 via the network 120.
  • the storage device 160 may be directly connected to or communicate with one or more components of the O2O service system 100 (e.g., the server 110, the requester terminal 130, the provider terminal 140) .
  • the storage device 160 may be part of the server 110.
  • the navigation device 170 may determine information associated with an object, for example, one or more of the requester terminal 130, the provider terminal 140, the vehicle 150, etc.
  • the navigation device 170 may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a BeiDou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS) , etc.
  • the information may include a location, an elevation, a velocity, or an acceleration of the object, or a current time.
  • the navigation device 170 may include one or more satellites, for example, a satellite 170-1, a satellite 170-2, and a satellite 170-3.
  • the satellites 170-1 through 170-3 may determine the information mentioned above independently or jointly.
  • the satellite navigation device 170 may transmit the information mentioned above to the network 120, the requester terminal 130, the provider terminal 140, or the vehicle 150 via wireless connections.
  • one or more components of the O2O service system 100 may have permissions to access the storage device 160.
  • one or more components of the O2O service system 100 may read and/or modify information related to the passenger, service provider, and/or the public when one or more conditions are met.
  • the server 110 may read and/or modify one or more passengers’ information after a service is completed.
  • the server 110 may read and/or modify one or more service providers’ information after a service is completed.
  • an element or component of the O2O service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals.
  • a processor of the requester terminal 130 may generate an electrical signal encoding the request.
  • the processor of the requester terminal 130 may then transmit the electrical signal to an output port. If the requester terminal 130 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which further may transmit the electrical signal to an input port of the server 110.
  • the output port of the requester terminal 130 may be one or more antennas, which convert the electrical signal to electromagnetic signal.
  • a provider terminal 130 may receive an instruction and/or service request from the server 110 via electrical signal or electromagnet signals.
  • an electronic device such as the requester terminal 130, the provider terminal 140, and/or the server 110, when a processor thereof processes an instruction, transmits out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals.
  • the processor retrieves or saves data from a storage medium, it may transmit out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium.
  • the structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device.
  • an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
  • FIG. 2 illustrates a schematic diagram of an exemplary computing device according to some embodiments of the present disclosure.
  • the computing device may be a computer, such as the server 110 in FIG. 1 and/or a computer with specific functions, configured to implement any particular system according to some embodiments of the present disclosure.
  • Computing device 200 may be configured to implement any components that perform one or more functions disclosed in the present disclosure.
  • the server 110 may be implemented in hardware devices, software programs, firmware, or any combination thereof of a computer like computing device 200.
  • FIG. 2 depicts only one computing device.
  • the functions of the computing device, providing function that recommending pick-up locations may require may be implemented by a group of similar platforms in a distributed mode to disperse the processing load of the system.
  • Computing device 200 may include a communication terminal 250 that may connect with a network that may implement the data communication.
  • Computing device 200 may also include a processor 220 that is configured to execute instructions and includes one or more processors.
  • the schematic computer platform may include an internal communication bus 210, different types of program storage units and data storage units (e.g., a hard disk 270, a read-only memory (ROM) 230, a random-access memory (RAM) 240) , various data files applicable to computer processing and/or communication, and some program instructions executed possibly by the processor 220.
  • Computing device 200 may also include an I/O device 260 that may support the input and output of data flows between computing device 200 and other components. Moreover, computing device 200 may receive programs and data via the communication network.
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device on which a terminal may be implemented according to some embodiments of the present disclosure.
  • the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, a mobile operating system (OS) 370, a storage 390.
  • any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
  • a mobile operating system 370 e.g., iOS TM , Android TM , Windows Phone TM , etc.
  • the applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to image processing or other information from the O2O service system 100.
  • User interactions with the information stream may be achieved via the I/O 350 and provided to the database 130, the server 105 and/or other components of the O2O service system 100.
  • the mobile device 300 may be an exemplary embodiment corresponding to the requester terminal 130 or the provider terminal 140.
  • computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein.
  • a computer with user interface elements may be used to implement a personal computer (PC) or any other type of work station or terminal device.
  • PC personal computer
  • a computer may also act as a system if appropriately programmed.
  • FIG. 4 is block diagram illustrating an exemplary processing device according to some embodiments of the present disclosure.
  • the processing device 112 may include an obtaining module 402, a region determination module 404, a cluster determination module 406, a region division module 408, an area determination module 410, a pick-up location determination module 412, a recommendation module 414, a walking cost determination module 416, a walking trajectory determination module 418, and a parking point determination module 420.
  • the modules may be hardware circuits of all or part of the processing device 112.
  • the modules may also be implemented as an application or set of instructions read and executed by the processing device 112. Further, the modules may be any combination of the hardware circuits and the application/instructions.
  • the modules may be the part of the processing device 112 when the processing device 112 is executing the application/set of instructions.
  • the obtaining module 402 may be configured to obtain information and/or data related to the O2O service system 100.
  • the obtaining module 402 may obtain a map including a plurality of links.
  • the map may store road data relating to an administrative district, a city, a country, or the like.
  • the obtaining module 402 may obtain a current location of a user via a user terminal (e.g., the requester terminal 130) based on a user’s input or a positioning technology.
  • the current location of the user may refer to a location that the user places an order, which may also be referred to as an anchor point.
  • the obtaining module 402 may obtain information and/or data related to a plurality of historical orders. For example, the obtaining module 402 may obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to a region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location. As another example, the obtaining module 402 may obtain a plurality of second historical orders including a plurality of second historical anchor points and a plurality of second historical pick-up locations. As a further example, the obtaining module 402 may obtain driving trajectory data associated with a plurality of third historical pick-up locations. The driving trajectory data may include longitude-latitude coordinates of historical parking points and corresponding historical parking times.
  • the processing device 112 may obtain the information and/or data from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source via the network 120.
  • the processing device 112 may obtain the information and/or data from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source via the network 120.
  • the region determination module 404 may be configured to determine a plurality of regions based on the plurality of links obtained by the obtaining module 402.
  • the plurality of regions may include a community, a park, a shopping mall, a hospital, a school, a library, or the like, or any combination thereof.
  • Each region may only include internal roads on which a vehicle cannot park.
  • the region determination module 404 may identify and/or extract multiple links from the map.
  • the region determination module 404 may generate a binary image by processing the multiple links. In the binary image, the roads (which are represented by links) may be displayed as white and other portions may be displayed as black. Then the region determination module 404 may map the binary image to the map to determine the plurality of regions.
  • the cluster determination module 406 may be configured to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm. Details regarding the determination of the plurality of clusters may be found elsewhere in the present disclosure (e.g., operation 507 of process 500 and the descriptions thereof) .
  • the region division module 408 may be configured to divide the region into a plurality of areas based on the plurality of clusters. Each area of the plurality of areas may have first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points. In some embodiments, for each of the plurality of clusters, the region division module 408 may determine at least part of the first historical anchor points corresponding to the cluster, and determine an area of the plurality of areas corresponding to the cluster by processing at least part of the first historical anchor points using a minimum convex hull algorithm.
  • the area determination module 410 may be configured to determine an area to which the current location belongs among a plurality of areas. In some embodiments, the area determination module 410 may determine the area based on coordinates or a name of the current location.
  • the pick-up location determination module 412 may be configured to determine one or more first historical pick-up locations corresponding to the area as candidate pick-up locations. Details regarding the determination of the candidate pick-up locations may be found elsewhere in the present disclosure (e.g., operation 605 of process 600 and the descriptions thereof) .
  • the recommendation module 414 may be configured to recommend at least one of the candidate pick-up locations to the user via a user terminal (e.g., the requester terminal 130) .
  • the recommendation module 414 may rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users, and/or walking costs of the candidate pick-up locations.
  • the recommendation module 414 may recommend at least one of the ranked candidate pick-up locations to the user.
  • the recommendation module 414 may display the recommended pick-up location (s) on the user terminal (e.g., the requester terminal 130) .
  • the recommendation module 414 may display a route from the recommended pick-up location (s) or a target pick-up location to the destination.
  • the walking cost determination module 416 may be configured to determine a walking cost from the current location to a candidate pick-up location based on historical walking trajectories. For example, the walking cost determination module 416 may determine a walking trajectory between the current location and the candidate pick-up location based on the historical walking trajectories. The walking cost determination module 416 may determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof. Details regarding the determination of the walking cost may be found elsewhere in the present disclosure (e.g., operation 705 of process 700 and the descriptions thereof) .
  • the walking trajectory determination module 418 may be configured to determine the historical walking trajectories. In some embodiments, the walking trajectory determination module 418 may determine a plurality of candidate historical walking trajectories between second historical anchor points and corresponding second historical pick-up locations. A candidate historical walking trajectory may refer to a walking trajectory of a historical user from a historical anchor point to the corresponding historical pick-up location. In some embodiments, two or more candidate historical walking trajectories may have similar or overlapping historical walking trajectories. Thus, the walking trajectory determination module 418 may perform a second clustering algorithm on the plurality of candidate historical walking trajectories to determine the historical walking trajectories.
  • the parking point determination module 420 may be configured to determine one or more historical parking points corresponding to a same link (e.g., a portion of the same link) as the third historical pick-up location. In some embodiments, the parking point determination module 420 may determine a number of the one or more historical parking points whose parking times is greater than or equal to a time threshold. In response to a determination that the number of the one or more historical parking points is greater than or equal to a quantity threshold, the parking point determination module 420 may determine the link (or the portion of the link) corresponding to the third historical pick-up location as a link (or a portion of a link) that permits vehicles parking. Details regarding the determination of the link that permits vehicles parking may be found elsewhere in the present disclosure (e.g., operations 90-909 of process 900 and the descriptions thereof) .
  • any one of the modules may be divided into two or more units.
  • the obtaining module 402 may be divided into two units.
  • the first unit may be configured to obtain the current location of the user.
  • the second unit may be configured to obtain information and/or data related to historical orders.
  • the processing device 112 may include one or more additional modules.
  • the processing device 112 may include a storage module (not shown) .
  • the storage module may be configured to store data generated during any process performed by any component of the processing device 112.
  • FIG. 5A is a flowchart illustrating an exemplary process for dividing a region into a plurality of areas according to some embodiments of the present disclosure.
  • the processing device 112 may be described as a subject to perform the process 500.
  • the process 500 may also be performed by other entities.
  • one of ordinary skill in the art would understand that at least a portion of the process 500 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3.
  • one or more operations of process 500 may be implemented on the O2O service system 100 as illustrated in FIG. 1.
  • one or more operations in the process 500 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) .
  • the instructions may be transmitted in a form of electronic current or electrical signals.
  • the processing device 112 may obtain a map including a plurality of links.
  • the map may also be referred to as “road network” .
  • the map may store road data relating to an administrative district (e.g., Chaoyang District) , a city (e.g., Beijing City) , a country (e.g., China) , or the like.
  • the map may be updated periodically.
  • the updating period may be a default value or an empirical value related to the O2O service system 100, such as 10 days, half a month, a month, half a year, or the like.
  • the updating period may be preset by a user.
  • the “link” may be an element of road or street in the map, and each link may have a link ID.
  • a road may correspond to one or more links.
  • Changan Street may be mapped to five links on the map by, e.g., manually annotated mapping. The five links may be connected one by one via its nodes to constitute Changan Street.
  • the processing device 112 may obtain the map from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) . Alternatively or additionally, the processing device 112 may obtain the map from an external data source (e.g., Google TM Maps, Tencent TM Maps, Amap TM , Baidu TM Maps, or the like) via the network 120.
  • Google TM Maps e.g., Google TM Maps, Tencent TM Maps, Amap TM , Baidu TM Maps, or the like
  • the processing device 112 may determine a plurality of regions based on the plurality of links on the map.
  • the processing device 112 may identify and/or extract the plurality of links from the map. For example, the processing device 112 may determine whether a road is an internal road (e.g., road within a community, road within a park, a pedestrian street) . In response to a determination that the road is an internal road, the processing device 112 may not extract the one or more links corresponding to the road. Alternatively, in response to a determination that the road is not an internal road, the processing device 112 may extract the one or more links corresponding to the road. Thus, the processing device 112 may extract multiple links from the map.
  • an internal road e.g., road within a community, road within a park, a pedestrian street
  • the processing device 112 may generate a binary image by processing the multiple links.
  • the binary image may be divided into multiple portions by the extracted links.
  • the processing device 112 may assign pixels that correspond to the extracted links with a first value (e.g., 255) , and assign pixels that do not correspond to the extracted links with a second value (e.g., 0) .
  • the roads e.g., represented by links
  • the processing device 112 may map the binary image to the map to determine the plurality of regions.
  • each of the plurality of regions may be surrounded by one or more links.
  • the plurality of regions may include a community, a park, a shopping mall, a hospital, a school, a library, or the like, or any combination thereof.
  • Each region may only include internal roads on which a vehicle cannot park.
  • the processing device 112 may obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region.
  • Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location.
  • the first historical anchor point may refer to a position that a user placed an order.
  • the first historical pick-up location may refer to a position at which a driver picked up the user.
  • the first historical anchor point and/or the first historical pick-up location may be represented by coordinates (e.g., latitude-longitude coordinates) , or by a name of a building or a name of a street, etc.
  • the processing device 112 may obtain first historical orders whose anchor points are within the region and obtain the historical location pairs based on the obtained first historical orders. For example, FIG. 5B shows a plurality of location pairs (indicated by line segment with arrow 554) within a region 550.
  • the processing device 112 may obtain the plurality of historical location pairs from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source (e.g., database) via the network 120.
  • the processing device 112 may determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm.
  • the clustering algorithm may include a density-based algorithm (e.g., a DBSCAN algorithm, a density peaks algorithm) , a partitioning algorithm (aK-means clustering algorithm, a K-medoids algorithm) , a hierarchical algorithm (e.g., a birch algorithm, a cure algorithm, a chameleon algorithm) , a grid-based algorithm (e.g., a sting algorithm, a clique algorithm, a wave-cluster algorithm) , a model-based algorithm, or the like.
  • a density-based algorithm e.g., a DBSCAN algorithm, a density peaks algorithm
  • a partitioning algorithm aK-means clustering algorithm, a K-medoids algorithm
  • a hierarchical algorithm e.g., a birch algorithm, a cure algorithm, a chameleon algorithm
  • one or more parameters may be set before performing the DBSCAN algorithm.
  • the plurality of historical location pairs may be determined as a sample set.
  • the processing device 112 may select one historical location pair in the sample set.
  • the processing device 112 may determine a number of point-pairs (i.e., historical location pairs) within a distance of the radius ⁇ from the historical location pair. If the number of point-pairs is greater than or equal to the minPoints, the processing device 112 may determine the point-pairs (or the historical location pairs) as a first cluster.
  • the processing device 112 may determine the historical location pair as a noise point-pair and remove the historical location pair from the plurality of historical location pairs. The processing device 112 may then select a new historical location pair that not belongs to the first cluster and repeat the above process to determine a second cluster. Thus, the processing device 112 may determine a plurality of clusters by repeating the clustering process. Each of the plurality of clusters may include one or more historical location pairs. In some embodiments, if the clustering result is not good (e.g., the plurality of clusters are decentralized, the number of the clusters are few) , the processing device 112 may adjust the one or more parameters and perform the clustering process again.
  • the processing device 112 may divide the region into a plurality of areas based on the plurality of clusters. Each area of the plurality of areas may have first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points. In some embodiments, for each of the plurality of clusters, the processing device 112 may determine at least part of the first historical anchor points corresponding to the cluster, and determine an area of the plurality of areas corresponding to the cluster by processing at least part of the first historical anchor points using a minimum convex hull algorithm.
  • the processing device 112 may identify a convex hull (i.e., a perimeter of the historical anchor points in the cluster) , and determine the smallest convex polygon (e.g., a polygon without reentrant vertices) that encloses all the first historical anchor points in the cluster.
  • the processing device 112 may designate the smallest convex polygon as an area. For example, as shown in FIG. 5B, the region 550 is divided into a plurality of areas 552, each of which is a convex polygon. Each area 552 may correspond to one or more historical location pairs whose first historical anchor points are within the area.
  • a region may be divided into a plurality of areas. Each area may correspond to one or more first historical anchor points and first historical pick-up locations, which may facilitate the classification management of historical orders including first historical anchor points and first historical pick-up locations.
  • the processing device 112 may recommend one or more pick-up locations to the user based on the historical pick-up locations corresponding to the area, other than based on all historical pick-up locations corresponding to the region.
  • the processing device 112 may determine whether a first historical pick-up location locates at a link that permit vehicles parking. If the first historical pick-up location does not locate at the link that permit vehicles parking, the processing device 112 may remove the first historical pick-up location.
  • FIG. 6 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure.
  • the processing device 112 may be described as a subject to perform the process 600.
  • the process 600 may also be performed by other entities.
  • one of ordinary skill in the art would understand that at least a portion of the process 600 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3.
  • one or more operations of process 600 may be implemented on the O2O service system 100 as illustrated in FIG. 1.
  • one or more operations in the process 600 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) .
  • the instructions may be transmitted in a form of electronic current or electrical signals.
  • the processing device 112 may obtain a current location of a user via a user terminal (e.g., the requester terminal 130) .
  • the current location of the user may refer to a location that the user places an order (or a location when the user opens the O2O service system 100) .
  • the current location may also be referred to as an anchor point.
  • the current location may be a location within a region (e.g., a community, a park, a shopping mall) .
  • the current location may be represented by coordinates (e.g., latitude-longitude coordinates) , or by a name of a building or a name of a street, etc.
  • the current location may be automatically determined by a GPS installed in the user terminal or the navigation system 170.
  • the current location may be inputted, by the user, via a character input device (e.g., a keyboard, a touchscreen) of the user terminal or a microphone of the user terminal, or detected by a positioning technology.
  • a character input device e.g., a keyboard, a touchscreen
  • the processing device 112 may determine an area to which the current location belongs among a plurality of areas. In some embodiments, the processing device 112 may determine the area to which the current location belongs based on the coordinates or the name of the current location.
  • the plurality of areas may be determined according to process 500 and the descriptions thereof are not repeated here.
  • the processing device 112 may determine one or more first historical pick-up locations corresponding to the area as candidate pick-up locations. As described in connection with operation 509 of the process 500, each area may have first historical anchor points and correspond to first historical pick-up locations associated with the first historical anchor points. The processing device 112 may determine the one or more first historical pick-up locations based on the area. Merely by way of example, as shown in FIG. 5B, the current location 562 may belong to an area. The area may correspond to two first historical pick-up locations 564. The two first historical pick-up locations 564 may be determined as two candidate pick-up locations.
  • the processing device 112 may recommend at least one of the candidate pick-up locations to the user via the user terminal (e.g., the requester terminal 130) , and display the at least one of the candidate pick-up locations on the user terminal (e.g., the requester terminal 130) .
  • the processing device 112 may recommend the candidate pick-up location to the user.
  • the processing device 112 may rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users. The processing device 112 may then recommend the ranked candidate pick-up locations to the user.
  • the processing device 112 may recommend all the ranked candidate pick-up locations to the user, and the ranked candidate pick-up locations may be displayed on the user terminal. For example, if there are three ranked candidate pick-up locations, the processing device 112 may recommend the three ranked candidate pick-up locations to the user. Alternatively, the processing device 112 may recommend a portion of the ranked candidate pick-up locations to the user by default, or allow a user to choose a certain portion of ranked candidate pick-up locations for display. For example, if there are more than three ranked candidate pick-up locations, the processing device 112 may recommend the top three of the ranked candidate pick-up locations to the user, which may be displayed on the user terminal.
  • the user may also choose to display only the top two of the ranked candidate pick-up locations. It can be appreciated that displaying only the top candidate pick-up locations can save space on a display interface, since a terminal device, such a cell phone, may have a small display.
  • the processing device 112 may rank the candidate pick-up locations based on walking costs of the candidate pick-up locations, and recommend at least one of the ranked candidate pick-up locations to the user. Details regarding the determination of the walking cost of each candidate pick-up location may be found elsewhere in the present disclosure (e.g., operation 705 of process 700 and the relevant descriptions thereof) .
  • the processing device 112 may display the recommended pick-up location (s) on the user terminal (e.g., the requester terminal 130) .
  • the pick-up location (s) may be displayed in the form of text (e.g., “the recommended pick-up location is East Gate of park A” ) or in the form of map (e.g., the recommended pick-up location is displayed as an anchor point on the map) .
  • the user may select a target pick-up location from the displayed pick-up locations.
  • a route from the target pick-up location to the destination may be generated and displayed on the user terminal (e.g., the requester terminal 130) .
  • the processing device 112 may determine historical pick-up locations corresponding to the area as the candidate pick-up locations, instead of historical pick-up locations corresponding to a region (being quite larger than the area and having more historical pick-up locations than the area) as the candidate pick-up locations, which may easily recommend suitable pick-up locations for the user. Since the area includes less historical pick-up locations than the region, when the processing device 112 ranks the candidate pick-up locations corresponding to the area, the computing load may be reduced and the computing efficiency may be improved.
  • the processing device 112 may guide the user to the nearest area among the plurality of areas, and then recommend one or more pick-up locations for the user according to the process 600.
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure.
  • the processing device 112 may be described as a subject to perform the process 700.
  • the process 700 may also be performed by other entities.
  • one of ordinary skill in the art would understand that at least a portion of the process 700 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3.
  • one or more operations of process 700 may be implemented on the O2O service system 100 as illustrated in FIG. 1.
  • one or more operations in the process 700 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) .
  • the instructions may be transmitted in a form of electronic current or electrical signals.
  • the processing device 112 may obtain a current location of a user via a user terminal (e.g., the requester terminal 130) .
  • the current location of the user may refer to a location that the user places an order (or a location when the user opens the O2O service system 100) .
  • the processing device 112 may determine a plurality of candidate pick-up locations based on the current location of the user. In some embodiments, the processing device 112 may determine a circular region based on the current location (being as a center) and a distance threshold (being as a radius) . In some embodiments, the distance threshold may be a default value or an empirical value related to the O2O service system 100. In some embodiments, the distance threshold may be set according to a default setting of the O2O service system 100, or may be preset or adjusted by a user.
  • the processing device 112 may select second historical pick-up locations within the circular region among a plurality of second historical orders, and designate the selected historical pick-up locations as the candidate pick-up locations. In some embodiments, the processing device 112 may determine the plurality of candidate pick-up locations according to operations 603 and 605 of the process 600, and the descriptions thereof are not repeated herein. It should be noted that the above descriptions of the determination of the plurality of candidate pick-up locations are merely for illustration purposes, and are not intended to limit the scope of the present disclosure. In some embodiments, the plurality of candidate pick-up locations may be determined according to other ways.
  • the processing device112 may determine a walking cost from the current location to the candidate pick-up location based on historical walking trajectories.
  • the processing device 112 may determine a walking trajectory between the current location and the candidate pick-up location based on historical walking trajectories.
  • the historical walking trajectories may be determined based on a plurality of second historical anchor points and second historical pick-up locations. Details regarding the determination of the historical walking trajectories may be found elsewhere in the present disclosure (e.g., process 800 and the descriptions thereof) .
  • the processing device 112 may determine a point on one of the historical walking trajectories closest to the current location as a corrected current location.
  • the processing device 112 may determine the walking trajectory between the corrected current location and the candidate pick-up location based on the historical walking trajectories.
  • the processing device 112 may determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof.
  • the plurality of parameters may include a length of the walking trajectory, a number of intersections on the walking trajectory, a number of traffic lights on the walking trajectory, a number of overpasses on the walking trajectory, a number of times that the walking trajectory is selected by historical users, or the like, or any combination thereof.
  • whether the candidate pick-up location locates at a link that permit vehicles parking may be determined as one of the plurality of parameters. If the candidate pick-up location does not locate at the link, the parameter may be given a negative value (e.g., -1) . Alternatively, if the candidate pick-up location locates at the link, the parameter may be given a positive value (e.g., 1) .
  • the processing device 112 may determine whether the candidate pick-up location locates at one of a plurality of links that permit vehicles parking. If the candidate pick-up location locates at one of the plurality of links (e.g., a portion of the link) that permit vehicles parking, the processing device 112 may perform operation 705 and determine the walking cost from the current location to the candidate pick-up location. Alternatively, if the candidate pick-up location does not locate at any one of the plurality of links that permit vehicles parking, the processing device 112 may remove the candidate pick-up location from the plurality of candidate pick-up locations.
  • the plurality of links that permit vehicles parking may be determined according to process 900 illustrated in FIG. 9, and described in detail below.
  • the processing device 112 may determine a candidate pick-up location with a lowest walking cost as a target pick-up location.
  • the processing device 112 may compare the walking costs of the plurality of candidate pick-up locations, and determine the candidate pick-up location with the lowest walking cost as the target pick-up location.
  • the processing device 112 may recommend the target pick-up location to the user via the user terminal (e.g., the requester terminal 130) .
  • the processing device 112 may display the target pick-up location on the user terminal (e.g., the requester terminal 130) .
  • the target pick-up location may be displayed in the form of text (e.g., “the target pick-up location is East Gate of park A” ) or in the form of map (e.g., the target pick-up location is displayed as an anchor point on the map) .
  • a route from the target pick-up location to the destination may be generated and displayed on the user terminal (e.g., the requester terminal 130) .
  • the processing device 112 may determine a walking cost between the current location and each candidate pick-up location, and determine a candidate pick-up location with the lowest walking cost as the target pick-up location, which may facilitate the user to reach the pick-up location quickly and conveniently, and improve the experience of the user and driver.
  • the processing device 112 may guide the user to a relatively promising region and then determine a target pick-up location for the user according to the process 700.
  • the processing device 112 may determine a greater distance threshold than that in the mature region, and determine candidate pick-up locations based on the current location and the greater distance threshold.
  • FIG. 8 is flowchart illustrating an exemplary process for determining historical walking trajectories according to some embodiments of the present disclosure.
  • the processing device 112 may be described as a subject to perform the process 800.
  • the process 800 may also be performed by other entities.
  • one of ordinary skill in the art would understand that at least a portion of the process 800 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3.
  • one or more operations of process 800 may be implemented on the O2O service system 100 as illustrated in FIG. 1.
  • one or more operations in the process 800 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) .
  • the instructions may be transmitted in a form of electronic current or electrical signals.
  • the processing device 112 may obtain a plurality of second historical orders.
  • the plurality of second historical orders may include a plurality of second historical anchor points and a plurality of second historical pick-up locations.
  • the second historical anchor point may refer to a position that a user placed an order.
  • the second historical pick-up location may refer to a position at which a driver picked up the user.
  • the second historical anchor point and/or the second historical pick-up location may be represented by coordinates (e.g., latitude-longitude coordinates) , or by a name of a building or a name of a street, etc.
  • the processing device 112 may obtain the plurality of second historical orders from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source (e.g., database) via the network 120.
  • components of the O2O service system 100 e.g., the requester terminal 130, the provider terminal 140, the storage device 150
  • an external source e.g., database
  • the processing device 112 may determine a plurality of candidate historical walking trajectories between the second historical anchor points and corresponding second historical pick-up locations.
  • a candidate historical walking trajectory may refer to a walking trajectory of a historical user from a historical anchor point to the corresponding historical pick-up location.
  • the historical user may need to walk from the historical anchor point to the historical pick-up location.
  • a plurality of trajectory points between the historical anchor point and the historical pick-up location which also referred to as a candidate walking trajectory, may be recorded by a GPS installed in the user terminal or the navigation system 170.
  • the processing device 112 may determine the historical walking trajectories by performing a second clustering algorithm on the plurality of candidate historical walking trajectories.
  • the second clustering algorithm may include a density-based algorithm (e.g., a DBSCAN algorithm, a density peaks algorithm) , a partitioning algorithm (aK-means clustering algorithm, a K-medoids algorithm) , a hierarchical algorithm (e.g., a birch algorithm, a cure algorithm, a chameleon algorithm) , a grid-based algorithm (e.g., a sting algorithm, a clique algorithm, a wave-cluster algorithm) , a model-based algorithm, a TRACLUS clustering algorithm, or the like.
  • the second clustering algorithm may be the same as or different from the first clustering algorithm described in operation 507 of the process 500.
  • the second clustering algorithm may include a TRACLUS clustering
  • two or more candidate historical walking trajectories may have similar or overlapping historical walking trajectories.
  • the similar or overlapping historical walking trajectories may be merged into one historical walking trajectory using the second clustering algorithm. For example, if five candidate historical walking trajectories correspond to the same historical anchor point and the same historical pick-up location, the processing device 112 may merge the five candidate historical walking trajectories into one historical walking trajectory. As another example, if a portion of a first candidate historical walking trajectory overlaps with a portion of a second candidate historical walking trajectory, the processing device 112 may merge the overlapped portion of the two candidate walking trajectories into one historical walking trajectory.
  • one or more abnormal walking trajectory points may be removed from the plurality of historical walking trajectories.
  • FIG. 9 is flowchart illustrating an exemplary process for determining one or more links that permit vehicles parking according to some embodiments of the present disclosure.
  • the processing device 112 may be described as a subject to perform the process 900.
  • the process 900 may also be performed by other entities.
  • one of ordinary skill in the art would understand that at least a portion of the process 900 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3.
  • one or more operations of process 900 may be implemented on the O2O service system 100 as illustrated in FIG. 1.
  • one or more operations in the process 900 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) .
  • the instructions may be transmitted in a form of electronic current or electrical signals.
  • the processing device 112 may obtain driving trajectory data associated with a plurality of third historical pick-up locations.
  • the plurality of third historical pick-up locations may be generated by performing a third clustering algorithm on all historical pick-up locations in third historical orders.
  • there may be multiple historical pick-up locations on a portion of a link e.g., within a distance range such as 10m, 20m
  • the processing device 112 may perform the third clustering algorithm on the multiple historical pick-up locations to determine a target third historical pick-up location.
  • the processing device 112 may remove some of the historical pick-up locations and determine the plurality of third historical pick-up locations.
  • the third clustering algorithm may include a density-based algorithm (e.g., a DBSCAN algorithm, a density peaks algorithm) , a partitioning algorithm (a K-means clustering algorithm, a K-medoids algorithm) , a hierarchical algorithm (e.g., a birch algorithm, a cure algorithm, a chameleon algorithm) , a grid-based algorithm (e.g., a sting algorithm, a clique algorithm, a wave-cluster algorithm) , a model-based algorithm, or the like.
  • a density-based algorithm e.g., a DBSCAN algorithm, a density peaks algorithm
  • a partitioning algorithm a K-means clustering algorithm, a K-medoids algorithm
  • a hierarchical algorithm e.g., a birch algorithm, a cure algorithm, a chameleon algorithm
  • the third clustering algorithm may be the same as the first clustering algorithm described in operation 507 of the process 500 or the second clustering algorithm described in operation 805 of the process 800. Alternatively, the third clustering algorithm may be different from the first clustering algorithm described in operation 507 of the process 500 or the second clustering algorithm described in operation 805 of the process 800. In some embodiments, the third clustering algorithm may include a density peaks algorithm, a DBSCAN algorithm, or the like.
  • the driving trajectory data may include longitude-latitude coordinates of historical parking points and corresponding historical parking times.
  • a historical parking point may refer to a point that a historical driver parked vehicle in order to wait for a historical passenger (or a historical user) .
  • a third historical pick-up location may correspond to one or more historical parking points in one or more third historical orders.
  • the historical parking point (s) may coincide with the corresponding third historical pick-up location.
  • the historical parking point (s) may have a certain distance (e.g., 5 meters, 10 meters) from the third historical pick-up location.
  • the processing device 112 may obtain the driving trajectory data from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150, the navigation system 170) , or from an external source (e.g., a car DVR) via the network 120.
  • the O2O service system 100 e.g., the requester terminal 130, the provider terminal 140, the storage device 150, the navigation system 170
  • an external source e.g., a car DVR
  • the processing device 112 may perform data cleaning on the obtained driving trajectory data.
  • the data cleaning may be used to remove duplicate data, supplement missing data, or delete erroneous data, or the like.
  • the processing device 112 may perform data cleaning on the obtained driving trajectory data to remove abnormal driving trajectories and/or discontinuous driving trajectories.
  • An abnormal driving trajectory may refer to that a direction of the driving trajectory is antidromic, the driving trajectory is not on a road (e.g., some points of the driving trajectory being within a community or shopping mall) , or the like.
  • a discontinuous driving trajectory may refer to a portion of the driving trajectory may not be recorded by a car DVR or a GPS device.
  • the processing device 112 may obtain multiple driving trajectories associated with the multiple vehicles. If the driving trajectory of a vehicle is different from that of the other vehicles, the processing device 112 may remove the driving trajectory of the vehicle. As another example, if the driving trajectory of a vehicle is discontinuous, the processing device 112 may remove the discontinuous driving trajectory of the vehicle.
  • the processing device 112 may determine one or more historical parking points corresponding to a same link (e.g., a portion of the same link) as the third historical pick-up location.
  • the third historical pick-up location may correspond to a link.
  • the processing device 112 may determine a portion of the link based on the third historical pick-up location. For example, the processing device 112 may determine a portion of the link within 10 meters from the third historical pick-up location.
  • the processing device 112 may determine one or more historical parking points corresponding to the portion of the link based on longitude-latitude coordinates of historical parking points in the driving trajectory data.
  • the processing device 112 may determine a number of the one or more historical parking points whose parking time is greater than or equal to a time threshold.
  • the time threshold may be a default value or an empirical value related to the O2O service system 100.
  • the time threshold may be set according to a default setting of the O2O service system 100, or may be preset or adjusted by a user. Merely by way of example, the time threshold may be 5 minutes, 8 minutes, 10 minutes, 15 minutes, or the like.
  • the processing device 112 may determine whether the parking time of a historical parking point is greater than or equal to the time threshold.
  • the processing device 112 may remove the historical parking point. Alternatively, in response to a determination that the historical parking point is greater than the time threshold, the processing device 112 may remain the historical parking point. Then the processing device 112 may determine a number of the remaining historical parking points.
  • the processing device 112 may determine the link corresponding to the third historical pick-up location as a link that permits vehicles parking if the number of the one or more historical parking points is greater than or equal to a quantity threshold.
  • the quantity threshold may be a default value or an empirical value related to the O2O service system 100. In some embodiments, the quantity threshold may be set according to a default setting of the O2O service system 100, or may be preset or adjusted by a user. Merely by way of example, the quantity threshold may be 50, 100, 120, 150, or the like.
  • the processing device 112 may determine whether the number of the historical parking point (s) is greater than or equal to the quantity threshold.
  • the processing device 112 may determine the portion of the link corresponding to the third historical pick-up location as a portion of the link that permits vehicles parking. In some embodiments, if all portion of the link corresponding to one or more third historical pick-up locations permit vehicles parking, the processing device 112 may determine the link as a link that permits vehicles parking.
  • the driving trajectory data may be updated periodically, e.g., every day, once a week.
  • the driving trajectory data may be updated if a map including a plurality of links is updated.
  • the processing device 112 may further obtain parking violation information corresponding to the driving trajectory data.
  • the parking violation information may refer to punishment information due to improper parking, such as warn, fine, accumulate points, or the like.
  • the processing device 112 may correlate the parking violation information with the driving trajectory data of the driver, and determine whether the historical parking point in the driving trajectory data permits vehicles parking.
  • the processing device 112 e.g., the obtaining module 402 may further obtain no-parking links from a map.
  • the no-parking links may include permanent no-parking links, temporary no-parking links (e.g., no-parking between 8: 00-18: 00, no parking during holiday such as National Day, Labour Day) , or the like.
  • the processing device 112 may determine a plurality of links that permit vehicles parking based on the parking violation information, the driving trajectory data, and/or the no-parking links.
  • the processing device 112 may classify the plurality of third historical pick-up locations into four categories using a classification model based on the parking violation information, the driving trajectory data, and/or the no-parking links, that is, “permit vehicles parking, ” “prohibit vehicles parking, ” “permit vehicles parking but are difficult to reach, ” “permit vehicles parking and are easily to reach. ”
  • the classification model may include a support vector machine (SVM) model, a Bayer model, a decision tree model, a Softmax model, or the like, or any combination thereof.
  • SVM support vector machine
  • the classification model may be generated by training a preliminary model using a plurality of training samples.
  • the preliminary model may include a plurality of preliminary parameters.
  • the plurality of parameters may correspond to parking violation information, driving trajectory data (e.g., parking time) , parking links, no-parking links, or the like.
  • the plurality of preliminary parameters may be adjusted and/or updated during the training process of the preliminary model.
  • a sample pick-up location of each training sample may be inputted into the preliminary model to determine an actual output.
  • the processing device 112 may compare the actual output with a desired output (e.g., a sample category of the sample pick-up location) to determine a loss function.
  • the loss function may measure a difference between the actual output and the desired output.
  • the processing device 112 may adjust the plurality of preliminary parameters to minimize the loss function.
  • the minimization of the loss function may be iterative.
  • the iteration to minimize the loss function may terminate when a termination condition is satisfied.
  • An exemplary termination condition is that an updated loss function with the updated parameters obtained in an iteration is less than a predetermined threshold.
  • a trained classification model may be determined according to the adjusted parameters.
  • the processing device 112 may input the plurality of third historical pick-up locations into the trained classification model, and a category of each of the plurality of third historical pick-up locations may be outputted from the trained classification model.
  • the processing device 112 may then determine the plurality of links that permit vehicles parking based on the categories of the third historical pick-up locations.
  • aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable 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 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS) .
  • LAN local area network
  • WAN wide area network
  • an Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, etc.
  • SaaS software as a service

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Traffic Control Systems (AREA)

Abstract

A systems and methods determine a pick-up location based on an area to which a current location belongs among a plurality of areas. The systems and methods may determine the plurality of areas by performing operations including obtaining a map including a plurality of links; determining a plurality of regions based on the plurality of links on the map; for a region, obtaining a plurality of historical location pairs associated with historical orders corresponding to the region, each historical location pair including a first historical anchor point and a first historical pick-up location; determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and dividing the region into multiple areas based on the plurality of clusters, each area having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.

Description

SYSTEMS AND METHODS FOR DETERMINING A PICK-UP LOCATION TECHNICAL FIELD
The present disclosure generally relates to online to offline (O2O) services, and in particular, to systems and methods for determining a pick-up location based on an area to which a current location belongs to.
BACKGROUND
With the development of Internet technology, online to offline (O2O) services (e.g., car-hailing services, etc. ) are becoming increasingly popular in daily life. Through a car-hailing service system, a passenger can place an order conveniently and save the time in finding a taxi. In some cases, in the location (also referred to as an anchor point) included in the order may prohibit vehicles passing or parking (e.g., a community, a shopping mall) , and as a result an actual pick-up location is different from the anchor point. In this case, there may be multiple candidate pick-up locations surrounding the anchor point (e.g., a North Gate of the community or the shopping mall, a South Gate of the community or the shopping mall, an East Gate of the community or the shopping mall, etc. ) . It is vital to select a suitable pick-up location among the multiple candidate pick-up locations. Thus, it is desirable to provide systems and methods for determining a pick-up location.
SUMMARY
In one aspect of the present disclosure, a system is provided. The system may include at least one storage device, and at least one processor in communication with the at least one storage device. The at least one storage device may include a set of instructions. When executing the set of instructions, the at least one processor may be configured to cause the system to obtain a map including a plurality of links, and determine a plurality of regions based on the plurality of links on the map. For a region of the  plurality of regions, the at least one processor may be further configured to cause the system to obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location. The at least one processor may be further configured to cause the system to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and divide the region into a plurality of areas based on the plurality of clusters. Each area of the plurality of areas may have first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
In some embodiments, to determine the plurality of regions based on the plurality of links on a map, the at least one processor may be further configured to cause the system to identify the plurality of links from the map; generate a binary image by processing the plurality of links; and map the binary image to the map to determine the plurality of regions.
In some embodiments, the clustering algorithm may include at least one of a DBSCAN algorithm or a density peaks algorithm.
In some embodiments, to divide the region into the plurality of areas based on the plurality of clusters, the at least one processor may be further configured to cause the system to for each of the plurality of clusters, determine at least part of the first historical anchor points corresponding to the cluster; and determine an area of the plurality of areas corresponding to the cluster by processing the at least part of the first historical anchor points using a minimum convex hull algorithm.
In some embodiments, the at least one processor may be further configured to cause the system to obtain a current location of a user via a user terminal; determine an area to which the current location belongs among the plurality of areas; determine at least part of the first historical pick-up locations corresponding to the area as candidate pick-up  locations; and recommend at least one of the candidate pick-up locations to the user via the user terminal.
In some embodiments, to recommend the at least one of the candidate pick-up locations to the user, the at least one processor may be further configured to cause the system to rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users; and recommend the ranked candidate pick-up locations to the user.
In some embodiments, to recommend the at least one of the candidate pick-up locations to the user, the at least one processor may be further configured to cause the system to for each of the candidate pick-up locations, determine a walking cost from the current location to the candidate pick-up location based on historical walking trajectories; determine a candidate pick-up location with a lowest walking cost as a target pick-up location among the candidate pick-up locations; and recommend the target pick-up location to the user via the user terminal.
In some embodiments, to determine the walking cost from the current location to the pick-up location based on historical walking trajectories, the at least one processor may be further configured to cause the system to determine a walking trajectory between the current location and the candidate pick-up location based on historical walking trajectories; and determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof.
In some embodiments, the plurality of parameters may include at least one of a length of the walking trajectory, a number of intersections on the walking trajectory, a number of traffic lights on the walking trajectory, a number of overpasses on the walking trajectory, or a number of times that the walking trajectory is selected by historical users.
In some embodiments, the historical walking trajectories may be determined according to a process including: obtaining a plurality of second historical orders including second historical anchor points and second historical pick-up locations; determining a  plurality of candidate historical walking trajectories between the second historical anchor points and corresponding second historical pick-up locations; and determining the historical walking trajectories by performing a second clustering algorithm on the plurality of candidate historical walking trajectories.
In some embodiments, before determining the walking cost from the current location to the candidate pick-up location, the at least one processor may be configured to cause the system to determine whether the candidate pick-up location locates at one of a plurality of links that permit vehicles parking, and if the candidate pick-up location does not locate at any one of the plurality of links, remove the candidate pick-up location from the candidate pick-up locations.
In some embodiments, the plurality of links that permit vehicles parking may be determined according to a process including: obtaining driving trajectory data associated with a plurality of third historical pick-up locations, the driving trajectory data including longitude-latitude coordinates of historical parking points and corresponding historical parking times, each of the plurality of third historical pick-up locations corresponding to a link; for one of the plurality of third historical pick-up locations, determining one or more historical parking points corresponding to a same link as the third historical pick-up location; determining a number of the one or more historical parking points whose parking time is greater than or equal to a time threshold; and if the number of the one or more historical parking points is greater than or equal to a quantity threshold, determine the link corresponding to the third historical pick-up location as a link that permits vehicles parking.
In some embodiments, after obtaining the driving trajectory data associated with a plurality of second historical pick-up locations, the at least one processor is further configured to cause the system to perform data cleaning on the obtained driving trajectory data.
In some embodiments, the at least one processor may be further configured to cause the system to obtain parking violation information corresponding to the driving  trajectory data, and determine the plurality of links that permit vehicles parking based on the parking violation information and the driving trajectory data.
In some embodiments, the at least one processor may be further configured to cause the system to update the driving trajectory data periodically.
In some embodiments, the plurality of third historical pick-up locations may be generated by performing a third clustering algorithm on all historical pick-up locations in third historical orders.
In another aspect of the present disclosure, a method is provided. The method may be implemented on a computing device having at least one processor, at least one computer-readable storage medium, and a communication platform connected to a network. The method may include obtaining a map including a plurality of links, and determining a plurality of regions based on the plurality of links on the map. For a region of the plurality of regions, the method may include obtaining a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location. The method may further include determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and dividing the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
In yet another aspect of the present disclosure, a non-transitory computer-readable storage medium is provided. The non-transitory computer-readable storage medium may include at least one set of instructions. When executed by at least one processor of a computing device, the at least one set of instructions may direct the at least one processor to perform acts of obtaining a map including a plurality of links, and determining a plurality of regions based on the plurality of links on the map. For a region of the plurality of regions, the at least one set of instructions may direct the at least one  processor to perform acts of obtaining a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region, each of the plurality of historical location pairs including a first historical anchor point and a first historical pick-up location; determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and dividing the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
In yet another aspect of the present disclosure, a system is provided. The system may include an obtaining module, a region determination module, a cluster determination module, and a region division module. The obtaining module may be configured to obtain a map including a plurality of links. The region determination module may be configured to determine a plurality of regions based on the plurality of links on the map. For a region of the plurality of regions, the obtaining module may be configured to obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location. The cluster determination module may be configured to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm. The region division module may be configured to divide the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
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 illustrating an exemplary O2O service system according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device on which a terminal may be implemented according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing device according to some embodiments of the present disclosure;
FIG. 5A is a flowchart illustrating an exemplary process for dividing a region into a plurality of areas according to some embodiments of the present disclosure;
FIG. 5B shows a plurality of location pairs within a region;
FIG. 6 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure;
FIG. 7 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure;
FIG. 8 is flowchart illustrating an exemplary process for determining historical walking trajectories according to some embodiments of the present disclosure; and
FIG. 9 is flowchart illustrating an exemplary process for determining one or more  links that permit vehicles parking according to some embodiments of the present disclosure.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant disclosure. However, it should be apparent to those skilled in the art that the present disclosure may be practiced without such details. In other instances, well-known methods, procedures, systems, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present disclosure. 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 to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise, ” “comprises, ” and/or “comprising, ” “include, ” “includes, ” and/or “including, ” when used in this specification, specify the presence of stated features, integers, steps, 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, ” “engine, ” “unit, ” “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.
Generally, the word “module, ” “unit, ” or “block, ” as used herein, refers to logic  embodied in hardware or firmware, or to a collection of software instructions. A module, a unit, 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 other 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 from themselves, and/or may be invoked in response to detected events or interrupts. Software modules/units/blocks configured for execution on computing devices 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 a firmware, such as an erasable 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 of 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 be applicable to a system, an engine, or a portion thereof.
It will be understood that when a unit, engine, module or block is referred to as being “on, ” “connected to, ” or “coupled to, ” another unit, engine, module, or block, it may be directly on, connected or coupled to, or communicate with the other unit, engine, 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 operation and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawings, all of which form a part of this disclosure. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments in the present disclosure. It is to be expressly understood, the operations of the flowchart 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.
Embodiments of the present disclosure may be applied to different transportation systems including but not limited to land transportation, sea transportation, air transportation, space transportation, or the like, or any combination thereof. A vehicle of the transportation systems may include a rickshaw, travel tool, taxi, chauffeured car, hitch, bus, rail transportation (e.g., a train, a bullet train, high-speed rail, and subway) , ship, airplane, spaceship, hot-air balloon, driverless vehicle, or the like, or any combination thereof. The transportation system may also include any transportation system that applies management and/or distribution, for example, a system for sending and/or receiving an express.
The application scenarios of different embodiments of the present disclosure may include but not limited to one or more webpages, browser plugins and/or extensions, client  terminals, custom systems, intracompany analysis systems, artificial intelligence robots, or the like, or any combination thereof. It should be understood that application scenarios of the system and method disclosed herein are only some examples or embodiments. Those having ordinary skills in the art, without further creative efforts, may apply these drawings to other application scenarios. For example, other similar server.
The term “passenger, ” “requester, ” “requestor, ” “service requester, ” “service requestor” and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may request or order a service. Also, the term “driver, ” “provider, ” “service provider, ” and “supplier” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may provide a service or facilitate the providing of the service. The term “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. For example, the user may be a requester, a passenger, a driver, an operator, or the like, or any combination thereof. In the present disclosure, “requester” and “requester terminal” may be used interchangeably, and “provider” and “provider terminal” may be used interchangeably.
The term “request, ” “service, ” “service request, ” and “order” in the present disclosure are used interchangeably to refer to a request that may be initiated by a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, a supplier, or the like, or any combination thereof. The service request may be accepted by any one of a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, or a supplier. The service request may be chargeable or free.
An aspect of the present disclosure relates to systems and methods for determining a pick-up location based on an area to which a current location belongs among a plurality of areas. To determine the plurality of areas, the systems and methods may obtain a map include a plurality of links. The systems and methods may determine a  plurality of regions based on the plurality of links on the map. For a region of the plurality of regions, the systems and methods may obtain a plurality of historical location pairs associated with a plurality of historical orders corresponding to the region. Each historical location pair may include a first historical anchor point and a first historical pick-up location. The systems and methods may determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm, and divide the region into a plurality of area based on the plurality of clusters. Each area may have first historical anchor points and correspond to first historical pick-up locations associated with the first historical anchor points.
FIG. 1 is a block diagram illustrating an exemplary O2O service system 100 according to some embodiments of the present disclosure. For example, the O2O service system 100 may be an online transportation service platform for transportation services. The O2O service system 100 may include a server 110, a network 120, a requester terminal 130, a provider terminal 140, a vehicle 150, a storage device 160, and a navigation device 170.
The O2O service system 100 may provide a plurality of services. Exemplary service may include a taxi-hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, and a shuttle service. In some embodiments, the O2O service may be any online service, such as booking a meal, shopping, or the like, or any combination thereof. In some embodiments, the O2O service system 100 may be configured to determine a pick-up location based on a current location of a user.
In some embodiments, the server 110 may be a single server or a server group. The server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in the requester terminal 130, the provider terminal 140, and/or the storage device 160 via the network 120.  As another example, the server 110 may be directly connected to the requester terminal 130, the provider terminal 140, and/or the storage device 160 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
In some embodiments, the server 110 may include a processing device 112. The processing device 112 may process information and/or data relating to lane broadcast to perform one or more functions described in the present disclosure. In some embodiments, the processing device 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing device 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 of the O2O service system 100 (e.g., the server 110, the requester terminal 130, the provider terminal 140, the vehicle 150, the storage device 160, and the navigation device 170) may transmit information and/or data to other component (s) of the O2O service system 100 via the network 120. For example, the server 110 may receive a service request from the requester terminal 130 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 120 may include  a cable network, a wireline network, an optical fiber network, a 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 (PSTN) , a Bluetooth network, a ZigBee network, a near field communication (NFC) network, or the like, or any combination thereof. In some embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, through which one or more components of the O2O service system 100 may be connected to the network 120 to exchange data and/or information.
In some embodiments, a passenger may be an owner of the requester terminal 130. In some embodiments, the owner of the requester terminal 130 may be someone other than the passenger. For example, an owner A of the requester terminal 130 may use the requester terminal 130 to transmit a service request for a passenger B or receive a service confirmation and/or information or instructions from the server 110. In some embodiments, a service provider may be a user of the provider terminal 140. In some embodiments, the user of the provider terminal 140 may be someone other than the service provider. For example, a user C of the provider terminal 140 may use the provider terminal 140 to receive a service request for a service provider D, and/or information or instructions from the server 110. In some embodiments, "passenger" and "passenger terminal" may be used interchangeably, and "service provider" and "provider terminal" may be used interchangeably. In some embodiments, the provider terminal may be associated with one or more service providers (e.g., a night-shift service provider, or a day-shift service provider) .
In some embodiments, the requester terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a vehicle 130-4, or the like, or any combination thereof. In some embodiments, the mobile device 130-1  may include a smart home device, a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof. In some embodiments, the wearable device may include a smart bracelet, a smart footgear, smart glasses, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may include a virtual reality helmet, virtual reality glasses, a virtual reality patch, an augmented reality helmet, augmented reality glasses, 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 Google TM Glasses, an Oculus Rift, a HoloLens, a Gear VR, etc. In some embodiments, the built-in device in the vehicle 130-4 may include an onboard computer, an onboard television, etc. In some embodiments, the requester terminal 130 may be a device with positioning technology for locating the position of the passenger and/or the requester terminal 130.
The provider terminal 140 may include a plurality of provider terminals 140-1, 140-2, …, 140-n. In some embodiments, the provider terminal 140 may be similar to, or the same device as the requester terminal 130. In some embodiments, the provider terminal 140 may be customized to be able to implement the O2O service system 100. In some embodiments, the provider terminal 140 may be a device with positioning technology for locating the service provider, the provider terminal 140, and/or a vehicle 150 associated with the provider terminal 140. In some embodiments, the requester terminal 130 and/or the provider terminal 140 may communicate with another positioning device to determine  the position of the passenger, the requester terminal 130, the service provider, and/or the provider terminal 140. In some embodiments, the requester terminal 130 and/or the provider terminal 140 may periodically transmit the positioning information to the server 110. In some embodiments, the provider terminal 140 may also periodically transmit the availability status to the server 110. The availability status may indicate whether a vehicle 150 associated with the provider terminal 140 is available to carry a passenger. For example, the requester terminal 130 and/or the provider terminal 140 may transmit the positioning information and the availability status to the server 110 every thirty minutes. As another example, the requester terminal 130 and/or the provider terminal 140 may transmit the positioning information and the availability status to the server 110 each time the user logs into the mobile application associated with the O2O transportation service 100.
In some embodiments, the provider terminal 140 may correspond to one or more vehicles 150. The vehicles 150 may carry the passenger and travel to the destination. The vehicles 150 may include a plurality of vehicles 150-1, 150-2, …, 150-n. One vehicle may correspond to one type of services (e.g., a taxi-hailing service, a chauffeur service, an express car service, a carpool service, a bus service, a driver hire service, or a shuttle service) . In some embodiments, the vehicles may include a car, an aircraft, a space shuttle, an electric car, a hybrid vehicle, or the like, or any combination thereof.
The storage device 160 may store data and/or instructions. In some embodiments, the storage device 160 may store data obtained from the requester terminal 130 and/or the provider terminal 140. In some embodiments, the storage device 160 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure. In some embodiments, the storage device 160 may include a mass storage, removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Exemplary mass storage may include a magnetic disk, an optical disk, 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 device 160 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the storage device 160 may be connected to the network 120 to communicate with one or more components of the O2O service system 100 (e.g., the server 110, the requester terminal 130, or the provider terminal 140) . One or more components of the O2O service system 100 may access the data or instructions stored in the storage device 160 via the network 120. In some embodiments, the storage device 160 may be directly connected to or communicate with one or more components of the O2O service system 100 (e.g., the server 110, the requester terminal 130, the provider terminal 140) . In some embodiments, the storage device 160 may be part of the server 110.
The navigation device 170 may determine information associated with an object, for example, one or more of the requester terminal 130, the provider terminal 140, the vehicle 150, etc. In some embodiments, the navigation device 170 may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a BeiDou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS) , etc. The information may include a  location, an elevation, a velocity, or an acceleration of the object, or a current time. The navigation device 170 may include one or more satellites, for example, a satellite 170-1, a satellite 170-2, and a satellite 170-3. The satellites 170-1 through 170-3 may determine the information mentioned above independently or jointly. The satellite navigation device 170 may transmit the information mentioned above to the network 120, the requester terminal 130, the provider terminal 140, or the vehicle 150 via wireless connections.
In some embodiments, one or more components of the O2O service system 100 (e.g., the server 110, the requester terminal 130, the provider terminal 140) may have permissions to access the storage device 160. In some embodiments, one or more components of the O2O service system 100 may read and/or modify information related to the passenger, service provider, and/or the public when one or more conditions are met. For example, the server 110 may read and/or modify one or more passengers’ information after a service is completed. As another example, the server 110 may read and/or modify one or more service providers’ information after a service is completed.
One of ordinary skill in the art would understand that when an element (or component) of the O2O service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when a requester terminal 130 transmits out a service request to the server 110, a processor of the requester terminal 130 may generate an electrical signal encoding the request. The processor of the requester terminal 130 may then transmit the electrical signal to an output port. If the requester terminal 130 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which further may transmit the electrical signal to an input port of the server 110. If the requester terminal 130 communicates with the server 110 via a wireless network, the output port of the requester terminal 130 may be one or more antennas, which convert the electrical signal to electromagnetic signal. Similarly, a provider terminal 130 may receive an instruction and/or service request from the server 110 via electrical signal or electromagnet signals. Within an electronic device,  such as the requester terminal 130, the provider terminal 140, and/or the server 110, when a processor thereof processes an instruction, transmits out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium, it may transmit out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
FIG. 2 illustrates a schematic diagram of an exemplary computing device according to some embodiments of the present disclosure. The computing device may be a computer, such as the server 110 in FIG. 1 and/or a computer with specific functions, configured to implement any particular system according to some embodiments of the present disclosure. Computing device 200 may be configured to implement any components that perform one or more functions disclosed in the present disclosure. For example, the server 110 may be implemented in hardware devices, software programs, firmware, or any combination thereof of a computer like computing device 200. For brevity, FIG. 2 depicts only one computing device. In some embodiments, the functions of the computing device, providing function that recommending pick-up locations may require, may be implemented by a group of similar platforms in a distributed mode to disperse the processing load of the system.
Computing device 200 may include a communication terminal 250 that may connect with a network that may implement the data communication. Computing device 200 may also include a processor 220 that is configured to execute instructions and includes one or more processors. The schematic computer platform may include an internal communication bus 210, different types of program storage units and data storage units (e.g., a hard disk 270, a read-only memory (ROM) 230, a random-access memory  (RAM) 240) , various data files applicable to computer processing and/or communication, and some program instructions executed possibly by the processor 220. Computing device 200 may also include an I/O device 260 that may support the input and output of data flows between computing device 200 and other components. Moreover, computing device 200 may receive programs and data via the communication network.
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device on which a terminal may be implemented according to some embodiments of the present disclosure. As illustrated in FIG. 3, the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, a mobile operating system (OS) 370, a storage 390. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
In some embodiments, a mobile operating system 370 (e.g., iOS TM, Android TM, Windows Phone TM, etc. ) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to image processing or other information from the O2O service system 100. User interactions with the information stream may be achieved via the I/O 350 and provided to the database 130, the server 105 and/or other components of the O2O service system 100. In some embodiments, the mobile device 300 may be an exemplary embodiment corresponding to the requester terminal 130 or the provider terminal 140.
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein. A computer with user interface elements may be used to implement a personal computer (PC) or any other type of work station or terminal device. A computer may also act as a system if appropriately  programmed.
FIG. 4 is block diagram illustrating an exemplary processing device according to some embodiments of the present disclosure. As shown in FIG. 4, the processing device 112 may include an obtaining module 402, a region determination module 404, a cluster determination module 406, a region division module 408, an area determination module 410, a pick-up location determination module 412, a recommendation module 414, a walking cost determination module 416, a walking trajectory determination module 418, and a parking point determination module 420. In some embodiments, the modules may be hardware circuits of all or part of the processing device 112. The modules may also be implemented as an application or set of instructions read and executed by the processing device 112. Further, the modules may be any combination of the hardware circuits and the application/instructions. For example, the modules may be the part of the processing device 112 when the processing device 112 is executing the application/set of instructions.
The obtaining module 402 may be configured to obtain information and/or data related to the O2O service system 100. For example, the obtaining module 402 may obtain a map including a plurality of links. The map may store road data relating to an administrative district, a city, a country, or the like. As another example, the obtaining module 402 may obtain a current location of a user via a user terminal (e.g., the requester terminal 130) based on a user’s input or a positioning technology. The current location of the user may refer to a location that the user places an order, which may also be referred to as an anchor point.
In some embodiments, the obtaining module 402 may obtain information and/or data related to a plurality of historical orders. For example, the obtaining module 402 may obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to a region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location. As another  example, the obtaining module 402 may obtain a plurality of second historical orders including a plurality of second historical anchor points and a plurality of second historical pick-up locations. As a further example, the obtaining module 402 may obtain driving trajectory data associated with a plurality of third historical pick-up locations. The driving trajectory data may include longitude-latitude coordinates of historical parking points and corresponding historical parking times.
In some embodiments, the processing device 112 may obtain the information and/or data from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source via the network 120.
The region determination module 404 may be configured to determine a plurality of regions based on the plurality of links obtained by the obtaining module 402. The plurality of regions may include a community, a park, a shopping mall, a hospital, a school, a library, or the like, or any combination thereof. Each region may only include internal roads on which a vehicle cannot park. Specifically, the region determination module 404 may identify and/or extract multiple links from the map. The region determination module 404 may generate a binary image by processing the multiple links. In the binary image, the roads (which are represented by links) may be displayed as white and other portions may be displayed as black. Then the region determination module 404 may map the binary image to the map to determine the plurality of regions.
The cluster determination module 406 may be configured to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm. Details regarding the determination of the plurality of clusters may be found elsewhere in the present disclosure (e.g., operation 507 of process 500 and the descriptions thereof) .
The region division module 408 may be configured to divide the region into a plurality of areas based on the plurality of clusters. Each area of the plurality of areas  may have first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points. In some embodiments, for each of the plurality of clusters, the region division module 408 may determine at least part of the first historical anchor points corresponding to the cluster, and determine an area of the plurality of areas corresponding to the cluster by processing at least part of the first historical anchor points using a minimum convex hull algorithm.
The area determination module 410 may be configured to determine an area to which the current location belongs among a plurality of areas. In some embodiments, the area determination module 410 may determine the area based on coordinates or a name of the current location.
The pick-up location determination module 412 may be configured to determine one or more first historical pick-up locations corresponding to the area as candidate pick-up locations. Details regarding the determination of the candidate pick-up locations may be found elsewhere in the present disclosure (e.g., operation 605 of process 600 and the descriptions thereof) .
The recommendation module 414 may be configured to recommend at least one of the candidate pick-up locations to the user via a user terminal (e.g., the requester terminal 130) . In some embodiments, the recommendation module 414 may rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users, and/or walking costs of the candidate pick-up locations. The recommendation module 414 may recommend at least one of the ranked candidate pick-up locations to the user. In some embodiments, the recommendation module 414 may display the recommended pick-up location (s) on the user terminal (e.g., the requester terminal 130) . The recommendation module 414 may display a route from the recommended pick-up location (s) or a target pick-up location to the destination.
The walking cost determination module 416 may be configured to determine a walking cost from the current location to a candidate pick-up location based on historical  walking trajectories. For example, the walking cost determination module 416 may determine a walking trajectory between the current location and the candidate pick-up location based on the historical walking trajectories. The walking cost determination module 416 may determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof. Details regarding the determination of the walking cost may be found elsewhere in the present disclosure (e.g., operation 705 of process 700 and the descriptions thereof) .
The walking trajectory determination module 418 may be configured to determine the historical walking trajectories. In some embodiments, the walking trajectory determination module 418 may determine a plurality of candidate historical walking trajectories between second historical anchor points and corresponding second historical pick-up locations. A candidate historical walking trajectory may refer to a walking trajectory of a historical user from a historical anchor point to the corresponding historical pick-up location. In some embodiments, two or more candidate historical walking trajectories may have similar or overlapping historical walking trajectories. Thus, the walking trajectory determination module 418 may perform a second clustering algorithm on the plurality of candidate historical walking trajectories to determine the historical walking trajectories.
The parking point determination module 420 may be configured to determine one or more historical parking points corresponding to a same link (e.g., a portion of the same link) as the third historical pick-up location. In some embodiments, the parking point determination module 420 may determine a number of the one or more historical parking points whose parking times is greater than or equal to a time threshold. In response to a determination that the number of the one or more historical parking points is greater than or equal to a quantity threshold, the parking point determination module 420 may determine the link (or the portion of the link) corresponding to the third historical pick-up location as a link (or a portion of a link) that permits vehicles parking. Details regarding  the determination of the link that permits vehicles parking may be found elsewhere in the present disclosure (e.g., operations 90-909 of process 900 and the descriptions thereof) .
It should be noted that the above descriptions of the processing device 112 are merely 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, 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, any one of the modules may be divided into two or more units. For example, the obtaining module 402 may be divided into two units. The first unit may be configured to obtain the current location of the user. The second unit may be configured to obtain information and/or data related to historical orders. In some embodiments, the processing device 112 may include one or more additional modules. For example, the processing device 112 may include a storage module (not shown) . The storage module may be configured to store data generated during any process performed by any component of the processing device 112.
FIG. 5A is a flowchart illustrating an exemplary process for dividing a region into a plurality of areas according to some embodiments of the present disclosure. For illustration purposes only, the processing device 112 may be described as a subject to perform the process 500. However, one of ordinary skill in the art would understand that the process 500 may also be performed by other entities. For example, one of ordinary skill in the art would understand that at least a portion of the process 500 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3. In some embodiments, one or more operations of process 500 may be implemented on the O2O service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in the process 500 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device  112 in the server 110, or the processor 220 of the processing device 112 in the server 110) . In some embodiments, the instructions may be transmitted in a form of electronic current or electrical signals.
In 501, the processing device 112 (e.g., the obtaining module 402) may obtain a map including a plurality of links. In some embodiments, the map may also be referred to as “road network” . The map may store road data relating to an administrative district (e.g., Chaoyang District) , a city (e.g., Beijing City) , a country (e.g., China) , or the like. In some embodiments, the map may be updated periodically. The updating period may be a default value or an empirical value related to the O2O service system 100, such as 10 days, half a month, a month, half a year, or the like. In some embodiments, the updating period may be preset by a user. The “link” may be an element of road or street in the map, and each link may have a link ID. In some embodiments, a road may correspond to one or more links. For example, Changan Street may be mapped to five links on the map by, e.g., manually annotated mapping. The five links may be connected one by one via its nodes to constitute Changan Street. In some embodiments, the processing device 112 may obtain the map from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) . Alternatively or additionally, the processing device 112 may obtain the map from an external data source (e.g., Google TM Maps, Tencent TM Maps, Amap TM, Baidu TM Maps, or the like) via the network 120.
In 503, the processing device 112 (e.g., the region determination module 404) may determine a plurality of regions based on the plurality of links on the map. The processing device 112 may identify and/or extract the plurality of links from the map. For example, the processing device 112 may determine whether a road is an internal road (e.g., road within a community, road within a park, a pedestrian street) . In response to a determination that the road is an internal road, the processing device 112 may not extract the one or more links corresponding to the road. Alternatively, in response to a  determination that the road is not an internal road, the processing device 112 may extract the one or more links corresponding to the road. Thus, the processing device 112 may extract multiple links from the map. The processing device 112 may generate a binary image by processing the multiple links. The binary image may be divided into multiple portions by the extracted links. For example, the processing device 112 may assign pixels that correspond to the extracted links with a first value (e.g., 255) , and assign pixels that do not correspond to the extracted links with a second value (e.g., 0) . In some embodiments, in the binary image, the roads (e.g., represented by links) may be displayed as white and other portions may be displayed as black. There may be no latitude and longitude information on the binary image. Thus, the processing device 112 may map the binary image to the map to determine the plurality of regions. In the map, each of the plurality of regions may be surrounded by one or more links. The plurality of regions may include a community, a park, a shopping mall, a hospital, a school, a library, or the like, or any combination thereof. Each region may only include internal roads on which a vehicle cannot park.
In 505, for a region of the plurality of regions, the processing device 112 (e.g., the obtaining module 402) may obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region. Each of the plurality of historical location pairs may include a first historical anchor point and a first historical pick-up location. The first historical anchor point may refer to a position that a user placed an order. The first historical pick-up location may refer to a position at which a driver picked up the user. The first historical anchor point and/or the first historical pick-up location may be represented by coordinates (e.g., latitude-longitude coordinates) , or by a name of a building or a name of a street, etc. The processing device 112 may obtain first historical orders whose anchor points are within the region and obtain the historical location pairs based on the obtained first historical orders. For example, FIG. 5B shows a plurality of location pairs (indicated by line segment with arrow 554) within a region 550. The  processing device 112 may obtain the plurality of historical location pairs from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source (e.g., database) via the network 120.
In 507, the processing device 112 (e.g., the cluster determination module 406) may determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm. The clustering algorithm may include a density-based algorithm (e.g., a DBSCAN algorithm, a density peaks algorithm) , a partitioning algorithm (aK-means clustering algorithm, a K-medoids algorithm) , a hierarchical algorithm (e.g., a birch algorithm, a cure algorithm, a chameleon algorithm) , a grid-based algorithm (e.g., a sting algorithm, a clique algorithm, a wave-cluster algorithm) , a model-based algorithm, or the like. Taking the DBSCAN algorithm as an example, before performing the DBSCAN algorithm, one or more parameters (e.g., a radius ∈, a number of points (minPoints) within the radium ∈) may be set. The plurality of historical location pairs may be determined as a sample set. The processing device 112 may select one historical location pair in the sample set. The processing device 112 may determine a number of point-pairs (i.e., historical location pairs) within a distance of the radius ∈ from the historical location pair. If the number of point-pairs is greater than or equal to the minPoints, the processing device 112 may determine the point-pairs (or the historical location pairs) as a first cluster. If the number of point-pairs is less than the minPoints, the processing device 112 may determine the historical location pair as a noise point-pair and remove the historical location pair from the plurality of historical location pairs. The processing device 112 may then select a new historical location pair that not belongs to the first cluster and repeat the above process to determine a second cluster. Thus, the processing device 112 may determine a plurality of clusters by repeating the clustering process. Each of the plurality of clusters may include one or more historical location pairs. In some embodiments, if the clustering result is not good (e.g., the plurality of clusters are decentralized, the number of  the clusters are few) , the processing device 112 may adjust the one or more parameters and perform the clustering process again.
In 509, the processing device 112 (e.g., the region division module 408) may divide the region into a plurality of areas based on the plurality of clusters. Each area of the plurality of areas may have first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points. In some embodiments, for each of the plurality of clusters, the processing device 112 may determine at least part of the first historical anchor points corresponding to the cluster, and determine an area of the plurality of areas corresponding to the cluster by processing at least part of the first historical anchor points using a minimum convex hull algorithm. Merely by way of example, the processing device 112 may identify a convex hull (i.e., a perimeter of the historical anchor points in the cluster) , and determine the smallest convex polygon (e.g., a polygon without reentrant vertices) that encloses all the first historical anchor points in the cluster. The processing device 112 may designate the smallest convex polygon as an area. For example, as shown in FIG. 5B, the region 550 is divided into a plurality of areas 552, each of which is a convex polygon. Each area 552 may correspond to one or more historical location pairs whose first historical anchor points are within the area.
In some embodiments of the present disclosure, a region may be divided into a plurality of areas. Each area may correspond to one or more first historical anchor points and first historical pick-up locations, which may facilitate the classification management of historical orders including first historical anchor points and first historical pick-up locations. When a user locates in the area, the processing device 112 may recommend one or more pick-up locations to the user based on the historical pick-up locations corresponding to the area, other than based on all historical pick-up locations corresponding to the region.
It should be noted that the above description regarding the process 500 is merely 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, 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 processing device 112 may determine whether a first historical pick-up location locates at a link that permit vehicles parking. If the first historical pick-up location does not locate at the link that permit vehicles parking, the processing device 112 may remove the first historical pick-up location.
FIG. 6 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure. For illustration purposes only, the processing device 112 may be described as a subject to perform the process 600. However, one of ordinary skill in the art would understand that the process 600 may also be performed by other entities. For example, one of ordinary skill in the art would understand that at least a portion of the process 600 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3. In some embodiments, one or more operations of process 600 may be implemented on the O2O service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in the process 600 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) . In some embodiments, the instructions may be transmitted in a form of electronic current or electrical signals.
In 601, the processing device 112 (e.g., the obtaining module 402) may obtain a current location of a user via a user terminal (e.g., the requester terminal 130) . The current location of the user may refer to a location that the user places an order (or a location when the user opens the O2O service system 100) . The current location may also be referred to as an anchor point. In some embodiments, the current location may  be a location within a region (e.g., a community, a park, a shopping mall) . The current location may be represented by coordinates (e.g., latitude-longitude coordinates) , or by a name of a building or a name of a street, etc. In some embodiments, the current location may be automatically determined by a GPS installed in the user terminal or the navigation system 170. Alternatively, the current location may be inputted, by the user, via a character input device (e.g., a keyboard, a touchscreen) of the user terminal or a microphone of the user terminal, or detected by a positioning technology.
In 603, the processing device 112 (e.g., the area determination module 410) may determine an area to which the current location belongs among a plurality of areas. In some embodiments, the processing device 112 may determine the area to which the current location belongs based on the coordinates or the name of the current location. The plurality of areas may be determined according to process 500 and the descriptions thereof are not repeated here.
In 605, the processing device 112 (e.g., the pick-up location determination module 412) may determine one or more first historical pick-up locations corresponding to the area as candidate pick-up locations. As described in connection with operation 509 of the process 500, each area may have first historical anchor points and correspond to first historical pick-up locations associated with the first historical anchor points. The processing device 112 may determine the one or more first historical pick-up locations based on the area. Merely by way of example, as shown in FIG. 5B, the current location 562 may belong to an area. The area may correspond to two first historical pick-up locations 564. The two first historical pick-up locations 564 may be determined as two candidate pick-up locations.
In 607, the processing device 112 (e.g., the recommendation module 414) may recommend at least one of the candidate pick-up locations to the user via the user terminal (e.g., the requester terminal 130) , and display the at least one of the candidate pick-up locations on the user terminal (e.g., the requester terminal 130) . In some embodiments, if  there is only one candidate pick-up location, the processing device 112 may recommend the candidate pick-up location to the user. In some embodiments, if there are more than one candidate pick-up location, the processing device 112 may rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users. The processing device 112 may then recommend the ranked candidate pick-up locations to the user. In some embodiments, the processing device 112 may recommend all the ranked candidate pick-up locations to the user, and the ranked candidate pick-up locations may be displayed on the user terminal. For example, if there are three ranked candidate pick-up locations, the processing device 112 may recommend the three ranked candidate pick-up locations to the user. Alternatively, the processing device 112 may recommend a portion of the ranked candidate pick-up locations to the user by default, or allow a user to choose a certain portion of ranked candidate pick-up locations for display. For example, if there are more than three ranked candidate pick-up locations, the processing device 112 may recommend the top three of the ranked candidate pick-up locations to the user, which may be displayed on the user terminal. The user may also choose to display only the top two of the ranked candidate pick-up locations. It can be appreciated that displaying only the top candidate pick-up locations can save space on a display interface, since a terminal device, such a cell phone, may have a small display. In some embodiments, the processing device 112 may rank the candidate pick-up locations based on walking costs of the candidate pick-up locations, and recommend at least one of the ranked candidate pick-up locations to the user. Details regarding the determination of the walking cost of each candidate pick-up location may be found elsewhere in the present disclosure (e.g., operation 705 of process 700 and the relevant descriptions thereof) . The processing device 112 may display the recommended pick-up location (s) on the user terminal (e.g., the requester terminal 130) . The pick-up location (s) may be displayed in the form of text (e.g., “the recommended pick-up location is East Gate of park A” ) or in the form of map (e.g., the recommended pick-up location is  displayed as an anchor point on the map) . The user may select a target pick-up location from the displayed pick-up locations. A route from the target pick-up location to the destination may be generated and displayed on the user terminal (e.g., the requester terminal 130) .
In some embodiments of the present disclosure, the processing device 112 may determine historical pick-up locations corresponding to the area as the candidate pick-up locations, instead of historical pick-up locations corresponding to a region (being quite larger than the area and having more historical pick-up locations than the area) as the candidate pick-up locations, which may easily recommend suitable pick-up locations for the user. Since the area includes less historical pick-up locations than the region, when the processing device 112 ranks the candidate pick-up locations corresponding to the area, the computing load may be reduced and the computing efficiency may be improved.
It should be noted that the above description regarding the process 600 is merely 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, 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, if the current location of the user does not belong to one of the plurality of areas (e.g., the current location is remote) , the processing device 112 may guide the user to the nearest area among the plurality of areas, and then recommend one or more pick-up locations for the user according to the process 600.
FIG. 7 is a flowchart illustrating an exemplary process for determining a pick-up location according to some embodiments of the present disclosure. For illustration purposes only, the processing device 112 may be described as a subject to perform the process 700. However, one of ordinary skill in the art would understand that the process 700 may also be performed by other entities. For example, one of ordinary skill in the art would understand that at least a portion of the process 700 may be implemented on the  computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3. In some embodiments, one or more operations of process 700 may be implemented on the O2O service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in the process 700 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) . In some embodiments, the instructions may be transmitted in a form of electronic current or electrical signals.
In 701, the processing device 112 (e.g., the obtaining module 402) may obtain a current location of a user via a user terminal (e.g., the requester terminal 130) . The current location of the user may refer to a location that the user places an order (or a location when the user opens the O2O service system 100) . The current location may also be referred to as an anchor point. Operation 701 of the process 700 may be performed in a similar manner with operation 601 of the process 600, and the descriptions thereof are not repeated herein.
In 703, the processing device 112 (e.g., the pick-up location determination module 412) may determine a plurality of candidate pick-up locations based on the current location of the user. In some embodiments, the processing device 112 may determine a circular region based on the current location (being as a center) and a distance threshold (being as a radius) . In some embodiments, the distance threshold may be a default value or an empirical value related to the O2O service system 100. In some embodiments, the distance threshold may be set according to a default setting of the O2O service system 100, or may be preset or adjusted by a user. The processing device 112 may select second historical pick-up locations within the circular region among a plurality of second historical orders, and designate the selected historical pick-up locations as the candidate pick-up locations. In some embodiments, the processing device 112 may determine the  plurality of candidate pick-up locations according to  operations  603 and 605 of the process 600, and the descriptions thereof are not repeated herein. It should be noted that the above descriptions of the determination of the plurality of candidate pick-up locations are merely for illustration purposes, and are not intended to limit the scope of the present disclosure. In some embodiments, the plurality of candidate pick-up locations may be determined according to other ways.
In 705, for each of the plurality of candidate pick-up locations, the processing device112 (e.g., the walking cost determination module 416) may determine a walking cost from the current location to the candidate pick-up location based on historical walking trajectories. In some embodiments, the processing device 112 may determine a walking trajectory between the current location and the candidate pick-up location based on historical walking trajectories. The historical walking trajectories may be determined based on a plurality of second historical anchor points and second historical pick-up locations. Details regarding the determination of the historical walking trajectories may be found elsewhere in the present disclosure (e.g., process 800 and the descriptions thereof) . In some embodiments, if the current location is not located on the historical walking trajectories (e.g., the current location is within a building) , the processing device 112 may determine a point on one of the historical walking trajectories closest to the current location as a corrected current location. The processing device 112 may determine the walking trajectory between the corrected current location and the candidate pick-up location based on the historical walking trajectories. The processing device 112 may determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof. The plurality of parameters may include a length of the walking trajectory, a number of intersections on the walking trajectory, a number of traffic lights on the walking trajectory, a number of overpasses on the walking trajectory, a number of times that the walking trajectory is selected by historical users, or the like, or any combination thereof. In some embodiments, whether the candidate pick-up location  locates at a link that permit vehicles parking may be determined as one of the plurality of parameters. If the candidate pick-up location does not locate at the link, the parameter may be given a negative value (e.g., -1) . Alternatively, if the candidate pick-up location locates at the link, the parameter may be given a positive value (e.g., 1) .
In some embodiments, before determining the walking cost from the current location to the candidate pick-up location, the processing device 112 may determine whether the candidate pick-up location locates at one of a plurality of links that permit vehicles parking. If the candidate pick-up location locates at one of the plurality of links (e.g., a portion of the link) that permit vehicles parking, the processing device 112 may perform operation 705 and determine the walking cost from the current location to the candidate pick-up location. Alternatively, if the candidate pick-up location does not locate at any one of the plurality of links that permit vehicles parking, the processing device 112 may remove the candidate pick-up location from the plurality of candidate pick-up locations. The plurality of links that permit vehicles parking may be determined according to process 900 illustrated in FIG. 9, and described in detail below.
In 707, the processing device 112 (e.g., the pick-up location determination module 412) may determine a candidate pick-up location with a lowest walking cost as a target pick-up location. The processing device 112 may compare the walking costs of the plurality of candidate pick-up locations, and determine the candidate pick-up location with the lowest walking cost as the target pick-up location.
In 709, the processing device 112 (e.g., the recommendation module 414) may recommend the target pick-up location to the user via the user terminal (e.g., the requester terminal 130) . In some embodiments, the processing device 112 may display the target pick-up location on the user terminal (e.g., the requester terminal 130) . The target pick-up location may be displayed in the form of text (e.g., “the target pick-up location is East Gate of park A” ) or in the form of map (e.g., the target pick-up location is displayed as an anchor point on the map) . A route from the target pick-up location to the destination may  be generated and displayed on the user terminal (e.g., the requester terminal 130) .
In some embodiments of the present disclosure, when a plurality of candidate pick-up locations are determined, the processing device 112 may determine a walking cost between the current location and each candidate pick-up location, and determine a candidate pick-up location with the lowest walking cost as the target pick-up location, which may facilitate the user to reach the pick-up location quickly and conveniently, and improve the experience of the user and driver.
It should be noted that the above description regarding the process 700 is merely 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, 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, if the current location is remote (e.g., a mountain area) , the processing device 112 may guide the user to a relatively prosperous region and then determine a target pick-up location for the user according to the process 700. Alternatively, if the current location is remote, the processing device 112 may determine a greater distance threshold than that in the prosperous region, and determine candidate pick-up locations based on the current location and the greater distance threshold.
FIG. 8 is flowchart illustrating an exemplary process for determining historical walking trajectories according to some embodiments of the present disclosure. For illustration purposes only, the processing device 112 may be described as a subject to perform the process 800. However, one of ordinary skill in the art would understand that the process 800 may also be performed by other entities. For example, one of ordinary skill in the art would understand that at least a portion of the process 800 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3. In some embodiments, one or more operations of process 800 may be implemented on the O2O service system 100 as illustrated in FIG. 1. In some  embodiments, one or more operations in the process 800 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) . In some embodiments, the instructions may be transmitted in a form of electronic current or electrical signals.
In 801, the processing device 112 (e.g., the obtaining module 402) may obtain a plurality of second historical orders. The plurality of second historical orders may include a plurality of second historical anchor points and a plurality of second historical pick-up locations. The second historical anchor point may refer to a position that a user placed an order. The second historical pick-up location may refer to a position at which a driver picked up the user. The second historical anchor point and/or the second historical pick-up location may be represented by coordinates (e.g., latitude-longitude coordinates) , or by a name of a building or a name of a street, etc. The processing device 112 may obtain the plurality of second historical orders from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150) , or from an external source (e.g., database) via the network 120.
In 803, the processing device 112 (e.g., the walking trajectory determination module 418) may determine a plurality of candidate historical walking trajectories between the second historical anchor points and corresponding second historical pick-up locations. A candidate historical walking trajectory may refer to a walking trajectory of a historical user from a historical anchor point to the corresponding historical pick-up location. Merely by way of example, when a historical user placed an order, the historical user may need to walk from the historical anchor point to the historical pick-up location. A plurality of trajectory points between the historical anchor point and the historical pick-up location, which also referred to as a candidate walking trajectory, may be recorded by a GPS installed in the user terminal or the navigation system 170.
In 805, the processing device 112 (e.g., the walking trajectory determination module 418) may determine the historical walking trajectories by performing a second clustering algorithm on the plurality of candidate historical walking trajectories. The second clustering algorithm may include a density-based algorithm (e.g., a DBSCAN algorithm, a density peaks algorithm) , a partitioning algorithm (aK-means clustering algorithm, a K-medoids algorithm) , a hierarchical algorithm (e.g., a birch algorithm, a cure algorithm, a chameleon algorithm) , a grid-based algorithm (e.g., a sting algorithm, a clique algorithm, a wave-cluster algorithm) , a model-based algorithm, a TRACLUS clustering algorithm, or the like. In should be noted that the second clustering algorithm may be the same as or different from the first clustering algorithm described in operation 507 of the process 500. In some embodiments, the second clustering algorithm may include a TRACLUS clustering algorithm.
In some embodiments, two or more candidate historical walking trajectories may have similar or overlapping historical walking trajectories. The similar or overlapping historical walking trajectories may be merged into one historical walking trajectory using the second clustering algorithm. For example, if five candidate historical walking trajectories correspond to the same historical anchor point and the same historical pick-up location, the processing device 112 may merge the five candidate historical walking trajectories into one historical walking trajectory. As another example, if a portion of a first candidate historical walking trajectory overlaps with a portion of a second candidate historical walking trajectory, the processing device 112 may merge the overlapped portion of the two candidate walking trajectories into one historical walking trajectory. In some embodiments, one or more abnormal walking trajectory points may be removed from the plurality of historical walking trajectories.
FIG. 9 is flowchart illustrating an exemplary process for determining one or more links that permit vehicles parking according to some embodiments of the present disclosure. For illustration purposes only, the processing device 112 may be described as  a subject to perform the process 900. However, one of ordinary skill in the art would understand that the process 900 may also be performed by other entities. For example, one of ordinary skill in the art would understand that at least a portion of the process 900 may be implemented on the computing device 200 as illustrated in FIG. 2 or the mobile device 300 as illustrated in FIG. 3. In some embodiments, one or more operations of process 900 may be implemented on the O2O service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in the process 900 may be stored in the storage device 150 and/or the storage (e.g., the ROM 230, the RAM 240, etc. ) as a form of instructions, and invoked and/or executed by the server 110 (e.g., the processing device 112 in the server 110, or the processor 220 of the processing device 112 in the server 110) . In some embodiments, the instructions may be transmitted in a form of electronic current or electrical signals.
In 901, the processing device 112 (e.g., the obtaining module 402) may obtain driving trajectory data associated with a plurality of third historical pick-up locations. The plurality of third historical pick-up locations may be generated by performing a third clustering algorithm on all historical pick-up locations in third historical orders. In some embodiments, there may be multiple historical pick-up locations on a portion of a link (e.g., within a distance range such as 10m, 20m) . The processing device 112 may perform the third clustering algorithm on the multiple historical pick-up locations to determine a target third historical pick-up location. Thus, by performing the third clustering algorithm on all the historical pick-up locations in the third historical orders, the processing device 112 may remove some of the historical pick-up locations and determine the plurality of third historical pick-up locations. The third clustering algorithm may include a density-based algorithm (e.g., a DBSCAN algorithm, a density peaks algorithm) , a partitioning algorithm (a K-means clustering algorithm, a K-medoids algorithm) , a hierarchical algorithm (e.g., a birch algorithm, a cure algorithm, a chameleon algorithm) , a grid-based algorithm (e.g., a sting algorithm, a clique algorithm, a wave-cluster algorithm) , a model-based algorithm, or  the like. In some embodiments, the third clustering algorithm may be the same as the first clustering algorithm described in operation 507 of the process 500 or the second clustering algorithm described in operation 805 of the process 800. Alternatively, the third clustering algorithm may be different from the first clustering algorithm described in operation 507 of the process 500 or the second clustering algorithm described in operation 805 of the process 800. In some embodiments, the third clustering algorithm may include a density peaks algorithm, a DBSCAN algorithm, or the like.
The driving trajectory data may include longitude-latitude coordinates of historical parking points and corresponding historical parking times. A historical parking point may refer to a point that a historical driver parked vehicle in order to wait for a historical passenger (or a historical user) . In some embodiments, a third historical pick-up location may correspond to one or more historical parking points in one or more third historical orders. In some embodiments, the historical parking point (s) may coincide with the corresponding third historical pick-up location. Alternatively, the historical parking point (s) may have a certain distance (e.g., 5 meters, 10 meters) from the third historical pick-up location. The processing device 112 may obtain the driving trajectory data from one or more components of the O2O service system 100 (e.g., the requester terminal 130, the provider terminal 140, the storage device 150, the navigation system 170) , or from an external source (e.g., a car DVR) via the network 120.
In 903, the processing device 112 (e.g., the obtaining module 402) may perform data cleaning on the obtained driving trajectory data. The data cleaning may be used to remove duplicate data, supplement missing data, or delete erroneous data, or the like. In some embodiments, the processing device 112 may perform data cleaning on the obtained driving trajectory data to remove abnormal driving trajectories and/or discontinuous driving trajectories. An abnormal driving trajectory may refer to that a direction of the driving trajectory is antidromic, the driving trajectory is not on a road (e.g., some points of the driving trajectory being within a community or shopping mall) , or the like. A discontinuous  driving trajectory may refer to a portion of the driving trajectory may not be recorded by a car DVR or a GPS device. For example, multiple vehicles may drive on a road, the processing device 112 may obtain multiple driving trajectories associated with the multiple vehicles. If the driving trajectory of a vehicle is different from that of the other vehicles, the processing device 112 may remove the driving trajectory of the vehicle. As another example, if the driving trajectory of a vehicle is discontinuous, the processing device 112 may remove the discontinuous driving trajectory of the vehicle.
In 905, for one of the plurality of third historical pick-up locations, the processing device 112 (e.g., the parking point determination module 420) may determine one or more historical parking points corresponding to a same link (e.g., a portion of the same link) as the third historical pick-up location. The third historical pick-up location may correspond to a link. The processing device 112 may determine a portion of the link based on the third historical pick-up location. For example, the processing device 112 may determine a portion of the link within 10 meters from the third historical pick-up location. The processing device 112 may determine one or more historical parking points corresponding to the portion of the link based on longitude-latitude coordinates of historical parking points in the driving trajectory data.
In 907, the processing device 112 (e.g., the parking point determination module 420) may determine a number of the one or more historical parking points whose parking time is greater than or equal to a time threshold. In some embodiments, the time threshold may be a default value or an empirical value related to the O2O service system 100. In some embodiments, the time threshold may be set according to a default setting of the O2O service system 100, or may be preset or adjusted by a user. Merely by way of example, the time threshold may be 5 minutes, 8 minutes, 10 minutes, 15 minutes, or the like. The processing device 112 may determine whether the parking time of a historical parking point is greater than or equal to the time threshold. In response to a determination that the historical parking point is less than the time threshold, the  processing device 112 may remove the historical parking point. Alternatively, in response to a determination that the historical parking point is greater than the time threshold, the processing device 112 may remain the historical parking point. Then the processing device 112 may determine a number of the remaining historical parking points.
In 909, the processing device 112 (e.g., the parking point determination module 420) may determine the link corresponding to the third historical pick-up location as a link that permits vehicles parking if the number of the one or more historical parking points is greater than or equal to a quantity threshold. The quantity threshold may be a default value or an empirical value related to the O2O service system 100. In some embodiments, the quantity threshold may be set according to a default setting of the O2O service system 100, or may be preset or adjusted by a user. Merely by way of example, the quantity threshold may be 50, 100, 120, 150, or the like. The processing device 112 may determine whether the number of the historical parking point (s) is greater than or equal to the quantity threshold. In response to a determination that the number of the historical parking point (s) is greater than or equal to the quantity threshold, the processing device 112 may determine the portion of the link corresponding to the third historical pick-up location as a portion of the link that permits vehicles parking. In some embodiments, if all portion of the link corresponding to one or more third historical pick-up locations permit vehicles parking, the processing device 112 may determine the link as a link that permits vehicles parking.
It should be noted that the above description regarding the process 900 is merely 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, 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 driving trajectory data may be updated periodically, e.g., every day, once a week. Alternatively, the driving trajectory data may be updated if a map  including a plurality of links is updated.
In some embodiments, the processing device 112 (e.g., the obtaining module 402) may further obtain parking violation information corresponding to the driving trajectory data. The parking violation information may refer to punishment information due to improper parking, such as warn, fine, accumulate points, or the like. When a driver queries his parking violation information, the processing device 112 may correlate the parking violation information with the driving trajectory data of the driver, and determine whether the historical parking point in the driving trajectory data permits vehicles parking. In some embodiments, the processing device 112 (e.g., the obtaining module 402) may further obtain no-parking links from a map. The no-parking links may include permanent no-parking links, temporary no-parking links (e.g., no-parking between 8: 00-18: 00, no parking during holiday such as National Day, Labour Day) , or the like. The processing device 112 may determine a plurality of links that permit vehicles parking based on the parking violation information, the driving trajectory data, and/or the no-parking links. In some embodiments, the processing device 112 may classify the plurality of third historical pick-up locations into four categories using a classification model based on the parking violation information, the driving trajectory data, and/or the no-parking links, that is, “permit vehicles parking, ” “prohibit vehicles parking, ” “permit vehicles parking but are difficult to reach, ” “permit vehicles parking and are easily to reach. ” In some embodiments, the classification model may include a support vector machine (SVM) model, a Bayer model, a decision tree model, a Softmax model, or the like, or any combination thereof.
The classification model may be generated by training a preliminary model using a plurality of training samples. The preliminary model may include a plurality of preliminary parameters. The plurality of parameters may correspond to parking violation information, driving trajectory data (e.g., parking time) , parking links, no-parking links, or the like. The plurality of preliminary parameters may be adjusted and/or updated during the training process of the preliminary model. In some embodiments, a sample pick-up location of  each training sample may be inputted into the preliminary model to determine an actual output. The processing device 112 may compare the actual output with a desired output (e.g., a sample category of the sample pick-up location) to determine a loss function. The loss function may measure a difference between the actual output and the desired output. During the training of the preliminary model, the processing device 112 may adjust the plurality of preliminary parameters to minimize the loss function. The minimization of the loss function may be iterative. The iteration to minimize the loss function may terminate when a termination condition is satisfied. An exemplary termination condition is that an updated loss function with the updated parameters obtained in an iteration is less than a predetermined threshold. Thus, a trained classification model may be determined according to the adjusted parameters. The processing device 112 may input the plurality of third historical pick-up locations into the trained classification model, and a category of each of the plurality of third historical pick-up locations may be outputted from the trained classification model. The processing device 112 may then determine the plurality of links that permit vehicles parking based on the categories of the third historical pick-up locations.
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested by this disclosure, and are within the spirit and scope of the exemplary embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present  disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment, ” “one embodiment, ” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
Further, it will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable 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 1703, Perl, COBOL 1702, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a software as a service (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations, therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software-only solution-e.g., an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure  aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.

Claims (31)

  1. A system, comprising:
    at least one storage device including a set of instructions;
    at least one processor in communication with the at least one storage device, wherein when executing the set of instructions, the at least one processor is configured to cause the system to:
    obtain a map including a plurality of links;
    determine a plurality of regions based on the plurality of links on the map;
    for a region of the plurality of regions,
    obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region, each of the plurality of historical location pairs including a first historical anchor point and a first historical pick-up location;
    determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and
    divide the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  2. The system of claim 1, wherein to determine the plurality of regions based on the plurality of links on a map, the at least one processor is further configured to cause the system to:
    identify the plurality of links from the map;
    generate a binary image by processing the plurality of links; and
    map the binary image to the map to determine the plurality of regions.
  3. The system of claim 1, wherein the clustering algorithm includes at least one of a DBSCAN algorithm or a density peaks algorithm.
  4. The system of claim 1, wherein to divide the region into the plurality of areas based on the plurality of clusters, the at least one processor is further configured to cause the system to:
    for each of the plurality of clusters, determine at least part of the first historical anchor points corresponding to the cluster; and
    determine an area of the plurality of areas corresponding to the cluster by processing the at least part of the first historical anchor points using a minimum convex hull algorithm.
  5. The system of any one of claims 1-4, wherein the at least one processor is further configured to cause the system to:
    obtain a current location of a user via a user terminal;
    determine an area to which the current location belongs among the plurality of areas;
    determine at least part of the first historical pick-up locations corresponding to the area as candidate pick-up locations; and
    recommend at least one of the candidate pick-up locations to the user via the user terminal.
  6. The system of claim 5, wherein to recommend the at least one of the candidate pick-up locations to the user, the at least one processor is further configured to cause the system to:
    rank the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users; and
    recommend the ranked candidate pick-up locations to the user.
  7. The system of claim 5, wherein to recommend the at least one of the candidate pick-up locations to the user, the at least one processor is further configured to cause the system to:
    for each of the candidate pick-up locations, determine a walking cost from the current location to the candidate pick-up location based on historical walking trajectories;
    determine, among the candidate pick-up locations, a candidate pick-up location with a lowest walking cost as a target pick-up location; and
    recommend the target pick-up location to the user via the user terminal.
  8. The system of claim 7, wherein to determine the walking cost from the current location to the pick-up location based on historical walking trajectories, the at least one processor is further configured to cause the system to:
    determine a walking trajectory between the current location and the candidate pick-up location based on historical walking trajectories; and
    determine the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof.
  9. The system of claim 8, wherein the plurality of parameters includes at least one of a length of the walking trajectory, a number of intersections on the walking trajectory, a number of traffic lights on the walking trajectory, a number of overpasses on the walking trajectory, or a number of times that the walking trajectory is selected by historical users.
  10. The system of any one of claims 7-9, wherein the historical walking trajectories are determined according to a process including:
    obtaining a plurality of second historical orders including second historical anchor points and second historical pick-up locations;
    determining a plurality of candidate historical walking trajectories between the second historical anchor points and corresponding second historical pick-up locations; and
    determining the historical walking trajectories by performing a second clustering algorithm on the plurality of candidate historical walking trajectories.
  11. The system of claim 7, wherein before determining the walking cost from the current location to the candidate pick-up location, the at least one processor is configured to cause the system to:
    determine whether the candidate pick-up location locates at one of a plurality of links that permit vehicles parking; and
    if the candidate pick-up location does not locate at any one of the plurality of links, remove the candidate pick-up location from the candidate pick-up locations.
  12. The system of claim 11, wherein the plurality of links that permit vehicles parking are determined according to a process including:
    obtaining driving trajectory data associated with a plurality of third historical pick-up locations, the driving trajectory data including longitude-latitude coordinates of historical parking points and corresponding historical parking times, each of the plurality of third historical pick-up locations corresponding to a link;
    for one of the plurality of third historical pick-up locations,
    determining one or more historical parking points corresponding to a same link as the third historical pick-up location;
    determining a number of the one or more historical parking points whose parking time is greater than or equal to a time threshold; and
    if the number of the one or more historical parking points is greater than or equal to a quantity threshold, determine the link corresponding to the third historical pick-up location as a link that permits vehicles parking.
  13. The system of claim 12, wherein after obtaining the driving trajectory data associated with a plurality of second historical pick-up locations, the at least one processor is further configured to cause the system to:
    perform data cleaning on the obtained driving trajectory data.
  14. The system of claim 12 or claim 13, wherein the at least one processor is further configured to cause the system to:
    obtain parking violation information corresponding to the driving trajectory data; and
    determine the plurality of links that permit vehicles parking based on the parking violation information and the driving trajectory data.
  15. The system of claim 12, wherein the at least one processor is further configured to cause the system to update the driving trajectory data periodically.
  16. The system of claim 12, wherein the plurality of third historical pick-up locations are generated by performing a third clustering algorithm on all historical pick-up locations in third historical orders.
  17. A method implemented on a computing device having at least one processor, at least one computer-readable storage medium, and a communication platform connected to a network, comprising:
    obtaining a map including a plurality of links;
    determining a plurality of regions based on the plurality of links on the map;
    for a region of the plurality of regions,
    obtaining a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region, each of the plurality of historical location pairs including a first historical anchor point and a first historical pick-up location;
    determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and
    dividing the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  18. The method of claim 17, wherein the determining the plurality of regions based on the plurality of links on a map comprises:
    identifying the plurality of links from the map;
    generating a binary image by processing the plurality of links; and
    mapping the binary image to the map to determine the plurality of regions.
  19. The method of claim 17, wherein the clustering algorithm includes at least one of a DBSCAN algorithm or a density peaks algorithm.
  20. The method of claim 17, wherein the dividing the region into the plurality of areas based on the plurality of clusters comprises:
    for each of the plurality of clusters, determining at least part of the first historical anchor points corresponding to the cluster; and
    determining an area of the plurality of areas corresponding to the cluster by processing the at least part of the first historical anchor points using a minimum convex hull algorithm.
  21. The method of any one of claims 17-20, further comprising:
    obtaining a current location of a user via a user terminal;
    determining an area to which the current location belongs among the plurality of areas;
    determining at least part of the first historical pick-up locations corresponding to the area as candidate pick-up locations; and
    recommending at least one of the candidate pick-up locations to the user via the user terminal.
  22. The method of claim 21, wherein the recommending the at least one of the candidate pick-up locations to the user comprises:
    ranking the candidate pick-up locations based on a number of times that each of the candidate pick-up locations was selected by historical users; and
    recommending the ranked candidate pick-up locations to the user.
  23. The method of claim 21, wherein the recommending the at least one of the candidate pick-up locations to the user comprises:
    for each of the candidate pick-up locations, determining a walking cost from the current location to the candidate pick-up location based on historical walking trajectories;
    determining, among the candidate pick-up locations, a candidate pick-up location with a lowest walking cost as a target pick-up location; and
    recommending the target pick-up location to the user via the user terminal.
  24. The method of claim 23, wherein the determining the walking cost from the current location to the pick-up location based on historical walking trajectories comprises:
    determining a walking trajectory between the current location and the candidate pick-up location based on historical walking trajectories; and
    determining the walking cost for the walking trajectory based on a plurality of parameters and corresponding weight thereof.
  25. The method of claim 24, wherein the plurality of parameters includes at least one of a length of the walking trajectory, a number of intersections on the walking trajectory, a number of traffic lights on the walking trajectory, a number of overpasses on the walking trajectory, or a number of times that the walking trajectory is selected by historical users.
  26. The method of any one of claims 23-25, wherein the historical walking trajectories are determined according to a process including:
    obtaining a plurality of second historical orders including second historical anchor points and second historical pick-up locations;
    determining a plurality of candidate historical walking trajectories between the second historical anchor points and corresponding second historical pick-up locations; and
    determining the historical walking trajectories by performing a second clustering algorithm on the plurality of candidate historical walking trajectories.
  27. The method of claim 23, wherein before determining the walking cost from the current location to the candidate pick-up location, the method comprises:
    determining whether the candidate pick-up location locates at one of a plurality of links that permit vehicles parking; and
    if the candidate pick-up location does not locate at any one of the plurality of links, removing the candidate pick-up location from the candidate pick-up locations.
  28. The method of claim 27, wherein the plurality of links that permit vehicles parking are determined according to a process including:
    obtaining driving trajectory data associated with a plurality of third historical pick-up locations, the driving trajectory data including longitude-latitude coordinates of historical parking points and corresponding historical parking times, each of the plurality of third historical pick-up locations corresponding to a link;
    for one of the plurality of third historical pick-up locations,
    determining one or more historical parking points corresponding to a same link as the third historical pick-up location;
    determining a number of the one or more historical parking points whose parking time is greater than or equal to a time threshold; and
    if the number of the one or more historical parking points is greater than or equal to a quantity threshold, determine the link corresponding to the third historical pick-up location as a link that permits vehicles parking.
  29. The method of claim 28, wherein after obtaining the driving trajectory data associated with a plurality of second historical pick-up locations, the method comprises:
    performing data cleaning on the obtained driving trajectory data.
  30. A non-transitory computer-readable storage medium, comprising at least one set of instructions, wherein when executed by at least one processor of a computing device, the at least one set of instructions directs the at least one processor to perform acts of:
    obtaining a map including a plurality of links;
    determining a plurality of regions based on the plurality of links on the map;
    for a region of the plurality of regions,
    obtaining a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region, each of the plurality of historical location pairs including a first historical anchor point and a first historical pick-up location;
    determining a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and
    dividing the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
  31. A system, comprising:
    an obtaining module configured to obtain a map including a plurality of links;
    a region determination module configured to determine a plurality of regions based on the plurality of links on the map;
    for a region of the plurality of regions,
    the obtaining module configured to obtain a plurality of historical location pairs associated with a plurality of first historical orders corresponding to the region, each of the plurality of historical location pairs including a first historical anchor point and a first historical pick-up location;
    cluster determination module configured to determine a plurality of clusters by processing the plurality of historical location pairs using a clustering algorithm; and
    a region division module configured to divide the region into a plurality of areas based on the plurality of clusters, each area of the plurality of areas having first historical anchor points and corresponding to first historical pick-up locations associated with the first historical anchor points.
PCT/CN2019/108033 2019-09-26 2019-09-26 Systems and methods for determining a pick-up location Ceased WO2021056303A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/108033 WO2021056303A1 (en) 2019-09-26 2019-09-26 Systems and methods for determining a pick-up location

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/108033 WO2021056303A1 (en) 2019-09-26 2019-09-26 Systems and methods for determining a pick-up location

Publications (1)

Publication Number Publication Date
WO2021056303A1 true WO2021056303A1 (en) 2021-04-01

Family

ID=75165518

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/108033 Ceased WO2021056303A1 (en) 2019-09-26 2019-09-26 Systems and methods for determining a pick-up location

Country Status (1)

Country Link
WO (1) WO2021056303A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139139A (en) * 2021-04-28 2021-07-20 北京百度网讯科技有限公司 Method, apparatus, electronic device, and medium for determining boarding point
CN113408986A (en) * 2021-06-22 2021-09-17 北京京东振世信息技术有限公司 Full link track determination method, device, equipment and storage medium
CN113537828A (en) * 2021-08-04 2021-10-22 拉扎斯网络科技(上海)有限公司 Virtual site mining method and device
CN114943305A (en) * 2022-06-24 2022-08-26 深圳依时货拉拉科技有限公司 Data processing method, data processing device, storage medium and server
CN115835163A (en) * 2023-02-08 2023-03-21 四川省商投信息技术有限责任公司 Method and system for rapid networking of portable interphone
CN115839712A (en) * 2022-12-13 2023-03-24 Oppo(重庆)智能科技有限公司 Map construction method, map construction device, map construction equipment and computer readable storage medium
CN115936817A (en) * 2022-12-30 2023-04-07 北京白驹易行科技有限公司 Passenger order starting point aggregation method and device and computer equipment
CN118315004A (en) * 2024-06-07 2024-07-09 成都信息工程大学 A clinical pathway mining method based on three-dimensional sub-trajectory clustering algorithm
CN118828409A (en) * 2024-06-25 2024-10-22 中移(上海)信息通信科技有限公司 Positioning method, device, electronic device and computer program product
CN119958591A (en) * 2025-01-24 2025-05-09 滴图(北京)科技有限公司 Method, device, storage medium and program product for determining road capacity

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281499A (en) * 2011-08-04 2011-12-14 北京理工大学 Multi-user group motion characteristic-based traffic tool positioning system and method
US20150377639A1 (en) * 2014-06-30 2015-12-31 Strol, LLC Generating Travel Routes for Increased Visual Interest
CN106663307A (en) * 2014-08-04 2017-05-10 优步技术公司 Determining and providing predetermined location data points to service providers
CN107155168A (en) * 2016-03-04 2017-09-12 滴滴(中国)科技有限公司 Illustrate bootstrap technique, apparatus and system
CN108733715A (en) * 2017-04-21 2018-11-02 北京嘀嘀无限科技发展有限公司 The determination method and device of building entrance
CN109256029A (en) * 2018-09-12 2019-01-22 广州小鹏汽车科技有限公司 A kind of automatic setting method and device of site attribute
CN110222786A (en) * 2019-06-14 2019-09-10 深圳大学 Dynamic share-car method and system based on trip information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281499A (en) * 2011-08-04 2011-12-14 北京理工大学 Multi-user group motion characteristic-based traffic tool positioning system and method
US20150377639A1 (en) * 2014-06-30 2015-12-31 Strol, LLC Generating Travel Routes for Increased Visual Interest
CN106663307A (en) * 2014-08-04 2017-05-10 优步技术公司 Determining and providing predetermined location data points to service providers
CN107155168A (en) * 2016-03-04 2017-09-12 滴滴(中国)科技有限公司 Illustrate bootstrap technique, apparatus and system
CN108733715A (en) * 2017-04-21 2018-11-02 北京嘀嘀无限科技发展有限公司 The determination method and device of building entrance
CN109256029A (en) * 2018-09-12 2019-01-22 广州小鹏汽车科技有限公司 A kind of automatic setting method and device of site attribute
CN110222786A (en) * 2019-06-14 2019-09-10 深圳大学 Dynamic share-car method and system based on trip information

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139139B (en) * 2021-04-28 2023-09-22 北京百度网讯科技有限公司 Methods, devices, electronic equipment and media for determining boarding points
CN113139139A (en) * 2021-04-28 2021-07-20 北京百度网讯科技有限公司 Method, apparatus, electronic device, and medium for determining boarding point
CN113408986A (en) * 2021-06-22 2021-09-17 北京京东振世信息技术有限公司 Full link track determination method, device, equipment and storage medium
CN113408986B (en) * 2021-06-22 2024-04-09 北京京东振世信息技术有限公司 Full-link track determining method, device, equipment and storage medium
CN113537828A (en) * 2021-08-04 2021-10-22 拉扎斯网络科技(上海)有限公司 Virtual site mining method and device
CN113537828B (en) * 2021-08-04 2022-11-29 拉扎斯网络科技(上海)有限公司 Virtual site mining method and device
CN114943305A (en) * 2022-06-24 2022-08-26 深圳依时货拉拉科技有限公司 Data processing method, data processing device, storage medium and server
CN115839712A (en) * 2022-12-13 2023-03-24 Oppo(重庆)智能科技有限公司 Map construction method, map construction device, map construction equipment and computer readable storage medium
CN115936817A (en) * 2022-12-30 2023-04-07 北京白驹易行科技有限公司 Passenger order starting point aggregation method and device and computer equipment
CN115936817B (en) * 2022-12-30 2024-02-20 北京白驹易行科技有限公司 Passenger order starting point aggregation method and device and computer equipment
CN115835163A (en) * 2023-02-08 2023-03-21 四川省商投信息技术有限责任公司 Method and system for rapid networking of portable interphone
CN118315004A (en) * 2024-06-07 2024-07-09 成都信息工程大学 A clinical pathway mining method based on three-dimensional sub-trajectory clustering algorithm
CN118828409A (en) * 2024-06-25 2024-10-22 中移(上海)信息通信科技有限公司 Positioning method, device, electronic device and computer program product
CN119958591A (en) * 2025-01-24 2025-05-09 滴图(北京)科技有限公司 Method, device, storage medium and program product for determining road capacity

Similar Documents

Publication Publication Date Title
WO2021056303A1 (en) Systems and methods for determining a pick-up location
US20200042885A1 (en) Systems and methods for determining an estimated time of arrival
CN109478275B (en) System and method for allocating service requests
US10712170B2 (en) Systems and methods for determining a point of interest
AU2019246799B2 (en) Systems and methods for distributing a service request for an on-demand service
CN110689719B (en) System and method for identifying closed road sections
US20210140774A1 (en) Systems and methods for recommending pick-up locations
WO2018214361A1 (en) Systems and methods for improvement of index prediction and model building
WO2017181932A1 (en) Systems and methods for recommending an estimated time of arrival
AU2017411198B2 (en) Systems and methods for route planning
CN112868036A (en) System and method for location recommendation
CN111881713A (en) Method, system, device and storage medium for identifying parking place
US20210327015A1 (en) Systems and methods for carpooling
CN110832478B (en) System and method for on-demand services
WO2019174620A1 (en) Devices and methods for processing service request
WO2017107932A1 (en) Systems and methods for updating sequence of services
US20220214185A1 (en) Systems and methods for recommendation and display of point of interest
CN111279386B (en) System and method for new road determination
WO2020019237A1 (en) Systems and methods for dispatching service providers
WO2020243963A1 (en) Systems and methods for determining recommended information of service request
US20210070300A1 (en) Systems and methods for lane broadcast
US10990500B2 (en) Systems and methods for user analysis
WO2021022487A1 (en) Systems and methods for determining an estimated time of arrival
WO2021114279A1 (en) Systems and methods for determining restriction attribute of area of interset
WO2021077300A1 (en) Systems and methods for improving an online to offline platform

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

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

Country of ref document: EP

Kind code of ref document: A1