Skip to content

Introduction

suheeeee edited this page Jul 17, 2020 · 4 revisions

Purpose of InEditor




 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.

Attributes in IndoorGML

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

Geometry provided by InEditor

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 has floor height, wall height, LLC, and URC. LLC(Lower Left Corner) and URC(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 define LLC and URC determines 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

 The floor height is the distance from the ground to the floor, and the wall height is 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 to floor height, but it is less than or equal to floor height plus the wall height.


For example, Suppose that a floor plan like Figure A exists and arbitrary coordinates are set as shown in Figure B.

Figure A is loaded into InEditor and used as the background of 1F, the floor properties of 1F can be set as shown in Figure C. After, you can create CellSapce(C1) like Figure C.

Then, in the gml document created by this situation, the coordinates of each corner in C1 will set like Figure D.

The orientation and relationship of geometry

Through the definition of geometry in ISO19107, the normal of the surface must point outwards. A right-handed system is used, ie, when the ordering of the direction of rotation of the curled fingers of the right hand, then the thumb points towards the outside.


 The orientation of the geometry is also an important factor when determining the partialBoundedBy and duality values.

  • partialBoundedBy of CellSpace: The orientation of the surface of the CellSpace where the CellSpaceBoundary is inserted matches the direction of the CellSpaceBoundary.
  • duality of Transition: In case of Transition(T1-1) from S1 to S2 in the situation as above, Duality of Transition is CellSpaceBoundary(CB1-2) which is partialBoundedBy of CellSpace.



✨ If you want some more detail information about IndoorGML, please visit http://indoorgml.net/
Clone this wiki locally