Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR MANAGING VECTOR DATA TO BE DISPLAYED ON A MULTI-LEVEL TILED MAP
Document Type and Number:
WIPO Patent Application WO/2024/013274
Kind Code:
A1
Abstract:
This invention pertains to methods, a geographic information system, and a computer program for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map. A method for managing the vector data comprises a storing process, comprising a step of storing, in a database, the vector data and location information that associates a tile in a zoom level of the multi-level tiled map in which a center point of the vector image is located with the vector data. The method for managing the vector data further comprises a retrieving process, comprising the step of determining whether location information that associates a viewport tile on a display zoom level of a viewport of the multi-level tiled map with any vector data is available in the database. If it is determined that location information that associates the viewport tile with any vector data is available in the database, the retrieving process further comprises a step of retrieving location information that associates the viewport tile with vector data and a step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile.

Inventors:
VAN DER MAAS DANIEL (NL)
Application Number:
PCT/EP2023/069418
Publication Date:
January 18, 2024
Filing Date:
July 13, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ELLIPSIS EARTH INTELLIGENCE B V (NL)
International Classes:
G06T11/00
Foreign References:
US20150279071A12015-10-01
Attorney, Agent or Firm:
EP&C (NL)
Download PDF:
Claims:
CLAIMS

1. Computer-implemented method for managing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, the method comprising:

- a storing process, comprising the steps of:

• receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map;

• determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map;

• determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located;

• storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data;

- a retrieving process, comprising the steps of:

• receiving, from a user, a request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map;

• determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multilevel tiled map;

• determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

• determining whether location information that associates the viewport tile with any vector data is available in the database;

• if it is determined that location information that associates the viewport tile with any vector data is available in the database:

° retrieving, from the database, location information that associates the viewport tile with vector data;

° retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile;

° returning, to the user, the vector data associated with the viewport tile;

• if it is determined that location information that associates the viewport tile with any vector data is not available in the database: ° returning, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

2. Method according to claim 1 , wherein the display zoom level is a single zoom level of the multi-level tiled map.

3. Method according to any one of the preceding claim, wherein the retrieving process further comprises the steps of:

- determining a further viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

- determining whether location information that associates the further viewport tile with any vector data is available in the database;

- if it is determined that location information that associates the further viewport tile with any vector data is available in the database:

• retrieving, from the database, location information that associates the further viewport tile with vector data;

• retrieving, based on the retrieved location information, from the database, the vector data associated with the further viewport tile;

• returning, to the user, the vector data associated with the further viewport tile; wherein the steps are optionally repeated for one or more mutually different further viewport tiles.

4. Method according to any one of the preceding claims, wherein the storing process further comprises the steps of:

- determining a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located;

- storing, in the database, location information that associates the further tile on the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data; wherein the steps are optionally repeated for one or more mutually different further tiles.

5. Method according to any one of the preceding claims, wherein the method further comprises a maximum zoom level determining process comprising the steps of:

- determining a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map; - determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map;

- storing, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map; and wherein the retrieving process further comprises the step of:

- retrieving, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multilevel tiled map; and wherein in the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level for the map layer of the multi-level tiled map.

6. Method according to any one of the preceding claims, wherein:

- the storing process further comprises the step of generating a random number; and

- in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the location information;

- the location information stored in the database is sorted based on the random number;

- in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map is retrieved, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map; wherein the random number preferably is a unique identifier, for example wherein the random number is a universally unique identifier or a globally unique identifier.

7. Computer-implemented method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, comprising the steps of:

- receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map; - determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multilevel tiled map;

- determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located;

- storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

8. Method according to claim 7, further comprising the steps of:

- determining a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located;

- storing, in the database, location information that associates the further tile in the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data; wherein the steps are optionally repeated for one or more mutually different further tiles.

9. Method according to any one of claims 7-8, further comprising a maximum zoom level determining process comprising the steps of:

- determining a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map;

- determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multilevel tiled map;

- storing, in the database, zoom information that associates the map layer of the multilevel tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

10. Method according to any one of claims 7-9, further comprising the step of generating a random number, and wherein:

- in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the location information;

- the location information stored in the database is sorted based on the random number; wherein the random number preferably is a unique identifier, for example wherein the random number is a universally unique identifier or a globally unique identifier.

11. Computer-implemented method for retrieving vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, wherein the vector data has been stored in a database using the method according to any one of claims 7-10, the method comprising the steps of:

- receiving, from a user, a request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map;

- determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map;

- determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

- determining whether location information that associates the viewport tile with any vector data is available in the database;

- if it is determined that location information that associates the viewport tile with any vector data is available in the database:

• retrieving, from the database, location information that associates the viewport tile with vector data;

• retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile;

• returning, to the user, the vector data associated with the viewport tile;

- if it is determined that location information that associates the viewport tile with any vector data is not available in the database:

• returning, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

12. Method according to claim 11 , wherein the display zoom level is a single zoom level of the multi-level tiled map.

13. Method according to claim 12, further comprising the steps of:

- determining a further viewport tile on the zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

- determining whether location information that associates the further viewport tile with any vector data is available in the database;

- if it is determined that location information that associates the further viewport tile with any vector data is available in the database: • retrieving, from the database, location information that associates the further viewport tile with vector data;

• retrieving, based on the retrieved location information, from the database, the vector data associated with the further viewport tile;

• returning, to the user, the vector data associated with the further viewport tile; wherein the steps are optionally repeated for one or more mutually different further viewport tiles.

14. Method according to any one of claims 11-13, wherein:

- the vector data has been stored in the database using the method according to any one of claims 9-10;

- the method further comprises the step of retrieving, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map; and

- in the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level of the map layer of the multi-level tiled map.

15. Method according to any one of claims 11-14, wherein:

- the vector data has been stored in the database using the method according to claim 10;

- in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map is retrieved, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map.

16. Geographic information system, comprising:

- a database;

- a database controller configured to store data in, retrieve data from, and query data from the database;

- a user request module comprising a user request interface for receiving user requests; wherein the user request module is configured to:

• in response to the user request interface receiving a user request for storing vector data, the vector data including feature information for defining the visual appearance of a vector image and for positioning the vector image within a coordinate system of a multi-level tiled map: ° determine, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map;

° determine a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located;

° store, in the database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data;

• in response to the user request interface receiving a user request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map:

° determine, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map;

° determine a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

° determine whether location information that associates the viewport tile with any vector data is available in the database;

° if it is determined that location information that associates the viewport tile with any vector data is available in the database:

■ retrieve, from the database, location information that associates the viewport tile with vector data;

■ retrieve, based on the retrieved location information, from the database, the vector data associated with the viewport tile;

■ return, to the user, the vector data associated with the viewport tile;

° if it is determined that location information that associates the viewport tile with any vector data is not available in the database:

■ return, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

17. Geographic information system according to claim 16, wherein the display zoom level is a single zoom level of the multi-level tiled map.

18. Geographic information system according to any one of clams 16-17, wherein the user request module is further configured to: - determine a further viewport tile on the zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

- determine whether location information that associates the further viewport tile with any vector data is available in the database;

- if it is determined that location information that associates the further viewport tile with any vector data is available in the database:

• retrieve, from the database, location information that associates the further viewport tile with vector data;

• retrieve, based on the retrieved location information, from the database, the vector data associated with the further viewport tile;

• return, to the user, the vector data associated with the further viewport tile; wherein the steps are optionally repeated for one or more mutually different further viewport tiles.

19. Geographic information system according to any one of claims 16-18, wherein the user request module is further configured to:

- determine a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located;

- store, in the database, location information that associates the further tile in the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data; wherein the steps are optionally repeated for one or more mutually different further tiles.

20. Geographic information system according to any one of claims 16-19, further comprising a maximum zoom determining module, configured to:

- determine a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map;

- determine, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map;

- store, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map; and wherein the user request module is further configured to: - retrieve, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multilevel tiled map; and

- in the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level of the map layer of the multi-level tiled map.

21. Geographic information system according to any one of claims 16-20, wherein the user request module is further configured to:

- generate a random number; and

- in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, include the random number in the location information, wherein the location information stored in the database is sorted based on the random number;

- in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, retrieve vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map; wherein the random number preferably is a unique identifier, for example a universally unique identifier or a globally unique identifier.

22. Computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method according to any one of claims 1-15.

Description:
Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map

This invention pertains to methods for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map. This invention further pertains to a geographic information system, usable for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map. This invention further pertains to a computer program comprising instructions which, when loaded on a computing device, cause the computing device to execute one or more of the methods for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map.

The invention can for example be applied in a Geographic Information System (GIS). A Geographic Information System is a computer system for capturing, storing, checking, and displaying data related to geographic positions, i.e. , geographic data, wherein for example the geographic data relates to positions on the Earth’s surface. A Geographic Information System typically comprises a database used to store the geographic data, and allows for a user to request the geographic data relating to a particular location or locations, and/or store geographic data relating a particular location or locations. The geographic data for example represents a map, for example a map of the world, or a map of a country, or a map of a building layout. Thus, the map is built up of the geographic data stored in the Geographic Information System. Optionally, the Geographic Information System stores geographic data related to a plurality of such maps.

The map represented by the geographic data has a coordinate system. For example, for a 2d-map, the coordinate system defines (x, y) coordinate wherein for example the top-left corner of the map is (0, 0) and the bottom-right corner of the map is (W, H), wherein W is the width of the map and H is the height of the map. The width and the height of the map are for example expressed in meters, or centimeters. Alternatively, the map has an n-dimensional coordinate system, wherein n > 2.

Typically, a distinction is made between raster data and vector data.

Raster data, also called raster graphics, represents an image as an n-dimensional grid of data points. Typically, n is 2 or 3, wherein the raster data thus represents a 2-dimensional or 3-dimensional image. The data points within the grid of the raster data are typically pixels, wherein the pixels contain information on properties of the data point, for example the color of the data point, or a measurement value related to the data point. For example, the pixel is coded according to a particular color model, for example the pixel is represented in the RGB color model or the CMY(K) color model. An advantage of raster data is that there is a simple transformation between an image taken for example by a satellite or a camera and the raster data representing that image. Thus, real-life data is typically represented using raster data.

Vector data, also called vector graphics, represents a visual image, i.e., a vector image. For example, vector data represents a single vector image. For another example, vector data refers to a collection of individual pieces of vector data, each piece of vector data representing a single vector image. Vector data representing a vector image comprises a number of features, wherein each feature has a geometry and optionally a property. The geometry of each feature represents for example a point, a line, a curve, or a polygon. The geometry further defines its location within a coordinate system of the map, for example a Cartesian coordinate system. Thus, vector data representing a vector image comprises a number of features having a geometry within a Cartesian coordinate system. The vector data of an example vector image comprises a polygon representing a square with sides of length 1 , with on the top side an adjoining polygon representing a right triangle with height 1 , the vector image thus representing a house. An advantage of vector data is that an image is represented using minimal information; the amount of information used to represent the image is not proportional to its total dimensions but only to the amount of geometries comprised in the image. Thereby, vector data is an efficient way to store images comprised of primitive geometries. A second advantage is that vector image represented with vector data can be infinitely zoomed into, since a system displaying the vector image can simply redraw the part of the vector image that is zoomed into with the information comprised in the vector data. Vector data can also be easily modified by a user: for example, scaling, rotating, and moving operations are easily implemented since these have a well-defined meaning for the geometries of the features of the vector data. This is much more difficult for images represented using raster data.

Typically, a Geographic Information System supports both raster data and vector data. In such a set-up, raster data is typically used to represent static, real-world data such as a country, the world, or a building layout. Vector data is typically used to represent shapes drawn and/or placed by users on the map. It is also possible to represent complex 2-dimensional and 3-dimensional shapes using point clouds, which are also represented using vector date. Vector images can for example represent a land border, a city name, a marker for a business, an overlay that represents for example the population density, weather status, or vegetation of areas on the map, etc.

Raster data representing raster images and vector data representing vector images are typically organized in user-defined layers. Layers can be turned on or off by the user, wherein the images within a layer that is turned on are displayed and shapes within a layer that is turned off are not displayed. There is a relation between raster data and vector data: both the raster data and the vector data are defined in the coordinate system of the map. Thus, raster data and vector data can be seamlessly displayed together: the raster images represented by the raster data and the vector images represented by the vector data are “overlayed” over each other.

In real-world applications, where the Geographic Information System is used to store geographic data of a large area, for example of the whole world, a user typically is interested only in a small region comprised in the large area. In such a case, the user requests the Geographic Information System to display the small region. Thereby, the region which the user requests the Geographic Information System to display is also called a viewport. The viewport defines the boundaries of the area that the user wishes to view, wherein the viewport is typically expressed in the coordinate system of the map, for example as a rectangle or a square. One of the capabilities of Geographic Information System is to only return the data that is relevant to the viewport defined by the user, i.e., the raster data and vector data that is contained in and/or intersects with the viewport. Additionally, a zoom level can be determined for the viewport. The zoom level is related to the amount of detail that the user is interested in. For example, if the user is interested in data pertaining to the whole world, the zoom level is coarse such that the data may fit within the viewport. The viewport itself is constrained by the viewing device, such as a screen, that the user is using to view the geographic data. When viewing geographic data related to the whole world or a large portion of the world on a typical computer screen, the geographic data must be scaled down many times before it can fit on the viewport, and thereby fit within the screen. Such scaling down of the geographic data may for example mean that the pixels contained within raster data are sampled, and that only a subset of the vector images represented by the vector data are shown in the viewport. For another example, if the user is interested in data pertaining to a city, then a more fine-grained zoom level (i.e., a higher zoom level) is determined for the viewport. This means that certain information pertaining to certain other cities or countries will not be shown within the viewport. Thus, the Geographic Information System must in that instance only return the geographic data that is relevant to the particular city that the user is interested in.

A Geographic Information System typically allows the user to zoom in or out at will, thereby changing the zoom level, as well as move around, thereby changing the viewport. At a map scale of about 1 :70 of a world map, a resolution of about 1-2 cm per pixel is required, which means that the width and the height of raster data is in excess of 2 billion pixels. Thus, the total pixels stored for this map is in excess of 4x10 18 pixels, which represents several exabytes of uncompressed data. To provide sufficient flexibility to the user for zooming into and out of areas, a map scale is necessary that provides sufficient details at higher zoom levels. This, however, has the downside of also loading all details that may not be visible at lower zoom levels. For example, it is not necessary to load all details relating to houses when viewing a map of the whole world. Another downside is that data, such as vector data, is loaded from areas outside of the viewport of the user. In the state of the art, solutions for these two downsides have been developed.

Commonly, a map is divided into tiles to form a tiled map. For example, each tile has a fixed width and height, for example 128x128 pixels or 256x256 pixels or 512x512 pixels. Historically, a tile size of 256x256 pixels is most common. Thus, at a map scale of about 1 :70 of a world map, with a tile size of 256x256 pixels, there are around 2x10 13 tiles. When viewing an area of the world map through a viewport, it is possible to calculate which tiles intersect with the viewport. Instead of loading the whole world map, only those tiles within the viewport are loaded. By loading a tile, the geographic data that is contained within the tile is loaded. This geographic data includes raster data and vector data. In a typical viewport, only about 10-100 tiles are loaded at any point in time. Therefore, the amount of data that needs to be loaded is significantly reduced.

Each tile has coordinates within a tile coordinate system of the multi-level tiled map. For a 2-dimensional image, tiles are organized in a 2-dimensional tile coordinate system, wherein each tile has an (x, y)-coordinate pair. For a three-dimensional image, tiles are organized in a 3-dimensional tile coordinate system, wherein each tile has an (x, y, z)-coordinate triple. In this example, tiles are organized in a 2-dimensional tile coordinate system, wherein each tile has an (x, y)-coordinate pair. For example, if the multi-level tiled map is divided into 4 tiles, the 4 tiles have coordinates t(0, 0), t(1 , 0), t(0, 1), and t(1 , 1) respectively, wherein the “t” in front of the coordinate pair indicates that the coordinate pair is expressed in the tile coordinate system. For another example, if the multi-level tiled map is divided into 16 tiles, the 16 tiles have coordinates t(i, j), wherein 0 <= i <= 15 and 0 <= j <= 15. Each tile is further associated with a range of coordinates in the coordinate system of the map. For example, if the coordinate system of the map has a top-left corner (0, 0) and a bottom-right corner (15999, 15999), and the multilevel tiled map is divided into 4 tiles, the tile in the top-left corner t(0, 0) is associated with a topleft corner at coordinate (0, 0) and a bottom-right corner at (7999, 7999). Similarly, the tile in the bottom-left corner t(0, 1) is associated with a top-left corner at coordinate (0, 8000) and a bottom-right corner at coordinate (7999, 15999).

Additionally, commonly, tiles are created at a number of predefined zoom levels, thereby forming a multi-level tiled map. For example, at zoom level 0, which represents the most course zoom level, there is only one tile. This tile may contain the whole map represented by the raster data and/or the vector data at a course detail level. Lower zoom levels progressively comprise more tiles. For example, at zoom level 1 , there are 4 tiles, wherein each tile contains the data at a finer detail level than the tile at zoom level 0 of a particular area of the map. Typically, at zoom level n there are 4 n tiles. Thus, when the user zooms in or out of the map, a zoom level is calculated and the tiles at that zoom level intersecting with the viewport of the user are returned and displayed. This techniques is generally known as tile pyramids for geographic data or pyramid representation of an image. In this patent application, techniques are described for tile pyramids wherein the tiles on each zoom level are organized in a 2-dimensional tile coordinate system. However, the same techniques are applicable to pyramids wherein the tiles on each zoom level are organized in a tile coordinate system with more dimensions, i.e., for example in a 3-dimensional coordinate system or a 4-dimensional coordinate system, or in general in an n-dimensional coordinate system.

When viewing an area of the multi-level tiled map, it is straightforward to calculate which tiles intersect with the viewport since the viewport can be expressed in the coordinate system of the multi-level tiled map. However, to display vector data, it has to be calculated which vector images represented by the vector data intersect with the viewport, i.e., which vector images intersect with one of the tiles that intersect with the viewport. This is an operation with a high worst-case complexity, typically with a complexity of O(n log(n)). It is for example necessary to compute the bounding box of each shape and then compute whether that bounding box intersects with the viewport. With many shapes spread around the multi-level tiled map, this impacts performance and has a negative effect on user experience since zooming/panning operations are negatively affected.

It is known, to overcome some of the aforementioned issues, vector tiles can be used. With vector tiles, the Geographic Information System requires that the user designates which tile of the multi-level tiled map is associated with a vector image. This means that it is no longer necessary to compute which vector images intersect with a tile to be displayed in a viewport. Rather, vector images to be displayed in these tiles can be readily retrieved. However, a downside of this approach is that the user needs to perform data preparation before storing vector data in the Geographic Information System, i.e., by assigning vector images to tiles manually. This means that a significant burden is placed on the user, who cannot simply store arbitrary vector images in the Geographic Information System.

An additional problem is how to show a representative sample of vector data representing vector images with a size that is most suitable to be shown on a detailed zoom level on a coarser zoom level. For example, vector data may be related to the location of businesses (and thus reside at “street” or “house” level). When viewing that data at a much courses zoom level, for example at a zoom level for viewing countries or the whole world, not all data should be retrieved but only a representative sample of the data. Thus, the Geographic Information System must have an operation that supports such selective retrieving based on zoom level efficiently.

It is an object of the invention to provide for an improved method for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map and/or to provide an alternative for the state of the art to overcome some or all of the problems faced in the state of the art. It is further an object of the invention to provide for a geographic information system that implements the method, i.e., which is usable for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map. It is further an object of the invention to provide a computer program comprising instructions which, when loaded on a computing device, cause the computing device to execute the method for managing, storing, retrieving, and displaying vector data representing a vector image to be displayed in a map layer of a multi-level tiled map.

In a first aspect, the invention pertains to a computer-implemented method for managing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map , the method comprising:

- a storing process, comprising the steps of:

• receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map;

• determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map;

• determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located;

• storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data;

- a retrieving process, comprising the steps of:

• receiving, from a user, a request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map;

• determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multilevel tiled map;

• determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

• determining whether location information that associates the viewport tile with any vector data is available in the database; • if it is determined that location information that associates the viewport tile with any vector data is available in the database:

° retrieving, from the database, location information that associates the viewport tile with vector data;

° retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile;

° returning, to the user, the vector data associated with the viewport tile;

• if it is determined that location information that associates the viewport tile with any vector data is not available in the database:

° returning, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

According to the first aspect of the invention, one or more of the above objects are achieved by a computer-implemented method for managing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, the method comprising a storing process. In an embodiment, the method is applied to a Geographic Information System (Geographic Information System). For example, the multi-level tiled map comprises a number of zoom level nr-of-levels, wherein nr-of-levels is for example 10 or 20 or 23. Each zoom level comprises a number of tiles. For example, a zoom level n, wherein 0 < n < nr-of-levels - 1 , comprises 4 n tiles. For a further example, a first amount of zoom levels m, wherein 0 < m < nr- of-levels - 1 , comprises a single tile. In this further example, zoom level I below the first amount of zoom levels m, wherein m < I < nr-of-levels - 1 , comprises 4 n tiles. This means that at zoom level /, a sub-pyramid starts which ends at zoom level nr-of-levels - 1.

The storing process comprises a step of receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multilevel tiled map. The feature information included in the vector data comprises for example one or more features, wherein each feature comprises a geometry representing represents for example a point, a line, a curve, or a polygon. The geometry further defines its location within a coordinate system, for example a Cartesian coordinate system, of the multi-level tiled map. Thus, with this request, the user requests that a vector image to be displayed is stored in the database such that it can later be retrieved for viewing in a map layer of the multi-level tiled map. For example, the database is part of a Geographic Information System (Geographic Information System) and with his request, the user requests the Geographic Information System to store the vector data representing the vector image in the database.

The storing process further comprises a step of determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map. In an embodiment, the center point of the vector image is determined as coordinates in a coordinate system of the multi-level tiled map. In an embodiment, the center point of the vector image is determined by calculating the center point of the bounding box of the vector image. For example, for a square bounding box with sides of length 2, wherein the upper corner of the bounding box is located at coordinates (4, 4) in a coordinate system of the multi-level tiled map, the center point of the vector image is located at coordinates (5, 5) in the coordinate system of the multi-level tiled map.

The storing process further comprises a step of determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located. In an embodiment, there is exactly one tile on the zoom level of the tiled raster image in which the center point of the vector image is located. The tile on the zoom level of the multi-level tiled map is determined based on the coordinates of the center point of the vector image and the coordinates in the coordinate system of the multi-level tiled map with which the tile is associated. The tile has coordinates in a tile coordinate system, wherein the coordinate is in the form (x, y, z), wherein x is a horizontal index, y is a vertical index, and z is the zoom level of the multi-level tiled map. For example, if the coordinate system of the multi-level tiled map has a top-left corner (0, 0) and a bottom-right corner (15999, 15999), and the multi-level tiled map is divided into 4 tiles on zoom level 1 , a center point with coordinates (500, 100) is located in a tile with coordinates t(0, 0, 1), while a center point with coordinates (15000, 9000) is located in a tile with coordinates t(1 , 1 , 1).

The storing process further comprises a step of storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data. The location information can for example be separately stored from the vector data representing the vector image to be displayed, or the location information can alternatively be integrated in the vector data representing the vector image to be displayed, the vector data being stored in the database. In a preferential embodiment, the location information is added to a database index, such as a btree index. The btree index is for example constructed as btree(z, x, y, uuid) wherein x is a horizontal coordinate, y is a vertical coordinate, and z is the zoom level of the multi-level tiled map and uuid is an identifier of the vector data that represents a vector image whose center point is located in the tile with coordinates (x, y, z) in the tile coordinate system. The btree is queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND uuid>a_uuid” to retrieve the vector data representing vector tiles whose center points are located in a tile with coordinates (a_x, a_y, a_z) and wherein the identifier of the location information is larger than a given identifier a_uuid. Additonal btrees can be added based on properties of the vector data on which to filter. For example, if the vector data has a property “time”, then a btree index btree(z, x, y, time, uuid) can be queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND time>a_time AND uuid>a_uuid” wherein a_time is a timestamp. This query has O(log(n)) efficiency.

The method according to the first aspect of the invention further comprises a retrieving process.

The retrieving process comprises a step of receiving, from a user, a request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map. For example, the user may request all vector images to be displayed on all tiles that intersect with the viewport that the user wishes to view. The user, when requesting these vector images, has no prior knowledge of how many vector images there are to be displayed in the viewport of the multilevel tiled map. It is therefore possible that no vector images are to be displayed in the viewport of the multi-level tiled map.

The retrieving process further comprises a step of determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map. The viewport defines an area of the multilevel tiled map to be displayed, the area being defined within the coordinate system of the multilevel tiled map. For example, the viewport defines an area with a top-left corner at coordinate (1900, 1800) and a bottom-right corner at (9000, 9000), wherein the coordinate system of the multi-level tiled map has a top-left corner (0, 0) and a bottom-right corner (15999, 15999). A suitable display zoom level is for example 2, wherein on zoom level 2 the multi-level tiled map is divided into 16 tiles. On zoom level 2, 9 tiles intersect with the given viewport. Another example of a suitable display zoom level is zoom level 3, wherein on zoom level 3 the multilevel tiled map is divided into 64 tiles. On zoom level 3, 20 tiles intersect with the given viewport. The display zoom level is therefore determined based on how much detail is required, wherein an increase in requested detail means that more tiled need to be loaded. In another example, if the multi-level tiled map has an n-dimensional coordinate system, for example a 3- dimensional coordinate system, the viewport defines an area in n dimensions as well, i.e. , an n-dimensional hyperrectangle instead of a 2-dimensional rectangle.

Thus, in an embodiment of the first aspect of the invention, the display zoom level is a single zoom level of the multi-level tiled map. The single display zoom level is determined based on the viewport. Only tiles within the single display zoom level that have to be displayed will be returned to the user. Thus, only data associated with the tiles on the single display zoom level will be returned to the user to be displayed. No data associated with tiles on a zoom level different from the single display zoom level will be returned to the user. Thus, the single display zoom level defines which data is to be returned to the user to be displayed. Using a single zoom level increases the efficiency compared to a method wherein multiple zoom levels have to be iterated through to find data to be returned to the user to be displayed. Only the tiles on the single display zoom level have to be considered.

The retrieving process further comprises a step of determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map. Once the display zoom level is, i.e., one of the suitable display zoom levels, has been determined, one or more viewport tiles, i.e., those tiles that intersect or overlap with the viewport of the multi-level tiled map are determined. The tiles that are determined to intersect or overlap with the viewport of the multi-level tiled map are those tiles that are to be displayed to the user in the viewport of the multi-level tiled map. In this context, a tile intersecting or overlapping with the viewport of the multi-level tiled map means that at least a portion of the tile is contained within the viewport of the multi-level tiled map. For example, the tile is fully contained within the viewport of the multi-level tiled map. For another example, the top-left quadrant of the tile is contained within the viewport of the multi-level tiled map.

The retrieving process further comprises a step of determining whether location information that associates the viewport tile with any vector data is available in the database. In this step, the database is queried. In the query, it is requested whether location information that associates the viewport tile with any vector data is available in the database. Essentially, the query can also be interpreted as requested whether any center points of any vector image represented by vector data is located within the viewport tile. The determined viewport tile may be associated with zero, one, or more vector images represented by vector data. The viewport tile is associated with vector data if the center point of the vector image represented by the vector data was determined to be located within the viewport tile. In certain cases, no such location information is available in the database. This means that there are no vector images represented by vector data of which the center point is located within the viewport tile. In this case, it is determined that no location information that associates the viewport tile with any vector data is available in the database. In other cases, location information is available in the database that associates the viewport tile with one or more vector images represented by vector data. In these cases, it is determined that location information that associates the viewport tile with any vector data is available in the database.

If it is determined that location information that associates the viewport tile with any vector data is available in the database, the retrieving process further comprises a step of retrieving, from the database, location information that associates the viewport tile with vector data.

If it is determined that location information that associates the viewport tile with any vector data is available in the database, the retrieving process further comprises a step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile. For example, the vector data associated with the viewport tile is retrieved based on whether the center point of the vector image represented by the vector data is located within the viewport tile. The location information contains information to identify the vector image represented by the vector data to be displayed within the database. Thus, when the location information is retrieved, the vector image represented by the vector data to be displayed that is identified by the location information can also be retrieved from the database. In a preferential embodiment, the database index for the location information is queried in this step.

If it is determined that location information that associates the viewport tile with any vector data is available in the database, the retrieving process further comprises a step of returning, to the user, the vector data associated with the viewport tile. For example, the vector data associated with the viewport tile is delivered to the user through a computer network.

If it is determined that location information that associates the viewport tile with any vector data is not available in the database, the retrieving process further comprises a step of returning, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map. Thus, in this case, a response to the request for retrieving any vector images to be displayed in the viewport of the multi-level tiled map received from the user is for example an empty response. With the empty response, the user determines that no vector images are to be displayed vector images.

The method according to the first aspect of the invention has the advantageous effect that the efficiency of storing and retrieving the location information regarding vector images represented by vector data to be displayed in a user-defined viewport of a multi-level tiled map is improved. In particular, the worst-case complexity of retrieving one or more vector images to be displayed in the viewport is reduced to O(log(n)), with n the total number of vector images to be displayed. This is because the location information can be queried with O(log(n)) efficiency. A further advantageous effect is that a user does not have to prepare the data, i.e. , preparation of the vector data to be stored in the database before storing the vector data in the database is not necessary. It is in particular not necessary for the user to manually assign a tile in which the vector image represented by the vector data is to be displayed. Rather, in the method, the vector data is automatically assigned to a tile, in which tile the center point of the vector image represented by the vector data is located. For each zoom level of the multi-level tiled map, the vector data can automatically be assigned to a tile of the respective zoom level in which the center point of the vector image represented by the vector data is located. It thus is possible to request, for each zoom level, with which tile the vector data is associated.

In an embodiment of the first aspect of the invention, the retrieving process comprises the step of determining a further viewport tile on the zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map. The further viewport tile is distinct from the viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map that was determined in a previous step of the retrieving process.

In this embodiment, the retrieving process further comprises the step of determining whether location information that associates the further viewport tile with any vector data is available in the database. The further viewport tile may be associated with zero, one, or more vector images represented by vector data. The further viewport tile is associated with vector data if the center point of the vector image represented by the vector data was determined to be located within the further viewport tile. In certain cases, no such location information is available in the database. This means that there are no vector images represented by vector data of which the center point is located within the further viewport tile. In this case, it is determined that no location information that associates the further viewport tile with any vector data is available in the database. In other cases, location information is available in the database that associates the further viewport tile with one or more vector images represented by vector data. In these cases, it is determined that location information that associates the further viewport tile with any vector data is available in the database.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the retrieving process further comprises the step of retrieving, from the database, location information that associates the further viewport tile with vector data.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the retrieving process further comprises the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the further viewport tile. For example, the vector data associated with the further viewport tile is retrieved based on whether the center point of the vector image represented by the vector data is located within the further viewport tile. The location information contains information to identify the vector image represented by the vector data to be displayed within the database. Thus, when the location information is retrieved, the vector image represented by the vector data to be displayed that is identified by the location information can also be retrieved from the database. In a preferential embodiment, the database index for the location information is queried in this step.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the retrieving process further comprises the step of returning, to the user, the vector data associated with the further viewport tile.

In this embodiment, the steps are optionally repeated for one or more mutually different further viewport tiles. In this way, all tiles on the zoom level of the multi-level map that overlap with the viewport of the multi-level tiled map, i.e., all viewport tiles, are retrieved. Further, vector data associated with all viewport tiles is retrieved. Thus, all vector images represented by vector data that are to be displayed within the viewport can be retrieved using this method.

In an embodiment of the first aspect of the invention, the storing process further comprises the step of determining a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located. The further zoom level is distinct from the zoom level on which the tile was determined in which the center point of the vector image is located in a previous step of the storing process.

In this embodiment, the storing process further comprises the step of storing, in the database, location information that associates the further tile in the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

In this embodiment, the steps are optionally repeated for one or more mutually different further tiles. For example, the multi-level tiled map has 20 zoom levels. Then, in this embodiment, for each of the 20 zoom levels, the tile on the respective zoom level of the multilevel tiled map in which the center point of the vector image is located is determined. In other words, 20 tiles are determined in which the center point of the vector image is located. In this embodiment, in the step of storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, location information that associates the tile in each zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data is stored. Thus, for each zoom level n, wherein 0 < n < nr-of-levels - 1 , the tile of the multi-level tiled map in which the center point of the vector image is located, wherein the determined tile is comprised in the zoom level n. In other words, for each level, it is determined in which tile on that zoom level the center point of the vector image is located. Display information that relates the tile on each zoom level in which the center point of the vector image to be displayed is located with the vector data that represents the vector image to be displayed is stored in the database. For example, the display information that is stored in the database is compound information that comprises display information that relates the tile on each zoom level in which the center point of the vector image to be displayed is located with the vector data that represents the vector image to be displayed. Alternatively, display information that relates the tile on each zoom level in which the center point of the vector image to be displayed is located with the vector data that represents the vector image to be displayed is stored separately in the database. In an embodiment of the first aspect of the invention, the method further comprises a maximum zoom determining process.

In this embodiment, the maximum zoom determining process comprises the step of determining a maximum size of the vector images to be displayed in the map layer of the multilevel tiled map. The maximum size of the vector images to be displayed in the map layer of the multi-level tiled map is the size of the largest vector image to be displayed in the map layer of the multi-level map. For example, the size of a vector image is the area of its bounding box. For example, the determined maximum size is approximately the size of a country. For another example, the determined maximum size is approximately the size of a house.

In this embodiment, the maximum zoom determining process comprises the step of determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map. For example, a maximum zoom level for a vector image to be displayed with a size of approximately a country may be a zoom level wherein more than one country is visible. For example, the maximum zoom level is determined to be 5. For another example, a maximum zoom level for a vector image to be displayed with a size of approximately a country may be a zoom level wherein more than one house is visible. For example, the maximum zoom level is determined to be 20. For another example, the maximum zoom level for a vector image is determined based on the maximum size of the vector images compared to the size of the tiles on each zoom level of the multi-level tiled map. For example, a zoom level is chosen in which the maximum size of the vector images is approximately a quarter of the size of the tiles on the zoom level, or approximately a tenth of the size of the tiles on the zoom level, or approximately a hundredth of the size of the tiles on the zoom level.

In this embodiment, the maximum zoom determining process comprises the step of storing, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

Optionally, the maximum zoom determining process is performed at regular intervals, for example by a background script.

In this embodiment, the retrieving process further comprises the step of retrieving, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, in the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level of the map layer of the multi-level tiled map.

For example, the display zoom level that was determined for the viewport that the user wishes to view is related to a relatively detailed zoom level wherein individual houses are shown, for example zoom level 20. However, in the example, the maximum zoom level is determined to be 5. Then, the display zoom level is determined to be 5 instead of 20. In the example, the maximum zoon level is set to 5 because the map layer comprises a shape that approximately has the size of a country, while the viewport of the user is at zoom level 20. If the display zoom level were to be 20, it will often occur that the center point of a vector image at zoom level 5 is not located in any of the tiles located within the viewport, while the vector image still intersects with the viewport and therefore needs to be displayed. By determining the display zoom level additionally based on the maximum zoom level of the map layer of the multilevel tiled map, vector images associated with coarser zoom levels that overlap with the viewport, whose center point is not within any tile the relatively detailed display zoom level, are returned to the user.

In an embodiment of the first aspect of the invention, the storing process further comprises the step of generating a random number. The random number is preferably a unique identifier, for example a universally unique identifier UIIID or a globally unique identifier GlIID.

In this embodiment, in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the location information. In the case of UIIID or GLIID, it is ensured that the random numbers generated are unique and are distributed evenly within the number space. The random number is stored as part of the location information in the database. For example, the random number is used as the identifier of the location information. Alternatively, the random number is included as a property value in the vector data, for example wherein the property is “identifier”, and the property value is the random number.

In this embodiment, the location information stored in the database is sorted based on the random number. For example, the database may keep the display information sorted wherein the random number is used as a sort key. For another example, whenever display information is retrieved from the database, the display information is first sorted based on the random number. In a preferential embodiment, the random number is added to a database index, such as a btree index. For example, the database index for the random number is combined with the database index for the display information to form a combined database index, such as a combined btree index. For example, the btree first sorts on the tile in which the center point of the vector image is located, and then sorts on the random number. As a result, a query of the form “WHERE tile = {a tile} and uuid > {a uuid}” has O(log(n)) efficiency. The btree index is for example constructed as btree(z, x, y, uuid) wherein x is a horizontal coordinate, y is a vertical coordinate, and z is the zoom level of the multi-level tiled map and uuid is an identifier of the vector data that represents a vector image whose center point is located in the tile with coordinates (x, y, z) in the tile coordinate system. The btree is queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND uuid>a_uuid” to retrieve the vector data representing vector tiles whose center points are located in a tile with coordinates (a_x, a_y, a_z) and wherein their random number is larger than a given random number a_uuid. Additonal btrees can be added based on properties of the vector data on which to filter. For example, if the vector data has a property “time”, then a btree index btree(z, x, y, time, uuid) can be queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND time>a_time AND uuid>a_uuid” wherein a_time is a timestamp. This query has O(log(n)) efficiency.

In this embodiment, in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map is retrieved, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map. For example, there are 1000 center points of vector images located within the viewport tile and/or further viewport tiles, and therefore, there are 1000 pieces of display information in the database that relate the viewport tile and/or further viewport tiles of the multi-level tiled map with each of the vector images. In this embodiment, the amount of shapes that are to be retrieved from the database is limited to a number m, for example wherein n is 10 or 50 or 100. The number m is equal to the length of the range i:j, i.e., if i is 0 and j is 49, then m is 50. Similarly, if i is 50 and j is 149, then m is 100. By sorting the display information based on the random number, the vector images retrieved from the database represent a uniform distribution of vector images on the multi-level tiled map, since the sorting key is distributed evenly within the number space. For example, the results from the query of the form “z=a_z AND x=a_x AND y=a_y AND uuid>a_uuid” is limited to the first m results, wherein m is for example 50 or 100 as explained above.

Thus, with this method, a uniform distribution of vector images can be retrieved from the database while simultaneously limiting the amount of vector images to be displayed. For example, when viewing a multi-level tiled map at a course zoom level, for example at a zoom level where multiple countries are visible, but displaying vector images that are relatively small, such as the locations of houses, only a subset of those houses should be displayed. When progressively zooming to more fine-grained zoom levels, the subset of vector images to be displayed will change, i.e., it may be requested to increase the number of m shapes to be displayed, and/or a different subset of shapes may be requested from the database, wherein the center points of the shapes are located within a tile of the multi-level tiled map that intersects with the viewport that the user wishes to view. Additionally, when zooming into the multi-level tiled map (i.e., by reducing the size of the viewport), the vector images that were retrieved on a coarser zoom level will be retained in the finer zoom level, although additional vector images may be shown. This provides for a pleasant user experience as vector images will not disappear when zooming into the multi-level tiled map.

In a second aspect of the invention, the invention pertains to a computer-implemented method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, comprising the steps of:

- receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map;

- determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multilevel tiled map;

- determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located;

- storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

According to the second aspect of the invention, one or more of the above objects are achieved by a computer-implemented method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map. The method according to the second aspect of the invention corresponds to the storing process of the method according to the first aspect of the invention. Thus, the steps of the method according to the second aspect of the invention correspond to the steps of the storing process of the method according to the first aspect of the invention.

The method according to the second aspect of the invention comprises the step of receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map.

The method according to the second aspect of the invention further comprises the step of determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map.

The method according to the second aspect of the invention further comprises the step of determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located. The method according to the second aspect of the invention further comprises the step of storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

The method according to the second aspect of the invention has the advantageous effect that the efficiency of storing the location information regarding vector images represented by vector data to be displayed in a user-defined viewport of a multi-level tiled map is improved. In particular, the method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map according to the second aspect of the invention results in a structuring of the data in the database that is advantageous for when the data is retrieved. In particular, the worst-case complexity of retrieving one or more vector images to be displayed in the viewport, stored using the method according to the second aspect of the invention, is reduced to O(log(n)), with n the total number of vector images to be displayed. A further advantageous effect is that a user does not have to prepare the data, i.e. , preparation of the vector data to be stored in the database before storing the vector data in the database is not necessary. It is in particular not necessary for the user to manually assign a tile in which the vector image represented by the vector data is to be displayed. Rather, in the method, the vector data is automatically assigned to a tile, in which tile the center point of the vector image represented by the vector data is located. For each zoom level of the multi-level tiled map, the vector data can automatically be assigned to a tile of the respective zoom level in which the center point of the vector image represented by the vector data is located. It thus is possible to request, for each level, with which tile the vector data is associated.

In an embodiment of the second aspect of the invention, the method further comprises the step of determining a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located.

In this embodiment, the method further comprises the step of storing, in the database, location information that associates the further tile in the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

In this embodiment, the steps are optionally repeated for one or more mutually different further tiles.

For this embodiment of the second aspect of the invention, the examples provided for the corresponding embodiment of the first aspect of the invention wherein the storing process comprises the steps of the method of the second aspect of the invention according to this embodiment, are similarly used to illustrate the steps of the method of this embodiment. In an embodiment of the second aspect of the invention, the method further comprises the maximum zoom determining process of the method according to the first aspect of the invention.

In this embodiment, the maximum zoom determining process comprises the step of determining a maximum size of the vector images to be displayed in the map layer of the multilevel tiled map.

In this embodiment, the maximum zoom determining process comprises the step of determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, the maximum zoom determining process comprises the step of storing, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

In an embodiment of the second aspect of the invention, the method further comprises the step of generating a random number. The random number is preferably a unique identifier, for example a universally unique identifier or a globally unique identifier.

In this embodiment, in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the location information.

In this embodiment, the location information stored in the database is sorted based on the random number.

For example, the database may keep the display information sorted wherein the random number is used as a sort key. For another example, whenever display information is retrieved from the database, the display information is first sorted based on the random number. In a preferential embodiment, the random number is added to a database index, such as a btree index. For example, the database index for the random number is combined with the database index for the display information to form a combined database index, such as a combined btree index. For example, the btree first sorts on the tile in which the center point of the vector image is located, and then sorts on the random number. As a result, a query of the form “WHERE tile = {a tile} and uuid > {a uuid}” has O(log(n)) efficiency. The btree index is for example constructed as btree(z, x, y, uuid) wherein x is a horizontal coordinate, y is a vertical coordinate, and z is the zoom level of the multi-level tiled map and uuid is an identifier of the vector data that represents a vector image whose center point is located in the tile with coordinates (x, y, z) in the tile coordinate system. The btree is queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND uuid>a_uuid” to retrieve the vector data representing vector tiles whose center points are located in a tile with coordinates (a_x, a_y, a_z) and wherein their random number is larger than a given random number a_uuid. Additonal btrees can be added based on properties of the vector data on which to filter. For example, if the vector data has a property “time”, then a btree index btree(z, x, y, time, uuid) can be queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND time>a_time AND uuid>a_uuid” wherein a_time is a timestamp.

In a third aspect of the invention, the invention pertains to a computer-implemented method for retrieving vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, wherein the vector data has been stored in a database using the storing process of the method according to the first aspect of the invention or the method according to the second aspect of the invention, the method comprising the steps of:

- receiving, from a user, a request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map;

- determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map;

- determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

- determining whether location information that associates the viewport tile with any vector data is available in the database;

- if it is determined that location information that associates the viewport tile with any vector data is available in the database:

• retrieving, from the database, location information that associates the viewport tile with vector data;

• retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile;

• returning, to the user, the vector data associated with the viewport tile;

- if it is determined that location information that associates the viewport tile with any vector data is not available in the database:

• returning, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

According to the third aspect of the invention, one or more of the above objects are achieved by a computer-implemented method for retrieving vector data representing a vector image to be displayed in a map layer of a multi-level tiled map, wherein the vector data has been stored in a database using the storing process of the method according to the first aspect of the invention or the method according to the second aspect of the invention. The method according to the third aspect of the invention corresponds to the retrieving process of the method according to the first aspect of the invention. Thus, the steps of the method according to the third aspect of the invention correspond to the steps of the retrieving process of the method according to the first aspect of the invention.

The method according to the third aspect of the invention comprises the step of receiving, from a user, a request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multilevel tiled map.

The method according to the third aspect of the invention comprises the step of determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map.

Thus, in an embodiment of the third aspect of the invention, the display zoom level is a single zoom level of the multi-level tiled map. The single display zoom level is determined based on the viewport. Only tiles within the single display zoom level that have to be displayed will be returned to the user. Thus, only data associated with the tiles on the single display zoom level will be returned to the user to be displayed. No data associated with tiles on a zoom level different from the single display zoom level will be returned to the user. Thus, the single display zoom level defines which data is to be returned to the user to be displayed. Using a single zoom level increases the efficiency compared to a method wherein multiple zoom levels have to be iterated through to find data to be returned to the user to be displayed. Only the tiles on the single display zoom level have to be considered.

The method according to the third aspect of the invention comprises the step of determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map.

The method according to the third aspect of the invention comprises the step of determining whether location information that associates the viewport tile with any vector data is available in the database.

If it is determined that location information that associates the viewport tile with any vector data is available in the database, the method according to the third aspect of the invention comprises the step of retrieving, from the database, location information that associates the viewport tile with vector data.

If it is determined that location information that associates the viewport tile with any vector data is available in the database, the method according to the third aspect of the invention comprises the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile. If it is determined that location information that associates the viewport tile with any vector data is available in the database, the method according to the third aspect of the invention comprises the step of returning, to the user, the vector data associated with the viewport tile.

If it is determined that location information that associates the viewport tile with any vector data is not available in the database, the method according to the third aspect of the invention comprises the step of returning, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

The method according to the third aspect of the invention has the advantageous effect that the efficiency of retrieving the location information regarding vector images represented by vector data to be displayed in a user-defined viewport of a multi-level tiled map is improved. In particular, the worst-case complexity of retrieving one or more vector images to be displayed in the viewport is reduced to O(log(n)), with n the total number of vector images to be displayed.

In an embodiment of the third aspect of the invention, the method further comprises the step of determining a further viewport tile on the zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map.

In this embodiment, the method further comprises the step of determining whether location information that associates the further viewport tile with any vector data is available in the database.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the method further comprises the step of retrieving, from the database, location information that associates the further viewport tile with vector data.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the method further comprises the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the further viewport tile.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the method further comprises the step of returning, to the user, the vector data associated with the further viewport tile.

In this embodiment, the steps are optionally repeated for one or more mutually different further viewport tiles.

In an embodiment of the third aspect of the invention, the vector data has been stored in the database by a method according to an embodiment of the second aspect of the invention comprising the steps of determining a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map; determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map; and storing, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map. Alternatively, the vector data has been stored in the database by a method according an embodiment of the second aspect of the invention comprising the steps of determining a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map; determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map; and storing, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, the method further comprises the step of retrieving, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, in the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level of the map layer of the multi-level tiled map.

In an embodiment of the third aspect of the invention, the vector data has been stored in the database by the storing method of a method according to an embodiment of the first aspect of the invention comprising the steps of generating a random number. The random number is preferably a unique identifier, for example a universally unique identifier or a globally unique identifier, and wherein in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the location information; and the location information stored in the database is sorted based on the random number. Alternatively, the vector data has been stored in the database by a method according an embodiment of the second aspect of the invention comprising the steps of generating a random number. The random number is preferably a unique identifier, for example a universally unique identifier or a globally unique identifier, and wherein in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the location information; and the location information stored in the database is sorted based on the random number. In this embodiment, in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map is retrieved, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map. For example, there are 1000 center points of vector images located within the viewport tile and/or further viewport tiles, and therefore, there are 1000 pieces of display information in the database that relate the viewport tile and/or further viewport tiles of the multi-level tiled map with each of the vector images. In this embodiment, the amount of shapes that are to be retrieved from the database is limited to a number m, for example wherein n is 10 or 50 or 100. The number m is equal to the length of the range i:j, i.e., if i is 0 and j is 49, then m is 50. Similarly, if i is 50 and j is 149, then m is 100. By sorting the display information based on the random number, the vector images retrieved from the database represent a uniform distribution of vector images on the multi-level tiled map, since the sorting key is distributed evenly within the number space. Thus, with this method, a uniform distribution of vector images can be retrieved from the database while simultaneously limiting the amount of vector images to be displayed. For example, when viewing a multi-level tiled map at a course zoom level, for example at a zoom level where multiple countries are visible, but displaying vector images that are relatively small, such as the locations of houses, only a subset of those houses should be displayed. When progressively zooming to more fine-grained zoom levels, the subset of vector images to be displayed will change, i.e., it may be requested to increase the number of m shapes to be displayed, and/or a different subset of shapes may be requested from the database, wherein the center points of the shapes are located within a tile of the multi-level tiled map that intersects with the viewport that the user wishes to view. Additionally, when zooming into the multi-level tiled map (i.e., by reducing the size of the viewport), the vector images that were retrieved on a coarser zoom level will be retained in the finer zoom level, although additional vector images may be shown. This provides for a pleasant user experience as vector images will not disappear when zooming into the multi-level tiled map.

In a fourth aspect of the invention, the invention pertains to a geographic information system, comprising:

- a database;

- a database controller configured to store data in, retrieve data from, and query data from the database;

- a user request module comprising a user request interface for receiving user requests; wherein the user request module is configured to: • in response to the user request interface receiving a user request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multilevel tiled map:

° determine, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map;

° determine a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located;

° store, in the database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data;

• in response to the user request interface receiving a user request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map:

° determine, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map;

° determine a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map;

° determine whether location information that associates the viewport tile with any vector data is available in the database;

° if it is determined that location information that associates the viewport tile with any vector data is available in the database:

■ retrieve, from the database, location information that associates the viewport tile with vector data;

■ retrieve, based on the retrieved location information, from the database, the vector data associated with the viewport tile;

■ return, to the user, the vector data associated with the viewport tile;

° if it is determined that location information that associates the viewport tile with any vector data is not available in the database:

■ return, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map. According to the fourth aspect of the invention, one or more of the above objects are achieved by a geographic information system comprising a database and a database controller configured to store data in, retrieve data from, and query data from the database.

The geographic information system according to the fourth aspect of the invention comprises a user request module comprising a user request interface for receiving user requests.

The user request module of the geographic information system according to the fourth aspect of the invention is configured to implement the storing process and the retrieving process of the method according to first aspect of the invention, and/or the method according to the second aspect of the invention and the method according to the third aspect of the invention.

The user request module of the geographic information system according to the fourth aspect of the invention is configured to, in response to the user request interface receiving a user request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map: determine, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map; determine a tile on a zoom level of the multilevel tiled map in which the center point of the vector image is located; store, in the database, the vector data and location information that associates the tile in the zoom level of the multilevel tiled map in which the center point of the vector image is located with the vector data.

The user request module of the geographic information system according to the fourth aspect of the invention is configured to, in response to the user request interface receiving a user request for retrieving any vector images to be displayed in a viewport of the multi-level tiled map, the viewport being expressed in the coordinate system of the multi-level tiled map: determine, based on the viewport of the multi-level tiled map, a display zoom level of the multilevel tiled map, the display zoom level being a zoom level of the multi-level tiled map; determine a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map; determine whether location information that associates the viewport tile with any vector data is available in the database.

Thus, in an embodiment of the fourth aspect of the invention, the display zoom level is a single zoom level of the multi-level tiled map. The single display zoom level is determined based on the viewport. Only tiles within the single display zoom level that have to be displayed will be returned to the user. Thus, only data associated with the tiles on the single display zoom level will be returned to the user to be displayed. No data associated with tiles on a zoom level different from the single display zoom level will be returned to the user. Thus, the single display zoom level defines which data is to be returned to the user to be displayed. Using a single zoom level increases the efficiency compared to a method wherein multiple zoom levels have to be iterated through to find data to be returned to the user to be displayed. Only the tiles on the single display zoom level have to be considered.

If it is determined that location information that associates the viewport tile with any vector data is available in the database, the user request module of the geographic information system according to the fourth aspect of the invention is configured to retrieve, from the database, location information that associates the viewport tile with vector data; retrieve, based on the retrieved location information, from the database, the vector data associated with the viewport tile; return, to the user, the vector data associated with the viewport tile;

If it is determined that location information that associates the viewport tile with any vector data is not available in the database, the user request module of the geographic information system according to the fourth aspect of the invention is configured to return, to the user, information that no vector image is to be displayed in the viewport of the multi-level tiled map.

In an embodiment according to the fourth aspect of the invention, the user request module is further configured to determine a further viewport tile on the zoom level of the multilevel tiled map that overlaps with the viewport of the multi-level tiled map.

In this embodiment, the user request module is further configured to determine whether location information that associates the further viewport tile with any vector data is available in the database;

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the user request module is further configured to retrieve, from the database, location information that associates the further viewport tile with vector data.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the user request module is further configured to retrieve, based on the retrieved location information, from the database, the vector data associated with the further viewport tile.

In this embodiment, if it is determined that location information that associates the further viewport tile with any vector data is available in the database, the user request module is further configured to return, to the user, the vector data associated with the further viewport tile.

In this embodiment, the steps are optionally repeated for one or more mutually different further viewport tiles. In an embodiment according to the fourth aspect of the invention, the user request module is further configured to determine a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located.

In this embodiment, the user request module is further configured to store, in the database, location information that associates the further tile in the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

In this embodiment, the steps are optionally repeated for one or more mutually different further tiles.

In an embodiment according to the fourth aspect of the invention, the geographic system further comprises a maximum zoom determining module, configured to determine a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map.

In this embodiment, the maximum zoom determining is configured to determine, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, the maximum zoom determining is configured to store, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, the user request module is further configured to retrieve, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map.

In this embodiment, the user request module is further configured to, in the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level of the map layer of the multi-level tiled map.

In an embodiment according to the fourth aspect of the invention, the user request module is further configured to generate a random number. The random number is preferably a unique identifier, for example a universally unique identifier or a globally unique identifier.

In this embodiment, the user request module is further configured to, in the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, include the random number in the location information, wherein the location information stored in the database is sorted based on the random number.

In this embodiment, the user request module is further configured to, in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, retrieve vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map.

In a fifth aspect of the invention, the invention pertains to a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method according to the first aspect of the invention and/or the second aspect of the invention and/or the third aspect of the invention.

According to the fifth aspect of the invention, one or more of the above objects are achieved by computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method according to the first aspect of the invention and/or the second aspect of the invention and/or the third aspect of the invention.

In an embodiment, the computer program according to the fifth aspect of the invention is executed by the user request module and/or the maximum zoom determining module to carry out the steps of the method according to the second aspect of the invention and/or the steps of the method according to the third aspect of the invention.

The invention is described below with reference to the figures. These figures serve as examples to illustrate the invention, and will not be construed as limiting the scope of the claims. In the different figures, like features are indicated by the like reference numerals.

In the figures:

Fig. 1 shows vector images represented by vector data to be displayed on a zoom level of a multi-level tiled map, the vector data being managed and/or stored and/or retrieved by a first embodiment of any of the relevant aspects of the invention.

Fig. 2A shows vector images represented by vector data to be displayed on a zoom level of a multi-level tiled map, the vector data being managed and/or stored and/or retrieved by a second embodiment of any of the relevant aspects of the invention.

Fig. 2B shows the vector images represented by vector data shown in Fig. 2A to be displayed on a further zoom level of the multi-level tiled map, the vector data being managed and/or stored and/or retrieved by the second embodiment of any of the relevant aspects of the invention.

Fig. 3 shows a vector image represented by vector data to be displayed on multiple levels of a multi-level map, the vector data being managed and/or stored and/or retrieved by a third embodiment of any of the relevant aspects of the invention. Fig. 4 shows center points of vector images represented by vector data to be displayed on a zoom level of a multi-level map, the vector data being managed and/or stored and/or retrieved by a fourth embodiment of any of the relevant aspects of the invention.

Fig. 1 shows three vector images v1 , v2, v3 to be displayed on a zoom level of a multilevel tiled map. The three vector images v1 , v2, v3 are contained within a map layer of the multi-level tiled map. The multi-level tiled map has a two-dimensional coordinate system, in this case defining a square wherein the x-coordinate ranges from 0..n and the y-coordinate ranges from 0..n. For example, n is 15999 or 31999 or 63999. The zoom level of the multi-level tiled map comprises 64 tiles, each tile having a coordinate in a tile coordinate system. For example, the top-left tile has tile coordinate t(0, 0, 3), while the bottom right tile has coordinate t(7, 7, 3).

A computer-implemented method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map according to the second aspect of the invention is used to store the vector data representing the vector images v1 , v2, and v3. Alternatively, the storing process of the computer-implemented method for managing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map according to the first aspect of the invention is used to store the vector data representing the vector images v1 , v2, and v3.

The method for storing vector data and/or the storing process comprises the step of receiving, from a user, a request for storing vector data, the vector data including feature information for defining the visual appearance of the vector image and for positioning the vector image within a coordinate system of the multi-level tiled map. For example, the vector data representing vector image v1 comprises feature information on the radius of the circle, within the coordinate system of the multi-level tiled map. For example, the radius is 1000. It further comprises feature information on the location of the circle within the coordinate system of the multi-level tiled map. For example, the location of the circle is (3000, 3500).

The method for storing vector data and/or the storing process further comprises a step of determining, within the coordinate system of the multi-level tiled map, based on the feature information, a center point of the vector image within the coordinate system of the multi-level tiled map. The center points of vector images v1 , v2, and v3 are determined to be ml , m2, and m3, respectively. For example, ml is located at coordinates (3000, 3500), m2 is located at coordinates (5000, 8500), and m3 is located at coordinates (10250, 7900).

The method for storing vector data and/or the storing process further comprises a step of determining a tile on a zoom level of the multi-level tiled map in which the center point of the vector image is located. The center point ml of vector image v1 is determined to be located in the tile t(1 , 1 , 3), i.e., the tile with x-y coordinates (1 , 1) on zoom level 3. The center point m2 of vector image v2 is located in the tile t(2, 4, 3), i.e., the tile with x-y coordinates (2, 4) on zoom level 3. The center point m3 of vector image v3 is located in the tile t(5, 3, 3), i.e., the tile with x-y coordinates (5, 5) on zoom level 3.

The method for storing vector data and/or the storing process further comprises a step of storing, in a database, the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data. For example, the vector data is stored in a table of the database, wherein the vector data is assigned an identifier. Similarly, the location information is stored in a table of the database. In this table, the identifier of the vector data is coupled to the coordinates of the tile in which its center point is located, i.e., to a coordinate of a tile, such as for example t(5, 3, 3) for the vector data representing vector image v3.

Fig. 2A and Fig. 2B shows the same vector images v1 , v2, and v3 as were shown in Fig. 1 on different zoom levels of the multi-level tiled map.

The multi-level tiled map has the same two-dimensional coordinate system as in Fig. 1, in this case defining a square wherein the x-coordinate ranges from 0..n and the y-coordinate ranges from 0..n. For example, n is 15999 or 31999 or 63999. The zoom level of the multi-level map in Fig. 2A comprises 4 tiles, each tile having a coordinate in a tile coordinate system. For example, the top-left tile has tile coordinate t(0, 0, 1), while the bottom right tile has coordinate t(1 , 1 , 3). The zoom level of the multi-level tiled map in Fig. 2A comprises 16 tiles, each tile having a coordinate in a tile coordinate system. For example, the top-left tile has tile coordinate t(0, 0, 2), while the bottom right tile has coordinate t(3, 3, 3).

The method for storing vector data and/or the storing process comprises the step of determining a further tile on a further zoom level of the multi-level tiled map in which the center point of the vector image is located. The further zoom level is distinct from the zoom level of the multi-level tiled map in which the center point of the vector image is located that was determined in a previous step of the storing process. The zoom level of the multi-level tiled map in Fig. 2A is zoom level 1 of the multi-level tiled map, as compared to zoom level 3 of the multilevel tiled map shown in Fig. 1. The center point ml of vector image v1 is determined to be located in the tile t(0, 0, 1), i.e., the tile with x-y coordinates (0, 0) on zoom level 1. The center point m2 of vector image v2 is located in the tile t(0, 1 , 1), i.e., the tile with x-y coordinates (0, 1) on zoom level 1. The center point m3 of vector image v3 is located in the tile t(1 , 0, 1), i.e., the tile with x-y coordinates (1 , 0) on zoom level 1. The zoom level of the multi-level tiled map in Fig. 2A is zoom level 2 of the multi-level tiled map, as compared to zoom level 3 of the multilevel tiled map shown in Fig. 1 and zoom level 1 of the multi-level tiled map shown in Fig. 2A. The center point ml of vector image v1 is determined to be located in the tile t(0, 0, 2), i.e., the tile with x-y coordinates (0, 0) on zoom level 2. The center point m2 of vector image v2 is located in the tile t(1 , 2, 2), i.e., the tile with x-y coordinates (1 , 2) on zoom level 2. The center point m3 of vector image v3 is located in the tile t(2, 1 , 2), i.e., the tile with x-y coordinates (2, 1) on zoom level 2.

In other words, it is determined that the center point of vector image v1 is located in tiles with coordinates t(0, 0, 1), t(1 , 1 , 3), and t(0, 0, 2). It is determined that the center point of vector image v2 is located in tiles with coordinates t(0, 1 , 1), t(1 , 2, 2), and t(2, 4, 3). It is determined that the center point of vector image v3 is located in tiles with coordinates t(1 , 0, 1), t(2, 1 , 2), and t(5, 3, 3). Similarly, if the multi-level tiled map has additional levels, for each of the levels it is determined in which tile the center point of each vector image is located.

The method for storing vector data and/or the storing process further comprises the step of storing, in the database, location information that associates the further tile in the further zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data.

For example, the further location information is stored in a table of the database. In this table, the identifier of the vector data is coupled to the coordinates of the tiles in which its center point is located, i.e., to a coordinate of each tile, such as for example coordinates t(1 , 0, 1), t(2, 1 , 2), and t(5, 3, 3) for the vector data representing vector image v3. This is for example achieved by adding 3 rows to the table of the database in which the location information is stored. Each row added to the database table couples the vector data representing the vector image to a tile on a particular level, for example there is a row for coupling the vector data representing vector image v3 to the tile with coordinates t(1 , 0, 1), a row for coupling the vector data representing vector image v3 to the tile with coordinates t(2, 1 , 2), and a row for coupling the vector data representing vector image v3 to the tile with coordinates t(5, 3, 3).

Fig. 3 shows a vector image represented by vector data to be displayed on three levels of a multi-level tiled map zO, z1 , and z2. The multi-level tiled map has a height and width of 16000, i.e., its top-left coordinate is (0, 0) and its bottom-right coordinate is (15999, 15999). The vector image has a center point ml . As explained above, the vector data representing the vector image v1 is associated to a tile on each zoom level zO, z1 , z2. Also shown in Fig. 3 is a viewport 3001. The vector data representing the vector image v1 has been stored using a computer-implemented method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map according to the second aspect of the invention. Alternatively, the vector data representing the vector image v1 has been stored using the storing process of the computer-implemented method according to the first aspect of the invention.

A computer-implemented method for retrieving vector data representing a vector image to be displayed in a map layer of a multi-level tiled map according to the third aspect of the invention is used to retrieve the vector data representing the vector images to be displayed in the viewport 3001. Alternatively, the retrieving process of the computer-implemented method according to the first aspect of the invention is used to retrieve the vector data representing the vector images to be displayed in the viewport 3001.

The method for retrieving vector data and/or the retrieving process comprises a step of receiving, from a user, a request for retrieving any vector images to be displayed in a viewport 3001 of the multi-level tiled map, the viewport 3001 being expressed in the coordinate system of the multi-level tiled map. For example, the viewport has a top-left corner with coordinates (4500, 4500) and a bottom-right corner with coordinates (10000, 15500).

The method for retrieving vector data and/or the retrieving process comprises a step of determining, based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, the display zoom level being a zoom level of the multi-level tiled map. For example, the determined display zoom level is z2 based on the amount of detail to be shown.

The method for retrieving vector data and/or the retrieving process further comprises a step of determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map and optionally comprises the step of determining a further viewport tile on the zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map. For example, it is determined that tiles with coordinates t(1 , 2, 2), t(2, 2, 2), t(1 , 3, 2), and t(2, 3, 2) overlap with the viewport of the multilevel tiled map.

The method for retrieving vector data and/or the retrieving process further comprises a step of determining whether location information that associates the viewport tile with any vector data is available in the database. No tile that was determined to overlap with the viewport of the multi-level tiled map is associated with vector data, and thus information that no vector image is to be displayed in the viewport of the multi-level tiled map is returned to the user.

In an embodiment, the computer-implemented method for managing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map which comprises the storing process used to store the vector data representing the vector image v1 comprises a maximum zoom level determining process. In an embodiment, the method for storing vector data further comprises the maximum zoom level determining process.

The maximum zoom determining process comprises the step of determining a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map. For example, the vector image v1 has a center point ml and has a diameter of 5000, i.e, its bounding box is a square with dimensions 5000x5000.

The maximum zoom determining process comprises the step of determining, based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, a maximum zoom level for the map layer of the multi-level tiled map. Since the width and the height of the multi-level tiled map is 16000, at zoom level z2, the vector image v1 will not fit within a single tile. At zoom levels zO and z1 , the vector image v1 will fit within a single tile. For example, the maximum zoom level for the map layer which comprises the vector image v1 is determined to be z1.

The maximum zoom determining process comprises the step of storing, in the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multi-level tiled map. For example, a row is added in a database table that associates the map layer with the maximum zoom level.

In this embodiment, the method for retrieving vector data and/or the retrieving process comprises a step of retrieving, from the database, zoom information that associates the map layer of the multi-level tiled map with the maximum zoom level for the map layer of the multilevel tiled map. In the step of determining, based on the viewport of the multi-level tiled map, the display zoom level of the multi-level tiled map, the display zoom level is additionally determined based on the maximum zoom level of the map layer of the multi-level tiled map. For example, if the maximum zoom level is a coarser zoom level than the display zoom level of the multi-level tiled map which was determined based on the viewport, then the display zoom level is set to the maximum zoom level. In the example, the display zoom level is set to z1 , since the maximum zoom level is determined to be z1.

In the steps of determining a viewport tile on the display zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map and determining a further viewport tile on the zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map in the method for retrieving vector data and/or the retrieving process, it is now determined that tiles with coordinates t(0, 1 , 1) and t(1 , 1 , 1) overlap with the viewport of the multi-level tiled map. In the step of determining whether location information that associates the viewport tile with any vector data is available in the database in the method for retrieving vector data and/or the retrieving process, it is now determined that the tile t(0, 1 , d is associated with the vector image v1 .

Since it is determined that location information that associates the viewport tile with any vector data is available in the database, the method for retrieving vector data and/or the retrieving process further comprises a step of retrieving, from the database, location information that associates the viewport tile with vector data. The method for retrieving vector data and/or the retrieving process further comprises a step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile. The method for retrieving vector data and/or the retrieving process further comprises a step of returning, to the user, the vector data associated with the viewport tile. In the example, the vector data representing the vector image v1 is returned to the user. Fig. 4 shows center points m1-m10 of vector images represented by vector data to be displayed on a zoom level of a multi-level tiled map. The vector data representing the vector images with center points m1-m10 (i.e., vector images v1-v10) is stored using a computer- implemented method for storing vector data representing a vector image to be displayed in a map layer of a multi-level tiled map according to the second aspect of the invention. Alternatively, the vector data representing the vector images with center points m1-m10 (i.e., vector images v1-v10) is stored using the storing process of the computer-implemented method according to the first aspect of the invention.

The method for storing vector data and/or the storing process comprises the step of generating a random number. The random number is preferably a unique identifier, for example a universally unique identifier UIIID or a globally unique identifier GlIID. As is shown in Fig. 4, 10 UlllDs are generated, one for each vector image.

In the step of storing the vector data and location information that associates the tile in the zoom level of the multi-level tiled map in which the center point of the vector image is located with the vector data, the random number is included in the display information. For example, the random number, i.e., the UIIID, is used as the identifier of the display information. Further, the location information stored in the database is sorted based on the random number. As shown in Fig. 4, the database comprises two tables: a vector table and a display information table. The vector table comprises the vector data representing the vector images v1-v10. Each vector image is associated to feature information, i.e., a number of properties and property values, defining for example the visual appearance of each vector image. Each row in the vector table represents one vector image and has an identifier “id”. The display information table comprises the display information that is stored using a computer-implemented method for storing vector data according to the second aspect of the invention or using the storing process of the computer-implemented method according to the first aspect of the invention. The display data is sorted based on the random number. The column vjd of the location information table refers to an id of a row in the vector table representing a vector image (for example using a foreign key). Each row in the location information table is associated with a tile with coordinates (z, x, y). For a multi-level tiled map with more than one level, the location information table contains a number of rows per vjd, which number is equal to the number of levels in the multilevel tiled map. For example, if the multi-level tiled map has 21 levels, the location information table comprises 21 rows for vjd vi, 21 rows for vjd V2, 21 rows for vjd V3, etc. On the location information table, a btree index is placed wherein the btree index is constructed as btree(z, x, y, uuid). Thus, to retrieve the vector images whose center points are located on a tile with coordinates (a_x, a_y, a_z), the btree is queried by a query of the form “z=a_z AND x=a_x AND y=a_y AND uuid>a_uuid”, wherein a_uuid is for example 0 or for example 0862853b-0c3e- 4a46-96bf-0f4f84df620f. Then, the vector images are retrieved from the vector table by querying the vector table on the “id” column, based on the “vjd” values retrieved from the location information table. For example, to retrieve the first 5 vector images to be displayed in viewport 3001 , the location information table is queried with a query of the form “z=3 AND ((x=2 AND y=2) OR (x=3 AND y=2) OR (x=4 AND y=2) OR (x=5 AND y=2) OR (x=6 AND y=2) OR (x=2 AND y=3) OR (x=3 AND y=3) OR (x=4 AND y=3) OR (x=5 AND y=3) OR (x=6 AND y=3) OR (x=2 AND y=4) OR (x=3 AND y=4) OR (x=4 AND y=4) OR (x=5 AND y=4) OR (x=6 AND y=4) OR (x=2 AND y=5) OR (x=3 AND y=5) OR (x=4 AND y=5) OR (x=5 AND y=5) OR (x=6 AND y=5)) AND uuid>0 LIMIT 5”. This will retrieve location information with v_id=(v2, v6, v1 , v7, v5), which are then used to query the vector table to retrieve feature information of the vector images. To query the next 5 vector images, the location information table is queried with a query of the form form “z=3 AND ((x=2 AND y=2) OR (x=3 AND y=2) OR (x=4 AND y=2) OR (x=5 AND y=2) OR (x=6 AND y=2) OR (x=2 AND y=3) OR (x=3 AND y=3) OR (x=4 AND y=3) OR (x=5 AND y=3) OR (x=6 AND y=3) OR (x=2 AND y=4) OR (x=3 AND y=4) OR (x=4 AND y=4) OR (x=5 AND y=4) OR (x=6 AND y=4) OR (x=2 AND y=5) OR (x=3 AND y=5) OR (x=4 AND y=5) OR (x=5 AND y=5) OR (x=6 AND y=5)) AND uuid>7f20a084-1464-4291 -aOfd- 2c47a06d8a3b LIMIT 5”. This will retrieve location information with v_id=(v10, v4, v9, v3, v8), which are then used to query the vector table to retrieve feature information of the vector images.

A viewport 3001 is also shown in Fig. 4. It is determined that 20 tiles overlap with the viewport 3001 , ranging from t(2, 2, 3) to t(6, 2, 3) in the x-direction and from t(2, 2, 3) to t(2, 5, 3) in the y-direction.

In the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, vector data representing a range i:j of vector images to be displayed in the viewport of the multi-level tiled map is retrieved, wherein 0 <= i <= n and i <= j <= n, wherein n is a total number of vector images to be displayed in the viewport of the multi-level tiled map. For example, the range 0:4 is requested. Then, vector data representing vector images with center points {m2, m6, ml , m7, m5} are retrieved. Thus, a uniform distribution of vector images is retrieved from the database while simultaneously limiting the amount of vector images to be displayed. Additionally, when zooming into the multilevel tiled map (i.e., by reducing the size of the viewport), the vector images that were retrieved on a coarser zoom level will be retained in the finer zoom level, although additional vector images may be shown. This provides for a pleasant user experience as vector images will not disappear when zooming into the multi-level tiled map.