我正在查看Sql Server 2008中的幾何數據類型,它看起來很有趣,但文檔看起來不太好。我能否以WKT格式存儲錐體,圓柱體和球體?這些功能通常具有半徑而不是數百個點。在sql server中使用幾何數據類型和WKT存儲3d形狀
回答
據我所知,您將不得不使用外部應用程序將您的形狀渲染爲大量的點。有關呈現圓圈的技巧,請參閱this blog。
要考慮的一種可能性是CLR proc渲染你需要的形狀和帶有索引的視圖。我不知道這樣做會有多好,但它可能會奏效。
快速瀏覽並在Spatial Samples上找到了此MSDN頁面。它涵蓋了在WKT中輸入數據的所有方法,WML & XML(GML)以及用於查看Human Readable格式的功能。它還涵蓋了MakeValid,STIsValid & STSrid。
有看起來是一個公平的幾個SQL的例子,你會發現這麼晚纔回復有用
感謝您的鏈接。 – DanDan 2011-05-23 11:08:50
遺憾。你總是可以編寫自己的用戶定義型稱爲圈,具有兩個屬性,即重心和半徑。
新形成的UDT中,創建,是以屬性質心(三維點),和半徑的方法(雙)。在此之後,創建一個方法,使用SqlGeometry和SqlGeometryBuilder構建新形成的對象。
首先,創建一個點的實例幾何。從類對象繼承該質心值,然後,創建另一個幾何多邊形這是一個從所述點對象導出的,並且STBuffer(半徑)它。
下面是我的例子:(寫在30分鐘)
public SqlGeometry ToSQLGeometry()
{
int srid = this.SRID; // i.e. 4326
SqlGeometry geom = new SqlGeometry();
SqlGeometryBuilder gb = new SqlGeometryBuilder();
OpenGisGeometryType pt = OpenGisGeometryType.Point;
gb.SetSrid(srid);
gb.BeginGeometry(pt);
gb.BeginFigure(this.Centroid.X, this.Centroid.Y, this.Centroid.Z, this.Centroid.M);
gb.EndFigure();
gb.EndGeometry();
geom = gb.ConstructedGeometry;
geom = geom.MakeValid(); // Optional for Point data
SqlGeometry geomCircle = new SqlGeometry();
geomCircle = geom.STBuffer(this.Radius);
return geomCircle;
}
當你使用CLR項目類型在VS2010做到了這一點,你可以將其部署到數據庫中。
在SQL中,你可以調用該對象本身:: 解析(X Y Z M,R)
declare @c Circle
set @c = Circle::Parse('5 6 7 8,2')
select 'Circle', @c.ToString(), @c.ToSQLGeometry()
- 1. 數據類型存儲的條形碼在SQL Server 2005
- 2. 數據類型使用存儲在SQL
- 3. SQL Server中的「money」和「decimal」數據類型如何存儲在內存中?
- 4. 如何更新SQL Server 2008中的多邊形數據,數據類型幾何
- 5. 使用SQL Server 2008日期數據類型以存儲年份
- 6. 數據類型來存儲整數和SQL Server的浮點值
- 7. 如何在SQL Server中存儲和檢索圖像VARBINARY(MAX)數據類型
- 8. 地理數據類型與SQL Server中的幾何數據類型
- 9. 存儲和管理SQL Server數據類型
- 10. 用於存儲大型JSON的SQL Server數據庫中的數據類型
- 11. 數據類型,數據形狀和pad_sequences
- 12. 用於在SQL Server數據庫中存儲音頻文件的數據類型?
- 13. 存儲在SQL Server中逗號和句號(數據類型)的數量
- 14. 在java中存儲PostgreSQL/PostGIS「幾何(MultiPolygon)」數據類型
- 15. 使用SQL Server存儲數據
- 16. 存儲時間 - SQL Server中的數據類型?
- 17. 在SQL存儲過程中使用CLOB數據類型
- 18. 計算SQL Server sql_variant數據類型用於存儲固定長度數據類型的存儲空間
- 19. ISNULL和數據類型在SQL Server
- 20. 如何使用SQLAlchemy/Mysql存儲3D圖形(x,y,z)數據?
- 21. 什麼數據可以存儲在SQL Server中的varbinary數據類型?
- 22. 任何人都使用SQl Server 2008 HierarchialID類型來存儲家譜數據
- 23. 將RichTextBox數據存儲在SQL Server中?
- 24. C#SQL Server數據存儲
- 25. 如何使用PHP繪製3D幾何形狀?
- 26. 哪種數據類型可用於在SQL Server 2005中存儲視頻
- 27. 用於在SQL Server中存儲字符串的最佳數據類型?
- 28. 如何在SQL Server 2008中使用GUID數據類型?
- 29. 如何在SQL Server中使用'date'數據類型
- 30. 在sql server 2008中使用表類型輸入參數調用存儲過程
感謝您的聯繫!看起來幾何類型不是我正在尋找的,因爲我不想將其存儲爲近似數百個點。如果我要使用它,我可能會使用幾何來存儲中心點,並將半徑作爲單獨的字段。 – DanDan 2011-05-23 11:11:01
接受,因爲博客文章顯示我的數據類型不適合我。 – DanDan 2011-05-23 13:23:57