OsmInTile

module
v0.0.0-...-d373c1a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2024 License: MIT

README

OsmInTile

OsmInTile is an experimental Go-based project for generating indoor vector tiles using OpenStreetMap (OSM) data. This tool is designed to parse OSM data and produce vector tiles suitable for indoor mapping applications, facilitating easier visualization and interaction with indoor spaces.

[!CAUTION] This project is a work in progress. See Sec. TODO to see the progress.

Table of Contents

  1. Introduction
  2. TODOs
  3. Installation
  4. Contributing
  5. License
  6. Acknowledgements

Introduction

Indoor mapping presents unique challenges compared to outdoor mapping, primarily due to the complexity and variability of indoor spaces. OsmInTile aims to simplify this by providing a tool that extracts indoor-related data from OSM and transforms it into vector tiles, which are ideal for high-performance rendering in applications like web maps and mobile apps.

TODOs
  • OSM Data Parsing:
    • Parsing osm .pbf files
    • Parsing osm .osm-XML files
    • Filtering unnecessary features on the fly
    • Insert important information into Spatialite
    • Optimize inserted data more by filtering unused tags
  • Vector Tile Generation:
    • Get Vector tiles with basic Room information to the user
    • Create Sprites and Texts
  • Customizable Output:
    • Allow customization of tile properties such as zoom levels, feature selection, and more
    • Allow customization of map styles
    • Make Demo Frontend removable
  • High Performance:
    • Create a on-disk and in-memory caching layer to limit requests to sqlite
    • Prerender adjacent tiles in spare time
    • Allow for rate-limits
  • Demo Frontend:
    • Create a basic Demo frontend with MapLibre
    • Create level selection
    • Create Documentation Page for using the indoor map in your project
  • Documentation and Distribution:
    • Document the usage and configuration
    • Create Prebuild binaries
    • Distribute via apt and docker hub

Installation

Prerequisites

You will need to have docker installed and running on your system

Installation Steps
  1. Download your data from Geofabrik in either the .osm or .pbf format (you may also cut it with osmium)
  2. Start the Server with make run --osm-file <path to your file>
  3. For more information see the help command or code make help

Contributing

We welcome contributions from the community!

To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Create a new Pull Request.

Please ensure your code follows the Go code style guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

OpenStreetMap: For providing the open data that makes this project possible.

@paulmach: For providing great geodata libraries like paulmach/orb and paulmach/osm

Go: For being a powerful and efficient programming language.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL