experimental project to create PBF vector tiles

Overview

Vector tiles producer

This is an experimental project to create vector tiles.

What does this do?

This creates vector tiles based on the mapnik proto for a given area at chosen zoom levels. The produced geometries are clipped at the limits of the tiles.

Dependancies:

mapnik

mapnik-vector-tile

Install and compile

Install Mapnik. <https://github.com/mapnik/mapnik>

Get mapnik-vector-tile sources. <https://github.com/mapbox/mapnik-vector-tile> Go to Mapnik-vector-tile directory and:

make

Then:

export MAPNIK_VECTOR=path/to/your/mapnik-vector-tile/src

The sources directory should also contain the vector_tile.pb.cc and vector_tile.pb.h (they are generated when doing "make").

And

make create

to compile the project.

Use it!

Chose a tile (for the whole world: z=0, x=0, y=0). This is the area for which you want to create subtiles until the maxz zoom level. Give then a path to your Mapnik stylesheet (xml). If you want compressed PBF tiles, add the --compress option, else you will get uncompressed PBF tiles.

./create_tiles z maxz x y [--compress] path/to/stylesheet

To get informations about the created tiles, I have modified a bit the Mapnik-vector-tile's "tileinfo" example to read easily the informations of a vector tile.

make tileinfo

Known problems

For tiles containing big polygons (which are on several tiles), the produced geometry may contain (parts of) the tile bounds.

You might also like...
The Express LRS Handset project is first and foremost an experimental test bed for pushing the envelope with what can be done with the ELRS radio link

The Express LRS Handset project is first and foremost an experimental test bed for pushing the envelope with what can be done with the ELRS radio link

VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP

VexCL VexCL is a vector expression template library for OpenCL/CUDA. It has been created for ease of GPGPU development with C++. VexCL strives to redu

2D Vector Graphics Engine Powered by a JIT Compiler

Blend2D 2D Vector Graphics Powered by a JIT Compiler. Official Home Page (blend2d.com) Official Repository (blend2d/blend2d) Public Chat Channel Zlib

Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.

This project is not actively maintained. NanoVG NanoVG is small antialiased vector graphics rendering library for OpenGL. It has lean API modeled afte

libsvm websitelibsvm - A simple, easy-to-use, efficient library for Support Vector Machines. [BSD-3-Clause] website

Libsvm is a simple, easy-to-use, and efficient software for SVM classification and regression. It solves C-SVM classification, nu-SVM classification,

linalg.h is a single header, public domain, short vector math library for C++

linalg.h linalg.h is a single header, public domain, short vector math library for C++. It is inspired by the syntax of popular shading and compute la

SIMD Vector Classes for C++

You may be interested in switching to std-simd. Features present in Vc 1.4 and not present in std-simd will eventually turn into Vc 2.0, which then de

An implementation of a weak handle interface to a packed vector in C++

Experimental handle container in C++ Overview Following on from c-handle-container, this library builds on the same ideas but supports a dynamic numbe

Mapnik implemention of Mapbox Vector Tile specification

mapnik-vector-tile A Mapnik implemention of Mapbox Vector Tile specification. Provides C++ headers that support rendering geodata into vector tiles an

Build vector tilesets from large collections of GeoJSON features.
Build vector tilesets from large collections of GeoJSON features.

tippecanoe Builds vector tilesets from large (or small) collections of GeoJSON, Geobuf, or CSV features, like these. ⚡ Mapbox has a new service for cr

Open-source vector similarity search for Postgres

Open-source vector similarity search for Postgres

Benchmarking a trivial replacement for std::vector
Benchmarking a trivial replacement for std::vector

std::vector replacement benchmark Dependencies You'll need gnuplot and bash to run ./bench.sh. In addition to that, you'll need to have gcc and clang

Support Vector Machines Implementation from scratch in C++

SVM C++ Samples These are sample programs of Support Vector Machines from scratch in C++. 1. Implementation Model Class Problem Decision Boundary Code

Public repository for rolling release of main Vector robot code repository.

vector Public repository for rolling release of main Vector robot code repository. This rolling release will be worked to completion until all non-thi

static_vector implementation in terms of std::vector. No need to implement each function again and again ;)

static_vector static_vector implementation in terms of std::vector. No need to implement each function again and again ;) The usage is basically the s

A wrapper for intel SSE/AVX vector instructions

VMath A wrapper for intel SSE/AVX vector instructions This is just a toy thing to figure out what working with intrinsics is like. I tried to keep it

A wrapper of C++ std::vector for functional programming

Say hello to functional C++ vectors A wrapper for C++ std::vector geared towards functional programming and fluent APIs. The primary focus is readabil

Implementation and tutorial for a dynamic vector data-structure in C.

Vec: A Dynamic Vector in C The subject.md file contains exercises for this implementation if you want to do it yourself. In that case, don't peek at t

A dynamic array similar to std::vector

Vector [] vector is a dynamic array implemented using c++ and it has almost all the features of std::vector including iterators. Usage can be used in

Comments
  • Rendering ignores zoom level

    Rendering ignores zoom level

    Hello,

    I'm trying to render vector tiles using your tools. I have faced with the issue that it seems to ignore the zoom-related rules. I use standard https://github.com/gravitystorm/openstreetmap-carto mapnik stylesheets. When I render it to png tiles, the 0/0/0.png tile is a few kilobyte file that contains a simple image of the earth. When I render it to vector.pbf using your tools, the 0/0/0.pbf file is a large file that seems to have all the map features on the 0-level zoom. How can we use the same zoon-related rules to keep 0-level zoom as simple as it rendered on png? Thank you.

    opened by plashchynski 1
Owner
vross
vross
Mapnik implemention of Mapbox Vector Tile specification

mapnik-vector-tile A Mapnik implemention of Mapbox Vector Tile specification. Provides C++ headers that support rendering geodata into vector tiles an

Mapbox 538 Nov 11, 2022
Build vector tilesets from large collections of GeoJSON features.

tippecanoe Builds vector tilesets from large (or small) collections of GeoJSON, Geobuf, or CSV features, like these. ⚡ Mapbox has a new service for cr

Mapbox 2.2k Dec 28, 2022
Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL

Mapbox GL Native A C++ library that powers customizable vector maps in native applications on multiple platforms by taking stylesheets that conform to

Mapbox 4.2k Jan 6, 2023
This project is a small 2D game with minilibx. You'll learn about textures, sprites and tiles.

(੭。╹▿╹。)੭ so_long This project is a small 2D game with minilibx. You'll learn about textures, sprites and tiles. Preview How play the game To play thi

ChloeKim 10 Aug 16, 2022
The PULP Ara is a 64-bit Vector Unit, compatible with the RISC-V Vector Extension Version 0.9, working as a coprocessor to CORE-V's CVA6 core

Ara Ara is a vector unit working as a coprocessor for the CVA6 core. It supports the RISC-V Vector Extension, version 0.9. Dependencies Check DEPENDEN

null 185 Dec 24, 2022
Indexes points and lines and generates map tiles to display them

Datamaps This is a tool for indexing large lists of geographic points or lines and dynamically generating map tiles from the index for display. Depend

Eric Fischer 329 Dec 6, 2022
Wang Tiles Grid generator

Wang Tiles Grid generator Quick Start The project is using nobuild build system. $ cc -o nobuild nobuild.c $ ./nobuild $ ./wang -live Goal Trying to g

Tsoding 31 Dec 28, 2022
Create a calculator of any kind in any language, create a pr.

calculators Create a calculator of any kind in any language, create a pr. Create a calculator of any type using the programming language of your choic

Akshay Gautam 2 Oct 21, 2022
This tool allow you to create / load / edit models used for create a cinematic in game for World of Warcraft 3.3.5 version

CameraCinematic - Discord Introduction This tool allow you to create / load / edit models used for create a cinematic in game for World of Warcraft 3.

Intemporel 9 Mar 14, 2022
This is an experimental OS-from-scratch project. Just for demonstration, not useful at all.

OS Playground This is an experimental OS-from-scratch project. Just for demonstration, not useful at all. Different from OS in other projects, this OS

null 5 Nov 5, 2022