diff --git a/.travis.yml b/.travis.yml
index 00d9b0e..23a9f55 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -97,7 +97,9 @@ before_deploy:
- mkdir -p ${PKG_DIR}/lib
# copy files
- - cp imposm3 ${PKG_DIR}
+ - cp imposm ${PKG_DIR}
+ - ln -s imposm ${PKG_DIR}/imposm3
+ - cp README.md ${PKG_DIR}
- cp example-mapping.json ${PKG_DIR}/mapping.json
# copy/link libs
@@ -112,9 +114,9 @@ before_deploy:
- chrpath ${PKG_DIR}/lib/libgeos_c.so -r '${ORIGIN}'
# create tar.gz
- - BUILD_VERSION=`${PKG_DIR}/imposm3 version`-linux-x86-64
- - mv ${PKG_DIR} /tmp/imposm3-${BUILD_VERSION}
- - cd /tmp && tar zcvf imposm3-${BUILD_VERSION}.tar.gz imposm3-${BUILD_VERSION}
+ - BUILD_VERSION=`${PKG_DIR}/imposm version`-linux-x86-64
+ - mv ${PKG_DIR} /tmp/imposm-${BUILD_VERSION}
+ - cd /tmp && tar zcvf imposm-${BUILD_VERSION}.tar.gz imposm-${BUILD_VERSION}
# move back to build dir for deploy
- cd ${TRAVIS_BUILD_DIR}
@@ -123,7 +125,7 @@ deploy:
provider: releases
api_key:
secure: fBhtCy6vdxxxuLYuJWXeTHJb3SAZCCbUJncIvR9ZOLCDWMJAPBnzPoqJFbByWzl6XghVRwhy9fe/82vzqByKiB/AQpqGqBxlwA9dSsqvSQcQxomAoHKKfZVdOuxM2bLDW3v5pJpmFtCMwhWjgwIOb9WxnBVeLxBbsq2Ox49tgHw=
- file: /tmp/imposm3-${BUILD_VERSION}.tar.gz
+ file: /tmp/imposm-${BUILD_VERSION}.tar.gz
skip_cleanup: true
on:
repo: omniscale/imposm3
diff --git a/Makefile b/Makefile
index 62d3587..7a7be3d 100644
--- a/Makefile
+++ b/Makefile
@@ -29,24 +29,24 @@ VERSION_LDFLAGS=-X github.com/omniscale/imposm3.Version=$(BUILD_VERSION)
all: build test
-imposm3: $(PBGOFILES) $(GOFILES)
- $(GO) build $(GOTAGS) $(GOLDFLAGS) ./cmd/imposm3
+imposm: $(PBGOFILES) $(GOFILES)
+ $(GO) build $(GOTAGS) $(GOLDFLAGS) ./cmd/imposm
-build: imposm3
+build: imposm
clean:
- rm -f imposm3
+ rm -f imposm
(cd test && make clean)
-test: imposm3 system-test-files
+test: imposm system-test-files
$(GO) test $(GOTAGS) -i `$(GO) list ./... | grep -Ev '/vendor'`
$(GO) test $(GOTAGS) `$(GO) list ./... | grep -Ev '/vendor'`
-test-unit: imposm3
+test-unit: imposm
$(GO) test $(GOTAGS) -i `$(GO) list ./... | grep -Ev '/test|/vendor'`
$(GO) test $(GOTAGS) `$(GO) list ./... | grep -Ev '/test|/vendor'`
-test-system: imposm3
+test-system: imposm
(cd test && make test)
system-test-files:
diff --git a/README.md b/README.md
index 1d2cae6..e0c8361 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,14 @@
-Imposm 3
-========
+Imposm
+======
-Imposm is an importer for OpenStreetMap data. It reads PBF files and
-imports the data into PostgreSQL/PostGIS. It can also automatically update the database with the latest changes from OSM.
+Imposm is an importer for OpenStreetMap data. It reads PBF files and imports the data into PostgreSQL/PostGIS. It can also automatically update the database with the latest changes from OSM.
It is designed to create databases that are optimized for rendering (i.e. generating tiles or for WMS services).
-Imposm 3 is written in Go and it is a complete rewrite of the previous Python implementation.
+Imposm >=3 is written in Go and it is a complete rewrite of the previous Python implementation.
Configurations/mappings and cache files are not compatible with Imposm 2, but they share a similar architecture.
-The development of Imposm 3 was sponsored by [Omniscale](http://omniscale.com/). There are [commercial licenses available for Imposm](http://omniscale.com/opensource/soss) to support the long-term development of Imposm.
-There is also commercial support available from Omniscale.
+The development of Imposm is sponsored by [Omniscale](https://omniscale.com/).
Features
@@ -47,10 +45,10 @@ Features
Limit imported geometries to polygons from GeoJSON, for city/state/country imports.
- Easy deployment:
- Single binary with only runtime dependencies to common libs (GEOS, ProtoBuf and LevelDB).
+ Single binary with only runtime dependencies to common libs (GEOS and LevelDB).
- Automatic OSM updates:
- Includes background service (imposm3 run) that automatically downloads and imports the latest OSM changes.
+ Includes background service (`imposm run`) that automatically downloads and imports the latest OSM changes.
- Route relations:
Import all relation types including routes.
@@ -61,11 +59,9 @@ Features
Performance
-----------
-Imposm 3 is much faster than Imposm 2 and osm2pgsql:
-
-* Makes full use of all available CPU cores
-* Bulk inserts into PostgreSQL with `COPY FROM`
-* Efficient intermediate cache for reduced IO load during ways and relations building
+* Imposm makes full use of all available CPU cores
+* Imposm uses bulk inserts into PostgreSQL with `COPY FROM`
+* Imposm uses efficient intermediate caches for reduced IO load during ways and relations building
An import in diff-mode on a Hetzner PX121-SSD server (Intel Xeon E5-1650 v3 Hexa-Core, 256GB RAM and SSD RAID 1) of a 36GB planet PBF (2017-08-10) with generalized tables and spatial indices, etc. takes around 6:30h. This is for an import that is ready for minutely updates. The non-diff mode is even faster.
@@ -76,26 +72,30 @@ Imports without SSDs will take longer.
Current status
--------------
-Imposm 3 is used in production but there is no official 3.0 release yet.
+Imposm is used in production but there is no official 3.0 release yet.
+Imposm >=3, successor of Imposm 2, was called "Imposm 3" and binaries were named `imposm3` during development. Since April 2018 the project is only called Imposm to allow semantic versioning beyond version 3.
+The repository will be renamed to github.com/omniscale/imposm in the future.
### Planned features ###
-There are a few features we like to see in Imposm 3:
+There are a few features we like to see in Imposm:
* Support for other projections than EPSG:3857 or EPSG:4326
* Custom field/filter functions
* Official releases with binaries for more platforms
-There is no roadmap however, as the implementation of these features largely depends on external funding. There are [commercial licenses available for Imposm](http://omniscale.com/opensource/soss) if you like to help with this development.
+There is no roadmap however, as the implementation of these features largely depends on external funding.
Installation
------------
### Binary
-There are no official releases, but you find development builds at .
-These builds are for x86 64bit Linux and require *no* further dependencies. Download, untar and start `imposm3`.
-Imposm 0.5 binaries are compatible with Debian 8, Ubuntu 14.04 and SLES 12 (and newer versions). Older Imposm binaries also support Debian 6, RHEL 6 and SLES 11.
+[Binary releases are available at GitHub.](https://github.com/omniscale/imposm3/releases)
+
+These builds are for x86 64bit Linux and require *no* further dependencies. Download, untar and start `imposm`.
+Binaries are compatible with Debian 8, Ubuntu 14.04 and SLES 12 (and newer versions). Older Imposm binaries (<=0.4) also support Debian 6, RHEL 6 and SLES 11.
+Older versions are available at .
### Source
@@ -107,14 +107,13 @@ You need [Go >=1.6](http://golang.org).
#### C/C++ libraries
-Other dependencies are [libleveldb][], [libgeos][] and [protobuf][].
-Imposm 3 was tested with recent versions of these libraries, but you might succeed with older versions.
+Other dependencies are [libleveldb][] and [libgeos][].
+Imposm was tested with recent versions of these libraries, but you might succeed with older versions.
GEOS >=3.2 is recommended, since it became much more robust when handling invalid geometries.
[libleveldb]: https://github.com/google/leveldb/
[libgeos]: http://trac.osgeo.org/geos/
-[protobuf]: https://github.com/google/protobuf
#### Compile
@@ -124,17 +123,17 @@ Create a [Go workspace](http://golang.org/doc/code.html) by creating the `GOPATH
cd go
export GOPATH=`pwd`
-Get the code and install Imposm 3:
+Get the code and install Imposm:
go get github.com/omniscale/imposm3
- go install github.com/omniscale/imposm3/cmd/imposm3
+ go install github.com/omniscale/imposm3/cmd/imposm
-Done. You should now have an imposm3 binary in `$GOPATH/bin`.
+Done. You should now have an imposm binary in `$GOPATH/bin`.
-Go compiles to static binaries and so Imposm 3 has no runtime dependencies to Go.
-Just copy the `imposm3` binary to your server for deployment. The C/C++ libraries listed above are still required though.
+Go compiles to static binaries and so Imposm has no runtime dependencies to Go.
+Just copy the `imposm` binary to your server for deployment. The C/C++ libraries listed above are still required though.
-See `packaging.sh` for instruction on how to build binary packages for Linux.
+See also `packaging.sh` for instructions on how to build binary packages for Linux.
#### LevelDB
@@ -145,36 +144,36 @@ For better performance you can either use [HyperLevelDB][libhyperleveldb] as an
Usage
-----
-`imposm3` has multiple subcommands. Use `imposm3 import` for basic imports.
+`imposm` has multiple subcommands. Use `imposm import` for basic imports.
For a simple import:
- imposm3 import -connection postgis://user:password@host/database \
+ imposm import -connection postgis://user:password@host/database \
-mapping mapping.json -read /path/to/osm.pbf -write
You need a JSON file with the target database mapping. See `example-mapping.json` to get an idea what is possible with the mapping.
Imposm creates all new tables inside the `import` table schema. So you'll have `import.osm_roads` etc. You can change the tables to the `public` schema:
- imposm3 import -connection postgis://user:passwd@host/database \
+ imposm import -connection postgis://user:passwd@host/database \
-mapping mapping.json -deployproduction
You can write some options into a JSON configuration file:
{
- "cachedir": "/var/local/imposm3",
+ "cachedir": "/var/local/imposm",
"mapping": "mapping.json",
"connection": "postgis://user:password@localhost:port/database"
}
To use that config:
- imposm3 import -config config.json [args...]
+ imposm import -config config.json [args...]
For more options see:
- imposm3 import -help
+ imposm import -help
Note: TLS/SSL support is disabled by default due to the lack of renegotiation support in Go's TLS implementation. You can re-enable encryption by setting the `PGSSLMODE` environment variable or the `sslmode` connection option to `require` or `verify-full`, eg: `-connect postgis://host/dbname?sslmode=require`. You will need to disable renegotiation support on your server to prevent connection errors on larger imports. You can do this by setting `ssl_renegotiation_limit` to 0 in your PostgreSQL server configuration.
@@ -202,7 +201,7 @@ You can report any issues at:
License
-------
-Imposm 3 is released as open source under the Apache License 2.0. See LICENSE.
+Imposm is released as open source under the Apache License 2.0. See LICENSE.
All dependencies included as source code are released under a BSD-ish license. See LICENSE.dep.
@@ -229,4 +228,4 @@ There is a Makefile that creates all test files if necessary and then runs the t
Call `make test-system` to skip the unit tests.
-WARNING: It uses your local PostgeSQL database (`imposm3testimport`, `imposm3testproduction` and `imposm3testbackup` schema). Change the database with the standard `PGDATABASE`, `PGHOST`, etc. environment variables.
+WARNING: It uses your local PostgreSQL database (`imposm_test_import`, `imposm_test_production` and `imposm_test_backup` schema). Change the database with the standard `PGDATABASE`, `PGHOST`, etc. environment variables.
diff --git a/cache/delta_test.go b/cache/delta_test.go
index f6a4093..0ffa88b 100644
--- a/cache/delta_test.go
+++ b/cache/delta_test.go
@@ -71,7 +71,7 @@ func TestReadWriteDeltaCoordsLinearImport(t *testing.T) {
}
func checkReadWriteDeltaCoords(t *testing.T, withLinearImport bool) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newDeltaCoordsCache(cache_dir)
@@ -157,7 +157,7 @@ func deleteAndCheck(t *testing.T, cache *DeltaCoordsCache, id int64) {
}
func TestSingleUpdate(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newDeltaCoordsCache(cache_dir)
@@ -189,7 +189,7 @@ func TestSingleUpdate(t *testing.T) {
func BenchmarkWriteDeltaCoords(b *testing.B) {
b.StopTimer()
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newDeltaCoordsCache(cache_dir)
@@ -217,7 +217,7 @@ func BenchmarkWriteDeltaCoords(b *testing.B) {
func BenchmarkReadDeltaCoords(b *testing.B) {
b.StopTimer()
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newDeltaCoordsCache(cache_dir)
diff --git a/cache/diff_test.go b/cache/diff_test.go
index e00fd1f..84961af 100644
--- a/cache/diff_test.go
+++ b/cache/diff_test.go
@@ -10,7 +10,7 @@ import (
func TestDiffCache(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newCoordsRefIndex(cache_dir)
@@ -49,7 +49,7 @@ func TestDiffCache(t *testing.T) {
}
func TestWriteDiff(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newRefIndex(cache_dir, &globalCacheOptions.CoordsIndex)
@@ -77,7 +77,7 @@ func TestWriteDiff(t *testing.T) {
func BenchmarkWriteDiff(b *testing.B) {
b.StopTimer()
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newRefIndex(cache_dir, &globalCacheOptions.CoordsIndex)
diff --git a/cache/osm_test.go b/cache/osm_test.go
index d83d381..b560d21 100644
--- a/cache/osm_test.go
+++ b/cache/osm_test.go
@@ -1,15 +1,16 @@
package cache
import (
- "github.com/omniscale/imposm3/element"
"io/ioutil"
"math/rand"
"os"
"testing"
+
+ "github.com/omniscale/imposm3/element"
)
func TestCreateCache(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newNodesCache(cache_dir)
@@ -24,7 +25,7 @@ func TestCreateCache(t *testing.T) {
}
func TestReadWriteNode(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newNodesCache(cache_dir)
@@ -58,7 +59,7 @@ func TestReadWriteNode(t *testing.T) {
}
func TestReadWriteWay(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newWaysCache(cache_dir)
@@ -93,7 +94,7 @@ func TestReadWriteWay(t *testing.T) {
}
func TestReadMissingWay(t *testing.T) {
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newWaysCache(cache_dir)
@@ -111,7 +112,7 @@ func TestReadMissingWay(t *testing.T) {
func BenchmarkWriteWay(b *testing.B) {
b.StopTimer()
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newWaysCache(cache_dir)
@@ -133,7 +134,7 @@ func BenchmarkWriteWay(b *testing.B) {
func BenchmarkReadWay(b *testing.B) {
b.StopTimer()
- cache_dir, _ := ioutil.TempDir("", "imposm3_test")
+ cache_dir, _ := ioutil.TempDir("", "imposm_test")
defer os.RemoveAll(cache_dir)
cache, err := newWaysCache(cache_dir)
diff --git a/cache/query/query.go b/cache/query/query.go
index e2e86f9..7a84136 100644
--- a/cache/query/query.go
+++ b/cache/query/query.go
@@ -21,7 +21,7 @@ var (
relIds = flags.String("rel", "", "relation")
full = flags.Bool("full", false, "recurse into relations/ways")
deps = flags.Bool("deps", false, "show dependent ways/relations")
- cachedir = flags.String("cachedir", "/tmp/imposm3", "cache directory")
+ cachedir = flags.String("cachedir", "/tmp/imposm", "cache directory")
)
type nodes map[string]*node
diff --git a/cmd/imposm3/main.go b/cmd/imposm/main.go
similarity index 92%
rename from cmd/imposm3/main.go
rename to cmd/imposm/main.go
index 1e53110..2e9911d 100644
--- a/cmd/imposm3/main.go
+++ b/cmd/imposm/main.go
@@ -5,6 +5,7 @@ import (
golog "log"
"os"
"runtime"
+ "strings"
"github.com/omniscale/imposm3"
"github.com/omniscale/imposm3/cache/query"
@@ -39,6 +40,10 @@ func Main(usage func()) {
os.Exit(1)
}
+ if strings.HasSuffix(os.Args[0], "imposm3") {
+ fmt.Println("WARNING: Use imposm binary instead of imposm3!")
+ }
+
switch os.Args[1] {
case "import":
config.ParseImport(os.Args[2:])
diff --git a/docs/index.rst b/docs/index.rst
index 2983a28..11bc1cb 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,10 +1,10 @@
-Imposm3
-=======
+Imposm
+======
-Imposm3 is an importer for OpenStreetMap data. It reads PBF files and imports the data into PostgreSQL/PostGIS databases.
+Imposm is an importer for OpenStreetMap data. It reads PBF files and imports the data into PostgreSQL/PostGIS databases.
It is designed to create databases that are optimized for rendering/tile/map-services.
-It is developed and supported by `Omniscale `_ and is released as open source under the `Apache Software License 2.0 `_. Imposm3 is a rewrite of Imposm 2 with even better performance and support for (minutely) diff updates.
+It is developed and supported by `Omniscale `_ and is released as open source under the `Apache Software License 2.0 `_. Imposm >=3 is a rewrite of Imposm 2 with even better performance and support for (minutely) diff updates.
Features
@@ -40,8 +40,6 @@ Support
There is a `mailing list at Google Groups `_ for all questions. You can subscribe by sending an email to: imposm+subscribe@googlegroups.com
-For commercial support `contact Omniscale `_.
-
Development
-----------
diff --git a/docs/install.rst b/docs/install.rst
index 9d594e6..cadc0dc 100644
--- a/docs/install.rst
+++ b/docs/install.rst
@@ -4,10 +4,13 @@ Installation
Binary
------
-There are no official releases, but you find development builds at .
-These builds are for x86 64bit Linux and require *no* further dependencies. Download, untar and start `imposm3`.
+`Binary releases are available at GitHub. `_
+
+These builds are for x86 64bit Linux and require *no* further dependencies. Download, untar and start ``imposm``.
+Binaries are compatible with Debian 8, Ubuntu 14.04 and SLES 12 (and newer versions). Older Imposm binaries (<=0.4) also support Debian 6, RHEL 6 and SLES 11.
+Older versions are available at ``_.
Source
------
-Please see `the README for build instructions `_.
\ No newline at end of file
+Please see `the README for build instructions `_.
diff --git a/docs/tutorial.rst b/docs/tutorial.rst
index ba23dce..6ac5c67 100644
--- a/docs/tutorial.rst
+++ b/docs/tutorial.rst
@@ -1,12 +1,12 @@
Tutorial
========
-The ``imposm3`` command has multiple sub-commands. This tutorial will explain the most important sub-commands: ``import`` and ``diff``.
+The ``imposm`` command has multiple sub-commands. This tutorial will explain the most important sub-commands: ``import`` and ``diff``.
Use the name of the sub-command as the second argument to start it. For example, to print the installed version number call the ``version`` sub-command::
- $ imposm3 version
- 0.1dev-20150507-7ddba33
+ $ imposm version
+ master-20180507-7ddba33
Preparation
@@ -58,13 +58,13 @@ Imposm needs to know which OSM elements you want to have in your database. You c
To read an extract::
- imposm3 import -mapping mapping.yml -read germany.osm.pbf
+ imposm import -mapping mapping.yml -read germany.osm.pbf
Cache files
~~~~~~~~~~~
-Imposm stores the cache files in `/tmp/imposm3`. You can change that path with ``-cachedir``. Imposm can merge multiple OSM files into the same cache (e.g. when combining multiple extracts) with the ``-appendcache`` option or it can overwrite existing caches with ``-overwritecache``. Imposm will fail to ``-read`` if it finds existing cache files and if you don't specify either ``-appendcache`` or ``-overwritecache``.
+Imposm stores the cache files in `/tmp/imposm`. You can change that path with ``-cachedir``. Imposm can merge multiple OSM files into the same cache (e.g. when combining multiple extracts) with the ``-appendcache`` option or it can overwrite existing caches with ``-overwritecache``. Imposm will fail to ``-read`` if it finds existing cache files and if you don't specify either ``-appendcache`` or ``-overwritecache``.
Make sure that you have enough disk space for storing these cache files. The underlying LevelDB library will crash if it runs out of free space. 2-3 times the size of the PBF file is a good estimate for the cache size, even with -diff mode.
@@ -80,16 +80,16 @@ You need to tell Imposm the connection parameters of your database. The ``-conne
In our example:
::
- imposm3 import -mapping mapping.yml -write -connection postgis://osm:osm@localhost/osm
+ imposm import -mapping mapping.yml -write -connection postgis://osm:osm@localhost/osm
You can combine reading and writing::
- imposm3 import -mapping mapping.yml -read hamburg.osm.pbf -write -connection postgis://osm:osm@localhost/osm
+ imposm import -mapping mapping.yml -read hamburg.osm.pbf -write -connection postgis://osm:osm@localhost/osm
All tables are prefixed with ``osm_``, e.g. ``roads`` will create the table ``osm_roads``. You can change the prefix by appending ``?prefix=myprefix`` to the connection URL. Use ``NONE`` to disable prefixing::
- imposm3 import -mapping mapping.yml -write -connection postgis://osm:osm@localhost/osm?prefix=NONE
+ imposm import -mapping mapping.yml -write -connection postgis://osm:osm@localhost/osm?prefix=NONE
Limit to
@@ -99,7 +99,7 @@ You can limit the imported geometries to polygon boundaries. You can load the li
::
- imposm3 import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -read europe.osm.pbf -write -limitto germany.geojson
+ imposm import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -read europe.osm.pbf -write -limitto germany.geojson
``-limitto`` also controls which elements are stored in the internal cache. You can configure a buffer around the ``-limitto`` geometry with the ``-limittocachebuffer`` to add more elements to your cache. This is necessary for getting complete polygons and line strings at the boundaries of your ``-limitto`` geometry.
@@ -123,14 +123,14 @@ You can configure the following options:
Here is an example configuration::
{
- "cachedir": "/tmp/imposm3_cache",
+ "cachedir": "/tmp/imposm_cache",
"connection": "postgis://osm:osm@localhost/osm",
"mapping": "mapping.yml"
}
And here is it in use::
- imposm3 import -config config.json -read hamburg.osm.pbf -write
+ imposm import -config config.json -read hamburg.osm.pbf -write
@@ -141,11 +141,11 @@ This step is optional and it does some optimization on the created tables. It cl
::
- imposm3 import -config config.json -optimize
+ imposm import -config config.json -optimize
You can combine reading, writing and optimizing::
- imposm3 import -config config.json -read hamburg.osm.pbf -write -optimize
+ imposm import -config config.json -read hamburg.osm.pbf -write -optimize
.. _production_tables:
@@ -161,17 +161,17 @@ Imposm imports all tables into the ``import`` schema by default. For example, af
Imposm can `deploy` all imported tables by updating the schema of the tables.
To move all tables form ``import`` to the default schema ``public``::
- imposm3 import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -deployproduction
+ imposm import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -deployproduction
This will also remove all existing Imposm tables from ``backup`` and it will moves tables from the ``public`` to the ``backup`` schema.
You can revert a deploy (moving ``public`` tables to ``import`` and ``backup`` tables to ``public``)::
- imposm3 import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -revertdeploy
+ imposm import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -revertdeploy
And you can remove the backup schema::
- imposm3 import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -removebackup
+ imposm import -mapping mapping.yml -connection postgis://osm:osm@localhost/osm -removebackup
You can change the schema names with ``dbschema-import``, ``-dbschema-production`` and ``-dbschema-backup``
@@ -193,7 +193,7 @@ It needs to cache a few more information to be able to update the database from
::
- imposm3 import -config config.json -read hamburg.osm.pbf -write -diff -cachedir ./cache -diffdir ./diff
+ imposm import -config config.json -read hamburg.osm.pbf -write -diff -cachedir ./cache -diffdir ./diff
.. note:: Each diff import requires access to the cache files from this initial import. So it is a good idea to set ``-cachedir`` to a premanent location instead of `/tmp/`.
@@ -202,13 +202,13 @@ It needs to cache a few more information to be able to update the database from
`run`
-----
-Imposm 3 can automatically fetch and import diff files. It stores the current sequence in `last.state.txt` inside the `-diffdir` directory. The downloaded diff files are cached in this directory as well.
+Imposm can automatically fetch and import diff files. It stores the current sequence in `last.state.txt` inside the `-diffdir` directory. The downloaded diff files are cached in this directory as well.
To start the update process::
- imposm3 run -config config.json
+ imposm run -config config.json
-You can stop processing new diff files SIGTERM (``crtl-c``), SIGKILL or SIGHUP. You should create systemd/upstart/init.d service for ``imposm3 run`` to always run in background.
+You can stop processing new diff files SIGTERM (``crtl-c``), SIGKILL or SIGHUP. You should create systemd/upstart/init.d service for ``imposm run`` to always run in background.
You can change to hourly updates by adding `replication_url: "https://planet.openstreetmap.org/replication/hour/"` and `replication_interval: "1h"` to the Imposm configuration. Same for daily updates (works also for Geofabrik updates): `replication_url: "https://planet.openstreetmap.org/replication/day/"` and `replication_interval: "24h"`.
@@ -224,9 +224,9 @@ The ``diff`` sub-command requires similar options as the ``import`` sub-command.
To update an existing database with three change files::
- imposm3 diff -config config.json changes-1.osc.gz changes-2.osc.gz changes-3.osc.gz
+ imposm diff -config config.json changes-1.osc.gz changes-2.osc.gz changes-3.osc.gz
-Imposm 3 stores the sequence number of the last imported changeset in `${cachedir}/last.state.txt`, if it finds a matching state file (`123.state.txt` for `123.osc.gz`). Imposm refuses to import the same diff files a second time if these state files are present.
+Imposm stores the sequence number of the last imported changeset in `${cachedir}/last.state.txt`, if it finds a matching state file (`123.state.txt` for `123.osc.gz`). Imposm refuses to import the same diff files a second time if these state files are present.
Remember that you have to make the initial import with the ``-diff`` option. See above.
diff --git a/packaging.sh b/packaging.sh
index ad06483..41c47d6 100644
--- a/packaging.sh
+++ b/packaging.sh
@@ -3,7 +3,7 @@
cat < building imposm package'
rm -rf $BUILD_TMP
mkdir -p $BUILD_TMP
pushd $IMPOSM_SRC
- cp imposm3 $BUILD_TMP
+ cp imposm $BUILD_TMP
+ cp README.md $BUILD_TMP
cp example-mapping.json $BUILD_TMP/mapping.json
popd
@@ -211,12 +212,12 @@ popd
pushd $BUILD_BASE
- VERSION=`$BUILD_TMP/imposm3 version`-linux-x86-64
- rm -rf imposm3-$VERSION
- mv imposm-build imposm3-$VERSION
- tar zcvf imposm3-$VERSION.tar.gz imposm3-$VERSION
+ VERSION=`$BUILD_TMP/imposm version`-linux-x86-64
+ rm -rf imposm-$VERSION
+ mv imposm-build imposm-$VERSION
+ tar zcvf imposm-$VERSION.tar.gz imposm-$VERSION
mkdir -p /vagrant/dist
- mv imposm3-$VERSION.tar.gz /vagrant/dist/
+ mv imposm-$VERSION.tar.gz /vagrant/dist/
echo "###########################################################################"
echo " Call the following commands to download the created binary packages:"
diff --git a/replication/source.go b/replication/source.go
index 2a91ec1..3dd1811 100644
--- a/replication/source.go
+++ b/replication/source.go
@@ -20,11 +20,11 @@ import (
var log = logging.NewLogger("replication")
type NotAvailable struct {
- url string
+ url string
}
func (e *NotAvailable) Error() string {
- return fmt.Sprintf("File not available: %s", e.url)
+ return fmt.Sprintf("File not available: %s", e.url)
}
type Sequence struct {
@@ -129,7 +129,7 @@ func (d *downloader) download(seq int, ext string) error {
if err != nil {
return err
}
- req.Header.Set("User-Agent", "Imposm3 "+imposm3.Version)
+ req.Header.Set("User-Agent", "Imposm "+imposm3.Version)
resp, err := d.client.Do(req)
if err != nil {
return err
diff --git a/replication/source_test.go b/replication/source_test.go
index 65b9afd..f85fa65 100644
--- a/replication/source_test.go
+++ b/replication/source_test.go
@@ -22,7 +22,7 @@ func TestSeqPath(t *testing.T) {
}
func TestWaitTillPresent(t *testing.T) {
- tmpdir, err := ioutil.TempDir("", "imposm3tests")
+ tmpdir, err := ioutil.TempDir("", "imposm_tests")
if err != nil {
t.Fatal(err)
}
diff --git a/test/any_any_test.go b/test/any_any_test.go
index 86df7ed..e39caa6 100644
--- a/test/any_any_test.go
+++ b/test/any_any_test.go
@@ -13,7 +13,7 @@ import (
func TestAnyAny_Prepare(t *testing.T) {
var err error
- ts.dir, err = ioutil.TempDir("", "imposm3test")
+ ts.dir, err = ioutil.TempDir("", "imposm_test")
if err != nil {
t.Fatal(err)
}
diff --git a/test/completedb_test.go b/test/completedb_test.go
index 9b64a81..76b86c3 100644
--- a/test/completedb_test.go
+++ b/test/completedb_test.go
@@ -22,7 +22,7 @@ var ts importTestSuite
func TestComplete_Prepare(t *testing.T) {
var err error
- ts.dir, err = ioutil.TempDir("", "imposm3test")
+ ts.dir, err = ioutil.TempDir("", "imposm_test")
if err != nil {
t.Fatal(err)
}
diff --git a/test/expire_tiles_test.go b/test/expire_tiles_test.go
index 051a62b..9dc9024 100644
--- a/test/expire_tiles_test.go
+++ b/test/expire_tiles_test.go
@@ -17,7 +17,7 @@ import (
func TestExpireTiles_Prepare(t *testing.T) {
var err error
- ts.dir, err = ioutil.TempDir("", "imposm3test")
+ ts.dir, err = ioutil.TempDir("", "imposm_test")
if err != nil {
t.Fatal(err)
}
diff --git a/test/helper_test.go b/test/helper_test.go
index bec6fd6..99d5392 100644
--- a/test/helper_test.go
+++ b/test/helper_test.go
@@ -22,9 +22,9 @@ import (
)
const (
- dbschemaImport = "imposm3testimport"
- dbschemaProduction = "imposm3testproduction"
- dbschemaBackup = "imposm3testbackup"
+ dbschemaImport = "imposm_test_import"
+ dbschemaProduction = "imposm_test_production"
+ dbschemaBackup = "imposm_test_backup"
)
type importConfig struct {
diff --git a/test/route_relation_test.go b/test/route_relation_test.go
index 13e0c7b..748c40f 100644
--- a/test/route_relation_test.go
+++ b/test/route_relation_test.go
@@ -13,7 +13,7 @@ import (
func TestRouteRelation_Prepare(t *testing.T) {
var err error
- ts.dir, err = ioutil.TempDir("", "imposm3test")
+ ts.dir, err = ioutil.TempDir("", "imposm_test")
if err != nil {
t.Fatal(err)
}
diff --git a/test/single_table_test.go b/test/single_table_test.go
index 690faf3..a7db5c1 100644
--- a/test/single_table_test.go
+++ b/test/single_table_test.go
@@ -16,7 +16,7 @@ const RelOffset = -1e17
func TestSingleTable_Prepare(t *testing.T) {
var err error
- ts.dir, err = ioutil.TempDir("", "imposm3test")
+ ts.dir, err = ioutil.TempDir("", "imposm_test")
if err != nil {
t.Fatal(err)
}