WO2015188750A1 - Method, apparatus and system for implementing location based services - Google Patents

Method, apparatus and system for implementing location based services Download PDF

Info

Publication number
WO2015188750A1
WO2015188750A1 PCT/CN2015/081164 CN2015081164W WO2015188750A1 WO 2015188750 A1 WO2015188750 A1 WO 2015188750A1 CN 2015081164 W CN2015081164 W CN 2015081164W WO 2015188750 A1 WO2015188750 A1 WO 2015188750A1
Authority
WO
WIPO (PCT)
Prior art keywords
grid
based services
location
information
location based
Prior art date
Application number
PCT/CN2015/081164
Other languages
English (en)
French (fr)
Inventor
Yuejun YANG
Xiaoguang YAO
Fanfan WU
Liang Fan
Ying SHA
Lu MU
Original Assignee
Tencent Technology (Shenzhen) Company Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology (Shenzhen) Company Limited filed Critical Tencent Technology (Shenzhen) Company Limited
Priority to KR1020177000594A priority Critical patent/KR101847360B1/ko
Priority to JP2016559496A priority patent/JP6222680B2/ja
Publication of WO2015188750A1 publication Critical patent/WO2015188750A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds

Definitions

  • the present disclosure relates to the field of communications technologies, and in particular, to a method, an apparatus and a system for implementing location based services.
  • Location based services also called locating services, are a type of value-added services provided by combining a mobile communications network and a global positioning system, to acquire location information (for example, longitude and latitude coordinates data) of a mobile terminal by using a set of positioning technologies, and provide the location information for a mobile user, another person or a communications system, thereby implementing various location-related services.
  • location based services are a type of new service business that has a broad concept and is related to spatial locations.
  • the location based services can be applied in different fields, such as health, work, and personal life.
  • the services can be used for identifying a location of a person or an object, for example, determining a location of a nearest ATM or a current location of a friend or a co-worker, and providing direct mobile phone advertising, personalized weather information, and even a localized game according to a current location of a client.
  • geographical location information is represented and stored by using longitude and latitude, so that a location of a terminal can be determined conveniently, with an advantage of accuracy.
  • the calculation amount of calculating a distance by using longitude and latitude is great, thereby leading to a very low response rate of a location server.
  • An embodiment of the present invention provides a method for implementing location based services, including:
  • the target grid after receiving a locating request including target location information, the target grid including a grid corresponding to the target location information and a grid located a distance within a set range away from the grid corresponding to the target location information, and the grids being obtained by dividing a map into squares;
  • determining a location based services storage device that the target grid belongs to and performing data storage on the location based services storage device by using a grid number as a keyword and terminal information as a value, the minimum granularity of storage in each location based services storage device being M times of the side length of a square corresponding to the grid, and M being greater than or equal to 2;
  • An embodiment of the present invention further provides a location server, including:
  • a grid determining unit configured to determine a target grid after receiving a locating request including target location information, the target grid including a grid corresponding to the target location information and a grid located a distance within a set range away from the grid corresponding to the target location information, and the grids being obtained by dividing a map into squares;
  • a device determining unit configured to determine a location based services storage device that a target grid belongs to, data storage being performed on the location based services storage device by using a grid number as a keyword and terminal information as a value, the minimum granularity of storage in each location based services storage device being M times of the side length of a square corresponding to the grid, and M being greater than or equal to 2;
  • a querying unit configured to query terminal information that corresponds to the target grid from the determined location based services storage device
  • an information sending unit configured to send the queried terminal information to a sender of the locating request.
  • FIG. 1 illustrates a schematic architectural diagram of a system according to the existing technology
  • FIG. 2 illustrates a schematic flowchart of a method according to an embodiment of the present invention
  • FIG. 3 illustrates a schematic flowchart of a method according to an embodiment of the present invention
  • FIG. 4 illustrates a schematic structural diagram of a system according to an embodiment of the present invention
  • FIG. 5 illustrates a schematic diagram of a spatial data model according to an embodiment of the present invention
  • FIG. 6 illustrates a schematic diagram of grid division according to an embodiment of the present invention
  • FIG. 7 illustrates a schematic diagram of grid searching according to an embodiment of the present invention
  • FIG. 8 illustrates a schematic diagram of data storage according to an embodiment of the present invention
  • FIG. 9 illustrates a schematic flowchart of a method for reporting a player’s geographical information according to an embodiment of the present invention
  • FIG. 10 illustrates a schematic structural diagram of a system for storing and deleting information according to an embodiment of the present invention
  • FIG. 11 illustrates a schematic diagram of a data search process for deleting playerID 3 according to an embodiment of the present invention
  • FIG. 12 illustrates a schematic structural diagram of a hash table according to an embodiment of the present invention
  • FIG. 13 illustrates a schematic structural diagram of a reverse index from playerID to GridGID according to an embodiment of the present invention
  • FIG. 14 illustrates a schematic diagram of bucket-based regular cleaning according to an embodiment of the present invention
  • FIG. 15 illustrates a schematic structural diagram of a location server according to an embodiment of the present invention
  • FIG. 16 illustrates a schematic structural diagram of a location server according to an embodiment of the present invention
  • FIG. 17 illustrates a schematic structural diagram of a location server according to an embodiment of the present invention.
  • FIG. 18 illustrates a schematic structural diagram of a location server according to an embodiment of the present invention.
  • FIG. 19 illustrates a schematic structural diagram of a location based services storage device according to an embodiment of the present invention.
  • FIG. 20 illustrates a schematic structural diagram of a location based services storage device according to an embodiment of the present invention
  • FIG. 21 illustrates a schematic structural diagram of a location based services storage device according to an embodiment of the present invention
  • FIG. 22 illustrates a schematic structural diagram of a location based services storage device according to an embodiment of the present invention
  • FIG. 23 illustrates a schematic structural diagram of a location based services system according to an embodiment of the present invention.
  • FIG. 24 illustrates a schematic structural diagram of a server according to an embodiment of the present invention.
  • LBS can not only improve an enterprise’s operation and service level, but also provide more diversified convenient services for a user of vehicle-mounted positioning technologies.
  • the location based services can not only guide the user to find a nearby product and service, but also provide the user with higher convenience and safety.
  • a location server has also been used in searching for a nearby user by a terminal user, for example, searching for a nearby person to perform social activities, or searching for a nearby person that is associated (for example, having a same hobby, playing a same game, and the like) .
  • a location server receives geographical location information from a terminal, and stores the geographical location information into location based services storage devices 1 to n. If the location server needs to parse the geographical location information, the location server can also send the geographical location information to a map server, and acquire a parsing result of the geographical location information from the map server.
  • geographical location information is represented and stored by using longitude and latitude. However, during a process of positioning a nearby terminal, the calculation amount of calculating a distance by using longitude and latitude is great, thereby leading to a very low response rate of a location server.
  • an embodiment of the present invention provides a method for implementing location based services. As shown in FIG. 2, the method includes:
  • 201 Determine a target grid after receiving a locating request including target location information, where the target grid includes a grid corresponding to the target location information and a grid located a distance within a set range away from the grid corresponding to the target location information, and the grids are obtained by dividing a map into squares.
  • the grids are obtained by dividing a map, that is, the grids are corresponding to actual geographical locations.
  • the side length of a grid is the side length of a geographical location corresponding to the grid. If the side length of a grid is smaller, the precision of final locating will be higher; and if the side length of a grid is larger, the amount of stored grids is less, and the time used in searching may be less.
  • the specific length is not restricted in this embodiment of the present invention, and 100 m may be recommended as the side length.
  • 202 Determine a location based services storage device that the target grid belongs to, and perform data storage on the location based services storage device by using a grid number as a keyword and terminal information as a value, where the minimum granularity of storage in each location based services storage device is M times of the side length of a square corresponding to the grid, and M is greater than or equal to 2.
  • M may be set by a person skilled in the art. If terminal information around within a maximum range of 2 km is searched for, the value may be set to 100, 50, or the like, and the specific value thereof is not restricted in this embodiment of the present invention.
  • 203 Query terminal information that corresponds to the target grid from the determined location based services storage device, and send the queried terminal information to a sender of the locating request.
  • geographical locations are divided in a grid manner, and grids obtained after division are used for storage of location information; and during a process of location based services, longitude and latitude are not needed to calculate a distance, so as to reduce the calculation amount, thereby improving a server response rate.
  • the minimum granularity used is larger than a grid, so that more adjacent grids can be allocated into a same location based services storage device, and a determined target grid is concentrated in a few location based services storage devices, thereby reducing invocation of location based services storage devices, lowering calculation pressure of the location based services storage devices, and accordingly, further improving system performance of the whole location based services.
  • the size of the grids may be set to be small, so as to improve locating precision and reduce collisions caused by an excessively large amount of location information of a single grid.
  • location information in a location based services storage device may be sourced from information collected by another server, and may also be sourced from information directly collected by the location server.
  • An embodiment of the present invention provides a specific implementation solution for acquiring and storing location information of a terminal. The details are as follows. Further, the method also includes:
  • An embodiment of the present invention further provides a preferred storage solution, which can prevent conditions of stored data overlay and a consequent data collision.
  • the details are as follows.
  • Data storage is also performed on a location based services storage device by using terminal information as a keyword and a grid number as a value, and the method further includes:
  • an instruction for deleting location information is sent to a location based services storage device other than the determined location based services storage device.
  • a specific sending solution may adopt a broadcasting manner, so as to maintain uniqueness of location information of a terminal on a server side.
  • grids may be numbered after division, and then a hash algorithm is adopted to allocate the grids into location based services storage devices, so as to improve a query rate during querying, and also facilitate subsequent expansion of the location based services storage devices.
  • the grids are obtained by dividing a map into squares, and are numbered according to a sequence of geographical locations; and correspondence between all grids of the minimum granularity in a location based services storage device and the location based services storage device conforms to a rule of the hash algorithm.
  • the determining a location based services storage device that the target grid belongs to includes: using the target grid to perform a hash search so as to determine a location based services storage device that the target grid belongs to.
  • a target grid may be distributed in a plurality of location based services storage devices, based on which anembodiment of the present invention provides a further implementation solution as follows. Further, if the target grid is distributed in two or more location based services storage devices, the method further includes: performing packet assembly of terminal information queried from a location based services storage device.
  • an embodiment of the present invention provides a solution as follows. If another locating request from the terminal is received, the method further includes: determining whether a time interval after a previous locating request exceeds a pre-determined threshold, and if the time interval exceeds the pre-determined threshold, rejecting execution of locating.
  • a map is divided into grids. If the side length of a grid is smaller, the locating precision is higher, but the calculation amount is greater; and if the side length of a grid is larger, the calculation amount is less and the response rate is higher.
  • the determining a target grid includes: first querying a test grid including terminal information in test grids, where the test grid is a test grid corresponding to the target location information, and the test grids are obtained by dividing a map into squares, with a side length greater than that of the grid; and determining a grid included in the queried test grids is the target grid.
  • the side length of a test grid is larger, so that a large grid can be used first to filter out a grid without location information in the target grid, and avoid unnecessary searching, thereby reducing the searching amount and improving a system response rate.
  • An embodiment of the present invention further provides another method for implementing location based services as shown in FIG. 3, including:
  • 301 Receive a query request from a location server by a location based services storage device, the query request including a target grid to be queried, where data storage is performed on the location based services storage device by using a grid number as a keyword and terminal information as a value; the minimum granularity of storage in each location based services storage device is M times of the side length of a square corresponding to the grid; M is greater than or equal to 2; and the grids are obtained by dividing a map into squares.
  • grids are obtained by dividing a map, that is, the grids are corresponding to actual geographical locations.
  • the side length of a grid is the side length of a geographical location corresponding to the grid. If the side length of a grid is smaller, the precision of final locating will be higher; and if the side length of a grid is larger, the amount of stored grids is less, and the time used in searching may be less.
  • the specific length is not restricted in this embodiment of the present invention, and 100 m may be recommended as the side length.
  • M may be set by a person skilled in the art. If terminal information around within a maximum range of 2 km is searched for, the value may be set to 100, 50, or the like, and the specific value thereof is not restricted in this embodiment of the present invention.
  • an embodiment of the present invention further provides a specific implementation solution as follows for distribution of grids in location based services storage devices and data storage within the grids. Numbers of the grids stored in the location based services storage devices are stored according to a rule of a hash algorithm, and are sequenced by using a hash bucket.
  • geographical locations are divided in a grid manner, and grids obtained after division are used for storage of location information; and during a process of location based services, longitude and latitude are not needed to calculate a distance, so as to reduce the calculation amount, thereby improving a server response rate.
  • the minimum granularity used is larger than a grid, so that more adjacent grids can be allocated into a same location based services storage device, and a determined target grid is concentrated in a few location based services storage devices, thereby reducing invocation of location based services storage devices, lowering calculation pressure of the location based services storage devices, and accordingly, further improving system performance of the whole location based services.
  • the size of the grids may be set to be small, so as to improve locating precision and reduce collisions caused by an excessively large amount of location information of a single grid.
  • location information in a location based services storage device may be sourced from information collected by another server, and may also be sourced from information directly collected by the location server.
  • An embodiment of the present invention provides a specific implementation solution for acquiring and storing location information of a terminal, and also provides a specific implementation solution for maintaining uniqueness of the location information. The details are as follows. Further, the method also includes:
  • the location information if the location information has not existed, or has been deleted completely, storing the terminal information into a grid that corresponds to the location information, and storing the location information by using a hash table.
  • An embodiment of the present invention further provides a specific solution for storing location information.
  • location information is stored by means of inserting at the head of a linked list, so that the location information can be stored in a time sequence, thereby facilitating subsequent deletion of invalid data.
  • the hash table value adopts a data structure of a linked list, and the storing the terminal information into a grid that corresponds to the location information includes: inserting the location information into a linked list of a grid that corresponds to the location information by means of inserting at the head of the linked list.
  • location information (geographical information) of a terminal has a time limit
  • the location information of the terminal may become invalid with change of a geographical location of the terminal.
  • expired location information needs to be removed, which can not only improve locating accuracy, but also reduce the calculation amount and improve a system response rate.
  • the method also includes:
  • a location based services storage device may have many grids stored thereon, and also have many hash buckets. Therefore, if each removal of expired data is performed on all grids in a location based services storage device, it may need much time, and during this period of time, a location server may stagnate, leading to instability of the location server. In order to improve stability of location based services, a process of expired data removal can be performed in steps. The details are as follows.
  • the fetching a recovery time of a grid includes:
  • the pre-determined amount of grids may be set randomly, and may also be adjusted depending on busyness or idleness degree of a system. For example, if the system is busier, the amount is less; and if the system is idler, the amount is greater. If the solution in this embodiment of the present invention is adopted, stagnation of location based services will not be caused, and stability of location based services can be improved.
  • location information and other data can be stored in a shared memory. If processing of shared memory cleaning is executed, data recovery may be needed. As a result, an embodiment of the present invention further provides a solution of data recovery as follows. Further, the method also includes:
  • an embodiment of the present invention further provides a specific solution of data recovery during expansion of a location based services storage device as follows. Further, the method also includes:
  • a location based service (Lbs) server mainly has two functions.
  • a function is storing a player’s spatial geographical information (that is, geographical information of a terminal actually, for a player corresponds to an account number located at a terminal) , and the other function is querying a player near some player, for example, a player located within 2 km around a player.
  • An Lbs server exists as an individual service, to provide an interface for external access of a player's geographical information, and store a player’s geographical information.
  • FIG. 4 is a general structural diagram of an Lbs server.
  • a game server (GameServer) only communicates with a location based services server (Lbsservice) , where the GameServer sets a player's geographical information and requesting a player's geographical information is processed by the Lbsservice.
  • the Lbsservice is responsible for analyzing a request of the GameServer, and sending a request message to a proper location based services storage device.
  • the Lbsservice For geographical information that is submitted by the GameServer and needs to be parsed, the Lbsservice requests a parsing result from a SOSO MAP server through an HTTP-Hypertext transfer protocol, and performs processing accordingly.
  • the Lbsservice implements a function of an agent, and a location based services storage device (Lbsstore) is responsible for data storage.
  • Lbsstore location based services storage device
  • a communications channel between the Lbsservice and the Lbsstore may be implemented by using tbus.
  • Supporting range query is an important point for storage of location information, for example, searching for a person a certain distance away from a point as a center.
  • the data storage structure shall effectively support such a querying mode.
  • a global map can be divided into N*M grids after being two-dimensionally processed, where each grid is a square with a same size.
  • a player's geographical information is stored in a different grid according to current two-dimensional coordinates (x, y) of the player, as shown in FIG. 5.
  • the grids located within a radius of r include grids 1, 2, 3, 4, 5, 6, 7, 8, and 9. Therefore, it only needs to find all players whose information is stored in these 9 grids, and then calculate to determine whether each player is located in a circumscribed square of the circle. A player located in the square is the player that meets the condition. In this way, a player located within a distance of r away from a point (x, y) can be queried only by traversal of players in these 9 grids.
  • an embodiment of the present invention provides a detailed design solution as follows:
  • the Earth is a slightly flat sphere, with a 40,076 km long equator and a 40,009 km long meridian.
  • the Earth is converted to a rectangle by roughly using the equator as a long side of the rectangle (by reference to a global map hung on a wall by us) . Accordingly, the length of the rectangle is equal to the length of the equator. If 40,000 km is used as the length of the rectangle, the width is 20,000 km.
  • a represented length is simply believed as 40,000 km/360, and for 1 degree latitude, a represented length is 20,000 km/180.
  • a point located at 180 degrees east longitude and 90 degrees north latitude is selected as a point of origin, a line of longitude represents an X axis, and a positive direction thereof is from east to west.
  • a line of latitude represents a Y axis, and a positive direction thereof is from north to south.
  • a grid may be a square with a width of 100 m. That is, the Earth is divided into a plurality of squares with a width of 100 m after being two-dimensionally processed.
  • a grid where a player's information is located is determined by calculation according to coordinates (x, y) of the player, and data is then stored in the grid.
  • Each grid has a unique number GridGID. The number GridGID is changed as shown in FIG. 6.
  • FIG. 6 shows conditions of number change of grids within a range of 400 m*400 m.
  • a geographical area as shown in FIG. 6 is divided into 4*4 grids, and accordingly, numbering starts from a point of origin and numbers are increased along the direction of the X axis.
  • GridGID (x, y) ( (40000*1000) /100) * (y/100) + x/100 + 1;
  • a GridGID thereof can be calculated according to the above GridGID calculation formula.
  • Grid searching may use a spiral search algorithm, as shown in FIG. 7.
  • Supposing A is a central searching point (agrid where a player is located) , searching for a person near A is performed in sequence along the direction of an arrow.
  • the Earth has been divided into grids with a side length of 100 m, and a player's information is stored in a different grid according to a location thereof.
  • a GridGID may be selected as a key (key value, also called keyword sometimes)
  • a player’s information in the grid is stored as a value into a hash table, as shown in FIG. 8.
  • a grid number is calculated according to the formula recorded in 2.2, then a player's information is fetched from the hash table according to the grid number, and a player that meets the condition is then determined through calculation.
  • Lbs mainly includes two parts, namely, an Lbsservice and an Lbsstore.
  • the Lbsstore is responsible for organizing a player's spatial geographical information, and storing the player’s spatial geographical information.
  • data is stored in a shared memory, and a player's information is recorded in an operations support system (OSS) log, for the convenience of performing data recovery when a cleaned shared memory is restarted.
  • OSS operations support system
  • the Lbsservice acting as an agent, is responsible for coordinating communication between a GameServer, an Lbsstore and a SOSO Map Server. As described above, it has been known that a function of the Lbs server is to store a player’s spatial geographical information and query nearby players of a player.
  • FIG. 9 is a flowchart of reporting a player’s geographical information.
  • a player sends personal geographical location information to a GameServer from a client, and then the GameServer forwards the received geographical location information to an Lbsservice.
  • the Lbsservice After receiving the geographical information, the Lbsservice sends the geographical location information to a SOSO MAP Server (amap server) and requests parsing the geographical information (HTTP may be used, and in a program, CURL (an open-source file transfer tool that operates in a command line manner by using URL grammar) is used to send an HTTP request and receive HTTP data) .
  • SOSO MAP Server amap server
  • CURL an open-source file transfer tool that operates in a command line manner by using URL grammar
  • the SOSO MAP Server sends a result of parsing the geographical information back to the Lbsservice, and the Lbsservice parses location information, calculates to determine the number of an Lbsstore server where the location information should be stored, and then sends the player’s geographical information to the Lbsstore that is determined through calculation.
  • the Lbsstore stores the player’s geographical information and data, and writes into an OSS log, for the convenience of performing data recovery during restart in future.
  • the Lbsstore sends a storage result response to the Lbsservice, to notify the Lbsservice whether the storage has been completed successfully, and then the Lbsservice forwards the received storage result response to the game server.
  • each player’s location information can be collected, and then the function of acquiring nearby players of a player can be implemented.
  • the process is described as follows:
  • a player sends a message request to an Lbsservice through a GameServer, where the content of the message includes the player’s own location information, and the location information may be a two-dimensional coordinate, and may also be a location string that needs to be parsed by a SOSO MAP Server.
  • a message packet further includes a nearby distance range (radious) , and a timeout limit (expireTm, namely, only a player’s information updated within a certain time interval is needed) .
  • the Lbsservice If a player’s location information is a character string that needs to be parsed by the SOSO MAP Server, the Lbsservice first sends an HTTP message to the SOSO MAP Server, and then the SOSO MAP Server performs location parsing to obtain the player's two-dimensional coordinates.
  • a circumscribed square of a circle is determined through calculation by using a point with coordinates (x, y) as a point of origin and the radious as a radius. Accordingly, data of nearby players is all located in grids that are included in the circumscribed square. Calculation is performed to determine which grids are included in the circumscribed square, and then determine which Lbsstore has data of a corresponding grid stored thereon. Then, a request is sent to these Lbsstores. Refer to FIG. 5.
  • nearby players are included in grids with the number 1 to 9. It is supposed that data included in the grids with the number 1 to 9 is distributed in 3 Lbsstores, namely, N1, N2 and N3. A query request is then sent to the three Lbsstores, to request information of players in these grids, thereby acquiring information of nearby players of the player.
  • an Lbsstore may perform calculation according to a radius and a player’s coordinate point to determine nearby players, and then return a result to an Lbsservice.
  • the Lbsservice then assembles the result returned by the Lbsstore and sends the assembled result to a GameServer, and the GameServer performs a further processing.
  • the processing of the received result by the GameServer is not restricted in this embodiment of the present invention.
  • the following introduces a design solution of the Lbsservice with respect to functions of the Lbsservice.
  • the Lbsservice does not know which Lbsstore has a player’s previous geographical information stored thereon, after calculating to determine an Lbsstore where current geographical information is stored, the Lbsservice sends a message of a set instruction to the Lbsstore, so as to implement storage of geographical information.
  • a message of a delete instruction is then sent to all other Lbsstores in a broadcasting manner, to perform a deletion operation so as to delete the player’s geographical information.
  • FIG. 11 shows a schematic diagram of deleting a playerID 3.
  • a player’s playerID player identification
  • a hash table with a playerID as a key and a GridGID as a value is established on an Lbsstore.
  • a GridGID can only be found on one Lbsstore at most according to a playerID when a delete message is broadcasted.
  • the player's information is deleted according to the GridGID from the hash table where geographical information is stored, and an index relation between the playerID and the GridGID is then deleted.
  • the Earth is divided into 100*100 grids, and each grid has a GridGID.
  • M1 hash (GridGID1) % N;
  • data within a range may be stored in a same machine in a centralized manner by using a larger granularity. That is, the minimum granularity of storage within a range of a same machine should be larger than 100 m.
  • the reason is that the size of a grid is 100*100 after division.
  • the Earth is further divided into grids with a size of 10,000*10,000 (if 10,000 is excessively large, it can be adjusted, and an integral multiple of 100 is feasible) according to a previous division solution. In this way, data of a large grid may be distributed and stored into a same machine.
  • the large grid When the size of a large grid is 10,000*10,000, the large grid includes 10,000 small grids, that is, data of all the 10,000 small grids is stored in a same machine. Each large grid is also numbered according to a previous rule for small grids, and the number is called VirtualMachineGridGID, and referred to as GridGID below.
  • the number of an Lbsstore that a VirtualMachineGridGID (GridGID) belongs to is determined through calculation for a coordinate point (x, y) as follows:
  • an Lbsservice stores a player’s geographical information
  • the number M of an Lbsstore where the player’s geographical information is stored is calculated in the above manner, and then the player’s geographical information is distributed to the Lbsstore.
  • the Lbsstore then calculates a GridGID, and stores data into a hash table.
  • a circumscribed square of a circle is determined through calculation according to a player’s coordinates and a radius, and then it is determined which large grids are included in the circumscribed square (the same calculation manner is used as previously, but the side length of a grid is increased) .
  • GridGID VirtualMachineGridGID
  • the number of a corresponding Lbsstore can be calculated according to the above formula.
  • data within a range is stored in a same machine in a centralized manner by using a larger granularity, so as to meet demands for searching nearby persons (arange of searching for nearby persons will not be infinitely large; otherwise, it is of no sense; and the range is 2 km at most as restricted in a current program) .
  • a current single request of searching for nearby persons is distributed to 1 or 2 Lbsstores in a centralized manner, and may be distributed to 4 Lbsstores at most. In such a manner, a pressure caused by this request to an Lbsstore can be greatly reduced.
  • information of nearby players may be distributed in a plurality of Lbsstores, that is, the Lbsservice needs to receive data returned by the plurality of Lbsstores, so as to obtain a complete query result, and then assemble multiple pieces of data and return the assembled data to the GameServer.
  • a hash table with a playerID as a key and a tagNearPlayersInfo as a value is established.
  • the Lbsservice sends a request to a plurality of Lbsstores for requesting information of nearby players, the Lbsservice inserts a piece of data with a playerID as a key into a Map (atype of text file) , where insertion time, data that has been received, data that should be received (namely, the amount of Lbsstores which the request is distributed to) , a serial number of a message, and the like are recorded.
  • Map atype of text file
  • iReceivedDataPart When the Lbsservice receives a piece of data responded from an Lbsstore, iReceivedDataPart is increased by 1, and if iNeedDataParts is equal to iReceivedDataPart (that is, complete data has been received) , or the time is expired, the received data is sent to the GameServer.
  • Using the Map can also enable a function of controlling the frequency of requesting by a player. For example, if a player sends a first request for acquiring information of nearby players, and immediately sends another request, then the player’s information should be included in the Map, and so the second request can be directly rejected.
  • a timeout limit is defined as 10 s, that is, if a player sends 2 requests for acquiring information of nearby players within 10 s, only the first sent request is processed.
  • hash processing is performed once on a virtualMachineGridGID, and the number of an Lbsstore where a player's information is located is then calculated.
  • a hash (GridGID) is first calculated, and the number of a hash bucket (hash bucket sequencing) where the data is located is obtained by using hash (GridGID) % hashnum.
  • GridGID hash bucket sequencing
  • a GridGID may be further provided with hash processing once again, so as to increase data randomness.
  • the total amount of grids is 80 billion.
  • data of a uint64_t type 64-bit unsigned integer
  • the following Wang/Jenkins hash algorithm is adopted to perform hash processing on the GridGID.
  • the Lbsstore is used for storing a player’s geographical information.
  • a hash table on a shared memory can be used for storing a player’s geographical information.
  • the Earth is divided into 100*100 grids, and a player’s information is stored in such a grid.
  • a key of a hash table is a GridGID of a grid, and a value thereof is a player’s information in the grid.
  • the amount of players may be very great in some grids, and very small in some other girds. Therefore, the hash table needs to support storing different amount of players in grids. If an array is used for a value, the utilization rate of a shared memory may be reduced, and the size of an array is a problem for it is impossible to estimate the maximum amount of players in a grid.
  • a value is stored by using a linked list, and players in the grids are linked in the form of a linked list.
  • a method of inserting at the head of a linked list is adopted to ensure that the latest reported data is placed in the front of the linked list, and logically ensure data in the linked list is sequenced according to the reporting time.
  • This feature is useful during a player’s information garbage collection (GC, namely, removing expired information of a player) , and when only players that report geographical information within a time point are queried during searching for nearby players.
  • GC information garbage collection
  • FIG. 12 is a structural diagram of a hash table for storing a player’s information.
  • a GridIndexNode represents a grid
  • linking of 3 grid nodes represents a hash (key) collision.
  • the collision can be solved in a linked list manner.
  • Information of a player node that is, a PlayerNode can be listed in each grid node, namely GridIndexNode.
  • the amount of players located in a grid indicates the amount of PlayerNodes in the grid.
  • the PlayerNodes are linked in the form of a linked list.
  • GridIndexNode The structural form of a GridIndexNode is as follows:
  • iPlayerNum is used for maintaining the total amount of players in a grid
  • iLastGcTm is the time of a previous grid GC, used for improving efficiency of GC processing, and avoiding unnecessary repeated GC.
  • PlayerNode The structural form of a PlayerNode is as follows:
  • each Lbsstore has a reverse index from playerID to GridGID, as shown in FIG. 13.
  • a hash table may have hundreds of thousands of pieces of a player’s information stored thereon, and there are also hundreds of thousands of buckets. It is supposed that a full scan is performed on a hash table during each regular cleaning. Provided that the time duration is t, an Lbsstore will lose capability of external services within a period of t. In addition, a timeout limit for a player’s information may be several hours, so that it is unnecessary to process all the data at one step.
  • an Lbsstore adopts a bucket-based regular cleaning manner, that is, processes only a limited amount of hash buckets each time, and records the number of a bucket that needs to be processed in next time of tick. Refer to FIG. 14.
  • the whole hash table has N buckets, a time interval of tick is T, and a timeout limit of a player’s information is L.
  • a proper value of m and T can be set to ensure that expired data is timely removed by an Lbsstore, without affecting the capability of the Lbsstore in external services.
  • the amount of buckets processed in each tick may be 500.
  • a bucket processed in each tick is a value within 3 buckets.
  • the grids obtained by division are small, specifically with a size of 100*100.
  • a circumscribed square within a nearby range is determined through calculation, and grids included in the square are determined.
  • all players’ information in the grid belongs to the nearby range, and an error is not exceeding 100 m, which should be acceptable.
  • FIG. 5 nearby players within a radius of r is located in a red square, but it can be simply believed that, players in grids 1, 2, 3, 4, 6, 7, and 9 are located in this range.
  • the size of grids is 100*100, a certain error is allowed, that is, less than 100 m. If a side length of a grid is given, the error is less than the side length of the grid.
  • distance calculation can be omitted. It only needs to find grids included in a square, and output data of players in the grids, so that the calculation amount will be greatly reduced.
  • an embodiment of the present invention provides a solution to increase the side length of a single grid. For example, if the side length of a single grid is 200*200, the number of times of searching is changed to 400. However, if data in a grid is expanded by 4 times, it needs to consider whether GC of a program is affected, and the like. A same grid may have a great amount of data, and more data collisions will occur in a hash bucket.
  • Another solution provided by an embodiment of the present invention is as follows: a map is divided into 1 km*1 km grids to establish a second-level hash; and during searching, a first-level hash, i.e., a grid of 1 km*1 km is searched, and an array with a size of 100 is placed in the large grid, to record a grid that has data.
  • a first-level hash i.e., a grid of 1 km*1 km is searched, and an array with a size of 100 is placed in the large grid, to record a grid that has data.
  • Grids that have data stored are then found from the 25 large grids, and data of players is found from the grids. If there are few grids that have data stored, the number of times of circulating can be greatly reduced in this manner.
  • maintenance in this manner is complex, and during data addition or deletion, maintenance for the index needs time. If the
  • the solution in this embodiment of the present invention can adopt making a record in an OSS log.
  • a shared memory is cleaned, each record is fetched from the OSS log successively for recovery.
  • the Lbsstore has two types of data operations in total, insertion and deletion.
  • Each insertion operation or deletion operation (not including data deletion during GC) , is recorded in an OSS log, and a player’s detailed information is recorded in the insertion log and deletion log.
  • a piece of log can be recorded every hour. If a log expires for a certain time (subject to a timeout limit of a player’s geographical information) , the log is removed.
  • the OSS logs are first sequenced by date, and file reading is started from reading an OSS log recorded at the earliest time. If it is an insertion operation, a record is inserted; and if it is a deletion operation, a record is deleted.
  • An Lbsstore has a reverse index from playerID to GridGID, so as to ensure data uniqueness, and in addition, data reading is started from the earliest file, which can ensure final information of a player is the latest information.
  • a log file has a timeout limit of several hours, the amount of file records should not be excessively great.
  • OSS logs of all the Lbsstores need to be placed under a reading directory of each Lbsstore, for reading when a cleaned shared memory is restarted.
  • File reading is still started from the earliest file, but a virtualMachineGID should be calculated according to a player's coordinates (x, y) (the coordinates are recorded in an OSS) , and virualMachineGID % LbsstoreNum is then calculated. If a number thereof is consistent with the number of a current Lbsstore, the data belongs to the current Lbsstore, and the record is inserted or deleted according to records of the OSS log; otherwise, the record is abandoned and not processed.
  • the time length is related with the total amount of effective OSS records in the whole Lbsstore.
  • a record is made on an OSS log only when geographical information is reported, and the frequency of insertion and deletion operations is not very high.
  • data reading data is read from a magnetic disk in sequence, and the efficiency can be ensured by means of pre-fetching by the magnetic disk and the like.
  • the Lbsservice may consider adopting a consistent hashing manner to distribute data stored in Lbsstores, so as to ensure that during expansion, increasing a machine only leads to invalidation of the content of one machine, and the amount of fetched records is also only related with the data amount of one Lbsstore.
  • the consistent hashing aims to solve excessively heavy load of one machine, and if all pressure should be distributed equally, a plurality of Lbsstores needs to be increased, or a concept of virtual nodes is adopted, thereby increasing complexity, and leading to relatively high complexity of file distribution during re-deployment.
  • An embodiment of the present invention further provides a location server as shown in FIG. 15, including:
  • a grid determining unit 1501 configured to determine a target grid after receiving a locating request including target location information, the target grid including a grid corresponding to the target location information and a grid located a distance within a set range away from the grid corresponding to the target location information, and the grids being obtained by dividing a map into squares;
  • a device determining unit 1502 configured to determine a location based services storage device that a target grid belongs to, data storage being performed on the location based services storage device by using a grid number as a keyword and terminal information as a value, the minimum granularity of storage in each location based services storage device being M times of the side length of a square corresponding to the grid, and M being greater than or equal to 2;
  • a querying unit 1503 configured to query terminal information that corresponds to the target grid from the determined location based services storage device;
  • an information sending unit 1504 configured to send the queried terminal information to a sender of the locating request.
  • the grids are obtained by dividing a map, that is, the grids are corresponding to actual geographical locations.
  • the side length of a grid is the side length of a geographical location corresponding to the grid. If the side length of a grid is smaller, the precision of final locating will be higher; and if the side length of a grid is larger, the amount of stored grids is less, and the time used in searching may be less.
  • the specific length is not restricted in this embodiment of the present invention, and 100 m may be recommended as the side length.
  • M may be set by a person skilled in the art. If terminal information around within a maximum range of 2 km is searched for, the value may be set to 100, 50, or the like, and the specific value thereof is not restricted in this embodiment of the present invention.
  • geographical locations are divided in a grid manner, and grids obtained after division are used for storage of location information; and during a process of location based services, longitude and latitude are not needed to calculate a distance, so as to reduce the calculation amount, thereby improving a server response rate.
  • the minimum granularity used is larger than a grid, so that more adjacent grids can be allocated into a same location based services storage device, and a determined target grid is concentrated in a few location based services storage devices, thereby reducing invocation of location based services storage devices, lowering calculation pressure of the location based services storage devices, and accordingly, further improving system performance of the whole location based services.
  • the size of the grids may be set to be small, so as to improve locating precision and reduce collisions caused by an excessively large amount of location information of a single grid.
  • location information in a location based services storage device may be sourced from information collected by another server, and may also be sourced from information directly collected by the location server.
  • An embodiment of the present invention provides a specific implementation solution for acquiring and storing location information of a terminal, and the details are as follows. Further, as shown in FIG. 16, the location server further includes:
  • an information receiving unit 1601 configured to receive location information and terminal information that are reported by a terminal
  • the grid determining unit 1501 further configured to determine a grid that the location information belongs to;
  • the device determining unit 1502 further configured to determine a location based services storage device that the grid determined by the grid determining unit 1501 belongs to;
  • the information sending unit 1504 further configured to send the location information and terminal information that are reported by the terminal, to the determined location based services storage device for storage.
  • An embodiment of the present invention further provides a preferred storage solution, which can prevent stored data overlay and a consequent data collision, and the details are as follows. Further, data storage is also performed on a location based services storage device by using terminal information as a keyword and a grid number as a value, and the location server further includes:
  • the information sending unit 1504 further configured to send an instruction for deleting location information to a location based services storage device other than the determined location based services storage device, so as to delete the location information that corresponds to the stored terminal information.
  • an instruction for deleting location information is sent to a location based services storage device other than the determined location based services storage device.
  • a specific sending solution may adopt a broadcasting manner, so as to maintain uniqueness of location information of a terminal on a server side.
  • grids may be numbered after division, and then a hash algorithm is adopted to allocate the grids into different location based services storage devices, so as to improve a query rate during querying, and also facilitate subsequent expansion of the location based services storage devices.
  • the details are as follows.
  • the grids are obtained by dividing a map into squares, and are numbered according to a sequence of geographical locations; and correspondence between a grid of the minimum granularity in a location based services storage device and the location based services storage device conforms to a rule of the hash algorithm.
  • the device determining unit 1502 is configured to use a target grid to perform a hash search, so as to determine a location based services storage device that the target grid belongs to.
  • the target grid may be distributed in a plurality of location based services storage devices, based on which an embodiment of the present invention further provides an implementation solution as follows. Further, if the target grid is distributed in two or more location based services storage devices, as shown in FIG. 17, the location server further includes:
  • a packet assembling unit 1701 configured to perform packet assembly of terminal information queried from a location based services storage device
  • the information sending unit 1504 configured to send a packet assembly result of the packet assembling unit to a sender of the locating request.
  • the location server further includes:
  • a locating control unit 1801 configured to determine, if another locating request from the terminal is received, whether a time interval after a previous locating request exceeds a pre-determined threshold, and reject execution of locating if the time interval exceeds the pre-determined threshold.
  • the grid determining unit 1501 is configured to first query a test grid including terminal information in test grids, where the test grid is a test grid corresponding to the target location information, and the test grids are obtained by dividing a map into squares, with a side length greater than that of the aforementioned grid; and determine a grid included in the queried test grid is the target grid.
  • the side length of a test grid is larger, so that a large grid can be used first to filter out a grid without location information in the target grid, and avoid unnecessary searching, thereby reducing the searching amount and improving a system response rate.
  • An embodiment of the present invention further provides a location based services storage device as shown in FIG. 19, including:
  • a request receiving unit 1901 configured to receive a query request from a location server, the query request including a target grid to be queried;
  • a data storage unit 1902 configured to perform data storage by using a grid number as a keyword and terminal information as a value, where the minimum granularity of storage in each location based services storage device is M times of the side length of a square corresponding to the grid; M is greater than or equal to 2; and the grids are obtained by dividing a map into squares;
  • a querying unit 1903 configured to query by using the number of the target grid and acquire terminal information that corresponds to the target grid to be queried;
  • an information sending unit 1904 configured to send the acquired terminal information to the location server.
  • the grids are obtained by dividing a map, that is, the grids are corresponding to actual geographical locations.
  • the side length of a grid is the side length of a geographical location corresponding to the grid. If the side length of a grid is smaller, the precision of final locating will be higher; and if the side length of a grid is larger, the amount of stored grids is less, and the time used in searching may be less.
  • the specific length is not restricted in this embodiment of the present invention, and 100 m may be recommended as the side length.
  • M may be set by a person skilled in the art. If terminal information around within a maximum range of 2 km is searched for, the value may be set to 100, 50, or the like, and the specific value thereof is not restricted in this embodiment of the present invention.
  • geographical locations are divided in a grid manner, and grids obtained after division are used for storage of location information; and during a process of location based services, longitude and latitude are not needed to calculate a distance, so as to reduce the calculation amount, thereby improving a server response rate.
  • the minimum granularity used is larger than a grid, so that more adjacent grids can be allocated into a same location based services storage device, and a determined target grid is concentrated in a few location based services storage devices, thereby reducing invocation of location based services storage devices, lowering calculation pressure of the location based services storage devices, and accordingly, further improving system performance of the whole location based services.
  • the size of the grids may be set to be small, so as to improve locating precision and reduce collisions caused by an excessively large amount of location information of a single grid.
  • an embodiment of the present invention further provides a specific implementation solution as follows for distribution of grids in a location based services storage device and data storage within the grids.
  • numbers of grids stored in the location based services storage device are stored according to a rule of the hash algorithm, and are sequenced by using a hash bucket.
  • location information in a location based services storage device may be sourced from information collected by another server, and may also be sourced from information directly collected by the location server.
  • An embodiment of the present invention provides a specific implementation solution for acquiring and storing location information of a terminal, and also provides a specific implementation solution for maintaining uniqueness of the location information. The details are as follows. Further, as shown in FIG. 20, the location based services storage device further includes:
  • an information receiving unit 2001 configured to receive terminal information and location information that are sent by the location server;
  • the querying unit 1903 further configured to perform searching to determine whether location information that corresponds to the terminal information has existed;
  • a data deleting unit 2002 configured to delete, if a query result obtained by the querying unit 1903 is “existed” , the location information that is found;
  • the data storage unit 1902 configured to store, if a query result obtained by the querying unit 1903 is “not existed” , or the data deleting unit 2002 has completed a deletion, the terminal information into a grid that corresponds to the location information, and storing the location information by using a hash table.
  • An embodiment of the present invention further provides a specific solution for storing location information.
  • location information is stored by means of inserting at the head of a linked list, so that the location information can be stored in a time sequence, thereby facilitating subsequent deletion of invalid data.
  • the details are as follows.
  • the hash table value adopts a data structure of a linked list;
  • the data storage unit 1902 is configured to insert the location information into a linked list of a grid that corresponds to the location information by means of inserting at the lead of a linked list.
  • the location based services storage device further includes:
  • a timeout cleaning unit 2101 configured to fetch a recovery time of a grid, ad if a time interval between the recovery time and a current time exceeds a pre-determined threshold, delete expired location information forward in sequence from the rear of the linked list.
  • a location based services storage device may have many grids stored thereon, and also have many hash buckets. Therefore, if each removal of expired data is performed on all grids in a location based services storage device, it may need much time, and during this period of time, a location server may stagnate, leading to instability of the location server. In order to improve stability of location based services, the process of expired data removal can be performed in steps.
  • the timeout cleaning unit 2101 is configured to select a pre-determined amount of grids in all grids according to a pre-determined sequence, so as to fetch a recovery time.
  • the pre-determined amount of grids may be set randomly, and may also be adjusted depending on a system busyness or idleness degree. For example, if the system is busier, the amount is less; and if the system is idler, the amount is greater. Adopting the solution in this embodiment of the present invention, may not cause stagnation of location based services and can improve stability of location based services.
  • location information and other data may be stored in a shared memory. If processing of shared memory cleaning is executed, data recovery may be needed. As a result, an embodiment of the present invention further provides a solution of data recovery as follows. Further, as shown in FIG. 22, the location based services storage device further includes:
  • a log recording unit 2201 configured to record an insertion operation and a deletion operation of location information into a local end operations support system log;
  • a log cleaning unit 2202 configured to delete, after a local end operations support system log expires, the expired local end operations support system log
  • a recovery control unit 2203 configured to read, during a process of cleaned memory recovery, a record made in a local end operations support system log according to a time sequence of recording in the local end operations support system log, and execute an operation recorded in the operations support system log.
  • an embodiment of the present invention further provides a solution of data recovery during expansion of a location based services storage device, which is specifically described as follows.
  • the recovery control unit 2203 is also configured to acquire operations support system logs of all location based services storage devices; fetch an acquired record of the operations support system logs; and execute, if a current fetched record belongs to a local end location based services storage device, an operation corresponding to the current fetched record.
  • An embodiment of the present invention further provides a location based services system, as shown in FIG. 23, including: a location server 2301 and a location based services storage device 2302, where the location server 2301 is connected to the location based services storage device 2302 in a communication manner; the location server 2301 is any one of location servers provided by the embodiments of the present invention; and the location based services storage device 2302 is any one of location based services storage devices 2302 provided by the embodiments of the present invention.
  • geographical locations are divided in a grid manner, and grids obtained after division are used for storage of location information; and during a process of location based services, longitude and latitude are not needed to calculate a distance, so as to reduce the calculation amount, thereby improving a server response rate.
  • the minimum granularity used is larger than a grid, so that more adjacent grids can be allocated into a same location based services storage device, and a determined target grid is concentrated in a few location based services storage devices, thereby reducing invocation of location based services storage devices, lowering calculation pressure of the location based services storage devices, and accordingly, further improving system performance of the whole location based services.
  • the size of the grids may be set to be small, so as to improve locating precision and reduce collisions caused by an excessively great amount of location information of a single grid.
  • FIG. 24 is a schematic structural diagram of a server provided by an embodiment of the present invention.
  • the server 2400 may vary greatly with different configuration or performance, and may include one or more central processing units (CPU) 2422, a memory 2432, and one or more storage media 2430 (for example, one or more mass storage device) for storing an application program 2442 or data 2444.
  • the memory 2432 and the storage medium 2430 may provide temporary or permanent storage.
  • An application program stored in the storage medium 2430 may include one or more modules (not shown in the figure) , and each module may include a series of instruction operations of a server.
  • the central processing unit 2422 may be set to communicate with the storage medium 2430, and the server 2400 performs a series of instruction operations on the storage medium 2430.
  • the server 2400 may further include one or more power supplies 2426, one or more wired or wireless network interfaces 2450, one or more input/output interfaces 2458, and/or one or more operating systems 2441, for example, Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM and the like.
  • the steps executed by a location server or a location based services storage device may be based on the server structure as shown in FIG. 24.
  • each functional unit is divided on the basis of logical functions, but the division of units is not limited thereto as long as a corresponding function can be implemented.
  • a specific name of each functional unit is only for facilitating distinguishment from each other, but is not intended to limit the protection scope of the present invention.
  • the program may be stored in a computer readable storage medium.
  • the storage medium may be a read-only memory, a magnetic disk, an optical disc, or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
PCT/CN2015/081164 2014-06-10 2015-06-10 Method, apparatus and system for implementing location based services WO2015188750A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020177000594A KR101847360B1 (ko) 2014-06-10 2015-06-10 위치 기반 서비스들을 구현하는 방법, 장치 및 시스템
JP2016559496A JP6222680B2 (ja) 2014-06-10 2015-06-10 位置情報サービスを実施するための方法、装置、およびシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410256324.1A CN104135715B (zh) 2014-06-10 2014-06-10 一种位置服务的实现方法、装置,及系统
CN201410256324.1 2014-06-10

Publications (1)

Publication Number Publication Date
WO2015188750A1 true WO2015188750A1 (en) 2015-12-17

Family

ID=51808223

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/081164 WO2015188750A1 (en) 2014-06-10 2015-06-10 Method, apparatus and system for implementing location based services

Country Status (4)

Country Link
JP (1) JP6222680B2 (ja)
KR (1) KR101847360B1 (ja)
CN (1) CN104135715B (ja)
WO (1) WO2015188750A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182553A (zh) * 2018-11-11 2020-05-19 千寻位置网络有限公司 基准站服务范围的确定方法及系统、定位终端

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104135715B (zh) * 2014-06-10 2015-10-07 腾讯科技(深圳)有限公司 一种位置服务的实现方法、装置,及系统
CN104618851B (zh) * 2015-01-26 2019-03-15 腾讯科技(深圳)有限公司 一种信息处理方法、服务器及终端
CN105005609B (zh) * 2015-07-08 2018-03-13 华东师范大学 距离敏感大小可变化的最优范围位置查询的计算方法
CN106708833B (zh) 2015-08-03 2020-04-07 腾讯科技(深圳)有限公司 基于位置信息获取数据的方法和装置
CN106126575A (zh) * 2016-06-17 2016-11-16 厦门美图之家科技有限公司 一种地理位置服务方法、服务器和系统
CN106354825A (zh) * 2016-08-31 2017-01-25 重庆秒银科技有限公司 基于区块定位的附近地点查询服务处理方法
CN107423445B (zh) 2017-08-10 2018-10-30 腾讯科技(深圳)有限公司 一种地图数据处理方法、装置及存储介质
CN110633883A (zh) * 2018-12-29 2019-12-31 北京奇虎科技有限公司 一种兴趣点poi负载的计算方法和装置
CN112285744A (zh) * 2020-09-24 2021-01-29 北京讯腾智慧科技股份有限公司 一种客户端定位方法、设备,服务终端设备及存储介质
CN113014633B (zh) * 2021-02-20 2022-07-01 杭州云深科技有限公司 预置设备的定位方法、装置、计算机设备及存储介质
CN114527501B (zh) * 2022-01-21 2022-10-14 国家基础地理信息中心 一种vrs最优格网点快速查找方法及系统
KR102618151B1 (ko) * 2022-08-29 2023-12-28 주식회사 페스티벌온 격자 근접 상태 기반 메시징 방법
CN115361438B (zh) * 2022-10-19 2023-02-28 山东远联信息科技有限公司 一种面向云计算和大数据定位的业务处理方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651005A (zh) * 2011-02-24 2012-08-29 北京千橡网景科技发展有限公司 兴趣点搜索方法以及设备
US20120303634A1 (en) * 2011-05-25 2012-11-29 International Business Machines Corporation In-Memory Data Grid Hash Scheme Optimization
CN103699531A (zh) * 2012-09-27 2014-04-02 中国电信股份有限公司 位置搜索方法和位置搜索引擎
CN104135715A (zh) * 2014-06-10 2014-11-05 腾讯科技(深圳)有限公司 一种位置服务的实现方法、装置,及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008175624A (ja) * 2007-01-17 2008-07-31 Sony Ericsson Mobilecommunications Japan Inc 携帯情報端末、経路支援処理方法及び経路支援処理プログラム
JP2010139398A (ja) * 2008-12-12 2010-06-24 Aisin Aw Co Ltd ナビゲーション装置、及びナビゲーション用プログラム
US8618932B2 (en) * 2011-03-18 2013-12-31 Microsoft Corporation Device location detection
JP5091336B2 (ja) * 2011-03-31 2012-12-05 株式会社コナミデジタルエンタテインメント ゲームシステム、それに用いる制御方法及び、コンピュータプログラム
CN103167404A (zh) * 2011-12-14 2013-06-19 北京千橡网景科技发展有限公司 用于确定兴趣点的方法和设备
JP5247927B1 (ja) * 2012-11-27 2013-07-24 キャンバスマップル株式会社 情報検索装置、及び情報検索プログラム
CN103581828B (zh) * 2013-11-14 2017-02-08 三星电子(中国)研发中心 一种查询附近移动终端的方法、服务器和系统
CN103826204B (zh) * 2014-03-12 2018-04-20 北京京东尚科信息技术有限公司 提供移动终端位置信息的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651005A (zh) * 2011-02-24 2012-08-29 北京千橡网景科技发展有限公司 兴趣点搜索方法以及设备
US20120303634A1 (en) * 2011-05-25 2012-11-29 International Business Machines Corporation In-Memory Data Grid Hash Scheme Optimization
CN103699531A (zh) * 2012-09-27 2014-04-02 中国电信股份有限公司 位置搜索方法和位置搜索引擎
CN104135715A (zh) * 2014-06-10 2014-11-05 腾讯科技(深圳)有限公司 一种位置服务的实现方法、装置,及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182553A (zh) * 2018-11-11 2020-05-19 千寻位置网络有限公司 基准站服务范围的确定方法及系统、定位终端
CN111182553B (zh) * 2018-11-11 2023-06-16 千寻位置网络有限公司 基准站服务范围的确定方法及系统、定位终端

Also Published As

Publication number Publication date
CN104135715B (zh) 2015-10-07
CN104135715A (zh) 2014-11-05
KR101847360B1 (ko) 2018-04-09
JP6222680B2 (ja) 2017-11-01
KR20170018015A (ko) 2017-02-15
JP2017511066A (ja) 2017-04-13

Similar Documents

Publication Publication Date Title
WO2015188750A1 (en) Method, apparatus and system for implementing location based services
CN107547633B (zh) 一种用户常驻点的处理方法、装置和存储介质
JP7407209B2 (ja) 情報プッシュ方法及び装置
US6751627B2 (en) Method and apparatus to facilitate accessing data in network management protocol tables
CN107145526B (zh) 一种路网下地理社交关键字反最近邻查询处理方法
JP2004280780A (ja) バックアップ方法、システム、及びプログラム
CN104424229A (zh) 一种多维度拆分的计算方法及系统
WO2017133539A1 (zh) 业务数据的处理方法、装置及系统
CN111382146A (zh) 数据存储控制方法、装置、设备以及存储介质
WO2018184305A1 (zh) 基于社交网络的群组查找方法、装置、服务器和存储介质
CN111258978A (zh) 一种数据存储的方法
CN105426375A (zh) 一种关系网络的计算方法及装置
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN111459723A (zh) 终端数据处理系统
CN110909072B (zh) 一种数据表建立方法、装置及设备
CN112817980B (zh) 一种数据索引处理方法、装置、设备及存储介质
CN110765125A (zh) 一种存储数据的方法及装置
CN108960378A (zh) 一种数据下载方法、系统、装置和存储介质
CN104933066A (zh) 一种数据处理的方法和系统
CN109769202B (zh) 流量数据的定位方法及装置、存储介质、服务器
CN111835785A (zh) 一种基于查询机制的i2p网络节点的探测方法
JP2021524085A (ja) メッセージ処理方法、装置およびシステム
CN108694219B (zh) 一种数据处理方法及装置
CN111143711A (zh) 对象搜索方法及系统
CN111611337A (zh) 终端数据处理系统

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016559496

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20177000594

Country of ref document: KR

Kind code of ref document: A

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC ( EPO FORM 1205A DATED 12/05/2017 )

122 Ep: pct application non-entry in european phase

Ref document number: 15807483

Country of ref document: EP

Kind code of ref document: A1