【问题标题】:SQL Geography Data type doesn't recognize latitude and longitudeSQL 地理数据类型无法识别纬度和经度
【发布时间】:2015-06-17 16:46:21
【问题描述】:

我创建了一个表

CREATE TABLE [dbo].[Geographic](
    [SEPM_Code] [varchar](50) NOT NULL,
    [Rack_Code] [varchar](50) NOT NULL,
    [Team] [varchar](50) NOT NULL,
    [Address] [varchar](max) NOT NULL,
    [Longitude] [geography] NOT NULL,
    [Latitude] [geography] NOT NULL,
 CONSTRAINT [PK_Geographic] PRIMARY KEY CLUSTERED 
(
    [SEPM_Code] ASC
)

当我尝试以下插入时

insert into dbo.Geographic
values ('31R001','31R001','Staten Island','100 Cool Ave',-74.243950,40.508638)

我明白了

Msg 206, Level 16, State 2, Line 1
Operand type clash: numeric is incompatible with geography

我希望创建一个包含代码、地址、经纬度的数据库,以最终导入 R 编程并创建热图。

现在我正在尝试理解 geography 数据类型,因为它可能对此有所帮助。

我认为纬度和经度浮点值与geography 兼容,但我得到了错误。

请指教

【问题讨论】:

    标签: sql-server-2008 geolocation sql-insert geography


    【解决方案1】:

    纬度和经度是浮点数。如果要将它们作为单独的列存储在数据库中,请使用浮点数据类型。请记住,在这种情况下,您失去了利用数据库空间特征的能力,例如空间索引。

    地理数据类型用于点、线、折线等对象。地理列存储点时,其中包括纬度和经度。

    【讨论】:

    • 是的,这就是我最终所做的,将列保存为数据库表中的浮点数。
    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 2019-02-13
    • 2011-12-30
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    相关资源
    最近更新 更多