Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art. The drawings are merely schematic illustrations of the invention and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and thus their repetitive description will be omitted.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, devices, steps, and so forth. In other instances, well-known structures, methods, devices, implementations, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
FIG. 1 is a flow chart illustrating a plotting method according to an exemplary embodiment.
As shown in fig. 1, the plotting method may include the following steps.
In step S110, map data of the target area is loaded in advance.
In the embodiment of the present invention, the target area may be different according to different practical application scenarios, for example, when the plotting method is applied to plotting situation charts in the military field, the target area may be a combat area; for another example, when the plotting method is applied to a map of a city emergency plan situation, the plotting method may be a target city area for the emergency plan, and the like, which is not limited by the present disclosure.
In the embodiment of the present invention, the map data refers to basic geographic data, for example, map information provided by a map company. And when the client installed on the user terminal is opened, the map data of the target area is loaded in advance and displayed.
In step S120, a region of interest of the client is determined according to the positioning position and the display scale of the client.
In the embodiment of the present invention, the client refers to an application program running on various user terminals, such as a mobile phone, a tablet computer, and a PC.
In the embodiment of the present invention, the positioning location of the client may be determined according to the GPS positioning information of the client, for example, assuming that a soldier in a combat area holds the user terminal by hand, the latitude and longitude coordinates of the soldier in the combat area at present may be known through the GPS positioning of the user terminal, so that the current location of the soldier may be identified on the map data of the combat area displayed on the client (for example, the current location may be identified by a red dot), then the display area of the map data on the display screen of the user terminal may be determined according to the size of the display screen of the client, the current display scale (or display resolution), and the like, and the current display area is determined as the attention area of the client. The area of interest of the client here can be understood as the geographical area around the soldier that is of interest based on the geographical location where the soldier is currently located. The present disclosure is not limited thereto. The attention area of the client may have different meanings in different application scenarios.
In step S130, pushed change plot data is received, wherein the pushed change plot data relates to an area of interest of the client.
In an exemplary embodiment, the change plot data includes one or more of modification, deletion, addition, and the like of the plot data.
For example, when the soldier finds that existing plotting data in the attention area of the soldier client is changed, the original plotting data can be modified and deleted, or when the soldier finds that a new object which is not plotted yet exists in the attention area, the plotting data can be added to the client, and then the modified plotting data, the added plotting data and/or the deleted plotting data are uploaded to the server. When the server receives the change plotting data, the server pushes the change plotting data to the corresponding client side for display according to the position of the change plotting data, namely when the position of the change plotting data is in the attention area of a certain client side or a certain client side, the change plotting data is pushed to the certain client side or the certain client side for display.
In an exemplary embodiment, the pushed change plot data may also be related to a plot data type.
In an exemplary embodiment, the plot data types include static plots and dynamic plots. The static plots may be, for example, plots with less general variations such as hydrology and geography, and the dynamic plots may be, for example, plots with variations that can be adjusted at any time such as military deployments. However, the present disclosure is not limited thereto, and the plotting data type may be text, picture, or the like, for example.
It should be noted that both the static plotting and the dynamic plotting in the embodiment of the present invention may be changed plotting data, and although the static plotting generally has less change, the static plotting may also change the original hydrological and geographic bridges and lakes due to a special reason, and at this time, the static plotting may also be modified, deleted, added, and the like.
In the embodiment of the invention, corresponding change plotting data can be pushed to the client side according to the attention area and the plotting data type of the client side at the same time. For example, the statically plotted change plot data may be pushed only to a client whose region of interest includes the location of the change plot data, or the dynamically plotted change plot data may be pushed only to a client whose region of interest includes the location of the change plot data, or both the statically plotted and dynamically plotted change plot data may be pushed to a client whose region of interest includes the location of the change plot data.
In other embodiments, the change plotting data of the picture type may also be pushed only to the client whose attention area includes the position of the change plotting data, or the change plotting data of the text and picture types may also be pushed to the client whose attention area includes the position of the change plotting data, which is not limited by the present disclosure.
In an exemplary embodiment, the method may further include: and downloading corresponding plotting data according to the positioning position of the client.
For example, a client may request from a server to download plot data within its area of interest based on its own location.
In an exemplary embodiment, the method further comprises: adding and/or modifying and/or deleting plotting data in the attention area of the client; and uploading the newly added and/or modified and/or deleted plotting data.
For example, each client may submit the static and dynamic plots that it finds to a server, such as discovering an unlabeled bridge, pillbox, etc.; after the server receives the plot data uploaded by each client, the server may store the plots according to the space division, for example, a scene tree structure such as a quadtree may be used. Other clients which do not upload the plotting data can download and display the plotting in the attention area according to the positioning positions of the clients from near to far, so that the plotting data which are not required to be displayed by the clients are prevented from being downloaded. Meanwhile, with the scene graph, effective plotting can be quickly searched.
According to the plotting method provided by the embodiment of the disclosure, the client only receives the plotting data which is pushed to the client by the server and is related to the concerned area, so that the user terminal avoids receiving the plotting data which is not related to the client, the plotting content on the client can be displayed in real time, no delay exists, and the method has the characteristic of complete interaction.
FIG. 2 is a flow chart illustrating another plotting method according to an exemplary embodiment.
As shown in fig. 2, the plotting method may include the following steps.
In step S210, the uploaded change plot data is received.
In an exemplary embodiment, before receiving the change plotting data uploaded by the client, the server may also push local map data related to the area of interest of the client and existing plotting data related to the area of interest, which have been stored in the server, to the client. The server can push local map data and plotting data to the user terminal based on a virtual resource pool technology in order to improve the display speed of the pushed data on the user terminal. The user terminal quickly locates and restores the plotting data displayed on the local map data.
In some embodiments, according to characteristics of different types of plotting data, the plotting data already existing in the server is subjected to preprocessing operations such as data storage mechanism, analysis, extraction and conversion, and quick access capability for providing dynamic heterogeneous plotting information is provided, so that the plotting data can be quickly positioned, restored and displayed at the user terminal.
In the embodiment of the invention, the server can receive the change plotting data uploaded by each client. The changed plot data described herein may be a modification, deletion, or addition of new plot data after a new plot is found. The uploaded change plotting data can comprise information such as plotting data type and position.
In step S220, a client in which the region of interest includes the position is acquired according to the position of the variation plot data.
The server can find all the clients in the concerned area including the position of the change plotting data according to the positions of the change plotting data uploaded by the clients. Here, the attention area of the client may be determined according to the size of the display screen of the client, the display scale, the positioning position of the client, and the like.
In step S230, the change plotting data is pushed to the client.
After the server finds all clients in the area of interest including the location, the change plotting data can be pushed to the clients for display.
In an exemplary embodiment, the method may further include: the change plot data is stored using a quad-tree (quad-tree) structure.
When a server receives the change plotting data uploaded by a client, the server can store the change plotting data using a quadtree structure.
A quadtree is a tree data structure. The quad tree is defined as: there may be at most four sub-nodes under each node, and usually a part of the two-dimensional space is subdivided into four quadrants or regions and the related information in the regions is stored in the quadtree nodes. This area may be square, rectangular or of any shape. Quadtrees are suitable algorithms for locating pixels in a two-dimensional picture. Because in two-dimensional space (the way in which the graph is often described), planar pixels can be repeatedly divided into four parts, the depth of the tree is determined by the complexity of the picture, computer memory, and the graph. A quadtree can be used to place and locate files (called records or keys) in a database. This algorithm performs a match lookup by constantly dividing the record to be looked up into 4 parts until only one record remains. In the tree, records are stored at the location of the leaves. The reason for this name is because the records are stored on endpoints, which have no more nodes on them. Branches are called nodes. The order of the numbers is the number of branches (also called children) per node. In a quadtree, each node typically has 4 children, so the order is 4. The number of leaves of the quadtree is also 4. The number of lookup operations performed to reach the desired record is referred to as the depth of the tree. In an actual tree, there may be thousands, tens of thousands or billions of records. Not all leaves must have a record. Leaves that do not contain a record are called empty.
It is assumed that each node of the quadtree represents a rectangular region, and each rectangular region can be divided into four small rectangular regions, which are used as rectangular regions represented by four child nodes. Assuming that there are N objects in a rectangular area, the coordinate position of each object is known, and a quadtree is constructed by storing one object with one node of the quadtree. The rectangle can be divided into blocks by adopting a recursive method, and then divided into blocks until each sub-rectangular region only contains one object.
The following are embodiments of the present system and apparatus that may be used to perform method embodiments of the present invention. For details which are not disclosed in the embodiments of the system of the present invention, reference is made to the embodiments of the method of the present invention.
FIG. 3 is a block diagram of a plotting system shown in accordance with an exemplary embodiment.
As shown in fig. 3, the plotting system may include a server and a user terminal, the server and the user terminal are connected by a local area network, a metropolitan area network or a wide area network, and the number of the user terminals is at least one, where: the server may be integrated in a user terminal or may itself act as a user terminal.
Wherein, can establish situation map in the server and plot the service database, and presume the system administrator, wherein: the situation icon plotting service database may include a participating department/personnel information data table and a department/personnel plotting layer information data table. The map processing system can be installed on each user terminal, and client software can be installed correspondingly.
When the system is logged in, the participating department/person first searches the database for information about themselves. When the situation graph is plotted, the corresponding layer content of the database is retrieved according to the corresponding authority, then the task of the user is plotted on the displayed situation graph, and the plotted icon is stored in the information data table of the plotting layer of each department/personnel. And when the situation map is displayed by the participating department/personnel client, extracting the corresponding map layer according to the authorization to perform superposition display. And each participating department/personnel modifies the icon of the own layer, and the modified icon is updated to the own layer data table.
The embodiment of the invention can realize an efficient real-time collaborative plotting system through the organic cooperation of the multiple servers and the client. Specifically, a set of map server can be included for managing the downloading of map data; and a scene server for managing all the plotting and the client in the form of scene graph. The change plots are then pushed according to the plot type (e.g., static and dynamic plots) and/or the area of interest of the client.
With continued reference to fig. 3, the client may download map data through the map server. The client may also download a corresponding scene (e.g., plot data within an area of interest) through a scene server.
For example, a client may request plot data from the scene server according to its location (e.g., GPS location), and the scene server may search for the latest scene node containing the client in the scene according to the location of the client and then return to all child nodes of the client.
When a client finds a new plot or modifies or deletes an original plot, the client may upload the new plot to the scene server or submit the modified or deleted plot change information. Wherein, the uploaded plotting data can comprise plotting types (such as static plotting or dynamic plotting, pictures or characters, and the like), positions, description information, and the like; the scene server returns a plot id to the client. The implementation language can be as follows:
Upload【type,posX,posY,desp】
Return【result,id】
in the embodiment of the present invention, the method for the system to realize plotting may be:
(1) and clicking a drawing starting function button to start a graph touch drawing mode.
In a conventional mode, the map responds to the sliding in a dragging mode, and when a finger or a touch pen slides on the map, the map slides along with the sliding. In order to realize that the map is still when the finger or the stylus slides on the map, the map dragging mode needs to be set to be in a non-response state.
A mouse movement monitoring response event function is added by utilizing a GIS (Geographic Information System or Geo-Information System) mouse event response function, the function monitors the sliding action of a finger or a touch pen on a map in real time, and records a screen coordinate sequence value and a longitude and latitude coordinate sequence value when the finger or the touch pen slides on the map.
(2) Graph drawing
And moving the finger or the touch pen to the position of the map to be drawn, and drawing the shapes of a triangle, a pentagram, an arrow and the like in a sliding mode. After the finger leaves the screen, the finger slides at other places of the map to draw a second shape, and by analogy, a plurality of irregular graphs are drawn.
When the finger or the touch pen slides on the map, the screen coordinate sequence value and the longitude and latitude coordinate sequence value are stored in a temporary variable of the memory, and only when the drawing is finished, the screen coordinate sequence value and the longitude and latitude coordinate sequence value are submitted to the database once.
The process of sliding the finger or the touch control pen on the map and drawing the map in real time is realized by monitoring an event function through the movement of the mouse. When a finger or a touch pen slides on a map, the function is triggered, the function deletes the drawn graph at first, and calls a GIS graph drawing function to draw by using a screen coordinate sequence value and a longitude and latitude coordinate sequence value which are stored in a temporary variable.
(3) Drawing graphics style selection
The drawing pattern comprises three types of line colors, thickness and virtual and real lines. Wherein, the color can select 32 bits of color values, the weight unit is pound and comprises 0.25,0.5,0.75,1,1.25,1.5,2.25,3,4.5 and 6, and the dotted and solid lines comprise solid lines and dotted lines.
When drawing, if no drawing pattern is selected, the default is a line width of 3 pounds, a color of red, and a dashed solid line is a solid line.
The drawing of the pattern is realized by setting the pattern in a GIS pattern drawing function.
(4) Pattern erasure
Clicking a graph erasing function button or quickly double clicking a screen, and calling a graph erasing function by the system to erase the recently drawn graph.
(5) And clicking a drawing finishing function button, finishing the graph touch drawing mode, and recovering the map conventional operation mode.
After all drawing works are finished and checked to be correct, the drawing function finishing button is clicked, screen coordinates of drawn contents are converted into longitude and latitude coordinates, the coordinates are stored in the scene server after graph separation operation is carried out, and display effects can be seen by other user terminals in time.
And when the longitude and latitude coordinate sequence of the graph is stored in the scene server, calling a data warehousing and ex-warehousing interface function, wherein the stored content comprises the longitude and latitude coordinate sequence of the graph and a graph style.
When the graph drawing is finished, the system calls a GIS function to remove the mouse movement monitoring event and the mouse double-click monitoring event, sets the graph style value as a default value, clears various temporary variables and the like.
The scene server, which may be a space-optimized based storage structure such as a quadtree, receives the change plot data (e.g., delete, add, modify plots) uploaded by the client. And the scene server stores the change plotting data into the corresponding quadtree nodes according to the latitude and longitude of the change plotting data.
The scene server can update the stored plots (e.g., dynamic plots) according to the change plot data uploaded by the clients, and if the scene server finds that the plots in the area concerned by a certain client or certain clients change, the corresponding change plots are pushed to the certain client or certain clients. Therefore, the client side is prevented from frequently requesting the plotting data from the scene server, the scene server is prevented from pushing the fixed plotting data to the client side, and the flow is reduced. Meanwhile, the client only receives the change plotting data relevant to the attention area of the client, so that the receiving of the plotting data irrelevant to the client is avoided, and a large amount of real-time plotting can be quickly processed on the client.
It should be noted that, although the electronic map plotting is taken as an example for military combat application in the above embodiments, the present disclosure is not limited thereto, and with the continuous development of information technology, the electronic map plotting has been advanced to various aspects of people's life, such as plotting various underground pipe distributions in cities, plotting positions of fire hydrants, plotting positions of bus stations and kiosks, and the like.
FIG. 4 is a block diagram illustrating a plotting apparatus according to an exemplary embodiment.
As shown in fig. 4, the plotting apparatus 100 may include a map data loading module 110, an attention area determining module 120, and a push message receiving module 130.
The map data loading module 110 may be configured to load the map data of the target area in advance.
The attention area determination module 120 may be configured to determine the attention area of the client according to the positioning position and the display scale of the client.
The receive push message module 130 may be used to receive pushed change plotting data, wherein the pushed change plotting data relates to an area of interest of the client.
In an exemplary embodiment, the change plot data may include one or more of modification, deletion, addition, and the like of the plot data.
In an exemplary embodiment, the pushed change plot data may also be related to a plot data type.
In an exemplary embodiment, the plot data types may include static plots and dynamic plots.
In an exemplary embodiment, the plotting apparatus 100 may further include: a download plot data module that can be used to download corresponding plot data according to a location position of the client.
In an exemplary embodiment, the plotting apparatus 100 may further include: a plotting module, which can be used for adding and/or modifying and/or deleting plotting data in the region of interest of the client; and the plotting data uploading module can be used for uploading the newly added and/or modified and/or deleted plotting data.
FIG. 5 is a block diagram of another plotting apparatus shown in accordance with an exemplary embodiment.
As shown in fig. 5, the plotting apparatus 200 may include a receiving plot data module 210, a client information acquisition module 220, and a plot data push module 230.
The receive plot data module 210 may be used to receive uploaded change plot data.
The client information obtaining module 220 may be configured to obtain, according to the location of the change plotting data, a client whose region of interest includes the location.
Plot data push module 230 may be used to push the change plot data to the client.
In an exemplary embodiment, the plotting apparatus 200 may further include: a storage module operable to store the change plotting data using a quadtree structure.
According to an exemplary embodiment of the present disclosure, there is provided a user terminal, which may include: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to: map data of a target area is loaded in advance; determining a concerned area of a client according to the positioning position and the display scale of the client; receiving pushed change plotting data, wherein the pushed change plotting data relates to an area of interest of the client.
Fig. 6 is a block diagram illustrating a user terminal according to an example embodiment. Fig. 6 schematically shows a common structure of the user terminal, and an internal component, software, and protocol structure of the common user terminal is explained with reference to fig. 6.
The user terminal has a processor 610 which is responsible for the overall operation of the user terminal and may be implemented using any commercially available central processing unit, digital signal processor or any other electronic programmable logic device. The processor 610 has associated memory 620, the memory 620 including, but not limited to, RAM memory, ROM memory, EEPROM memory, flash memory, or a combination thereof. The memory 620 is controlled by the processor 600 for various purposes, one of which is to store program instructions and data for various software in the mobile terminal.
The software layer of the user terminal includes a real-time operating system 640, drivers for a human-machine interface 660, an application handler 650, and various applications. Such as a text editor 651, a handwriting recognition application 652, and various other multimedia applications 653, typically including applications such as a voice call application, a video call application, a send and receive Short Message Service (SMS) messaging application, a Multimedia Messaging Service (MMS) application or an email application, a web browser, an instant messaging application, a phone book application, a calendar application, a control panel application, a camera application, one or more video games, a notepad application, etc. It should be noted that two or more of the above-described applications may be executed as the same application.
The user terminal also includes one or more hardware controllers for cooperating with the driver of the human-machine interface 660 with the display device 661, the physical keys 662, the microphone 663 and various other I/O devices such as speakers, vibrators, ring generators, LED indicators, etc. to enable human-machine interaction of the user terminal. It will be appreciated by those skilled in the art that the user may operate the mobile terminal through the human-machine interface 660 thus formed.
The software layer of the user terminal may also include various modules, protocol stacks, drivers, etc. and communication related logic, summarized as communication interface 670 as shown in fig. 6, for providing communication services (e.g., transport, network and connectivity) for the radio frequency interface 671 and optionally the bluetooth interface 672 and/or the infrared interface 673 to enable network connectivity of the mobile terminal. The wireless radio frequency interface 671 includes an internal or external antenna and appropriate radio circuitry for establishing and maintaining a wireless link to a base station. As is well known to those skilled in the art, the radio circuitry comprises a series of analog and digital electronic components which together form a radio receiver and transmitter. These components include, for example, band pass filters, amplifiers, mixers, local oscillators, low pass filters, AD/DA converters, and the like.
The user terminal may further comprise a card reading means 630, the card reading means 630 typically comprising a processor and data storage etc. for reading information of the SIM card and therewith accessing the network provided by the operator in accordance with the cooperative wireless radio frequency interface 617.
Those skilled in the art will appreciate that all or part of the steps implementing the above embodiments are implemented as computer programs executed by a CPU. The computer program, when executed by the CPU, performs the functions defined by the method provided by the present invention. The program may be stored in a computer readable storage medium, which may be a read-only memory, a magnetic or optical disk, or the like.
According to an exemplary embodiment of the present disclosure, there is provided a server, which may include: one or more processors; storage means for storing one or more programs; when executed by the one or more processors, cause the one or more processors to implement a plotting method as follows: receiving uploaded change plotting data; according to the position of the change plotting data, a client of which the attention area comprises the position is obtained; pushing the change plotting data to the client.
According to an exemplary embodiment of the present disclosure, a computer-readable medium is provided, on which a computer program is stored, which program, when being executed by a processor, carries out the steps of: receiving uploaded change plotting data; according to the position of the change plotting data, a client of which the attention area comprises the position is obtained; pushing the change plotting data to the client.
Furthermore, it should be noted that the above-mentioned figures are only schematic illustrations of the processes involved in the method according to exemplary embodiments of the invention, and are not intended to be limiting. It will be readily understood that the processes shown in the above figures are not intended to indicate or limit the chronological order of the processes. In addition, it is also readily understood that these processes may be performed synchronously or asynchronously, e.g., in multiple modules.
It is noted that the block diagrams shown in the above figures are functional entities and do not necessarily correspond to physically or logically separate entities. These functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor devices and/or microcontroller devices.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiment of the present invention can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to make a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) execute the method according to the embodiment of the present invention.
Exemplary embodiments of the present invention are specifically illustrated and described above. It is to be understood that the invention is not limited to the precise construction, arrangements, or instrumentalities described herein; on the contrary, the invention is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.