コード例 #1
0
QDomElement QgsWFSServer::createPolygonElem( QgsGeometry* geom, QDomDocument& doc ) const
{
  if ( !geom )
  {
    return QDomElement();
  }

  QDomElement polygonElem = doc.createElement( "gml:Polygon" );
  QgsPolygon poly = geom->asPolygon();
  for ( int i = 0; i < poly.size(); ++i )
  {
    QString boundaryName;
    if ( i == 0 )
    {
      boundaryName = "outerBoundaryIs";
    }
    else
    {
      boundaryName = "innerBoundaryIs";
    }
    QDomElement boundaryElem = doc.createElementNS( "http://www.opengis.net/gml", boundaryName );
    QDomElement ringElem = doc.createElement( "gml:LinearRing" );
    QDomElement coordElem = createCoordinateElem( poly.at( i ), doc );
    ringElem.appendChild( coordElem );
    boundaryElem.appendChild( ringElem );
    polygonElem.appendChild( boundaryElem );
  }
  return polygonElem;
}
コード例 #2
0
QDomElement QgsWFSServer::createLineStringElem( QgsGeometry* geom, QDomDocument& doc ) const
{
  if ( !geom )
  {
    return QDomElement();
  }

  QDomElement lineStringElem = doc.createElement( "gml:LineString" );
  QDomElement coordElem = createCoordinateElem( geom->asPolyline(), doc );
  lineStringElem.appendChild( coordElem );
  return lineStringElem;
}
コード例 #3
0
QDomElement QgsWFSServer::createPointElem( QgsGeometry* geom, QDomDocument& doc ) const
{
  if ( !geom )
  {
    return QDomElement();
  }

  QDomElement pointElem = doc.createElement( "gml:Point" );
  QgsPoint p = geom->asPoint();
  QVector<QgsPoint> v;
  v.append( p );
  QDomElement coordElem = createCoordinateElem( v, doc );
  pointElem.appendChild( coordElem );
  return pointElem;
}
コード例 #4
0
ファイル: qgswfsserver.cpp プロジェクト: mola/Quantum-GIS
QDomElement QgsWFSServer::createBoxElem( QgsRectangle* box, QDomDocument& doc ) /*const*/
{
  if ( !box )
  {
    return QDomElement();
  }

  QDomElement boxElem = doc.createElement( "gml:Box" );
  QVector<QgsPoint> v;
  QgsPoint p1;
  p1.set( box->xMinimum(), box->yMinimum() );
  v.append( p1 );
  QgsPoint p2;
  p2.set( box->xMaximum(), box->yMaximum() );
  v.append( p2 );
  QDomElement coordElem = createCoordinateElem( v, doc );
  boxElem.appendChild( coordElem );

  return boxElem;
}