WO2014035920A2 - Transport using geolocation - Google Patents

Transport using geolocation Download PDF

Info

Publication number
WO2014035920A2
WO2014035920A2 PCT/US2013/056716 US2013056716W WO2014035920A2 WO 2014035920 A2 WO2014035920 A2 WO 2014035920A2 US 2013056716 W US2013056716 W US 2013056716W WO 2014035920 A2 WO2014035920 A2 WO 2014035920A2
Authority
WO
WIPO (PCT)
Prior art keywords
geocoordinates
address
destination site
server
user
Prior art date
Application number
PCT/US2013/056716
Other languages
French (fr)
Other versions
WO2014035920A3 (en
Inventor
Steven S. ARMATO
Original Assignee
Amazon Technologies, Inc.
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
Priority claimed from US13/599,989 external-priority patent/US8793068B2/en
Priority claimed from US13/599,898 external-priority patent/US8788199B2/en
Application filed by Amazon Technologies, Inc. filed Critical Amazon Technologies, Inc.
Priority to CN201380045006.4A priority Critical patent/CN104620255B/en
Priority to JP2015528717A priority patent/JP5872115B2/en
Priority to CA2880266A priority patent/CA2880266C/en
Priority to EP13832332.4A priority patent/EP2867824A4/en
Publication of WO2014035920A2 publication Critical patent/WO2014035920A2/en
Publication of WO2014035920A3 publication Critical patent/WO2014035920A3/en
Priority to IN846DEN2015 priority patent/IN2015DN00846A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/362Destination input or retrieval received from an external device or application, e.g. PDA, mobile phone or calendar application

Definitions

  • FIG. 1 illustrates a deliverer attempting to locate a destination site
  • FIG. 2 illustrates a system for determining the geocoordinates of a destination site
  • FIG. 3 illustrates the server of FIG. 2 in conjunction with a table used for determining approximate geocoordinates for an address
  • FIG. 4 illustrates the system of FIG. 2 determining geocoordinates based on previous problems locating a destination site
  • FIG. 5 is a flowchart illustrating a method of determining the geocoordinates of a destination site
  • FIG. 6 is a flowchart illustrating a method of determining approximate geocoordinates for an address
  • FIG. 7 illustrates an example computer system 700 that may be used for one or more portions of the example system 100 of FIG. 1 , according to certain embodiments of the present disclosure.
  • This disclosure describes a system for gathering and sending geocoordinates. These geocoordinates can be used by couriers and delivery people to help locate addresses to which deliveries are made. When a deliverer is having problems locating the address, the deliverer can send the address to the system. The system can then check to see if a recipient of the delivery is at the address. If so, the recipient can use a device such as a cell phone to send the system the geocoordinates for the address. The system can then send the geocoordinates to the deliverer to help the deliverer locate the address.
  • a device such as a cell phone
  • the recipient for the delivery is not at the address.
  • the system may approximate the geocoordinates of the address based on the stored geocoordinates of nearby locations.
  • the system may examine its stored locations and determine which locations are near the address. Then, the system can use the geocoordinates of these nearby locations to approximate the geocoordinates of the address. The system can then communicate the approximate geocoordinates to the deliverer to help the deliverer locate the address.
  • FIG. 1 illustrates a transporter 1 16 attempting to locate a destination site 1 18.
  • Transporter 1 16 may wish to deliver a package to destination site 1 18.
  • transporter 1 16 may be a deliverer attempting to deliver a package that a user at destination site 1 18 ordered from a vendor on the internet.
  • transporter 1 16 may be a supplier attempting to deliver a shipment to a store.
  • transporter 1 16 may be a taxi-driver taking people to and from destination sites 1 18; a courier picking up or dropping off packages, materials, messages, mail, or any other types of objects to or from destination sites 1 18.
  • transporter 1 16 may use a truck, car, bicycle, motorcycle, or any other suitable mode of transportation to perform its functions.
  • Transporter 1 16 may experience difficulty locating destination site 1 18. For example, destination site 1 18 may be in a rural area where a particular address may be difficult to find. As another example, transporter 1 16 may have been provided an incomplete or inaccurate address for destination site 1 18. Destination site 1 18 may be an apartment but the apartment number has been left off the address or a portion of the address may simply be incorrect. If transporter 1 16 cannot locate destination site 1 18, transporter 1 16 may have no choice but to return the package back to the sender. Usually the sender then absorbs the cost of any redelivery to destination site 1 18.
  • a system may provide transporter 1 16 with the geocoordinates 210 of destination site 1 18.
  • the geocoordinates 210 may include the longitude, latitude, and/or altitude of destination site 1 18, the Global Positioning Satellite (GPS) coordinates of destination site 1 18, or any other information providing the geolocation of destination site 1 18.
  • the geocoordinates 210 may include the geographic location of a wireless network (e.g., wi-fi network, wireless router, mobile hotspot, cellular tower, and the like) associated with destination site 118.
  • the geocoordinates 210 may include the geographic location of any location recognition device associated with the delivery site 1 18. By using these geocoordinates 210, transporter 1 16 may locate destination site 1 18 even if the address for destination site 1 18 provided to transporter 1 16 is inaccurate or incomplete.
  • a user located at destination site 1 18 may provide transporter 1 16 with the geocoordinates of the destination site 118 when transporter 1 16 is experiencing problems locating the destination site 1 18.
  • Transporter 1 16 may indicate to a system that transporter 1 16 is experiencing problems locating destination site 1 18.
  • the system may then contact a user associated with destination site 1 18 to confirm whether the user is located at destination site 1 18. If the user is located at destination site 1 18, the system may request the user's geocoordinates.
  • the user may provide the geocoordinates by using a device such as a cell phone or laptop. For example, an application on the user's cell phone may serve to provide the geocoordinates of the user and/or the cell phone to the system.
  • the system may then provide transporter 1 16 with the geocoordinates so that transporter 1 16 can locate destination site 1 18.
  • FIG. 2 illustrates a system 200 for determining the geocoordinates 210 of a destination site 1 18.
  • system 200 may include destination site 1 18, transporter 1 16, network 120, and server 1 10.
  • Destination site 1 18 may be associated with a user 1 12 and the device 1 14.
  • Device 1 14 and transporter 1 16 may communicate with server 1 10 through network 120.
  • server 1 10 may receive a message 230 from transporter 1 16 indicating a problem locating destination site 1 18. Server 1 10 may then request and receive geocoordinates 210 of destination site 1 18 from user 1 12 and/or device 1 14. Server 1 10 may then provide these geocoordinates 210 to transporter 1 16 in order to help transporter 1 16 locate destination site 1 18.
  • System 200 may include transporter 1 16.
  • Transporter 1 16 may be a courier, a vendor, a taxi driver, a pickup service, or any other appropriate entity that makes deliveries of people or things to destination site 1 18, picks up people or things from destination site 1 18, or otherwise travels to destination site 118 for any reason.
  • transporter 1 16 may experience problems locating destination site 1 18.
  • destination site 1 18 may be in a rural area where a particular address may be difficult to find.
  • transporter 1 16 may have been provided an incomplete or inaccurate address for destination site 1 18.
  • Destination site 1 18 may be an apartment but the apartment number has been left off the address or a portion of the address may be incorrect.
  • transporter 1 16 may have no choice but to return the package back to the sender. Usually the sender then absorbs the cost of any redelivery to destination site 1 1 8. To avoid returning the delivery to the sender, transporter 1 16 may use system 200 to help locate destination site 1 18.
  • transporter 1 16 may be associated with a cell phone, laptop, global positioning system device, or any other suitable electronic device capable of electronically communicating with server 1 10.
  • the electronic device may be referred to as a transporter device, a delivery device, a courier device, or the like.
  • the electronic device may include a processor running a transporter application 150 for use in system 200.
  • the transporter application 150 may be referred to as a delivery application, a courier application, or the like.
  • Transporter 1 16 may use this transporter application 150 running on the electronic device to communicate a message 230 to server 1 10 indicating that transporter 1 16 is experiencing problems locating destination site 1 18.
  • the message 230 may include information about the delivery, such as the address of the destination site 1 18, an order number associated with the deliver ⁇ ', the name of user 1 12, the location of transporter 1 16, and any other information that server 1 10 may use to determine how to direct transporter 1 16 to the destination site 1 1 8.
  • Server 1 10 may communicate geocoordinates 210 of destination site 1 1 8 back to the transporter application 150 running on the electronic device or another device of transporter 1 16. Transporter 1 16 may then use the geocoordinates 210 to locate destination site 1 18 and make a delivery, in particular embodiments, server 1 10 may also send transporter 1 16 a route to follow to reach destination site 1 18 or the electronic device of transporter 116 may be configured to determine the route based on the geocoordinates 210 sent by server 1 10. Transporter 1 16 can follow this route to reach destination site 1 18.
  • System 200 may include destination site 1 1 8 associated with user 1 12 and device 1 14.
  • Destination site 1 18 may be a house, an apartment, a store, or any other appropriate location capable of receiving deliveries.
  • Device 1 14 may be associated with user 1 12.
  • user 1 12 may own device 1 14 or be in possession of device 1 14.
  • device 1 14 may receive from server 1 10 a request 245 to confirm whether user 1 12 and/or device 114 are located at destination site 1 18.
  • Device 1 14 may receive this request 245 because transporter 1 16 has indicated to server 1 10 that transporter 1 16 is experiencing problems locating destination site 1 18.
  • Device 1 14 may send a message 240 to server 1 10 confirming that user 1 12 and device 1 14 are at the destination site.
  • User 1 12 may initiate the sending of message 240 by using device 1 14 to respond to the server's 1 10 request.
  • device 1 14 may receive from server 1 10 a request 245 for the geocoordinates 210 of destination site 1 18. In response to the request 245, device 1 14 may communicate geocoordinates 210 to server 1 10. In particular embodiments, the request 245 to confirm whether user 1 12 and/or device 1 14 are located at deliver site 1 18 and the request 245 for the geocoordinates 210 may be the same request 245. In other embodiments, the requests 245 may be two separate requests 245. In particular embodiments, a user application 190 executing on device 1 14 may serve to gather and to communicate geocoordinates 210 to server 1 10. Because user 1 12 and/or device 1 14 has already confirmed that user 1 12 and device 1 14 are located at destination site 1 18, the geocoordinates of device 1 14 would help transporter 1 16 locate destination site 1 18.
  • user 1 12 may have ordered a product from an Internet vendor.
  • User 1 12 may have indicated to the vendor to deliver the product to destination site 1 18.
  • the vendor may use transporter 1 16 to send a package containing the product to destination site 1 18.
  • transporter 1 16 may experience difficulties locating the destination site 1 18.
  • transporter 1 16 may notify server 1 10 that he is experiencing problems locating destination site 1 18.
  • server 1 10 may ask the user 1 12 whether he is at the destination site 1 18.
  • User 1 12 can confirm that he is at destination site 1 18, and server 1 10 may then request the geocoordinates of the user's 1 12 current location.
  • User 1 12 may then use device 1 14 to provide server 1 10 with the geocoordinates of destination site 118.
  • Device 1 14 may be a personal computer, a workstation, a laptop, a wireless or cellular telephone, an electronic notebook, a personal digital assistant, a tablet, or any other device (wireless, wireline, or otherwise) capable of receiving, processing, storing, and/or communicating information with other components of system 100.
  • Device 1 14 may also include a user interface, such as a display, a touchscreen, a microphone, keypad, or other appropriate terminal equipment usable by user 1 12.
  • Device 1 14 may include a global positioning system receiver that device 1 14 may use to determine or receive the geocoordinates 210 of device 1 14. In particular embodiments, device 1 14 may send geocoordinates 210 to server 1 10.
  • System 200 includes network 120.
  • network 120 may facilitate communication amongst transporter 1 16, device 1 14, server 1 10, and any other appropriate elements of system 200.
  • messages 230 and 240, requests 245, and geocoordinates 210 may be communicated among the components of system 200 using network 120.
  • This disclosure contemplates any suitable network 120 operable to facilitate communication between the components of system 100.
  • Network 120 may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding.
  • Network 120 may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components.
  • PSTN public switched telephone network
  • LAN local area network
  • MAN metropolitan area network
  • WAN wide area network
  • Internet a local, regional, or global communication or computer network
  • wireline or wireless network such as the Internet
  • enterprise intranet such as any other suitable communication link, including combinations thereof, operable to facilitate communication between the components.
  • System 200 includes server 1 10.
  • server 1 10 may be associated with a provider of products or services such as a vendor.
  • the vendor may have initiated the delivery process after user 1 12 made a purchase from the vendor.
  • the vendor may use server 1 10 for additional order fulfillment functions.
  • the vendor may use server 1 10 to track and maintain orders.
  • the vendor may use server 1 10 to help transporter 1 16 locate destination site 1 18.
  • Server 110 includes processor 132 and memory 134.
  • memory 134 may store information associated with system 200.
  • memory 134 may store in a table 250 contact information for users 1 12.
  • Contact information may include email addresses, phone numbers, or any other appropriate information used to contact user 1 12.
  • memory 134 stores location information in table 220 such as addresses and geocoordinates of those addresses.
  • Memory 134 may further store in table 220 previous problems with locating a particular address.
  • memory 134 may store the address and geocoordinates of destination site 1 18 in table 220.
  • Memory 134 may also store whether there have been any problems locating destination site 1 1 8 in table 220. This disclosure contemplates tables 220 and 250 being arranged in any suitable manner within memory 134.
  • Memory 134 may store, either permanently or temporarily, data, operational software, or other information for processor 132.
  • Memory 134 may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information.
  • memory 134 may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices.
  • RAM random access memory
  • ROM read only memory
  • magnetic storage devices magnetic storage devices
  • optical storage devices or any other suitable information storage device or a combination of these devices.
  • memory 134 is illustrated as part of server 1 10, it can be configured in any suitable format, including without limitation in a centralized configuration at server 1 10 or in a distributed format among many devices within system 200.
  • Processor 132 may be communicatively coupled to memory 134.
  • processor 132 may send requests 245 to device 1 14 to confirm that user 1 12 and device 1 14 are located at destination site 1 18. If user 1 12 and/or device 1 14 are at the deliver site 1 18, processor 132 may use the geocoordinates 210 of device 1 14 as the geocoordinates 210 of the destination site 1 18.
  • Processor 132 may send requests 245 for geocoordinates 210.
  • User 1 12 may then respond to the request 245 by using device 114 to send geocoordinates 210 to server 1 10.
  • Processor 132 may receive these geocoordinates 210 from device 1 14.
  • Processor 132 may also receive messages 230 and 240 from elements of system 200. For example, processor 132 may receive message 240 from device 1 14 indicating whether user 1 12 and/or device 1 14 are located at destination site 1 18. After receiving message 240, processor 132 may determine that user 1 12 and/or device 1 14 is at the destination site. As another example, processor 132 may receive message 230 from transporter 1 16 indicating a problem associated with locating destination site 1 18. After receiving message 230, processor 132 may acquire geocoordinates 210 from user 1 12 and send them to transporter 1 16.
  • Processor 132 may control the operation and administration of server 1 10 by processing information received from network 120 and memory 134.
  • Processor 132 may include any hardware and/or software that operates to control and process information.
  • Processor 132 may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding.
  • system 200 may help transporter 1 16 locate destination site 1 18.
  • Transporter 1 16 may be delivering a package to destination site 1 18.
  • Transporter 1 16 may experience difficulties locating destination site 1 18.
  • Transporter 1 16 may communicate a message 230 to server 1 10 indicating that transporter 1 16 is experiencing difficulties locating destination site 1 18.
  • the message 230 may include the address of the destination site 1 18, an order number associated with the delivery, the name of user 1 12, and any other suitable information that server 1 10 may use to determine which destination site 1 18 the transporter 1 16 is attempting to locate.
  • server 1 10 may perform processes that ultimately result in the sending of geocoordinates 210 of destination site 1 18 to transporter 1 16.
  • server 1 10 may determine whether the geocoordinates 210 of destination site 1 18 are stored in memory 134. In particular embodiments, the geocoordinates 210 of destination site 1 18 may be stored in table 220. If server 1 10 determines that the geocoordinates 210 of destination site 1 18 are already stored in table 220, server 1 10 may retrieve the geocoordinates 210 and send them to transporter 1 16. In particular embodiments, server 1 10 may generate and send a message comprising the geocoordinates 210 to transporter 1 16. The message may also include directions or a route that transporter 1 16 can follow to locate destination site 1 18. The message may further indicate to transporter 1 16 if user 1 12 or another person is at destination site 1 18 to receive the delivery. In particular embodiments, a device associated with transporter 1 16 may use the message to determine a route that transporter 1 16 can follow to locate destination site 1 18.
  • server 1 10 may attempt to retrieve the geocoordinates 210 of the destination site 1 18 from user 1 12 and/or device 1 14.
  • Server 1 10 may first contact user 1 12 to confirm whether user 1 12 is at the destination site 1 18.
  • server 110 may use contact information of user 1 12 stored in table 250 to contact user 1 12.
  • server 1 10 may use an email address associated with user 1 12 to send an email to user 1 12.
  • server 1 10 may use a phone number associated with user 1 12 to send a voicemail or text message to user 1 12.
  • the message may inform the user 112 that a delivery from the vendor is en route, but that the transporter 1 16 is having difficulties locating the destination site 1 18.
  • the message may also inform user 1 12 of an order number or a product description associated with the delivery.
  • the message may ask user 1 12 to use device 1 14 to provide geocoordinates 210 if the user 1 12 is at the destination site 1 18. In this manner, user 1 12 may be prompted to provide geocoordinates 210 to server 1 10.
  • server 1 10 sending particular types of messages to user 1 12, this disclosure contemplates server 1 10 sending any appropriate type of message to user 1 12.
  • the message that server 1 10 sends to user 1 12 may request user 1 12 to confirm whether user 1 12 is located at destination site 1 18.
  • server 1 10 may send an email to which user 1 12 may reply with an indication of whether user 1 12 is at destination site 118.
  • server 1 10 may send user 1 12 a text message to which user 1 12 can respond with an indication whether user 1 12 is at destination site 1 18. If device 1 14 is located at the destination site 1 18, then the geocoordinates of device 1 14 may be used as the geocoordinates of destination site 1 18.
  • server 1 10 may receive a message 240 indicating whether user 1 12 is located at destination site 1 18.
  • user 1 12 may know the geocoordinates 210 of destination site 1 18 and may input the geocoordinates 210 into device 1 14. In this manner, user 1 12 may provide server 1 10 the geocoordinates 210 of destination site 1 18 even though user 1 12 and/or device 1 14 are not located at destination site 118.
  • server 1 10 may indicate to transporter 1 16 that geocoordinates 210 associated with destination site 1 18 are not available. For example, server 1 10 may send a message or notification to transporter 1 16 indicating that the geocoordinates 210 of destination site 118 are unavailable. In particular embodiments, server 1 10 may approximate the geocoordinates 210 and send them to transporter 1 16. The process by which server 1 10 determines approximate geocoordinates will be discussed with respect to FIG. 3.
  • server 1 10 may request user 1 12 to provide geocoordinates 210.
  • user 1 12 may use device 1 14 to provide geocoordinates 210 to server 1 10.
  • server 1 10 may send an alert or notification to device 1 14.
  • device 1 14 may present the alert or notification on a display.
  • device 1 14 may vibrate or generate a sound to make user 1 12 aware that device 1 14 has received the alert or notification.
  • the alert or notification may inform user 1 12 that a delivery from the vendor is en route, but the transporter 1 16 is having difficulties locating the destination site 1 18.
  • the alert or notification may inform user 1 12 to use device 1 14 to provide geocoordinates 210 in order to help transporter 1 16 locate the destination site if the user 1 12 is at the destination site 1 18.
  • device 1 14 may execute an application 190 that gathers and sends the geocoordinates 210 of device 1 14 to server 1 10.
  • the application 190 may use the global positioning system features of device 1 14 to gather geocoordinates 210.
  • the application 190 may use a global positioning system receiver of device 1 14 to acquire the geocoordinates of device 1 14.
  • the application 190 may also allow user 1 12 to input the geocoordinates 210 of destination site 1 18.
  • the application 190 may provide a field into which user 1 12 may enter geocoordinates.
  • user 1 12 may provide geocoordinates 210 to server 1 10 through a website or an application running on a device 1 14.
  • server 1 10 may send an email, a text message, or any other suitable type of message to user 1 12 that includes a link to the website.
  • server 1 10 may push a message to user 1 12 through an application running on the user's device 1 14.
  • the message may inform user 1 12 that a delivery is en route and that transporter 1 16 needs geocoordinates of the destination site 1 18 in order to make the delivery.
  • the message may additionally provide details regarding the delivery including an order number and a product description.
  • the message may further inform user 1 12 that geocoordinates 210 may be provided by opening the link on device 1 14, or by performing an appropriate process using the application on device 1 14.
  • User 1 12 may respond to the message by opening the link on device 1 14 or by performing the application process on device 1 14.
  • the link may be to a website that includes an application or provides an interface through which device 1 14 may send geocoordinates 210 of device 1 14 to server 1 10.
  • device 1 14 may open a website that triggers the application 190 on device 1 14 to retrieve and send the geocoordinates 210 of device 1 14 to server 1 10.
  • the application running on device 114 may present an interface through which device 1 14 may send geocoordinates 210 of device 1 14 to server 1 10. Because user 1 12 has already confirmed that user 1 12 and/or device 1 14 are located at the destination site 1 18, the geocoordinates 210 may be used to help locate destination site 1 18.
  • user 1 12 may forward the message to another person's device so that the other person may send geocoordinates 210 to server 1 10 on behalf of user 1 12 using any of the techniques described above (e.g., link to website or application running on device).
  • This embodiment may be useful when user 1 12 is not actually at the destination site 1 18 whose geocoordinates are requested, but the other person is located at the destination site 1 18.
  • user 1 12 may be at work when user 1 12 receives the message to send the geocoordinates of the user's home, where delivery will be made. However, the user's spouse may be at home. Thus, user 1 12 could forward the message to the spouse and have the spouse send the geocoordinates 210 of their home to server 1 10.
  • user 1 12 may forward the message from one device 1 14 to another device 1 14 in order to send geocoordinates 210 to server 1 10.
  • a user 1 12 may receive the message on a laptop that does not have GPS capabilities, and then forward the message to a mobile phone that does have GPS capabilities. The user 1 12 may then use the mobile phone to send the geocoordinates 210 to server 110.
  • server 110 may communicate the geocoordinates 210 to transporter 1 16.
  • server 1 10 may generate and send a message comprising the geocoordinates 210 to a device associated with transporter 1 16.
  • the message may be a text message, email message, page, or any other suitable type of message that the device of transporter 1 16 may receive.
  • the message may inform transporter 1 16 of the geocoordinates 210 of destination site 1 18.
  • the message may also inform transporter 1 16 of a route to follow to locate destination site 1 18.
  • Transporter 1 16 may further use the geocoordinates 210 to locate destination site 1 18 by inputting the geocoordinates 210 into a global positioning system device that can plan a route for transporter 1 16 to follow to reach destination site 1 18.
  • server 1 10 The process performed by server 1 10 described above will be discussed further with respect to FIG. 5.
  • server 1 10 may perform additional functions with regards to geocoordinates 210.
  • server 1 10 may store the geocoordinates 210 for particular addresses in memory 134, such as in table 220. These geocoordinates 210 may have been received from a user 1 12, as described above. Additionally, these geocoordinates may have been received from a transporter 1 16 upon making a successful transport to a particular address. For example, upon making a successful transport to a particular address, the transporter 1 16 may capture the geocoordinates of that address and communicate them to server 110 for storage in table 220 of memory 134.
  • server 1 10 may use geocoordinates 210 to determine the geocoordinates of other addresses.
  • server 1 10 can request geocoordinates 210 based on previous problems associated with locating addresses near a destination site 1 18. These functions will be described further with respect to FIGS. 3, 4, and 6.
  • FIG. 3 illustrates the server 1 10 of FIG. 2 in conjunction with a table 220 used for determining approximate geocoordinates 320 for an address 310.
  • server 110 may receive address 310 and use address 310 and table 220 to determine approximate geocoordinates 320.
  • server 1 10 may use the geocoordinates stored in table 220 to approximate the geocoordinates 320 of a received address 310.
  • some of the columns of table 220 have been expanded to illustrate particular portions of an address. However, these columns may be merged or combined to form any appropriate number of columns.
  • Table 220 may include information pertaining to destination sites 1 18.
  • table 220 includes the address and geocoordinates of destination sites 1 18.
  • Table 220 also includes entries indicating whether there have been previous delivery problems associated with destination sites 1 18.
  • FIG. 3 illustrates the information listed in the "problem” column in terms of "yes” or “no,” it should be understood that the "problem” may be represented in any suitable format, including but not limited to Boolean indicators, alphanumeric characters, a range of issues (e.g., "yes within 1 mile of this address").
  • This disclosure contemplates table 220 including any suitable information pertaining to destination site 1 18, such as for example, the number of previous delivery problems, the number of previous deliveries, a percentage of total deliveries that have been successful.
  • Server 1 10 may reference the information in table 220 to help transporter 1 16 locate destination site 1 18.
  • Server 1 10 may maintain table 220.
  • server 1 10 may store and update table 220 over time to track geocoordinates 210 of destination sites 1 18.
  • Server 220 may also update table 220 to track previous delivery problems associated with the destination sites 1 18. This disclosure contemplates table 220 being maintained in any suitable manner to track any appropriate information associated with destination site 118.
  • Server 1 10 may receive an address 310. Address 310 may be sent by any appropriate element of system 200. For example, transporter 1 16 may send address 310 as part of a message 230 indicating that transporter 1 16 is experiencing problems locating address 310. As another example, a vendor may send address 310 to server 1 10 expecting server 1 10 to return the geocoordinates associated with address 310. [0046] After receiving address 310, server 1 10 may examine table 220 to determine whether address 310 is stored in table 220. Specifically, server 1 10 may determine whether the street number, street name, street identifier, and/or zip code of any address stored in table 220 matches those of address 310.
  • server 1 10 may continue to determine whether the geocoordinates of address 310 are stored in table 220. If server 1 10 determines that the geocoordinates of address 310 are also stored in table 220, server 1 10 may communicate the geocoordinates of address 310 from table 220. For example, if transporter 1 16 sends an address 310 of "1 1 1 Main St.” with a zip code of "00000," server 1 10 may determine that that address 310 is stored in table 220 and return the geocoordinates 210 of (xl , yl , zl) that are stored in table 220 for that address.
  • server 1 10 may generate approximate geocoordinates 320 of address 310.
  • the approximate geocoordinates 320 may provide a transporter 1 16 or a vendor some assistance in locating a destination site 1 18.
  • the approximate geocoordinates 320 may inform transporter 1 16 of the approximate location of destination site 1 18.
  • Transporter 1 16 may be able to locate the exact location of destination site 1 18 given the approximate geocoordinates 320.
  • Server 1 10 may use addresses that are near or within a predetermined distance of destination site 1 18 to determine the approximate geocoordinates 320.
  • server 1 10 may use table 220 to determine addresses that are near address 310.
  • server 1 10 may determine addresses in table 220 that have the same zip code as address 310.
  • server 1 10 may determine the addresses in table 220 that are on the same street as address 310. After determining these addresses, server 1 10 may use the geocoordinates of these addresses to approximate the geocoordinates 320 of address 310.
  • transporter 1 16 may request the geocoordinates 210 of "1 13 Main St.” in zip code "00000.”
  • Server 1 10 may determine that that address 310 is not stored in table 220.
  • Server 110 may then determine that the first two addresses illustrated in table 220 in the example of FIG. 3 are near address 310 because the zip codes and street names of those two addresses match those of the given address 310.
  • Server 1 10 may then use the geocoordinates (xl , yl , zl) and (x2, y2, z2) of those two addresses to approximate the geocoordinates 320 of address 310.
  • server 1 10 may determine based on the two addresses that address 310 should be located in between "1 1 1 Main St.” and "1 15 Main St.” Server 1 10 may then approximate the geocoordinates 320 of address 310 to be somewhere in between (x l , yl , zl) and (x2, y2, z2). For example, the approximate geocoordinates 320 may be (x3, y3, z3) with xl ⁇ x3 ⁇ x2, yl ⁇ y3 ⁇ y2, and zl ⁇ z3 ⁇ z2.
  • transporter 1 16 may still be able to use (x3, y3, z3) to locate the destination site 1 18 on a map or on a global positioning system device.
  • geocoordinates may represent the latitude, longitude, and altitude of an address.
  • system 200 may help transporter 1 16 locate destination site 118 even though the geocoordinates 210 of destination site 1 18 are unavailable and user 1 12 is unavailable to provide the geocoordinates 210.
  • a global positioning system receiver of transporter 1 16 may provide transporter 1 16 with a route to destination site 1 18 if given the approximate geocoordinates 210.
  • server 1 10 may further determine a distance between the destination site 1 18 and the stored addresses. Server 1 10 may use that distance to approximate the geocoordinates 320 of the destination site 1 18. For example, server 1 10 may determine that buildings on Main Street are twenty feet apart from one another. Server 1 10 may then use that distance to determine that "1 13 Main St.” is twenty feet from “1 1 1 Main St.” and twenty feet from “1 15 Main St.” Server 1 10 may then use that information to approximate the geocoordinates 320 of "1 13 Main St.”
  • server 310 may communicate the approximate geocoordinates 320.
  • server 1 10 may communicate approximate geocoordinates 320 to a transporter 1 16 that is experiencing difficulties locating a destination site associate with address 310.
  • server 1 10 may send approximate geocoordinates 320 to a vendor that needs to determine the geocoordinates of address 310.
  • server 1 10 may additionally send the geocoordinates of the addresses that are near address 310. In this manner, the vendor may plot these geocoordinates on a map to determine an area in which the address 310 may be located.
  • transporter 1 16 may be experiencing difficulties locating a home destination site 1 18.
  • Transporter 1 16 sends the address associated with the home to server 1 10.
  • server 1 10 determines that the recipient of the delivery is not at the home and that the geocoordinates of the home are not already stored in the server 1 10. Instead of sending a message to transporter 1 16 stating that the geocoordinates are unavailable, server 1 10 may determine whether there are geocoordinates for addresses near the home. Server 1 10 may find some of these addresses and use their associated geocoordinates to approximate the geocoordinates of the home. For example, server 1 10 may have the geocoordinates for some neighboring homes. Server 1 10 may use these geocoordinates to provide transporter 1 16 an approximate location of the home. Transporter 1 16 may use these approximate geocoordinates to locate the exact location of the home on a map or global positioning system device.
  • FIG. 4 illustrates system 200 of FIG. 2.
  • system 200 is used by a user 1 12 during a checkout process.
  • server 1 10 may prompt user 1 12 to use 1 14 to provide one or more sets of geocoordinates 210 for one or more corresponding destination sites 1 18.
  • Server 110 may then use the received one or more sets of geocoordinates to determine one or more corresponding destination addresses for the destination sites 1 18, and provide either or both of the geocoordinates and the destination addresses to transporter 1 16 for subsequent usage.
  • Server 1 10 may store the received geocoordinates for the destination sites 1 18 and the associated destination addresses in table 220 of memory 134. In this way, server 1 10 may build up a database of geocoordinates and destination addresses for its users 1 12.
  • server 1 10 may request geocoordinates from users 1 12 upon determining that there are problems locating the associated destination sites 1 18, as described in greater detail below.
  • table 220 may include a column labeled "problem". Information in that column may indicate whether there have been previous problems associated with locating particular addresses. Server 1 10 may use the information in this column to determine when to request the geocoordinates of a particular destination site 1 18.
  • this disclosure contemplates table 220 further including other information associated with destination sites 1 18 including addresses of destination site 1 18, geocoordinates 210 of destination sites 118, number of previous orders delivered to destination sites 118, and any other suitable information associated with destination sites 1 1 .
  • server 1 10 may use the "problem" column to determine whether to preemptively request the geocoordinates 210 of a destination site 1 18.
  • user 1 12 may be ordering a product from an online vendor associated with server 1 10.
  • user 1 12 may supply server 1 10 with the address of the destination site 118.
  • Server 1 10 may determine that that address and corresponding geocoordinates 210 are not stored in table 220, however, it may be efficient to ask user 1 12 to use device 1 14 to provide geocoordinates 210 for destination site 1 18 during the checkout process if a delivery problem is anticipated.
  • server 1 10 may compare the address of the destination site 1 18 with addresses of other destination sites stored in table 220 to determine which other destination sites are near the destination site 1 18. Server 1 10 may then determine whether transporters 1 16 experienced problems locating these other destination sites. If so, server 1 10 may anticipate that transporter 1 16 will experience a delivery problem locating the destination site 1 18. Server 1 10 may then preemptively address the delivery problem by requesting and receiving the geocoordinates for the destination site 1 18 from user 1 12 and/or device 1 14. In this manner, when transporter 1 16 notifies server 1 10 that he is experiencing problems locating destination site 1 18, server 1 10 will already have stored the geocoordinates 210 for the destination site 1 18 and can provide the geocoordinates 210 to the transporter 1 16.
  • server 1 10 may receive an address 410.
  • Address 410 may have been sent by user 1 12 and may be the address associated with destination site 1 18.
  • user 1 12 may provide address 410 as part of a transaction with a vendor on the internet.
  • User 1 12 may provide address 410 as part of the checkout process with the vendor.
  • User 1 12 expects the vendor to deliver a purchase to address 410.
  • Address 410 and geocoordinates 210 associated with address 410 may not be stored in server 1 10.
  • Server 110 may determine that address 410 or the geocoordinates associated with address 410 are not stored within table 220. In particular embodiments, this may mean that address 410 is an address to which the vendor has not previously made a delivery. In response to that determination, server 1 10 may examine whether there have been previous problems associated with locating addresses near address 410. For example, address 410 may be "1 13 Main St.” Server 1 10 may determine two addresses in table 220, "1 1 1 Main St.” and " 1 15 Main St.” that are near address 410.
  • Server 1 10 may then examine the column labeled "problem" to determine whether there have been previous problems associated with locating "1 1 1 Main St.” and "1 15 Main St.” If there have not been previous problems locating addresses near address 410, then server 1 10 may continue the transaction.
  • server 1 10 may anticipate that a transporter 1 16 will encounter problems locating "1 13 Main St.” In order to preemptively address this problem, server 1 10 may request the user 1 12 to provide the geocoordinates 210 associated with destination site 1 18. Server 1 10 may communicate a message 240 to user 1 12 requesting the geocoordinates of the destination site 1 18. The message 240 may inform user 1 12 that addresses nearby his supplied address have encountered delivery problems in the past, and as a result, system 200 anticipates that delivery problems may occur for the destination site 1 1 8.
  • the message 240 may further request the user 1 12 to use device 1 14 to provide geocoordinates 21 0 if the user 1 12 is located at the destination site 1 18. These geocoordinates 210 may be provided later to a transporter 1 16 attempting to deliver the package to the destination site 1 18. Following the process described with respect to FIG. 2, user 1 12 may respond to the message 240 and use device 1 14 to provide server 1 10 with geocoordinates 210 associated with address 410. Server 1 10 may then store the address 410 and the geocoordinates 210 in table 220. In this manner, server 1 10 may preemptively gather geocoordinates 210 when problems associated with locating destination site 118 are expected.
  • server 1 10 may provide transporter 1 16 the geocoordinates of destination site 1 18 without having to request the geocoordinates 210 from user 1 12 at that time.
  • server 1 10 may have received geocoordinates 210 from a user 1 12 for a destination site 1 18 and may have also approximated geocoordinates 210 for a destination site 118 using any of the techniques described above. In such an embodiment, server 1 10 may compare the received geocoordinates 210 with the approximated geocoordinates 210 to determine whether there is any discrepancy.
  • server 1 10 may communicate a message to user device 1 14 to request updated geocoordinates 210. Or, server 1 10 may take other corrective measures, such as recalculating the approximated geocoordinates 210.
  • FIG. 5 is a flowchart illustrating a method 500 of determining the geocoordinates 210 of a destination site 1 18.
  • Server 1 10 may perform method 500.
  • server 1 10 may receive a message 230 indicating a problem locating a destination site 1 1 8.
  • the message 230 may have been sent by a transporter 1 16 who is attempting to deliver a package to the destination site 1 18.
  • the message 230 may further include the name of user 112, the transporter's 1 16 location, an order number, and any other appropriate information that server 1 10 may use to determine how to help transporter 116 locate destination site 118.
  • server 1 10 may determine whether geocoordinates 210 associated with the destination site 1 18 are stored in memory 134.
  • server 1 10 may determine whether geocoordinates 210 are stored in table 220. If the geocoordinates 210 are stored in table 220, execution proceeds to step 540 where server 1 10 sends the geocoordinates 210 to transporter 1 16 to help locate the destination site 1 18.
  • server 1 10 may determine whether a user 1 12 associated with the destination site 1 18 is located at the destination site 1 18. In particular embodiments, server 1 10 may send a message to user 1 12 requesting user 1 12 to confirm whether user 1 12 is located at destination site 1 18. The message may inform user 1 12 that a delivery is en route and that the transporter 1 16 is experiencing difficulties locating the destination site 1 18. The message may further request that user 1 12 indicate whether user 1 12 is located at the destination site 1 18. User 1 12 may respond to that message to indicate to server 1 10 whether user 1 12 is located at destination site 1 18. If server 1 10 determines that user 1 12 is not at the destination site 118, server 110 may proceed to step 615 of method 600 illustrated in FIG. 6.
  • server 1 10 may continue to step 525 to request the geocoordinates 210 associated with the destination site 1 18.
  • server 1 10 may send a request for geocoordinates 210 to user 1 12.
  • the request may ask user 1 12 to use device 1 14 to provide geocoordinates 210 in order to help transporter 116 locate the destination site 1 18.
  • server 1 10 may use the geocoordinates 210 of device 1 14 as the geocoordinates 210 of destination site 1 18.
  • User 1 12 may use device 1 14 to send server 1 10 the geocoordinates 210 of device 1 14.
  • server 1 10 may receive the geocoordinates 210 and in step 535 server 1 10 may store the geocoordinates and the address of the destination site 1 18 in memory 134, specifically table 220. Server 1 10 may then conclude in step 540 by sending the geocoordinates 210 of destination site 1 18 to transporter 1 16 in order to help transporter 1 16 locate the destination site 1 18.
  • FIG. 6 is a flowchart illustrating a method 600 of determining approximate geocoordinates 320 for a destination address.
  • Server 1 10 may perform method 600.
  • server 1 10 may store a plurality of addresses and a plurality of geocoordinates associated with the plurality of addresses in table 220.
  • server 1 10 may receive a request for geocoordinates 210 of a destination address.
  • server 1 10 may determine in step 615 whether the destination address is stored in table 220. If the destination address is stored in table 220, server 1 10 may continue to step 620 to determine whether geocoordinates associated with the destination address are also stored in table 220. If server 1 10 determines that the geocoordinates associated with the destination address are also stored, server 1 10 may conclude in step 630 by sending the geocoordinates 210 associated with the destination address in response to the request for the geocoordinates.
  • server 1 10 may continue to step 625 to determine at least one stored address that is within a predetermined proximity of the second address.
  • server 1 10 may determine the at least one stored address by examining the plurality of stored addresses and finding the addresses within the plurality of addresses that have portions which match the destination address. For example, server 1 10 may determine the addresses in the plurality of addresses that have the same zip code as the destination address. As another example, server 1 10 may determine the addresses that have the same zip code and street name as the destination address.
  • server 1 10 may determine approximate geocoordinates 320 of the destination address based at least in part upon the stored geocoordinates associated with the at least one stored address.
  • server 1 10 may conclude by sending the approximate geocoordinates 320 of the destination address in response to the request for the geocoordinates of the destination address.
  • FIG. 7 illustrates an example computer system 700 that may be used for one or more portions of the example system 100 of FIG. 1 , according to certain embodiments of the present disclosure.
  • computer system 700 may have take any suitable physical form, such as for example one or more integrated circuit (ICs), one or more printed circuit boards (PCBs), one or more handheld or other devices (such as mobile telephones or PDAs), one or more personal computers, one or more super computers, one or more servers, and one or more distributed computing elements.
  • ICs integrated circuit
  • PCBs printed circuit boards
  • handheld or other devices such as mobile telephones or PDAs
  • Portions or all of user system 102, server system 106, storage module 108, and computing resources 1 10 may be implemented using all of the components, or any appropriate combination of the components, of computer system 700 described below.
  • Computer system 700 may have one or more input devices 702 (which may include a keypad, keyboard, mouse, stylus, or other input devices), one or more output devices 704 (which may include one or more displays, one or more speakers, one or more printers, or other output devices), one or more storage devices 706, and one or more storage media 708.
  • An input device 702 may be external or internal to computer system 700.
  • An output device 704 may be external or internal to computer system 700.
  • a storage device 706 may be external or internal to computer system 700.
  • a storage medium 708 may be external or internal to computer system 700.
  • System bus 710 couples subsystems of computer system 700 to each other.
  • reference to a bus encompasses one or more digital signal lines serving a common function.
  • the present disclosure contemplates any suitable system bus 710 including any suitable bus structures (such as one or more memory buses, one or more peripheral buses, one or more a local buses, or a combination of the foregoing) having any suitable bus architectures.
  • Example bus architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, Enhanced ISA (EISA) bus. Micro Channel Architecture (MCA) bus, Video Electronics Standards Association local (VLB) bus, Peripheral Component Interconnect (PCI) bus, PCI-Express bus (PCI-X), and Accelerated Graphics Port (AGP) bus.
  • ISA Industry Standard Architecture
  • EISA Enhanced ISA
  • MCA Micro Channel Architecture
  • VLB Video Electronics Standards Association local
  • PCI Peripheral Component Interconnect
  • PCI-X PCI-Express bus
  • AGP Accelerated Graphics
  • Computer system 700 includes one or more processors 712 (or central processing units (CPUs)).
  • a processor 712 may contain a cache 714 for temporary local storage of instructions, data, or computer addresses.
  • Processors 712 are coupled to one or more storage devices, including memory 716.
  • Memory 716 may include RAM 718 and ROM 720. Data and instructions may transfer bi-directionally between processors 712 and RAM 718. Data and instructions may transfer uni-directionally to processors 712 from ROM 720.
  • RAM 718 and ROM 720 may include any suitable computer-readable storage media.
  • Computer system 700 includes fixed storage 722 coupled bi- directionally to processors 712. Fixed storage 722 may be coupled to processors 712 via storage control unit 707. Fixed storage 722 may provide additional data storage capacity and may include any suitable computer-readable storage media. Fixed storage 722 may store an operating system (OS) 724, one or more executables (EXECs) 726, one or more applications or programs 728, data 730 and the like. Fixed storage 722 is typically a secondary storage medium (such as a hard disk) that is slower than primary storage. In appropriate cases, the information stored by fixed storage 722 may be incorporated as virtual memory into memory 716. In certain embodiments, fixed storage 722 may include network resources, such as one or more storage area networks (SAN) or network-attached storage (NAS).
  • SAN storage area networks
  • NAS network-attached storage
  • Processors 712 may be coupled to a variety of interfaces, such as, for example, graphics control 732, video interface 734, input interface 736, output interface 737, and storage interface 738, which in turn may be respectively coupled to appropriate devices.
  • Example input or output devices include, but are not limited to, video displays, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styli, voice or handwriting recognizers, biometrics readers, or computer systems.
  • Network interface 740 may couple processors 712 to another computer system or to network 742.
  • Network interface 740 may include wired, wireless, or any combination of wired and wireless components.
  • processors 712 may receive or send information from or to network 742 in the course of performing steps of certain embodiments. Certain embodiments may execute solely on processors 712. Certain embodiments may execute on processors 712 and on one or more remote processors operating together.
  • Computer system 700 may communicate with other devices connected to network 742.
  • Computer system 700 may communicate with network 742 via network interface 740.
  • Computer system 700 may receive information (such as a request or a response from another device) from network 742 in the form of one or more incoming packets at network interface 740 and memory 716 may store the incoming packets for subsequent processing.
  • Computer system 700 may send information (such as a request or a response to another device) to network 742 in the form of one or more outgoing packets from network interface 740, which memory 716 may store prior to being sent.
  • Processors 712 may access an incoming or outgoing packet in memory 716 to process it, according to particular needs.
  • Certain embodiments involve one or more computer-storage products that include one or more tangible, computer-readable storage media that embody software for performing one or more steps of one or more processes described or illustrated herein.
  • one or more portions of the media, the software, or both may be designed and manufactured specifically to perform one or more steps of one or more processes described or illustrated herein. Additionally or alternatively, one or more portions of the media, the software, or both may be generally available without design or manufacture specific to processes described or illustrated herein.
  • Example computer-readable storage media include, but are not limited to, CDs (such as CD-ROMs), FPGAs, floppy disks, optical disks, hard disks, holographic storage devices, ICs (such as ASICs), magnetic tape, caches, PLDs, RAM devices, ROM devices, semiconductor memory devices, and other suitable computer- readable storage media.
  • software may be machine code which a compiler may generate or one or more files containing higher-level code which a computer may execute using an interpreter.
  • memory 716 may include one or more tangible, computer-readable storage media embodying software and computer system 700 may provide particular functionality described or illustrated herein as a result of processors 712 executing the software.
  • Memory 716 may store and processors 712 may execute the software.
  • Memory 716 may read the software from the computer-readable storage media in mass storage device 716 embodying the software or from one or more other sources via network interface 740.
  • processors 712 may perform one or more steps of one or more processes described or illustrated herein, which may include defining one or more data structures for storage in memory 716 and modifying one or more of the data structures as directed by one or more portions the software, according to particular needs.
  • the described processing and memory elements may be distributed across multiple devices such that the operations performed utilizing these elements may also be distributed across multiple devices.
  • software operated utilizing these elements may be run across multiple computers that contain these processing and memory elements.
  • Other variations aside from the stated example are contemplated involving the use of distributed computing.
  • computer system 700 may provide particular functionality described or illustrated herein as a result of logic hardwired or otherwise embodied in a circuit, which may operate in place of or together with software to perform one or more steps of one or more processes described or illustrated herein.
  • the present disclosure encompasses any suitable combination of hardware and software, according to particular needs.
  • a system comprising: a delivery application executing on a processor of a delivery device, the application operable to communicate a message indicating a problem associated with locating a destination site for a user; a user application executing on a processor of a user device, the user application operable to: communicate a message confirming that the user device is located at the destination site; and communicate geocoordinates of the destination site; and a vendor server communicatively coupled to the processor of the delivery device and the processor of the user device, the vendor server operable to: communicate with the user application to receive the geocoordinates of the destination site; and communicate the geocoordinates of the destination site to the delivery application.
  • a method for associating geocoordinates of a location with an address of the location :
  • An apparatus compri sing :
  • a memory operable to store contact information of a user device; and a processor communicatively coupled to the memory and operable to: receive a first message indicating a problem associated with locating a destination site associated with the user device; communicate, to the user device according to the stored contact information, a request for the geocoordinates of the destination site; confirm that the user device is located proximate the destination site; receive the geocoordinates of the destination site; and communicate to a transporter device a second message comprising the geocoordinates of the destination site.
  • the request comprises a link corresponding to a website, and the geocoordinates of the destination site can be received through the website.
  • the request comprises a message communicated via an application running on the user device.
  • a system comprising:
  • a delivery application executing on a processor of a delivery device, the application operable to communicate a message indicating a problem locating a first location; and a vendor server communicatively coupled to the processor of the delivery device, the vendor server operable to: receive the message indicating the problem associated with the first location; determine that the first location is associated with a second location that is within a predetermined distance of the first location; approximate geocoordinates associated with the first location based at least in part upon geocoordinates associated with the second location; and communicate the approximated geocoordinates to the delivery application.
  • An apparatus comprising:
  • a memory operable to: store a first address; and store geocoordinates associated with the first address; and a processor communicatively coupled to the memory and operable to: receive a second address not stored in the memory; and approximate the geocoordinates of the second address based at least in part upon the geocoordinates associated with the first address.
  • the memory is further operable to store at least one previous problem associated with the first address; and the processor is further operable to determine that a problem associated with the second address exists based at least in part upon the at least one previous problem associated with the first address.
  • processor is further operable to: in response to the determination that the problem associated with the second address exists, request geocoordinates associated with the second address; receive the geocoordinates associated with the second address; and store the geocoordinates associated with the second address in the memory.
  • processor is further operable to: request geocoordinates associated with the second address; receive the geocoordinates associated with the second address; and store the geocoordinates associated with the second address in the memory.
  • processor is further operable to: receive a message indicating a problem associated with locating the second address; communicate, in response to receiving the message, a second message comprising the geocoordinates associated with the first address in order to help resolve the problem associated with locating the second address.

Abstract

A system comprises a delivery application executing on a processor of a delivery device. The application communicates a message indicating a problem associated with locating a destination site for a user. The system further comprises a user application executing on a processor of a user device. The user application communicates a message confirming that the user device is located at the destination site, and communicates geocoordinates of the destination site. The system further comprises a vendor server communicatively coupled to the processor of the delivery device and the processor of the user device. The vendor server communicates with the user application to receive the geocoordinates of the destination site. The vendor server further communicates the geocoordinates of the destination site to the delivery application.

Description

TRANSPORT USING GEOLOCATION
BACKGROUND
[00011 When couriers experience difficulties locating a destination site, packages remain undelivered. The undelivered packages are returned to the sender, and the sender often absorbs the cost of any subsequent delivery attempts. Furthermore, vendors often are asked to send packages to addresses that are difficult to locate. However, the vendor may not know, prior to receiving a returned package, that the address is difficult to locate.
BRIEF DESCRIPTION OF DRAWINGS
[0002] For a more complete understanding of the present disclosure and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
[0003] FIG. 1 illustrates a deliverer attempting to locate a destination site;
[0004] FIG. 2 illustrates a system for determining the geocoordinates of a destination site;
[0005] FIG. 3 illustrates the server of FIG. 2 in conjunction with a table used for determining approximate geocoordinates for an address;
[0006] FIG. 4 illustrates the system of FIG. 2 determining geocoordinates based on previous problems locating a destination site;
[0007] FIG. 5 is a flowchart illustrating a method of determining the geocoordinates of a destination site;
[0008] FIG. 6 is a flowchart illustrating a method of determining approximate geocoordinates for an address; and
[0009] FIG. 7 illustrates an example computer system 700 that may be used for one or more portions of the example system 100 of FIG. 1 , according to certain embodiments of the present disclosure. DETAILED DESCRIPTION
[0010] This disclosure describes a system for gathering and sending geocoordinates. These geocoordinates can be used by couriers and delivery people to help locate addresses to which deliveries are made. When a deliverer is having problems locating the address, the deliverer can send the address to the system. The system can then check to see if a recipient of the delivery is at the address. If so, the recipient can use a device such as a cell phone to send the system the geocoordinates for the address. The system can then send the geocoordinates to the deliverer to help the deliverer locate the address.
[0011] Sometimes, the recipient for the delivery is not at the address. In those instances, the system may approximate the geocoordinates of the address based on the stored geocoordinates of nearby locations. The system may examine its stored locations and determine which locations are near the address. Then, the system can use the geocoordinates of these nearby locations to approximate the geocoordinates of the address. The system can then communicate the approximate geocoordinates to the deliverer to help the deliverer locate the address.
[0012] FIG. 1 illustrates a transporter 1 16 attempting to locate a destination site 1 18. Transporter 1 16 may wish to deliver a package to destination site 1 18. For example, transporter 1 16 may be a deliverer attempting to deliver a package that a user at destination site 1 18 ordered from a vendor on the internet. As another example, transporter 1 16 may be a supplier attempting to deliver a shipment to a store. In other examples, transporter 1 16 may be a taxi-driver taking people to and from destination sites 1 18; a courier picking up or dropping off packages, materials, messages, mail, or any other types of objects to or from destination sites 1 18. It should be understood that transporter 1 16 may use a truck, car, bicycle, motorcycle, or any other suitable mode of transportation to perform its functions.
[0013] Transporter 1 16 may experience difficulty locating destination site 1 18. For example, destination site 1 18 may be in a rural area where a particular address may be difficult to find. As another example, transporter 1 16 may have been provided an incomplete or inaccurate address for destination site 1 18. Destination site 1 18 may be an apartment but the apartment number has been left off the address or a portion of the address may simply be incorrect. If transporter 1 16 cannot locate destination site 1 18, transporter 1 16 may have no choice but to return the package back to the sender. Usually the sender then absorbs the cost of any redelivery to destination site 1 18.
[0014] To help transporter 1 16 locate destination site 1 18, a system may provide transporter 1 16 with the geocoordinates 210 of destination site 1 18. The geocoordinates 210 may include the longitude, latitude, and/or altitude of destination site 1 18, the Global Positioning Satellite (GPS) coordinates of destination site 1 18, or any other information providing the geolocation of destination site 1 18. In some instances, the geocoordinates 210 may include the geographic location of a wireless network (e.g., wi-fi network, wireless router, mobile hotspot, cellular tower, and the like) associated with destination site 118. In other instances, the geocoordinates 210 may include the geographic location of any location recognition device associated with the delivery site 1 18. By using these geocoordinates 210, transporter 1 16 may locate destination site 1 18 even if the address for destination site 1 18 provided to transporter 1 16 is inaccurate or incomplete.
[0015] A user located at destination site 1 18 may provide transporter 1 16 with the geocoordinates of the destination site 118 when transporter 1 16 is experiencing problems locating the destination site 1 18. Transporter 1 16 may indicate to a system that transporter 1 16 is experiencing problems locating destination site 1 18. The system may then contact a user associated with destination site 1 18 to confirm whether the user is located at destination site 1 18. If the user is located at destination site 1 18, the system may request the user's geocoordinates. The user may provide the geocoordinates by using a device such as a cell phone or laptop. For example, an application on the user's cell phone may serve to provide the geocoordinates of the user and/or the cell phone to the system. The system may then provide transporter 1 16 with the geocoordinates so that transporter 1 16 can locate destination site 1 18.
[0016] FIG. 2 illustrates a system 200 for determining the geocoordinates 210 of a destination site 1 18. As provided by FIG. 2, system 200 may include destination site 1 18, transporter 1 16, network 120, and server 1 10. Destination site 1 18 may be associated with a user 1 12 and the device 1 14. Device 1 14 and transporter 1 16 may communicate with server 1 10 through network 120.
[0017] In general, server 1 10 may receive a message 230 from transporter 1 16 indicating a problem locating destination site 1 18. Server 1 10 may then request and receive geocoordinates 210 of destination site 1 18 from user 1 12 and/or device 1 14. Server 1 10 may then provide these geocoordinates 210 to transporter 1 16 in order to help transporter 1 16 locate destination site 1 18.
[0018] System 200 may include transporter 1 16. Transporter 1 16 may be a courier, a vendor, a taxi driver, a pickup service, or any other appropriate entity that makes deliveries of people or things to destination site 1 18, picks up people or things from destination site 1 18, or otherwise travels to destination site 118 for any reason. In particular embodiments, transporter 1 16 may experience problems locating destination site 1 18. For example, destination site 1 18 may be in a rural area where a particular address may be difficult to find. As another example, transporter 1 16 may have been provided an incomplete or inaccurate address for destination site 1 18. Destination site 1 18 may be an apartment but the apartment number has been left off the address or a portion of the address may be incorrect. If transporter 1 16 cannot locate destination site 1 18, transporter 1 16 may have no choice but to return the package back to the sender. Usually the sender then absorbs the cost of any redelivery to destination site 1 1 8. To avoid returning the delivery to the sender, transporter 1 16 may use system 200 to help locate destination site 1 18.
[0019] For example, transporter 1 16 may be associated with a cell phone, laptop, global positioning system device, or any other suitable electronic device capable of electronically communicating with server 1 10. Depending on the context, the electronic device may be referred to as a transporter device, a delivery device, a courier device, or the like. The electronic device may include a processor running a transporter application 150 for use in system 200. Depending on the context, the transporter application 150 may be referred to as a delivery application, a courier application, or the like. Transporter 1 16 may use this transporter application 150 running on the electronic device to communicate a message 230 to server 1 10 indicating that transporter 1 16 is experiencing problems locating destination site 1 18. The message 230 may include information about the delivery, such as the address of the destination site 1 18, an order number associated with the deliver}', the name of user 1 12, the location of transporter 1 16, and any other information that server 1 10 may use to determine how to direct transporter 1 16 to the destination site 1 1 8. Server 1 10 may communicate geocoordinates 210 of destination site 1 1 8 back to the transporter application 150 running on the electronic device or another device of transporter 1 16. Transporter 1 16 may then use the geocoordinates 210 to locate destination site 1 18 and make a delivery, in particular embodiments, server 1 10 may also send transporter 1 16 a route to follow to reach destination site 1 18 or the electronic device of transporter 116 may be configured to determine the route based on the geocoordinates 210 sent by server 1 10. Transporter 1 16 can follow this route to reach destination site 1 18.
[0020] System 200 may include destination site 1 1 8 associated with user 1 12 and device 1 14. Destination site 1 18 may be a house, an apartment, a store, or any other appropriate location capable of receiving deliveries.
[0021] Device 1 14 may be associated with user 1 12. For example, user 1 12 may own device 1 14 or be in possession of device 1 14. In particular embodiments, device 1 14 may receive from server 1 10 a request 245 to confirm whether user 1 12 and/or device 114 are located at destination site 1 18. Device 1 14 may receive this request 245 because transporter 1 16 has indicated to server 1 10 that transporter 1 16 is experiencing problems locating destination site 1 18. Device 1 14 may send a message 240 to server 1 10 confirming that user 1 12 and device 1 14 are at the destination site. User 1 12 may initiate the sending of message 240 by using device 1 14 to respond to the server's 1 10 request. In particular embodiments, device 1 14 may receive from server 1 10 a request 245 for the geocoordinates 210 of destination site 1 18. In response to the request 245, device 1 14 may communicate geocoordinates 210 to server 1 10. In particular embodiments, the request 245 to confirm whether user 1 12 and/or device 1 14 are located at deliver site 1 18 and the request 245 for the geocoordinates 210 may be the same request 245. In other embodiments, the requests 245 may be two separate requests 245. In particular embodiments, a user application 190 executing on device 1 14 may serve to gather and to communicate geocoordinates 210 to server 1 10. Because user 1 12 and/or device 1 14 has already confirmed that user 1 12 and device 1 14 are located at destination site 1 18, the geocoordinates of device 1 14 would help transporter 1 16 locate destination site 1 18.
[0022] As an example and not by way of limitation, user 1 12 may have ordered a product from an Internet vendor. User 1 12 may have indicated to the vendor to deliver the product to destination site 1 18. The vendor may use transporter 1 16 to send a package containing the product to destination site 1 18. During delivery, transporter 1 16 may experience difficulties locating the destination site 1 18. Rather than return the package to the vendor, transporter 1 16 may notify server 1 10 that he is experiencing problems locating destination site 1 18. In response, server 1 10 may ask the user 1 12 whether he is at the destination site 1 18. User 1 12 can confirm that he is at destination site 1 18, and server 1 10 may then request the geocoordinates of the user's 1 12 current location. User 1 12 may then use device 1 14 to provide server 1 10 with the geocoordinates of destination site 118.
[0023] Device 1 14 may be a personal computer, a workstation, a laptop, a wireless or cellular telephone, an electronic notebook, a personal digital assistant, a tablet, or any other device (wireless, wireline, or otherwise) capable of receiving, processing, storing, and/or communicating information with other components of system 100. Device 1 14 may also include a user interface, such as a display, a touchscreen, a microphone, keypad, or other appropriate terminal equipment usable by user 1 12. Device 1 14 may include a global positioning system receiver that device 1 14 may use to determine or receive the geocoordinates 210 of device 1 14. In particular embodiments, device 1 14 may send geocoordinates 210 to server 1 10.
[0024] System 200 includes network 120. In particular embodiments, network 120 may facilitate communication amongst transporter 1 16, device 1 14, server 1 10, and any other appropriate elements of system 200. For example, messages 230 and 240, requests 245, and geocoordinates 210 may be communicated among the components of system 200 using network 120. This disclosure contemplates any suitable network 120 operable to facilitate communication between the components of system 100. Network 120 may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. Network 120 may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components.
[0025] System 200 includes server 1 10. In particular embodiments, server 1 10 may be associated with a provider of products or services such as a vendor. The vendor may have initiated the delivery process after user 1 12 made a purchase from the vendor. The vendor may use server 1 10 for additional order fulfillment functions. For example, the vendor may use server 1 10 to track and maintain orders. Furthermore, the vendor may use server 1 10 to help transporter 1 16 locate destination site 1 18.
[0026] Server 110 includes processor 132 and memory 134. The functions described herein may be performed by processor 132 and/or memory 134. In particular embodiments, memory 134 may store information associated with system 200. For example, memory 134 may store in a table 250 contact information for users 1 12. Contact information may include email addresses, phone numbers, or any other appropriate information used to contact user 1 12. As another example, memory 134 stores location information in table 220 such as addresses and geocoordinates of those addresses. Memory 134 may further store in table 220 previous problems with locating a particular address. As an example, memory 134 may store the address and geocoordinates of destination site 1 18 in table 220. Memory 134 may also store whether there have been any problems locating destination site 1 1 8 in table 220. This disclosure contemplates tables 220 and 250 being arranged in any suitable manner within memory 134.
[0027] Memory 134 may store, either permanently or temporarily, data, operational software, or other information for processor 132. Memory 134 may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory 134 may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. Although memory 134 is illustrated as part of server 1 10, it can be configured in any suitable format, including without limitation in a centralized configuration at server 1 10 or in a distributed format among many devices within system 200.
[0028] Processor 132 may be communicatively coupled to memory 134. In particular embodiments, processor 132 may send requests 245 to device 1 14 to confirm that user 1 12 and device 1 14 are located at destination site 1 18. If user 1 12 and/or device 1 14 are at the deliver site 1 18, processor 132 may use the geocoordinates 210 of device 1 14 as the geocoordinates 210 of the destination site 1 18. Processor 132 may send requests 245 for geocoordinates 210. User 1 12 may then respond to the request 245 by using device 114 to send geocoordinates 210 to server 1 10. Processor 132 may receive these geocoordinates 210 from device 1 14.
[0029] Processor 132 may also receive messages 230 and 240 from elements of system 200. For example, processor 132 may receive message 240 from device 1 14 indicating whether user 1 12 and/or device 1 14 are located at destination site 1 18. After receiving message 240, processor 132 may determine that user 1 12 and/or device 1 14 is at the destination site. As another example, processor 132 may receive message 230 from transporter 1 16 indicating a problem associated with locating destination site 1 18. After receiving message 230, processor 132 may acquire geocoordinates 210 from user 1 12 and send them to transporter 1 16.
[0030] Processor 132 may control the operation and administration of server 1 10 by processing information received from network 120 and memory 134. Processor 132 may include any hardware and/or software that operates to control and process information. Processor 132 may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding.
[0031] In operation, system 200 may help transporter 1 16 locate destination site 1 18. Transporter 1 16 may be delivering a package to destination site 1 18. Transporter 1 16 may experience difficulties locating destination site 1 18. Transporter 1 16 may communicate a message 230 to server 1 10 indicating that transporter 1 16 is experiencing difficulties locating destination site 1 18. The message 230 may include the address of the destination site 1 18, an order number associated with the delivery, the name of user 1 12, and any other suitable information that server 1 10 may use to determine which destination site 1 18 the transporter 1 16 is attempting to locate. To help transporter 1 16 locate destination site 1 18, server 1 10 may perform processes that ultimately result in the sending of geocoordinates 210 of destination site 1 18 to transporter 1 16.
[0032] After receiving message 230, server 1 10 may determine whether the geocoordinates 210 of destination site 1 18 are stored in memory 134. In particular embodiments, the geocoordinates 210 of destination site 1 18 may be stored in table 220. If server 1 10 determines that the geocoordinates 210 of destination site 1 18 are already stored in table 220, server 1 10 may retrieve the geocoordinates 210 and send them to transporter 1 16. In particular embodiments, server 1 10 may generate and send a message comprising the geocoordinates 210 to transporter 1 16. The message may also include directions or a route that transporter 1 16 can follow to locate destination site 1 18. The message may further indicate to transporter 1 16 if user 1 12 or another person is at destination site 1 18 to receive the delivery. In particular embodiments, a device associated with transporter 1 16 may use the message to determine a route that transporter 1 16 can follow to locate destination site 1 18.
[0033] If server 1 10 determines that the geocoordinates 210 of destination site 1 18 are not stored in table 220, server 1 10 may attempt to retrieve the geocoordinates 210 of the destination site 1 18 from user 1 12 and/or device 1 14. Server 1 10 may first contact user 1 12 to confirm whether user 1 12 is at the destination site 1 18. In particular embodiments, server 110 may use contact information of user 1 12 stored in table 250 to contact user 1 12. For example, server 1 10 may use an email address associated with user 1 12 to send an email to user 1 12. As another example, server 1 10 may use a phone number associated with user 1 12 to send a voicemail or text message to user 1 12. The message may inform the user 112 that a delivery from the vendor is en route, but that the transporter 1 16 is having difficulties locating the destination site 1 18. The message may also inform user 1 12 of an order number or a product description associated with the delivery. The message may ask user 1 12 to use device 1 14 to provide geocoordinates 210 if the user 1 12 is at the destination site 1 18. In this manner, user 1 12 may be prompted to provide geocoordinates 210 to server 1 10. Although this disclosure describes server 1 10 sending particular types of messages to user 1 12, this disclosure contemplates server 1 10 sending any appropriate type of message to user 1 12.
[0034] In particular embodiments, the message that server 1 10 sends to user 1 12 may request user 1 12 to confirm whether user 1 12 is located at destination site 1 18. For example, server 1 10 may send an email to which user 1 12 may reply with an indication of whether user 1 12 is at destination site 118. As another example, server 1 10 may send user 1 12 a text message to which user 1 12 can respond with an indication whether user 1 12 is at destination site 1 18. If device 1 14 is located at the destination site 1 18, then the geocoordinates of device 1 14 may be used as the geocoordinates of destination site 1 18. In particular embodiments, server 1 10 may receive a message 240 indicating whether user 1 12 is located at destination site 1 18. In some embodiments, user 1 12 may know the geocoordinates 210 of destination site 1 18 and may input the geocoordinates 210 into device 1 14. In this manner, user 1 12 may provide server 1 10 the geocoordinates 210 of destination site 1 18 even though user 1 12 and/or device 1 14 are not located at destination site 118.
[0035] If server 1 10 determines that user 1 12 is not at destination site 1 18, server 1 10 may indicate to transporter 1 16 that geocoordinates 210 associated with destination site 1 18 are not available. For example, server 1 10 may send a message or notification to transporter 1 16 indicating that the geocoordinates 210 of destination site 118 are unavailable. In particular embodiments, server 1 10 may approximate the geocoordinates 210 and send them to transporter 1 16. The process by which server 1 10 determines approximate geocoordinates will be discussed with respect to FIG. 3.
[0036] If server 1 10 determines that user 1 12 is located at destination site 1 18, server 1 10 may request user 1 12 to provide geocoordinates 210. In response to the request, user 1 12 may use device 1 14 to provide geocoordinates 210 to server 1 10. For example, server 1 10 may send an alert or notification to device 1 14. When device 114 receives the alert or notification, device 1 14 may present the alert or notification on a display. Additionally, device 1 14 may vibrate or generate a sound to make user 1 12 aware that device 1 14 has received the alert or notification. The alert or notification may inform user 1 12 that a delivery from the vendor is en route, but the transporter 1 16 is having difficulties locating the destination site 1 18. The alert or notification may inform user 1 12 to use device 1 14 to provide geocoordinates 210 in order to help transporter 1 16 locate the destination site if the user 1 12 is at the destination site 1 18.
[0037] When user 1 12 indicates the he wishes to respond to the alert or notification, device 1 14 may execute an application 190 that gathers and sends the geocoordinates 210 of device 1 14 to server 1 10. The application 190 may use the global positioning system features of device 1 14 to gather geocoordinates 210. For example, the application 190 may use a global positioning system receiver of device 1 14 to acquire the geocoordinates of device 1 14. The application 190 may also allow user 1 12 to input the geocoordinates 210 of destination site 1 18. For example, the application 190 may provide a field into which user 1 12 may enter geocoordinates. By allowing user 1 12 to input the geocoordinates 210 of destination site 1 18, the application allows user 1 12 to provide the geocoordinates 210 of the destination site 1 18 even if the user 1 12 is not located at the destination site 1 18. [0038] In particular embodiments, user 1 12 may provide geocoordinates 210 to server 1 10 through a website or an application running on a device 1 14. For example, server 1 10 may send an email, a text message, or any other suitable type of message to user 1 12 that includes a link to the website. Or, server 1 10 may push a message to user 1 12 through an application running on the user's device 1 14. The message may inform user 1 12 that a delivery is en route and that transporter 1 16 needs geocoordinates of the destination site 1 18 in order to make the delivery. The message may additionally provide details regarding the delivery including an order number and a product description. The message may further inform user 1 12 that geocoordinates 210 may be provided by opening the link on device 1 14, or by performing an appropriate process using the application on device 1 14. User 1 12 may respond to the message by opening the link on device 1 14 or by performing the application process on device 1 14. The link may be to a website that includes an application or provides an interface through which device 1 14 may send geocoordinates 210 of device 1 14 to server 1 10. For example, by opening the link, device 1 14 may open a website that triggers the application 190 on device 1 14 to retrieve and send the geocoordinates 210 of device 1 14 to server 1 10. Or, the application running on device 114 may present an interface through which device 1 14 may send geocoordinates 210 of device 1 14 to server 1 10. Because user 1 12 has already confirmed that user 1 12 and/or device 1 14 are located at the destination site 1 18, the geocoordinates 210 may be used to help locate destination site 1 18.
|0039] In related embodiment, user 1 12 may forward the message to another person's device so that the other person may send geocoordinates 210 to server 1 10 on behalf of user 1 12 using any of the techniques described above (e.g., link to website or application running on device). This embodiment may be useful when user 1 12 is not actually at the destination site 1 18 whose geocoordinates are requested, but the other person is located at the destination site 1 18. For example, user 1 12 may be at work when user 1 12 receives the message to send the geocoordinates of the user's home, where delivery will be made. However, the user's spouse may be at home. Thus, user 1 12 could forward the message to the spouse and have the spouse send the geocoordinates 210 of their home to server 1 10. In still another embodiment, user 1 12 may forward the message from one device 1 14 to another device 1 14 in order to send geocoordinates 210 to server 1 10. For example, a user 1 12 may receive the message on a laptop that does not have GPS capabilities, and then forward the message to a mobile phone that does have GPS capabilities. The user 1 12 may then use the mobile phone to send the geocoordinates 210 to server 110.
[0040] After server 1 10 receives the geocoordinates 210 of device 1 14, server 110 may communicate the geocoordinates 210 to transporter 1 16. In particular embodiments, server 1 10 may generate and send a message comprising the geocoordinates 210 to a device associated with transporter 1 16. The message may be a text message, email message, page, or any other suitable type of message that the device of transporter 1 16 may receive. The message may inform transporter 1 16 of the geocoordinates 210 of destination site 1 18. In particular embodiments, the message may also inform transporter 1 16 of a route to follow to locate destination site 1 18. Transporter 1 16 may further use the geocoordinates 210 to locate destination site 1 18 by inputting the geocoordinates 210 into a global positioning system device that can plan a route for transporter 1 16 to follow to reach destination site 1 18. The process performed by server 1 10 described above will be discussed further with respect to FIG. 5.
[00411 In addition to gathering and sending geocoordinates 210 to transporter 1 16, server 1 10 may perform additional functions with regards to geocoordinates 210. For example, server 1 10 may store the geocoordinates 210 for particular addresses in memory 134, such as in table 220. These geocoordinates 210 may have been received from a user 1 12, as described above. Additionally, these geocoordinates may have been received from a transporter 1 16 upon making a successful transport to a particular address. For example, upon making a successful transport to a particular address, the transporter 1 16 may capture the geocoordinates of that address and communicate them to server 110 for storage in table 220 of memory 134. Thus, if a future transport to the same address becomes necessary, then the stored geocoordinates 210 may be used. In another example, server 1 10 may use geocoordinates 210 to determine the geocoordinates of other addresses. In still another example, server 1 10 can request geocoordinates 210 based on previous problems associated with locating addresses near a destination site 1 18. These functions will be described further with respect to FIGS. 3, 4, and 6.
[0042] FIG. 3 illustrates the server 1 10 of FIG. 2 in conjunction with a table 220 used for determining approximate geocoordinates 320 for an address 310. As provided by FIG. 2, server 110 may receive address 310 and use address 310 and table 220 to determine approximate geocoordinates 320. Generally, server 1 10 may use the geocoordinates stored in table 220 to approximate the geocoordinates 320 of a received address 310. In the example illustrated in FIG. 3, some of the columns of table 220 have been expanded to illustrate particular portions of an address. However, these columns may be merged or combined to form any appropriate number of columns.
[0043] Table 220 may include information pertaining to destination sites 1 18. In the example illustrated in FIG. 3, table 220 includes the address and geocoordinates of destination sites 1 18. Table 220 also includes entries indicating whether there have been previous delivery problems associated with destination sites 1 18. Although FIG. 3 illustrates the information listed in the "problem" column in terms of "yes" or "no," it should be understood that the "problem" may be represented in any suitable format, including but not limited to Boolean indicators, alphanumeric characters, a range of issues (e.g., "yes within 1 mile of this address"). This disclosure contemplates table 220 including any suitable information pertaining to destination site 1 18, such as for example, the number of previous delivery problems, the number of previous deliveries, a percentage of total deliveries that have been successful. Server 1 10 may reference the information in table 220 to help transporter 1 16 locate destination site 1 18.
[0044] Server 1 10 may maintain table 220. For example, server 1 10 may store and update table 220 over time to track geocoordinates 210 of destination sites 1 18. Server 220 may also update table 220 to track previous delivery problems associated with the destination sites 1 18. This disclosure contemplates table 220 being maintained in any suitable manner to track any appropriate information associated with destination site 118.
[0045] Server 1 10 may receive an address 310. Address 310 may be sent by any appropriate element of system 200. For example, transporter 1 16 may send address 310 as part of a message 230 indicating that transporter 1 16 is experiencing problems locating address 310. As another example, a vendor may send address 310 to server 1 10 expecting server 1 10 to return the geocoordinates associated with address 310. [0046] After receiving address 310, server 1 10 may examine table 220 to determine whether address 310 is stored in table 220. Specifically, server 1 10 may determine whether the street number, street name, street identifier, and/or zip code of any address stored in table 220 matches those of address 310. If server 110 determines that address 310 is stored within table 220, server 1 10 may continue to determine whether the geocoordinates of address 310 are stored in table 220. If server 1 10 determines that the geocoordinates of address 310 are also stored in table 220, server 1 10 may communicate the geocoordinates of address 310 from table 220. For example, if transporter 1 16 sends an address 310 of "1 1 1 Main St." with a zip code of "00000," server 1 10 may determine that that address 310 is stored in table 220 and return the geocoordinates 210 of (xl , yl , zl) that are stored in table 220 for that address.
[0047] If server 1 10 determines that either address 310 or the geocoordinates of address 310 are not stored in table 220, server 1 10 may generate approximate geocoordinates 320 of address 310. The approximate geocoordinates 320 may provide a transporter 1 16 or a vendor some assistance in locating a destination site 1 18. For example, the approximate geocoordinates 320 may inform transporter 1 16 of the approximate location of destination site 1 18. Transporter 1 16 may be able to locate the exact location of destination site 1 18 given the approximate geocoordinates 320.
[0048] Server 1 10 may use addresses that are near or within a predetermined distance of destination site 1 18 to determine the approximate geocoordinates 320. In particular embodiments, server 1 10 may use table 220 to determine addresses that are near address 310. For example, server 1 10 may determine addresses in table 220 that have the same zip code as address 310. As another example, server 1 10 may determine the addresses in table 220 that are on the same street as address 310. After determining these addresses, server 1 10 may use the geocoordinates of these addresses to approximate the geocoordinates 320 of address 310.
[00491 For example, transporter 1 16 may request the geocoordinates 210 of "1 13 Main St." in zip code "00000." Server 1 10 may determine that that address 310 is not stored in table 220. Server 110 may then determine that the first two addresses illustrated in table 220 in the example of FIG. 3 are near address 310 because the zip codes and street names of those two addresses match those of the given address 310. Server 1 10 may then use the geocoordinates (xl , yl , zl) and (x2, y2, z2) of those two addresses to approximate the geocoordinates 320 of address 310. For example, server 1 10 may determine based on the two addresses that address 310 should be located in between "1 1 1 Main St." and "1 15 Main St." Server 1 10 may then approximate the geocoordinates 320 of address 310 to be somewhere in between (x l , yl , zl) and (x2, y2, z2). For example, the approximate geocoordinates 320 may be (x3, y3, z3) with xl < x3 < x2, yl < y3 < y2, and zl < z3 < z2. Even though (x3, y3, z3) may not be the exact geocoordinates for destination site 210, transporter 1 16 may still be able to use (x3, y3, z3) to locate the destination site 1 18 on a map or on a global positioning system device. Although this disclosure describes geocoordinates using particular numbers, this disclosure contemplates geocoordinates being of any appropriate number. For example, geocoordinates may represent the latitude, longitude, and altitude of an address. By providing transporter 1 16 with the approximate geocoordinates 320 of destination site 1 18, system 200 may help transporter 1 16 locate destination site 118 even though the geocoordinates 210 of destination site 1 18 are unavailable and user 1 12 is unavailable to provide the geocoordinates 210. For example, a global positioning system receiver of transporter 1 16 may provide transporter 1 16 with a route to destination site 1 18 if given the approximate geocoordinates 210.
[0050 j In particular embodiments, server 1 10 may further determine a distance between the destination site 1 18 and the stored addresses. Server 1 10 may use that distance to approximate the geocoordinates 320 of the destination site 1 18. For example, server 1 10 may determine that buildings on Main Street are twenty feet apart from one another. Server 1 10 may then use that distance to determine that "1 13 Main St." is twenty feet from "1 1 1 Main St." and twenty feet from "1 15 Main St." Server 1 10 may then use that information to approximate the geocoordinates 320 of "1 13 Main St."
[0051] In particular embodiments, after server 1 10 determines the approximate geocoordinates 320 of address 310, server 310 may communicate the approximate geocoordinates 320. For example, server 1 10 may communicate approximate geocoordinates 320 to a transporter 1 16 that is experiencing difficulties locating a destination site associate with address 310. As another example, server 1 10 may send approximate geocoordinates 320 to a vendor that needs to determine the geocoordinates of address 310. In particular embodiments, server 1 10 may additionally send the geocoordinates of the addresses that are near address 310. In this manner, the vendor may plot these geocoordinates on a map to determine an area in which the address 310 may be located.
[0052] As an example, transporter 1 16 may be experiencing difficulties locating a home destination site 1 18. Transporter 1 16 sends the address associated with the home to server 1 10. However, server 1 10 determines that the recipient of the delivery is not at the home and that the geocoordinates of the home are not already stored in the server 1 10. Instead of sending a message to transporter 1 16 stating that the geocoordinates are unavailable, server 1 10 may determine whether there are geocoordinates for addresses near the home. Server 1 10 may find some of these addresses and use their associated geocoordinates to approximate the geocoordinates of the home. For example, server 1 10 may have the geocoordinates for some neighboring homes. Server 1 10 may use these geocoordinates to provide transporter 1 16 an approximate location of the home. Transporter 1 16 may use these approximate geocoordinates to locate the exact location of the home on a map or global positioning system device.
[0053] FIG. 4 illustrates system 200 of FIG. 2. In one embodiment, system 200 is used by a user 1 12 during a checkout process. In this embodiment, during the checkout process, server 1 10 may prompt user 1 12 to use 1 14 to provide one or more sets of geocoordinates 210 for one or more corresponding destination sites 1 18. Server 110 may then use the received one or more sets of geocoordinates to determine one or more corresponding destination addresses for the destination sites 1 18, and provide either or both of the geocoordinates and the destination addresses to transporter 1 16 for subsequent usage. Server 1 10 may store the received geocoordinates for the destination sites 1 18 and the associated destination addresses in table 220 of memory 134. In this way, server 1 10 may build up a database of geocoordinates and destination addresses for its users 1 12.
[0054] In a particular embodiment, server 1 10 may request geocoordinates from users 1 12 upon determining that there are problems locating the associated destination sites 1 18, as described in greater detail below. As provided by FIG. 4, table 220 may include a column labeled "problem". Information in that column may indicate whether there have been previous problems associated with locating particular addresses. Server 1 10 may use the information in this column to determine when to request the geocoordinates of a particular destination site 1 18. Although not illustrated, this disclosure contemplates table 220 further including other information associated with destination sites 1 18 including addresses of destination site 1 18, geocoordinates 210 of destination sites 118, number of previous orders delivered to destination sites 118, and any other suitable information associated with destination sites 1 1 .
[0055] In particular embodiments, server 1 10 may use the "problem" column to determine whether to preemptively request the geocoordinates 210 of a destination site 1 18. For example, user 1 12 may be ordering a product from an online vendor associated with server 1 10. As part of the checkout process, user 1 12 may supply server 1 10 with the address of the destination site 118. Server 1 10 may determine that that address and corresponding geocoordinates 210 are not stored in table 220, however, it may be efficient to ask user 1 12 to use device 1 14 to provide geocoordinates 210 for destination site 1 18 during the checkout process if a delivery problem is anticipated. To determine whether there may be a delivery problem, server 1 10 may compare the address of the destination site 1 18 with addresses of other destination sites stored in table 220 to determine which other destination sites are near the destination site 1 18. Server 1 10 may then determine whether transporters 1 16 experienced problems locating these other destination sites. If so, server 1 10 may anticipate that transporter 1 16 will experience a delivery problem locating the destination site 1 18. Server 1 10 may then preemptively address the delivery problem by requesting and receiving the geocoordinates for the destination site 1 18 from user 1 12 and/or device 1 14. In this manner, when transporter 1 16 notifies server 1 10 that he is experiencing problems locating destination site 1 18, server 1 10 will already have stored the geocoordinates 210 for the destination site 1 18 and can provide the geocoordinates 210 to the transporter 1 16.
[0056] In particular embodiments, server 1 10 may receive an address 410. Address 410 may have been sent by user 1 12 and may be the address associated with destination site 1 18. For example, user 1 12 may provide address 410 as part of a transaction with a vendor on the internet. User 1 12 may provide address 410 as part of the checkout process with the vendor. User 1 12 expects the vendor to deliver a purchase to address 410. Address 410 and geocoordinates 210 associated with address 410 may not be stored in server 1 10.
[0057] Server 110 may determine that address 410 or the geocoordinates associated with address 410 are not stored within table 220. In particular embodiments, this may mean that address 410 is an address to which the vendor has not previously made a delivery. In response to that determination, server 1 10 may examine whether there have been previous problems associated with locating addresses near address 410. For example, address 410 may be "1 13 Main St." Server 1 10 may determine two addresses in table 220, "1 1 1 Main St." and " 1 15 Main St." that are near address 410. Server 1 10 may then examine the column labeled "problem" to determine whether there have been previous problems associated with locating "1 1 1 Main St." and "1 15 Main St." If there have not been previous problems locating addresses near address 410, then server 1 10 may continue the transaction.
[0058] However, if there have been previous problems locating "1 1 1 Main St." and "1 15 Main St.", server 1 10 may anticipate that a transporter 1 16 will encounter problems locating "1 13 Main St." In order to preemptively address this problem, server 1 10 may request the user 1 12 to provide the geocoordinates 210 associated with destination site 1 18. Server 1 10 may communicate a message 240 to user 1 12 requesting the geocoordinates of the destination site 1 18. The message 240 may inform user 1 12 that addresses nearby his supplied address have encountered delivery problems in the past, and as a result, system 200 anticipates that delivery problems may occur for the destination site 1 1 8. The message 240 may further request the user 1 12 to use device 1 14 to provide geocoordinates 21 0 if the user 1 12 is located at the destination site 1 18. These geocoordinates 210 may be provided later to a transporter 1 16 attempting to deliver the package to the destination site 1 18. Following the process described with respect to FIG. 2, user 1 12 may respond to the message 240 and use device 1 14 to provide server 1 10 with geocoordinates 210 associated with address 410. Server 1 10 may then store the address 410 and the geocoordinates 210 in table 220. In this manner, server 1 10 may preemptively gather geocoordinates 210 when problems associated with locating destination site 118 are expected. When transporter 1 16 is attempting to deliver a package to destination site 1 18, server 1 10 may provide transporter 1 16 the geocoordinates of destination site 1 18 without having to request the geocoordinates 210 from user 1 12 at that time. [0059] In certain embodiment, server 1 10 may have received geocoordinates 210 from a user 1 12 for a destination site 1 18 and may have also approximated geocoordinates 210 for a destination site 118 using any of the techniques described above. In such an embodiment, server 1 10 may compare the received geocoordinates 210 with the approximated geocoordinates 210 to determine whether there is any discrepancy. If there is a discrepancy that is greater than a particular magnitude (e.g., the received geocoordinate 210 is a large distance away from the approximated geocoordinate 210), then server 1 10 may communicate a message to user device 1 14 to request updated geocoordinates 210. Or, server 1 10 may take other corrective measures, such as recalculating the approximated geocoordinates 210.
[0060] FIG. 5 is a flowchart illustrating a method 500 of determining the geocoordinates 210 of a destination site 1 18. Server 1 10 may perform method 500. In step 505, server 1 10 may receive a message 230 indicating a problem locating a destination site 1 1 8. The message 230 may have been sent by a transporter 1 16 who is attempting to deliver a package to the destination site 1 18. The message 230 may further include the name of user 112, the transporter's 1 16 location, an order number, and any other appropriate information that server 1 10 may use to determine how to help transporter 116 locate destination site 118. In step 510, server 1 10 may determine whether geocoordinates 210 associated with the destination site 1 18 are stored in memory 134. In particular embodiments, server 1 10 may determine whether geocoordinates 210 are stored in table 220. If the geocoordinates 210 are stored in table 220, execution proceeds to step 540 where server 1 10 sends the geocoordinates 210 to transporter 1 16 to help locate the destination site 1 18.
[0061] If the geocoordinates 210 are not stored in table 220, server 1 10 may determine whether a user 1 12 associated with the destination site 1 18 is located at the destination site 1 18. In particular embodiments, server 1 10 may send a message to user 1 12 requesting user 1 12 to confirm whether user 1 12 is located at destination site 1 18. The message may inform user 1 12 that a delivery is en route and that the transporter 1 16 is experiencing difficulties locating the destination site 1 18. The message may further request that user 1 12 indicate whether user 1 12 is located at the destination site 1 18. User 1 12 may respond to that message to indicate to server 1 10 whether user 1 12 is located at destination site 1 18. If server 1 10 determines that user 1 12 is not at the destination site 118, server 110 may proceed to step 615 of method 600 illustrated in FIG. 6.
[0062] If server 1 10 determines that user 112 is located at the destination site, server 1 10 may continue to step 525 to request the geocoordinates 210 associated with the destination site 1 18. In particular embodiments, server 1 10 may send a request for geocoordinates 210 to user 1 12. The request may ask user 1 12 to use device 1 14 to provide geocoordinates 210 in order to help transporter 116 locate the destination site 1 18. Because the user 1 12 has confirmed that user 1 12 and/or device 1 14 are located at the destination site 1 18, server 1 10 may use the geocoordinates 210 of device 1 14 as the geocoordinates 210 of destination site 1 18. User 1 12 may use device 1 14 to send server 1 10 the geocoordinates 210 of device 1 14. In step 530 server 1 10 may receive the geocoordinates 210 and in step 535 server 1 10 may store the geocoordinates and the address of the destination site 1 18 in memory 134, specifically table 220. Server 1 10 may then conclude in step 540 by sending the geocoordinates 210 of destination site 1 18 to transporter 1 16 in order to help transporter 1 16 locate the destination site 1 18.
[0063] FIG. 6 is a flowchart illustrating a method 600 of determining approximate geocoordinates 320 for a destination address. Server 1 10 may perform method 600. In step 605 server 1 10 may store a plurality of addresses and a plurality of geocoordinates associated with the plurality of addresses in table 220. In step 610 server 1 10 may receive a request for geocoordinates 210 of a destination address. In response to receiving the request, server 1 10 may determine in step 615 whether the destination address is stored in table 220. If the destination address is stored in table 220, server 1 10 may continue to step 620 to determine whether geocoordinates associated with the destination address are also stored in table 220. If server 1 10 determines that the geocoordinates associated with the destination address are also stored, server 1 10 may conclude in step 630 by sending the geocoordinates 210 associated with the destination address in response to the request for the geocoordinates.
[0064] However, if server 1 10 determines that either the destination address or the geocoordinates associated with the destination address are not stored in table 220 in step 615 and 620, server 1 10 may continue to step 625 to determine at least one stored address that is within a predetermined proximity of the second address. In particular embodiments, server 1 10 may determine the at least one stored address by examining the plurality of stored addresses and finding the addresses within the plurality of addresses that have portions which match the destination address. For example, server 1 10 may determine the addresses in the plurality of addresses that have the same zip code as the destination address. As another example, server 1 10 may determine the addresses that have the same zip code and street name as the destination address.
[0065] In step 635 server 1 10 may determine approximate geocoordinates 320 of the destination address based at least in part upon the stored geocoordinates associated with the at least one stored address. In step 640 server 1 10 may conclude by sending the approximate geocoordinates 320 of the destination address in response to the request for the geocoordinates of the destination address.
[0066] FIG. 7 illustrates an example computer system 700 that may be used for one or more portions of the example system 100 of FIG. 1 , according to certain embodiments of the present disclosure. Although the present disclosure describes and illustrates a particular computer system 700 having particular components in a particular configuration, the present disclosure contemplates any suitable computer system having any suitable components in any suitable configuration. Moreover, computer system 700 may have take any suitable physical form, such as for example one or more integrated circuit (ICs), one or more printed circuit boards (PCBs), one or more handheld or other devices (such as mobile telephones or PDAs), one or more personal computers, one or more super computers, one or more servers, and one or more distributed computing elements. Portions or all of user system 102, server system 106, storage module 108, and computing resources 1 10 may be implemented using all of the components, or any appropriate combination of the components, of computer system 700 described below.
[0067] Computer system 700 may have one or more input devices 702 (which may include a keypad, keyboard, mouse, stylus, or other input devices), one or more output devices 704 (which may include one or more displays, one or more speakers, one or more printers, or other output devices), one or more storage devices 706, and one or more storage media 708. An input device 702 may be external or internal to computer system 700. An output device 704 may be external or internal to computer system 700. A storage device 706 may be external or internal to computer system 700. A storage medium 708 may be external or internal to computer system 700.
[0068] System bus 710 couples subsystems of computer system 700 to each other. Herein, reference to a bus encompasses one or more digital signal lines serving a common function. The present disclosure contemplates any suitable system bus 710 including any suitable bus structures (such as one or more memory buses, one or more peripheral buses, one or more a local buses, or a combination of the foregoing) having any suitable bus architectures. Example bus architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, Enhanced ISA (EISA) bus. Micro Channel Architecture (MCA) bus, Video Electronics Standards Association local (VLB) bus, Peripheral Component Interconnect (PCI) bus, PCI-Express bus (PCI-X), and Accelerated Graphics Port (AGP) bus.
[0069] Computer system 700 includes one or more processors 712 (or central processing units (CPUs)). A processor 712 may contain a cache 714 for temporary local storage of instructions, data, or computer addresses. Processors 712 are coupled to one or more storage devices, including memory 716. Memory 716 may include RAM 718 and ROM 720. Data and instructions may transfer bi-directionally between processors 712 and RAM 718. Data and instructions may transfer uni-directionally to processors 712 from ROM 720. RAM 718 and ROM 720 may include any suitable computer-readable storage media.
|0070] Computer system 700 includes fixed storage 722 coupled bi- directionally to processors 712. Fixed storage 722 may be coupled to processors 712 via storage control unit 707. Fixed storage 722 may provide additional data storage capacity and may include any suitable computer-readable storage media. Fixed storage 722 may store an operating system (OS) 724, one or more executables (EXECs) 726, one or more applications or programs 728, data 730 and the like. Fixed storage 722 is typically a secondary storage medium (such as a hard disk) that is slower than primary storage. In appropriate cases, the information stored by fixed storage 722 may be incorporated as virtual memory into memory 716. In certain embodiments, fixed storage 722 may include network resources, such as one or more storage area networks (SAN) or network-attached storage (NAS).
[0071] Processors 712 may be coupled to a variety of interfaces, such as, for example, graphics control 732, video interface 734, input interface 736, output interface 737, and storage interface 738, which in turn may be respectively coupled to appropriate devices. Example input or output devices include, but are not limited to, video displays, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styli, voice or handwriting recognizers, biometrics readers, or computer systems. Network interface 740 may couple processors 712 to another computer system or to network 742. Network interface 740 may include wired, wireless, or any combination of wired and wireless components. Such components may include wired network cards, wireless network cards, radios, antennas, cables, or any other appropriate components. With network interface 740, processors 712 may receive or send information from or to network 742 in the course of performing steps of certain embodiments. Certain embodiments may execute solely on processors 712. Certain embodiments may execute on processors 712 and on one or more remote processors operating together.
[0072] In a network environment, where computer system 700 is connected to network 742, computer system 700 may communicate with other devices connected to network 742. Computer system 700 may communicate with network 742 via network interface 740. For example, computer system 700 may receive information (such as a request or a response from another device) from network 742 in the form of one or more incoming packets at network interface 740 and memory 716 may store the incoming packets for subsequent processing. Computer system 700 may send information (such as a request or a response to another device) to network 742 in the form of one or more outgoing packets from network interface 740, which memory 716 may store prior to being sent. Processors 712 may access an incoming or outgoing packet in memory 716 to process it, according to particular needs.
[0073] Certain embodiments involve one or more computer-storage products that include one or more tangible, computer-readable storage media that embody software for performing one or more steps of one or more processes described or illustrated herein. In certain embodiments, one or more portions of the media, the software, or both may be designed and manufactured specifically to perform one or more steps of one or more processes described or illustrated herein. Additionally or alternatively, one or more portions of the media, the software, or both may be generally available without design or manufacture specific to processes described or illustrated herein. Example computer-readable storage media include, but are not limited to, CDs (such as CD-ROMs), FPGAs, floppy disks, optical disks, hard disks, holographic storage devices, ICs (such as ASICs), magnetic tape, caches, PLDs, RAM devices, ROM devices, semiconductor memory devices, and other suitable computer- readable storage media. In certain embodiments, software may be machine code which a compiler may generate or one or more files containing higher-level code which a computer may execute using an interpreter.
[0074] As an example and not by way of limitation, memory 716 may include one or more tangible, computer-readable storage media embodying software and computer system 700 may provide particular functionality described or illustrated herein as a result of processors 712 executing the software. Memory 716 may store and processors 712 may execute the software. Memory 716 may read the software from the computer-readable storage media in mass storage device 716 embodying the software or from one or more other sources via network interface 740. When executing the software, processors 712 may perform one or more steps of one or more processes described or illustrated herein, which may include defining one or more data structures for storage in memory 716 and modifying one or more of the data structures as directed by one or more portions the software, according to particular needs.
[0075J In certain embodiments, the described processing and memory elements (such as processors 712 and memory 716) may be distributed across multiple devices such that the operations performed utilizing these elements may also be distributed across multiple devices. For example, software operated utilizing these elements may be run across multiple computers that contain these processing and memory elements. Other variations aside from the stated example are contemplated involving the use of distributed computing.
[0076] In addition or as an alternative, computer system 700 may provide particular functionality described or illustrated herein as a result of logic hardwired or otherwise embodied in a circuit, which may operate in place of or together with software to perform one or more steps of one or more processes described or illustrated herein. The present disclosure encompasses any suitable combination of hardware and software, according to particular needs.
Clauses
] . A system, comprising: a delivery application executing on a processor of a delivery device, the application operable to communicate a message indicating a problem associated with locating a destination site for a user; a user application executing on a processor of a user device, the user application operable to: communicate a message confirming that the user device is located at the destination site; and communicate geocoordinates of the destination site; and a vendor server communicatively coupled to the processor of the delivery device and the processor of the user device, the vendor server operable to: communicate with the user application to receive the geocoordinates of the destination site; and communicate the geocoordinates of the destination site to the delivery application.
2. The system of Clause 1 , wherein the delivery device is associated with a deliverer attempting to make a delivery to the destination site.
3. The system of clause 1 , wherein the vendor server is further operable to determine a route based at least in part on the geocoordinates of the destination site and communicate the route to the delivery application.
4. The system of clause 1 , wherein the vendor server stores an order for the user specifying an address of the destination site, the order comprising a purchase transaction involving a product to be delivered to the destination site.
5. The system of clause 4, wherein the order was executed on a website for a vendor associated with the vendor server.
6. The system of clause 1 , wherein the problem associated with locating the destination site comprises at least one of an incomplete address, an unmarked street, an invalid address, and an ambiguous address.
7. A method for associating geocoordinates of a location with an address of the location:
receiving notice of a problem with finding a location that is associated with an address; requesting geocoordinates for the location from a user device associated with the address; receiving the geocoordinates associated with the location; and communicating the geocoordinates of the location to a transporter device.
8. The method of clause 7, further comprising confirming that the user device is located at the location prior to requesting geocoordinates for the location.
9. The method of clause 7, further comprising communicating a link associated with a website through which the geocoordinates can be provided. 10. The method of clause 7, wherein the geocoordinates comprise a latitude measurement and a longitude measurement.
1 1. The method of clause 7, further comprising determining a route based at least in part on the geocoordinates.
12. The method of clause 7, further comprising storing the geocoordinates of the location in a memory in association with the address of the location.
13. The method of clause 7, further comprising: storing geocoordinates for a plurality of addresses in a memory; and determining whether the geocoordinates for the problem location are stored in the memory.
14. The method of clause 7, further comprising: storing geocoordinates for a plurality of addresses in a memory; determining that the address of the problem location is different from but associated with at least one of the addresses stored in the memory; and determining the geocoordinates for the problem location using geocoordinates for at least one of the addresses stored in the memory.
15. An apparatus , compri sing :
a memory operable to store contact information of a user device; and a processor communicatively coupled to the memory and operable to: receive a first message indicating a problem associated with locating a destination site associated with the user device; communicate, to the user device according to the stored contact information, a request for the geocoordinates of the destination site; confirm that the user device is located proximate the destination site; receive the geocoordinates of the destination site; and communicate to a transporter device a second message comprising the geocoordinates of the destination site.
16. The apparatus of clause 15, wherein a transporter associated with the transporter device is attempting to travel to the destination site and the transporter device communicates the first message associated with the problem locating the destination site.
17. The apparatus of clause 15, wherein the request can be forwarded to another device through which the geocoordinates of the destination site can be received.
18. The apparatus of clause 15, wherein the request comprises a link corresponding to a website, and the geocoordinates of the destination site can be received through the website. 19. The apparatus of clause 15, wherein the request comprises a message communicated via an application running on the user device.
20. The apparatus of clause 15, wherein the geocoordinates are based at least in part upon a location of a wireless network associated with the destination site.
21. A system comprising:
a delivery application executing on a processor of a delivery device, the application operable to communicate a message indicating a problem locating a first location; and a vendor server communicatively coupled to the processor of the delivery device, the vendor server operable to: receive the message indicating the problem associated with the first location; determine that the first location is associated with a second location that is within a predetermined distance of the first location; approximate geocoordinates associated with the first location based at least in part upon geocoordinates associated with the second location; and communicate the approximated geocoordinates to the delivery application.
22. The system of clause 21, wherein the delivery device is associated with a deliverer attempting to make a delivery to the first location.
23. The system of clause 21 , wherein approximating the geocoordinates is based at least in part upon a distance between the first location and the second location.
24. An apparatus comprising:
a memory operable to: store a first address; and store geocoordinates associated with the first address; and a processor communicatively coupled to the memory and operable to: receive a second address not stored in the memory; and approximate the geocoordinates of the second address based at least in part upon the geocoordinates associated with the first address.
25. The apparatus of clause 24, wherein: the memory is further operable to store at least one previous problem associated with the first address; and the processor is further operable to determine that a problem associated with the second address exists based at least in part upon the at least one previous problem associated with the first address.
26. The apparatus of clause 25, wherein the processor is further operable to: in response to the determination that the problem associated with the second address exists, request geocoordinates associated with the second address; receive the geocoordinates associated with the second address; and store the geocoordinates associated with the second address in the memory.
27. The apparatus of clause 24, wherein: the first address is within a particular distance of the second address; the processor is further operable to approximate the geocoordinates of the second address, and communicate the approximated geocoordinates of the second address.
28. The apparatus of clause 27, wherein the processor is further operable to communicate a route based at least in part upon the approximated geocoordinates of the second address.
29. The apparatus of clause 24, wherein the processor is further operable to approximate the geocoordinates of the second address based at least in part upon a distance between the first address and the second address.
30. The apparatus of clause 24, wherein: a zip code associated with the first address matches a zip code associated with the second address; or a street name associated with the first address matches a street name associated with the second address.
31. The apparatus of clause 24, wherein the processor is further operable to: request geocoordinates associated with the second address; receive the geocoordinates associated with the second address; and store the geocoordinates associated with the second address in the memory.
32. The apparatus of clause 24, wherein the processor is further operable to: receive a message indicating a problem associated with locating the second address; communicate, in response to receiving the message, a second message comprising the geocoordinates associated with the first address in order to help resolve the problem associated with locating the second address.
33. The apparatus of clause 24, wherein the second address was received as part of a checkout process.
34. A method for approximating geocoordinates of a location:
receiving a request for geocoordinates associated with a first location; approximating the geocoordinates associated with the location based at least in part upon geocoordinates associated with a second location that is within a defined distance of the first location; and communicating the approximated geocoordinates in response to the request. 35. The method of clause 34, further comprising determining that a problem associated with locating the first location exists based at least in part upon a previous problem associated with locating the second location.
36. The method of clause 35, further comprising: requesting the geocoordinates associated with the first location in response to the determination that the problem associated with locating the first location exists; and receiving the geocoordinates associated with the first location in response to the request.
37. The method of clause 36, further comprising: comparing the received geocoordinates for the first location with the approximated geocoordinates for the first location; communicating a message if the received geocoordinates for the first location are not within a particular distance of the approximated geocoordinates for the first location.
38. The method of clause 34, further comprising approximating the geocoordinates for the location based at least in part upon a distance between the second location and the first location.
39. The method of clause 34, wherein approximating the geocoordinates associated with the first location is in response to a determination that the geocoordinates of the first location are not stored in the memory.
40. The method of clause 34, wherein approximating the geocoordinates associated with the first location is in response to a determination that a user associated with the first location is not located at the first location.
[0077| Although the present disclosure includes several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present disclosure encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.

Claims

CLAIMS WHAT IS CLAIMED IS:
1. A system, comprising:
a delivery application executing on a processor of a delivery device, the application operable to communicate a message indicating a problem associated with locating a destination site for a user;
a user application executing on a processor of a user device, the user application operable to:
communicate a message confirming that the user device is located at the destination site; and
communicate geocoordinates of the destination site; and a vendor server communicatively coupled to the processor of the delivery device and the processor of the user device, the vendor server operable to:
communicate with the user application to receive the geocoordinates of the destination site; and
communicate the geocoordinates of the destination site to the delivery application.
2. The system of Claim 1 , wherein the vendor server is further operable to determine a route based at least in part on the geocoordinates of the destination site and communicate the route to the delivery application.
3. The system of Claim 1 , wherein the problem associated with locating the destination site comprises at least one of an incomplete address, an unmarked street, an invalid address, and an ambiguous address.
4. An apparatus, comprising:
a memory operable to store contact information of a user device; and a processor communicatively coupled to the memory and operable to:
receive a first message indicating a problem associated with locating a destination site associated with the user device;
communicate, to the user device according to the stored contact information, a request for geocoordinates of the destination site; confirm that the user device is located proximate the destination site; receive the geocoordinates of the destination site; and
communicate to a transporter device a second message comprising the geocoordinates of the destination site.
5. The apparatus of Claim 4, wherein a transporter associated with the transporter device is attempting to travel to the destination site and the transporter device communicates the first message associated with the problem locating the destination site.
6. The apparatus of Claim 4, wherein the request comprises a link corresponding to a website, and the geocoordinates of the destination site can be received through the website.
7. The apparatus of Claim 4, wherein the geocoordinates are based at least in part upon a location of a wireless network associated with the destination site.
8. An apparatus comprising:
a memory operable to:
store a first address; and
store geocoordinates associated with the first address; and a processor communicatively coupled to the memory and operable to:
receive a second address not stored in the memory; and approximate the geocoordinates of the second address based at least in part upon the geocoordinates associated with the first address.
9. The apparatus of Claim 8, wherein:
the memory is further operable to store at least one previous problem associated with the first address; and
the processor is further operable to determine that a problem associated with the second address exists based at least in part upon the at least one previous problem associated with the first address.
10. The apparatus of Claim 8, wherein the processor is further operable to approximate the geocoordinates of the second address based at least in part upon a distance between the first address and the second address.
1 1. The apparatus of Claim 8, wherein the processor is further operable to: request geocoordinates associated with the second address;
receive the geocoordinates associated with the second address; and
store the geocoordinates associated with the second address in the memory.
12. A method for approximating geocoordinates of a location:
receiving a request for geocoordinates associated with a first location;
approximating the geocoordinates associated with the first location based at least in part upon geocoordinates associated with a second location that is within a defined distance of the first location; and
communicating the approximated geocoordinates in response to the request.
13. The method of Claim 12, further comprising determining that a problem associated with locating the first location exists based at least in part upon a previous problem associated with locating the second location.
14. The method of Claim 12, further comprising approximating the geocoordinates for the location based at least in part upon a distance between the second location and the first location.
15. The method of Claim 12, wherein approximating the geocoordinates associated with the first location is in response to a determination that a user associated with the first location is not located at the first location.
PCT/US2013/056716 2012-08-30 2013-08-27 Transport using geolocation WO2014035920A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201380045006.4A CN104620255B (en) 2012-08-30 2013-08-27 The conveying carried out using geographical position
JP2015528717A JP5872115B2 (en) 2012-08-30 2013-08-27 Transportation using geolocation
CA2880266A CA2880266C (en) 2012-08-30 2013-08-27 Transport using geolocation
EP13832332.4A EP2867824A4 (en) 2012-08-30 2013-08-27 Transport using geolocation
IN846DEN2015 IN2015DN00846A (en) 2012-08-30 2015-02-03

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/599,898 2012-08-30
US13/599,989 US8793068B2 (en) 2012-08-30 2012-08-30 Interpolating geolocation
US13/599,898 US8788199B2 (en) 2012-08-30 2012-08-30 Transport using geolocation
US13/599,989 2012-08-30

Publications (2)

Publication Number Publication Date
WO2014035920A2 true WO2014035920A2 (en) 2014-03-06
WO2014035920A3 WO2014035920A3 (en) 2014-05-08

Family

ID=50184596

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/056716 WO2014035920A2 (en) 2012-08-30 2013-08-27 Transport using geolocation

Country Status (6)

Country Link
EP (1) EP2867824A4 (en)
JP (2) JP5872115B2 (en)
CN (1) CN104620255B (en)
CA (2) CA2892640C (en)
IN (1) IN2015DN00846A (en)
WO (1) WO2014035920A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170303A (en) * 2014-03-10 2015-09-28 日本Ra株式会社 transaction management system, transaction management server and program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038007B (en) * 2016-02-03 2020-03-27 阿里巴巴集团控股有限公司 Information display method and device
WO2018227415A1 (en) * 2017-06-14 2018-12-20 深圳市智晟达科技有限公司 Method for pushing home situation of user to courier and digital television

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7432830B2 (en) * 1994-06-24 2008-10-07 Navteq North America, Llc Electronic navigation system and method
US5961572A (en) * 1997-04-01 1999-10-05 Bellsouth Intellectual Property Corporation System and method for identifying the geographic region of a geographic area which contains a geographic point associated with a location
US6937865B1 (en) * 2000-09-12 2005-08-30 Ericsson Inc. Position detection system integrated into mobile terminal
US8606299B2 (en) * 2006-01-09 2013-12-10 Qualcomm Incorporated Apparatus and methods for geographic position approximation of an event occurring on a wireless device
US20100114479A1 (en) * 2007-03-26 2010-05-06 Pioneer Corporation Position information detecting apparatus, position information detecting method, position information detecting program and storage medium
US8180379B2 (en) * 2007-06-28 2012-05-15 Apple Inc. Synchronizing mobile and vehicle devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP2867824A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170303A (en) * 2014-03-10 2015-09-28 日本Ra株式会社 transaction management system, transaction management server and program

Also Published As

Publication number Publication date
EP2867824A4 (en) 2015-07-29
JP5872115B2 (en) 2016-03-01
WO2014035920A3 (en) 2014-05-08
CN104620255B (en) 2017-09-22
CA2880266C (en) 2015-08-18
CA2892640A1 (en) 2014-03-06
JP2015532752A (en) 2015-11-12
CA2892640C (en) 2016-01-26
CN104620255A (en) 2015-05-13
IN2015DN00846A (en) 2015-06-12
CA2880266A1 (en) 2014-03-06
JP2016131024A (en) 2016-07-21
EP2867824A2 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
US9070102B2 (en) Transport using geolocation
US9068850B2 (en) Interpolating geolocation
US8805419B2 (en) Management of roadside service requests
WO2018050004A1 (en) Pickup method, and logistics information processing method, device and system
CA2880266C (en) Transport using geolocation
KR20160025294A (en) Goods transfer system using urban railload track network and method thereof
US20130101110A1 (en) System and method for attaching geographic information to customer reports
JP2004345792A (en) Nighttime delivery control system
JP2012206842A (en) Home delivery information processing device, home delivery information processing method, and program
JP6587400B2 (en) Server apparatus, information processing method, and program
KR20200054790A (en) Method for supporting delivery work and apparatus therefor
US20180357591A1 (en) Location directed offers
US7956744B2 (en) Digital ID tag for lost or stolen electronics devices
JP2009120367A (en) Baggage delivery system and baggage delivery method
US20150304371A1 (en) Data sharing system
US20130102338A1 (en) Valet parking system and method utilizing wireless text messaging
JP4915311B2 (en) Data processing apparatus, data communication system, computer program, and data processing method
JP2021093078A (en) Server device, information processing system, program of terminal device, and operation method of the information processing system
US9922297B2 (en) Queue techniques
JP2019105896A (en) Portable terminal for notifying reception of package
US9600782B2 (en) Mobile information processing terminal, social networking service system, server, and processing method
TWI471830B (en) System and method for providing traffic information
JP2008217175A (en) Address management system, address management method used for address management system, and address management control program
JP2006173690A (en) Target notification system, computer program for realizing the same, and method thereof
JP2003346292A (en) System and method for providing information

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

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase in:

Ref document number: 2880266

Country of ref document: CA

REEP Request for entry into the european phase

Ref document number: 2013832332

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2013832332

Country of ref document: EP

ENP Entry into the national phase in:

Ref document number: 2015528717

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 13832332

Country of ref document: EP

Kind code of ref document: A2