-
Notifications
You must be signed in to change notification settings - Fork 18
Introduction
To generate IndoorGML data file, we should use InFactory API correctly. It is possible to generate the data of the attributes and geometry data of each element in IndoorGML by sending that information to InFactory in simple JSON format. For this, you must create the geometry data from the floor plan or coordinates of indoor space. If the data volume is small and simple enough, you can write the JSON data on the text editor or somehow. However if not, it will be difficult work to deal with indoor space information with text format. InEditor help solves these problems. InEditor's primary goal is to provide users with a canvas that can act as a floorplan and communicate with InFactory based on the information on the canvas to generate an IndoorGML file.
- Geometry and GML Object
| CellSpace | CellSpaceBoundary | State | Transition | |
|---|---|---|---|---|
| 2D | Polygon | LineString | Point | LineString |
| 3D | Solid | Polygon | Point | LineString |
- Geometry Type
| Point | LineString | Polygon | Solid |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
-
How to define coordinates of geometry
As you can see on the upper table, IndoorGML provides 3D geometry data. However, cause InEditor is a 2D graphics editor, if a user wants to define 3D geometry data for IndoorGML file, the conversion that Polygon to Solid and LineString to Polygon must be needed. Also, canvas coordinates in InEditor might be different from the coordinates the user wants. For these reasons, In Editor provide coordinates transform.
InEditor treats one canvas as one floor, and each floor hasfloor height,wall height,LLC, andURC.LLC(Lower Left Corner) andURC(Upper Right Corner) are the corner coordinate values of the floor, respectively. InEditor transforms the coordinates of the canvas using these two values and the size of the canvas. These transformed coordinates are applied to the generated IndoorGML file. How users defineLLCandURCdetermines the criteria of geometries at the data they generate. For example, the output coordinates of each input can mean:- Enter the size of canvas → Simple relative coordinates
- Actual latitude and longitude value of each edge → Actual coordinates of WGS 84 standard
- Horizontal / vertical length of the actual building (m) → Relative coordinates based on how far away from the origin

Thefloor heightis the distance from the ground to the floor, and thewall heightis the height of the wall of the floor, that is, the distance from the bottom of the floor to the ceiling. To define 3D geometry, InEditor simply extrudes 2D geometry that exists in InEditor. Therefore the z value of the coordinate value output to the IndoorGML file is greater than or equal tofloor height, but it is less than or equal tofloor heightplus thewall height.
Attributes provided by InEditor. Some attributes are set automatically by InEditor and are not editable by the user.
- Common
| name | desc | editable in InEditor |
|---|---|---|
| id | the identifier of this feature. Need to be started with the alphabet | X |
| name | nickname of this feature | O |
| duality | id of dual space of the object | X |
| description | additional information about the object | X |
- CellSpace
| name | desc | editable in InEditor |
|---|---|---|
| partialBoundedBy | Array of CellSpaceBoundarys’ id which places at the geometric boundary of this CellSpace |
X |
| external Reference | An external reference not defined in the current document. | O |
- CellSpaceBoundary
| name | desc | editable in InEditor |
|---|---|---|
| external Reference | An external reference not defined in the current document. | O |
- State
| name | desc | editable in InEditor |
|---|---|---|
| connected | array of Transitions' id connected with this state | O |
- Transition
| name | desc | editable in InEditor |
|---|---|---|
| connects | array of States’ id connected with this Transition | O |
| weight | Weight value on this transition as an edge of network | O |
✨ If you want some more detail information about IndoorGML, please visit http://indoorgml.net/



