The Stack Overflow podcast is back! Listen to an interview with our new CEO.
5

Esri has no control over Oracle licensing policy, they just allow you to use the SDO_GEOMETRY datatype, as provided by Oracle. Some of the SDO accessor functions require more than just Locator. Your determination of what is sufficient should really be based on what SQL manipulation you require, since Esri doesn't use more than SDO_FILTER.


3

doesn't crash here when I use feat.setGeometry(attr.geometry()) instead of feat.setGeometry(sdoLayer.getFeatures(request).next().geometry()) I assume "fields" are just the columns/fields of "sdoLayer"?


3

the ST_CollectionExtract function lets you specify what type of geometry you want in your output. So for a point, 1 is chosen. this should be your intersection function on your first line ST_CollectionExtract(ST_Intersection(w.geom, r.geom), 1) as rw_geom and you do not need the st_intersection in the group by


3

I have seen this behavior several times previously. Once was a bad coordinate system combination between map and data (map in AGD66 and data in MGA) and the second time was indexing on the SDE database. Ensure map and data are in the same coordinate system (or at least datum) and if the problem persists try reindexing the database if that option is ...


2

This is now available in the code checked in to the source repository (and will be made available in 5.3 when it is released): connection = cx_Oracle.Connection("user/pw@tns") typeObj = connection.gettype("SDO_GEOMETRY") elementInfoTypeObj = connection.gettype("SDO_ELEM_INFO_ARRAY") ordinateTypeObj = connection.gettype("SDO_ORDINATE_ARRAY") obj = typeObj....


2

What you need is to use a function-based spatial index, i.e. define a spatial index that constructs a geometry object dynamically. Here is an example on a table called US_CITIES_SX that looks like this: Name Null? Type ------------ -------- ----------------- ID NUMBER CITY VARCHAR2(42 CHAR) STATE_ABRV ...


2

You have to create a function based index over the function: SDO_LRS.CLIP_GEOM_SEGMENT(SHAPE, 0, 10) On the base table: Create sdo geom metadata for the function: Insert into user_sfo_geom_metada values( 'SDO_ROAD', 'SDO_LRS.CLIP_GEOM_SEGMENT(SHAPE, 0, 10)', SDI_dimarray....., SRID); Create index: Create index sdo_road_lrs_spx On sdo_roadS (SDO_LRS....


2

Well, you can still just store the location information (I am assuming you mean long/lat GPS coordinates) as two X and Y (or longitude and latitude) number columns. Or you could also use a text string encoded in GeoJSON. Or an XMLTYPE holding a GML encoding. Those are all possible and legal, and fine if all you want is to store the coordinates, without ...


2

I was working with the QGIS 2.18.24 long term release, when the problem occured. Using the new QGIS 3.4.1 version, the line is perfectly visible.


1

The geometries are in WGS84 geodetic coordinates. In this environment, the computations are done on the ellipsoidal representation of the earth. This implies that the top and bottom "horizontal" lines in your MBR are great circles. And in your example, the shape formed with those great circles includes your small polygon in Illinois. The graphic ...


1

Oracle 12.1 comes with built-in support for JSON. Oracle 12.2 adds built-in support for GeoJSON: function sdo_util.from_geojson() will take a GeoJSON geometry and turn it into an SDO_GEOMETRY object. For example: select sdo_util.from_geojson('{"type":"Point","coordinates":[410694.5082851944,4466102.355016577]}') from dual; SDO_GEOMETRY(2001, 4326, ...


1

Thanks for all your answers maybe they helped me indirectly but the code that worked for me to join a sdo geometry layer to an oracle table/view. I don't know why but the joinGeombyID_WS writed as below works without crashing. def joinGeombyID_WS(attributes, sdogeometry_layer) : #b1/ID_WS is the common field in sdolayer and attributes table ...


1

I have a full worked SQL Script if you wish to see how it is done fully.


1

Oracle Spatial is not required (or even used) to store simple geometries, but Locator is (part of Intermedia). If you want to store geometries as spatially indexed objects, you need to use the the RDBMS' native storage protocol (or a third-party one like Esri's SDE.ST_GEOMETRY). While some GIS packages can treat X And Y columns as event layers, these are not ...


1

I have handled a similar issue in MySQL by creating a view that includes making a point geometry. It appears that in Oracle the function is SDO_POINT_TYPE( X, Y, SRID). It is important that you use the correct SRID to allow querying against other geometries.


1

You can check the SDO metadata table to get spatial information: select * from MDSYS.ALL_SDO_GEOM_METADATA where TABLE_NAME = 'tablename'


1

You do not need to pass the metadata. Just pass your tolerance setting explicitly, like this: update parcel set centroid_wkt = sdo_util.to_wktgeometry(sdo_geom.sdo_centroid(shape,0.05); Assuming your data is in geodetic coordinates, or is in a projection that uses meters as base unit, then 0.05 means 5cm.


1

The question has several possible answers: 1) If you are looking only at avoid getting duplicate points into your table - and that means points with exactly the same coordinates, down to all possible decimals, and the points are using the SDO_POINT_TYPE construct, then yes, indeed, you can just define a unique index on the X and Y properties: create unique ...


1

I think that intersection is wrong function for you. Intersection is a new geometry and in your case it is a single point. Test by selecting Sdo_Geom.Sdo_Intersection(B.Geom,R.Geom,.00000000005) into Well Known Text. I guess that it will a a point. BTW point can't have 15 overlapping vertices. Either it is a multipoint with 15 members or 15 distinct but ...


1

I thought that having multiple parts of a single polygon overlapping was invalid, but I haven't been able to find any documentation stating that, so maybe I am wrong. Either way, you could use the SDO_UTIL.EXTRACT function to get each of the parts, then use SDO_GEOM.RELATE to tell if they overlap. I'm not sure if SDO_OVERLAPS will work because you will not ...


Only top voted, non community-wiki answers of a minimum length are eligible