-1

I am recently intrestring in Indoor Mapping, and I came across Mappedin, whose innovative work particularly their data format and SDK impressed me. One of the features of Mappedin is its capability to support real-time wayfinding updates as the map is being created. This means that any modifications to your map such as adding a new room or adjusting doorways result in immediate updates to the wayfinding functionality. I encourage you all to explore Mappedin Studio to gain hands-on experience in creating your own maps.

I'd like to know how the magic happen. Based on the Data Model, it appears that the Node layer plays a critical role in facilitating wayfinding. Mappedin offers several demo maps for experimentation, and I chose the "School demo" for my research. In this scenario, it becomes evident that wayfinding computations occur on the client-side. By extracting the map data and rendering them using MapLibre GL, I was able to visualize the green points representing nodes from the map, each interconnected with its neighbors via green lines. The gray areas denote rooms, red points signify doors, black zones indicate obstructions such as desks or other objects, while the white spaces represent hallways. A blue line illustrates an example of a calculated route.

It seems clear that the nodes form a navigation graph upon which pathfinding algorithms, such as A* or Dijkstra, can operate effectively.

With that said, I have two questions that I'm eager to address:

  1. Automated Graph Generation

How can one automatically generate a graph (comprising nodes and their relationships) that accurately represents walkable spaces?

enter image description here

  1. Path Precision

Why doesn't the resulting path precisely follow the graph nodes?

In a graph-based navigation system, the identified path should consist of graph nodes and edges, with each edge's vertices being adjacent. However(see image below), as depicted, segment AB consists of nodes A and B, which are not directly connected within the graph. enter image description here

This appears to be an area for potential enhancement.

Any idea how to implement this?

4
  • Have you contacted the company? Looking at your images my guess is they are extracting the medial axis of each room to create the graph.
    – Hornbydd
    Commented Jul 14 at 17:08
  • @Hornbydd: I did not contact the company. Since this is a pure technical problem, not product problem which can apply their commercial support. Also mappedin does not provide any development contact manners.
    – giser
    Commented Jul 15 at 0:25
  • Not sure that such schematic of 'travel' is good. Using largest room and going from door at it's bottom (S) to one at the right (E) student(?) have to walk to the middle of the room and sharp turn right. No obstructions in this room, why not a beeline? Boot camp:)
    – FelixIP
    Commented Jul 16 at 2:37
  • Maybe more nodes (along the way for example) should be added to the graph.
    – giser
    Commented Jul 17 at 3:19

2 Answers 2

2

This is more a comment than an answer. It seems that graph based on a regular points:

enter image description here

will produce more realistic path:

enter image description here

compared to skeleton approach. Shortest path not necessarily goes in the middle between obstacles.

Even simplest triangular tessellation with much bigger space between nodes:

enter image description here

produces good looking results:

enter image description here

Importantly, tessellation is significantly easier calculation compared to skeleton.

3
  • Hi, sorry for my late reply, how do you make the test? In QGIS?
    – giser
    Commented Jul 29 at 6:09
  • I used ArcGis and python networkx module. Yes it is. It is too late to ask
    – FelixIP
    Commented Jul 29 at 21:18
  • Sorry but I have to deal some personal event. :(
    – giser
    Commented Jul 29 at 23:08
0
  1. Automated Graph Generation

This is most likely based on voronoi polygons. Similar to how centerlines are typically created. You can find some inspiration on this in pygeoops.centerline

  1. Path Precision

Most likely the original path followed the original graph/nodes, but to get a cleaner result I think a simplify function was applied to the "raw" result.

Not the answer you're looking for? Browse other questions tagged or ask your own question.