0

配列内の ST_WITHIN を評価しようとしていますが、Google で解決策が見つからなかったため、ヘルプを見つけようとしています。

私は自分のコードを添付しました。私の目標は、フェンスを格納するテーブルからフェンスを取得することであり、それぞれの位置緯度経度を受け取ってフェンスと比較し、これがこのフェンスに入っているかどうかを知ることです

CREATE OR REPLACE FUNCTION insert_position(
    _imei character varying(8),
    _datagram text,
    _created timestamp with time zone,
    _updated timestamp with time zone,
    _date_time_process timestamp with time zone,
    _latitude numeric,
    _longitude numeric,
    _course integer,
    _speed integer,
    _mileage integer,
    _gps_signal integer,
    _gsm_signal integer,
    _alarm_status boolean,
    _gps_status boolean,
    _vehicle_status boolean,
    _alarm_over_speed boolean,
    _other text
    ) RETURNS integer AS $$ 
DECLARE
    device_id integer;
BEGIN
    SELECT gpstracking_devices.id INTO device_id FROM gpstracking_devices WHERE gpstracking_devices.imei = $1;
    INSERT INTO gpstracking_device_tracks (device_id, imei, datagram, created, updated, date_time_process, latitude, longitude, course, speed, mileage, gps_signal, gsm_signal, alarm_status, gps_status, vehicle_status, alarm_over_speed, other, point) 
    VALUES (device_id, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, ST_Transform(ST_SetSRID(ST_MakePoint($6, $7), 4326),26913));
    SELECT geometry WHERE gpstracking_fences.id in ( SELECT gpstracking_fences_devices.fence_id from gpstracking_fences_devices WHERE gpstracking_fences_devices.device_id = device_id)

    -- I need to iterate this geometris into a ST_WITHIN

    RETURN device_id;
END
$$ 
LANGUAGE plpgsql VOLATILE SECURITY DEFINER;
4

1 に答える 1