The WKT string that you have posted does not pass: 
SOD_UTIL.VALIDATE_WKTGEOMETRY. I do not know what version of Oracle you are 
using but if my  memory serves the WKT functions and procedures were/are very 
limiting. I do not believe that the 10g versions support curves. In addition I 
thing the syntax is somewhat different than AGF/FGF. 

From the Oracle docs:

To be valid, the input geometry must be in the well-known text (WKT) format, as 
defined by the Open Geospatial Consortium and the International Organization 
for Standardization (ISO).

This function is patterned after the SQL Multimedia recommendations in ISO 
13249-3, Information technology - Database languages - SQL Multimedia and 
Application Packages - Part 3: Spatial.

To validate a geometry in the well-known binary (WKB) format, use the 
SDO_UTIL.VALIDATE_WKBGEOMETRY 
<http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14255/sdo_util.htm#BJEJIBCC>
  function.

 

 

From: [email protected] 
[mailto:[email protected]] On Behalf Of mahpooya
Sent: Monday, May 23, 2011 6:39 AM
To: [email protected]
Subject: [mapguide-users] Re: how to convert agf to wkt?

 

Let me introduce my code
I use php and oracle database.
I have an AGF geometry string ($geometryString in below code) that contain a 
circular sector <http://en.wikipedia.org/wiki/File:Circle_arc.svg> ;
But oracle is not support AGF text format.
Oracle have "SDO_UTIL.FROM_WKTGEOMETRY" that input geometry from wkt.
I want to convert AGF to WKT and insert it to database.
How can i convert it?

$geometryString="CURVEPOLYGON ((67.894181638047 32.989785090909 
(LINESTRINGSEGMENT (70.229107873737 33.852692612795), CIRCULARARCSEGMENT 
(70.38340259381948 32.973385371885676 , 70.2175355016466 
32.096187451063344))))";

$conn = oci_pconnect('gis', '123456', '127.0.0.1:1521/orcl');

if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$sql='INSERT INTO "GIS"."P" ("ID_AUTO", "MYINT", "MYSTR", "GEOMETRY") VALUES 
(1, 123, \'asd\', SDO_UTIL.FROM_WKTGEOMETRY(\''.$geometryString.'\') )';

$stid = oci_parse($conn, $sql);

$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn); // rollback changes
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

 

________________________________

View this message in context: Re: how to convert agf to wkt? 
<http://osgeo-org.1803224.n2.nabble.com/how-to-convert-agf-to-wkt-tp6391716p6393870.html>
 
Sent from the MapGuide Users mailing list archive 
<http://osgeo-org.1803224.n2.nabble.com/MapGuide-Users-f1803227.html>  at 
Nabble.com.

________________________________

Email Scan by McAfee 

_______________________________________________
mapguide-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapguide-users

Reply via email to