NL2032508B1 - Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map - Google Patents

Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map Download PDF

Info

Publication number
NL2032508B1
NL2032508B1 NL2032508A NL2032508A NL2032508B1 NL 2032508 B1 NL2032508 B1 NL 2032508B1 NL 2032508 A NL2032508 A NL 2032508A NL 2032508 A NL2032508 A NL 2032508A NL 2032508 B1 NL2032508 B1 NL 2032508B1
Authority
NL
Netherlands
Prior art keywords
level
viewport
map
vector
tile
Prior art date
Application number
NL2032508A
Other languages
Dutch (nl)
Inventor
Van Der Maas Daniel
Original Assignee
Ellipsis Earth Intelligence B V
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ellipsis Earth Intelligence B V filed Critical Ellipsis Earth Intelligence B V
Priority to NL2032508A priority Critical patent/NL2032508B1/en
Priority to PCT/EP2023/069418 priority patent/WO2024013274A1/en
Application granted granted Critical
Publication of NL2032508B1 publication Critical patent/NL2032508B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour

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.

Description

P35648NLO0/SMI final version
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, nis 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 ahouse. 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'® 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" 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), (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 O <= 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 multi- level tiled map is divided into 4 tiles, the tile in the top-left corner t(0, 0) is associated with a top- left 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 O of a particular area of the map. Typically, at zoom level n there are 4" 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 5 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 paint 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 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 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" 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 / below the first amount of zoom levels m, wherein m < | < nr-of-levels - 1, comprises 4" 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 multi- level 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 xis 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 multi- level 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 multi- level tiled map to be displayed, the area being defined within the coordinate system of the multi- level 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 multilevel 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 multi- level 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.
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 multi- level 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 multi- level 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 viewport that the user wishes to view is related to a zoom level is 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. This is for example the result 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 multi-level 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, preferably a unique identifier, for example a universally unique identifier UUID or a globally unique identifier GUID.
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 UUID or GUID, itis 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 farm “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 ij of vector images to be displayed in the viewport of the multi-level tiled map is retrieved, wherein 0 <=i<=nandi<=j<=n, wherein nis 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 nis 10 or 50 or 100. The number m is equal to the length of the range ij, i.e, if iis O 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 multi- level tiled map; - determining a tile on a zoom level of the multi-level tiled map in which the center paint 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 multi- level 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, 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 multi- level 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.
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 inthe 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, 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, 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 ij 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 nis a total number of vector images to be displayed inthe 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 nis 10 or 50 or 100. The number m is equal to the length of the range ij, i.e, if iis O 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: s 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 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; 9 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; o 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 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.
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 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, 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 multi- level 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, 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 /j of vector images to be displayed in the viewport of the multi-level tiled map, wherein 0 <=i<=nandi<=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 multi- level 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 O..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 m1, m2, and m3, respectively. For example, m1 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 m1 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, nis 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 (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 multi- level tiled map shown in Fig. 1. The center point m1 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 multi- level tiled map shown in Fig. 1 and zoom level 1 of the multi-level tiled map shown in Fig. 2A.
The center point m1 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), (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, Q, 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 z0, 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 m1. As explained above, the vector data representing the vector image v1 is associated to a tile on each zoom level z0, z1, z2. Also shown in Fig. 3is 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), (2, 2, 2), t(1, 3, 2), and t(2, 3, 2) overlap with the viewport of the multi- level 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 m1 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 z0 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 multi- level 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, 1) 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, preferably a unique identifier, for example a universally unique identifier UUID or a globally unique identifier GUID. As is shown in Fig. 4, 10 UUIDs 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 UUID, 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 v_id 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 v_id, which number is equal to the number of levels in the multi- level tiled map. For example, if the multi-level tiled map has 21 levels, the location information table comprises 21 rows for v_id vi, 21 rows for v_id v2, 21 rows for v_id vs, 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 coardinates (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 O 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 “v_id” 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, vb), 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-a0fd- 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 <=nandi<=j<=n, wherein nis 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, m1, 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 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.

Claims (1)

CONCLUSIESCONCLUSIONS 1. Computergeimplementeerde werkwijze voor het beheren van vectordata die een vectorafbeelding voorstelt om weer te geven in een kaartlaag van een multi-niveau getegelde kaart, de werkwijze omvattende: - een opslagproces, omvattende de stappen van: » het ontvangen, van een gebruiker, van een aanvraag voor het opslaan van vectordata, waarbij de vectordata kenmerkinformatie omvat voor het definiéren van het visuele uiterlijk van de vectorafbeelding en voor het positioneren van de vectorafbeelding binnen een coördinaatsysteem van de multi-niveau getegelde kaart; + het bepalen, binnen het coördinaatsysteem van de multi-niveau getegelde kaart, gebaseerd op de kenmerkinformatie, van een centrumpunt van de vectorafbeelding binnen het coördinaatsysteem van de multi-niveau getegelde kaart; * het bepalen van een tegel op een zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd; het opslaan, in een database, van de vectordata en locatie-informatie die de tegel in het zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata; - een ophaalproces, omvattende de stappen van: + het ontvangen, van een gebruiker, van een aanvraag voor het ophalen van enige vectorafbeelding om weer te geven in een viewport van de multi-niveau getegelde kaart, waarbij de viewport is uitgedrukt in het coördinaatsysteem van de multi-niveau getegelde kaart; » het bepalen, gebaseerd op de viewport van de multi-niveau getegelde kaart, van een weergavezoomniveau van de multi-niveau getegelde kaart, waarbij het weergavezoomniveau een zoomniveau van de multi-niveau getegelde kaart is; + het bepalen van een viewporttegel op het weergavezoomniveau van de multi- niveau getegelde kaart die overlapt met de viewport van de multi-niveau getegelde kaart; * het bepalen of er locatie-informatie die de viewporttegel met enige vectordata associeert beschikbaar is in de database; » als het bepaald is dat locatie-informatie die de viewporttegel met enige vectordata associeert beschikbaar is in de database: o het ophalen, vanuit de database, van locatie-informatie die de viewporttegel met vectordata associeert; ° het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de viewporttegel;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 storage process, comprising the steps of: » receiving, from a user, from an application 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 at 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 retrieval process, comprising the steps of: + receiving, from a user, a request to retrieve some vector image to display 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, wherein the display zoom level is a zoom level of the multi-level tiled map; + determining a viewport tile at the view 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 some vector data is available in the database: o 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; ° het teruggeven, aan de gebruiker, van de vectordata geassocieerd met de viewporttegel; + als het bepaald is dat locatie-informatie die de viewporttegel met enige vectordata associeert niet beschikbaar is in de database: > het teruggeven, aan de gebruiker, van informatie dat geen vectorafbeelding weer te geven is in de viewport van de multi-niveau getegelde kaart.° returning, to the user, the vector data associated with the viewport tile; + if it is determined that location information associating the viewport tile with any vector data is not available in the database: > returning, to the user, information that no vector image is displayable in the viewport of the multi-level tiled map . 2. Werkwijze volgens conclusie 1, waarbij het ophaalproces verder de stappen omvat van: - het bepalen van een verdere viewporttegel op het weergavezoomniveau van de multi-niveau getegelde kaart die overlapt met de viewport van de multi-niveau getegelde kaart; - het bepalen of er locatie-informatie die de verdere viewporttegel met enige vectordata associeert beschikbaar is in de database; - als het bepaald is dat locatie-informatie die de verdere viewporttegel met enige vectordata associeert beschikbaar is in de database: + het ophalen, vanuit de database, van locatie-informatie die de verdere viewporttegel met vectordata associeert; « het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de verdere viewporttegel; + het teruggeven, aan de gebruiker, van de vectordata geassocieerd met de verdere viewporttegel; waarbij de stappen optioneel herhaald worden voor een of meer wederzijds exclusieve verdere viewporttegels.The method of claim 1, wherein the retrieval process further comprises the steps of: - determining a further viewport tile at the viewport zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map; - determining whether location information associating the further viewport tile with any vector data is available in the database; - if it is determined that location information associating the further viewport tile with some vector data is available in the database: + retrieving, from the database, location information associating 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; where the steps are optionally repeated for one or more mutually exclusive further viewport tiles. 3. Werkwijze volgens een van de voorgaande conclusies, waarbij het opslagproces verder de stappen omvat van: - het bepalen van een verdere tegel op een verder zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd; - het opslaan, in de database, van locatie-informatie die de verdere tegel op het verdere zoomniveau of van de multi-niveau getegelde map waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata; waarbij de stappen optioneel herhaald worden voor een of meer wederzijds exclusieve verdere tegels.A method according to any one of the preceding claims, wherein the storing process further comprises the steps of: - determining a further tile at 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 at the further zoom level or 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 exclusive further tiles. 4. Werkwijze volgens een van de voorgaande conclusies,4. Method according to any of the preceding claims, waarbij de werkwijze verder een maximumzoomniveaubepaalproces omvat, dat de stappen omvat van: - het bepalen van een maximumgrootte van de vectorafbeeldingen om weer te geven in de kaartlaag van de multi-niveau getegelde kaart; - het bepalen, gebaseerd op de maximumgrootte van de vectorafbeeldingen om weer te geven in de kaartlaag van de multi-niveau getegelde kaart, van een maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart; - het opslaan, in de database, van zoominformatie die de kaartlaag van de multi-niveau getegelde kaart associeert met het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart; en waarbij het ophaalproces verder de stap omvat van: - het ophalen, uit de database, van zoominformatie die de kaartlaag van de multi-niveau getegelde kaart associeert met het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart; en waarbij in de stap van het bepalen, gebaseerd op de viewport van de multi-niveau getegelde kaart, een weergavezoomniveau van de multi-niveau getegelde kaart, het weergavezoomniveau verder bepaald is gebaseerd op het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart.wherein the method further comprises a maximum zoom level determination process, which includes the steps of: - determining a maximum size of the vector images to display 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 retrieval process further includes 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 wherein in 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 is further determined based on the maximum zoom level for the map layer of the multi-level tiled map . 5. Werkwijze volgens een van de voorgaande conclusies, waarbij: - het opslagproces verder de stap omvat van het genereren van een willekeurig getal, bij voorkeur een unieke identifier, bijvoorbeeld een universeel unieke identifier of een globaal unieke identifier; en - in de stap van het opslaan van de vectordata en locatie-informatie die de tegel in het zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata, het willekeurig getal in de locatie-informatie wordt geïncludeerd; - de locatie-informatie die is opgeslagen in de database is gesorteerd gebaseerd op het willekeurig getal; - in de stap van het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de viewporttegel, vectordata die een bereik ij van vectorafbeeldingen om weer te geven in de viewport van de multi-niveau getegelde kaart word opgehaald, waarbij 0 <= i<=n en i <= j <= n, waarbij n een totaal aantal vectorafbeeldingen om weer te geven in de viewport van de multi-niveau getegelde kaart is.Method according to any of the preceding claims, wherein: - the storage process further comprises the step of generating a random number, preferably a unique identifier, for example a universally unique identifier or a globally unique identifier; 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 in the location information is included; - 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 that becomes a range of vector images to be displayed in the viewport of the multi-level tiled map retrieved, where 0 <= i<=n and i <= j <= n, where n is a total number of vector images to display in the viewport of the multi-level tiled map. 8. Computergeimplementeerde werkwijze voor het opslaan van vectordata die een vectorafbeelding voorstelt om weer te geven in een kaartlaag van een multi-niveau getegelde kaart, omvattende de stappen van: + het ontvangen, van een gebruiker, van een aanvraag voor het opslaan van vectordata, waarbij de vectordata kenmerkinformatie omvat voor het definiëren van het visuele uiterlijk van de vectorafbeelding en voor het positioneren van de vectorafbeelding binnen een coördinaatsysteem van de multi-niveau getegelde kaart; » het bepalen, binnen het coördinaatsysteem van de multi-niveau getegelde kaart, gebaseerd op de kenmerkinformatie, van een centrumpunt van de vectorafbeelding binnen het coördinaatsysteem van de multi-niveau getegelde kaart; « het bepalen van een tegel op een zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd; + het opslaan, in een database, van de vectordata en locatie-informatie die de tegel in het zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata.8. A computer-implemented method for storing vector data representing a vector image for display in a map layer of a multi-level tiled map, comprising the steps of: + receiving, from a user, a request to store vector data, wherein the vector data includes 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 at 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. 7. Werkwijze volgens conclusie 8, verder omvattende de stappen van: - het bepalen van een verdere tegel op een verder zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd; - het opslaan, in de database, van locatie-informatie die de verdere tegel op het verdere zoomniveau of van de multi-niveau getegelde map waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata; waarbij stappen optioneel herhaald worden voor een of meer wederzijds exclusieve verder tegels.The method of claim 8, further comprising the steps of: - determining a further tile at 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 at the further zoom level or of the multi-level tiled map in which the center point of the vector image is located with the vector data; where steps are optionally repeated for one or more mutually exclusive further tiles. 8. Werkwijze volgens een van de conclusies 6-7, verder omvattende een maximumzoomniveaubepaalproces, dat de stappen omvat van: - het bepalen van een maximumgrootte van de vectorafbeeldingen om weer te geven in de kaartlaag van de multi-niveau getegelde kaart; - het bepalen, gebaseerd op de maximumgrootte van de vectorafbeeldingen om weer te geven in de kaartlaag van de multi-niveau getegelde kaart, van een maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart; - het opslaan, in de database, van zoominformatie dat de kaartlaag van de multi- niveau getegelde kaart associeert met het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart.A method according to any one of claims 6 to 7, further comprising a maximum zoom level determination 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. 9. Werkwijze volgens een van conclusies 6-8, verder omvattende de stap van het genereren van een willekeurig getal, bij voorkeur een unieke identifier, bijvoorbeeld een universeel unieke identifier of een globaal unieke identifier; en waarbij - in de stap van het opslaan van de vectordata en locatie-informatie die de tegel in het zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata, het willekeurig getal in de locatie-informatie wordt geïncludeerd; - de locatie-informatie die is opgeslagen in de database is gesorteerd gebaseerd op het willekeurig getal.9. Method according to any of claims 6-8, further comprising the step of generating a random number, 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 in the location information is included; - the location information stored in the database is sorted based on the random number. 10. Computergeimplementeerde werkwijze voor het opslaan van vectordata die een vectorafbeelding voorstelt om weer te geven in een kaartlaag van een multi-niveau getegelde kaart, waarbij de vectordata is opgeslagen in de database gebruik makende van de werkwijze volgens een van de conclusies 6-9, de werkwijze omvattende de stappen van: - het ontvangen, van een gebruiker, van een aanvraag voor het ophalen van enige vectorafbeelding om weer te geven in een viewport van de multi-niveau getegelde kaart, waarbij de viewport is uitgedrukt in het coördinaatsysteem van de multi-niveau getegelde kaart; - het bepalen, gebaseerd op de viewport van de multi-niveau getegelde kaart, van een weergavezoomniveau van de multi-niveau getegelde kaart, waarbij het weergavezoomniveau een zoomniveau van de multi-niveau getegelde kaart is; - het bepalen van een viewporttegel op het weergavezoomniveau van de multi-niveau getegelde kaart die overlapt met de viewport van de multi-niveau getegelde kaart; - het bepalen of er locatie-informatie die de viewporttegel met enige vectordata associeert beschikbaar is in de database; - als het bepaald is dat locatie-informatie die de viewporttegel met enige vectordata associeert beschikbaar is in de database: + het ophalen, vanuit de database, van locatie-informatie die de viewporttegel met vectordata associeert; « het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de viewporttegel; * het teruggeven, aan de gebruiker, van de vectordata geassocieerd met de viewporttegel, - als het bepaald is dat locatie-informatie die de viewporttegel met enige vectordata associeert niet beschikbaar is in de database: + het teruggeven, aan de gebruiker, van informatie dat geen vectorafbeelding weer te geven is in de viewport van de multi-niveau getegelde kaart.A computer-implemented method of storing vector data representing a vector image for display in a map layer of a multi-level tiled map, the vector data being stored in the database using the method of any one of claims 6 to 9, the method comprising the steps of: - receiving, from a user, a request to retrieve some vector image to display 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, wherein the display zoom level is a zoom level of the multi-level tiled map; - determining a viewport tile at the viewport 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 associating the viewport tile with some vector data is available in the database: + retrieving, from the database, location information associating 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 associating the viewport tile with any vector data is not available in the database: + returning to the user information that no vector image to display in the viewport of the multi-level tiled map. 11. Werkwijze volgens conclusie 10, verder omvattende de stappen van: - het bepalen van een verdere viewportegel op het weergavezoomniveau van de multi-niveau getegelde kaart die overlapt met de viewport van de multi-niveau getegelde kaart; - het bepalen of er locatie-informatie die de verdere viewporttegel met enige vectordata associeert beschikbaar is in de database; - als het bepaald is dat locatie-informatie die de verdere viewporttegel met enige vectordata associeert beschikbaar is in de database: + het ophalen, vanuit de database, van locatie-informatie die de verdere viewporttegel met vectordata associeert; + het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de verdere viewporttegel; + het teruggeven, aan de gebruiker, van de vectordata geassocieerd met de verdere viewporttegel; waarbij de stappen optioneel herhaald worden voor een of meer wederzijds exclusieve verder viewporttegels.The method of claim 10, further comprising the steps of: - determining a further viewport tile at the viewport zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map; - determining whether location information associating the further viewport tile with any vector data is available in the database; - if it is determined that location information associating the further viewport tile with some vector data is available in the database: + retrieving, from the database, location information associating 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; where the steps are optionally repeated for one or more mutually exclusive further viewport tiles. 12. Werkwijze volgens een van de conclusies 10-11, waarbij: - de vectordata is opgeslagen in de database gebruik makende van de werkwijze volgens een van de conclusies 8-9; - waarbij het ophaalproces verder de stap omvat van het ophalen, uit de database, van zoominformatie die de kaartlaag van de multi-niveau getegelde kaart associeert met het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart; en - in de stap van het bepalen, gebaseerd op de viewport van de multi-niveau getegelde kaart, van een weergavezoomniveau van de multi-niveau getegelde kaart, het weergavezoomniveau verder bepaald is gebaseerd op het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart.A method according to any one of claims 10-11, wherein: - the vector data is stored in the database using the method according to any one of claims 8-9; - wherein the retrieval process further includes 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, a display zoom level of the multi-level tiled map, the display zoom level is further determined based on the maximum zoom level for the map layer of the multi-level tiled map card. 13. Werkwijze volgens een van de conclusies 10-12, waarbij: - de vectordata is opgeslagen in de database gebruik makende van de werkwijze volgens conclusie 9; - in de stap van het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de viewporttegel, vectordata die een bereik ij van vectorafbeeldingen om weer te geven in de viewport van de multi-niveau getegelde kaart word opgehaald, waarbij 0 <= i<=n en i <= j <= n, waarbij n een totaal aantal vectorafbeeldingen om weer te geven in de viewport van de multi-niveau getegelde kaart is.A method according to any one of claims 10-12, wherein: - the vector data is stored in the database using the method according to claim 9; - in the step of retrieving, based on the retrieved location information, from the database, the vector data associated with the viewport tile, vector data that becomes a range of vector images to be displayed in the viewport of the multi-level tiled map retrieved, where 0 <= i<=n and i <= j <= n, where n is a total number of vector images to display in the viewport of the multi-level tiled map. 14. Geografisch informatiesysteem, omvattende:14. Geographic information system, including: - een database; - een databaseaansturing ingericht om data op te slaan in, data op te halen uit, en data te bevragen van de database; - een gebruikersaanvraagmodule omvattende een gebruikersaanvraaginterface voor het ontvangen van gebruikersaanvragen; waarbij de gebruikersaanvraagmodule is ingericht om:- a database; - a database control designed 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 designed to: » als antwoord op het ontvangen, door de gebruikersaanvraaginterface, van een gebruikersaanvraag voor het opslaan van vector data, waarbij de vectordata kenmerkinformatie omvat voor het definiëren van het visuele uiterlijk van de vectorafbeelding en voor het positioneren van de vectorafbeelding binnen een coördinaatsysteem van de multi-niveau getegelde kaart:» in response to the user request interface receiving a user request to store vector data, the vector data including feature information for defining the visual appearance of the vector graphic and for positioning the vector graphic within a coordinate system of the multi- level tiled map: ° binnen het coördinaatsysteem van de multi-niveau getegelde kaart, gebaseerd op de kenmerkinformatie, een centrumpunt van de vectorafbeelding binnen het coördinaatsysteem van de multi-niveau getegelde kaart te bepalen;° within the coordinate system of the multi-level tiled map, based on the feature information, determine a center point of the vector image within the coordinate system of the multi-level tiled map; > een tegel op een zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd te bepalen;> determine a tile at a zoom level of the multi-level tiled map in which the center point of the vector image is located; ° de vectordata en locatie-informatie die de tegel in het zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata in een database op te slaan;° store 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 a database; + als antwoord op het ontvangen, door de gebruikersaanvraaginterface, van een gebruikersaanvraag voor het ophalen van enige vectorafbeelding om weer te geven in een viewport van de multi-niveau getegelde kaart, waarbij de viewport is uitgedrukt in het coördinaatsysteem van de multi-niveau getegelde kaart:+ in response to the user request interface receiving a user request to retrieve any vector image to display in a viewport of the multi-level tiled map, where the viewport is expressed in the coordinate system of the multi-level tiled map : ° gebaseerd op de viewport van de multi-niveau getegelde kaart, een weergavezoomniveau van de multi-niveau getegelde kaart, waarbij het weergavezoomniveau een zoomniveau van de multi-niveau getegelde kaart is te bepalen;° based on the viewport of the multi-level tiled map, a display zoom level of the multi-level tiled map, where the display zoom level is a zoom level of the multi-level tiled map to be determined; ° een viewporttegel op het weergavezoomniveau van de multi-niveau getegelde kaart die overlapt met de viewport van de multi-niveau getegelde kaart te bepalen;° determine a viewport tile at the viewport zoom level of the multi-level tiled map that overlaps with the viewport of the multi-level tiled map; ° te bepalen of er locatie-informatie die de viewporttegel met enige vectordata associeert beschikbaar is in de database;° determine whether location information that associates the viewport tile with any vector data is available in the database; ° als het bepaald is dat locatie-informatie die de viewporttegel met enige vectordata associeert beschikbaar is in de database:° if it is determined that location information that associates the viewport tile with some vector data is available in the database: » vanuit de database locatie-informatie die de viewporttegel met vectordata associeert op te halen;» retrieve from the database location information that associates the viewport tile with vector data; » gebaseerd op de opgehaalde locatie-informatie, vanuit de database, de vectordata geassocieerd met de viewporttegel op te halen; « aan de gebruiker de vectordata geassocieerd met de viewporttegel terug te geven; ° als het bepaald is dat locatie-informatie die de viewporttegel met enige vectordata associeert niet beschikbaar is in de database: » aan de gebruiker informatie dat geen vectorafbeelding weer te geven is in de viewport van de multi-niveau getegelde kaart terug te geven.» based on the retrieved location information, from the database, retrieve 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 information to the user that no vector image is displayable in the viewport of the multi-level tiled map. 15. Geografisch informatiesysteem volgens conclusie 14, waarbij de gebruikersaanvraagmodule verder is ingericht is om: - een verdere viewportegel op het weergavezoomniveau van de multi-niveau getegelde kaart die overlapt met de viewport van de multi-niveau getegelde kaart te bepalen; - te bepalen of er locatie-informatie die de verdere viewporttegel met enige vectordata associeert beschikbaar is in de database; - als het bepaald is dat locatie-informatie die de verdere viewporttegel met enige vectordata associeert beschikbaar is in de database: + vanuit de database locatie-informatie die de verdere viewporttegel met vectordata associeert op te halen; gebaseerd op de opgehaalde locatie-informatie, vanuit de database, de vectordata geassocieerd met de verdere viewporttegel op te halen; « aan de gebruiker de vectordata geassocieerd met de verdere viewporttegel terug te geven; waarbij de stappen optioneel herhaald worden voor een of meer wederzijds exclusieve verdere viewporttegels.The geographic information system of claim 14, wherein the user request module is further arranged to: - determine a further viewport tile at 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 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 some vector data is available in the database: + retrieve from the database location information that associates the further viewport tile with vector data; based on the retrieved location information, from the database, retrieve the vector data associated with the further viewport tile; « return to the user the vector data associated with the further viewport tile; where the steps are optionally repeated for one or more mutually exclusive further viewport tiles. 16. Geografisch informatiesysteem volgens een van de conclusies 14-15, waarbij de gebruikersaanvraagmodule verder is ingericht is om: - een verdere tegel op een verder zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd te bepalen; - in de database locatie-informatie die de verdere tegel op het verdere zoomniveau of van de multi-niveau getegelde map waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata op te slaan; waarbij de stappen optioneel herhaald worden voor een of meer wederzijds exclusieve verdere tegels.16. Geographic information system according to any one of claims 14-15, wherein the user request module is further arranged to: - determine a further tile at 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 at the further zoom level or 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 exclusive further tiles. 17. Geografisch informatiesysteem volgens een van de conclusies 14-16, verder omvattende een maximumzoomniveaubepaalmodule, ingericht om: - een maximumgrootte van de vectorafbeeldingen om weer te geven in de kaartlaag van de multi-niveau getegelde kaart te bepalen; - gebaseerd op de maximumgrootte van de vectorafbeeldingen om weer te geven in de kaartlaag van de multi-niveau getegelde kaart, een maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart te bepalen; - in de database zoominformatie die de kaartlaag van de multi-niveau getegelde kaart associeert met het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart op te slaan; en waarbij de gebruikersaanvraagmodule verder ingericht is om: - uit de database zoominformatie die de kaartlaag van de multi-niveau getegelde kaart associeert met het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart op te halen; en - in de stap van het bepalen, gebaseerd op de viewport van de multi-niveau getegelde kaart, van een weergavezoomniveau van de multi-niveau getegelde kaart, het weergavezoomniveau verder bepaald is gebaseerd op het maximumzoomniveau voor de kaartlaag van de multi-niveau getegelde kaart.17. Geographic information system according to any one of claims 14-16, further comprising a maximum zoom level determination module, arranged to: - determine a maximum size of the vector images to be displayed in the map layer of the multi-level tiled map; - based on the maximum size of the vector images to be displayed in the map layer of the multi-level tiled map, determine 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 multi-level tiled map; and - in 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 is further determined based on the maximum zoom level for the map layer of the multi-level tiled map card. 18. Geografisch informatiesysteem volgens een van de conclusies 14-17, waarbij de gebruikersaanvraagmodule verder ingericht is om: - een willekeurig getal, bij voorkeur een unieke identifier, bijvoorbeeld een universeel unieke identifier of een globaal unieke identifier, te genereren; en - in de stap van het opslaan van de vectordata en locatie-informatie die de tegel in het zoomniveau van de multi-niveau getegelde kaart waarin het centrumpunt van de vectorafbeelding is gelokaliseerd associeert met de vectordata, het willekeurig getal in de locatie-informatie wordt geïncludeerd, waarbij de locatie-informatie die is opgeslagen in de database is gesorteerd gebaseerd op het willekeurig getal; - in de stap van het ophalen, gebaseerd op de opgehaalde locatie-informatie, vanuit de database, van de vectordata geassocieerd met de viewporttegel, vectordata die een bereik ij van vectorafbeeldingen om weer te geven in de viewport van de multi-niveau getegelde kaart word opgehaald, waarbij 0 <=i <= n en i <= j <= n, waarbij n een totaal aantal vectorafbeeldingen om weer te geven in de viewport van de multi-niveau getegelde kaart is.18. Geographic information system according to any of the claims 14-17, wherein the user request module is further arranged to: - generate a random number, preferably a unique identifier, for example a universally unique identifier or a globally unique identifier; 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 in the location information is included, where 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 that becomes a range of vector images to be displayed in the viewport of the multi-level tiled map retrieved, where 0 <=i <= n and i <= j <= n, where n is a total number of vector images to display in the viewport of the multi-level tiled map. 19. Computerprogramma omvattende instructies die, wanneer het computerprogramma wordt uitgevoerd door een computer, de computer de stappen van de werkwijze volgens een van de conclusies 1-13 doet uitvoeren.19. Computer program comprising instructions that, when the computer program is executed by a computer, causes the computer to perform the steps of the method according to any of the claims 1-13.
NL2032508A 2022-07-15 2022-07-15 Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map NL2032508B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
NL2032508A NL2032508B1 (en) 2022-07-15 2022-07-15 Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map
PCT/EP2023/069418 WO2024013274A1 (en) 2022-07-15 2023-07-13 Method for managing vector data to be displayed on a multi-level tiled map

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL2032508A NL2032508B1 (en) 2022-07-15 2022-07-15 Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map

Publications (1)

Publication Number Publication Date
NL2032508B1 true NL2032508B1 (en) 2024-01-25

Family

ID=87202089

Family Applications (1)

Application Number Title Priority Date Filing Date
NL2032508A NL2032508B1 (en) 2022-07-15 2022-07-15 Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map

Country Status (2)

Country Link
NL (1) NL2032508B1 (en)
WO (1) WO2024013274A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150279071A1 (en) * 2014-03-28 2015-10-01 Smart Technologies Ulc Method for partitioning, managing and displaying a collaboration space and interactive input system employing same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150279071A1 (en) * 2014-03-28 2015-10-01 Smart Technologies Ulc Method for partitioning, managing and displaying a collaboration space and interactive input system employing same

Also Published As

Publication number Publication date
WO2024013274A1 (en) 2024-01-18

Similar Documents

Publication Publication Date Title
CN110347769B (en) Processing method, device, equipment and storage medium for multi-level map tiles
CN108664619B (en) Primitive storage and scheduling method for mass line-drawing topographic map of tile-like technology
CN108647336B (en) Method for processing vector diagram by using key scale and tile-like technology
US8650220B2 (en) System and method for storing and retrieving geospatial data
US9417777B2 (en) Enabling quick display transitions between indoor and outdoor map data
US20140310655A1 (en) Visual representation of map navigation history
CN107423445A (en) A kind of map data processing method, device and storage medium
CN110276820B (en) GIS model optimization method and system based on LOD organization and scheduling method
CN102722885B (en) Method for accelerating three-dimensional graphic display
CN111354084B (en) Network geographic information service system based on three-dimensional model tiles
DE19549306A1 (en) Method and device for the visual representation of spatial data
CN102117500A (en) Three-dimensional modeling method and system
CN106599025B (en) Vector data slicing method and system based on data exchange format
CN109657172A (en) Preview picture method, apparatus, equipment and storage medium
CN105022818A (en) Tile map storing and loading method
DE202013012486U1 (en) User interface for orienting a camera view towards surfaces within a 3-D map and facilities that incorporate the user interface
CN113066157A (en) Data grading request rendering method and system based on CIM platform
EP2672454A2 (en) Terrain-based virtual camera tilting and applications thereof
US11158124B2 (en) Method of providing 3D GIS web service
CN107992588B (en) Terrain display system based on elevation tile data
Ioannidis et al. A multi-purpose cultural heritage data platform for 4D visualization and interactive information services
NL2032508B1 (en) Method for Managing Vector Data to be Displayed on a Multi-Level Tiled Map
Glander et al. Cell-based generalization of 3D building groups with outlier management
CN111966853B (en) Management method of remote sensing image
CN113495935A (en) Terrain slicing method and system based on irregular triangularization mesh generation