日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PostGIS之路——几何对象编辑(二)

發(fā)布時間:2023/12/2 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PostGIS之路——几何对象编辑(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、ST_Reverse

返回幾何對象頂點順序相反的幾何對象。

geometry ST_Reverse(geometry g1);

示例SQL:

SELECT ST_AsText(the_geom) as line, ST_AsText(ST_Reverse(the_geom)) As reverseline
FROM
(SELECT ST_MakeLine(ST_MakePoint(1,2),
ST_MakePoint(1,10)) As the_geom) as foo;

2、ST_Rotate、ST_RotateX、ST_RotateY、ST_RotateZ

幾何對象旋轉(原點、X軸、Y軸、Z軸)。

geometry ST_Rotate(geometry geomA, ?oat rotRadians);
geometry ST_Rotate(geometry geomA, ?oat rotRadians, ?oat x0, ?oat y0);
geometry ST_Rotate(geometry geomA, ?oat rotRadians, geometry pointOrigin);

geometry ST_RotateX(geometry geomA, ?oat rotRadians);

geometry ST_RotateY(geometry geomA, ?oat rotRadians);

geometry ST_RotateZ(geometry geomA, ?oat rotRadians);

示例SQL:

SELECT ST_AsEWKT(ST_Rotate('LINESTRING (50 160, 50 50, 100 50)', pi()));

SELECT ST_AsEWKT(ST_RotateX(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), pi()/2));

3、ST_Scale

按照一定比例調整幾何對象坐標,即每個X、Y、Z乘以相應的大小。

geometry ST_Scale(geometry geomA, ?oat XFactor, ?oat YFactor, ?oat ZFactor);
geometry ST_Scale(geometry geomA, ?oat XFactor, ?oat YFactor);

示例SQL:

SELECT ST_AsEWKT(ST_Scale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 0.75, 0.8));

4、ST_Segmentize

返回一個修改后的幾何對象,沒有分段長度超過的給定的距離。距離只在二維計算,

geometry ST_Segmentize(geometry geomA, ?oat max_length);

示例SQL:

SELECT ST_AsText(ST_Segmentize(ST_GeomFromText('POLYGON((-29 28, -30 40, -29 28))'),10));

5、ST_SetPoint

將線段上給定位置的點替換為設置的點。(替換線上的點)

geometry ST_SetPoint(geometry linestring, integer zerobasedposition, geometry point);

示例SQL:

SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));

6、ST_SetSRID

給幾何對象設置SRID。

geometry ST_SetSRID(geometry geom, integer srid);

示例SQL:

SELECT ST_Transform(ST_SetSRID(ST_Point(-123.365556, 48.428611),4326),3785) As spere_merc;

7、ST_SnapToGrid

將幾何對象頂點捕捉到網格。

geometry ST_SnapToGrid(geometry geomA, ?oat originX, ?oat originY, ?oat sizeX, ?oat sizeY);
geometry ST_SnapToGrid(geometry geomA, ?oat sizeX, ?oat sizeY);
geometry ST_SnapToGrid(geometry geomA, ?oat size);
geometry ST_SnapToGrid(geometry geomA, geometry pointOrigin, ?oat sizeX, ?oat sizeY, ?oat sizeZ, ?oat sizeM);

示例SQL:

SELECT ST_AsEWKT(ST_SnapToGrid(
ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,
4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 1.1111112)'),
ST_GeomFromEWKT('POINT(1.12 2.22 3.2 4.4444)'),
0.1, 0.1, 0.1, 0.01) );

8、ST_Snap

根據輸入和參考幾何對象捕捉幾何對象。



geometry ST_Snap(geometry input, geometry reference, ?oat tolerance);

示例SQL:





8、ST_Transform

將幾何對象轉化到指定空間參考。

geometry ST_Transform(geometry g1, integer srid);

示例SQL:

SELECT ST_AsText(ST_Transform(ST_GeomFromText('POLYGON((743238 2967416,743238 2967450,
743265 2967450,743265.625 2967416,743238 2967416))',2249),4326)) As wgs_geom;

9、ST_Translate

對幾何對象作偏移。

geometry ST_Translate(geometry g1, ?oat deltax, ?oat deltay);
geometry ST_Translate(geometry g1, ?oat deltax, ?oat deltay, ?oat deltaz);

示例SQL:

SELECT ST_AsText(ST_Translate(ST_GeomFromText('POINT(-71.01 42.37)',4326),1,0)) As
wgs_transgeomtxt;

10、ST_TransScale

對2D幾何對象作偏移和縮放。

geometry ST_TransScale(geometry geomA, ?oat deltaX, ?oat deltaY, ?oat XFactor, ?oat YFactor);

示例SQL:

SELECT ST_AsEWKT(ST_TransScale(ST_GeomFromEWKT('LINESTRING(1 2 3, 1 1 1)'), 0.5, 1, 1, 2));

總結

以上是生活随笔為你收集整理的PostGIS之路——几何对象编辑(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。