【问题标题】:Correct Format to enter into a Geography data-type database cell输入地理数据类型数据库单元格的正确格式
【发布时间】:2017-02-27 12:22:35
【问题描述】:

我使用 SQL Server Management Studio 2014 创建了一个数据库,在输入数据时遇到了问题。

问题是我不知道将数据输入(位置)地理单元格的格式。

我输入的经纬度完全一样 > 54.763226, -1.386241

但是得到这个错误:

此单元格中更改的值未被识别为有效。 .NET Framework 数据类型:SqlGeography,错误消息:从“System.String”到“Microsoft.SqlServer.Types.SqlGeography”的无效转换

您能告诉我如何正确地将数据添加到地理单元格中吗?

【问题讨论】:

  • 不要链接到某个文件。在您的问题中包含实际的错误消息。 Edit 它,不要在 cmets 中发布类似的东西 - 最好是 Formatted text
  • 嗨,很抱歉。我已取出链接并将实际错误添加为文本。
  • 正如下面的答案所示,您可以使用Point 方法生成一个点。但是为什么这应该是你可能会感兴趣的另一个问题。 geography 数据类型可以容纳的不仅仅是点。它可以容纳上述的线、区域和复数。一旦您知道这一点,“提供两个浮点数并将它们解释为纬度/经度”这一显而易见的事情就行不通了。

标签: sql sql-server gis


【解决方案1】:

使用具有正确语法的geography数据类型,如下所示

语法:

点(纬度、经度、SRID)

Reference 1

Reference 2

================================================ ==================

示例表:

CREATE TABLE dbo.EarthquakeData 
( 
     EarthquakeID INT IDENTITY(1,1), 
     EarthquakeInformation GEOGRAPHY NOT NULL 
)

插入数据:

insert into dbo.EarthquakeData (EarthquakeInformation )
values (geography::STGeomFromText(
        'POINT(54.763226 -1.386241)',4326))

查看插入的数据:

select cast(EarthquakeInformation as nvarchar(max)) from dbo.EarthquakeData

【讨论】:

  • 嗨,我仍然遇到同样的错误,我完全按照你说的做了:Point(54.763226, -1.386241, 4326),请告知我做错了什么
  • @adamSmith 更新了我的帖子...请检查上面...让我知道状态
  • 非常感谢,今晚我一定会试试的。
  • 非常感谢,您的一个例子奏效了:UPDATE dbo.HairAndBeautySalon SET Location = geography::Point(47.65100, -122.34900, 4326) WHERE SalonID = 1
  • 请把它作为答案然后?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
相关资源
最近更新 更多