1- # osm2pgsql #
1+ # osm2pgsql
22
33https://osm2pgsql.org
44
55osm2pgsql is a tool for loading OpenStreetMap data into a PostgreSQL / PostGIS
66database suitable for applications like rendering into a map, geocoding with
77Nominatim, or general analysis.
88
9+ See the [ documentation] ( https://osm2pgsql.org/doc/ ) for instructions on how
10+ to install and run osm2pgsql.
11+
912[ ![ Appveyor Build Status] ( https://ci.appveyor.com/api/projects/status/7abwls7hfmb83axj/branch/master?svg=true )] ( https://ci.appveyor.com/project/openstreetmap/osm2pgsql/branch/master )
1013[ ![ Github Actions Build Status] ( https://github.com/openstreetmap/osm2pgsql/workflows/CI/badge.svg?branch=master )] ( https://github.com/openstreetmap/osm2pgsql/actions )
1114[ ![ Packaging Status] ( https://repology.org/badge/tiny-repos/osm2pgsql.svg )] ( https://repology.org/project/osm2pgsql/versions )
1215
13- ## Features ##
16+ ## Features
1417
1518* Converts OSM files to a PostgreSQL DB
1619* Conversion of tags to columns is configurable in the style file
@@ -22,24 +25,24 @@ Nominatim, or general analysis.
2225* Support for hstore field type to store the complete set of tags in one database
2326 field if desired
2427
25- ## Installing ##
28+ ## Installing
2629
2730Most Linux distributions include osm2pgsql. It is also available on macOS with [ Homebrew] ( https://brew.sh/ ) .
2831
2932Unoffical builds for Windows are available from [ AppVeyor] ( https://ci.appveyor.com/project/openstreetmap/osm2pgsql/history ) but you need to find the right build artifacts.
3033Builds for releases may also be downloaded from the [ OpenStreetMap Dev server] ( https://lonvia.dev.openstreetmap.org/osm2pgsql-winbuild/releases/ ) .
3134
32- ## Building ##
35+ ## Building
3336
3437The latest source code is available in the osm2pgsql git repository on GitHub
3538and can be downloaded as follows:
3639
3740``` sh
38- $ git clone git://github.com/openstreetmap/osm2pgsql.git
41+ git clone git://github.com/openstreetmap/osm2pgsql.git
3942```
4043
4144Osm2pgsql uses the cross-platform [ CMake build system] ( https://cmake.org/ )
42- to configure and build itself and requires
45+ to configure and build itself.
4346
4447Required libraries are
4548
@@ -97,7 +100,8 @@ pkg install devel/cmake devel/boost-libs textproc/expat2 \
97100 databases/postgresql94-client graphics/proj lang/lua52
98101```
99102
100- Once dependencies are installed, use CMake to build the Makefiles in a separate folder
103+ Once dependencies are installed, use CMake to build the Makefiles in a separate
104+ folder:
101105
102106``` sh
103107mkdir build && cd build
@@ -114,76 +118,27 @@ When the Makefiles have been successfully built, compile with
114118make
115119```
116120
117- The compiled files can be installed with
118-
119- ``` sh
120- sudo make install
121- ```
122-
123- By default, the Release build with debug info is created and no tests are compiled.
124- You can change that behavior by using additional options like following:
125-
126- ``` sh
127- cmake .. -G " Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON
128- ```
129-
130- ## Usage ##
131-
132- This is only a short introduction. There is extensive documentation available
133- on [ osm2pgsq.org] ( https://osm2pgsql.org/doc/ ) .
134-
135- Osm2pgsql has one program, the executable itself, which has a lot of command
136- line options.
137-
138- Before loading into a database, the database must be created and the PostGIS
139- and optional hstore extensions must be loaded. A full guide to PostgreSQL
140- setup is beyond the scope of this readme, but with reasonably recent versions
141- of PostgreSQL and PostGIS this can be done with
121+ The man page can be rebuilt with:
142122
143123``` sh
144- createdb gis
145- psql -d gis -c ' CREATE EXTENSION postgis; CREATE EXTENSION hstore;'
124+ make man
146125```
147126
148- A basic invocation to load the data into the database ` gis ` for rendering would be
127+ The compiled files can be installed with
149128
150129``` sh
151- osm2pgsql --create --database gis data.osm.pbf
130+ sudo make install
152131```
153132
154- This will load the data from ` data.osm.pbf ` into the ` planet_osm_point ` ,
155- ` planet_osm_line ` , ` planet_osm_roads ` , and ` planet_osm_polygon ` tables.
156-
157- When importing a large amount of data such as the complete planet, a typical
158- command line would be
133+ By default, the Release build with debug info is created and no tests are
134+ compiled. You can change that behavior by using additional options like
135+ following:
159136
160137``` sh
161- osm2pgsql -c -d gis --slim -C < cache size> \
162- --flat-nodes < flat nodes> planet-latest.osm.pbf
138+ cmake .. -G " Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON
163139```
164- where
165- * ` <cache size> ` is about 75% of memory in MiB, to a maximum of about 30000. Additional RAM will not be used.
166- * ` <flat nodes> ` is a location where a 50GiB+ file can be saved.
167-
168- Many different data files (e.g., .pbf) can be found at [ planet.osm.org] ( https://planet.osm.org/ ) .
169-
170- The databases from either of these commands can be used immediately by
171- [ Mapnik] ( https://mapnik.org/ ) for rendering maps with standard tools like
172- [ renderd/mod_tile] ( https://github.com/openstreetmap/mod_tile ) ,
173- [ TileMill] ( https://tilemill-project.github.io/tilemill/ ) , [ Nik4] ( https://github.com/Zverik/Nik4 ) ,
174- among others.
175-
176- ## Alternate outputs (backends) ##
177140
178- In addition to the standard pgsql output designed for rendering there is also
179- the gazetteer output for geocoding, principally with
180- [ Nominatim] ( https://www.nominatim.org/ ) , and the null output for testing.
181-
182- Also available is the new flex output. It is much more flexible than the other
183- outputs. IT IS CURRENTLY EXPERIMENTAL AND SUBJECT TO CHANGE. The flex output is
184- only available if you have compiled osm2pgsql with Lua support.
185-
186- ## Projection Support ##
141+ ### Using the PROJ library
187142
188143Osm2pgsql has builtin support for the Latlong (WGS84, EPSG:4326) and the
189144WebMercator (EPSG:3857) projection. If you need other projections you have to
@@ -194,22 +149,24 @@ above) are supported. Usually the CMake configuration will find a suitable
194149version and use it automatically, but you can set the ` USE_PROJ_LIB ` CMake
195150cache variable to choose between the following behaviours:
196151
197- * ` 4 ` : Look for PROJ library with API version 4. If it is not found, stop with error.
198- * ` 6 ` : Look for PROJ library with API version 6. If it is not found, stop with error.
152+ * ` 4 ` : Look for PROJ library with API version 4. If it is not found, stop with
153+ error.
154+ * ` 6 ` : Look for PROJ library with API version 6. If it is not found, stop with
155+ error.
199156* ` off ` : Build without PROJ library.
200157* ` auto ` : Choose API 4 if available, otherwise API 6. If both are not available
201158 build without PROJ library. (This is the default.)
202159
203- ## LuaJIT support ##
160+ ## Using LuaJIT
204161
205- To speed up Lua tag transformations, [ LuaJIT] ( https://luajit.org/ ) can be optionally
206- enabled on supported platforms. Performance measurements have shown about 25%
207- runtime reduction for a planet import, with about 40% reduction on parsing time .
162+ To speed up Lua tag transformations, [ LuaJIT] ( https://luajit.org/ ) can be
163+ optionally enabled on supported platforms. This can speed up processing
164+ considerably .
208165
209- On a Debian or Ubuntu system, this can be done with :
166+ On a Debian or Ubuntu system install the LuaJIT library :
210167
211168``` sh
212- sudo apt install libluajit-5.1-dev
169+ sudo apt-get install libluajit-5.1-dev
213170```
214171
215172Configuration parameter ` WITH_LUAJIT=ON ` needs to be added to enable LuaJIT.
@@ -219,23 +176,20 @@ Otherwise make and installation steps are identical to the description above.
219176cmake -D WITH_LUAJIT=ON ..
220177```
221178
222- Use ` osm2pgsql --version ` to verify that the build includes LuaJIT support:
179+ Use ` osm2pgsql --version ` to verify that the build includes LuaJIT support.
180+ The output should show something like
223181
224- ``` sh
225- ./osm2pgsql --version
226- osm2pgsql version 1.2.0
227-
228- Compiled using the following library versions:
229- Libosmium 2.15.6
182+ ```
230183Lua 5.1.4 (LuaJIT 2.1.0-beta3)
231184```
232185
233- ## Contributing ##
186+ ## Help/Support
187+
188+ If you have problems with osm2pgsql or want to report a bug, go to
189+ https://osm2pgsql.org/support/ .
234190
235- We welcome contributions to osm2pgsql. If you would like to report an issue,
236- please use the [ issue tracker on GitHub] ( https://github.com/openstreetmap/osm2pgsql/issues ) .
191+ ## Contributing
237192
238- More information can be found in [ CONTRIBUTING.md] ( CONTRIBUTING.md ) .
193+ We welcome contributions to osm2pgsql. See [ CONTRIBUTING.md] ( CONTRIBUTING.md )
194+ and https://osm2pgsql.org/contribute/ for information on how to contribute.
239195
240- General queries can be sent to the tile-serving@ or dev@
241- [ mailing lists] ( https://wiki.openstreetmap.org/wiki/Mailing_lists ) .
0 commit comments