Target address determination method, apparatus, device, and storage medium
By determining the candidate address to which the terminal belongs, obtaining the attribute information and account association data of the target object, and using R-tree indexing and ray casting to calculate the number of intersections, the problem of inaccurate merchant site selection in existing technologies is solved, and fast and accurate site selection results are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-02-10
- Publication Date
- 2026-03-27
AI Technical Summary
Existing technologies cannot accurately determine the population or penetration rate within a geofence, making it impossible to recommend suitable locations for businesses. Heat maps also cannot provide precise guidance for business site selection.
By determining the candidate address to which the terminal belongs, the attribute information of the target object and the account association data of the terminal are obtained. The number of intersections between the terminal and the geofence is quickly calculated using R-tree indexing and ray casting. The target address is determined by combining the number of terminals and data analysis.
It enables the rapid and accurate determination of target site selection results, improving the accuracy and efficiency of site selection for merchants.
Smart Images

Figure CN116628113B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of computers, and particularly relates to a target address determination method and device, equipment and a storage medium. BACKGROUND
[0002] In related technologies, a heat map can be used to describe the distribution, density and change trend of people by superimposing blocks of different colors on a map. However, the heat map can only present the sampling point density and cannot be accurate to the range of 100 meters around a certain store, nor can it provide the population number accurate to a geographic fence or calculate the penetration rate. It is also unable to recommend a site selection location for a merchant.
[0003] Therefore, it is necessary to provide a target address determination method and device, equipment and a storage medium, which can accurately determine the number of terminals belonging to each candidate address and the target data corresponding to each candidate address according to the candidate address to which each terminal belongs, so as to quickly and accurately determine the site selection result of a target object. SUMMARY
[0004] The present application provides a target address determination method and device, equipment and a storage medium, which can quickly and accurately determine the site selection result of a target object.
[0005] In one aspect, the present application provides a target address determination method, which comprises:
[0006] determining at least two terminals according to at least two candidate addresses of a target object;
[0007] determining a candidate address to which each terminal belongs;
[0008] obtaining attribute information of the target object and target data corresponding to each candidate address, the target data being account association data corresponding to the terminal belonging to the candidate address;
[0009] determining a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address and the attribute information of the target object, the target address being a site selection result of the target object.
[0010] In another aspect, a target address determination device is provided, which comprises:
[0011] a terminal determination module configured to determine at least two terminals according to at least two candidate addresses of a target object;
[0012] a candidate address determination module configured to determine a candidate address to which each terminal belongs;
[0013] The target data acquisition module is configured to acquire attribute information of the target object and target data corresponding to each candidate address, the target data being account-associated data corresponding to a terminal belonging to the candidate address.
[0014] The target address determination module is configured to determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address, and the attribute information of the target object.
[0015] In another aspect, a target address determination device is provided, which includes a processor and a memory, the memory storing at least one instruction or at least one program, the at least one instruction or the at least one program being loaded and executed by the processor to implement the target address determination method as described above.
[0016] In another aspect, a computer storage medium is provided, which stores at least one instruction or at least one program, the at least one instruction or the at least one program being loaded and executed by a processor to implement the target address determination method as described above.
[0017] In another aspect, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions to cause the computer device to perform to implement the target address determination method as described above.
[0018] The target address determination method, device, equipment and storage medium provided by the present application have the following technical effects:
[0019] The present application determines at least two terminals according to at least two candidate addresses of a target object, determines a candidate address to which each terminal belongs, acquires attribute information of the target object and target data corresponding to each candidate address, the target data being account-associated data corresponding to a terminal belonging to the candidate address, and determines a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address, and the attribute information of the target object. The present application can accurately determine the number of terminals belonging to each candidate address and the target data corresponding to each candidate address according to the candidate address to which each terminal belongs, and can quickly and accurately determine the address selection result of the target object in combination with the attribute information of the target object. BRIEF DESCRIPTION OF DRAWINGS
[0020] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, and the advantages thereof, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0021] Figure 1 is a schematic diagram of a target address determination system provided by an embodiment of the present application;
[0022] Figure 2 is a flowchart of a target address determination method provided by an embodiment of the present application;
[0023] Figure 3 is an example of a flowchart of a method for determining a candidate address of a terminal provided by an embodiment of the present application;
[0024] Figure 4 is an example of a flowchart of a method for determining a candidate address of a terminal provided by an embodiment of the present application;
[0025] Figure 5 is a flowchart of a method for determining a candidate address of a terminal according to the number of intersection points provided by an embodiment of the present application;
[0026] Figure 6 is a flowchart of a method for determining the number of intersection points of a ray and a target geofence boundary provided by an embodiment of the present application;
[0027] Figure 7 is an example of a flowchart of a method for determining a target address provided by an embodiment of the present application;
[0028] Figure 8 is an example of a flowchart of a method for determining a target address provided by an embodiment of the present application;
[0029] Figure 9 is a schematic diagram of a rectangular structure corresponding to an R-tree provided by an embodiment of the present application;
[0030] Figure 10 is a schematic diagram of a rectangular structure represented by a node in an R-tree provided by an embodiment of the present application;
[0031] Figure 11 is a schematic diagram of a geofence provided by an embodiment of the present application.
[0032] Figure 12 is an interface diagram for constructing a geofence provided by an embodiment of the present application.
[0033] Figure 13Figure 1 is a structural schematic diagram of a target address determination device provided by an embodiment of the present application.
[0034] Figure 14 Figure 2 is a structural schematic diagram of a server provided by an embodiment of the present application. DETAILED DESCRIPTION
[0035] Cloud technology refers to a kind of hosting technology that unifies a series of resources such as hardware, software, network, etc. in a wide area network or a local area network to realize data calculation, storage, processing and sharing.
[0036] Cloud technology is a general term of network technology, information technology, integration technology, management platform technology, application technology, etc. based on cloud computing business model application, which can form a resource pool and be used on demand, flexibly and conveniently. Cloud computing technology will become an important support. The background service of a technical network system needs a large amount of computing and storage resources, such as video websites, picture websites and more portals. With the high development and application of the Internet industry, every item may have its own identification mark in the future, which needs to be transmitted to the background system for logical processing. Different levels of data will be processed separately, and various industry data need strong system support, which can only be realized through cloud computing.
[0037] Big data refers to a collection of data that cannot be captured, managed and processed within a certain time range by conventional software tools, and is a large amount of high-growth and diversified information assets that need new processing modes to have stronger decision-making, insight discovery and process optimization capabilities. With the advent of the cloud era, big data has attracted more and more attention. Big data needs special technology to effectively process a large amount of data over time. The technologies suitable for big data include large-scale parallel processing databases, data mining, distributed file systems, distributed databases, cloud computing platforms, the Internet and scalable storage systems. The target data corresponding to the candidate address in the embodiment are all big data.
[0038] The technical solutions in the embodiments of the present application will be described clearly and completely in combination with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor belong to the scope of protection of the present application.
[0039] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above drawings are used to distinguish similar objects, and do not necessarily have to describe a specific order or sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or server including a series of steps or units does not have to be limited to those steps or units clearly listed, but can include other steps or units not clearly listed or inherent to these processes, methods, products or devices.
[0040] It can be understood that in the specific embodiments of the present application, user information, account association data, etc. are involved, and when the above embodiments of the present application are applied to specific products or technologies, user permission or consent needs to be obtained, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of countries and regions.
[0041] The professional terms involved in the present embodiment are explained as follows:
[0042] Geo-fencing: A typical application of LBS, Geo-fencing is to enclose a virtual geographical boundary with a virtual fence. When a mobile phone enters, leaves or moves within a certain geographical area, the mobile phone can receive automatic notifications and warnings. With the Geo-fencing technology, location-based social networking sites can help users automatically register when entering a certain area. LBS (Location Based Services) refers to services developed around geographic location data.
[0043] Map dotting: Given a coordinate point, all POIs within a certain range (such as 3 kilometers around) and users who have visited the POI within a certain time are obtained.
[0044] POI: Point of Interest, interest point; in a geographic information system, a POI can be a house, a shop, a mailbox, a bus stop, etc.
[0045] R-tree: A tree data structure used for storage of spatial data. For example, it can be used to index multidimensional data such as geographical locations, rectangles, and polygons. In real life, R-trees can be used to store spatial information on a map, such as the locations of restaurants, or the polygons that make up the edges of streets, buildings, lake shorelines, and coastlines. Then it can be used to answer questions like "find museums within 2 km of me", "retrieve all road segments within 2 km of me" (to be displayed in a navigation system), or "find the closest gas station" (in terms of straight-line distance). R-trees can also be used to speed up nearest neighbor searches using various distance metrics, including great-circle distance.
[0046] Please refer to Figure 1 , Figure 1 is a schematic diagram of a target address determination system provided by an embodiment of the present application, as Figure 1 indicated, the target address determination system can at least include a server 01 and a client 02.
[0047] Specifically, in the embodiment of the present application, the server 01 can include a standalone server, or a distributed server, or a server cluster composed of multiple servers, or a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and basic cloud computing services such as big data and artificial intelligence platforms. The server 01 can include a network communication unit, a processor, a memory, and the like. Specifically, the server 01 can determine at least two terminals according to at least two candidate addresses of a target object; determine the candidate address to which each terminal belongs; obtain attribute information of the target object and target data corresponding to each candidate address; and determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address, and the attribute information of the target object.
[0048] Specifically, in the embodiment of the present application, the client 02 can include a smart phone, a desktop computer, a tablet computer, a notebook computer, a digital assistant, a smart wearable device, a smart speaker, a vehicle-mounted terminal, a smart television, and the like. It can also include software running on physical devices, such as web pages provided by service providers to users, and applications provided by service providers to users. Specifically, the client 02 can be used to display the target address in a map.
[0049] A target address determination method provided by an embodiment of the present application is described below, Figure 2is a flowchart of a target address determination method provided by an embodiment of the present application. The present specification provides method operation steps as described in the embodiments or flowcharts, but more or fewer operation steps can be included based on conventional or non-creative labor. The order of steps listed in the embodiments is only one of the many execution orders of the steps, and does not represent the only execution order. In actual system or server product execution, the method order shown in the embodiments or the drawings can be executed in sequence or in parallel (for example, in a parallel processor or multi-thread processing environment). Specifically as shown in Figure 2 The method can include:
[0050] S201: determining at least two terminals according to at least two candidate addresses of a target object.
[0051] In an embodiment of the present application, the target object can be an offline store, a shop, etc. In the site selection process of the target object, a plurality of candidate addresses can be set in advance, so as to determine the best address.
[0052] In an embodiment of the present application, at least two terminals in a region where the at least two candidate addresses of the target object are located can be determined according to the region; for example, a city or a province where the candidate addresses are located can be determined according to the location of the candidate addresses, so as to determine the at least two terminals. The specific number of terminals is determined according to the region where the candidate addresses are located, for example, all terminals in the region can be determined. The terminals include but are not limited to mobile phones, computers, smart voice interaction devices, smart home appliances, vehicle-mounted terminals, aircraft, etc. The embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, intelligent transportation, and assisted driving.
[0053] S203: determining a candidate address to which each terminal belongs.
[0054] In an embodiment of the present application, after all the terminals are determined, the candidate address to which each terminal belongs can be determined.
[0055] In an embodiment of the present application, as shown in Figure 3 The determination of the candidate address to which each terminal belongs includes:
[0056] S20301: determining a point of interest corresponding to each candidate address according to a target distance corresponding to each candidate address.
[0057] In an embodiment of the present application, the determination of the point of interest corresponding to each candidate address according to the target distance corresponding to each candidate address includes:
[0058] determining latitude and longitude information corresponding to each candidate address;
[0059] In the embodiments of the present application, the latitude and longitude information of each candidate address in the earth can be acquired.
[0060] According to the latitude and longitude information corresponding to each candidate address and the corresponding target distance, the target region of each candidate address is determined.
[0061] In the embodiments of the present application, the target distance corresponding to each candidate address can be acquired; when the target object is a store, the target distance can be the delivery distance of the store; and according to the latitude and longitude information corresponding to each candidate address and the corresponding target distance, the target region of each candidate address can be determined. The target region is a rough screening region of the point of interest, and can be used to determine the target point of interest.
[0062] In the embodiments of the present application, the determination of the target region of each candidate address according to the latitude and longitude information corresponding to each candidate address and the corresponding target distance can include:
[0063] According to the latitude and longitude information corresponding to each candidate address and the corresponding target distance, the latitude difference value and the longitude difference value corresponding to each candidate address are determined.
[0064] According to the latitude difference value and the longitude difference value corresponding to each candidate address, the target region of each candidate address is determined.
[0065] In the embodiments of the present application, for example, to screen all POIs within 3 km from the candidate address A point (116E, 40N), the two longitude coordinates 3 km away from the longitude of A point and the two latitude coordinates 3 km away from the latitude of A point can be calculated with A point as the origin; then one side of the rectangle is determined according to the two longitude coordinates, the other side of the rectangle is determined according to the two latitude coordinates, and the screening region of the square is determined according to the two sides, as the target region of any candidate address.
[0066] Based on the target region of each candidate address, the point of interest corresponding to each candidate address is determined.
[0067] In the embodiments of the present application, all points of interest in each candidate address can be acquired.
[0068] S20303: Based on the distance between each candidate address and the point of interest corresponding to each candidate address, the target point of interest of each candidate address is determined.
[0069] In the embodiments of the present application, the target point of interest of each candidate address can be one or multiple.
[0070] In the embodiments of the present application, before the determination of the target point of interest of each candidate address based on the distance between each candidate address and the point of interest corresponding to each candidate address, the method further includes:
[0071] obtaining first coordinate information of each candidate address and second coordinate information of a point of interest corresponding to each candidate address;
[0072] determining a distance between each candidate address and the point of interest corresponding to each candidate address according to the first coordinate information of each candidate address and the corresponding second coordinate information.
[0073] In a specific embodiment, in order to calculate the distance between two points of longitude and latitude A(ja, ωa), B(jb, ωb) on the earth, the earth is regarded as a standard sphere, and only the included angle θ of the radii formed by the two points to the center of the earth needs to be calculated, and the distance of the two points is I=Rθ.
[0074] A right-angle coordinate system is established with the center of the sphere as the center, and the coordinates of A and B can be written as A(Rcosωasinja, Rcosωacosja, Rsinωa), B(Rcosωbsinjb, Rcosωbcosjb, Rsinωb));
[0075] The included angle of the two vectors (by using dot product) can be calculated as follows:
[0076] cosθ=cosωbcosωacos(jb-ja)+sinωasinωbcosθ
[0077] When ja and jb are not much different, cos(jb-ja) is close to 0.999, and thus, the result is inaccurate; therefore, the formula is once transformed as follows: a term of cosωacosωb is added to the equation and a term of cosωacosωb is subtracted from the equation.
[0078] cosθ=cosωbcosωacos(jb-ja)+sinωasinωb+cosωacosωb-cosωacosωb=cosωbcosωacos(jb-ja)+cosωacosωb+cos(ωa-ωb)=(cos(jb-ja)-1)cosωacosωb+cos(jb-ja)
[0079] The formula is twice transformed as follows:
[0080] (1-cosθ) / 2=(1-cos(jb-ja)) / 2+(1-cos(jb-ja)) / 2cosωacosωb
[0081] Define haversine(θ)=sin 2 (θ / 2)=(1-cosθ) / 2, then
[0082] haversine(θ) = haversine(jb-ja) + haversine(jb-ja)cosωacosωb;
[0083] In the embodiment, the sin is used to replace the cos, so that the calculation accuracy is improved.
[0084] In a specific embodiment, it takes about 4 seconds to calculate the distance between 1 million POIs by using the calculation formula in the embodiment, so that the calculation speed is improved significantly.
[0085] S20305: determining the terminal belonging to each target interest point;
[0086] In the embodiment, the target interest point POI can be a shop, and the terminal entering the shop can be determined by the map dotting method, so that the terminal belonging to each target interest point is determined.
[0087] S20307: determining the candidate address to which each terminal belongs according to the target interest point of each candidate address and the terminal belonging to each target interest point.
[0088] In the embodiment, the candidate address and the terminal can be matched through the target interest point. Specifically, all the terminals corresponding to the target interest point can be determined as the terminal corresponding to the candidate address corresponding to the target interest point.
[0089] In the embodiment, the target region corresponding to each candidate address can be preliminarily screened, and then the distance between each interest point in the target region and the candidate address is calculated, so that the target interest point corresponding to each candidate address is determined, and the candidate address to which each terminal belongs is quickly determined according to the target interest point, so that the speed of determining the candidate address to which each terminal belongs is improved.
[0090] In the embodiment, as shown in the following table, the determination of the candidate address to which each terminal belongs includes: Figure 4
[0091] S2031: obtaining the coordinate information of each terminal;
[0092] In the embodiment, the coordinate information of each terminal in the map can be obtained.
[0093] S2033: determining the geographic fence of each candidate address;
[0094] In the embodiment, the geographic fence of each candidate address can be determined according to the target distance corresponding to each candidate address. The target distance can be the delivery distance of the candidate address, and the geographic fence can be used to determine the delivery range of the candidate address.
[0095] In the embodiments of the present application, the geographic fence in which the candidate address is located can also be determined according to the candidate address; as shown in Figure 11 Figure 11 is a part of the region map of XX city, and the polygons therein are pre-constructed geographic fences. The geographic fence to which the candidate address belongs can be determined according to the coordinate information corresponding to the candidate address.
[0096] In a specific embodiment, the geographic fence corresponding to the candidate address can be determined by determining the candidate address and the city in which the candidate address is located; as shown in Figure 12 On the terminal side, the user can input the candidate address (residential address) and the corresponding province and city, and the corresponding geographic fence can be displayed.
[0097] S2035: Determine a ray pointing to each candidate address for each terminal with the coordinate information of each terminal as a starting point, and the ray passes through the geographic fence of each candidate address;
[0098] S2037: Determine the candidate address to which each terminal belongs according to the ray pointing to each candidate address for any terminal.
[0099] In the embodiments of the present application, the candidate address to which each terminal belongs can be determined by the ray method. The core calculation step of extracting offline crowds based on geographic fences is to select a polygon, and to determine whether the LBS address of the user belongs to the inside or periphery of the selected polygon. The ray method can be used. The ray method is as follows: a ray is drawn from the point, and the number of intersection points of the ray and the boundary of the polygon is calculated. If the number of intersection points is odd, the point is inside the polygon, otherwise the point is outside the polygon.
[0100] The core point of the algorithm is to traverse each edge of the polygon. If the vertical coordinate of the measured point is within the vertical coordinate range of the two vertices of the edge, and the measured point is on the right side (or left side) of the edge, count once. If the number of times is odd, the measured point is within the selected range, otherwise the measured point is outside the selected range.
[0101] In the embodiments of the present application, as shown in Figure 5 The method for determining the candidate address to which each terminal belongs according to the ray pointing to each candidate address for each terminal includes the following steps.
[0102] S20371: Determine the number of intersection points of the ray pointing to each candidate address for any terminal and the boundary of each geographic fence.
[0103] In the embodiments of the present application, before the step of determining the number of intersection points of the ray pointing to each candidate address for each terminal and the boundary of each geographic fence, the method further includes the following steps.
[0104] Determine the number of edges of each candidate address corresponding to the geographic fence; the geographic fence is a polygon structure.
[0105] The determination of the number of intersection points of the ray of each terminal pointing to each candidate address and the boundary of each geographic fence includes:
[0106] If the number of edges of any geographic fence is less than or equal to a preset value, the number of intersection points of the ray corresponding to any terminal and each edge of the any geographic fence is calculated.
[0107] In the embodiments of the present application, the preset value can be set according to actual conditions. When the number of edges of the geographic fence is small, the number of intersection points of the ray and each edge of the geographic fence can be quickly determined.
[0108] The sum of the number of intersection points corresponding to each edge of the any geographic fence is determined as the number of intersection points of the ray corresponding to the any terminal and the boundary of the any geographic fence.
[0109] In the embodiments of the present application, the sum of the number of intersection points corresponding to each edge of the any geographic fence can be calculated to obtain the number of intersection points of the ray corresponding to the any terminal and the boundary of the any geographic fence.
[0110] In the embodiments of the present application, when the number of edges of the geographic fence is small, the position relationship between the terminal and the geographic fence can be quickly determined by calculating the number of intersection points of the ray and each edge of the geographic fence, so that the candidate address to which each terminal belongs can be quickly determined.
[0111] In the embodiments of the present application, the ray method is sufficient when the number of polygons is small, but if the number of candidate polygons increases sharply, the time consumption will be too long according to the current scheme. Assuming that there are 10 million candidate users, each person needs to traverse each edge of each polygon, and the calculation amount will be very large. Since the ray method itself also has a certain amount of calculation, compared with the R-tree index in the polygon selection, the effect of the R-tree index in the geographic fence can be highlighted in higher dimensions. When the number of edges of the geographic fence is large, the position relationship between the terminal and the geographic fence can be determined by constructing an R-tree.
[0112] In the embodiments of the present application, the R-tree is a balanced tree that divides a one-dimensional straight line into several line segments. When searching for a point that meets a certain requirement, only the line segment to which it belongs needs to be searched. This idea is actually to first find a large space, and then gradually narrow down the space to be searched, and finally find the solution that meets the requirements in a minimum space that cannot be divided. The use rules of the R-tree are as follows:
[0113] 1. Use the minimum rectangle to represent the polygon, only need to find the (left lower corner, right upper corner) coordinates to find the minimum rectangle that can frame the polygon {(minX, minY), (maxX, maxY)}; the minimum bounding rectangle (MBR) unified expression: {(Lx, Ly), (Ux, Uy)}
[0114] 2. Establish R-tree index for the minimum bounding rectangle
[0115] 3. Search
[0116] a. First, quickly judge whether the user's location is covered by the bounding rectangle through the R-tree (the average query complexity of the R-tree is O(log(n)), n is the number of polygons)
[0117] b. If it is covered by the bounding rectangle, it is still necessary to further judge whether it is in the polygon inside the bounding rectangle, and the above ray method is used to judge.
[0118] c. In the embodiment of the application, as shown in Figure 6 the number of intersection points of the ray pointing to each candidate address by any terminal and the boundary of each geographic fence, comprising:
[0119] S203711: If the number of edges of the target geographic fence is greater than the preset value, an R-tree is constructed according to the minimum bounding rectangle corresponding to each edge of the target geographic fence; the nodes in the R-tree represent the rectangles; the target geographic fence is the geographic fence corresponding to any one of the at least two candidate addresses;
[0120] In the embodiment of the application, the R-tree is constructed according to the minimum bounding rectangle corresponding to each edge of the target geographic fence, comprising:
[0121] The minimum bounding rectangle corresponding to each edge of the target geographic fence is constructed to obtain a first number of rectangles; and the first number of rectangles are taken as the current rectangles.
[0122] In the embodiment of the application, the minimum bounding rectangle corresponding to each edge can be constructed first, and the first number is the same as the number of edges of the target geographic fence.
[0123] The second number of adjacent current rectangles are updated.
[0124] In the embodiment of the application, the second number can be greater than 2, and on the basis of the first number of rectangles, the second number of adjacent rectangles can be selected to continue to construct the minimum bounding rectangle. For example, any two adjacent rectangles can be selected to construct the corresponding minimum bounding rectangle.
[0125] If the number of rectangles indicated by the update result is greater than one, the update result is taken as a current rectangle again, and the step of updating the second number of adjacent current rectangles is repeated until the number of rectangles indicated by the update result is one; wherein the number of rectangles indicated by the update result is determined based on the first number and the second number.
[0126] In the embodiments of the present application, in the rectangle updating process, the area of the minimum circumscribed rectangle becomes larger and larger, and the number of rectangles included therein becomes larger and larger, until the number of the minimum circumscribed rectangle is one, and the updating is no longer performed.
[0127] Based on the minimum circumscribed rectangle corresponding to each edge and the update result, an R-tree is constructed; wherein the leaf node of the R-tree represents the minimum circumscribed rectangle corresponding to each edge, the node other than the leaf node in the R-tree represents the rectangle corresponding to the update result, and the branch of the R-tree represents the association relationship between different rectangles.
[0128] In the embodiments of the present application, the R-tree can be constructed according to the construction order of the rectangle.
[0129] S203713: traversing the R-tree to find a target rectangle intersected by any ray corresponding to any terminal;
[0130] In the embodiments of the present application, the R-tree can be used to first determine the rectangle with the largest area intersected by the ray, i.e. the target rectangle.
[0131] S203715: determining a target edge intersected by the any ray in the target geographic fence according to the target rectangle;
[0132] In the embodiments of the present application, the determination of the target edge intersected by the any ray in the target geographic fence according to the target rectangle comprises:
[0133] determining a target node corresponding to the target rectangle, and taking the target node as a current node;
[0134] determining a child node corresponding to the current node, and judging whether the any ray intersects with the rectangle represented by the child node if the child node is not a leaf node;
[0135] if intersecting, taking the rectangle represented by the child node as a current node again, and repeating the steps of determining the child node corresponding to the current node and judging whether the any ray intersects with the rectangle represented by the child node until the child node is a leaf node;
[0136] determining the edge corresponding to the leaf node as the target edge.
[0137] In a specific embodiment, as shown in Figure 9 the largest enclosing rectangle (1) is first found, then the enclosing rectangle (2) is further found, then the enclosing rectangle (3) is determined, and finally the three polygons R8, R9 and R10 included in the rectangle (3) are determined, the edges corresponding to the polygons R8, R9 and R10 are all determined as target edges, so that the target edges of the ray can be quickly determined.
[0138] In the embodiment of the present application, the data stored in the leaf node of the node storage structure of the R-tree is in the form of (I, tuple-identifier).
[0139] The tuple-identifier is a pointer to a spatial object, which is n-dimensional. I is a rectangle in an n-dimensional space, and can exactly enclose all points in the n-dimensional space represented by the records in the leaf node. For example, for an R-tree index in a two-dimensional space, I is a rectangle as shown in the figure, and the two tuple-identifiers store the coordinates of the lower left corner and the upper right corner of the rectangle. Figure 10
[0140] The data structure stored in the non-leaf node of the R-tree is as follows:
[0141] (I, child-pointer)
[0142] The child-pointer is a pointer to a child node, and I is a rectangle covering all rectangles corresponding to the child nodes.
[0143] In the embodiment of the present application, after the target rectangle is determined, the corresponding leaf node can be found according to the target rectangle, so that the target edge can be quickly determined.
[0144] S203717: Determine the number of intersection points of the any ray and the target geographic fence boundary according to the number of intersection points of the any ray and the target edge.
[0145] In the embodiment of the present application, the target edge can be one or more; the number of intersection points of the any ray and the target geographic fence boundary can be determined according to the number of intersection points of the any ray and the target edge.
[0146] S20373: Determine the candidate address corresponding to the geographic fence with an odd number of intersection points as the candidate address of the any terminal.
[0147] In the embodiment of the present application, if the number of intersection points of the geographic fence and the ray corresponding to each terminal is odd, it indicates that the terminal is in the geographic fence, and the candidate address corresponding to the geographic fence is determined as the candidate address of the terminal.
[0148] In the embodiments of the present application, most of the application geographic fence polygons are relatively simple, but sometimes some particularly complex polygons are encountered, such as the number of edges of a single polygon is more than 100,000, at this time, it is very time-consuming to perform a ray method on the complex polygon (because the time complexity of the ray method is O(N), N is the number of polygon edges).
[0149] The edges of the polygon with a large number of edges (such as more than 10,000) can be individually indexed by R-tree. First, a minimum bounding rectangle is constructed for each edge of the polygon, and then an R-tree index is constructed based on the minimum bounding rectangles. In this way, when the intersection point is calculated by the ray method, it is first determined whether the ray intersects with the bounding rectangle by R-tree, and finally the edges screened by R-tree are accurately calculated for intersection judgment, and the time complexity is reduced from O(N) to O(Log(N)), which greatly improves the calculation efficiency.
[0150] In a specific implementation, the range of the candidate crowd of the geographic fence circle can be selected, and then it is determined whether the LBS points are in the geographic fence. Ten thousand points are randomly determined, and whether the ten thousand points are in the geographic fence is determined by using the original ray method (original time-consuming) and the R-tree method (optimized time-consuming) respectively.
[0151] For the geographic fence with the number of edges from 24 to 208, the difference between the optimized time-consuming and the original time-consuming and the ratio of the optimized time-consuming to the original time-consuming are calculated respectively, and the test results are shown in Table 1.
[0152] Table 1
[0153] Edge count Optimized elapsed time - original elapsed time Optimized elapsed time / original elapsed time 24 0.145011187 2.990629766 47 0.096490622 1.800770476 70 0.269369841 2.362373418 93 0.180216074 1.520725162 116 0.198428154 1.631872725 139 0.026855707 1.063861705 162 0.017213345 1.040696092 185 -0.043547153 0.90312267 208 -0.133030891 0.742021213
[0154] The embodiments test the geographic fence with the number of edges from 24 to 208 (some of the number of edges are extracted), and it can be seen that when the number of edges of the geographic fence is 185, the method of constructing R-tree can speed up the calculation.
[0155] For the geographic fence with the number of edges from 200 to 19702, the difference between the optimized time-consuming and the original time-consuming and the ratio of the optimized time-consuming to the original time-consuming are calculated respectively, and the test results are shown in Table 2.
[0156] Table 2
[0157]
[0158]
[0159]
[0160] The embodiment tests the number of edges from 200 to 19702 (some edges are extracted), and when the number of edges of the geofence is about 1500, the time consumption of the optimized method can be reduced by about 50%, and when the number of edges increases to 10000, the time consumption is reduced by 90%. It can be seen that when the number of edges of the geofence is large, the construction of the R-tree can significantly improve the calculation speed of the number of intersection points of the geofence boundary and the rays.
[0161] In the embodiment of the application, the candidate address to which each terminal belongs can be quickly and accurately determined through the method of the geofence and the construction of the R-tree.
[0162] S205: Obtain attribute information of the target object and target data corresponding to each candidate address, the target data being account association data corresponding to a terminal belonging to the candidate address.
[0163] In the embodiment of the application, the attribute information of the target object can include but is not limited to the information such as the commodity type of the target object and the applicable crowd; and the account association data can include but is not limited to the user portrait data and the user behavior data. The account association data is obtained with the consent of the user, and the corresponding data use is within the scope complying with laws and regulations.
[0164] S207: Determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address and the attribute information of the target object; the target address being a site selection result of the target object.
[0165] In the embodiment of the application, as shown in Figure 7 determining a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address and the attribute information of the target object includes:
[0166] S2071: Determine the number of terminals belonging to each candidate address according to the candidate address to which each terminal belongs.
[0167] S2073: Determine the number of associated accounts of each candidate address according to the terminals belonging to each candidate address; the number of associated accounts being the number of target data having an association relationship with the attribute information of the target object.
[0168] S2075: Determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address.
[0169] In the embodiment of the application, as shown in Figure 8As shown, the target address is determined from the at least two candidate addresses according to the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address, which comprises:
[0170] S20751: Determine a first weight of the number of terminals and a second weight of the number of associated accounts.
[0171] In the embodiments of the present application, the first weight and the second weight can be set according to actual needs, and the first weight can be set to be greater than the second weight, or the first weight can be set to be less than the second weight.
[0172] S20753: Determine a comprehensive score result of each candidate address according to the number of terminals belonging to each candidate address, the number of associated accounts corresponding to each candidate address, the first weight, and the second weight.
[0173] In the embodiments of the present application, the determination of the comprehensive score result of each candidate address according to the number of terminals belonging to each candidate address, the number of associated accounts corresponding to each candidate address, the first weight, and the second weight can comprise:
[0174] Calculate the product of the number of terminals belonging to each candidate address and the first weight to obtain a first value;
[0175] Calculate the product of the number of associated accounts corresponding to each candidate address and the second weight to obtain a second value;
[0176] Calculate the sum of the first value and the second value corresponding to each candidate address to obtain the comprehensive score result of each candidate address.
[0177] S20755: Sort the at least two candidate addresses according to the comprehensive score result of each candidate address.
[0178] In the embodiments of the present application, each candidate address can be sorted in descending order of the corresponding comprehensive score result to obtain a first sorting result, or each candidate address can be sorted in ascending order of the corresponding comprehensive score result to obtain a second sorting result.
[0179] S20757: Determine the target address from the at least two candidate addresses according to the sorting result.
[0180] In the embodiments of the present application, the candidate address at the top of the first sorting result can be determined as the target address, or the candidate address at the end of the second sorting result can be determined as the target address.
[0181] In the embodiments of the present application, after the target address is determined, the method further comprises:
[0182] sending push information to each terminal belonging to the target address, the push information being associated information of the target address.
[0183] In the embodiments of the present application, the associated information can include, but is not limited to, opening information of a merchant corresponding to the target address, commodity type information, and coupon information, etc.
[0184] In the embodiments of the present application, the target address can be determined according to the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address, so as to ensure that the target address meets the following two conditions: on the one hand, the number of surrounding users is large; on the other hand, the number of users matching the attribute information of the target object is large, that is, the number of potential member users of the target object is large, so as to ensure the passenger flow of the target object in the target address.
[0185] As can be seen from the technical solutions provided by the embodiments of the present application, the embodiments of the present application determine at least two terminals according to at least two candidate addresses of a target object, determine the candidate address to which each terminal belongs, obtain attribute information of the target object and target data corresponding to each candidate address, the target data being account associated data corresponding to terminals belonging to the candidate address, determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address, and the attribute information of the target object, and the embodiments of the present application can accurately determine the number of terminals belonging to each candidate address and the target data corresponding to each candidate address according to the candidate address to which each terminal belongs, and can quickly and accurately determine the site selection result of the target object in combination with the attribute information of the target object.
[0186] The embodiments of the present application also provide a target address determination apparatus, as shown in Figure 13 The apparatus comprises:
[0187] The terminal determination module 1310 is configured to determine at least two terminals according to at least two candidate addresses of a target object.
[0188] The candidate address determination module 1320 is configured to determine the candidate address to which each terminal belongs.
[0189] The target data acquisition module 1330 is configured to obtain attribute information of the target object and target data corresponding to each candidate address, the target data being account associated data corresponding to terminals belonging to the candidate address.
[0190] The target address determination module 1340 is configured to determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address, target data corresponding to each candidate address, and attribute information of the target object; the target address is a result of address selection of the target object.
[0191] In some embodiments, the target address determination module includes:
[0192] The terminal number determination unit is configured to determine the number of terminals belonging to each candidate address according to the candidate address to which each terminal belongs.
[0193] The associated account number determination unit is configured to determine the number of associated accounts of each candidate address according to the terminals belonging to each candidate address; the number of associated accounts is the number of target data that has an associated relationship with the attribute information of the target object.
[0194] The target address determination unit is configured to determine a target address from the at least two candidate addresses according to the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address.
[0195] In some embodiments, the target address determination unit can include:
[0196] The weight determination subunit is configured to determine a first weight of the number of terminals and a second weight of the number of associated accounts.
[0197] The comprehensive score result determination subunit is configured to determine a comprehensive score result of each candidate address according to the number of terminals belonging to each candidate address, the number of associated accounts corresponding to each candidate address, the first weight, and the second weight.
[0198] The sorting subunit is configured to sort the at least two candidate addresses according to the comprehensive score result of each candidate address.
[0199] The target address determination subunit is configured to determine the target address from the at least two candidate addresses according to the sorting result.
[0200] In some embodiments, the candidate address determination module can include:
[0201] The coordinate information acquisition unit is configured to acquire coordinate information of each terminal.
[0202] The geofence determination unit is configured to determine a geofence of each candidate address.
[0203] a ray determining unit, configured to determine, with the coordinate information of each terminal as a starting point, a ray of each terminal pointing to each candidate address, the ray passing through a geographic fence of the each candidate address;
[0204] a candidate address determining unit, configured to determine a candidate address to which the each terminal belongs according to the ray of the each terminal pointing to the each candidate address.
[0205] In some embodiments, the candidate address determining unit can include:
[0206] a number of intersection points determining sub-unit, configured to determine a number of intersection points of the ray of any terminal pointing to the each candidate address and a boundary of the each geographic fence;
[0207] a candidate address determining sub-unit, configured to determine, as the candidate address of the any terminal, a candidate address corresponding to a geographic fence with an odd number of intersection points.
[0208] In some embodiments, the apparatus can further include:
[0209] a number of edges determining module, configured to determine a number of edges of a geographic fence corresponding to each candidate address; the geographic fence is in a polygonal structure.
[0210] In some embodiments, the number of intersection points determining sub-unit can include:
[0211] a number calculating sub-unit, configured to, if the number of edges of any geographic fence is less than or equal to a preset value, calculate a number of intersection points of the ray corresponding to the any terminal and each edge of the any geographic fence;
[0212] a sum of intersection points determining sub-unit, configured to determine, as the number of intersection points of the ray corresponding to the any terminal and the boundary of the any geographic fence, a sum of the numbers of intersection points corresponding to the edges of the any geographic fence.
[0213] In some embodiments, the number of intersection points determining sub-unit can include:
[0214] an R-tree constructing sub-unit, configured to, if the number of edges of a target geographic fence is greater than the preset value, construct an R-tree according to a minimum bounding rectangle corresponding to each edge of the target geographic fence; a node in the R-tree represents the rectangle; the target geographic fence is a geographic fence corresponding to any one of the at least two candidate addresses;
[0215] a target rectangle searching sub-unit, configured to search, by traversing the R-tree, a target rectangle intersecting any ray corresponding to the any terminal;
[0216] a target edge determining sub-unit, configured to determine, according to the target rectangle, a target edge of the target geographic fence intersecting the any ray.
[0217] The intersection number calculation sub-unit is configured to determine the intersection number of the any ray and the target geo-fence boundary according to the intersection number of the any ray and the target edge.
[0218] In some embodiments, the R-tree construction sub-unit can include:
[0219] The rectangle construction sub-unit is configured to construct a minimum bounding rectangle corresponding to each edge of the target geo-fence to obtain a first number of rectangles; and take the first number of rectangles as current rectangles.
[0220] The rectangle update sub-unit is configured to update a second number of adjacent current rectangles.
[0221] The step repetition sub-unit is configured to, if the number of rectangles indicated by the update result is greater than one, repeat the step of updating the second number of adjacent current rectangles by taking the update result as the current rectangles again until the number of rectangles indicated by the update result is one; wherein the number of rectangles indicated by the update result is determined based on the first number and the second number.
[0222] The R-tree determination sub-unit is configured to construct an R-tree based on the minimum bounding rectangle corresponding to each edge and the update result; wherein the leaf nodes of the R-tree represent the minimum bounding rectangle corresponding to each edge, the nodes other than the leaf nodes in the R-tree represent the rectangles corresponding to the update result, and the branches of the R-tree represent the association relationship between different rectangles.
[0223] In some embodiments, the candidate address determination module can include:
[0224] The point of interest determination unit is configured to determine a point of interest corresponding to each candidate address according to the target distance corresponding to each candidate address.
[0225] The target point of interest determination unit is configured to determine a target point of interest of each candidate address based on the distance between each candidate address and the point of interest corresponding to each candidate address.
[0226] The terminal determination unit is configured to determine a terminal belonging to each target point of interest.
[0227] The candidate address determination unit is configured to determine a candidate address to which each terminal belongs according to the target point of interest of each candidate address and the terminal belonging to each target point of interest.
[0228] In some embodiments, the point of interest determination unit includes:
[0229] The latitude and longitude information determination sub-unit is configured to determine latitude and longitude information corresponding to each candidate address.
[0230] a target region determining sub-unit, configured to determine a target region of each candidate address according to the longitude and latitude information corresponding to each candidate address and the target distance corresponding to each candidate address;
[0231] a point of interest determining sub-unit, configured to determine a point of interest corresponding to each candidate address based on the target region of each candidate address.
[0232] The device in the device embodiment and the method embodiment are based on the same inventive concept.
[0233] Embodiments of the present application provide a target address determining device, which comprises a processor and a memory, and the memory stores at least one instruction or at least one program, and the at least one instruction or at least one program is loaded and executed by the processor to implement the target address determining method provided in the above method embodiment.
[0234] Embodiments of the present application further provide a computer storage medium, which can be arranged in a terminal to save at least one instruction or at least one program related to a target address determining method in the method embodiment, and the at least one instruction or at least one program is loaded and executed by the processor to implement the target address determining method provided in the above method embodiment.
[0235] Embodiments of the present application further provide a computer program product or a computer program, which comprises computer instructions stored in a computer readable storage medium. A processor of a computer device reads the computer instructions from the computer readable storage medium, and the processor executes the computer instructions, so that the computer device performs to implement the target address determining method provided in the above method embodiment.
[0236] Optionally, in embodiments of the present application, the storage medium can be located in at least one network server of a plurality of network servers of a computer network. Optionally, in the embodiments, the storage medium can include, but is not limited to, a U disk, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk and various media that can store program codes.
[0237] The memory provided in the embodiments of the present application can be used to store software programs and modules. The processor performs various functions and data processing by running the software programs and modules stored in the memory. The memory can mainly include a program storage area and a data storage area. The program storage area can store operating systems, application programs required for functions, etc. The data storage area can store data created according to the use of the device, etc. In addition, the memory can include a high-speed random access memory, and can also include a non-volatile memory, such as at least one magnetic disk storage device, a flash memory device, or other volatile solid-state memory device. Accordingly, the memory can also include a memory controller to provide access for the processor to the memory.
[0238] The target address determination method provided in the embodiments of the present application can be executed in a mobile terminal, a computer terminal, a server or a similar computing device. Taking the case of running on a server as an example, Figure 14 is a hardware structure block diagram of a server of a target address determination method provided in the embodiments of the present application. As Figure 14 indicated, the server 1400 can have a large difference due to different configurations or performances, and can include one or more central processing units (CPU) 1410 (the central processing unit 1410 can include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA), a memory 1430 for storing data, one or more storage media 1420 (such as one or more mass storage devices) for storing application programs 1423 or data 1422. Among them, the memory 1430 and the storage medium 1420 can be temporary storage or persistent storage. The programs stored in the storage medium 1420 can include one or more modules, each of which can include a series of instruction operations in the server. Further, the central processing unit 1410 can be configured to communicate with the storage medium 1420 and execute a series of instruction operations in the storage medium 1420 on the server 1400. The server 1400 can also include one or more power supplies 1460, one or more wired or wireless network interfaces 1450, one or more input and output interfaces 1440, and / or one or more operating systems 1421, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.
[0239] The input / output interface 1440 can be configured to receive or transmit data via a network. The network can include a wireless network provided by a communication provider of the server 1400. In an example, the input / output interface 1440 includes a network interface controller (NIC) that can be connected to other network devices through a base station to communicate with the Internet. In an example, the input / output interface 1440 can be a radio frequency (RF) module configured to communicate with the Internet through a wireless manner.
[0240] Those skilled in the art can understand that, Figure 14 The structure shown is only schematic, and does not limit the structure of the electronic device described above. For example, the server 1400 can further include more or fewer components than those shown, or have a different configuration of components than those shown. Figure 14 The structure shown is only schematic, and does not limit the structure of the electronic device described above. For example, the server 1400 can further include more or fewer components than those shown, or have a different configuration of components than those shown. Figure 14 The structure shown is only schematic, and does not limit the structure of the electronic device described above. For example, the server 1400 can further include more or fewer components than those shown, or have a different configuration of components than those shown.
[0241] As can be seen from the embodiments of the target address determination method, device, equipment or storage medium provided in the present application, the at least two terminals are determined according to the at least two candidate addresses of the target object; the candidate address to which each terminal belongs is determined; the attribute information of the target object and the target data corresponding to each candidate address are obtained, the target data being account associated data corresponding to the terminal belonging to the candidate address; the target address is determined from the at least two candidate addresses according to the number of terminals belonging to each candidate address, the target data corresponding to each candidate address and the attribute information of the target object; the number of terminals belonging to each candidate address and the target data corresponding to each candidate address can be accurately determined according to the candidate address to which each terminal belongs, and the addressing result of the target object can be quickly and accurately determined by combining the attribute information of the target object.
[0242] It should be noted that the above-mentioned order of the embodiments of the present application is only for description, and does not represent the advantages and disadvantages of the embodiments. The above describes specific embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that in the embodiments and still achieve the desired result. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multi-task processing and parallel processing are possible or can be advantageous.
[0243] The various embodiments described in the specification are progressive in nature, and each successive embodiment can be read in conjunction with the previous embodiments to identify the differences between the various embodiments. In particular, the device, apparatus, and storage medium embodiments are described more simply than the method embodiments, as they are substantially similar to the method embodiments.
[0244] Those skilled in the art can understand that all or part of the steps of the above-mentioned embodiments can be completed by hardware, or can be instructed to relevant hardware by a program. The program can be stored in a computer storage medium. The storage medium mentioned above can be a read-only memory, a magnetic disk or an optical disk, etc.
[0245] The above description is merely the preferred embodiments of the present application, and is not intended to limit the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A method for determining a target address, characterized in that, The method includes: Based on at least two candidate addresses of the target object, determine at least two terminals; Determine the candidate address for each terminal; Obtain the attribute information of the target object and the target data corresponding to each candidate address, wherein the target data is the account association data corresponding to the terminal belonging to the candidate address; Based on the candidate address to which each terminal belongs, determine the number of terminals belonging to each candidate address; Based on the terminal belonging to each candidate address, determine the number of associated accounts for each candidate address; the number of associated accounts is the number of target data that are associated with the attribute information of the target object. The target address is determined from the at least two candidate addresses based on the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address; the target address is the location selection result of the target object.
2. The method according to claim 1, characterized in that, The step of determining the target address from the at least two candidate addresses based on the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address includes: A first weight is determined for the number of terminals, and a second weight is determined for the number of associated accounts; The comprehensive score result of each candidate address is determined based on the number of terminals belonging to each candidate address, the number of associated accounts corresponding to each candidate address, the first weight, and the second weight. Based on the comprehensive score of each candidate address, the at least two candidate addresses are ranked. Based on the sorting results, the target address is determined from the at least two candidate addresses.
3. The method according to claim 1, characterized in that, Determining the candidate address to which each terminal belongs includes: Obtain the coordinate information of each terminal; Determine the geofence for each candidate address; Starting from the coordinate information of each terminal, a ray is determined from each terminal to each candidate address, and the ray passes through the geofence of each candidate address; The candidate address to which each terminal belongs is determined based on the ray pointing from each terminal to each candidate address.
4. The method according to claim 3, characterized in that, The step of determining the candidate address to which each terminal belongs based on the ray pointing from each terminal to each candidate address includes: Determine the number of intersections between the ray from any terminal pointing to each candidate address and each geofence boundary; Candidate addresses corresponding to geofences with an odd number of intersections are determined as candidate addresses for any of the terminals.
5. The method according to claim 4, characterized in that, Before determining the number of intersections between the ray pointing from each terminal to each candidate address and each geofence boundary, the method further includes: Determine the number of sides of the geofence corresponding to each candidate address; the geofence is a polygonal structure. Determining the number of intersections between the ray pointing from any terminal to each candidate address and each geofence boundary includes: If the number of sides of any geofence is less than or equal to a preset value, calculate the number of intersections between the ray corresponding to any terminal and each side of any geofence. The sum of the number of intersections corresponding to each edge of any geofence is determined as the number of intersections between the ray corresponding to any terminal and the boundary of any geofence.
6. The method according to claim 5, characterized in that, Determining the number of intersections between the ray pointing from any terminal to each candidate address and each geofence boundary includes: If the number of sides of the target geofence is greater than the preset value, an R-tree is constructed based on the minimum bounding rectangle corresponding to each side of the target geofence; the nodes in the R-tree represent the rectangles; the target geofence is the geofence corresponding to any one of the at least two candidate addresses. Traverse the R-tree to find the target rectangle that intersects with any ray corresponding to any terminal; Determine the target edge in the target geofence that intersects with any of the rays based on the target rectangle; The number of intersections between any ray and the target edge is determined based on the number of intersections between any ray and the target edge.
7. The method according to claim 6, characterized in that, The step of constructing an R-tree based on the minimum bounding rectangle corresponding to each edge of the target geofence includes: Construct the minimum bounding rectangle corresponding to each edge of the target geofence to obtain a first number of rectangles; and use the first number of rectangles as the current rectangle; Update the second number of adjacent current rectangles; If the number of rectangles indicated by the update result is greater than one, the update result is used as the current rectangle again, and the step of updating the second number of adjacent current rectangles is repeated until the number of rectangles indicated by the update result is one; wherein, the number of rectangles indicated by the update result is determined based on the first number and the second number; An R-tree is constructed based on the minimum bounding rectangle corresponding to each edge and the update result; wherein, the leaf nodes of the R-tree represent the minimum bounding rectangle corresponding to each edge, the nodes in the R-tree other than the leaf nodes represent the rectangle corresponding to the update result, and the branches of the R-tree represent the association relationship between different rectangles.
8. The method according to claim 1, characterized in that, Determining the candidate address to which each terminal belongs includes: Based on the target distance corresponding to each candidate address, determine the point of interest corresponding to each candidate address; The target interest point of each candidate address is determined based on the distance between each candidate address and the interest point corresponding to each candidate address; Identify the terminal belonging to each target point of interest; Based on the target interest of each candidate address and the terminal belonging to each target interest, determine the candidate address to which each terminal belongs.
9. The method according to claim 8, characterized in that, The step of determining the point of interest corresponding to each candidate address based on the target distance corresponding to each candidate address includes: Determine the latitude and longitude information corresponding to each candidate address; The target area for each candidate address is determined based on its latitude and longitude coordinates and the corresponding target distance. Based on the target area of each candidate address, the point of interest corresponding to each candidate address is determined.
10. A target address determination device, characterized in that, The device includes: The terminal determination module is used to determine at least two terminals based on at least two candidate addresses of the target object; The candidate address determination module is used to determine the candidate address to which each terminal belongs; The target data acquisition module is used to acquire the attribute information of the target object and the target data corresponding to each candidate address, wherein the target data is the account association data corresponding to the terminal belonging to the candidate address; The target address determination module is used to determine a target address from at least two candidate addresses based on the number of terminals belonging to each candidate address, the target data corresponding to each candidate address, and the attribute information of the target object; the target address is the address selection result of the target object; The target address determination module includes: The terminal quantity determination unit is used to determine the number of terminals belonging to each candidate address based on the candidate address to which each terminal belongs; The associated account quantity determination unit is used to determine the number of associated accounts for each candidate address based on the terminals belonging to each candidate address; the number of associated accounts is the number of target data that are associated with the attribute information of the target object; The target address determination unit is used to determine the target address from the at least two candidate addresses based on the number of terminals belonging to each candidate address and the number of associated accounts corresponding to each candidate address.
11. The apparatus according to claim 10, characterized in that, The target address determination unit includes: The weighting determination subunit is used to determine a first weight for the number of terminals and a second weight for the number of associated accounts; The comprehensive scoring result determination subunit is used to determine the comprehensive scoring result of each candidate address based on the number of terminals belonging to each candidate address, the number of associated accounts corresponding to each candidate address, the first weight, and the second weight. The sorting subunit is used to sort the at least two candidate addresses according to the comprehensive score result of each candidate address; The target address determination subunit is used to determine the target address from the at least two candidate addresses based on the sorting results.
12. The apparatus according to claim 10, characterized in that, The candidate address determination module includes: The coordinate information acquisition unit is used to acquire the coordinate information of each terminal; Geofencing determination unit, used to determine the geofence for each candidate address; A ray determination unit is used to determine a ray from each terminal to each candidate address, starting from the coordinate information of each terminal, wherein the ray passes through the geofence of each candidate address; The candidate address determination unit is used to determine the candidate address to which each terminal belongs based on the ray pointing from each terminal to each candidate address.
13. The apparatus according to claim 12, characterized in that, The candidate address determination unit includes: The intersection point determination subunit is used to determine the number of intersection points between the ray pointing from any terminal to each candidate address and each geofence boundary; The candidate address determination subunit is used to determine the candidate addresses corresponding to geofences with an odd number of intersections as the candidate addresses of any of the terminals.
14. The apparatus according to claim 13, characterized in that, The device further includes: The edge count determination module is used to determine the edge count of the geofence corresponding to each candidate address; the geofence is a polygonal structure. The sub-unit for determining the number of intersections includes: The quantity calculation subunit is used to calculate the number of intersections between the ray corresponding to any terminal and each side of any geofence if the number of sides of any geofence is less than or equal to a preset value. The intersection sum determination subunit is used to determine the sum of the number of intersections corresponding to each edge of any geofence as the number of intersections between the ray corresponding to any terminal and the boundary of any geofence.
15. The apparatus according to claim 14, characterized in that, The sub-unit for determining the number of intersections includes: R-tree construction sub-unit, used to construct an R-tree based on the minimum bounding rectangle corresponding to each edge of the target geofence if the number of sides of the target geofence is greater than the preset value; the nodes in the R-tree represent the rectangle; the target geofence is the geofence corresponding to any one of the at least two candidate addresses; The target rectangle search subunit is used to traverse the R-tree and find the target rectangle that intersects with any ray corresponding to any terminal; The target edge determination sub-unit is used to determine the target edge in the target geofence that intersects with any of the rays based on the target rectangle; The intersection point calculation subunit is used to determine the number of intersection points between any ray and the target geofence boundary based on the number of intersection points between any ray and the target edge.
16. The apparatus according to claim 15, characterized in that, The R-tree construction subunit includes: A rectangle construction sub-unit is used to construct the minimum outer rectangle corresponding to each side of the target geofence, resulting in a first number of rectangles; and the first number of rectangles is used as the current rectangle; The rectangle update sub-unit is used to update the second number of adjacent current rectangles; The step repeating subunit is used to, if the number of rectangles indicated by the update result is greater than one, take the update result as the current rectangle again, and repeat the step of updating the second number of adjacent current rectangles until the number of rectangles indicated by the update result is one; wherein, the number of rectangles indicated by the update result is determined based on the first number and the second number; R-tree determination sub-units are used to construct an R-tree based on the minimum bounding rectangle corresponding to each edge and the update result; wherein, the leaf nodes of the R-tree represent the minimum bounding rectangle corresponding to each edge, the nodes in the R-tree other than the leaf nodes represent the rectangle corresponding to the update result, and the branches of the R-tree represent the association relationship between different rectangles.
17. The apparatus according to claim 10, characterized in that, The candidate address determination module includes: The interest point determination unit is used to determine the interest point corresponding to each candidate address based on the target distance corresponding to each candidate address. The target interest point determination unit is used to determine the target interest point of each candidate address based on the distance between each candidate address and the interest point corresponding to each candidate address; The terminal determination unit is used to determine the terminals belonging to each target point of interest. The candidate address determination unit is used to determine the candidate address to which each terminal belongs based on the target interest point of each candidate address and the terminal belonging to each target interest point.
18. The apparatus according to claim 17, characterized in that, The interest point determination unit includes: The latitude and longitude information determination sub-unit is used to determine the latitude and longitude information corresponding to each candidate address; The target area determination sub-unit is used to determine the target area of each candidate address based on the latitude and longitude information and the corresponding target distance of each candidate address. The interest point determination subunit is used to determine the interest point corresponding to each candidate address based on the target area of each candidate address.
19. A target address determination device, characterized in that, The device includes a processor and a memory, the memory storing at least one instruction or at least one program, the at least one instruction or the at least one program being loaded and executed by the processor to implement the target address determination method as described in any one of claims 1-9.
20. A computer storage medium, characterized in that, The computer storage medium stores at least one instruction or at least one program, which is loaded and executed by a processor to implement the target address determination method as described in any one of claims 1-9.
21. A computer program product comprising computer instructions, characterized in that, When the computer instructions are executed by the processor, they implement the target address determination method as described in any one of claims 1-9.
Citation Information
Patent Citations
Method for processing information and terminal
CN102006585A
Method and apparatus for determining target address
CN104965920A