ShapePolygon.xid.xml 3.41 KB
<?xml version="1.0" encoding="UTF-8" ?>

<specification xmlns="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               xmlns:xid="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd XtensibleInterfaceDefinition.xsd"
    identity="ShapePolygon.xid.xml">
  <title>2D and 3D Polygon definitions.</title>

  <import ref="https://xid.location.studio/GeoSpatial/V1.0/ShapeCommon.xid.xml" local="ShapeCommon.xid.xml" />

  <namespace name="GeoSpatial">
    <using namespace="Tensor"/>

    <enum name="PolygonArrayUnits" type="Tensor.int8" default="MicroDegrees">
      <literal name="undefined" value="0"/>
      <literal name="MicroDegrees" value="1"/>
      <literal name="Meters" value="2"/>
      <literal name="Millimeters" value="2"/>
    </enum>

    <array name="PointInt32" type="Tensor.int32" size="2">
      <comment>Point (x,y) value with Int32 ordinals.</comment>
    </array>

    <array name="PointInt32Array" type="PointInt32">
      <comment>Array of PointInt32 values.</comment>
    </array>

    <struct name="Polygon" type="Point2D"  rttkey="GeoSpatial.ShapeType.Polygon">
      <comment>
        Polygon is a 2D polygon with lat/lon at the geometric center.
      </comment>

      <elem name="units" type="PolygonArrayUnits" multiplicity="1" default="1">
        <comment>
          Defines the units of the polgyon points.  By default, thease are in units of microdegrees
          (rotational frame, e.g WGS84 lat/lon), which limits resolution to a nominal 11 cm depending where
          it is defined on the globe.  For higher resolution, use meters or millimeters,
          which defines the polygon a local cartesian reference frame.
        </comment>
      </elem>

      <elem name="points" type="PointInt32Array" multiplicity="1" >
        <tag name="unit" value="PolgonArrayUnits"/>
        <comment>Sequential points of polygon.</comment>
      </elem>
    </struct>


    <struct name="Polygon3D" type="Point3D"  rttkey="GeoSpatial.ShapeType.Polygon3D">
      <comment>
        Polygon is a 3D polygon with lat/lon at the geometric center.  The altitude element represents
        the minimum altitude value of the bounding box.  The 'vert' element represents the vertical dimension
        relative to the altitude.
      </comment>

      <elem name="units" type="PolygonArrayUnits" multiplicity="1" default="1">
        <comment>
          Defines the units of the polgyon points.  By default, thease are in units of microdegrees
          (rotational frame, e.g WGS84 lat/lon), which limits resolution to a nominal 11 cm depending where
          it is defined on the globe.  For higher resolution, use meters or millimeters,
          which defines the polygon a local cartesian reference frame.
        </comment>
      </elem>

      <elem name="points" type="PointInt32Array" multiplicity="1" >
        <tag name="unit" value="PolgonArrayUnits"/>
        <comment>Sequential points of polygon.</comment>
      </elem>

      <elem name="vert" type="float32" multiplicity="1">
        <tag name="unit" value="meters"/>
        <comment>
          The 'vert' element represents the vertical dimension
          relative to the altitude.
        </comment>
      </elem>
    </struct>


  </namespace>
</specification>