Geo-fence generation method and device thereof
Technical Field
The present application relates to the field of computers, and in particular, to a geo-fence generating method and a device thereof.
Background
With the development of mobile communication technology and the popularization of computer technology, Location-Based Service (LBS) technology is moving into people's lives. By using the LBS technology, the position of the mobile terminal can be obtained by positioning the mobile terminal, and then the service related to the position of the mobile terminal is provided for the mobile terminal.
In recent years, with the rapid development of LBS technology, new applications based on LBS technology are also emerging. Geo-fencing (Geo-fencing) technology is receiving more and more attention as a new application of LBS technology. Geofencing techniques may use a virtual fence to enclose a geofenced area. When the mobile terminal is active in or near the geo-fenced area, notifications and reminders corresponding to the geo-fenced area can be received.
When a certain area is drawn and highlighted by using fence coordinates forming a geo-fence, the boundary information generally contains a large amount of coordinate information, and if the coordinate information is not processed and is directly displayed by using the coordinate information, an obvious performance problem is caused, and the use experience is influenced.
Therefore, there is a need in the art for a solution for screening the coordinates of a geofence.
The above information is presented merely as background information to aid in understanding the present disclosure. No determination has been made, nor has a statement been made, as to whether any of the above information is applicable as prior art against the present disclosure.
Disclosure of Invention
The main purpose of one or more embodiments of the present specification is to provide a geo-fence generating method and a device thereof, which aim to solve the above-mentioned coordinate screening problem.
An aspect of one or more embodiments of the present specification provides a geo-fence generation method, the method comprising: receiving a plurality of coordinates in a coordinate list, wherein the plurality of coordinates comprise a current coordinate; determining a reference coordinate of the current coordinate; judging whether the distance between the current coordinate and the reference coordinate is greater than or equal to a joining distance, wherein the joining distance is a measure for judging whether the current coordinate is determined as a joining coordinate in distance; and if the current coordinate is greater than or equal to the joining distance, determining the current coordinate as the joining coordinate for forming the geo-fence. Generating a geofence using the determined joining coordinates.
Optionally, the method further comprises: calculating a screening probability, wherein the screening probability is a measure for judging whether the current coordinate is determined to be added into the coordinate in terms of probability; and if the distance between the current coordinate and the reference coordinate is smaller than the adding distance, determining whether the current coordinate is the adding coordinate or not through the screening probability.
Another aspect of one or more embodiments of the present specification provides a geo-fence generating apparatus, the apparatus comprising: a receiving unit which receives a plurality of coordinates in a coordinate list, wherein the plurality of coordinates include a current coordinate; a reference coordinate unit is determined, and a reference coordinate of the current coordinate is determined; the distance judging unit is used for judging whether the distance between the current coordinate and the reference coordinate is greater than or equal to a joining distance, wherein the joining distance is a measure for judging whether the current coordinate is determined as a joining coordinate in distance; the first determining unit is used for responding to the fact that the distance between the current coordinate and the reference coordinate is larger than or equal to the adding distance judged by the distance judging unit, and determining the current coordinate as the adding coordinate for forming the geo-fence; and the generating unit is used for generating the geo-fence by utilizing the determined joining coordinates.
Optionally, the apparatus further comprises: a unit for calculating a screening probability, which is a measure for probabilistically judging whether the current coordinate is determined as the added coordinate; and a second determining unit for determining whether to add the current coordinate by screening the probability.
Another aspect of one or more embodiments of the present specification provides a geo-fencing apparatus comprising: a processor; and
a memory arranged to store computer executable instructions that, when executed, cause the processor to: receiving a plurality of coordinates in a coordinate list, wherein the plurality of coordinates comprise a current coordinate; determining a reference coordinate of the current coordinate; judging whether the distance between the current coordinate and the reference coordinate is greater than or equal to a joining distance, wherein the joining distance is a measure for judging whether the current coordinate is determined as a joining coordinate in distance; and if the current coordinate is greater than or equal to the joining distance, determining the current coordinate as the joining coordinate for forming the geo-fence. Generating a geofence using the determined joining coordinates.
In contrast to the prior art, the number of coordinates displayed for a geofence can be reduced while preserving the shape of an area by using the joining distance to filter a plurality of coordinates in the list of coordinates to determine joining coordinates for forming the geofence in accordance with one or more embodiments of the present disclosure. Furthermore, according to another embodiment of the present disclosure, the coordinates that cannot be added by the joining distance are further filtered by using the filtering probability on the basis of filtering the coordinates by using the joining distance, so that the detailed information of the region is enriched while the complete shape of the region is maintained.
Drawings
The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the application and together with the description serve to explain the application and not to limit the application. In the drawings:
FIG. 1 is a diagram showing a geofence, in accordance with one or more embodiments of the present specification;
fig. 2 is a flow diagram illustrating a geofence generation method in accordance with one or more embodiments of the present specification;
FIG. 3 is a flow diagram illustrating a geofence generation method according to another embodiment of this specification;
FIGS. 4A-4F are diagrams illustrating determining coordinates according to one or more embodiments of the present description;
fig. 5 is a block diagram illustrating a geo-fence generation device in accordance with one or more embodiments of the present specification;
fig. 6 is a block diagram illustrating an electronic device performing a geofence generation method in accordance with one or more embodiments of the present specification;
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the technical solutions of the present application will be described in detail and completely with reference to the following specific embodiments of the present application and the accompanying drawings. It should be apparent that the described embodiments are only some of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
Hereinafter, embodiments will be described in more detail with reference to the accompanying drawings. Like numbers refer to like elements throughout.
Fig. 1 is a diagram illustrating a geofence, according to one or more embodiments of the present specification.
As depicted in fig. 1, the geo-fencing technique may be utilized to sequentially connect the geo-fenced coordinates to form a geo-fence of zheng city as depicted in fig. 1 and display the geo-fence on a display. It is clear that the more coordinates that form a geofence, the sharper the outline of the area displayed, but the more coordinates that form a geofence at the same time, the higher the requirements on the display device. Furthermore, in many cases, the display device need only display the approximate outline of the geofence, and need not display outline information that is too detailed. Based on the above consideration, the application provides a geo-fence generation method.
Fig. 2 is a flow diagram illustrating a geofence generation method in accordance with one or more embodiments of the present specification.
As shown in fig. 2, in step S210, a plurality of coordinates in a coordinate list are received. In particular, the list of coordinates may include a list of coordinates that have formed a geofence for a particular area (e.g., Zheng City in FIG. 1), that is, the coordinates in the list of coordinates are a set of coordinates that have been determined according to a geofence algorithm. Those skilled in the art will understand that: all methods that can obtain the coordinate list corresponding to the specific area according to the existing geo-fencing algorithm can be applied to the present application.
The following steps may then be performed with respect to the current coordinates, it being understood that the current coordinates may include coordinates that belong to the list of coordinates and are being traversed, that is, coordinates for which a determination is being made to determine whether to add to the geofence are the current coordinates. It should be noted that "adding" referred to in one or more embodiments of the present specification may be determining coordinates as final fence data, in other words, if a certain coordinate may be added, the coordinate is determined as a coordinate that can be displayed on a display.
In step S220, reference coordinates of the current coordinates are determined. The reference coordinate is the joining coordinate that is closest in time to the current coordinate, where the joining coordinate may be the coordinate that it is eventually joined to the geofence and may be displayed on the display. Optionally, if it is determined that there is no reference coordinate, the current coordinate is determined as the joining coordinate. For example, when a first coordinate in the coordinate list is operated, there is no joining coordinate that is closest in time to the current coordinate, and the first coordinate is determined as the joining coordinate, so that when a second coordinate is operated, the first coordinate can be used as a reference coordinate of the second coordinate.
Next, in step S230, it is determined whether a distance between the current coordinate and the reference coordinate is greater than or equal to a joining distance, where the joining distance is a measure for determining whether the current coordinate is determined as a joining coordinate in terms of distance. Specifically, the joining distance is calculated by a distance between a plurality of coordinates in the coordinate list and a predetermined maximum number of joining coordinates determined according to the joining distance. The specific formula is as follows:
wherein,
representing the sum of distances between a plurality of coordinates in a list of coordinates may indicate the sum of distances between two adjacent coordinates, which may include any distance algorithm for measuring the length of two coordinates in space, e.g., may include euclidean distance, manhattan distance, chebyshev distance, and the like. In the present application, the Manhattan distance, coordinate (x), is preferably used
1,y
1) And the coordinate (x)
2,y
2) The Manhattan distance between them is d ═ x
1-x
2│+│y
1-y
2│。Count
maxIs a predetermined maximum number of joining coordinates determined according to the joining distance, which may indicate a maximum value of the number of coordinates that can be displayed on the screen, which is generally preset by the user according to the display performance and experience of the display device.
In step S240, if the distance between the current coordinate and the reference coordinate is greater than or equal to the joining distance, the current coordinate is determined as the joining coordinate forming the geo-fence. From the above analysis, it can be seen that the sum of distances is fixed, and thus it can be seen that the Count can be dynamically setmaxAnd controlling the number of the dynamically added coordinates.
Subsequently, at step S250, a geo-fence is generated using the determined joining coordinates.
Alternatively, it may be determined whether the next coordinate of the current coordinate is the joining coordinate forming the geo-fence in a clockwise or counterclockwise direction of the closed contour formed by the plurality of coordinates in the coordinate list, in such a manner that each of the plurality of coordinates is the joining coordinate forming the geo-fence. After the determining step is completed for each of the plurality of coordinates in the list of coordinates, the geo-fence can be generated using the determined joining coordinates.
As described above, the geofence generation method according to one or more embodiments of the present specification determines the joining coordinates forming the geofence by filtering the multiple coordinates in the coordinate list by the joining distance, so that the number of displayed coordinates can be reduced while the shape of the area can be preserved, and the display performance can be improved.
In addition, if it is determined in step S230 that the distance between the current coordinate and the reference coordinate is smaller than the joining distance, the current coordinate may be further processed, which will be described in detail below with reference to fig. 3.
Fig. 3 is a flow diagram illustrating a geofence generation method according to another embodiment of this specification. Since steps S210 to S230 are the same as steps S310 to S330, steps S310 to S330 will not be described in detail herein.
If it is determined at step S330 that the distance between the current coordinate and the reference coordinate is less than the joining distance, then at step S340, a filtering probability is calculated, the filtering probability being a measure for probabilistically determining whether the current coordinate is determined as the joining coordinate, the filtering probability being determined by a predetermined desired number of joining coordinates, an actual number of joining coordinates, and a number of a plurality of coordinates in the coordinate list, the formula of the filtering probability being as follows:
P=(CountE-CountMax)/CountAll
wherein, CountERepresents a predetermined desired number of added coordinates, i.e. a desired number of coordinates displayed on the screen, CountMaxA maximum value representing the actual number of joining coordinates joined according to the joining distance, i.e. the maximum value, Count, determined as the number of joining coordinates after the geo-fence generating method has been performed for each of the plurality of coordinates in the coordinate listEAnd CountMaxMay be predetermined by a user before executing the fence generating algorithm of one or more embodiments of the present specification, and optionally, the user may determine the Count in advance according to the display performance and experience of the display deviceEAnd CountMax,CountAllIndicating the number of the plurality of coordinates in the coordinate list.
Subsequently, in step S350, it is determined whether to add the current coordinate by filtering the probability. Specifically, a random number is distributed to the current coordinate by using a random number distribution algorithm, wherein the value range of the random number is between 0 and 1; and if the random number distributed to the current coordinate is smaller than the screening probability, judging the current coordinate as the adding coordinate. In implementation, the user may directly invoke the interface of the encapsulated random number assignment algorithm to assign a random number to the current coordinate.
If it is determined by the screening probability that the current coordinate is added in step S350, it is determined in step S360 that the current coordinate is the added coordinate for forming the geo-fence, otherwise, if it is determined by the screening probability that the current coordinate is not added in step S350, the current coordinate cannot be used as the added coordinate.
Subsequently, at S370, a geofence can be generated from the determined joining coordinates.
Assume that the number of joining coordinates determined by the joining distance is CountaThe number of the added coordinates determined by the screening probability is CountpAnd the number of added coordinates obtained after processing the plurality of coordinates is CountRThe expected value of the number of added coordinates is E (Count)R) Then E (Count)R)=Counta+Countp. From the above analysis, CountpIs a joining coordinate determined by judging coordinates other than the coordinates determined as the joining coordinates by being larger than the joining distance among the plurality of coordinates, so the Countp=P*(CountAll-Counta)。
The formula according to the screening probability can be obtained: countMax+P*CountAll=CountE。
Thus, E (Count)R)=Counta+P*(CountAll-Counta)<CountMax+P*CountAll=CountE. As can be seen, E (Count)R)<CountEI.e. the desired value of the number of joining coordinates will be less than the predetermined desired number of joining coordinates. Furthermore, according to CountMaxDefinition of (1), CountMaxCan be expressed as a ratio of the sum of distances to the joining distance D, and from the above analysis, the average distance D between the joining coordinates in the resulting geofenceAvgRInevitably equal to or less than the addition distance D, so that Cou can be obtainedntRDistance and/DAvgR>Distance and/D ═ CountMax,I.e., CountR>CountMax. The above size derived according to the set filtering probability may help the user to set various parameters (e.g., Count) in advanceE、CountMax)。
As described above, the geo-fence generating method according to one or more embodiments of the present disclosure further screens coordinates that cannot be added by the joining distance by using the screening probability on the basis of screening the coordinates by using the joining distance, so that detailed information of the region can be enriched while maintaining the complete shape of the region. For example, for an area with a large difference in the east-west contour, that is, the west contour is smooth and the east contour is tortuous, if the coordinates are filtered only by the adding distance, the east contour may be excessively smooth, and in this case, if the coordinates are further filtered by the filtering probability, the coordinates for forming the east contour may be increased, so that the details of the east are enriched.
A method of determining coordinates according to one or more embodiments of the present specification will be described below in conjunction with the diagrams shown in fig. 4A through 4F.
Fig. 4A shows a closed contour formed by a plurality of coordinates in the coordinate list, and for convenience of description, the number of coordinates constituting the coordinate list is simplified in fig. 4A, and the number of coordinates in practical application will be much larger than that.
Next, referring to fig. 4B, the coordinate a is set as the start coordinate (the first coordinate in the coordinate list described above), there is no joining coordinate that is closest in time to the coordinate a, so there is no reference coordinate for the coordinate a, and therefore, the coordinate a can be determined as the joining coordinate, and then the coordinate B is determined.
As shown in fig. 4C, the reference coordinate of the coordinate B is the coordinate a, and the coordinate B may be determined according to the method described in fig. 2, specifically, whether the distance AB between the coordinate a and the coordinate B is greater than the adding distance is determined, and if the distance AB is greater than the adding distance, the coordinate B may be determined as the adding coordinate.
Next, as shown in fig. 4D, a coordinate C is determined, the reference coordinate of the coordinate C is a coordinate B, and if it is determined that the distance BC between the coordinate B and the coordinate C is smaller than the adding distance, the screening probability is calculated according to the method shown in fig. 3, and if it is determined that the coordinate is not added according to the screening probability, the coordinate D is determined.
As shown in fig. 4E, the reference coordinate of the coordinate D is the coordinate B, and if it is determined that the distance BD between the coordinate B and the coordinate D is greater than the joining distance, the coordinate D is determined as the joining coordinate.
In this order, the coordinates in the list of coordinates are sequentially determined to determine whether each coordinate is a joining coordinate forming a geofence, and then the geofence of fig. 4F is generated using the determined joining coordinates.
It should be noted that while fig. 4A-4F illustrate the determination as to each coordinate in the list of coordinates of the geofence-forming silhouette being made in a clockwise manner, in practical applications, the determination as to each coordinate in the list of coordinates of the geofence-forming silhouette may also be made in a counter-clockwise manner.
In order to more clearly understand the inventive concept of one or more embodiments of the present specification, a block diagram of a data processing apparatus according to one or more embodiments of the present specification will be described below with reference to fig. 5. Those of ordinary skill in the art will understand that: the geofence generation apparatus in fig. 5 shows only components relevant to the present exemplary embodiment, and general components other than those shown in fig. 5 are also included in the geofence generation apparatus 500.
Fig. 5 is a block diagram illustrating a geofence generation apparatus in accordance with one or more embodiments of the present specification. As shown in fig. 5, the geo-fence generating apparatus 500 includes a receiving unit 510, a determination reference coordinate unit 520, a distance judging unit 530, a first determining unit 540, and a generating unit 550.
The receiving unit 510 receives a plurality of coordinates in a coordinate list, wherein the plurality of coordinates includes a current coordinate.
The determine reference coordinates unit 520 determines reference coordinates of the current coordinates, wherein the reference coordinates are joining coordinates that are closest in time to the current coordinates.
The distance judgment unit 530 judges whether a distance between the current coordinate and the reference coordinate is equal to or greater than a joining distance, which is a measure for judging whether the current coordinate is determined as a joining coordinate over the distance.
Alternatively, the distance judgment unit 530 calculates the joining distance by the distance between the plurality of coordinates in the coordinate list and a predetermined maximum number from the joining coordinates.
The first determining unit 540 determines the current coordinate as the joining coordinate forming the geo-fence in response to the distance determining unit determining that the distance between the current coordinate and the reference coordinate is greater than or equal to the joining distance.
The generating unit 550 generates a geo-fence according to the determined joining coordinates.
Optionally, the geo-fence generating device 500 further includes a filtering probability calculating unit (not shown) and a second determining unit (not shown), wherein the filtering probability calculating unit calculates a filtering probability, which is a measure for probabilistically judging whether the current coordinate is determined as the joining coordinate; the second determining unit determines whether the current coordinate is the joining coordinate or not through the screening probability in response to the distance judging unit judging that the distance between the current coordinate and the reference coordinate is smaller than the joining distance.
Optionally, after the first determining unit determines that the current coordinate is the joining coordinate forming the geo-fence, it determines whether a next coordinate of the current coordinate is the joining coordinate forming the geo-fence according to a clockwise direction or a counterclockwise direction of a closed contour formed by a plurality of coordinates in the coordinate list.
Optionally, the apparatus further comprises: a third determination unit that determines the current coordinates as joining coordinates for forming the geofence in response to the reference coordinates unit determining that the reference coordinates do not exist.
Alternatively, the calculating the filtering probability unit calculates the filtering probability by adding a predetermined desired number of coordinates, an actual number of added coordinates, and a number of the plurality of coordinates in the coordinate list.
Optionally, the second determining unit allocates a random number to the current coordinate by using a random number allocation algorithm, wherein a value range of the random number is between 0 and 1; and if the random number distributed to the current coordinate is smaller than the screening probability, determining the current coordinate as the adding coordinate.
Optionally, the distance comprises a manhattan distance.
Therefore, it can be seen that the first determining unit, the second determining unit, and the third determining unit are all used to determine whether the current coordinate is the joining coordinate, and thus, the determined joining coordinate may be the joining coordinate determined by the first determining unit, the second determining unit, or the third determining unit.
As described above, the geo-fence generating device according to one or more embodiments of the present specification determines joining coordinates forming a geo-fence by filtering a plurality of coordinates in a coordinate list using a joining distance, thereby enabling a reduction in the number of coordinate displays of the geo-fence while preserving an area shape. Furthermore, the geo-fence generation algorithm according to one or more embodiments of the present disclosure further filters the coordinates that cannot be added by the joining distance by using the filtering probability on the basis of filtering the coordinates by using the joining distance, so that the detailed information of the region is enriched while the complete shape of the region is maintained.
Fig. 6 illustrates a block diagram of an electronic device performing a geofence generation method, in accordance with one or more embodiments of the present specification. Referring to fig. 6, at the hardware level, the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile memory, but may also include hardware required for other services. The processor reads the corresponding computer program from the nonvolatile memory to the memory and then runs the computer program to form the webpage screenshot device on the logic level. Of course, besides the software implementation, the present application does not exclude other implementations, such as logic devices or a combination of software and hardware, and the like, that is, the execution subject of the following processing flow is not limited to each logic unit, and may also be hardware or logic devices.
One or more embodiments of the present specification also provide a computer-readable storage medium storing one or more programs, the one or more programs including instructions, which when executed by an electronic device including a plurality of application programs, enable the electronic device to perform the method of the embodiment shown in fig. 2.
In the 90 s of the 20 th century, improvements in a technology could clearly distinguish between improvements in hardware (e.g., improvements in circuit structures such as diodes, transistors, switches, etc.) and improvements in software (improvements in process flow). However, as technology advances, many of today's process flow improvements have been seen as direct improvements in hardware circuit architecture. Designers almost always obtain the corresponding hardware circuit structure by programming an improved method flow into the hardware circuit. Thus, it cannot be said that an improvement in the process flow cannot be realized by hardware physical modules. For example, a Programmable Logic Device (PLD), such as a Field Programmable Gate Array (FPGA), is an integrated circuit whose Logic functions are determined by programming the Device by a user. A digital system is "integrated" on a PLD by the designer's own programming without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Furthermore, nowadays, instead of manually making an integrated Circuit chip, such Programming is often implemented by "logic compiler" software, which is similar to a software compiler used in program development and writing, but the original code before compiling is also written by a specific Programming Language, which is called Hardware Description Language (HDL), and HDL is not only one but many, such as abel (advanced Boolean Expression Language), ahdl (alternate Language Description Language), traffic, pl (core unified Programming Language), HDCal, JHDL (Java Hardware Description Language), langue, Lola, HDL, laspam, hardsradware (Hardware Description Language), vhjhd (Hardware Description Language), and vhigh-Language, which are currently used in most common. It will also be apparent to those skilled in the art that hardware circuitry that implements the logical method flows can be readily obtained by merely slightly programming the method flows into an integrated circuit using the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, an Application Specific Integrated Circuit (ASIC), a programmable logic controller, and an embedded microcontroller, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic for the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller as pure computer readable program code, the same functionality can be implemented by logically programming method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers and the like. Such a controller may thus be considered a hardware component, and the means included therein for performing the various functions may also be considered as a structure within the hardware component. Or even means for performing the functions may be regarded as being both a software module for performing the method and a structure within a hardware component.
The systems, devices, modules or units illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. One typical implementation device is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being divided into various units by function, and are described separately. Of course, the functionality of the units may be implemented in one or more software and/or hardware when implementing the present application.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The application may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The application may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only an example of the present application and is not intended to limit the present application. Various modifications and changes may occur to those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the scope of the claims of the present application.