2012-04-30 45 views

回答

2

我有这个运气:

DECLARE @g geography; 
SET @g = geography::STLineFromText(
    'LINESTRING(-122.360 47.656, -122.343 47.656)' 
    , 4326 
); 
SELECT @g.STPointN(1).ToString(), @g.STPointN(2).ToString(); 
1

贵线段形式只包含一个直线段连接两个点的?如果是这样,你可以检索那些点的纬度和经度:

SELECT 
    @GeoPoly.STStartPoint.Lat AS Start_Lat, 
    @GeoPoly.STStartPoint.Long AS Start_Long, 
    @GeoPoly.STEndPoint.Lat AS End_Lat, 
    @GeoPoly.STEndPoint.Long AS End_Long; 

如果线段形式由连接一系列的点,然后你可以检索使用ToString著名的文本表示多个线段()方法,然后解析得到的字符串转换成坐标上逗号通过拆分对:

SELECT @GeoPoly.ToString() 

其结果将是以下格式:LINESTRING(Lon1 LAT1,Lon2,LAT2,...,Lonn,LATN)