covered=yes). On low
* zoom levels all water originates from Natural Earth. To get a more correct display of the south pole you should
* also style the covering ice shelves over the water. On higher zoom levels water polygons from OpenStreetMapData are used. The polygons are split into many smaller
* polygons to improve rendering performance. This however can lead to less rendering options in clients since these
* boundaries show up. So you might not be able to use border styling for ocean water features.
*
* Generated from water.yaml
*/
public interface Water extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "water";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the water layer. */
final class Fields {
/**
* All water polygons from OpenStreetMapData have the class
* ocean. Water bodies with the waterway=riverbank
* or water=river tag are classified
* as river. Wet and dry docks tagged waterway=dock
* are classified as a dock. All other water bodies are classified as lake.
*
* allowed values: *
1 if it is an intermittent
* water polygon.
* * allowed values: *
* allowed values: *
river class only, in z12
* there is also canal generated, starting z13 there is no generalization according to class
* field applied. Waterways do not have a subclass field.
*
* Generated from waterway.yaml
*/
public interface Waterway extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "waterway";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the waterway layer. */
final class Fields {
/**
* The OSM name value of the waterway. The
* name field may be empty for NaturalEarth data or at lower zoom levels.
*/
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* The original value of the waterway
* tag.
*
* allowed values: *
* allowed values: *
1 if it is an intermittent
* waterway.
* * allowed values: *
class=wood) and grass (class=grass) areas.
* * Generated from landcover.yaml */ public interface Landcover extends Layer { double BUFFER_SIZE = 4.0; String LAYER_NAME = "landcover"; @Override default String name() { return LAYER_NAME; } /** Attribute names for map elements in the landcover layer. */ final class Fields { /** * Use the class to assign natural colors for landcover. *
* allowed values: *
natural, landuse, leisure, or wetland tag.
* * allowed values: *
landuse tags.
*
* Generated from landuse.yaml
*/
public interface Landuse extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "landuse";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the landuse layer. */
final class Fields {
/**
* Use the class to assign special colors to areas. Original value of either the landuse, amenity, leisure, tourism, place or waterway tag.
*
* allowed values: *
* Generated from mountain_peak.yaml
*/
public interface MountainPeak extends Layer {
double BUFFER_SIZE = 64.0;
String LAYER_NAME = "mountain_peak";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the mountain_peak layer. */
final class Fields {
/** The OSM name value of the peak. */
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* Use the class to differentiate between mountain peak and volcano.
*
* allowed values: *
ele) in meters. */
public static final String ELE = "ele";
/** Elevation (ele) in feet. */
public static final String ELE_FT = "ele_ft";
/**
* Value 1 for peaks in location where feet is used as customary unit (USA).
* * allowed values: *
boundary=national_park,
* boundary=protected_area,
* or leisure=nature_reserve.
*
* Generated from park.yaml
*/
public interface Park extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "park";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the park layer. */
final class Fields {
/**
* Use the class to differentiate between different parks. The class for
* boundary=protected_area parks is the lower-case of the protection_title
* value with blanks replaced by _. national_park is the class of
* protection_title=National Park and boundary=national_park.
* nature_reserve is the class of protection_title=Nature Reserve and
* leisure=nature_reserve. The class for other protection_title
* values is similarly assigned.
*/
public static final String CLASS = "class";
/**
* The OSM name value of the park (point
* features only).
*/
public static final String NAME = "name";
/** English name name:en if available, otherwise name (point features only). */
public static final String NAME_EN = "name_en";
/**
* German name name:de if available, otherwise name or name:en (point
* features only).
*/
public static final String NAME_DE = "name_de";
/** Rank of the park within one tile, starting at 1 that is the most important park (point features only). */
public static final String RANK = "rank";
}
/** Attribute values for map elements in the park layer. */
final class FieldValues {
}
/** Complex mappings to generate attribute values from OSM element tags in the park layer. */
final class FieldMappings {
}
}
/**
* Contains administrative boundaries as linestrings. Until z4 Natural
* Earth data is used after which OSM boundaries (boundary=administrative)
* are present from z5 to z14 (also for maritime boundaries with admin_level <= 2 at z4). OSM data
* contains several admin_level
* but for most styles it makes sense to just style admin_level=2 and admin_level=4.
*
* Generated from boundary.yaml
*/
public interface Boundary extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "boundary";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the boundary layer. */
final class Fields {
/**
* OSM admin_level
* indicating the level of importance of this boundary. The admin_level corresponds to the lowest
* admin_level the line participates in. At low zoom levels the Natural Earth boundaries are mapped
* to the equivalent admin levels.
*/
public static final String ADMIN_LEVEL = "admin_level";
/** State name on the left of the border. For country boundaries only (admin_level = 2). */
public static final String ADM0_L = "adm0_l";
/** State name on the right of the border. For country boundaries only (admin_level = 2). */
public static final String ADM0_R = "adm0_r";
/**
* Mark with 1 if the border is disputed.
*
* allowed values: *
admin_level = 2). Value examples from Asian OSM pbf extract
* * allowed values: *
admin_level =
* 2).
*/
public static final String CLAIMED_BY = "claimed_by";
/**
* Mark with 1 if it is a maritime border.
* * allowed values: *
* Generated from aeroway.yaml
*/
public interface Aeroway extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "aeroway";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the aeroway layer. */
final class Fields {
/** The OSM ref tag of the runway/taxiway. */
public static final String REF = "ref";
/**
* The original value of aeroway or
* area:aeroway tag.
*
* allowed values: *
transportation layer also contains polygons for
* features like plazas.
*
* Generated from transportation.yaml
*/
public interface Transportation extends Layer {
double BUFFER_SIZE = 4.0;
String LAYER_NAME = "transportation";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the transportation layer. */
final class Fields {
/**
* Distinguish between more and less important roads or railways and roads under construction. Class is derived
* from the value of the highway, construction, railway, aerialway, route tag (for shipping ways), or man_made.
*
* allowed values: *
railway, highway (for paths), or public_transport (for
* platforms) tag.
* * allowed values: *
network
* tag of the road. See more info about us-
* , ca-transcanada, or
* gb- .
*/
public static final String NETWORK = "network";
/**
* Mark whether way is a tunnel or bridge.
* * allowed values: *
1 whether way is a oneway in the direction of the way, with -1 whether way
* is a oneway in the opposite direction of the way or not a oneway with 0.
* * allowed values: *
1 whether way is a ramp (link or steps) or not with 0.
* * allowed values: *
service tag.
* * allowed values: *
access
* tag are no and private, which resolve to no.
* * allowed values: *
toll
* tag.
* * allowed values: *
expressway
* tag.
* * allowed values: *
layer tag. */
public static final String LAYER = "layer";
/**
* Experimental feature! Filled only for steps and footways. Original value of the level tag.
*/
public static final String LEVEL = "level";
/**
* Experimental feature! Filled only for steps and footways. Original value of the indoor tag.
* * allowed values: *
bicycle tag
* (highways only).
*/
public static final String BICYCLE = "bicycle";
/**
* Original value of the foot tag (highways
* only).
*/
public static final String FOOT = "foot";
/**
* Original value of the horse tag
* (highways only).
*/
public static final String HORSE = "horse";
/**
* Original value of the mtb:scale tag
* (highways only).
*/
public static final String MTB_SCALE = "mtb_scale";
/**
* Values of surface tag devided into 2
* groups paved (paved, asphalt, cobblestone, concrete, concrete:lanes, concrete:plates, metal,
* paving_stones, sett, unhewn_cobblestone, wood) and unpaved (unpaved, compacted, dirt, earth,
* fine_gravel, grass, grass_paver, gravel, gravel_turf, ground, ice, mud, pebblestone, salt, sand, snow,
* woodchips).
* * allowed values: *
building= ). The buildings are not yet
* ready for 3D rendering support and any help to improve this is welcomed.
* * Generated from building.yaml */ public interface Building extends Layer { double BUFFER_SIZE = 4.0; String LAYER_NAME = "building"; @Override default String name() { return LAYER_NAME; } /** Attribute names for map elements in the building layer. */ final class Fields { /** * An approximated height from levels and height of the building or building:part after the method of Paul Norman * in OSM Clear. For future 3D rendering of buildings. */ public static final String RENDER_HEIGHT = "render_height"; /** * An approximated height from levels and height of the bottom of the building or building:part after the method * of Paul Norman in OSM Clear. For future 3D rendering of * buildings. */ public static final String RENDER_MIN_HEIGHT = "render_min_height"; /** Colour */ public static final String COLOUR = "colour"; /** * If True, building (part) should not be rendered in 3D. Currently, building * outlines are marked as hide_3d. */ public static final String HIDE_3D = "hide_3d"; } /** Attribute values for map elements in the building layer. */ final class FieldValues { } /** Complex mappings to generate attribute values from OSM element tags in the building layer. */ final class FieldMappings { } } /** * Lake center lines for labelling lake bodies. This is based of the osm-lakelines * project which derives nice centerlines from OSM water bodies. Only the most important lakes contain labels. *
* Generated from water_name.yaml
*/
public interface WaterName extends Layer {
double BUFFER_SIZE = 256.0;
String LAYER_NAME = "water_name";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the water_name layer. */
final class Fields {
/** The OSM name value of the water body. */
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* At the moment only lake since no ocean parts are labelled. Reserved for future use.
*
* allowed values: *
1 if it is an intermittent
* lake.
* * allowed values: *
name= and are long enough
* to place text upon appear. The OSM roads are stitched together if they contain the same name to have better label
* placement than having many small linestrings. For motorways you should use the ref field to label them
* while for other roads you should use name.
*
* Generated from transportation_name.yaml
*/
public interface TransportationName extends Layer {
double BUFFER_SIZE = 8.0;
String LAYER_NAME = "transportation_name";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the transportation_name layer. */
final class Fields {
/**
* The OSM name value
* of the highway.
*/
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* The OSM ref tag of the motorway or its
* network.
*/
public static final String REF = "ref";
/** Length of the ref field. Useful for having a shield icon as background for labeling motorways. */
public static final String REF_LENGTH = "ref_length";
/**
* The network type derived mainly from network
* tag of the road. See more info about us-
* , ca-transcanada, or
* gb- .
*
* allowed values: *
* allowed values: *
highway
* (for paths), and "junction" for motorway
* junctions.
* * allowed values: *
* allowed values: *
level tag.
*/
public static final String LEVEL = "level";
/**
* Experimental feature! Filled only for steps and footways. Original value of layer tag.
*/
public static final String LAYER = "layer";
/**
* Experimental feature! Filled only for steps and footways. Original value of indoor tag.
* * allowed values: *
* Generated from place.yaml
*/
public interface Place extends Layer {
double BUFFER_SIZE = 256.0;
String LAYER_NAME = "place";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the place layer. */
final class Fields {
/** The OSM name value of the POI. */
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* The capital field marks the admin_level
* of the boundary the place is a capital of.
*
* allowed values: *
place tag.
* Distinguish between continents, countries, states and places like settlements or smaller entities. Use
* class to separately style the different places and build a text hierarchy according to their
* importance.
* * allowed values: *
class=country. Original value of the country_code_iso3166_1_alpha_2
* tag.
*/
public static final String ISO_A2 = "iso_a2";
/**
* Countries, states and the most important cities all have a rank to boost their importance on
* the map. The rank field for counries and states ranges from 1 to 6
* while the rank field for cities ranges from 1 to 10 for the most
* important cities and continues from 10 serially based on the local importance of the city (derived
* from population and city class). You can use the rank to limit density of labels or improve
* the text hierarchy. The rank value is a combination of the Natural Earth scalerank,
* labelrank and datarank values for countries and states and for cities consists out
* of
* a shifted Natural Earth scalerank combined with a local rank within a grid for cities that do not
* have a Natural Earth scalerank.
*/
public static final String RANK = "rank";
}
/** Attribute values for map elements in the place layer. */
final class FieldValues {
public static final String CLASS_CONTINENT = "continent";
public static final String CLASS_COUNTRY = "country";
public static final String CLASS_STATE = "state";
public static final String CLASS_PROVINCE = "province";
public static final String CLASS_CITY = "city";
public static final String CLASS_TOWN = "town";
public static final String CLASS_VILLAGE = "village";
public static final String CLASS_HAMLET = "hamlet";
public static final String CLASS_SUBURB = "suburb";
public static final String CLASS_QUARTER = "quarter";
public static final String CLASS_NEIGHBOURHOOD = "neighbourhood";
public static final String CLASS_ISOLATED_DWELLING = "isolated_dwelling";
public static final Setaddr:housenumber tag useful for labelling housenumbers on
* a map. This adds significant size to z14. For buildings the centroid of the building is used as
* housenumber.
*
* Generated from housenumber.yaml
*/
public interface Housenumber extends Layer {
double BUFFER_SIZE = 8.0;
String LAYER_NAME = "housenumber";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the housenumber layer. */
final class Fields {
/** Value of the addr:housenumber tag. */
public static final String HOUSENUMBER = "housenumber";
}
/** Attribute values for map elements in the housenumber layer. */
final class FieldValues {
}
/** Complex mappings to generate attribute values from OSM element tags in the housenumber layer. */
final class FieldMappings {
}
}
/**
* Points of interests containing a of a variety
* of OpenStreetMap tags. Mostly contains amenities, sport, shop and tourist POIs.
*
* Generated from poi.yaml
*/
public interface Poi extends Layer {
double BUFFER_SIZE = 64.0;
String LAYER_NAME = "poi";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the poi layer. */
final class Fields {
/** The OSM name value of the POI. */
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* More general classes of POIs. If there is no more general class for the subclass this
* field will contain the same value as subclass. But for example for schools you only need to style
* the class school to filter the subclasses school and kindergarten. Or
* use the class shop to style all shops.
*
* allowed values: *
amenity,
* barrier, historic, information, landuse, leisure, railway, shop, sport, station, religion, tourism, aerialway, building, highway or waterway tag. Use this to do more
* precise styling.
*/
public static final String SUBCLASS = "subclass";
/**
* The POIs are ranked ascending according to their importance within a grid. The rank value shows
* the local relative importance of a POI within it's cell in the grid. This can be used to reduce label density
* at z14. Since all POIs already need to be contained at z14 you can use less than
* rank=10 epxression to limit POIs. At some point like z17 you can show all POIs.
*/
public static final String RANK = "rank";
/**
* Experimental feature! Indicates main platform of public transport stops (buses, trams, and subways). Grouping
* of platforms is implemented using uic_ref
* tag that is not used worldwide.
* * allowed values: *
level tag. */
public static final String LEVEL = "level";
/** Original value of layer tag. */
public static final String LAYER = "layer";
/**
* Original value of indoor tag.
* * allowed values: *
* Generated from aerodrome_label.yaml
*/
public interface AerodromeLabel extends Layer {
double BUFFER_SIZE = 64.0;
String LAYER_NAME = "aerodrome_label";
@Override
default String name() {
return LAYER_NAME;
}
/** Attribute names for map elements in the aerodrome_label layer. */
final class Fields {
/** The OSM name value of the aerodrome. */
public static final String NAME = "name";
/** English name name:en if available, otherwise name. */
public static final String NAME_EN = "name_en";
/** German name name:de if available, otherwise name or name:en. */
public static final String NAME_DE = "name_de";
/**
* Distinguish between more and less important aerodromes. Class is derived from the value of aerodrome and
* aerodrome:type tags.
*
* allowed values: *
ele) in meters. */
public static final String ELE = "ele";
/** Elevation (ele) in feets. */
public static final String ELE_FT = "ele_ft";
}
/** Attribute values for map elements in the aerodrome_label layer. */
final class FieldValues {
public static final String CLASS_INTERNATIONAL = "international";
public static final String CLASS_PUBLIC = "public";
public static final String CLASS_REGIONAL = "regional";
public static final String CLASS_MILITARY = "military";
public static final String CLASS_PRIVATE = "private";
public static final String CLASS_OTHER = "other";
public static final Set