Hi, I searched for about 2 hours for a good solution but I can't find one. I have a project, for a certain security company, which has a certain operations base. They want a map of their base of operations including different objects (cameras, certain rooms, fences, doors, lights etc), with the ability to switch between different floors in that building.

So I need to find the easiest way to

  1. install my own OSM tile server on linux
  2. Find the easiest way to edit it to create the map of that base with the above mentioned objects
  3. be able to scroll between different floors on the base building.

I thought about using openmaptiles + JOSM with a certain plugin for floors.. is that possible? anyone has a good option?

Thank you

asked 07 Dec '18, 18:05

igurman's gravatar image

igurman
262
accept rate: 0%

edited 07 Dec '18, 21:19

aseerel4c26's gravatar image

aseerel4c26 ♦
31.7k15235543

No one can help?

(08 Dec '18, 15:48) igurman
2

Impatient much? It's been less than a day...

(08 Dec '18, 16:27) SomeoneElse ♦
3

@igurman: contact one of the Commercial_OSM_Software_and_Services if you want it now, complete and tailored to you.

(08 Dec '18, 16:31) aseerel4c26 ♦

JOSM is probably your best bet for creating the floor plan maps – it's a mature editor that supports advanced mapping tasks and has tools such as filters which are useful for indoor mapping.

There's no such straightforward option for the rendering stack, and you have a lot of options there. For example, OpenLevelUp is a popular indoor renderer for OSM data. It uses an Overpass API backend, though – so if you need to keep the data private and cannot contribute it to OSM, you'll have to run your own instance. I have no experience with customizing it, so YMMV.

Overall, my advice would be to consider whether your project is complex enough to even require a "proper" backend solution such as Overpass API, OpenMapTiles, or a custom tile server. For a map of a single facility, a KISS solution might work just fine. For example, you could use Leaflet to display a GeoJSON file containing your data. You can export GeoJSON from JOSM, and use a Leaflet layer switcher (or code your own control) for switching between levels. The benefits of this approach are that it doesn't require a smart server – only static files – and that Leaflet is very easy to use if you can figure out some rudimentary JavaScript coding. Carefully consider whether the limitations (doesn't work for bigger maps, no editing API, comparatively limited styling/cartography options) are an issue for your project, though.

permanent link

answered 09 Dec '18, 15:03

Tordanik's gravatar image

Tordanik
10.3k1294125
accept rate: 35%

Thanks for the reply. I did export a GeoJSON file of the are of the map which I edit with JOSM and defined level tag for the different floors. I tried to use the leaflet library to hide/show different levels with no success.. is there any template for this maybe?

(10 Dec '18, 10:53) igurman

@igurman: Have a look at the "filter" section of the tutorial linked above. This should get you to the point where you can display only one particular level's features.

Afterwards, simply create one such layer per level, and add them to a layer switcher. See the "Layers Control" section of the "Layer Groups and Layers Control" tutorial. You want something like

L.control.layers(baseMaps, overlayMaps).addTo(map);

– but with baseMaps and/or overlayMaps populated with your GeoJSON-based layers, of course. (The difference here is that there can only be one base map at a time, but possibly multiple overlay maps. A bit like the difference between radio buttons and check boxes.)

(13 Dec '18, 22:20) Tordanik
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×480
×131
×8
×1

question asked: 07 Dec '18, 18:05

question was seen: 191 times

last updated: 13 Dec '18, 22:20

powered by OSQA