【问题标题】:Insert geometry values in SQL Server 2008 R2在 SQL Server 2008 R2 中插入几何值
【发布时间】:2014-12-24 07:19:57
【问题描述】:

我想将 GEOMETRY 值插入到表中。为此,我有一个包含三列的表格,如下所示:

表格:地理位置

create table geo
(
p1 float,
p2 float,
Paths GEOMETRY
);

输入值:我有以下值

p1 = 22.9901232886963
p2 = 87.5953903123242

我的错误尝试:

INSERT INTO geo(Paths)
VALUES (geometry::STGeomFromText('POLYGON (22.9901232886963,87.5953903123242)', 4326));

【问题讨论】:

  • STGeomFromText 是函数 ..??
  • 现在,您的数据没有意义。具体来说,p1 和 p2 代表什么?它们是某个点的 X 和 Y 坐标吗?还有什么?此外,由于您似乎在指定 SRID,您的意思是使用地理数据类型而不是几何数据类型吗?
  • @Ben Thul,是的,它们是重点的 X 和 Y。

标签: sql-server sql-server-2008-r2 spatial sqlgeometry


【解决方案1】:

您的 WKT 格式不正确。这对我有用:

declare @g geometry = geometry::STGeomFromText(
    'POINT (22.9901232886963 87.5953903123242)'
    , 4326);

select @g

还要注意它是一个点而不是一个多边形。

【讨论】:

  • 是的!这是正确的。但是如何使用@g 在表中插入 p1 和 p2 的 x 和 y?
  • 将您对 STGeomFromText 的调用替换为您在原始语句中的调用。
  • 是的!知道了。非常感谢。
  • 4326 是干什么用的?
  • 它确实有一种幻数的感觉,但它是一个特殊的参考标识符 (SRID)。您可以在此处阅读有关评估系统的信息 - en.m.wikipedia.org/wiki/Spatial_reference_system
猜你喜欢
  • 1970-01-01
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
相关资源
最近更新 更多