Hi Nicolas, 1. I used ST_CreateTopoGeo() to build the topology (not the topology.toTopoGeom() as you mentioned )
When I look at the relation table its empty ? should I use topology.toTopoGeom() instead, and it will populate it ? 2. can you explain what the parentheses (special the 1, ...) part mean... join pe.parcelle p1 on *(1, (p1.topo).id)* = (r1.layer_id, r1.topogeo_id) Thanks in advanced ... Ofer On Mon, Feb 9, 2015 at 11:05 AM, Nicolas Ribot <nicolas.ri...@gmail.com> wrote: > Hi, > > As usual with SQL, there must be several other ways to perform the same > query. > > As the edge view stores 2 faces id per row (left and right), I duplicated > the joins to join both left_face and right face against the original > polygon table (p1 and p2 aliases) > > Nicolas > > On 8 February 2015 at 21:57, Ofer Zilberstein <zilberstein.o...@gmail.com> > wrote: > >> Much Thanks, >> >> First I will try to understand the join that you did and then try to >> implement it... >> >> Ofer >> >> On Sun, Feb 8, 2015 at 12:44 PM, Nicolas Ribot <nicolas.ri...@gmail.com> >> wrote: >> >>> Hi, >>> >>> When you build the topology, for instance with topology.toTopoGeom(), >>> you get back a TopoGeometry object for each polygon added to the topology. >>> This TopoGeometry is used to keep a link between your polygon object and >>> all the topological elements composing it. >>> The "relation" table inside the topo schema holding the topology >>> contains the identifier of the topoGeometry object and the identifiers of >>> topo elements composing the polygon. >>> >>> To get the right and left original polygons from the topology, you make >>> a join between edge, relation and pg table: >>> (topo_grass is the topo schema, parcelle is the polygon table with a >>> topo column containing the TopoGeometry object corresponding to the >>> polygon): >>> >>> select e.edge_id, e.left_face, e.right_face, >>> p1.id as left_id, p2.id as right_id >>> from topo_grass.edge e >>> join topo_grass.relation r1 on r1.element_id = e.left_face >>> join pe.parcelle p1 on (1, (p1.topo).id) = (r1.layer_id, r1.topogeo_id) >>> join topo_grass.relation r2 on r2.element_id = e.right_face >>> join pe.parcelle p2 on (1, (p2.topo).id) = (r2.layer_id, r2.topogeo_id); >>> >>> Nicolas >>> >>> >>> >>> On 8 February 2015 at 10:29, Ofer Zilberstein < >>> zilberstein.o...@gmail.com> wrote: >>> >>>> >>>> Hi, >>>> >>>> When you build topology from set of connected polygons, the original >>>> polygon attributes are not part of the topology model. The model creates >>>> MBR face for each original polygon. >>>> >>>> The edges hold the left & right faces. >>>> >>>> How or what is the right way to add to the edges the right and left >>>> original polygons ? >>>> >>>> -- >>>> >>>> *Ofer Zilberstein* >>>> >>>> Mobile: 972-544886873 >>>> >>>> Skype: ofer.zilberstein >>>> >>>> Mail: zilberstein.o...@gmail.com >>>> >>>> _______________________________________________ >>>> postgis-users mailing list >>>> postgis-users@lists.osgeo.org >>>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >>>> >>> >>> >>> _______________________________________________ >>> postgis-users mailing list >>> postgis-users@lists.osgeo.org >>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >>> >> >> >> >> -- >> >> *Ofer Zilberstein* >> >> Mobile: 972-544886873 >> >> Skype: ofer.zilberstein >> >> Mail: zilberstein.o...@gmail.com >> >> _______________________________________________ >> postgis-users mailing list >> postgis-users@lists.osgeo.org >> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >> > > > _______________________________________________ > postgis-users mailing list > postgis-users@lists.osgeo.org > http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users > -- *Ofer Zilberstein* Mobile: 972-544886873 Skype: ofer.zilberstein Mail: zilberstein.o...@gmail.com
_______________________________________________ postgis-users mailing list postgis-users@lists.osgeo.org http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users