2012-05-06 66 views
2

我已將我的軌道記錄到文本文件,現在我想將它作爲點類型插入到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中的空間效果選項卡),但是否有可能看到他們,因爲沒有數據庫中的地理價值?

+0

我來這裏尋找插入到使用幾何類型(顯示爲十六進制值)的表中的方法,因爲SSIS當前不支持此類信息的傳輸。在GIS站點找到答案 - https://gis.stackexchange.com/questions/160629/how-to-convert-from-sql-server-geometry-blob-to-something-else?newreg=574a31a90c9142a9b6524ae0dd560d63 – B5A7

回答

0

我來這裏說馬丁史密斯說的是什麼。然而,這是你的幸運日。今天是「教一個男人吃魚」。看看geography methods available。另請注意,在「另請參閱」一節中,還有更多可用的內容。

+0

是的,我發現在馬丁史密斯回答我的問題幾分鐘後列出。 ;) – Bananan

相關問題