Abstract:
Some embodiments provide a method for a mapping service. The method receives a set of road segments for a map region. For each road segment in the set, the method generates a geometry that includes a set of vertices that define a boundary for the road segment. The geometries are included as part of a map tile for the map region. The map tiles are for downloading to user devices that render map presentations using the geometries. For several of the vertices, the method stores data with the vertices that specifies for the device at least one aspect of rendering the road for the map presentation.
Abstract:
A method is provided that utilizes a parallel processing system to determine whether different geometries intersect each tile in a map hierarchy. The method receives a description of a geometry and an identification of a tile in a tile tree. The method utilizes an available processing unit to determine whether the geometry intersects the tile. When the geometry intersects the tile and the tile has child tiles, the method stores several task descriptions that can be assigned to any processing units in the parallel processing system. Each task description includes the description of the portion of the geometry that overlaps the tile and an identification of one of the child tiles of the tile. The method then assigns each of the tasks to an available processing unit to continue down the tree hierarchy to determine whether each child tile intersects a portion of the geometry.
Abstract:
Some embodiments provide a method for generating road data. The method receives data regarding several road segments and several junctions for a map region. The road segments include a first road segment and a second road segment that intersect at a particular junction. The method determines whether the first road segment and the second road segment are separate segments of a same road. When the first and second road segments are separate segments of the same road, the method defines an aggregate road that references the first and second road segments. In some embodiments, the method determines whether the first and second road segments are separate segments of the same road by using location data and road properties of the first and second road segments. In some embodiments, the aggregate road is stored as an ordered list of road segments that link together at junctions.
Abstract:
Some embodiments provide a method for a mapping service. For a set of road segments that intersect at a junction in a map region, the method generates an initial set of geometries for use in generating downloadable map information for the map region. For each corner formed by the geometries at the junction, the method determines whether to perform a smoothing operation. When a particular corner meets a set of criteria, the method modifies the geometries of at least one road segment to smooth the corner.
Abstract:
Some embodiments provide a method for a mapping service. For a set of road segments that intersect at a junction in a map region, the method generates an initial set of geometries for use in generating downloadable map information for the map region. For each corner formed by the geometries at the junction, the method determines whether to perform a smoothing operation. When a particular corner meets a set of criteria, the method modifies the geometries of at least one road segment to smooth the corner.
Abstract:
Some embodiments provide a method for a mapping service. The method receives a set of road segments for a map region. For each road segment in the set, the method generates a geometry that includes a set of vertices that define a boundary for the road segment. The geometries are included as part of a map tile for the map region. The map tiles are for downloading to user devices that render map presentations using the geometries. For several of the vertices, the method stores data with the vertices that specifies for the device at least one aspect of rendering the road for the map presentation.
Abstract:
A process is provided that reduces the amount of data for a map tile that could not be displayed separately on the scale of that tile. The process generates an equivalent of the road data by rasterizing the vectors representing road segments lying within a tile and generating a connectivity mask that keeps track of which pixels are connected to which other pixels along the vectors. The process constructs an undirected graph. Each “on” pixel of the undirected graph represents a vertex and the vertices are connected by edges generated from the connectivity graph, but without a set direction. The process traces the undirected graph to generate chains of connected road segments and takes the chains and simplifies them in order to reduce the amount of data that must be stored and transmitted for the tile in order to produce all the visible roads of the tile at that scale.
Abstract:
Some embodiments provide a method for a mapping service. The method generates an initial set of geometries for a road graph defined for a map region. The road graph includes several road segments and junctions aggregated into roads. The method identifies an overlap between a first geometry of a first road segment and a second geometry of a second road segment. The first road segment and the second road segment are parts of different roads and do not meet at a junction. The method automatically modifies at least one of the first and second geometries in order to prevent the first geometry and second geometry from overlapping. In some embodiments each geometry is defined by a set of vertices that specify its boundaries. The method of some embodiments automatically modifies the vertices of at least one of the first and second geometries.
Abstract:
A process is provided that reduces the amount of data for a map tile that could not be displayed separately on the scale of that tile. The process generates an equivalent of the road data by rasterizing the vectors representing road segments lying within a tile and generating a connectivity mask that keeps track of which pixels are connected to which other pixels along the vectors. The process constructs an undirected graph. Each “on” pixel of the undirected graph represents a vertex and the vertices are connected by edges generated from the connectivity graph, but without a set direction. The process traces the undirected graph to generate chains of connected road segments and takes the chains and simplifies them in order to reduce the amount of data that must be stored and transmitted for the tile in order to produce all the visible roads of the tile at that scale.
Abstract:
Some embodiments provide a method for a mapping service. The method generates an initial set of geometries for a road graph defined for a map region. The road graph includes several road segments and junctions aggregated into roads. The method identifies an overlap between a first geometry of a first road segment and a second geometry of a second road segment. The first road segment and the second road segment are parts of different roads and do not meet at a junction. The method automatically modifies at least one of the first and second geometries in order to prevent the first geometry and second geometry from overlapping. In some embodiments each geometry is defined by a set of vertices that specify its boundaries. The method of some embodiments automatically modifies the vertices of at least one of the first and second geometries.