2

我已经将我的曲目记录到一个文本文件中,现在我想将它作为 Point 类型插入到 SQL Server 2008 R2 数据库的表中。

我使用 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

之后,当我查看真实表(名为 Track)时,我看到了类似的内容:

Point
0xE6100000010CE200FA7DFF0C4F40B43C0FEECE4A3D40

这些点被放置在地图上的正确位置(使用 SQL Management Studio 中的空间结果选项卡),但是否有可能将它们视为数据库中的正常地理值?

4

2 回答 2

3

在值上调用.STAsText()//以人类可读的形式查看它.ToString().AsTextZM()

于 2012-05-06T13:16:08.313 回答
0

我来这里是为了说出马丁史密斯所说的话。然而,这是你的幸运日。今天是“授人以渔的日子”。看看可用的地理方法。另请注意,在“另请参阅”部分中还有更多可用的。

于 2012-05-06T15:49:39.767 回答