package mil.nga.giat.geowave.cli.osm.operations.options;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.regex.Pattern;
import com.beust.jcommander.IStringConverter;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.ParametersDelegate;
import mil.nga.giat.geowave.cli.osm.accumulo.osmschema.Constants;
import mil.nga.giat.geowave.core.store.operations.remote.options.VisibilityOptions;
import mil.nga.giat.geowave.datastore.accumulo.util.AccumuloUtils;
public class OSMIngestCommandArgs
{
private static final String separator = "|||";
@ParametersDelegate
private final VisibilityOptions visibilityOptions = new VisibilityOptions();
@Parameter(names = {
"-jn",
"--jobName"
}, required = false, description = "Name of mapreduce job")
private String jobName = "Ingest (" + System.getProperty("user.name") + ")";
@Parameter(names = {
"-t",
"--type"
}, required = true, converter = UpperCaseConverter.class, description = "Mapper type - one of node, way, or relation")
private String mapperType;
@Parameter(names = {
"-m",
"--mappingFile"
}, required = false, description = "Mapping file, imposm3 form")
private String mappingFile = null;
@Parameter(names = {
"--table"
}, required = false, description = "OSM Table name in GeoWave")
private String osmTableName = "OSM";
private String hdfsBasePath;
private String nameNode;
private String osmNamespace;
public OSMIngestCommandArgs() {}
public VisibilityOptions getVisibilityOptions() {
return visibilityOptions;
}
public String getJobName() {
return jobName;
}
public void setJobName(
String jobName ) {
this.jobName = jobName;
}
public String getMapperType() {
return mapperType;
}
public void setMapperType(
String mapperType ) {
this.mapperType = mapperType;
}
public String getMappingFile() {
return mappingFile;
}
public void setMappingFile(
String mappingFile ) {
this.mappingFile = mappingFile;
}
public String getHdfsBasePath() {
return hdfsBasePath;
}
public void setHdfsBasePath(
String hdfsBasePath ) {
this.hdfsBasePath = hdfsBasePath;
}
public String getNameNode() {
return nameNode;
}
public void setNameNode(
String nameNode ) {
this.nameNode = nameNode;
}
public String getOsmNamespace() {
return osmNamespace;
}
public void setOsmNamespace(
String osmNamespace ) {
this.osmNamespace = osmNamespace;
}
public String getOsmTableName() {
return osmTableName;
}
public void setOsmTableName(
String osmTableName ) {
this.osmTableName = osmTableName;
}
public String getQualifiedTableName() {
return AccumuloUtils.getQualifiedTableName(
osmNamespace,
osmTableName);
}
public String getNodesBasePath() {
return hdfsBasePath + "/nodes";
}
public String getWaysBasePath() {
return hdfsBasePath + "/ways";
}
public String getRelationsBasePath() {
return hdfsBasePath + "/relations";
}
public void processMappingFile()
throws IOException {
if (mappingFile != null) {
File f = new File(
mappingFile);
if (f.exists()) {
mappingContents = new String(
Files.readAllBytes(Paths.get(mappingFile)),
Constants.CHARSET);
}
}
}
public void setMappingContents(
String content ) {
mappingContents = content;
}
public String getMappingContents() {
return mappingContents;
}
public String serializeToString() {
StringBuilder sb = new StringBuilder();
sb.append(
osmNamespace).append(
separator).append(
visibilityOptions.getVisibility()).append(
separator).append(
hdfsBasePath).append(
separator).append(
jobName).append(
separator).append(
mapperType);
return sb.toString();
}
public void deserializeFromString(
String ser ) {
String[] settings = ser.split(Pattern.quote(separator));
osmNamespace = settings[0];
visibilityOptions.setVisibility(settings[1]);
hdfsBasePath = settings[2];
jobName = settings[3];
mapperType = settings[4];
}
// This the imposm3 "test_mapping.json" file
private String mappingContents = "{\n"
+ " \"generalized_tables\": {\n"
+ " \"waterareas_gen1\": {\n"
+ " \"source\": \"waterareas\",\n"
+ " \"sql_filter\": \"ST_Area(geometry)>50000.000000\",\n"
+ " \"tolerance\": 50.0\n"
+ " },\n"
+ " \"waterareas_gen0\": {\n"
+ " \"source\": \"waterareas_gen1\",\n"
+ " \"sql_filter\": \"ST_Area(geometry)>500000.000000\",\n"
+ " \"tolerance\": 200.0\n"
+ " },\n"
+ " \"roads_gen0\": {\n"
+ " \"source\": \"roads_gen1\",\n"
+ " \"sql_filter\": null,\n"
+ " \"tolerance\": 200.0\n"
+ " },\n"
+ " \"roads_gen1\": {\n"
+ " \"source\": \"roads\",\n"
+ " \"sql_filter\": \"type IN ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link') OR class IN('railway')\",\n"
+ " \"tolerance\": 50.0\n" + " },\n" + " \"waterways_gen0\": {\n"
+ " \"source\": \"waterways_gen1\",\n" + " \"sql_filter\": null,\n"
+ " \"tolerance\": 200\n" + " },\n" + " \"waterways_gen1\": {\n"
+ " \"source\": \"waterways\",\n" + " \"sql_filter\": null,\n" + " \"tolerance\": 50.0\n"
+ " },\n" + " \"landusages_gen1\": {\n" + " \"source\": \"landusages\",\n"
+ " \"sql_filter\": \"ST_Area(geometry)>50000.000000\",\n" + " \"tolerance\": 50.0\n"
+ " },\n" + " \"landusages_gen0\": {\n" + " \"source\": \"landusages_gen1\",\n"
+ " \"sql_filter\": \"ST_Area(geometry)>500000.000000\",\n" + " \"tolerance\": 200.0\n"
+ " }\n" + " },\n" + " \"tables\": {\n" + " \"landusages\": {\n" + " \"fields\": [\n"
+ " {\n" + " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n"
+ " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"validated_geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"pseudoarea\",\n"
+ " \"name\": \"area\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"args\": {\n" + " \"ranks\": [\n" + " \"pedestrian\",\n"
+ " \"footway\",\n" + " \"playground\",\n" + " \"park\",\n"
+ " \"forest\",\n" + " \"cemetery\",\n" + " \"farmyard\",\n"
+ " \"farm\",\n" + " \"farmland\",\n" + " \"wood\",\n"
+ " \"meadow\",\n" + " \"grass\",\n" + " \"wetland\",\n"
+ " \"village_green\",\n" + " \"recreation_ground\",\n"
+ " \"garden\",\n" + " \"sports_centre\",\n" + " \"pitch\",\n"
+ " \"common\",\n" + " \"allotments\",\n" + " \"golf_course\",\n"
+ " \"university\",\n" + " \"school\",\n" + " \"college\",\n"
+ " \"library\",\n" + " \"baracks\",\n" + " \"fuel\",\n"
+ " \"parking\",\n" + " \"nature_reserve\",\n" + " \"cinema\",\n"
+ " \"theatre\",\n" + " \"place_of_worship\",\n"
+ " \"hospital\",\n" + " \"scrub\",\n" + " \"orchard\",\n"
+ " \"vineyard\",\n" + " \"zoo\",\n" + " \"quarry\",\n"
+ " \"residential\",\n" + " \"retail\",\n" + " \"commercial\",\n"
+ " \"industrial\",\n" + " \"railway\",\n" + " \"heath\",\n"
+ " \"island\",\n" + " \"land\"\n" + " ]\n" + " },\n"
+ " \"type\": \"zorder\",\n" + " \"name\": \"z_order\",\n"
+ " \"key\": \"z_order\"\n" + " }\n" + " ],\n" + " \"type\": \"polygon\",\n"
+ " \"mapping\": {\n" + " \"amenity\": [\n" + " \"university\",\n"
+ " \"school\",\n" + " \"college\",\n" + " \"library\",\n"
+ " \"fuel\",\n" + " \"parking\",\n" + " \"cinema\",\n"
+ " \"theatre\",\n" + " \"place_of_worship\",\n" + " \"hospital\"\n"
+ " ],\n" + " \"barrier\": [\n" + " \"hedge\"\n" + " ],\n"
+ " \"leisure\": [\n" + " \"park\",\n" + " \"garden\",\n"
+ " \"playground\",\n" + " \"golf_course\",\n" + " \"sports_centre\",\n"
+ " \"pitch\",\n" + " \"stadium\",\n" + " \"common\",\n"
+ " \"nature_reserve\"\n" + " ],\n" + " \"tourism\": [\n" + " \"zoo\"\n"
+ " ],\n" + " \"natural\": [\n" + " \"wood\",\n" + " \"land\",\n"
+ " \"scrub\",\n" + " \"wetland\",\n" + " \"heath\"\n" + " ],\n"
+ " \"man_made\": [\n" + " \"pier\"\n" + " ],\n" + " \"aeroway\": [\n"
+ " \"runway\",\n" + " \"taxiway\"\n" + " ],\n" + " \"place\": [\n"
+ " \"island\"\n" + " ],\n" + " \"military\": [\n" + " \"barracks\"\n"
+ " ],\n" + " \"landuse\": [\n" + " \"park\",\n" + " \"forest\",\n"
+ " \"residential\",\n" + " \"retail\",\n" + " \"commercial\",\n"
+ " \"industrial\",\n" + " \"railway\",\n" + " \"cemetery\",\n"
+ " \"grass\",\n" + " \"farmyard\",\n" + " \"farm\",\n"
+ " \"farmland\",\n" + " \"orchard\",\n" + " \"vineyard\",\n"
+ " \"wood\",\n" + " \"meadow\",\n" + " \"village_green\",\n"
+ " \"recreation_ground\",\n" + " \"allotments\",\n" + " \"quarry\"\n"
+ " ],\n" + " \"highway\": [\n" + " \"pedestrian\",\n" + " \"footway\"\n"
+ " ]\n" + " }\n" + " },\n" + " \"buildings\": {\n" + " \"fields\": [\n"
+ " {\n" + " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"geometry\",\n"
+ " \"name\": \"geometry\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"name\",\n" + " \"key\": \"name\"\n"
+ " },\n" + " {\n" + " \"type\": \"mapping_value\",\n"
+ " \"name\": \"type\",\n" + " \"key\": null\n" + " }\n" + " ],\n"
+ " \"type\": \"polygon\",\n" + " \"mapping\": {\n" + " \"building\": [\n"
+ " \"__any__\"\n" + " ]\n" + " }\n" + " },\n" + " \"places\": {\n"
+ " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"args\": {\n"
+ " \"ranks\": [\n" + " \"country\",\n" + " \"state\",\n"
+ " \"region\",\n" + " \"county\",\n" + " \"city\",\n"
+ " \"town\",\n" + " \"village\",\n" + " \"hamlet\",\n"
+ " \"suburb\",\n" + " \"locality\"\n" + " ]\n" + " },\n"
+ " \"type\": \"zorder\",\n" + " \"name\": \"z_order\",\n"
+ " \"key\": \"z_order\"\n" + " },\n" + " {\n"
+ " \"type\": \"integer\",\n" + " \"name\": \"population\",\n"
+ " \"key\": \"population\"\n" + " }\n" + " ],\n" + " \"type\": \"point\",\n"
+ " \"mapping\": {\n" + " \"place\": [\n" + " \"country\",\n"
+ " \"state\",\n" + " \"region\",\n" + " \"county\",\n"
+ " \"city\",\n" + " \"town\",\n" + " \"village\",\n"
+ " \"hamlet\",\n" + " \"suburb\",\n" + " \"locality\"\n" + " ]\n"
+ " }\n" + " },\n" + " \"transport_areas\": {\n" + " \"fields\": [\n" + " {\n"
+ " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n" + " \"key\": null\n"
+ " },\n" + " {\n" + " \"type\": \"geometry\",\n"
+ " \"name\": \"geometry\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"name\",\n" + " \"key\": \"name\"\n"
+ " },\n" + " {\n" + " \"type\": \"mapping_value\",\n"
+ " \"name\": \"type\",\n" + " \"key\": null\n" + " }\n" + " ],\n"
+ " \"type\": \"polygon\",\n" + " \"mapping\": {\n" + " \"railway\": [\n"
+ " \"station\",\n" + " \"platform\"\n" + " ],\n" + " \"aeroway\": [\n"
+ " \"aerodrome\",\n" + " \"terminal\",\n" + " \"helipad\",\n"
+ " \"apron\"\n" + " ]\n" + " }\n" + " },\n" + " \"admin\": {\n"
+ " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"integer\",\n"
+ " \"name\": \"admin_level\",\n" + " \"key\": \"admin_level\"\n" + " }\n"
+ " ],\n" + " \"type\": \"polygon\",\n" + " \"mapping\": {\n" + " \"boundary\": [\n"
+ " \"administrative\"\n" + " ]\n" + " }\n" + " },\n" + " \"aeroways\": {\n"
+ " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " }\n" + " ],\n" + " \"type\": \"linestring\",\n"
+ " \"mapping\": {\n" + " \"aeroway\": [\n" + " \"runway\",\n"
+ " \"taxiway\"\n" + " ]\n" + " }\n" + " },\n" + " \"waterways\": {\n"
+ " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " }\n" + " ],\n" + " \"type\": \"linestring\",\n"
+ " \"mapping\": {\n" + " \"waterway\": [\n" + " \"stream\",\n"
+ " \"river\",\n" + " \"canal\",\n" + " \"drain\",\n" + " \"ditch\"\n"
+ " ],\n" + " \"barrier\": [\n" + " \"ditch\"\n" + " ]\n" + " }\n"
+ " },\n" + " \"barrierways\": {\n" + " \"fields\": [\n" + " {\n"
+ " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n" + " \"key\": null\n"
+ " },\n" + " {\n" + " \"type\": \"geometry\",\n"
+ " \"name\": \"geometry\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"name\",\n" + " \"key\": \"name\"\n"
+ " },\n" + " {\n" + " \"type\": \"mapping_value\",\n"
+ " \"name\": \"type\",\n" + " \"key\": null\n" + " }\n" + " ],\n"
+ " \"type\": \"linestring\",\n" + " \"mapping\": {\n" + " \"barrier\": [\n"
+ " \"city_wall\",\n" + " \"fence\",\n" + " \"hedge\",\n"
+ " \"retaining_wall\",\n" + " \"wall\",\n" + " \"bollard\",\n"
+ " \"gate\",\n" + " \"spikes\",\n" + " \"lift_gate\",\n"
+ " \"kissing_gate\",\n" + " \"embankment\",\n" + " \"yes\",\n"
+ " \"wire_fence\"\n" + " ]\n" + " }\n" + " },\n" + " \"transport_points\": {\n"
+ " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"ref\",\n" + " \"key\": \"ref\"\n" + " }\n" + " ],\n"
+ " \"type\": \"point\",\n" + " \"mapping\": {\n" + " \"railway\": [\n"
+ " \"station\",\n" + " \"halt\",\n" + " \"tram_stop\",\n"
+ " \"crossing\",\n" + " \"level_crossing\",\n" + " \"subway_entrance\"\n"
+ " ],\n" + " \"aeroway\": [\n" + " \"aerodrome\",\n" + " \"terminal\",\n"
+ " \"helipad\",\n" + " \"gate\"\n" + " ],\n" + " \"highway\": [\n"
+ " \"motorway_junction\",\n" + " \"turning_circle\",\n" + " \"bus_stop\"\n"
+ " ]\n" + " }\n" + " },\n" + " \"amenities\": {\n" + " \"fields\": [\n"
+ " {\n" + " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"geometry\",\n"
+ " \"name\": \"geometry\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"name\",\n" + " \"key\": \"name\"\n"
+ " },\n" + " {\n" + " \"type\": \"mapping_value\",\n"
+ " \"name\": \"type\",\n" + " \"key\": null\n" + " }\n" + " ],\n"
+ " \"type\": \"point\",\n" + " \"mapping\": {\n" + " \"amenity\": [\n"
+ " \"university\",\n" + " \"school\",\n" + " \"library\",\n"
+ " \"fuel\",\n" + " \"hospital\",\n" + " \"fire_station\",\n"
+ " \"police\",\n" + " \"townhall\"\n" + " ]\n" + " }\n" + " },\n"
+ " \"barrierpoints\": {\n" + " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " }\n" + " ],\n" + " \"type\": \"point\",\n"
+ " \"mapping\": {\n" + " \"barrier\": [\n" + " \"block\",\n"
+ " \"bollard\",\n" + " \"cattle_grid\",\n" + " \"chain\",\n"
+ " \"cycle_barrier\",\n" + " \"entrance\",\n" + " \"horse_stile\",\n"
+ " \"gate\",\n" + " \"spikes\",\n" + " \"lift_gate\",\n"
+ " \"kissing_gate\",\n" + " \"fence\",\n" + " \"yes\",\n"
+ " \"wire_fence\",\n" + " \"toll_booth\",\n" + " \"stile\"\n" + " ]\n"
+ " }\n" + " },\n" + " \"housenumbers_interpolated\": {\n" + " \"fields\": [\n"
+ " {\n" + " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"geometry\",\n"
+ " \"name\": \"geometry\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"name\",\n" + " \"key\": \"name\"\n"
+ " },\n" + " {\n" + " \"type\": \"mapping_value\",\n"
+ " \"name\": \"type\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"addr:street\",\n"
+ " \"key\": \"addr:street\"\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"addr:postcode\",\n"
+ " \"key\": \"addr:postcode\"\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"addr:city\",\n"
+ " \"key\": \"addr:city\"\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"addr:inclusion\",\n"
+ " \"key\": \"addr:inclusion\"\n" + " }\n" + " ],\n"
+ " \"type\": \"linestring\",\n" + " \"mapping\": {\n" + " \"addr:interpolation\": [\n"
+ " \"__any__\"\n" + " ]\n" + " }\n" + " },\n" + " \"roads\": {\n"
+ " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"mapping_value\",\n"
+ " \"name\": \"type\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"name\",\n" + " \"key\": \"name\"\n"
+ " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name:de\",\n" + " \"key\": \"name:de\"\n" + " },\n"
+ " {\n" + " \"type\": \"string\",\n"
+ " \"#\": \" check for different name/keys\",\n" + " \"name\": \"name_en\",\n"
+ " \"key\": \"name:en\"\n" + " },\n" + " {\n"
+ " \"type\": \"boolint\",\n" + " \"name\": \"tunnel\",\n"
+ " \"key\": \"tunnel\"\n" + " },\n" + " {\n" + " \"type\": \"boolint\",\n"
+ " \"name\": \"bridge\",\n" + " \"key\": \"bridge\"\n" + " },\n" + " {\n"
+ " \"type\": \"direction\",\n" + " \"name\": \"oneway\",\n"
+ " \"key\": \"oneway\"\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"ref\",\n" + " \"key\": \"ref\"\n" + " },\n" + " {\n"
+ " \"type\": \"wayzorder\",\n" + " \"name\": \"z_order\",\n"
+ " \"key\": \"layer\"\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"access\",\n" + " \"key\": \"access\"\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"service\",\n"
+ " \"key\": \"service\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_key\",\n" + " \"name\": \"class\",\n"
+ " \"key\": null\n" + " }\n" + " ],\n" + " \"type\": \"linestring\",\n"
+ " \"filters\": {\n" + " \"exclude_tags\": [\n" + " [\"area\", \"yes\"]\n"
+ " ]\n" + " },\n" + " \"mappings\": {\n" + " \"railway\": {\n"
+ " \"mapping\": {\n" + " \"railway\": [\n" + " \"rail\",\n"
+ " \"tram\",\n" + " \"light_rail\",\n" + " \"subway\",\n"
+ " \"narrow_gauge\",\n" + " \"preserved\",\n" + " \"funicular\",\n"
+ " \"monorail\",\n" + " \"disused\"\n" + " ]\n" + " }\n"
+ " },\n" + " \"roads\": {\n" + " \"mapping\": {\n"
+ " \"man_made\": [\n" + " \"pier\",\n" + " \"groyne\"\n"
+ " ],\n" + " \"highway\": [\n" + " \"motorway\",\n"
+ " \"motorway_link\",\n" + " \"trunk\",\n" + " \"trunk_link\",\n"
+ " \"primary\",\n" + " \"primary_link\",\n" + " \"secondary\",\n"
+ " \"secondary_link\",\n" + " \"tertiary\",\n"
+ " \"tertiary_link\",\n" + " \"road\",\n" + " \"path\",\n"
+ " \"track\",\n" + " \"service\",\n" + " \"footway\",\n"
+ " \"bridleway\",\n" + " \"cycleway\",\n" + " \"steps\",\n"
+ " \"pedestrian\",\n" + " \"living_street\",\n"
+ " \"unclassified\",\n" + " \"residential\",\n" + " \"raceway\"\n"
+ " ]\n" + " }\n" + " }\n" + " }\n" + " },\n"
+ " \"housenumbers\": {\n" + " \"fields\": [\n" + " {\n" + " \"type\": \"id\",\n"
+ " \"name\": \"osm_id\",\n" + " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"addr:street\",\n" + " \"key\": \"addr:street\"\n" + " },\n"
+ " {\n" + " \"type\": \"string\",\n" + " \"name\": \"addr:postcode\",\n"
+ " \"key\": \"addr:postcode\"\n" + " },\n" + " {\n"
+ " \"type\": \"string\",\n" + " \"name\": \"addr:city\",\n"
+ " \"key\": \"addr:city\"\n" + " }\n" + " ],\n" + " \"type\": \"point\",\n"
+ " \"mapping\": {\n" + " \"addr:housenumber\": [\n" + " \"__any__\"\n"
+ " ]\n" + " }\n" + " },\n" + " \"waterareas\": {\n" + " \"fields\": [\n"
+ " {\n" + " \"type\": \"id\",\n" + " \"name\": \"osm_id\",\n"
+ " \"key\": null\n" + " },\n" + " {\n"
+ " \"type\": \"validated_geometry\",\n" + " \"name\": \"geometry\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"string\",\n"
+ " \"name\": \"name\",\n" + " \"key\": \"name\"\n" + " },\n" + " {\n"
+ " \"type\": \"mapping_value\",\n" + " \"name\": \"type\",\n"
+ " \"key\": null\n" + " },\n" + " {\n" + " \"type\": \"pseudoarea\",\n"
+ " \"name\": \"area\",\n" + " \"key\": null\n" + " }\n" + " ],\n"
+ " \"type\": \"polygon\",\n" + " \"mapping\": {\n" + " \"waterway\": [\n"
+ " \"riverbank\"\n" + " ],\n" + " \"landuse\": [\n" + " \"basin\",\n"
+ " \"reservoir\"\n" + " ],\n" + " \"natural\": [\n" + " \"water\"\n"
+ " ],\n" + " \"amenity\": [\n" + " \"swimming_pool\"\n" + " ],\n"
+ " \"leisure\": [\n" + " \"swimming_pool\"\n" + " ]\n" + " }\n" + " }\n"
+ " }\n" + "}";
public static class UpperCaseConverter implements
IStringConverter<String>
{
@Override
public String convert(
String value ) {
return value.toUpperCase();
}
}
}