BTW.  I found this about Oracle 11g and buffers:

With geodetic data, this function is supported by approximations, as
explained in Section
6.10.3<http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28400/sdo_cs_concepts.htm#i894707>.
:

"When these functions are used on data with geodetic coordinates, they
internally perform the operations in an implicitly generated
local-tangent-plane Cartesian coordinate system and then transform the
results to the geodetic coordinate system. For
SDO_GEOM.SDO_BUFFER<http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28400/sdo_objgeom.htm#i856140>,
generated arcs are approximated by line segments before the back-transform."

I suspect this method only works well for local sized areas, and you would
not want, for instance, to buffer the Mississippi river.

It never hurts to know how the competition does it. :-)

Larry

On Wed, Feb 11, 2009 at 11:48 AM, Stefan Steiniger <[email protected]>wrote:

> btw.
>
> I believe deeJUMP uses the degree lib. But I couldn't find it in this
> listing:
> https://wiki.deegree.org/deegreeWiki/OpenJumpPackages
>
> stefan
>
>
> Stefan Steiniger wrote:
>
>> well..
>>
>> - Geotools: http://geotools.codehaus.org/Module+Matrix
>>
>> and
>>
>> - degree:
>> http://wald.intevation.org/plugins/scmsvn/viewcvs.php/docs/documentation/crs/?root=deegree
>> (I hope that is the correct link)
>> have projection functions
>>
>> I know this as we, from OpenJUMP, ponder with an implementation of those -
>> probably the latter one. Meanwhile we have only this plugin-workaround:
>> http://www.openjump.org/wiki/show/Working+with+Projections
>>
>> but to write back to oracle is probably a difficult part too?
>>
>> stefan
>>
>> Davis Ford wrote:
>>
>>> Martin / Larry - thanks for the info.
>>>
>>> Any tips / pointers / clues on how to do the projection /
>>> re-projection using the JTS API?
>>>
>>> Regards,
>>> Davis
>>>
>>> On Wed, Feb 11, 2009 at 11:43 AM, Martin Davis <[email protected]>
>>> wrote:
>>>
>>>> (I'm posting this to the JTS list, since it's really a JTS question)
>>>>
>>>> This seems to be geodetic month for JTS!
>>>>
>>>> Answers to your questions:
>>>>
>>>> 1. JTS is not "coordinate system-aware", and does not use the SRID in
>>>> its
>>>> calculations.  So you can set it or not, and it won't make any
>>>> difference
>>>>
>>>> 2. JTS assumes that the coordinates of geometries are located in an
>>>> infinite
>>>> Cartesian (flat) 2D coordinate system.  All quantities (length, area,
>>>> distance, angle, etc) are relative in this coordinate system.   So since
>>>> you
>>>> are providing your input in decimal degrees, those are the units that
>>>> the
>>>> buffer distance must be expressed in.  Of course, this doesn't work all
>>>> that
>>>> well for large distances in a geodetic (ellipsoidal) coordinate system -
>>>> the
>>>> computed geoemtry will be only an approximation to the true shape.
>>>>
>>>> What people often do is project their geodetic data to a local planar
>>>> projection, compute there, and then reproject.  There's been a bit of a
>>>> thread about this on the JTS list recently.  (No code, though - which
>>>> would
>>>> be nice to have).
>>>>
>>>> As you point out, Oracle appears to do the "right thing" in this case -
>>>> kudos to them.  They seem to seamlessly blend geodetic and planar data
>>>> handling, which is certainly nice to have.  Maybe one day JTS will
>>>> support
>>>> this - but it's complex to implement.
>>>>
>>>> Davis Ford wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> If I have an Oracle table with an SDO_GEOMETRY column, and I insert a
>>>>> point into it - example:
>>>>>
>>>>> MDSYS.SDO_GEOMETRY(2001, 8307, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1,
>>>>> 1), MDSYS.SDO_ORDINATE_ARRAY(-82.90755596903085, 42.40409951227155))
>>>>>
>>>>> Then I can use the SDO_GEOM.SDO_BUFFER function to get a buffer around
>>>>> it (and specify the units in miles) ->
>>>>>
>>>>> // 1.5 miles, 0.5 tolerance
>>>>> SELECT SDO_GEOM.SDO_BUFFER(a.geometry, 1.5, 0.5, 'unit=mile') geom
>>>>> FROM MY_TABLE a.id = 1;
>>>>>
>>>>> Simple enough, but how do I do the same thing in JTS?  If I try the
>>>>> following:
>>>>>
>>>>> Geometry point = new WKTReader().read("POINT(-82.90755596903085
>>>>> 42.40409951227155)");
>>>>>
>>>>> // question1: should I set the SRID?  Oracle uses 8307 for WGS:84, but
>>>>> JTS seems to ignore SRID in calculations, is this true?
>>>>>
>>>>> // question2: what units does buffer take? I make the assumption of
>>>>> meters, but this is wrong
>>>>>
>>>>> // try converting 1.5 miles to meters
>>>>> double meters = 2414.016
>>>>> Geomtry buffer = point.buffer(meters);
>>>>>
>>>>> This is very wrong since it gives me polygon with coordinates that are
>>>>> outside -180/180, -90/90.  Do I assume then that buffer takes radians
>>>>> I guess?
>>>>>
>>>>> I'm just trying to accomplish the same thing I can do in Oracle above
>>>>> with
>>>>> JTS.
>>>>>
>>>>> Thanks in advance,
>>>>> Davis
>>>>>
>>>>>
>>>>>  --
>>>> Martin Davis
>>>> Senior Technical Architect
>>>> Refractions Research, Inc.
>>>> (250) 383-3022
>>>>
>>>> _______________________________________________
>>>> jump-users mailing list
>>>> [email protected]
>>>> http://lists.refractions.net/mailman/listinfo/jump-users
>>>>
>>>>
>>>
>>>
>>>  _______________________________________________
>> jump-users mailing list
>> [email protected]
>> http://lists.refractions.net/mailman/listinfo/jump-users
>>
>>
>>  _______________________________________________
> jump-users mailing list
> [email protected]
> http://lists.refractions.net/mailman/listinfo/jump-users
>



-- 
http://amusingprogrammer.blogspot.com/
_______________________________________________
jump-users mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jump-users

Reply via email to