1
假設我有一個點對點行字符串在SQL Server的實例SQL Server的幾何 - 創建一個從線串半圈
geometry::STLineFromText('LINESTRING(0 0, 30 30)', 0)
是否有會走這條線,並創建一個圓的函數或使用該線的起點和終點的半圓作爲直徑
假設我有一個點對點行字符串在SQL Server的實例SQL Server的幾何 - 創建一個從線串半圈
geometry::STLineFromText('LINESTRING(0 0, 30 30)', 0)
是否有會走這條線,並創建一個圓的函數或使用該線的起點和終點的半圓作爲直徑
對不起,對於遲到的答案,我只是發現了問題。
你必須使用功能的組合來實現這一點,但創建一個圓相當簡單。例如:
declare @geom geometry = geometry::STLineFromText('LINESTRING(0 0, 30 30)', 0);
declare @circle geometry = @geom.STEnvelope().STCentroid().STBuffer(@geom.STLength()/2);
從本質上講,我們使用STEnvelope()
來圍繞打造線上的多邊形,這讓我們接着使用STCentroid()
獲得多邊形的中心點(因此線),我們又終於與STBuffer()
擴大使用STLength()/2
作爲緩衝距離(當然這是線長度的一半 - 因此也是所需圓的半徑)。
創建一個半(或半個)圓不會那麼容易。您需要考慮創建自己的函數,該函數使用GeometryBuilder定義一個多邊形,從您的線起點開始到線終點之間,計算您的線距您中心一半長度的靜止座標沿着多個角度開始,從你的線的角度減去180,然後順時針旋轉直到你達到你的線的角度。你擁有的點越多,它就會越圓。