Quantcast

Does Oracle support a "MultiPolygon which contains a MultiPolygon".

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Does Oracle support a "MultiPolygon which contains a MultiPolygon".

Simon Greener
Martin et al,

My first reaction to Jonathan's post and your question was to say that, no, Oracle (as an OGC SFS and SQL/MM compliant product) does not support a "MultiPolygon which
contains a MultiPolygon". I thought, though, that I should examine the actual geometry in detail so I converted Jonathan's WKT geometry below back into an Oracle SDO_GEOMETRY and examined its SDO_ELEM_INFO array. This is the result:

SDO_ELEM_INFO(1,1003,1,1743,2003,1,2041,2003,1,2071,1003,1,2779,2003,1)

This is: a simple polygon outer shell (1,1003,1) followed by 4 inner shells (2003):

1743,2003,1,
2041,2003,1,
2071,1003,1,
2779,2003,1

Note that there is only 1 outer shell. Even if there were many outer shells with each having many inner shells, the result would still be a single multipolygon.

My test harness is after my salutation at the very end of this email.

regards
Simon

> Date: Wed, 11 Feb 2009 11:24:23 -0800
> From: Martin Davis <[hidden email]>
> Subject: Re: [jts-devel] jts-io mutipolygon
> To: JTS Topology Suite Development <[hidden email]>
> Message-ID: <[hidden email]>
> Content-Type: text/plain; charset=windows-1252; format=flowed
>
> Under the OGC SFS spec there is no such thing as a "MultiPolygon which
> contains a MultiPolygon". Does Oracle actually support this?
>
> If this is truly the case, I think you're seeing the workaround - JTS
> maps the geometry to something which fits in its model. (Although this
> situation was probably never designed for - I'm actually surprised that
> it works).
>
> Houde, Jonathan wrote:
>>
>> Hi all,
>>
>> I’ve been using jts-io to read geometries from oracle database.
>>
>> I have a certain case where the geometry is a MultiPolygon which
>> contains MultiPolygon,
>>
>> It seems that jts-io is not excepting this and doesn’t load it correctly.
>>
>> It read the inner Multipolygon as single Polygon
>>
>> You can see the geometry at the corresponding wkt geometry at the
>> bottom of my mail.
>>
>> Any fix planned for that or possible workaround?
>>
>> Thanks,
>>
>> Jonathan
>>
>> SDO_UTIL.TO_WKTGEOMETRY(GEOLOC) MULTIPOLYGON (((-71.33959188
>> 46.81182897, -71.33935608 46.81166004, -71.33922 46.81155897,
>> -71.33990904 46.811142, -71.34054516 46.81077003, -71.34058512

--
SpatialDB Advice and Design, Solutions Architecture and Programming,
Oracle Database 10g Administrator Certified Associate; Oracle Database 10g SQL Certified Professional
Oracle Spatial, SQL Server, PostGIS, MySQL, ArcSDE, Manifold GIS, FME, Radius Topology and Studio Specialist.
39 Cliff View Drive, Allens Rivulet, 7150, Tasmania, Australia.
Website: www.spatialdbadvisor.com
  Email: [hidden email]
  Voice: +613 9016 3910
Mobile: +61 418 396391
Skype: sggreener
Longitude: 147.20515 (147° 12' 18" E)
Latitude: -43.01530 (43° 00' 55" S)
NAC:W80CK 7SWP3


create table crap ( geom sdo_geometry );
declare
  v_clob clob;
begin
DBMS_LOB.CREATETEMPORARY ( v_clob, true );
DBMS_LOB.APPEND(v_clob,CAST(
'MULTIPOLYGON (((-71.33959188
46.81182897, -71.33935608 46.81166004, -71.33922 46.81155897,
-71.33990904 46.811142, -71.34054516 46.81077003, -71.34058512
46.81073304, -71.340696 46.81068102, -71.34135804 46.81030401,
-71.34409296 46.80851202, -71.34414192 46.80847998, -71.34545592
46.80764199, -71.343018 46.80610002, -71.34094512 46.80466497,
-71.34071184 46.804464, -71.34021612 46.80437697, -71.340561
46.804158, -71.340885 46.803951, -71.34116508 46.803753, -71.34076692
46.80349497, -71.33945904 46.802592, -71.33939784 46.80254304,
-71.33729688 46.80118296, -71.33686092 46.80076896, -71.33577984
46.80012303, -71.33559084 46.79998398, -71.33625216 46.79952597,
-71.33724684 46.79883603, -71.33749416 46.79865801, -71.33794488
46.79830098, -71.33819688 46.79814996, -71.33790996 46.79795097,
-71.33463108 46.795716, -71.33407812 46.79536698, -71.33373792
46.795131, -71.333622 46.79505504, -71.33354892 46.79501004,
-71.33335884 46.79488899, -71.33295996 46.794663, -71.33289192
46.79461296, -71.332632 46.79441901, -71.33231916 46.79428203,
-71.33225004 46.79420697, -71.33213304 46.79413803, -71.33148396
46.79369901, -71.33063112 46.79428302, -71.33045004 46.79444799,
-71.329779 46.79475498, -71.32923288 46.79450001, -71.328843
46.79409402, -71.32458996 46.79113698, -71.32326588 46.79012601,
-71.31896316 46.79295903, -71.31807504 46.79379999, -71.31714192
46.79440398, -71.31676392 46.79468604, -71.31672684 46.79470098,
-71.31666888 46.79473896, -71.31675996 46.79489304, -71.31726288
46.79562096, -71.31776112 46.79612604, -71.31794796 46.79631801,
-71.31829212 46.79659503, -71.31825396 46.79660304, -71.316342
46.79725401, -71.31629592 46.79726004, -71.31624804 46.79726598,
-71.31537216 46.79782596, -71.31445488 46.798074, -71.31286404
46.79795403, -71.31171492 46.79800101, -71.31133008 46.79801397,
-71.31109212 46.79802198, -71.31061404 46.79803899, -71.30965896
46.79807301, -71.30778984 46.79812404, -71.30221596 46.79880804,
-71.30202192 46.79883297, -71.29750392 46.79941302, -71.29716804
46.79944101, -71.29670184 46.79947998, -71.29514484 46.79955,
-71.29308096 46.79794602, -71.29086588 46.79930601, -71.29037808
46.79964396, -71.28884088 46.79904996, -71.28909 46.79869104,
-71.289432 46.79797104, -71.28956304 46.79744004, -71.28958896
46.79699004, -71.28958896 46.79654103, -71.28953784 46.796112,
-71.28814896 46.79647497, -71.28803808 46.79639604, -71.28792288
46.79633502, -71.28769284 46.79638803, -71.28747612 46.79644599,
-71.28604512 46.79676198, -71.28557496 46.79742798, -71.28549
46.79740602, -71.28499212 46.79727804, -71.28476316 46.797201,
-71.28412884 46.79831997, -71.28360396 46.79897103, -71.28347004
46.79910999, -71.27986104 46.79923104, -71.27493984 46.79961903,
-71.27479692 46.79946999, -71.273295 46.79827497, -71.26933716
46.797615, -71.26868196 46.79684496, -71.26807716 46.79625996,
-71.26799184 46.79613603, -71.26794792 46.79610597, -71.26788996
46.79609004, -71.26759908 46.79621604, -71.26745004 46.79631702,
-71.26674588 46.79684703, -71.26624188 46.79717904, -71.26656192
46.79756397, -71.26378992 46.798101, -71.26417116 46.798659,
-71.26353612 46.79881803, -71.26060716 46.79959797, -71.25963012
46.79886402, -71.25922188 46.79868996, -71.25895512 46.79853399,
-71.25928416 46.79840304, -71.26074396 46.79778699, -71.26125912
46.79757, -71.26142688 46.79751204, -71.262729 46.79700102,
-71.26360812 46.79671302, -71.26456716 46.79646003, -71.26560792
46.79627796, -71.26727688 46.79608302, -71.26738596 46.796076,
-71.26774488 46.79604702, -71.26769592 46.79589303, -71.26765416
46.79576802, -71.26729092 46.79524701, -71.26722684 46.79515602,
-71.26706484 46.79498196, -71.26800192 46.79476002, -71.26819884
46.79471196, -71.26839684 46.79466399, -71.26803108 46.79438499,
-71.267337 46.79372403, -71.26682184 46.79337699, -71.26657596
46.79319402, -71.26642116 46.79305902, -71.26622388 46.79288496,
-71.26604784 46.79273097, -71.26593696 46.79262801, -71.26560504
46.79234298, -71.26500996 46.791864, -71.26468308 46.79160003,
-71.26434288 46.79136999, -71.26427412 46.79132202, -71.26392996
46.79098803, -71.26353288 46.79068698, -71.26328304 46.79059401,
-71.26318116 46.79055099, -71.26307208 46.790505, -71.26332408
46.79034597, -71.26354692 46.79020503, -71.26287804 46.78979796,
-71.26305192 46.78968501, -71.26141104 46.78863399, -71.26137216
46.78865604, -71.261037 46.78884504, -71.25972588 46.78788096,
-71.25927984 46.787517, -71.25892488 46.787229, -71.25850008
46.78688196, -71.25833016 46.78674399, -71.25800796 46.786482,
-71.25799788 46.78623702, -71.25782688 46.78633404, -71.25723792
46.78666101, -71.25672996 46.78704, -71.25573996 46.78761699,
-71.25560388 46.78770096, -71.253369 46.78907697, -71.25289596
46.78937397, -71.25219396 46.78981101, -71.25203016 46.78990704,
-71.25146496 46.79023896, -71.25067188 46.79069598, -71.249904
46.79114301, -71.24900688 46.79162901, -71.24825088 46.79203896,
-71.24745708 46.79247798, -71.24702184 46.79272098, -71.24639508
46.79310204, -71.24573016 46.793493, -71.24448384 46.794177,
-71.24430204 46.79427699, -71.24362416 46.79464896, -71.24307804
46.79494902, -71.24274684 46.795131, -71.24213016 46.79547102,
-71.24157504 46.79576901, -71.24145084 46.79583597, -71.24107608
46.79607402, -71.24085108 46.79621604, -71.24028408 46.79651196,
-71.24004288 46.79663697, -71.23928688 46.797057, -71.23852908
46.79640999, -71.23825404 46.79617599, -71.23667904 46.79483103,
-71.237133 46.794573, -71.23743396 46.794402, -71.23794588
46.79411301, -71.23871304 46.79362998, -71.23882716 46.793556,
-71.23875804 46.79345898, -71.23863384 46.79330796, -71.23712796
46.79206902, -71.23691196 46.79191098, -71.23664808 46.79187102,
-71.23545396 46.79184501, -71.23399488 46.79181396, -71.23351104
46.79125704, -71.23342716 46.79119197, -71.23288284 46.79075097,
-71.23235904 46.79098497, -71.23217688 46.791054, -71.23189104
46.79117298, -71.23167684 46.79125596, -71.231391 46.79137899,
-71.23128192 46.79142804, -71.23121496 46.791468, -71.23094712
46.79164197, -71.23076712 46.79176104, -71.23065084 46.79184204,
-71.23051008 46.79194896, -71.23040604 46.79203302, -71.23034196
46.79209602, -71.23013784 46.79233101, -71.23003416 46.79233803,
-71.22990096 46.792431, -71.229708 46.79263701, -71.22954312
46.79278299, -71.22935484 46.79292204, -71.22900312 46.79312301,
-71.22861288 46.79331498, -71.22835584 46.79337798, -71.22824316
46.79328096, -71.22790188 46.79296101, -71.22782304 46.79288199,
-71.22659904 46.79174799, -71.21891988 46.78299504, -71.21826792
46.78336296, -71.21356092 46.78667397, -71.210673 46.78884198,
-71.20892988 46.79015004, -71.20331496 46.795221, -71.20245996
46.79599401, -71.20195992 46.79771004, -71.20118592 46.80036504,
-71.19892404 46.80258597, -71.19745488 46.80402804, -71.195931
46.80704601, -71.19441108 46.81005498, -71.19428184 46.81031004,
-71.19382716 46.81266003, -71.19346788 46.81480698, -71.193564
46.81891296, -71.19348516 46.823058, -71.19345204 46.82354004,
-71.19322884 46.82576997, -71.192457 46.83350403, -71.19281916
46.83308004, -71.19303084 46.83300201, -71.19334296 46.832994,
-71.19339084 46.83258603, -71.19328896 46.83223098, -71.19327816
46.832184, -71.19336816 46.832013, -71.19429696 46.83168504,
-71.19511488 46.83130704, -71.19985392 46.83431601, -71.20062612
46.83480903, -71.200737 46.834884, -71.200773 46.83490902,
-71.20266012 46.83654, -71.20326204 46.83706398, -71.20370988
46.83743298, -71.20456092 46.83707397, -71.20493604 46.83710799,
-71.20546092 46.83721104, -71.20573596 46.83736503, -71.20591092
46.83739896, -71.20608588 46.83750201, -71.20621116 46.83762099,
-71.20621116 46.837827, -71.20611108 46.83806604, -71.20591092
46.83845997, -71.20644084 46.83898098, -71.20667196 46.83910302,
-71.20684404 46.83919302, -71.20694592 46.83928896, -71.20722312
46.83949299, -71.20731708 46.83957804, -71.207397 46.83963204,
-71.20801404 46.84008303, -71.20847592 46.84042998, -71.20938816
46.84113, -71.209593 46.84127103, -71.20976796 46.841391, -71.20999512
46.84154103, -71.21059704 46.84196601, -71.21064492 46.84200102,
-71.21082384 46.84213098, -71.21061 46.84240197, -71.210529
46.84247703, -71.21037312 46.84261599, -71.21029392 46.84268898,
-71.21015388 46.84281498, -71.21013696 46.842831, -71.21015892
46.84285296, -71.210187 46.84288203, -71.21330784 46.84524201,
-71.21411604 46.84583196, -71.21418696 46.84588596, -71.21472984
46.84629699, -71.215002 46.84649004, -71.21549916 46.846863,
-71.21582208 46.84662396, -71.21639808 46.84626198, -71.217747
46.84526604, -71.21795112 46.84511601, -71.218269 46.84477104,
-71.21836512 46.844667, -71.21914308 46.84349997, -71.21946312
46.84298103, -71.22003984 46.84203297, -71.220465 46.84209903,
-71.22081492 46.84213296, -71.22113388 46.842156, -71.22110292
46.84223601, -71.22110688 46.84229199, -71.221131 46.84234203,
-71.22274992 46.84348197, -71.22238308 46.84368897, -71.222193
46.84380003, -71.22237516 46.84393602, -71.22426516 46.84538196,
-71.22499092 46.84504203, -71.22518388 46.84517298, -71.22580092
46.84559301, -71.22658392 46.84614498, -71.22732912 46.84669803,
-71.22815208 46.84726602, -71.22863808 46.84759101, -71.22876192
46.84768101, -71.22939912 46.84813101, -71.23000608 46.84856796,
-71.23021596 46.84873896, -71.23024404 46.84884399, -71.23113216
46.84953897, -71.23126788 46.84965399, -71.23161708 46.84985397,
-71.232525 46.85055597, -71.23268592 46.85069799, -71.23274604
46.850751, -71.23290588 46.85089104, -71.23304808 46.85082498,
-71.23348188 46.85063004, -71.23482504 46.85002497, -71.23674888
46.849185, -71.23786416 46.84868397, -71.23740192 46.84860099,
-71.23718016 46.84860999, -71.23691196 46.8486, -71.23664988
46.84855401, -71.23642092 46.84850397, -71.23643496 46.848384,
-71.23624992 46.84819203, -71.23594788 46.84765203, -71.23557816
46.84743801, -71.23537116 46.84730904, -71.23541796 46.84728402,
-71.235612 46.84718403, -71.23631796 46.84680099, -71.23646808
46.84671603, -71.23702392 46.84639896, -71.23679496 46.84622697,
-71.23631796 46.84586499, -71.237268 46.84560399, -71.23750092
46.84560003, -71.23763304 46.84559301, -71.23775508 46.84555899,
-71.23845384 46.84527999, -71.23870404 46.84516398, -71.239104
46.84488399, -71.239275 46.844757, -71.239572 46.84453803,
-71.24036796 46.84421997, -71.24052204 46.844118, -71.24300712
46.84301604, -71.24315004 46.84295502, -71.24533884 46.84200804,
-71.24665284 46.84143798, -71.24756508 46.841166, -71.24774292
46.84112496, -71.24799708 46.84104801, -71.24831712 46.84092102,
-71.248806 46.84074696, -71.25006204 46.84029003, -71.25174216
46.839555, -71.25517908 46.83789801, -71.257608 46.83685599,
-71.25832692 46.83651597, -71.260812 46.83536703, -71.261325
46.83496797, -71.26141788 46.83486204, -71.26144992 46.83483702,
-71.26160508 46.83474504, -71.26173684 46.834659, -71.26187616
46.83465297, -71.26200684 46.83464496, -71.26231896 46.83443796,
-71.26274196 46.83513402, -71.26347384 46.83504402, -71.263494
46.835667, -71.263584 46.83594402, -71.26349184 46.83602799,
-71.26378704 46.83625398, -71.26382808 46.83627801, -71.26427808
46.83686499, -71.26427196 46.83689604, -71.26431084 46.83696696,
-71.26434216 46.83702303, -71.26435512 46.83705003, -71.264394
46.83709404, -71.26445808 46.83716802, -71.26454016 46.83723399,
-71.26572312 46.838349, -71.26596396 46.838457, -71.26610184
46.83862197, -71.26621992 46.83874302, -71.26652808 46.83892797,
-71.26655004 46.83893301, -71.266797 46.83906, -71.26683912
46.83907404, -71.26743312 46.83990501, -71.26751088 46.83999798,
-71.26827912 46.84089303, -71.269767 46.84232196, -71.269965
46.84259799, -71.27015616 46.84269699, -71.27120988 46.84373802,
-71.27109108 46.84381704, -71.27156412 46.84433004, -71.27170992
46.84453398, -71.27175708 46.84459104, -71.27258184 46.84531599,
-71.272638 46.84536099, -71.27278308 46.84547997, -71.27365104
46.84612104, -71.27382312 46.84625604, -71.27391996 46.846332,
-71.27383896 46.846368, -71.27395092 46.84644801, -71.27411112
46.84657797, -71.27467992 46.84700799, -71.27748108 46.84910796,
-71.27750088 46.84912299, -71.27772516 46.84910796, -71.27937
46.85038902, -71.27969796 46.85066397, -71.281197 46.85225103,
-71.28255312 46.85376501, -71.28424512 46.85528196, -71.28698688
46.85841504, -71.28794988 46.85974002, -71.28980496 46.86182001,
-71.28981684 46.86196401, -71.28983484 46.8621, -71.29123308
46.86378903, -71.29236816 46.86536097, -71.29207296 46.86542298,
-71.29214208 46.86549597, -71.29397916 46.86743601, -71.294148
46.86761097, -71.29404792 46.86792804, -71.29411416 46.86799896,
-71.294337 46.86822999, -71.29470996 46.868598, -71.29547604 46.8693,
-71.29583712 46.86966603, -71.29633104 46.87014699, -71.30264004
46.87676298, -71.30597688 46.88020602, -71.30762784 46.88189496,
-71.30851596 46.88278803, -71.30858796 46.88288703, -71.30891088
46.88285697, -71.30963016 46.88371503, -71.3097 46.88382699,
-71.30991204 46.88446203, -71.31001104 46.88458299, -71.31011508
46.88475696, -71.31034404 46.88502102, -71.31092688 46.88534304,
-71.31145104 46.88592399, -71.31222684 46.88686701, -71.31312288
46.88826498, -71.31408516 46.88976897, -71.31527388 46.89103104,
-71.31798 46.88978598, -71.32108104 46.88822997, -71.32588704
46.88605998, -71.32632408 46.88587197, -71.32870116 46.88505,
-71.32899888 46.88494902, -71.32715208 46.88303301, -71.323389
46.87908399, -71.32251096 46.87809003, -71.32233384 46.87786998,
-71.32173912 46.87826301, -71.32109004 46.87885899, -71.318772
46.87663698, -71.31930696 46.87623999, -71.32039596 46.87570899,
-71.31898404 46.87427304, -71.31684096 46.87203699, -71.31680316
46.87205301, -71.314821 46.86981201, -71.31416112 46.869012,
-71.31403404 46.86886899, -71.31465792 46.86863499, -71.31480192
46.86858099, -71.31583512 46.86769503, -71.32130388 46.86484599,
-71.32479516 46.86345801, -71.32673484 46.86323904, -71.32698
46.86318099, -71.32727484 46.86311502, -71.32922712 46.86231096,
-71.32961484 46.86214896, -71.33075496 46.86227703, -71.33140692
46.86224499, -71.33265684 46.86223599, -71.33275692 46.86236496,
-71.33313096 46.86278004, -71.33506092 46.86472197, -71.33530896
46.86504696, -71.33555592 46.865358, -71.33567616 46.86546402,
-71.33570604 46.86544998, -71.33640912 46.86513696, -71.33686308
46.86491898, -71.33697612 46.86486498, -71.33859288 46.86505704,
-71.34303492 46.86567597, -71.34336612 46.86600897, -71.34392196
46.86656103, -71.34440508 46.86712398, -71.34445296 46.86710499,
-71.34467508 46.86699204, -71.34472116 46.86696801, -71.34600204
46.86629796, -71.346537 46.86604497, -71.34801408 46.86557598,
-71.34856992 46.86529797, -71.34948396 46.86469101, -71.34803784
46.86316497, -71.34779484 46.86290802, -71.34702012 46.86208803,
-71.34599016 46.861029, -71.345484 46.86046299, -71.34480396
46.85970303, -71.344746 46.85964597, -71.34461316 46.85951601,
-71.34448104 46.85938803, -71.34411816 46.85903298, -71.34325488
46.85814099, -71.34310188 46.85798304, -71.342784 46.85762097,
-71.34263316 46.85746203, -71.34234516 46.857087, -71.34226812
46.85700303, -71.34219684 46.85691303, -71.34211584 46.85680404,
-71.34205104 46.85672601, -71.34197904 46.85669298, -71.34181092
46.85649003, -71.341776 46.85645304, -71.34180012 46.85641596,
-71.34172992 46.85632902, -71.34148584 46.85602401, -71.34111504
46.85563503, -71.34115104 46.85562, -71.34319908 46.85474502,
-71.34344388 46.85463504, -71.34667884 46.85336496, -71.34745788
46.85320296, -71.34788412 46.85318199, -71.34808896 46.85314797,
-71.348013 46.85297904, -71.347941 46.85253003, -71.34793596
46.85207004, -71.34802416 46.85185998, -71.348085 46.85163201,
-71.34814008 46.850958, -71.34832188 46.85064201, -71.34855984
46.850031, -71.34856416 46.84977504, -71.348472 46.84954896,
-71.34824412 46.84939101, -71.34812316 46.84930101, -71.34802812
46.84920498, -71.34792084 46.84908501, -71.347869 46.84903299,
-71.34782796 46.84892103, -71.34779988 46.84866201, -71.34778908
46.84857903, -71.34775596 46.848312, -71.34765984 46.84818996,
-71.34737688 46.84764501, -71.34730884 46.84667004, -71.34728796
46.84657302, -71.34726996 46.846521, -71.34703704 46.84622004,
-71.34698988 46.84618503, -71.346798 46.84601403, -71.34662412
46.84576599, -71.34686388 46.84558302, -71.34704784 46.84544001,
-71.34794208 46.84483404, -71.34798816 46.84480398, -71.35043688
46.84320504, -71.35046496 46.84318704, -71.35309692 46.84151997,
-71.35474104 46.84033503, -71.356959 46.83875202, -71.35750116
46.83838599, -71.35839792 46.83766302, -71.35844796 46.83763899,
-71.35867584 46.83781098, -71.35895484 46.83802104, -71.35930692
46.83828303, -71.36012412 46.83889404, -71.36129304 46.83976803,
-71.36180208 46.840149, -71.36228988 46.84050801, -71.36244
46.84063104, -71.36425584 46.84199202, -71.36523288 46.84272399,
-71.365869 46.84317003, -71.36660088 46.84369401, -71.36673588
46.84378203, -71.36760204 46.84440303, -71.36821188 46.84485798,
-71.36891388 46.84530204, -71.36915688 46.84541697, -71.36920908
46.84546503, -71.36997984 46.84604103, -71.37019512 46.84621896,
-71.370729 46.84661397, -71.37083988 46.84672098, -71.37122292
46.84708998, -71.37271584 46.84822902, -71.37310788 46.84852197,
-71.37340704 46.84874598, -71.37689292 46.85134698, -71.37796608
46.85217003, -71.37870012 46.852758, -71.37940392 46.85323797,
-71.37999504 46.85365701, -71.38054116 46.85404302, -71.38079892
46.85423499, -71.38130904 46.85463504, -71.38180512 46.85502402,
-71.38249596 46.85553198, -71.38424808 46.856862, -71.38654092
46.85664402, -71.38702008 46.85695803, -71.38724688 46.85714199,
-71.38816992 46.85660397, -71.38823184 46.85656698, -71.38829484
46.856529, -71.38840104 46.85646501, -71.38856988 46.85659704,
-71.38898388 46.85694498, -71.38943892 46.85657301, -71.38955412
46.85647104, -71.38976904 46.85628699, -71.39035584 46.85628699,
-71.390529 46.85649102, -71.39138616 46.85647698, -71.39201004
46.85646204, -71.39680704 46.85637798, -71.40260808 46.85638896,
-71.40324096 46.85637204, -71.40440088 46.85633496, -71.40555216
46.85630004, -71.405838 46.85629896, -71.40626784 46.856295,
-71.40639708 46.85629104, -71.40653496 46.85627898, -71.40658608
46.85627403, -71.408583 46.85604003, -71.40921012 46.857078,
-71.41017384 46.85780502, -71.41158216 46.85760396, -71.41202208
46.85752404, -71.41234104 46.85746698, -71.41264884 46.857411,
-71.41290588 46.85729697, -71.41245588 46.85691996, -71.41245192
46.85682096, -71.41257612 46.85667399, -71.41254408 46.85653998,
-71.41096116 46.85546601, -71.41064688 46.85518503, -71.410644
46.85517, -71.40932784 46.854342, -71.409231 46.854324, -71.40863016
46.85408496, -71.40834612 46.85390199, -71.40659904 46.85267799,
-71.40584016 46.85213601, -71.40467484 46.85131503, -71.40372192
46.85053401, -71.40318012 46.85009499, -71.40238884 46.84934997,
-71.40203496 46.84901301, -71.400006 46.84765401, -71.39996784
46.84763403, -71.398962 46.84707198, -71.39871108 46.84692996,
-71.396136 46.84456296, -71.39579688 46.84423203, -71.39571012
46.84415499, -71.39567592 46.84413798, -71.39565612 46.84412898,
-71.39563416 46.844091, -71.39559888 46.84402899, -71.39558808
46.84400901, -71.39550996 46.843884, -71.39547684 46.84389498,
-71.39554884 46.84399497, -71.39560212 46.844118, -71.39575404
46.84433103, -71.39582892 46.84443399, -71.39583396 46.84445397,
-71.39581488 46.84443201, -71.39569392 46.84427604, -71.39564316
46.84420701, -71.39557692 46.84412601, -71.39558412 46.84415598,
-71.39575404 46.844514, -71.39566116 46.84484304, -71.395569
46.84476897, -71.39544012 46.84471398, -71.39534004 46.84462596,
-71.39522412 46.84456197, -71.39519316 46.84454496, -71.39514492
46.84453497, -71.39510316 46.84451301, -71.39453004 46.844109,
-71.39390292 46.84369698, -71.39388204 46.84367502, -71.39342808
46.84338297, -71.39340792 46.84336299, -71.391933 46.84231899,
-71.39161116 46.84208103, -71.39151684 46.84201497, -71.39246112
46.84135797, -71.39251692 46.841319, -71.392635 46.84123998,
-71.39268288 46.84120803, -71.39277 46.84114602, -71.39309004
46.84092003, -71.39337012 46.84073499, -71.39364912 46.84053897,
-71.39369592 46.84050603, -71.39442492 46.83999303, -71.39460492
46.83988998, -71.39476116 46.83986001, -71.39768904 46.83780999,
-71.39791512 46.83765204, -71.39904696 46.83686301, -71.39943684
46.83658896, -71.39976984 46.83635496, -71.40009996 46.83612303,
-71.40048408 46.83585204, -71.40103884 46.83547296, -71.40253392
46.83445299, -71.40304188 46.83410604, -71.40332304 46.83389202,
-71.40389184 46.83345804, -71.40533112 46.83250998, -71.41109112
46.82848302, -71.41173804 46.82797101, -71.41138884 46.82764296,
-71.411148 46.82741301, -71.41070808 46.82699604, -71.41018392
46.82663397, -71.40907512 46.82590704, -71.40663792 46.82419398,
-71.40467988 46.82286999, -71.400906 46.82031903, -71.40061692
46.82011599, -71.398332 46.81851201, -71.39779092 46.81813302,
-71.39778012 46.81812501, -71.39119104 46.82237904, -71.38987092
46.82317797, -71.383806 46.82711403, -71.381907 46.82836197,
-71.38013796 46.82952396, -71.37980784 46.82973996, -71.37980712
46.82999799, -71.37980604 46.83009204, -71.37980892 46.83023199,
-71.37920016 46.83067002, -71.37788796 46.82979297, -71.37540792
46.828143, -71.373852 46.82710404, -71.37211212 46.82593701,
-71.37062784 46.824939, -71.37038808 46.82477304, -71.37033912
46.82473902, -71.37023904 46.82466999, -71.37013104 46.82459403,
-71.36929692 46.823985, -71.36924688 46.82396898, -71.36936316
46.82385702, -71.36888688 46.82364804, -71.36843688 46.82341602,
-71.36836488 46.82301399, -71.36812404 46.82313, -71.368065
46.82306799, -71.36802612 46.82298303, -71.36762184 46.82272401,
-71.36728884 46.82203803, -71.36703504 46.821699, -71.36697996
46.82161602, -71.36625096 46.82112003, -71.36617284 46.82116899,
-71.366094 46.82122398, -71.36560404 46.821546, -71.36499492
46.821969, -71.36474796 46.82214801, -71.3646 46.82225097,
-71.36458812 46.82222901, -71.36452188 46.82223297, -71.36442612
46.82227698, -71.36447796 46.82232801, -71.36428716 46.82238003,
-71.36403696 46.82248902, -71.36145216 46.82169603, -71.36087508
46.82152197, -71.35838496 46.82070396, -71.35820208 46.82064204,
-71.356212 46.81995804, -71.35465392 46.81943604, -71.34729804
46.81700298, -71.34662088 46.81672002, -71.34625692 46.81656,
-71.34634296 46.81648998, -71.34545484 46.81602801, -71.34452388
46.81535499, -71.34195384 46.81352403, -71.34102216 46.81285704,
-71.33959188 46.81182897), (-71.28715608 46.82688003, -71.28707004
46.82723796, -71.28721008 46.82737701, -71.28734904 46.82751102,
-71.28737604 46.82754999, -71.28744696 46.82763603, -71.28749988
46.82769903, -71.28758484 46.82778201, -71.28767484 46.82788497,
-71.287821 46.82800197, -71.28797688 46.82804697, -71.28807588
46.82808099, -71.28810684 46.82818296, -71.28732816 46.82849598,
-71.28633708 46.82897397, -71.28505116 46.82959803, -71.28486108
46.82968299, -71.28424116 46.82996001, -71.28336492 46.83035097,
-71.28323784 46.83040398, -71.28273096 46.83064896, -71.28240192
46.83078504, -71.28133992 46.83122604, -71.28050112 46.83156903,
-71.27969796 46.83192003, -71.27934912 46.83207897, -71.27926992
46.83199302, -71.27880696 46.83149001, -71.27846712 46.83112002,
-71.278344 46.83098799, -71.27813988 46.83078396, -71.27697888
46.831212, -71.27523288 46.83194604, -71.27447112 46.83224097,
-71.27090604 46.83374496, -71.27073396 46.833588, -71.26959312
46.832094, -71.26752204 46.832742, -71.26665516 46.83160899,
-71.26460388 46.82923398, -71.26418988 46.82936898, -71.26254396
46.82996901, -71.26175196 46.82907396, -71.25931908 46.82632896,
-71.25905412 46.826019, -71.25878412 46.82571003, -71.258058
46.82485503, -71.25739812 46.823949, -71.25715584 46.82366802,
-71.25684084 46.82329497, -71.25594192 46.82222298, -71.255817
46.82209203, -71.25487812 46.82110698, -71.254656 46.82081097,
-71.25342084 46.819503, -71.25227784 46.81827198, -71.25199596
46.81771398, -71.25122412 46.81635399, -71.25117804 46.81612701,
-71.25220116 46.81505196, -71.252316 46.81491201, -71.25260904
46.814571, -71.25266808 46.81450404, -71.25272604 46.81444203,
-71.25277716 46.81437597, -71.25300288 46.81411002, -71.253162
46.81392003, -71.253738 46.81328598, -71.25397308 46.81302597,
-71.25422688 46.81274697, -71.25470496 46.81236402, -71.254782
46.81230201, -71.25486084 46.81223901, -71.25549984 46.81184004,
-71.25560496 46.81177299, -71.25508116 46.81149804, -71.254935
46.81142001, -71.25450408 46.81120896, -71.25338988 46.81067202,
-71.25413688 46.81035999, -71.25442092 46.81022301, -71.25460704
46.81009296, -71.25497892 46.80998397, -71.25560892 46.80956997,
-71.25594912 46.80942597, -71.256015 46.80941103, -71.25604092
46.80940302, -71.25645708 46.80919899, -71.25685416 46.80894402,
-71.25704784 46.80887004, -71.25729804 46.808766, -71.25756984
46.80857304, -71.25770088 46.80851103, -71.25782616 46.80845397,
-71.25791688 46.80841599, -71.25829812 46.80835596, -71.25853212
46.80820899, -71.25916392 46.80810099, -71.25986412 46.808064,
-71.26063416 46.808154, -71.261352 46.80819999, -71.26248312
46.80838503, -71.26297704 46.80849699, -71.26370496 46.808487,
-71.26458588 46.80837504, -71.26522992 46.80819504, -71.265465
46.808154, -71.26549812 46.80814599, -71.26567092 46.80810999,
-71.26611804 46.80806202, -71.26638804 46.80805203, -71.26689096
46.80803997, -71.26697016 46.80803898, -71.26770888 46.808127,
-71.26790904 46.80815301, -71.26830216 46.808181, -71.268534
46.80819801, -71.26915896 46.80864702, -71.26946784 46.80899802,
-71.26966692 46.80928296, -71.26967016 46.80933201, -71.26972488
46.81014498, -71.26966008 46.81041597, -71.269731 46.81151703,
-71.26977888 46.81193697, -71.26987392 46.812078, -71.27000208
46.81228302, -71.27005608 46.81237896, -71.27025804 46.81252998,
-71.27030196 46.81256499, -71.270361 46.81261404, -71.27041716
46.81266597, -71.271126 46.81305801, -71.271207 46.81306701,
-71.27171712 46.81306296, -71.27247888 46.81296396, -71.272917
46.81293003, -71.27397792 46.81292499, -71.27404596 46.81290996,
-71.27415396 46.81301598, -71.27430408 46.81323099, -71.27592984
46.81501704, -71.27792208 46.81722096, -71.27878104 46.81828404,
-71.28101196 46.82057499, -71.28173304 46.821204, -71.28525492
46.82511297, -71.28582696 46.82568204, -71.28715608 46.82688003),' as clob));
DBMS_LOB.APPEND(v_clob,CAST(
'
(-71.23493016 46.813923, -71.23516092 46.81426599, -71.23488408
46.81433304, -71.23483008 46.81513098, -71.23349088 46.81515996,
-71.23233888 46.81521504, -71.23229712 46.81518003, -71.23177404
46.81471599, -71.23140792 46.81424403, -71.23201596 46.81405404,
-71.23214196 46.81401498, -71.23234788 46.81397097, -71.23359492
46.813707, -71.23466016 46.81350198, -71.23493016 46.813923)),
((-71.36186508 46.87357104, -71.36170308 46.873485, -71.36129016
46.87303401, -71.35947288 46.87110999, -71.35911 46.870605,
-71.35904088 46.87022799, -71.35835616 46.870227, -71.35717788
46.86927003, -71.35462116 46.86675102, -71.35371396 46.86564402,
-71.35437816 46.86539004, -71.35432092 46.864998, -71.35463592
46.86490602, -71.35555788 46.86602004, -71.35607484 46.86577398,
-71.35590708 46.86543603, -71.35569288 46.86550497, -71.35561404
46.865259, -71.355996 46.86508296, -71.35587288 46.86493698,
-71.35610904 46.86488298, -71.35586208 46.86452901, -71.35651404
46.86428304, -71.356941 46.86490602, -71.35749396 46.86471504,
-71.35680816 46.86343398, -71.35643592 46.86349599, -71.35476084
46.86430599, -71.35254108 46.86499404, -71.35051392 46.865763,
-71.35071912 46.86597198, -71.35265304 46.86790302, -71.35294608
46.86828399, -71.35452396 46.86996402, -71.35543188 46.87092999,
-71.35545996 46.87096104, -71.35679088 46.87237701, -71.35681716
46.87240599, -71.35831296 46.87399404, -71.35903188 46.87475202,
-71.35912116 46.87485201, -71.36058492 46.87648902, -71.36190612
46.87791804, -71.36228088 46.878489, -71.36260488 46.87912197,
-71.36264484 46.87918803, -71.362701 46.87926399, -71.36276184
46.87932996, -71.36279712 46.87936497, -71.36381412 46.88006697,
-71.36431092 46.88040996, -71.36489808 46.88081397, -71.36496396
46.880856, -71.36684208 46.88255097, -71.36687196 46.88258301,
-71.36745192 46.883304, -71.36748288 46.88334396, -71.36778204
46.88375103, -71.367813 46.88379297, -71.36783712 46.883826,
-71.36796708 46.88400204, -71.36812008 46.88419698, -71.36830188
46.88446302, -71.36991288 46.88629101, -71.37018612 46.88615601,
-71.37611892 46.88350596, -71.37636696 46.883394, -71.37881784
46.88218899, -71.37956196 46.88184996, -71.38128708 46.88122104,
-71.38496988 46.879677, -71.38619604 46.87926498, -71.38892196
46.87809399, -71.39158308 46.87990596, -71.39040912 46.88123202,
-71.39030616 46.88135298, -71.39033388 46.88137296, -71.39073996
46.88170902, -71.39256012 46.88321697, -71.39561004 46.88527203,
-71.40191904 46.88955099, -71.40271392 46.89011799, -71.40535884
46.89199899, -71.41521312 46.89880497, -71.41641984 46.89963603,
-71.423658 46.90464498, -71.42424912 46.90505997, -71.43159096
46.90984797, -71.43191892 46.90994499, -71.43257592 46.91023704,
-71.43329412 46.910556, -71.43480396 46.91183796, -71.43490512
46.91204298, -71.43504084 46.91213901, -71.43644088 46.91318904,
-71.43681816 46.91339703, -71.43804504 46.91426004, -71.44652088
46.90830303, -71.45483796 46.90306197, -71.454339 46.90268901,
-71.44963884 46.89935298, -71.44511004 46.89613899, -71.44372692
46.89521496, -71.43564708 46.88980704, -71.42809788 46.88454096,
-71.42599008 46.88307801, -71.42059404 46.87933203, -71.417979
46.87747596, -71.409024 46.87115004, -71.40859308 46.87072902,
-71.40842496 46.87056198, -71.40820212 46.87046901, -71.40777408
46.87018002, -71.40716784 46.86976602, -71.40651012 46.86917796,
-71.40582396 46.868823, -71.40390696 46.87022799, -71.40386988
46.87022196, -71.40379716 46.87017903, -71.40017196 46.86770502,
-71.39749788 46.86581898, -71.39716488 46.86558399, -71.39670516
46.86528699, -71.39598912 46.86481602, -71.39590704 46.864755,
-71.39578608 46.86465996, -71.39464308 46.863765, -71.394138
46.86340599, -71.39325708 46.86278103, -71.39235312 46.86213897,
-71.39200104 46.86191703, -71.39175912 46.86176403, -71.39131308
46.86146703, -71.39133612 46.86137703, -71.39118384 46.86135597,
-71.39090088 46.86117102, -71.39059092 46.86091803, -71.39058804
46.86078996, -71.39009988 46.86123798, -71.38999512 46.86132699,
-71.38997208 46.86134697, -71.38993212 46.86137604, -71.38698012
46.86310602, -71.38643796 46.86342399, -71.38625004 46.86353298,
-71.38536084 46.86407001, -71.38305216 46.86545403, -71.38108296
46.86663897, -71.38104516 46.86666201, -71.38081116 46.86678099,
-71.37997308 46.86734898, -71.37988416 46.86737499, -71.37942696
46.86770898, -71.37819 46.86851799, -71.37785016 46.86873696,
-71.37754488 46.86851502, -71.37744804 46.86850296, -71.37735084
46.86853896, -71.37727704 46.86883704, -71.37710496 46.86887403,
-71.37694908 46.86860403, -71.37674712 46.86857001, -71.37673812
46.86856803, -71.37667008 46.86903198, -71.37662508 46.86905196,
-71.37643716 46.86912801, -71.37624816 46.86907203, -71.37619992
46.86860403, -71.37602892 46.86853401, -71.37595296 46.86856704,
-71.37585216 46.86861402, -71.37595692 46.86918102, -71.37567396
46.86933204, -71.37556416 46.86938802, -71.375112 46.86911001,
-71.37521496 46.86865596, -71.37428508 46.86837003, -71.37413496
46.86829299, -71.37385416 46.86806601, -71.37384912 46.86749802,
-71.37377388 46.86714702, -71.37345096 46.86685002, -71.37330588
46.86680502, -71.37200484 46.86679899, -71.37129204 46.86665499,
-71.37077508 46.86650298, -71.37027108 46.86630696, -71.370099
46.86621597, -71.36969508 46.86586596, -71.369451 46.86556896,
-71.36938188 46.86542397, -71.36922708 46.86498396, -71.36920296
46.86458598, -71.36887392 46.86403797, -71.36876088 46.86369498,
-71.36871012 46.86325398, -71.36865216 46.86303798, -71.36841888
46.86264198, -71.36831412 46.86261498, -71.36778708 46.86258897,
-71.367417 46.86247197, -71.367309 46.86239196, -71.36718696
46.86222897, -71.36680104 46.86202296, -71.36668008 46.86192396,
-71.36666208 46.86173397, -71.36668692 46.86164496, -71.36670492
46.86135696, -71.36670096 46.86115797, -71.36657784 46.86098697,
-71.36646588 46.86073497, -71.36637192 46.86063597, -71.36629488
46.86080499, -71.36588412 46.861173, -71.36587404 46.86118398,
-71.36585712 46.86119802, -71.36502912 46.86136596, -71.36468712
46.86134598, -71.36362404 46.86130701, -71.36295192 46.86128298,
-71.36249112 46.86122898, -71.36181108 46.86100002, -71.36045316
46.86023601, -71.359947 46.86041097, -71.36336808 46.86399504,
-71.36283312 46.86427098, -71.36320104 46.86465897, -71.36372988
46.86443397, -71.36437788 46.86511698, -71.36507088 46.86487299,
-71.36539812 46.86521103, -71.36607312 46.86591303, -71.36760096
46.865394, -71.36999388 46.867959, -71.37342792 46.87125498,
-71.37345384 46.87145199, -71.37355608 46.87153398, -71.37370692
46.87165404, -71.373825 46.87181397, -71.373852 46.87194501,
-71.37358308 46.87210602, -71.37285012 46.87239897, -71.37246312
46.87267599, -71.37214992 46.87303599, -71.37195084 46.873386,
-71.37168912 46.87374303, -71.37159984 46.87390296, -71.37144396
46.87417098, -71.37127188 46.87425702, -71.37117396 46.874394,
-71.37118692 46.87457301, -71.37130896 46.87471602, -71.37144108
46.87481304, -71.37158184 46.87486101, -71.37174888 46.87488099,
-71.37191304 46.874862, -71.37206892 46.87475796, -71.37219384
46.87477101, -71.37237888 46.87484499, -71.37246708 46.874916,
-71.37254196 46.87498602, -71.37283788 46.87543197, -71.37300492
46.87580898, -71.37329292 46.87613199, -71.37331416 46.876392,
-71.373384 46.87639002, -71.373465 46.87647903, -71.37326304
46.87684002, -71.37318708 46.87691202, -71.37313704 46.87706898,
-71.37303192 46.87717203, -71.37291312 46.87725897, -71.37270216
46.87731396, -71.372277 46.87732296, -71.37211716 46.87728102,
-71.37196596 46.877184, -71.37181116 46.87698699, -71.37170388
46.87695198, -71.37166716 46.87693002, -71.37160704 46.87689501,
-71.37153288 46.87689699, -71.37140112 46.876815, -71.37081792
46.876698, -71.37076392 46.87669998, -71.370603 46.87670898,
-71.37045792 46.87671897, -71.37016704 46.87679097, -71.36993016
46.876896, -71.36994888 46.87693902, -71.37004284 46.87713297,
-71.37038088 46.87720803, -71.37073908 46.87737696, -71.37097092
46.87751403, -71.37140184 46.878075, -71.37141912 46.878291,
-71.37147384 46.87844904, -71.37147492 46.87862796, -71.37128592
46.87868601, -71.37122184 46.87874604, -71.37124884 46.87882101,
-71.37125712 46.87884702, -71.37136188 46.87887996, -71.37136404
46.87891596, -71.37123804 46.87900803, -71.37087516 46.87901604,
-71.37071604 46.87897599, -71.37065988 46.87888104, -71.37066204
46.878822, -71.370666 46.87873398, -71.37070416 46.878678,
-71.37079488 46.87863102, -71.37087516 46.87863003, -71.370873
46.87858404, -71.37070884 46.87848702, -71.37066492 46.87838703,
-71.37025416 46.87839396, -71.37027108 46.87882101, -71.37027288
46.87932303, -71.37017316 46.87941897, -71.37024696 46.87957098,
-71.37003096 46.87971003, -71.36983116 46.87969896, -71.36975412
46.87964397, -71.36976708 46.87952301, -71.36993412 46.87944804,
-71.36998308 46.87938396, -71.36992692 46.87932897, -71.36971812
46.87929603, -71.369541 46.87930503, -71.36941608 46.87938,
-71.36941212 46.87983801, -71.36955108 46.88008002, -71.36948988
46.88039097, -71.36930016 46.88043003, -71.36925804 46.88049897,
-71.36882316 46.88048304, -71.36881596 46.880316, -71.36891604
46.88020998, -71.36885988 46.88016498, -71.36876988 46.88015103,
-71.36846496 46.88018604, -71.36844192 46.88041302, -71.36870292
46.88079597, -71.36865216 46.88106903, -71.36830404 46.88119899,
-71.36781408 46.88127, -71.36778492 46.88176401, -71.36751096
46.88158599, -71.36629992 46.88072496, -71.35996608 46.87448598,
-71.36043516 46.87427196, -71.361639 46.87380999, -71.36181684
46.87368003, -71.36186508 46.87357104), (-71.37126792 46.88213004,
-71.37108612 46.88213103, -71.37123588 46.88207298, -71.37126792
46.88213004)))' as clob));
insert into crap values( SDO_UTIL.FROM_WKTGEOMETRY(v_clob) );
end;

select c.geom.sdo_elem_info from crap c;
_______________________________________________
jts-devel mailing list
[hidden email]
http://lists.refractions.net/mailman/listinfo/jts-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Does Oracle support a "MultiPolygon which contains a MultiPolygon".

Martin Davis
Good stuff, Simon.

So Jonathan, what behaviour are you actually seeing?  Is an exception
being thrown, or does the output not match what you'd expect to see?

Simon Greener wrote:

> Martin et al,
>
> My first reaction to Jonathan's post and your question was to say that, no, Oracle (as an OGC SFS and SQL/MM compliant product) does not support a "MultiPolygon which
> contains a MultiPolygon". I thought, though, that I should examine the actual geometry in detail so I converted Jonathan's WKT geometry below back into an Oracle SDO_GEOMETRY and examined its SDO_ELEM_INFO array. This is the result:
>
> SDO_ELEM_INFO(1,1003,1,1743,2003,1,2041,2003,1,2071,1003,1,2779,2003,1)
>
> This is: a simple polygon outer shell (1,1003,1) followed by 4 inner shells (2003):
>
> 1743,2003,1,
> 2041,2003,1,
> 2071,1003,1,
> 2779,2003,1
>
> Note that there is only 1 outer shell. Even if there were many outer shells with each having many inner shells, the result would still be a single multipolygon.
>
> My test harness is after my salutation at the very end of this email.
>
> regards
> Simon
>  
>> Date: Wed, 11 Feb 2009 11:24:23 -0800
>> From: Martin Davis <[hidden email]>
>> Subject: Re: [jts-devel] jts-io mutipolygon
>> To: JTS Topology Suite Development <[hidden email]>
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=windows-1252; format=flowed
>>
>> Under the OGC SFS spec there is no such thing as a "MultiPolygon which
>> contains a MultiPolygon". Does Oracle actually support this?
>>
>> If this is truly the case, I think you're seeing the workaround - JTS
>> maps the geometry to something which fits in its model. (Although this
>> situation was probably never designed for - I'm actually surprised that
>> it works).
>>
>> Houde, Jonathan wrote:
>>    
>>> Hi all,
>>>
>>> I’ve been using jts-io to read geometries from oracle database.
>>>
>>> I have a certain case where the geometry is a MultiPolygon which
>>> contains MultiPolygon,
>>>
>>> It seems that jts-io is not excepting this and doesn’t load it correctly.
>>>
>>> It read the inner Multipolygon as single Polygon
>>>
>>> You can see the geometry at the corresponding wkt geometry at the
>>> bottom of my mail.
>>>
>>> Any fix planned for that or possible workaround?
>>>
>>> Thanks,
>>>
>>> Jonathan
>>>
>>> SDO_UTIL.TO_WKTGEOMETRY(GEOLOC) MULTIPOLYGON (((-71.33959188
>>> 46.81182897, -71.33935608 46.81166004, -71.33922 46.81155897,
>>> -71.33990904 46.811142, -71.34054516 46.81077003, -71.34058512
>>>      
>
>  

--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

_______________________________________________
jts-devel mailing list
[hidden email]
http://lists.refractions.net/mailman/listinfo/jts-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Does Oracle support a "MultiPolygon which containsa MultiPolygon".

Houde, Jonathan
Indeed, thanks Simon for the investigation,
Mapinfo products call those multipolygon but you seems totaly right,
There are actually polygon with multiple inner shells.
And after investigation, it seems that jts-io actually load it well.
I've been testing the geometry in/out oracle and in/out jts, displaying the wkt result at each step and the geometry is correct at each step.

So thanks a lot guys, and Martin sorry for the worries, the problem must be somewhere else.
Jonathan


-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Martin Davis
Sent: February 11, 2009 4:35 PM
To: JTS Topology Suite Development
Subject: Re: [jts-devel] Does Oracle support a "MultiPolygon which containsa MultiPolygon".

Good stuff, Simon.

So Jonathan, what behaviour are you actually seeing?  Is an exception
being thrown, or does the output not match what you'd expect to see?

Simon Greener wrote:

> Martin et al,
>
> My first reaction to Jonathan's post and your question was to say that, no, Oracle (as an OGC SFS and SQL/MM compliant product) does not support a "MultiPolygon which
> contains a MultiPolygon". I thought, though, that I should examine the actual geometry in detail so I converted Jonathan's WKT geometry below back into an Oracle SDO_GEOMETRY and examined its SDO_ELEM_INFO array. This is the result:
>
> SDO_ELEM_INFO(1,1003,1,1743,2003,1,2041,2003,1,2071,1003,1,2779,2003,1)
>
> This is: a simple polygon outer shell (1,1003,1) followed by 4 inner shells (2003):
>
> 1743,2003,1,
> 2041,2003,1,
> 2071,1003,1,
> 2779,2003,1
>
> Note that there is only 1 outer shell. Even if there were many outer shells with each having many inner shells, the result would still be a single multipolygon.
>
> My test harness is after my salutation at the very end of this email.
>
> regards
> Simon
>  
>> Date: Wed, 11 Feb 2009 11:24:23 -0800
>> From: Martin Davis <[hidden email]>
>> Subject: Re: [jts-devel] jts-io mutipolygon
>> To: JTS Topology Suite Development <[hidden email]>
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=windows-1252; format=flowed
>>
>> Under the OGC SFS spec there is no such thing as a "MultiPolygon which
>> contains a MultiPolygon". Does Oracle actually support this?
>>
>> If this is truly the case, I think you're seeing the workaround - JTS
>> maps the geometry to something which fits in its model. (Although this
>> situation was probably never designed for - I'm actually surprised that
>> it works).
>>
>> Houde, Jonathan wrote:
>>    
>>> Hi all,
>>>
>>> I’ve been using jts-io to read geometries from oracle database.
>>>
>>> I have a certain case where the geometry is a MultiPolygon which
>>> contains MultiPolygon,
>>>
>>> It seems that jts-io is not excepting this and doesn’t load it correctly.
>>>
>>> It read the inner Multipolygon as single Polygon
>>>
>>> You can see the geometry at the corresponding wkt geometry at the
>>> bottom of my mail.
>>>
>>> Any fix planned for that or possible workaround?
>>>
>>> Thanks,
>>>
>>> Jonathan
>>>
>>> SDO_UTIL.TO_WKTGEOMETRY(GEOLOC) MULTIPOLYGON (((-71.33959188
>>> 46.81182897, -71.33935608 46.81166004, -71.33922 46.81155897,
>>> -71.33990904 46.811142, -71.34054516 46.81077003, -71.34058512
>>>      
>
>  
--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

_______________________________________________
jts-devel mailing list
[hidden email]
http://lists.refractions.net/mailman/listinfo/jts-devel

_______________________________________________
jts-devel mailing list
[hidden email]
http://lists.refractions.net/mailman/listinfo/jts-devel
Loading...