This content has been marked as final.
Show 7 replies

1. Re: Polygon Crop
_jum Feb 26, 2013 11:18 AM (in response to 993183)As I understand, you have to build the INTERSECTION of two AGGREGATS A/B with 1500/300 POLYGONS.
If this is correct, here is a very simple version/solution of this problem, on the basis of the brand new article from Simon Greener (thanks a lot!) at Intersecting two aggregated polygon layers with SC40
May be you can adapt the code.WITH polys1500 AS ( SELECT mdsys.sdo_geometry(2003,82469,NULL,sdo_elem_info_array(1,1003,3),sdo_ordinate_array( 1,1, 10,10)) AS geom FROM dual UNION ALL SELECT mdsys.sdo_geometry(2003,82469,NULL,sdo_elem_info_array(1,1003,3),sdo_ordinate_array( 5,5, 12,12)) AS geom FROM dual ) , polys900 AS ( SELECT mdsys.sdo_geometry(2003,82469,NULL,sdo_elem_info_array(1,1003,3),sdo_ordinate_array(1,1, 7,7)) AS geom FROM dual UNION ALL SELECT mdsys.sdo_geometry(2003,82469,NULL,sdo_elem_info_array(1,1003,3),sdo_ordinate_array( 6, 0, 8,2)) AS geom FROM dual ) SELECT SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(polys1500.geom, 0.005)) p1500un, SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE( polys900.geom, 0.005)) p900un, SDO_GEOM.SDO_INTERSECTION( SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(polys1500.geom, 0.005)), SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE( polys900.geom, 0.005)), 0.005) intr FROM polys1500, polys900;

2. Re: Polygon Crop
993183 Feb 26, 2013 3:31 PM (in response to _jum)The problem with this approach is that i have the two columns of 2DPolygon/Surface ("2003") one with 1500 and other with 300.
When doing the union i loose information about each one and I cannot loose that info.
I don't think that having two multipolygons composed by 1500 and 300 polygons with be much easier to process that two columns with 1500 and 300 entries each one of them as a polygon. The number of iterations would be the same.
Example:
Imagine that I have France as a column with 1500 entries each one a 2DPolygon/Surface on some table and Paris on another table with 300 entries.
I want the area where they overlap or, by other words, I want to limit the polygons of France to the area of Paris. The polygons that are completely inside Paris remain and the ones that only intersect are cropped to the area of Paris.
I do this because the way I divided france (the polygons that compose France column) is important and I need that info. 
3. Re: Polygon Crop
_jum Feb 26, 2013 4:32 PM (in response to 993183)So you could do something like:1 person found this helpful
1. UNION the 300 polygons to a new one > "Paris"
2. find the polygons from France that are completly in "Paris" (SDO_RELATE/SDO_INTERACT/SDO_CONTAINS/...)
>they remain unchanged
3. find the polygons from France that intersect"Paris" (SDO_RELATE/SDO_INTERACT/SDO_OVERLAPS/...)
4. INTERSECT each polygon from 3.) with "Paris"
Is this correct ? 
4. Re: Polygon Crop
993183 Feb 26, 2013 5:34 PM (in response to _jum)I think I am having problems because the type of geometry I have for Paris is like this MDSYS.SDO_GEOMETRY(2007,8307,MDSYS.SDO_POINT_TYPE(...),MDSYS.SDO_ELEM_INFO_ARRAY(...)..) whereas 2007 i want 2003 and instead of MDSYS.SDO_POINT_TYPE() i should have NULL. 
5. Re: Polygon Crop
_jum Feb 26, 2013 7:44 PM (in response to 993183)You have to use VALID geometries. Iit is no problem to set all SDO_GTYPE=2003 and SDO_POINT=NULL if the rest is correct. From where do these strange geometries come ? 
6. Re: Polygon Crop
Simon Greener Feb 26, 2013 10:36 PM (in response to 993183)Andre,
(Folks the chap's name is Andre.)
For me this is a form of crosspost  http://www.spatialdbadvisor.com/oracle_spatial_tips_tricks/306/intersectingtwoaggregatedpolygonlayerswithsc4o
Andrew, thanks for replying to my email to you about the same problem. I appreciated the feedback about my response to your question. Not!
Here are examples of the sort of information that I could have done with in your original private communication.
When doing the union i loose information about each one and I cannot loose that info.
I want to crop A and limit it to the area of B.
Others include the fact that you have access to Spatial's aggregate and geoprocessing functionality but didn't tell me. I thought you didn't because you were asking about SC4O's complementary functionality for Locator users because you had downloaded it.
B overlaps to A, is smaller than A and is completely inside A.
Ex: It is like if I had A as France and B as Paris. Where France and Paris were two columns on different tables each one composed by severall geometries like the ones above described.
The solution you need should look somewhat like this:
Do not forget that this sort of polygon processing is most likely going to return polygon/multipolygon and compound 2004 geometries (point/line/polygon). Where a result is a 2004 SDO_GEOMETRY you will have to enact extract processing to extract the polygon elements from them. There are methods for this that have been dealt with on this forum before. I also deal with it on my website via a blog article that you may care to look for. Enact suitable searching on this before creating a new forum post that is separate to this one if you can't work out how to do it.With wpolys900 as ( SELECT SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE( polys900.geom, 0.005)) as uGeom FROM polys900; ) SELECT SDO_GEOM.SDO_INTERSECTION(a.geom,b.uGeom, 0.005) as rGeom FROM polys1500 a, wpolys900 b WHERE SDO_ANYINTERACT(a.geom,b.uGeom) = 'TRUE' /* Limits processing to area defined by table900 */;
I think I am having problems because the type of geometry I have for Paris is like this MDSYS.SDO_GEOMETRY(2007,8307,MDSYS.SDO_POINT_TYPE(...),....
Why should these cause any processing issues? I cannot see why they should as Oracle can intersect a multipolygon by a polygon as easily as poly/poly.
If my tone is a bit sharp it is because we all spend a lot of time trying to help those who ask us for help. You need to provide better information with examples when emailing anyone or posting to the forum in order to minimise your impact on others and to get the fastest answer to your problem.
It is disrespectful to approach someone (eg myself via email) and not bother to answer them when they spend time trying to help. You are probably busy and frustrated, but please try and be more curteous to those whom you approach.
regards
Simon 
7. Re: Polygon Crop
993183 Feb 27, 2013 3:22 PM (in response to _jum)_Jum
Thanks for your help, it seems like I had validated the geometry but i missed one important value.
As soon as I have new developments that need attention I will get back.
Simon I wrote you an email..