So we break the map into tiles a tile is a square

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: single entity. So we break the map into tiles. A tile is a square region of the map corresponding to the smallest unit we render at a time. The view that you display in a web browser is made of several tiles arranged in a 2d grid. A tile is defined by a tile extent which is a northern-most and a southern-most latitude, and a western-most and eastern-most longitude. We are making a major simplifying assumption in this assignment, that latitude and longitude are a rectangular coordinate system. This will result in some rendering inaccuracy, but for the latitudes in the USA, this is acceptable. The tiles are arranged in a rectangular grid across a mappable range. The mappable range is the entire area we wish to render (e.g., the whole USA for your final production run, or maybe a few square miles for testing). A mappable range is a square (assuming rectilinear latitude/longitude) defined by the latitudes and longitudes of its edges. We break the mappable range into a 2D array of tiles. Within this 2D array each tile has an ID. A tile ID is an (x, y) index into the 2D array that spans the mappable range. So if we had 9 tiles across some mappable range, their tile IDs may be: (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) We will render tiles using an algorithm similar to the one described in Barry's lecture in class. The mappers will read all the features in our map data, and emit them to the reducers responsible for rendering them onto tiles. We will precalculate which tile(s) are responsible for which features, and the mappers will send the features to the reducer(s) for those tile(s). In the reducer, we will then render each output image. We do not want to use a separate reducer for each tile; this is far too many reduce processes. Instead, each reducer will be responsible for rendering a tile set. A tile set is simply a set of tiles which will be rendered by a single reducer. These tiles do not necessarily need to be adjacent to one another (although, since a feature like a long road segment may be rendered on multiple tiles, it would be nice if we could minimize the amount of data motion required between mappers and...
View Full Document

Ask a homework question - tutors are online