我已將我的軌道記錄到文本文件,現在我想將它作爲點類型插入到SQL Server 2008 R2數據庫的表中。SQL Server 2008將地理點保存爲十六進制
我使用OpenRowSet讀取我的文本文件並將每行插入到臨時表中。然後我解析每一行,並將正確的值插入真正的表格。 在文件中的每一行的樣子:
$GPRMC,101142.415,A,6210.1547,N,02929.2220,E,3.9,231.8,150310,,,A*62
我解析緯度和經度這樣的代碼:
INSERT INTO Track(Point)
SELECT
geography::Point(
SUBSTRING(entry,21,2)+'.'+SUBSTRING(entry,23,2)+
SUBSTRING(entry,26,CHARINDEX(',',entry,26)-26),
SUBSTRING(entry,33,3)+'.'+SUBSTRING(entry,36,2)+
SUBSTRING(entry,39,CHARINDEX(',',entry,39)-39)
,4326)
FROM #MYTEMP
之後,當我尋找到真正的表(名爲軌道)我見類似的東西:
Point
0xE6100000010CE200FA7DFF0C4F40B43C0FEECE4A3D40
這些點放置在正確的位置在地圖上(使用SQL Management Studio中的空間效果選項卡),但是否有可能看到他們,因爲沒有數據庫中的地理價值?
我來這裏尋找插入到使用幾何類型(顯示爲十六進制值)的表中的方法,因爲SSIS當前不支持此類信息的傳輸。在GIS站點找到答案 - https://gis.stackexchange.com/questions/160629/how-to-convert-from-sql-server-geometry-blob-to-something-else?newreg=574a31a90c9142a9b6524ae0dd560d63 – B5A7