Do you mean you want to select all point features in a specific cylinder?

Well, you could do it in a 3D bounding box (using cube), but I don't know of an easy way to filter which points lie in your 3d box, but outside the cylinder. I suspect you'll have to write a custom plpgsql function and do some math in there ... returning true or false appropriately.


On a side note, this example shows how to build a 3D index on a geometry.


-- Create 10,000 3D points randomly for a sample dataset
CREATE TEMP TABLE tmp AS
SELECT
  ST_MakePoint(random()*1000, random()*1000, random()*1000) AS the_geom
FROM generate_series(1, 10000);


-- Create a 3D index on the geometry
CREATE INDEX tmp_geom_cube_idx ON tmp USING GIST (
  cube(
    cube(
      cube(ST_XMin(the_geom), ST_XMax(the_geom)),
      ST_YMin(the_geom),
      ST_YMax(the_geom)
    ),
    ST_ZMin(the_geom),
    ST_ZMax(the_geom)
  )
);

ANALYZE tmp;


-- SELECT the points that lie within the z-value range [500,501]
SELECT ST_AsEWKT(the_geom)
FROM tmp
WHERE '(0,0,500),(1000,1000,501)'::cube @>
  cube(
    cube(
      cube(ST_XMin(the_geom), ST_XMax(the_geom)),
      ST_YMin(the_geom),
      ST_YMax(the_geom)
    ),
    ST_ZMin(the_geom),
    ST_ZMax(the_geom)
  );

                         st_asewkt
-----------------------------------------------------------
 POINT(226.273822132498 958.905964624137 500.327607151121)
 POINT(578.404269646853 912.93861810118 500.205896329135)
 POINT(829.249489121139 923.576071392745 500.778052955866)
 POINT(677.46328888461 946.14454684779 500.152825843543)
 POINT(807.106878608465 67.1494407579303 500.44699665159)
 POINT(494.829344097525 620.502772275358 500.783439725637)
(6 rows)


Cheers,
Kevin

eehab hamzeh wrote:
Hello,
I have a point feature, i need to buffer this point by specific distance. then extrude the resulted circle by the same buffer distance. Is there is a possibility to select all the feature that are in the 3d space of this feature. Thanks
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to