簡體   English   中英

MySQL從幾何集合中選擇一個幾何類

[英]mysql select a geometry class from a geometry collection

我正在MySql數據庫中設置幾何集合。 我因此添加了各種幾何類:

SET @g ='GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(0 1,2 3,4 5),POINT(6 6))'; 插入myTable(geoCollectionField)值(GeomFromText(@g));

geoCollectionField可能會在WKT中做出預期的響應,可能是:

GEOMETRYCOLLECTION(點(1 1),線條(0 1,2 3,4 5),點(6 6))

我可以通過幾種方式從此幾何集合中獲取數據。

從myTable中選擇geoCollectionField;

給出完整的GEOMETRYCOLLECTION(POINT(1 1),LINESTRING ...

從myTable中選擇AsText(GeometryN(geoCollectionField,1));

給出索引的幾何類POINT(1 1)。

我無法編寫僅獲取一種類類型的SELECT,例如以POINT((1 1),(6 6))結尾的POINT類。

有什么想法嗎?

請考慮以下步驟:

  1. 使用STNumGeometriesSTNumGeometries參考 )獲取GeometryCollection中的GeometryCollection 數。
  2. 使用循環遍歷GeometryCollection所有GeometryCollection
  3. 使用STGeometryNSTGeometryN參考 )獲取特定索引 幾何
  4. 對於每個幾何,請使用STGeometryType獲取幾何類型STGeometryType參考
  5. 檢查幾何類型是否與所需的類型匹配。 如果您有匹配項,則可能需要將其添加到生成的GeometryCollection

遵循這些步驟將導致

GEOMETRYCOLLECTION(POINT(1 1), POINT(6 6))

您還可以根據所需的幾何類型使用其他集合( MultiPointMultiLineStringMultiPolygon

多點結果可能如下所示:

MULTIPOINT((1 1), (6 6))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM