Hexagon Geospatial
MENU

Developer Discussions

Discuss topics with other Hexagon Geospatial Power Portfolio developers and experts to get the most out of our products.
Showing results for 
Search instead for 
Do you mean 
Reply
Highlighted
Contributor
Posts: 31
Registered: ‎01-14-2018

EquijoinPipe output Geometry is missing

[ Edited ]

Hello all,

 

I have joined 2 text files using "EquijoinPipe" and displayed it on the map window but when I try to export it to "File Geodatabase", the output geometry type is dimmed which should be line,

 

input coordinate system.png

 

 

Although I made the same join for the same files in the GUI and it worked successfully.

---------------------

Also I tried to make the export through the export to OutputToTableService and it gives an error of "Input Recordset's coordinate system is missing", although I reviewed that I gave the connection a coordinate system.

 

and Here is my code:

 

PClient.Connections pClientConnections = this._document.Connections as PClient.Connections;
PClient.Connection pClientConnectionLIN = _currentApplication.CreateService("GeoMedia.Connection") as PClient.Connection;
PClient.Connection pClientConnectionLI2 = _currentApplication.CreateService("GeoMedia.Connection") as PClient.Connection;

//LIN
        pClientConnectionLIN.Type = "TextFile.GDatabase";
        pClientConnectionLIN.Name = "Text File Connection LIN";
        pClientConnectionLIN.Location = @"C:\Users\A\Desktop\SDRFiles\AG617394d26.LIN";
        pClientConnectionLIN.ConnectInfo =       @"DATA=C:\Users\A\Desktop\SDRFiles\AG617394d26.LIN;FORMAT=C:\Users\A\Desktop\SDRFiles\GM Project Config\TFD LIN.tfd;CSF=C:\Users\A\Desktop\SDRFiles\EgyptRedBelt.csf";
        pClientConnectionLIN.Mode = 0;
        pClientConnectionLIN.CoordSystemsMgr = coordSystemsMgr;        
        pClientConnectionLIN.Connect();

//LI2
        pClientConnectionLI2.Type = "TextFile.GDatabase";
        pClientConnectionLI2.Name = "Text File Connection LI2";
        pClientConnectionLI2.Location = @"C:\Users\A\Desktop\SDRFiles\AG617394d26.LI2";
        pClientConnectionLI2.ConnectInfo =          @"DATA=C:\Users\A\Desktop\SDRFiles\AG617394d26.LI2;FORMAT=C:\Users\A\Desktop\SDRFiles\GM Project Config\TFD LI2.tfd;CSF=C:\Users\A\Desktop\SDRFiles\EgyptRedBelt.csf";
        pClientConnectionLI2.Mode = 0;
        pClientConnectionLI2.CoordSystemsMgr = coordSystemsMgr;
        pClientConnectionLI2.Connect();

pClientConnections.Append(pClientConnectionLIN);
pClientConnections.Append(pClientConnectionLI2);

// LIN & LI2 OriginatingPipes
PClient.OriginatingPipe _LIN_origPipe = null;
PClient.OriginatingPipe _LI2_origPipe = null;

pClientConnectionLIN.CreateOriginatingPipe(out _LIN_origPipe);
_LIN_origPipe.Table = "AG617394d26";

pClientConnectionLI2.CreateOriginatingPipe(out _LI2_origPipe);
_LI2_origPipe.Table = "AG617394d26";

// LIN and LI2 GRecordset
PClient.GRecordset _LIN_GRecordset;
PClient.GRecordset _LI2_GRecordset;

_LIN_GRecordset = _LIN_origPipe.OutputRecordset;
_LIN_GRecordset.MoveFirst();
_LIN_GRecordset.MoveLast();

_LI2_GRecordset = _LI2_origPipe.OutputRecordset;
_LI2_GRecordset.MoveFirst();
_LI2_GRecordset.MoveLast();

// Lines EquijoinPipe
PDBPipe.EquijoinPipe _Lines_equijoinPipe =
            _currentApplication.CreateService("GeoMedia.EquijoinPipe") as PDBPipe.EquijoinPipe;


string[,] LinesArray = new string[2, 1];
LinesArray[0, 0] = "Line";
LinesArray[1, 0] = "Line";

_Lines_equijoinPipe.LeftRecordset = _LIN_GRecordset as PDBPipe.GRecordset;
_Lines_equijoinPipe.RightRecordset = _LI2_GRecordset as PDBPipe.GRecordset;
_Lines_equijoinPipe.JoinFieldNames = LinesArray;
_Lines_equijoinPipe.JoinType = 2;       
PClient.GRecordset _Lines_Joined_GRecordset = (PClient.GRecordset)_Lines_equijoinPipe.OutputRecordset;
_Lines_Joined_GRecordset.MoveFirst();
_Lines_Joined_GRecordset.MoveLast();

//Query for Lines (myQuery_Lines)
PDBPipe.Query myQuery_Lines;
myQuery_Lines = _Lines_Joined_GRecordset.GetExtension("Name") as PDBPipe.Query;
myQuery_Lines.Name = "Join of LIN and LI2";

//QueryFolder
PDBPipe.QueryFolder qF = (PDBPipe.QueryFolder)_document.QueryFolder;
        qF = qF.QuerySubFolders["Queries"];

qF.Queries.Append(myQuery_Lines);

 

 

Your help is appreciated,

 

Kind Regards, Smiley Happy

Khaled

Technical Evangelist
Posts: 426
Registered: ‎09-11-2015

Re: EquijoinPipe output Geometry is missing

Hi Khaled,

 

in order your pipe is compatible with GeoMedia framework, you should do two more things:

  1. Add also the Query objects corresponding to the two OriginatingPipes to the "Features" query folder.
  2. Create CSSTransformPipe and insert it between each originating pipe and the EquiJoinPipe. GeoMedia requires this, even if the source and target coordinate system is the same.

Pavel

Do you need immediate support?
Please submit a Ticket through our
Development Ticket Portal.