Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD OF CLUSTERING POINTS OF INTEREST USING A GRID
Document Type and Number:
WIPO Patent Application WO/2016/124986
Kind Code:
A1
Abstract:
A system and method of clustering points of interest displayed to a user as graphical characters on a map displayed on an electronic device, the method comprising: receiving a user request for providing a first point of interest, a second point of interest, a third point of interest and a fourth point of interest for displaying on a map; receiving a marker of the first point of interest, a marker of the second point of interest, a marker of the third point of interest and a marker of the fourth point of interest, the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest each having a position on the map and a graphical character representing the corresponding marker;

Inventors:
KORZUNOV ANTON VASILYEVICH (RU)
Application Number:
PCT/IB2015/054582
Publication Date:
August 11, 2016
Filing Date:
June 17, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
YANDEX EUROPE AG (CH)
YANDEX LLC (RU)
YANDEX INC (US)
International Classes:
G01C21/32
Foreign References:
US20130093787A12013-04-18
US20130028508A12013-01-31
US20040030492A12004-02-12
US8566029B12013-10-22
Attorney, Agent or Firm:
CUTLER, Jonathan D. (1100 Rene-Levesque Blvd WestSuite 250, Montreal Québec H3B 5C9, CA)
Download PDF:
Claims:
CLAIMS

What is claimed is:

1. A server-implemented method of clustering points of interest displayed to a user as graphical characters on a map displayed on an electronic device, the method comprising: receiving a user request for providing a first point of interest, a second point of interest, a third point of interest and a fourth point of interest for displaying on a map; receiving a marker of the first point of interest, a marker of the second point of interest, a marker of the third point of interest and a marker of the fourth point of interest, the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest each having a position on the map and a graphical character representing a corresponding marker; determining on the map a location of a graphical character representing the marker of the first point of interest, a location of a graphical character representing the marker of the second point of interest, a location of a graphical character representing the marker of the third point of interest and a location of a graphical character representing the marker of the fourth point of interest; applying on the map a layer of a grid, the layer of the grid having a plurality of grid cells, each grid cell having a size greater than the largest one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest; if the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest are in a first cell, and if the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest are in a second cell, determining if there is an overlap between at least two graphical characters, including: determining if there is an overlap between the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest and, if so, aggregating the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest into a first cluster and placing a graphical character representing the first cluster in a center of mass of points aggregated into the first cluster; determining if there is an overlap between the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest and, if so, aggregating the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest into a second cluster and placing a graphical character representing the second cluster at a center mass of points aggregated into the second cluster.

2. The method of claim 1, wherein the user request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map further includes receiving a user request for providing a fifth point of interest for displaying on the map, the method further comprising: receiving a marker of the fifth point of interest, the fifth point of interest having a position on the map and a graphical character representing a marker of the fifth point of interest; determining on the map a location of the graphical character representing the marker of the fifth point of interest; if the graphical character representing the marker of the fifth point of interest is located on an intersection of at least two adjacent grid cells: determining if there is an overlap between: the graphical character representing the marker of the fifth point of interest and at least one of the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, and, if such an overlap exists, aggregating the graphical character representing the marker of the fifth point with one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, into one of: the first cluster, the second cluster and a third cluster and placing a graphical character representing a corresponding cluster in a center of mass of points aggregated into the corresponding cluster.

3. The method of claim 2, wherein when as a result of the determining if there is an overlap between the at least two graphical characters, the server determines that there is an overlap between the graphical character representing the marker of the fifth point of interest and at least one of the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, the server determines that there is an overlap between the graphical character representing the marker of the fifth point of interest and the at least two graphical characters, the method further comprising: selecting from the at least two graphical characters a one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest.

The method of claim 3, wherein for the selecting from the at least two graphical characters the one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest, the server: determines a center of mass of the marker of the fifth point of interest, determines at least two other centers of mass, each of the at least two other centers of mass being one of a center of mass of a marker of a point of interest and a center of mass of a plurality of markers of points of interest aggregated into one cluster, determines which one of the at least two other centers of mass is closer to the center of mass of the marker of the fifth point of interest and selects, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass located nearest to the center of mass of the marker of the fifth point of interest.

The method of claim 3, wherein for the selecting from the at least two graphical characters the one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest, the server: determines a center of mass of the graphical character representing the marker of the fifth point of interest, determines a center of mass of each of the at least two graphical characters and selects, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass located nearest to the center of mass of the graphical character representing the marker of the fifth point of interest.

The method of claim 1, wherein the user request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map further includes receiving a user request for providing a sixth point of interest for displaying on the map, the method further comprising: determining if there is an overlap between the graphical character representing the first cluster and the graphical character representing the marker of the sixth point of interest and, if so, aggregating the graphical character representing the marker of the sixth point of interest into the graphical character representing the first cluster and placing the graphical character representing the first cluster in a new center of mass of points aggregated into the first cluster.

The method of claim 1, wherein a graphical character representing any cluster from a plurality of clusters and a graphical character representing a marker of any point of interest from a plurality of points of interest, differ by at least one parameter from: a form of a graphical character, a size of a graphical character and a color of a graphical character.

The method of claim 1, wherein a graphical character representing a corresponding cluster includes an indication of a quantity of points of interest aggregated in the corresponding cluster.

The method of claim 1, wherein the center of mass is determined mathematically.

10. The method of claim 9, wherein the center of mass is determined using DBSCAN (Density Based Spatial Clustering of Applications with Noise) algorithm.

11. The method of claim 1, wherein for the determining if there is an overlap between at least two graphical characters, the server performs a pixel comparison of images corresponding to the at least two graphical characters.

12. The method of claim 1, wherein for the determining if there is an overlap between at least two graphical characters, the server compares geometric coordinates corresponding to the at least two graphical characters.

13. The method of claim 2, wherein at least one of the first point of interest, the second point of interest, the third point of interest, the fourth point of interest and the fifth point of interest is a cluster.

14. A server which includes a network communication interface operationally connected with a processor, the processor being configured to execute: receiving a user request for providing a first point of interest, a second point of interest, a third point of interest and a fourth point of interest for displaying on a map; receiving a marker of the first point of interest, a marker of the second point of interest, a marker of the third point of interest, a marker of the fourth point of interest, the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest each having a position on the map and a graphical character representing a corresponding marker; determining on the map a location of a graphical character representing the marker of the first point of interest, a location of a graphical character representing the marker of the second point of interest, a location of a graphical character representing the marker of the third point of interest and a location of a graphical character representing the marker of the fourth point of interest; applying on the map a layer of a grid, the layer of the grid having a plurality of grid cells, each grid cell having a size greater than the largest one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest; if the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest are in a first cell, and if the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest are in a second cell, determining if there is an overlap between at least two graphical characters, including: determining if there is an overlap between the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest and, if so, aggregating the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest into a first cluster and placing a graphical character representing the first cluster in a center of mass of points aggregated into the first cluster; determining if there is an overlap between the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest and, if so, aggregating the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest into a second cluster and placing a graphical character representing the second cluster in a center of mass of points aggregated into the second cluster. server of claim 14, wherein the processor is further configured to render the server to

receiving a marker of the fifth point of interest, the fifth point of interest having a position on the map and a graphical character representing a marker of the fifth point of interest; determining on the map a location of the graphical character representing the marker of the fifth point of interest; if the graphical character representing the marker of the fifth point of interest is located on an intersection of at least two adjacent grid cells: determining if there is an overlap between: the graphical character representing the marker of the fifth point of interest and at least one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, and if such an overlap exists, aggregating the graphical character representing the marker of the fifth point with the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster into one of: the first cluster, the second cluster, and a third cluster and placing a graphical character representing a corresponding cluster in a center of mass of points aggregated into the corresponding cluster.

16. The server of claim 15, wherein when as the result of the said determining if there is an overlap between the graphical character representing the marker of the fifth point of interest and at least one of the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, the server determines that there is an overlap between the graphical character representing the marker of the fifth point of interest and the at least two graphical characters, the processor is further configured to render the server to execute: selecting from the at least two graphical characters a one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest.

17. The server of claim 16, wherein the processor is further configured to render the server to execute: determining a center of mass of the marker of the fifth point of interest, determining at least two other centers of mass, each of the at least two other centers of mass being one of a center of mass of a marker of a point of interest and a center of mass of a plurality of a plurality of markers of points of interest aggregated into one cluster, determining which one of the at least two other centers of mass is closer to the center of mass of the marker of the fifth point of interest, and selecting, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass located nearest to the center of mass of the marker of the fifth point of interest.

18. The server of claim 16, wherein the processor is further configured to render the server to execute: determining a center of mass of the graphical character representing the marker of the fifth point of interest, determining a center of mass of each of the at least two graphical characters and selecting, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass nearest to the center of mass of the graphical character representing the marker of the fifth point of interest.

19. The server of claim 14, wherein the user request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map further includes receiving a user request for providing a six point of interest for displaying on the map, the processor being further configured to render the server to: determine if there is an overlap between the graphical character representing the first cluster and the graphical character representing the marker of the sixth point of interest and, if so, aggregate the graphical character representing the marker of the sixth point of interest into the graphical character representing the first cluster and place the graphical character representing the first cluster at a new center of mass of points aggregated into the first cluster.

20. The server of claim 14, wherein the center of mass is determined mathematically.

21. The server of claim 20, wherein the center of mass is determined using DBSCAN (Density Based Spatial Clustering of Applications with Noise) algorithm. The server of claim 14, wherein the processor is further configured to render the server to perform a pixel comparison of images corresponding to the at least two graphical characters.

The server of claim 14, wherein the processor is configured to render the server to compare geometric coordinates corresponding to the at least two graphical characters.

Description:
SYSTEM AND METHOD OF CLUSTERING POINTS OF INTEREST USING A GRID

CROSS-REFERENCE

[1] The present application claims priority to Russian Patent Application No. 2015103938, filed February 6, 2015, entitled "CHCTEMA H CTIOCOE ΟΡΓΑΗΗ3ΑΗΗΗ B KJIACTEPBI TOHEK HHTEPECA C HCTIOJII>30BAHHEM CETKH" the entirety of which is incorporated herein.

FIELD

[2] The present technology relates to a system and method of clustering points of interest using a grid.

BACKGROUND

[3] Currently, users must often deal with the large amount of information they receive from the Internet or other resources. Such information may include markings of points of interest on geographical maps, which can be displayed on electronic device displays.

[4] Presenting all the available information on electronic device displays may not be the best option due to difficulties in viewing. Often, when displaying graphical characters representing points of interest, a complete or partial overlap may occur. This can occur due to a variety of factors. One such factor is the amount of available points of interest. Another factor is the scale of the map. The smaller the image scale and the greater the number of points of interest in a particular area, the more overlap there may be between graphical characters representing points of interest. In such cases, it may be desirable not to represent all the graphic characters representing points of interest appearing on an electronic device display. Instead, it is possible to cluster all or some of the graphic characters representing points of interest. Thus, on a map displayed on an electronic device display, graphical characters representing points of interest only, graphical characters representing clusters (i.e. clustered points of interest) only, or both graphical characters representing clusters and graphical characters represented non-clustered points of interest can be shown simultaneously. [5] Currently, several methods of clustering graphical characters are known.

[6] One such method involves placing a grid with cells on a map, aggregating all points of interest in a given cell into a cluster and placing such a cluster into the center of the cell. Clusters thus formed may display the actual concentration of the bulk of the clustered characters inaccurately.

[7] Another method of aggregating graphical characters into clusters includes using DBSCAN (Density Based Spatial Clustering of Applications with Noise) algorithm. This method allows to cluster graphical characters with or without a grid. Clustering is performed taking into account the distance between the characters. For example, graphical characters can be clustered if the distance between them is not more than a certain value (e.g., 10 pixels or 30 pixels, etc.). This method requires a relatively high use of server resources.

[8] Thus, while the existing conventional computer systems are acceptable, it is possible to improve these systems.

SUMMARY

[9] It is an object of the present technology to ameliorate at least some of the inconveniences present in the prior art.

[10] According to a first broad aspect of the present technology, there is provided a method of clustering points of interest displayed to a user as graphical characters on a map displayed on an electronic device. The method of clustering points of interest is executable at a server. The method comprises: receiving a user request for providing a first point of interest, a second point of interest, a third point of interest and a fourth point of interest for displaying on a map; receiving a marker of the first point of interest, a marker of the second point of interest, a marker of the third point of interest and a marker of the fourth point of interest, the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest each having a position on the map and a graphical character representing the corresponding marker; determining on the map a location of a graphical character representing the marker of the first point of interest, a location of a graphical character representing the marker of the second point of interest, a location of a graphical character representing the marker of the third point of interest and a location of a graphical character representing the marker of the fourth point of interest; applying on the map a layer of a grid, the layer of the grid having a plurality of grid cells, each grid cell having a size greater than the largest one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest; if the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest are in a first cell, and if the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest are in a second cell, determining if there is an overlap between at least two graphical characters, including: determining if there is an overlap between the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest and, if so, aggregating the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest into a first cluster and placing a graphical character representing the first cluster in a center of mass of points aggregated into the first cluster; determining if there is an overlap between the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest and, if so, aggregating the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest into a second cluster and placing a graphical character representing the second cluster at a center mass of points aggregated into the second cluster.

[11] In some implementations of the present technology, the user request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map further includes receiving a user request for providing a fifth point of interest for displaying on the map, the method further comprises: receiving a marker of the fifth point of interest, the fifth point of interest having a position on the map and a graphical character representing a marker of the fifth point of interest; determining on the map a location of the graphical character representing the marker of the fifth point of interest; if the graphical character representing the marker of the fifth point of interest is located on an intersection of at least two adjacent grid cells: determining if there is an overlap between: the graphical character representing the marker of the fifth point of interest and at least one of : the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, and, if such an overlap exists, aggregating the graphical character representing the marker of the fifth point with one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, into one of the first cluster, the second cluster and a third cluster and placing a graphical character representing a corresponding cluster in a center of mass of points aggregated into the corresponding cluster.

[12] In some implementations of the present technology, when as a result of the determining if there is an overlap between the at least two graphical characters, the server determines that there is an overlap between the graphical character representing the marker of the fifth point of interest and at least two of the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, the server determines that there is an overlap between the graphical character representing the marker of the fifth point of interest and the at least two graphical characters, the method further comprises: selecting from the at least two graphical characters a one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest.

[13] In some implementations of the present technology, for the selecting from the at least two graphical characters the one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest, the server: determines a center of mass of the marker of the fifth point of interest, determines at least two other centers of mass, each of the at least two other centers of mass being one of: a center of mass of a marker of a point of interest and a center of mass of a plurality of markers of points of interest aggregated into one cluster, determines which one of the at least two other centers of mass is closer to the center of mass of the marker of the fifth point of interest and selects, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass located nearest to the center of mass of the marker of the fifth point of interest.

[14] In some implementations of the present technology, for the selecting from the at least two graphical characters the one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest, the server: determines a center of mass of the graphical character representing the marker of the fifth point of interest, determines a center of mass of each of the at least two graphical characters and selects, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass located nearest to the center of mass of the graphical character representing the marker of the fifth point of interest.

[15] In some implementations of the present technology, the user request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map further includes receiving a user request for providing a sixth point of interest for displaying on the map, the method further comprises: determining if there is an overlap between the graphical character representing the first cluster and the graphical character representing the marker of the sixth point of interest and, if so, aggregating the graphical character representing the marker of the sixth point of interest into the graphical character representing the first cluster and placing the graphical character representing the first cluster in a new center of mass of points aggregated into the first cluster.

[16] In some implementations of the present technology, a graphical character representing any cluster from a plurality of clusters and a graphical character representing a marker of any point of interest from a plurality of points of interest, differ by at least one parameter from the following parameters: a form of a graphical character, a size of a graphical character and a color of a graphical character. [17] In some implementations of the present technology, a graphical character representing a corresponding cluster includes an indication of a quantity of points of interest aggregated in the corresponding cluster.

[18] In some implementations of the present technology, the center of mass is determined mathematically.

[19] In some implementations of the present technology, the center of mass is determined using DBSCAN (Density Based Spatial Clustering of Applications with Noise) algorithm.

[20] In some implementations of the present technology, for the determining if there is an overlap between at least two graphical characters, the server performs a pixel comparison of images corresponding to the at least two graphical characters.

[21] In some implementations of the present technology, for the determining if there is an overlap between at least two graphical characters, the server compares geometric coordinates corresponding to the at least two graphical characters.

[22] In some implementations of the present technology, at least one of the first point of interest, the second point of interest, the third point of interest, the fourth point of interest and the fifth point of interest is a cluster.

[23] Another object of the present technology is a server. The server includes a communication interface. The server includes a processor. The processor is operationally connected with the communication interface. The processor is configured to render the server to execute: receiving a user request for providing a first point of interest, a second point of interest, a third point of interest and a fourth point of interest for displaying on a map; receiving a marker of the first point of interest, a marker of the second point of interest, a marker of the third point of interest, a marker of the fourth point of interest, the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest each having a position on the map and a graphical character representing the corresponding marker; determining on the map a location of a graphical character representing the marker of the first point of interest, a location of a graphical character representing the marker of the second point of interest, a location of a graphical character representing the marker of the third point of interest and a location of a graphical character representing the marker of the fourth point of interest; applying on the map a layer of a grid, the layer of the grid having a plurality of grid cells, each grid cell having a size greater than the largest one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest; if the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest are in a first cell, and if the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest are in a second cell, determining if there is an overlap between at least two graphical characters, including: determining if there is an overlap between the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest and, if so, aggregating the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest into a first cluster and placing a graphical character representing the first cluster in a center of mass of points aggregated into the first cluster; determining if there is an overlap between the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest and, if so, aggregating the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest into a second cluster and placing a graphical character representing the second cluster in a center of mass of points aggregated into the second cluster.

[24] In some implementations of the server, the processor is further configured to render the server to execute: receiving a marker of the fifth point of interest, the fifth point of interest having a position on the map and a graphical character representing a marker of the fifth point of interest; determining on the map a location of the graphical character representing the marker of the fifth point of interest; if the graphical character representing the marker of the fifth point of interest is located on an intersection of at least two adjacent grid cells: determining if there is an overlap between: the graphical character representing the marker of the fifth point of interest and at least one of: the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, and if such an overlap exists, aggregating the graphical character representing the marker of the fifth point with the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster into one of: the first cluster, the second cluster, and a third cluster and placing a graphical character representing a corresponding cluster in a center of mass of points aggregated into the corresponding cluster.

[25] In some implementations of the server, when as the result of the said determining if there is an overlap between the graphical character representing the marker of the fifth point of interest and at least one of the graphical character representing the marker of the first point of interest, the graphical character representing the marker of the second point of interest, the graphical character representing the marker of the third point of interest, the graphical character representing the marker of the fourth point of interest, the graphical character representing the first cluster and the graphical character representing the second cluster, the server determines that there is an overlap between the graphical character representing the marker of the fifth point of interest and at the least two graphical characters, the processor is further configured to render the server to execute: selecting from the at least two graphical characters, a one most appropriate character for aggregating with the graphical character representing the marker of the fifth point of interest.

[26] In some implementations of the server, the processor is further configured to render the server to execute: determining a center of mass of the marker of the fifth point of interest, determining at least two other centers of mass, each of the at least two other centers of mass being one of a center of mass of a marker of a point of interest and a center of mass of a plurality of markers of points of interest aggregated into one cluster, determining which one of the at least two other centers of mass is closer to the center of mass of the marker of the fifth point of interest, and selecting, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass located nearest to the center of mass of the marker of the fifth point of interest.

[27] In some implementations of the server, the processor is further configured to render the server to execute: determining a center of mass of the graphical character representing the marker of the fifth point of interest, determining a center of mass of each of the at least two graphical characters and selecting, as a most appropriate graphical character for aggregating with the graphical character representing the marker of the fifth point of interest, a graphical character with a center of mass nearest to the center of mass of the graphical character representing the marker of the fifth point of interest.

[28] In some implementations of the server, the user request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map further includes receiving a user request for providing a six point of interest for displaying on the map, the processor is further configured to render the server to: determine if there is an overlap between the graphical character representing the first cluster and the graphical character representing the marker of the sixth point of interest and, if so, aggregate the graphical character representing the marker of the sixth point of interest into the graphical character representing the first cluster and place the graphical character representing the first cluster at a new center of mass of points aggregated into the first cluster.

[29] In some implementations of the server, the center of mass is determined mathematically.

[30] In some implementations of the server, the center of mass is determined using DBSCAN (Density Based Spatial Clustering of Applications with Noise) algorithm.

[31] In some implementations of the server, the processor is further configured to render the server to perform a pixel comparison of images corresponding to the at least two graphical characters.

[32] In some implementations of the server, the processor is further configured to render the server to compare geometric coordinates corresponding to the at least two graphical characters. [33] In the context of the present specification, a "server" is a computer program that is running on appropriate hardware and is capable of receiving requests (e.g. from electronic devices) over a network, and carrying out those requests, or causing those requests to be carried out. The hardware may be implemented as one physical computer or one physical computer system, but neither is required to be the case with respect to the present technology. In the present context, the use of the term a " server" is not intended to mean that every task (e.g. received instructions or requests) or any particular task will have been received, carried out, or caused to be carried out, by the same server (i.e. the same software and/or hardware); it is intended to mean that any number of software elements or hardware devices may be involved in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request; and all of this software and hardware may be one server or multiple servers, both of which are included within the term "server".

[34] In the context of the present specification, the expression "information" includes information of any nature or kind whatsoever capable of being stored in a database. Thus information includes, inter alia, audiovisual works (images, video, audio and the like), data (map data, location data, numerical data and the like), text (signs, titles, descriptions, warnings, text messages and the like), documents, spreadsheets and the like.

[35] In the context of the present specification, the expression "component" is meant to include software (appropriate to a particular hardware context) that is both necessary and sufficient to achieve the specific function(s) being referenced.

[36] In the context of the present specification, the expression "point of interest" (POI) means an object or a group of objects which can be of interest to a user. For example, health care facilities, culture and leisure centers, sightseeing attractions, foodservice facilities, transportation infrastructure objects (for example, gas-filling stations) and the like can be points of interest.

[37] In the context of the present specification, the expression "marker" means a point on a map which refers to an object or a group of objects (a marker of a point of interest), or which refers to a center of mass of points of interest aggregated into one cluster.

[38] In the context of the present specification, the expression "marker of a point of interest" means a point on a map which refers to an object or a group of objects. The marker of the point of interest can include information about the object(s), such as a name, type, address, contact information. The marker of the point of interest can be a point-like object and have a position on a map and be invisible to a user. The marker of the point of interest can have a graphical character, which refers to the given marker of the point of interest and which is visible to the user.

[39] In the context of the present specification, the expression "graphical character" means a graphical image representing a point of interest (a marker of a point of interest) on a map or a cluster which includes more than one point of interest. The graphical character can be a spatial object, which is mapped and is visible to the user. Graphical characters can have various geometric shapes and sizes. The graphical character can also include alphabetic, numerical and alphanumeric information. Graphical characters can be implemented in various colors.

[40] In the context of the present specification, the expression "grid" means a grid which includes a plurality of cells and which is used for conditional partitioning of a map into sectors and analyzing spatial data, including data concerning points of interest (markers of points of interest), cluster data, as regards clusters located both in cells and on the borders of adjoining cells.

[41] In the context of the present specification, the expression "computer information storage medium" is intended to include media of any nature and kind whatsoever, including without limitation RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc. A plurality of components may be combined to form the computer information storage medium, including two or more media components of the same type and/or two or more media components of different types.

[42] In the context of the present specification, a "database" is any structured collection of data, irrespective of its particular structure, the database management software, or the computer hardware on which the data is stored, implemented or otherwise rendered available for use. A database may reside on the same hardware as the process that stores or makes use of the information stored in the database or it may reside on separate hardware, such as a dedicated server or plurality of servers. [43] In the context of the present specification, the words "first", "second", "third", etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns. Thus, for example, it should be understood that, the use of the terms "first point of interest" and "third point of interest" is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of/between the point of interests, nor is their use (by itself) intended imply that any "second point of interest" must necessarily exist in any given situation. Further, as is discussed herein in other contexts, reference to a "first" element and a "second" element does not preclude the two elements from being the same actual real- world element. Thus, for example, in some instances, a "first" server and a "second" server may be the same software and/or hardware, in other cases they may be different software and/or hardware.

[44] Implementations of the present technology each have at least one of the above-mentioned objects, but do not necessarily have all of them. It should be understood that some aspects of the present technology that have resulted from attempting to attain the above-mentioned objects may satisfy other objects not specifically recited herein.

[45] Additional and/or alternative features, aspects and advantages of implementations of the present technology will become apparent from the following description, the accompanying drawings and the appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[46] For a better understanding of the present technology as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:

[47] Fig. 1 depicts an implementation of a network computer system, the network computer system being implemented in accordance with non-limiting embodiments of the present technology.

[48] Fig. 2 depicts a part of a map which was generated by the server with graphical characters representing points of interest and placed on the part of the map. [49] Fig. 3 depicts a part of a map, which was generated by the server, with graphical characters representing points of interest placed on the part of the map, and with a grid applied to the given part of the map.

[50] Fig. 4 depicts a part of a map, which was generated by the server, with graphical characters representing points of interest and clusters placed on the part of the map, and with a grid applied to the given part of the map.

[51] Fig. 5 depicts a part of a map, which was generated by the server, with graphical characters of different sizes, representing points of interest and clusters placed on the part of the map, and with a grid applied on the given part of the map.

[52] Fig. 6 depicts a part of a map, which was generated by the server, with graphical characters of different sizes, representing points of interest and clusters placed on the part of the map, and with a grid applied on the given part of the map.

[53] Fig. 7 is a block diagram of a method executed on a server of Fig. 1, the method being implemented in accordance with non-limiting embodiments of the present technology.

DETAILED DESCRIPTION

[54] In Fig. 1, a schematic diagram of various computer systems 100 which are connected to each other via the communication network 110 is depicted. It is to be expressly understood that the computer systems 100 are depicted as illustrative implementations of the present technology. Thus, the description thereof that follows is intended to be only a description of illustrative examples of the present technology. This description is not intended to define the scope or set forth the bounds of the present technology. In some cases, what are believed to be helpful examples of modifications to the computer systems 100 may also be described below. This is done solely as an aid to understanding, and not to define the scope or set forth the bounds of the present technology. These modifications are not an exhaustive list, and, as a person skilled in the art would understand, other modifications are likely possible. Further, where no examples of modifications have been set forth, it should not be interpreted that no modifications are possible, and/or that what is described is the sole manner of implementing that element of the present technology. As a person skilled in the art would understand, this is likely not the case. In addition it is to be understood that the computer systems 100 may in certain instances provide simple implementations of the present technology, and that where this is the case, they have been presented in this manner as an aid to understanding. As will be appreciated by a person skilled in the art, various implementations of the present technology may be of a greater complexity.

[55] The computer systems 100 include the server 102.

[56] The server 102 may be implemented as a conventional computer server. In an example of an embodiment of the present technology, the server 102 may be implemented as a Dell™ PowerEdge™ Server running the Microsoft™ Windows Server™ operating system.

[57] Needless to say, the server 102 may be implemented in any other suitable hardware and/or software and/or firmware or a combination thereof. In the depicted non-limiting embodiment of the present technology, the server 102 is a single server. In alternative non- limiting embodiments of the present technology, the functionality of the server 102 may be distributed and may be implemented via multiple servers.

[58] In general, the implementations of the server 102 are well known in the art. Thus, suffice it to note that the server 102 comprises, inter alia, a network communication interface (not shown) for two-way communication over the communication network 110; and a processor (not shown) coupled to the network communication interface, the processor being configured to execute various routines, including those described herein below. To that end, the processor may store or have access to computer readable commands, which, when executed, cause the processor to execute the various routines described herein.

[59] The server 102 includes a storage medium 104 that might be used by the server 102. In principle, the storage medium 104 can be storage media of any nature and kind, including RAM, ROM, disks (CD-ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc., or a combination thereof.

[60] The storage medium 104 of the server 102 is intended to store data including computer- readable instructions and databases 106. [61] The storage medium 104 of server 102 stores the databases 106, which store cartographic material and information concerning a plurality of points of interest. In alternative implementations of the present technology, the storage medium 104 can store in the databases 106 either only cartographic material or only information concerning points of interest. In other alternative implementations of the present technology, the storage medium 104 may not store the databases 106, but rather use external data.

[62] Implementation of the databases 106 may be implemented by any suitable method known in the art. How the databases 106 are implemented is not particularly important. The concrete implementation of the database can be determined by the characteristics of the stored data. The data storage format can also be determined by the characteristics of the stored data. For example, the YMapsML format may be used as the data storage format.

[63] In alternative implementations of present technology, the GML format - Geographic Markup Language - may be used as the data storage format. GML is developed and maintained by the OGC (Open Geospatial Consortium) and is an international ISO standard.

[64] The storage medium 104 of the server 102 effects the storing of computer-readable instructions that manage the control, updating, populating and modifying of the databases 106. Specifically, computer-readable instructions stored on the storage medium 104 allow the server 102 to receive requests to provide points of interest from the electronic device 112. Computer- readable instructions stored on the storage medium 104 also allow the server 102 to receive other required data from internal and external sources. For example, they can allow the server 102 to share map data with external sources. Such sharing can be effected by any suitable manner known in the art. For example, such sharing can be effected with the Yandex™ maps server via data sharing in the YMapsML format.

[65] In some implementations of the present technology, the server 102 can be under control and/or management of a map service provider, for example, Yandex.Maps™. In other implementations of the present technology, the server 102 can have an access to a map service provided by a third party entity.

[66] The computer- readable instructions stored on the storage medium 104 allow the server 102 to receive requests of the user 120 to provide points of interest for displaying on the map 200, depicted schematically in Fig. 2, Fig. 3, Fig. 4, Fig. 5 and Fig. 6.

[67] Fig. 2 is a schematic image depicting a part of a map which was generated by the server with graphical characters representing points of interest placed on the part of the map.

[68] Fig. 3 is a schematic image depicting a part of a map 200, which was generated by the server 102, with graphical characters representing points of interest placed on the part of the map, and with a grid 302 applied to the given part of the map 200.

[69] Fig. 4 is a schematic image depicting a part of a map 200, which was generated by the server 102, with graphical characters representing points of interest and clusters placed on the part of the map, and with the grid 302 applied to the given part of the map 200.

[70] Fig. 5 is a schematic image depicting a part of a map 200, which was generated by the server 102, with graphical characters of different sizes representing points of interest and clusters placed on the part of the map, and with the grid 302 applied to the given part of the map 200.

[71] Fig. 6 is yet another schematic image depicting a part of a map 200, which was generated by the server 102, with graphical characters of different sizes representing points of interest and clusters placed on the part of the map, and with the grid 302 applied to the given part of the map 200.

[72] The server 102 can receive from the electronic device 112 over the communication network 110 requests of the user 120 for providing points of interest for displaying on the map 200.

[73] A point of interest can represent an object or a group of objects which can be of interest to the user 120. All points of interest can be organized into groups according to a specific classifier, which can be a one-level, two-level or three-lever classifier. For example, a two-level classifier can include the following headings and subheadings (elements of the classifier that are subheadings are specified in parentheses): business and manufacturing (business-centers, companies, manufacturing facilities and other facilities), state and society (safety, state agencies, emergency services, social services), culture (libraries and archives, exhibition centers, movie theaters, concert halls, culture centers, museums, galleries, mass media, theaters) healthcare (pharmacies, hospitals, animal clinics, health centers, women's health clinics, health products, medical centers, medical boards, first-aid posts, optical store, clinics, maternity clinics, health resorts, dental hospitals, injury care centers, other health facilities), science and education (scientific institutions, education), recreation (cultural sites, natural attractions, entertainment, sport, tourism), commercial business (car shops, household goods, clothes and shoes, food, specialized stores, shopping centers, electronics), transport (air transport, automobile transport, railway transport, public transport), services (road transport services, consumer services, public utilities, accommodation, restaurants, cafeterias, funeral services, other services, communication, beauty services, finance services, legal services, insurance services), population centers (cottage communities, area centers, gardeners' partnership) and other. Three-level and multilevel classifiers have a greater level of detail due to the generation of lower level classifier elements. Thus, for example, in a three-level classifier, all or some of the subheadings can be detailed. For example, the "entertainment" subheading can include lower level classifier elements , such as: waterparks, amusement rides, billiard, bowling alleys, zoos, gambling establishment, movie theaters, night clubs, parks, gardens, recreation parks, paintball, airsoft, beaches, entertainment centers, circuses and other entertainment. As another example, the "car shops" subheading under the "commercial business" heading can include lower level classifier elements, such as: auto parts, automobile dealerships, motor bike dealerships, other car shops.

[74] In other implementations of the present technology, the points of interest may be non- rubricated.

[75] A point of interest can be an individual object (for example, the Cathedral of the Archangel of the Kremlin, the Cathedral of the Annunciation of the Kremlin, the Tsar Cannon and the like), as well as a group of objects, which together constitute one point of interest (for example, the Moscow Kremlin).

[76] The computer- readable instructions stored on the storage medium 104 allow the server 102 to receive markers of points of interest from the database 106. Further, the computer- readable instructions stored on the storage medium 104 allow the server 102 to receive additional parameters from the database 106 associated with corresponding points of interest, such as an object name, an object description, an object photo, contact information or a hyperlink. [77] In the context of the present specification, the expression "marker of a point of interest" means a point on a map 200 which refers to a point of interest. The marker of the point of interest can include information about the object (objects), such as a name, type, address, contact information. The marker of the point of interest can be a point-like object and be invisible to a user.

[78] Each marker of a point of interest can have a position on the map 200.

[79] The computer- readable instructions stored on the storage medium 104 allow the server 102 to receive information from published sources about points of interest which can potentially be shown to the user 120 on the display 118 of the electronic device 112, and generate markers of points of interest.

[80] The expression "published sources" means any suitable sources which are available to the server 102, including by receiving data from various hosting services via the communication network 110. For example, various web-pages and web-sites including Internet encyclopedias (for example, Wikipedia), social network sites (for example, Facebook), official sites of objects (for example, the site of the Bolshoi Theater), photo hosting provider sites (for example, Flickr), sites of service providers in the areas of tourism, food services, or any other web-pages and websites.

[81] Alternatively or additionally, the computer-readable instructions stored on the storage medium 104 allow the server 102 to receive information about points of interest from proprietary sources. For example, an owner of the server 102 can himself determine the geographic coordinates of points of interest - sightseeing attractions in Moscow - and himself add the obtained data into the database 106.

[82] Alternatively or additionally, the computer-readable instructions stored on the storage medium 104 allow the server 102 to receive information about points of interest from a publisher (not shown), i.e., a person interested in the publication of the information about the object. For example, the server 102, under control and/or management of a map service provider, can allow any person to mark objects on maps and describe the corresponding objects. For example, such a person can be a publisher, who, from his electronic device (not shown), using a browser, accesses the map service provider and downloads from the server 102 on his electronic device for displaying the maps 200 of a specific area on the display (not shown), marks on the map 200, shown on the display, a re-opened art gallery, indicates its name, describes it briefly and indicates contact information.

[83] Each marker of a point of interest can have a graphical character which marks the given point of interest.

[84] The computer- readable instructions stored on the storage medium 104 allow the server 102 to determine a location of graphical characters of points of interest and graphical characters of clusters on the map 200. In this implementation of the present technology, the location parameter consists of geographical coordinates of an object. For example, the geographical coordinates of the Bolshoi Theater are: 55°45'37" N 37°37'07" E. In alternative implementations of the present technology, an address of an object (as a non-limiting example) can be a location parameter. The address of the Bolshoi Theater is thus: 1, Teatralnaya ploshchad, Moscow, Russia. In some alternative implementations of the present technology, there can be more than one location parameter (for example, geographical coordinates and an address).

[85] In the context of the present specification, the expression "graphical character" means a graphical image representing a point of interest (a marker of a point of interest) or a cluster which includes more than one point of interest on the map 200. The graphical character can be a spatial object, which is displayed on the map 200 and is visible to the user. Graphical characters can have various geometric shapes and sizes. The graphical character can also include alphabetic, numerical and alphanumeric information. Graphical characters can be implemented in various colors.

[86] In some implementations of the present technology, the geometric shape of graphical characters can vary. For example, in some implementations of the present technology, the geometric shape of graphical characters representing a point of interest and the geometric shape of graphical characters representing a cluster may differ. For example, the graphical character 202, representing a point of interest and shown in Fig.4, differs from the graphical character 406, representing a cluster. In other implementations of the present technology, the geometric shape of graphical characters can be the same. [87] In some implementations of the present technology, the sizes of graphical characters may vary. For example, in some implementations of the present technology, sizes of graphical characters can vary depending on the amount of clustered points of interest. For example, the graphical character 504 shown in Fig. 5, representing a cluster aggregating five points of interest represented by the graphical characters 218, 220, 222, 224 and 226, is larger than the graphical character 506, representing a cluster aggregating the two points of interest 212 and 214. In other implementations of the present technology, the size of graphical characters can be the same.

[88] In some implementations of the present technology, graphical characters can include alphabetic, numerical and alphanumeric information. Such information can be the same for all or some of the graphical characters or it can differ between the various graphical characters. For example, the graphical character 504 shown in Fig. 5, representing a cluster aggregating the five points of interest represented by the graphical characters 218, 220, 222, 224 and 226, contains the digit "5", and the graphical character 506, representing a cluster aggregating the two points of interest 212 and 214, contains the digit "2".

[89] Graphical characters can be implemented in various colors and the colors can be unicolor and multicolor. In some implementations of the present technology, all graphical characters can be in the same color. In other implementations of the present technology, various graphical characters can differ in color. For example, all graphical characters representing points of interest can be implemented in blue, and all graphical characters representing clusters can be implemented in pink; color intensity can vary depending on the amount of points of interest clustered.

[90] When determining the location of graphical characters of points of interest and graphical characters of clusters on the map 200, the server 102 can place graphical characters in such a way that the center of mass of a spatial object representing a graphical character of a point of interest matches the position of the point of interest on the map 200. However, this is not required. As a non-limiting example, the server 102 can place graphical characters shaped as inverted drops in such a way that the tip of a drop would match the position of a marker of a point of interest on the map. As an illustrative example, the graphical character 202 shown in Fig. 3 is depicted as an inverted drop with its tip pointing down. [91] When determining the location of graphical characters of clusters on the map 200, the server 102 can place graphical characters in such a way that the center of mass of a spatial object representing a graphical character of a point of interest matches the center of mass of points of interest clustered in a given cluster. However, this is not required. As a non-limiting example, the server 102 can place graphical characters shaped as maple leaves (not shown) in such a way that the tip of the leaf s twig would match the center mass of the points of interest clustered in a given cluster.

[92] The density of point of interest spacing can vary. Graphical characters representing points of interest may not come into contact with each other or may contact each other, and may overlap completely or partially. For example, the graphical characters 202, 204 and 206 shown in Fig. 2 do not overlap with other graphical characters and do not come into contact with other graphical characters. The graphical characters 208 and 210 depicted in Fig. 2 partially overlap. The graphical characters 212 and 214 depicted in Fig. 2 partially overlap, and the graphical character 216 comes into contact with the graphical character 214. The graphical characters 218, 220, 222, 224 and 226 depicted in Fig. 2 partially overlap.

[93] Contact and overlapping are possible when points of interest are located relatively close to each other.

[94] The probability of overlap can depend on various factors. For example, the possibility of contact and overlap can be influenced by the density of points of interest per unit area, the scale of the map 200 and the size of graphical characters representing points of interest. For example, the quantity of sightseeing attractions per square kilometer within the territory of the Moscow Kremlin will be greater than within the territory of Vikhrovsky village, Pristensky sector, Kursk Region. Accordingly, if the points of interest are sightseeing attractions, then, with the same scale, the possibility of overlap is higher when points of interest are displayed within the territory of the Moscow Kremlin than when points of interest are displayed within the territory of Vikhrovsky village, Pristensky sector, Kursk Region.

[95] The above is also applicable to graphical characters representing clusters which can also come into contact and/or overlap (completely or partially) with other graphical characters representing points of interest and/or clusters. For example, the graphical characters 506 and 216 show in Fig. 5 partially overlapped, the graphical character 502 represents a cluster which aggregating two points of interest and the graphical character 216 is a graphical character representing a point of interest.

[96] The computer-readable instructions stored on the storage medium 104 may allow the server 102 to perform the placing of a layer of the grid 302 over the map 200, as illustratively shown in Fig. 3.

[97] In the context of the present specification, the expression "grid" means the grid 302, which includes a plurality of cells and which is used for conditional partitioning of the map 200 into sectors and analyzing spatial data, including data concerning points of interest (markers of points of interest), cluster data, as regards clusters located both in cells and on the borders of adjoining cells.

[98] The server 102 can perform applying the grid 302 over the map 200 in such a way that the size of the cell of the grid 302 is larger than the largest graphical character, representing either a marker of a point of interest or a cluster.

[99] Thus, if all graphical characters have the same size, as it is shown in Fig. 3, then the size of the cell will be larger than the size of any graphical character.

[100] If the size of graphical characters differs (for example, if the size of the graphical characters representing clusters differs depending on a quantity of aggregated points of interest, as shown in Fig. 5, then the size of the cell will be larger than the size of the largest graphical character of all characters displayed at a corresponding part of the map 200. In the example shown in Fig. 5, the largest graphical character is the graphical character 504.

[101] Aside the fact that the size of the cell can exceed the size of any graphical character, cell borders may or may not intersect with graphical characters. For example, as shown in Fig. 3, the graphical characters 212 and 214 intersect with cell borders of the grid 302 and a graphical character 214 is crossed by two cell borders of the grid 302 simultaneously. A grid applied on the map 200 may not be visible on the display 118 of the electronic device 112. Further, the grid applied on the map 200 may not be transmitted by the server 102 to the electronic device 112. [102] As a result of placing the grid 302 over the map 200, different graphical characters can appear in different cells. For example, as shown in Fig. 3, there are no graphical characters in cells 230, 232, 238 and 242. In the cell 234, there are four graphical characters, namely, the graphical characters 204, 206, 208, 210. In the cell 236, there is one graphical character, namely the graphical character 202. In the cell 240, there are five graphical characters, namely, the graphical characters 218, 220, 222, 224, 226. In the cell 246, there is one graphical character, namely the graphical character 216.

[103] As a result of placing the grid 302 over the map 200, different graphical characters can appear in more than one cell simultaneously. For example, the graphical character 214 intersects with two borders of the cells 238, 240, 244 and 246. In other words, the graphical character 214 is placed at the border of four adjacent cells of the grid 302. The graphical character 214, accordingly, is located simultaneously in the four cells 238, 240, 244 and 246.

[104] In turn, the graphical character 212 also intersects with two borders of the cells 238, 240, 244 and 246. The intersection of the graphical character 212 with a horizontal line dividing the cells 240 and 246 in Fig. 3 cannot be seen due to the graphical character 212 being overlapped by the graphical character 214, yet, such an intersection exists. The graphical character 212 is not in the cell 244 due to its drop shape. In other words, the graphical character 214 is located at the borders of three adjacent cells of the grid 302. The graphical character 212 is located simultaneously in the three cells 238, 240 and 246.

[105] The borders of the cells of the grid 302 can also intersect with graphical characters representing clusters. For example, as shown in Fig. 5, the graphical character 506, representing a cluster, intersects with two borders of the cells 238, 240, 244 and 246.

[106] The computer- readable instructions stored on the storage medium 104 allow the server 102 to determine if there is an overlap between graphical characters representing markers of different points of interest and/or clusters. More specifically, according to implementations of the present technology, the computer-readable instructions stored on the storage medium 104 allow the server to (a) place the layer of the grid over a map, dividing the map 200 into cells and (b) determine if graphical characters from one cell are overlapped (without checking if there are crossings between graphical characters from different cells) and, in response to a detected intersection of graphical characters from one cell, aggregate all or some overlapped graphical characters from one cell into a cluster. Further, according to implementations of the present technology, the computer- readable instructions stored on the storage medium 104 allow the server to determine a location of a graphical character representing the given cluster, taking into account a location of the center of mass of markers of clustered points of interest or taking into account a location of the center of mass of graphical characters of clustered points of interest.

[107] The technical result of the present technology is achieved through a combination of two advantages over the prior art, namely: (1) decreasing the computational load placed on the server 102 while clustering closely-spaced points of interest due to the fact that, unlike the prior art which provides clustering and locating of graphical characters in centers of mass of clustered points of interest, implementations of the present technology do not check for the presence or absence of overlap between all of the points on the map 200, but rather perform a limited amount of calculations only between pluralities of points of interest located in a common cell; (2) unlike the prior art, in which only pluralities of points of interest located in a common cell are clustered, some implementations of the present technology provide locating clusters not in centers of mass of cells formed by applying a grid, but rather in centers of mass of clustered points of interest.

[108] In the given non-limiting implementations of the present technology, for the determining if there is an overlap between at least two graphical characters, the server performs a pixel comparison of images of the corresponding at least two graphical characters. An "overlap" in the various implementations of the present technology may mean a complete overlap and/or a partial overlap and/or a contact.

[109] The computer-readable instructions stored on the storage medium 104 may allow the server 102 to determine if there is an overlap between graphical characters within one cell of the grid 302 and aggregate the overlapped graphical characters located in one cell into clusters.

[110] In alternative non-limiting implementations of the present technology, for the determining if there is an overlap between at least two graphical characters, the server 102 compares geometric coordinates of the corresponding at least two graphical characters. An "overlap" may mean a complete overlap and/or a partial overlap and/or a contact. [111] The computer- readable instructions stored on the storage medium 104 allow the server 102 to calculate centers of mass.

[112] Centers of mass can be calculated for two or more markers of points of interest.

[113] Centers of mass can be calculated for two or more graphical characters.

[114] Centers of mass can be calculated mathematically. As non-limiting examples, for two or more markers of points of interest, a center of mass can be calculated as a center of mass of a system of point masses in the classical mechanics. For graphical characters, a center of mass can be calculated as a center of mass of uniform planar figures. One of the methods for calculating centers of mass is determining a center of mass using DBSCAN algorithm (Density-based spatial clustering of applications with noise).

[115] The computer-readable instructions stored on the storage medium 104 allow the server 102 to aggregate at least two graphical symbols into a cluster. When merging at least two graphical symbols into a cluster, the server 102 can locate a graphical symbol representing this cluster in the center of mass of the clustered points.

[116] The computer- readable instructions stored on the storage medium 104 allow the server 102 to transmit to the electronic device 112 (from which a request to provide points of interest was sent) information which can include parts of the map 200 with graphical characters representing markers of points of interest and/or clusters. Transmission of the information can be performed via the communication network 110 and parts of the map 200 with graphical characters representing markers of points of interest and/or clusters can be displayed on the display 118 of the electronic device 112.

[117] The program instructions stored on the storage medium 104 of the server 102 can cause the processor to execute the steps of the method 700, as is described in Fig. 7.

[118] The server 102 is connected to the communication network 110 via a communication link (not numbered). In some non-limited implementations, the communication network 110 can be the Internet. In other implementations, the communication network 110 can be implemented alternatively as a wide area network, local area network, private network and the like. [119] Implementation of the communication network 110 is not particularly limited and will depend on which devices are connected to the communication network 110. As a non-limiting example, the connection of the server 102 to the communication network 110 can be implemented via wired connection (such as an Ethernet-based connection). At the same time, other devices can be connected in other ways. Thus, in cases where the connected device is implemented as a wireless communication device (e.g. the electronic device 112 implemented as a smartphone), the connection can be implemented as a wireless communication network (such as, but not limited to, a 3G communications network link, a 4G communications network link, Wireless Fidelity or WiFi® for short, Bluetooth® and the like). In such examples where the electronic device 112 is implemented as a desktop computer (e.g. the electronic device 112), the communication link can be either wireless or wired (such as an Ethernet-based connection).

[120] It should be expressly understood that various implementations of the server 102, the electronic device 112, the communication links for the connection to the communication network 110 are provided for illustration purposes only. As such, those skilled in the art will appreciate the specific details of other implementations for the server 102, the electronic device 112 and the communication links for the connection to the communication network 110. Thus, the examples provided herein do not limit the scope of the present technology.

[121] The server 102 can be connected to the electronic device 112 via the communication network 110. The electronic device 112 is typically associated with the user 120. The user 120 is a person interested in receiving the data about objects that have spatial coordinates. Such objects can be objects for which information was received by the server 102 from proprietary sources and/or published sources, and/or information that was transmitted to the server 102 by the publisher from his electronic device via the communication network 110. In the given implementation of the present technology, the user 120 is a tourist who is searching for sightseeing attractions in the center of Moscow using the electronic device 112.

[122] In alternative implementations of the present technology, the user 120 can search for other objects. For example, as several non-limiting examples of the user 120, from amongst the plurality of possible examples, the user 120 can be: (a) a customer who is looking for a gift shop near the Kyevsky railway station in Moscow; b) a user who is looking for a cafeteria or restaurant nearby. [123] It should be noted that the fact that the electronic device 112 is associated with the user 120 does not imply any particular mode of operation, such as a requirement to log in, to be registered or the like.

[124] The implementation of the electronic device 112 is not particularly limited but, as an example, the electronic device 112 may be implemented as a personal computer (desktops, laptops, netbooks, etc.), a wireless communication device (a cell phone, a smartphone, a tablet and the like), as well as network equipment (a router, a switch, or a gateway).

[125] As schematically shown in Fig. 1, the electronic device 112 is implemented as an Apple® iPhone 5S smartphone running the iOS7 operating system, with Bluetooth®, Wi-Fi®, 3G, LTE and the GPS and GLONASS positioning systems.

[126] The electronic device 112 includes the storage medium 114. Technically, the storage media can be media of any nature and kind whatsoever, including RAM, ROM, disks (CD- ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc., as well as combinations thereof.

[127] In the electronic device 112, depicted schematically in Fig. 1, the storage media is implemented as a flash drive with the capacity of 16GB.

[128] The storage medium 114 can store a user's files and program instructions.

[129] More specifically, the storage medium 114 can store software which implements the functions of the browser 116. Generally, the purpose of the browser 116 is to allow the user 120 to download files to the electronic device 112 via the communication network 110 from the server 102, and display the downloaded image (video) on the display 118 which will be described in more detail below.

[130] The implementation of the browser 116 is not particularly limited. As non-limiting examples, such browsers can be the Yandex™ browser, Google Chrome™, Internet Explorer™, various mobile search applications and the like. The browser 116 can be implemented as the Yandex™ mobile browser. [131] It should be expressly understood that any other commercially available or proprietary application may be used for implementing non-limiting implementations of the present technology.

[132] The electronic device 112 also includes the display 118 which is a 4" touch screen with 640x1136 resolution, and which allows to provide information to the user 120 and can also be used as an input device. Thus, the user 120 can see on the display 118, in an interface of the browser 116 of the electronic device 112, various objects, such as sightseeing attractions marked by graphical characters on the map 200 or text information about sightseeing attractions and the like. Further, the user 120 can send requests for information about points of interest by entering a query using the touch screen.

[133] While describing the steps of the method 700, reference will be made to a schematic representation of an implementation of the computer systems 100 as shown in Fig. 1, and for clarity, reference will be made to Fig. 2, Fig. 3, Fig. 4, Fig. 5 and Fig. 6.

[134] Fig. 7 is a block-diagram of a method 700 executed at the server 102, shown in Fig. 1, implemented in accordance with non-limiting implementations of the present technology.

[135] Step 702 - receiving a request of a user 120 for providing a first point of interest, a second point of interest, a third point of interest and a fourth point of interest for displaying on a map 200.

[136] In the given implementation of the present technology, at step 702, the server performs receiving a request of the user 120 for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map 200, as depicted in Fig. 2.

[137] The user 120 can generate such a request by entering a search query in a search query entry field of a mapping service when a web-page of the mapping service is opened in the browser 116 and shown on the display 118 of the electronic device 112. The search query can be entered using any suitable method. As non-limiting examples, the search query can be typed using a virtual keyboard on the display 118, by performing a "copy/paste" operation where the text is copied from any source and subsequently inserted into the search query entry field, or using voice input.

[138] In alternative implementations of the present technology, the user 120's request for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map 200 includes receiving the request of the user 120 for providing a fifth point of interest for displaying on the map 200.

[139] As those skilled in the art will appreciate, a great amount of points of interest can be provided in response to the query of the user 120.

[140] Next, the method 700 proceeds to step 704.

[141] Step 704 - receiving a marker of the first point of interest, a marker of the second point of interest, a marker of the third point of interest and a marker of the fourth point of interest, and the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest each having a position on the map 200 and a graphical character representing the corresponding marker.

[142] At step 704, the server 102 receives from the database 106 the marker of the first point of interest, the marker of the second point of interest, the marker of the third point of interest and the marker of the fourth point of interest.

[143] Each marker of the first point of interest represented by the graphical character 208, the second point of interest represented by the graphical character 210, the third point of interest represented by the graphical character 218 and the fourth point of interest represented by the graphical character 220 has a position on the map 200.

[144] As non-limiting examples, the position on the map 200 can be determined by geographical coordinates, a postal address, a postcode and the like.

[145] Each marker of a point of interest has a graphical character and is represented by its own graphical character. [146] In the given implementation of the present technology, the first point of interest represented by the graphical character 208, the second point of interest represented by the graphical character 210, the third point of interest represented by the graphical character 218 and the fourth point of interest are represented by the graphical character 220 on the map 200, as shown in Fig. 2.

[147] In alternative implementations of the present technology, when the request of the user 120 for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map 200 includes receiving the request of the user 120 for providing a fifth point of interest for displaying on the map 200, the server 102 receives from the database 106 a marker of the fifth point of interest. The fifth point of interest also has a marker with a position on the map 200, and a graphical character representing the corresponding marker.

[148] Next, the method 700 proceeds to step 706.

[149] It should be mentioned that steps 706 - 714 are described sequentially as an aid to understanding the elements of the method 700. As those skilled in the art will appreciate, the steps 706 - 714 need not be performed in such an order or sequentially necessarily. On the contrary, it is more likely that some or all of these steps may and will be performed simultaneously. For example, determining the location of the graphical characters and applying the grid 302 over the map 200 can be performed simultaneously, or applying the grid 302 over the map 200 can be performed even before determining the location of the graphical characters.

[150] Step 706 - determining on the map 200 a location of the graphical character 208 representing the marker of the first point of interest, a location of the graphical character 210 representing the marker of the second point of interest, a location of the graphical character 218 representing the marker of the third point of interest and a location of the graphical character 220 representing the marker of the fourth point of interest.

[151] At step 706, the server 102 performs determining on the map 200 the location of the graphical character 208 representing the marker of the first point of interest, the location of the graphical character 210 representing the marker of the second point of interest, the location of the graphical character 218 representing the marker of the third point of interest and the location of the graphical character 220 representing the marker of the fourth point of interest. Determining on the map 200 the location of the graphical characters 208, 210, 218 and 220 can vary in various implementations of the present technology.

[152] Determining on the map 200 the location of the graphical characters 208, 210, 218 and 220 can signify placing them on the map 200.

[153] In the given implementation of the present technology, the graphical characters 208, 210, 218 and 220 have a shape of an inverted drop. The server 102 in the given implementation of the present technology determines the location of the graphical characters 208, 210, 218 and 220 in such a way that the tip of a drop would match the position of a marker of a point of interest on the map 200.

[154] In alternative implementations of the present technology, the server 102 can determine the location of the graphical characters 208, 210, 218 and 220 by another method. As a non- limiting example, the server 102 can determine the location of the graphical characters 208, 210, 218 and 220 in such a way that the centers of mass of the corresponding graphical characters would match the markers of the corresponding points of interest on the map 200.

[155] Next, the method 700 proceeds to step 708.

[156] Step 708 - applying a layer of the grid 302 over the map 200.

[157] At step 708, the server 102 applies over the map 200 the layer of the grid 302, as shown in Fig. 3.

[158] The layer of the grid 302 includes a plurality of grid cells. For example, as shown in Fig. 3, the layer of the grid 302 includes cells 230, 232, 234, 236, 238, 240, 242, 244 and 246.

[159] The scale of the grid 302 is determined in such a way that the cell size is larger than the largest graphical character located on the map 200.

[160] Due to the fact that in Fig. 3, all graphical characters have the same size, the cell size is larger than the size of any graphical character depicted in Fig. 3. However, in cases where the size of the graphical characters differs, the size of the cells 230, 232, 234, 236, 238, 240, 242, 244 and 246 will be larger than the size of the largest graphical character of all graphical characters displayed on corresponding parts of the map 200.

[161] Next, the method 700 proceeds to step 710.

[162] Step 710 - if the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest are in a first cell, and if the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest are in a second cell, determining if there is an overlap between at least two graphical characters..

[163] Generally speaking, when determining where graphical characters are located, the server 102 can determine the location of graphical characters relative to the grid 302 of the map 200. In this regard, each graphical character may intersect with one border or two borders of the grid 302 or not intersect with any borders of the grid 302. When a graphical character intersects with one border of the grid 302, the graphical character can be considered as being located in two cells of the grid 302 simultaneously. When the graphical character intersects with two borders of the grid 302, the graphical character can be considered as being located in four cells of the grid 302 simultaneously. In some cases, when the graphical character has a non-symmetric and/or irregular geometric shape and when such a graphical character intersects with two borders of the grid 302, the graphical character can be located in three cells of the grid 302 simultaneously. In case where the graphical character does not intersect with the borders of the grid 302, such a graphical character is located in one cell of the grid 302.

[164] At step 710, if the graphical character representing the marker of the first point of interest and the graphical character representing the marker of the second point of interest are in a first cell, and if the graphical character representing the marker of the third point of interest and the graphical character representing the marker of the fourth point of interest are in a second cell, the server 102 determines if there is an overlap between at least two graphical characters.. As a result, , in the given implementation of the present technology, the server 102determines that the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the marker of the second point of interest are located entirely in the first cell 234 of the grid 302, and the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest are located entirely in the second cell 240 of the grid 302; the graphical characters 208, 210, 218 and 220 do not intersect with the borders of the grid 302.

[165] It should be mentioned that the cells 234 and 240 are adjacent, which is not required. In other implementations of the present technology, when performing the method 700 with respect to other points of interest (for example, with respect to points of interest represented by the graphical characters 208, 210, 214 and 216), the first and second cell could have been, for example, the cell 246 and the cell 234.

[166] When the server 102 determines that the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the marker of the second point of interest are located in the first cell 234 of the grid 302, and the graphical character 218 representing the third point of interest and the graphical character 220 representing the marker of the fourth point of interest are located in the second cell 240 of the grid 712, the method 700 proceeds to step 712. This determination is necessary due to the fact that when calculating which graphical characters can be aggregated into a cluster, such graphical characters that are located in the same cell can be taken into account.

[167] In alternative implementations of the present technology, when the request of the user 120 for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map 200 includes receiving the request of the user 120 for providing the fifth point of interest, the server 102 determines on the map 200 a location of the graphical character representing the marker of the fifth point of interest and determines whether the graphical character representing the marker of the fifth point of interest intersects with one or two borders of the grid 302 and in which cell(s) the graphical character representing the marker of the fifth point of interest is located. For example, the server can determine that the graphical character representing the marker of the fifth point of interest (the graphical character representing the marker of the fifth point is not shown) intersects with the border of the grid 302 at the part of the border dividing the cells 234 and 240. [168] Step 712 - determining if there is an overlap between the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the marker of the second point of interest and, if so, aggregating the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the marker of the second point of interest into a first cluster.

[169] At step 712, the server 102 determines if there is an overlap between the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the markers of the second point of interest.

[170] Generally speaking, when determining if graphical characters overlap, the server 102 checks for the presence or absence of overlap only between graphical characters located within the same cell. For example, when analyzing the part of the map 200 corresponding to the cell 243, the server 102 will check for overlap only between the graphical characters 204, 206, 208 and 210 as only these graphical characters are located within the cell 234. Thus, the server 102 will not aggregate graphical characters located in different cells. It should be taken into account that if a graphical character intersects with one or two lines of the grid 302, it can be regarded as located in two, three or four adjoined cells, depending on the nature of the intersection. In such a case, a graphical character located, for example, simultaneously in two adjacent cells, can potentially be aggregated with either a graphical character located in one adjacent cell or with a graphical character located in another adjacent cell.

[171] In the given non-limiting implementation of the present technology, for determining if there is an overlap between the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the markers of the second point of interest, the server 102 performs a pixel comparison of images of the graphical characters 208 and 210. In the given implementation of the present technology, an "overlap" means a complete overlap and a partial overlap. In the given implementation of the present technology, the server 102 determines a partial overlap, as is shown in Fig. 3.

[172] After determining the presence of the overlap between the graphical character 208 representing the marker of the first points of interest and the graphical character 210 representing the marker of the second point of interest, the server 102 aggregates the graphical characters 208 and 210 into a cluster and places a graphical character 402 representing the first cluster in the center of mass of points aggregated in the first cluster.

[173] As those skilled in the art will appreciate, there can be more than two overlapped points of interest within the same cell. Accordingly, two or more points of interest can be aggregated into one cluster. Moreover, previously generated clusters or previously generated clusters and points of interest can be aggregated in one cluster.

[174] In the given implementation of the present technology, the expression "center of mass of points of interest aggregated in the first cluster" means the center of mass of points corresponding to the markers of the first and second points of interest.

[175] In alternative implementations, the center of mass of the points of interest aggregated in the first cluster can be the center of mass of the graphical characters 208 and 210.

[176] As those skilled in the art will appreciate, in cases where the server 102 determines that there is no overlap between the graphical character 208 representing the marker of the first point of interest and the graphical character 210 representing the marker of the second points of interest, these graphical characters are not aggregated into the first cluster.

[177] Further, the method 700 proceeds to step 714.

[178] Step 714 - determining if there is an overlap between the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest and, if so, aggregating the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest into a second cluster.

[179] At step 714, the server 102 determines if there is an overlap between the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest. In the given non-limiting implementation of the present technology, for determining if there is an overlap between the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest, the server 102 performs a pixel comparison of images of the graphical characters 218 and 220. In the given implementation of the present technology, and "overlap" means a complete overlap and a partial overlap. In the given implementation of the present technology, the server 102 determines a partial overlap, as is shown in Fig. 3.

[180] In alternative implementations of the present technology, an "overlap" may mean a complete overlap and/or a partial overlap and/or a contact.

[181] After determining the presence of the overlap between the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest, the server 102 aggregates the graphical characters 218 and 220 into a cluster and places a graphical character representing the second cluster (not shown) in the center of mass of the points aggregated in the second cluster.

[182] As those skilled in the art will appreciate, there may be more than two overlapped points of interest within the same cell. Consequently, two or more points of interest can be aggregated into one cluster. For example, as shown in Fig. 5, five points of interest (represented by the graphical characters 218, 220, 222, 224 and 226 in Fig. 3) were aggregated into a cluster represented by the graphical character 404. Moreover, previously generated clusters or previously generated clusters and points of interest can be aggregated into one cluster.

[183] In the given implementation of the present technology, the expression "center of mass of points of interest aggregated in the second cluster" means the center of mass of points corresponding to the markers of the third and fourth points of interest.

[184] In alternative implementations, the center of mass of points of interest aggregated into the second cluster can be the center of mass of the graphical characters 218 and 220.

[185] As those skilled in the art will appreciate, in cases where the server 102 determines that there is no overlap between the graphical character 218 representing the marker of the third point of interest and the graphical character 220 representing the marker of the fourth point of interest, these graphical characters are not aggregated into the second cluster.

[186] Next, the method 700 terminates. [187] In alternative implementations of the present technology, when the request of the user 120 for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map 200 includes receiving the request of the user 120 for providing the fifth point of interest, the server 102 determines if there is an overlap between the graphical character representing the marker of the fifth point of interest and any other graphical character located within the cell in which the graphical character representing the marker of the fifth point of interest is located.

In the case where the graphical character representing the marker of the fifth point of interest (the graphical character representing the marker of the fifth point of interest is not shown) intersects with the border of the grid 302 at the part of the border dividing cells 234 and 240, the server 102 determines that the graphical character representing the marker of the fifth point of interest is located in two cells simultaneously the cells 234 and 240. Thus, a graphical character representing a marker of any other point of interest or cluster in the cells 234 and240 can be aggregated with the graphical character representing the marker of the fifth point of interest. Such an overlap of the graphical character representing the marker of the fifth point of interest with other graphical characters is possible, for example, when another graphical character is located close to a border of the grid 302 or, like the graphical character representing the marker of the fifth point of interest, intersects with the border of the grid 302.

[188] In case that the server 102 determines that such an overlap exists, the server aggregates the graphical character representing the marker of the fifth point of interest with the corresponding graphical character.

[189] As an example, if the graphical character of the marker representing the fifth point of interest is in contact with the graphical character representing the marker of the first point of interest and/or the graphical character representing the marker of the second point of interest, all these points can be aggregated into the first cluster.

[190] If the graphical character representing the marker of the fifth point of interest is in contact with the graphical character representing the marker of the third point of interest and/or the graphical character representing the marker of the fourth point of interest, all these points can be aggregated into the second cluster. [191] If the graphical character representing the marker of the fifth point of interest is in contact with the graphical character representing the marker of the n-th point of interest, then the graphical character representing the marker of the fifth point of interest and the graphical character representing the marker of the n-th point of interest can be aggregated into the third cluster. A graphical character representing the corresponding cluster can be placed in the center of mass of the points aggregated into the given cluster.

[192] It is possible that the graphical character representing the marker of the fifth point of interest is in contact with graphical characters in two or more cells simultaneously. In this case, the graphical character representing the marker of the fifth point of interest can be aggregated with the nearest graphical character, the proximity being determined based on the distance from the centers of mass of the corresponding markers of points of interest or the distance from the centers of mass of the corresponding graphical characters.

[193] In some implementations of the present technology, the server 102 can perform the second clusterization of points of interest. Thus, for example, when the request of the user 120 for providing the first point of interest, the second point of interest, the third point of interest and the fourth point of interest for displaying on the map 200 includes receiving a request of the user 120 for providing a sixth point of interest, depicted on Fig. 5, for displaying on the map 200, the method may further include determining if there is an overlap between the graphical character 506, depicted in Fig. 5, representing in the given implementation of the present technology the first cluster, and the graphical character 216 representing the marker of the sixth point of interest and, if so, the method can provide including the graphical character 216 representing the marker of the sixth point of interest into a new graphical character 606 (Fig. 6), representing the first cluster after aggregating the previous version of the first cluster 505 with the graphical character 216 representing the marker of the sixth point of interest, and locating the graphical character 606 representing the first cluster in a new center of mass of the points aggregated into the first cluster. One possible reason for the second clusterization can be the fact that the previous clusterization could cause the generation of larger graphical characters, which would result in a new graphical character representing a cluster potentially coming into contact with a graphical character representing a marker of a point of interest.

[194] Within the present description, it should be understood that wherever the receiving of data from any client device and/or from any email server and/or from any other server is indicated, the receiving of electronic or any other signal from a suitable client device (server, email server) can be used, and the displaying on the device screen can be implemented as the transmission of the signal to the display, which comprises certain information that can then be interpreted in a certain way and at least partially displayed on the screen of the client device. Sending and receiving the signal is not always mentioned in the present description to simplify the description and to aid in understanding. Signals can be transmitted using optical methods (for example, using fiber-optic communication), electronic methods (wired or wireless communication) and mechanical methods (transmitting pressure, temperature and/or other physical parameters by means of which the signal can be transmitted).