@@ -150,9 +150,54 @@ public Map<String, String> extraArchiveMetadata() {
150150 }
151151
152152 public static void main (String [] args ) throws IOException {
153+ // Check for help flag
154+ for (String arg : args ) {
155+ if ("--help" .equals (arg ) || "-h" .equals (arg )) {
156+ printHelp ();
157+ System .exit (0 );
158+ }
159+ }
153160 run (Arguments .fromArgsOrConfigFile (args ));
154161 }
155162
163+ private static void printHelp () {
164+ Basemap basemap = new Basemap (null , null , null , "" );
165+ System .out .println (String .format ("""
166+ %s v%s
167+ %s
168+
169+ Usage:
170+ java -jar protomaps-basemap-HEAD-with-deps.jar [options]
171+
172+ Protomaps Basemap Options:
173+ --help, -h Show this help message and exit
174+ --area=<name> Geofabrik area name to download, or filename in data/sources/
175+ (default: monaco, e.g., us/california, washington)
176+ --maxzoom=<n> Maximum zoom level (default: 15)
177+ --layer=<name> Process only a single layer (optional)
178+ Valid values: boundaries, buildings, landuse, landcover,
179+ places, pois, roads, transit, water, earth
180+ --clip=<path> GeoJSON file path to clip tileset (optional)
181+
182+ Common Planetiler Options:
183+ --output=<path> Output file path and format (e.g., output.pmtiles)
184+ --force Overwrite existing output file
185+ --download Automatically download input sources
186+ --only-download Exit after downloading sources
187+ --osm-path=<path> Path to existing OSM extract file
188+
189+ Examples:
190+ java -jar protomaps-basemap-HEAD-with-deps.jar --area=monaco
191+ java -jar protomaps-basemap-HEAD-with-deps.jar --area=boston --maxzoom=14 --force
192+ java -jar protomaps-basemap-HEAD-with-deps.jar --layer=roads --area=seattle
193+
194+ For a complete list of Planetiler options, see:
195+ https://github.com/onthegomap/planetiler#usage
196+
197+ For more information: https://github.com/protomaps/basemaps
198+ """ , basemap .name (), basemap .version (), basemap .description ()));
199+ }
200+
156201 static void run (Arguments args ) throws IOException {
157202 args = args .orElse (Arguments .of ("maxzoom" , 15 ));
158203
@@ -164,7 +209,7 @@ static void run(Arguments args) throws IOException {
164209
165210 var countryCoder = CountryCoder .fromJarResource ();
166211
167- String area = args .getString ("area" , "geofabrik area to download" , "monaco" );
212+ String area = args .getString ("area" , "Geofabrik area name to download, or filename in data/sources/ " , "monaco" );
168213
169214 var planetiler = Planetiler .create (args )
170215 .addNaturalEarthSource ("ne" , nePath , neUrl )
0 commit comments