geolite 0.0.1

open source geocode solution
geolite-0.0.1 is not a library.

geolite

this is a work in progress and, for now, new patch versions have no backward-compatibility guarantees

open source geocode

actions quality coverage security


getting started

with docker

# command line
$ docker run pjpimentel/geolite:0.0.1 -- --version
# pre-built countries geocodes
$ docker run -p 8080:8080 pjpimentel/geolite:prebuilt-brazil
# open http://localhost:8080

with cargo

$ cargo install geolite
$ geolite --version

docs

  1. source code modules
    1. database
    2. osm-pbf-file
    3. extract
    4. index
    5. optimize
    6. query
    7. cli
    8. http
  2. docker images
    1. base image
    2. pre-built images
  3. cookbook
    1. execute all necessary steps
    2. extract each data from a pbf file
    3. index extracted data
    4. optimize data
    5. query
    6. explore
    7. merge separately-built databases

docker images

base image

$ docker run pjpimentel/geolite:0.0.1 -- --version
$ docker run -t -v ./data:/data pjpimentel/geolite:0.0.1 build brazil

pre-built images (soon)

size matters: once a country's data grows too large for a docker image, its pre-built image stops being updated and may be dropped.

docker run -p 8080:8080 pjpimentel/geolite:prebuilt-brazil
docker run -p 8080:8080 pjpimentel/geolite:prebuilt-brazil-YYYYMMDDHHMM
# open http://localhost:8080

available country list

  1. brazil
  2. portugal

cookbook

execute all necessary steps

$ geolite build brazil
# or with docker
$ docker run --rm -t -v ./geolite-data:/.geolite pjpimentel/geolite:latest build brazil
$ docker run --rm -p 8080:8080 -v ./geolite-data:/.geolite pjpimentel/geolite:latest http-server

extract each data from a pbf file

$ geolite osm-pbf-file download brazil
$ geolite extract osm-pbf-blob-chunks brazil
$ geolite extract osm-pbf-data brazil
$ geolite extract osm-admin-levels
$ geolite extract osm-house-numbers

index extracted data

$ geolite index admin-levels-hierarchy
$ geolite index user-friendly-name
$ geolite index coordinates

optimize data

$ geolite optimize delete-intermediary-data
$ geolite optimize sqlite-file

query

$ geolite query "-23.970949,-46.318730"
$ geolite query "rua castro alves, embare, santos, sao paulo"

explore

$ geolite http-server

merge separately-built databases

# machine 1
$ geolite --sqlite-path sudeste.sqlite3 build sudeste
# machine 2
$ geolite --sqlite-path nordeste.sqlite3 build nordeste

# merge all builds into a new combined database (created fresh)
$ geolite merge brazil.sqlite3 sudeste.sqlite3 nordeste.sqlite3 ...

# or with docker 
$ docker run --rm -t -v ./geolite-data:/.geolite pjpimentel/geolite:latest --sqlite-path /.geolite/sudeste.sqlite3 build sudeste
$ docker run --rm -t -v ./geolite-data:/.geolite pjpimentel/geolite:latest --sqlite-path /.geolite/nordeste.sqlite3 build nordeste
$ docker run --rm -t -v ./geolite-data:/.geolite pjpimentel/geolite:latest --sqlite-path /.geolite/brazil.sqlite3 merge /.geolite/brazil.sqlite3 /.geolite/sudeste.sqlite3 /.geolite/nordeste.sqlite3
$ docker run --rm -p 8080:8080 -v ./geolite-data:/.geolite pjpimentel/geolite:latest --sqlite-path /.geolite/brazil.sqlite3 http-server

license: GNU AGPLv3