TileServiceApi.xid.xml 5.14 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 https://xid.location.studio/schema/V1.0.0/XtensibleInterfaceDefinition.xsd"
               identity="TileServiceApi.xid.xml">
    <title>Tile Services API Specifications</title>
    <comment>This file defines the SLAM tile services API.</comment>

  <!-- Include all known definitions -->
  <import ref="https://xid.location.studio/HPE/V1.2/HpeGnss.xid.xml" local="HpeGnss.xid.xml" />
  <import ref="https://xid.location.studio/HPE/V1.2/HpeCellular.xid.xml" local="HpeCellular.xid.xml" />
  <import ref="https://xid.location.studio/HPE/V1.2/HpeWiFi.xid.xml" local="HpeWiFi.xid.xml" />
  <import ref="https://xid.location.studio/Tensor/V1.1/ApiBase.xid.xml" local="ApiBase.xid.xml" />
  <import ref="https://xid.location.studio/GeoSpatial/V1.0/SpatialDefs.xid.xml" local="SpatialDefs.xid.xml" />


  <namespace name="SLAM">
    <using namespace="HPE"/>
    <using namespace="Tensor"/>
     
    <interface name="TileService">
      <comment>Interface for tile service. </comment>
      
      <!-- DownloadTile operation-->
      <operation name="DownloadTile">
        <comment>Interaction download a tile</comment>
        <input name="input" type="Tensor.InputBase" sid="0x101a">
          <comment>defines the input data structure for DownloadTile operation </comment>
          <elem name="tileid" type="Tensor.UUID" multiplicity="1" >
            <comment>element specifies UUID of the the tile</comment>
          </elem>
        </input>

        <output name="output"  type="Tensor.OutputBase" sid="0x102a">
          <comment>defines the output data for DownloadTile operation</comment>
          <elem name="tile" type="Tile" multiplicity="0..1" >
            <comment>element defines the downloaded tile</comment>
          </elem>
        </output>
        
      </operation>

      <!-- FindTilesByBoundingbox operation -->
      <operation name="FindTilesByBoundingbox">
        <comment>find tiles</comment>
        <input name="input" type="Tensor.InputBase" sid="0x103a">
          <comment>defines the input data for FindTilesByBoundingbox operation </comment>
          <elem name="bounding" type="GeoSpatial.BoundingBox" multiplicity="1">
            <comment>the bounding box that intersect with tiles</comment>
          </elem>
          <elem name="floor" type="Tensor.int16" multiplicity="0..1">
            <comment>optional floor number for more precise search</comment>
          </elem>
        </input>

        <output name="output" type="Tensor.OutputBase" sid="0x104a">
          <comment>defines the output data for FindTilesByBoundingbox operation</comment>
          <elem name="tiles" type="TileSet"  multiplicity="0..1">
            <comment>a set of tiles as the result of the FindTilesByPos operation</comment>
          </elem>
        </output>
      </operation>

      <!-- FindTilesByRefId operation -->
      <operation name="FindTilesByRefId">
        <comment>find tiles</comment>
        <input name="input" type="Tensor.InputBase" sid="0x103a">
          <comment>defines the input data for FindTilesByRefId operation </comment>
          <elem name="refids" type="Tensor.string" multiplicity="1..*">
            <comment>the bounding box that intersect with tiles</comment>
          </elem>
          <elem name="floor" type="Tensor.int16" multiplicity="0..1">
            <comment>optional floor number for more precise search</comment>
          </elem>
          <elem name="signaltype" type="ObservationType" multiplicity="1">
            <comment>the radio type of the reference points</comment>
          </elem>
        </input>

        <output name="output" type="Tensor.OutputBase" sid="0x104a">
          <comment>defines the output data for FindTilesByRefId operation</comment>
          <elem name="tiles" type="TileSet"  multiplicity="0..1">
            <comment>a set of tiles as the result of the FindTilesByPos operation</comment>
          </elem>
        </output>
      </operation>
      
      <!-- EstimatePosition operation -->
      <operation name="EstimatePosition">
        <comment> estimate posiion from a set of Wifi rssi observations</comment>
        <input name="input" type="Tensor.InputBase" sid="0x106a">
          <comment>input for EstimatePosition operation</comment>
          <elem name="observations" type="ObservationSet"  multiplicity="1">
            <comment>a set of observed rssi values</comment>
          </elem>
        </input>

        <output name="output" type="Tensor.OutputBase" sid="0x107a">
          <comment>output for EstimatePosition operation</comment>
          <elem name="pos" type="Shape" multiplicity="0..*"  polymorphic="true">
            <comment>approximate position of the tile</comment>
          </elem>
          
        </output>
      </operation>
         
    </interface>
    
    </namespace>
</specification>