15.2.2 Referencing Coordinates Item Values
If your Coordinates Item is named COORDINATES, then you can access the longitude and latitude values in the following ways.
Using an
SDO_GEOMETRY type, access them like this in PL/SQL:declare
l_coords sdo_geometry := sdo_util.from_geojson(:COORDINATES);
l_longitude number := l_coords.sdo_point.x;
l_latitude number := l_coords.sdo_point.y;
begin
-- Do something with l_longitude & l_latitude here
end;To access them using SQL instead, use:
for j in (select coords.sdo_point.x as longitude,
coords.sdo_point.y as latitude
from (
select sdo_util.from_geojson(:COORDINATES) as coords
from dual))
loop
-- Do something with j.longitude & j.latitude here
end loop;If you prefer to work with the GeoJSON document, use the following in PL/SQL:
declare
l_longitude number;
l_latitude number;
begin
l_longitude := json_value(:COORDINATES,'$.coordinates[0]');
l_latitude := json_value(:COORDINATES,'$.coordinates[1]');
-- Do something with l_longitude & l_latitude here
end;Alternatively, to access them via the GeoJSON document in SQL, use:
for j in (select longitude, latitude
from json_table(:COORDINATES,
'$.coordinates'
columns (
longitude number path '$[0]',
latitude number path '$[1]')))
loop
-- Do something with j.longitude & j.latitude here
end loop;Parent topic: Geocoding in the Background