问题标签 [sqlgeography]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
747 浏览

sql - 如何为地理数据类型列添加值?

我正在尝试插入一条记录,t-sql如下所示。我对向地理数据类型列添加值感到震惊。

这是一个地理值:

t-sql请告诉我如何在声明中增加地理价值的价值。

插入语句

桌子

请参阅下面以 csv 文件格式插入的数据:

0 投票
2 回答
910 浏览

c# - 如何在 SQL Server 中使用 STIntersection 查询返回多个字段

我正在计算 SQL Server 中的多边形交点,并根据此处的示例有一个如下所示的表:http: //msdn.microsoft.com/en-gb/library/cc280766.aspx其中计算了“Coordinates_OGC_WKT”。

我已经测试了以下建议的 SP,它可以工作,但是我不确定如何还返回“ZoneName”字段——这很重要。

结果显示交点坐标,但不指示数据库中保存多边形坐标的行。我正在尝试检索发生交叉点的“ZoneName”(这是必需的):

这一定很简单,但我很挣扎。

- - 编辑 - -

这看起来好像它应该工作并且有点......但我得到的区域不在折线附近:

我通过在谷歌地图上手动绘制它来检查折线是否正确。我还通过相同的操作检查了多边形坐标是否正确,那么为什么数据库会返回距离折线 50 多英里且绝对没有交叉点的区域?

作为测试,折线穿过伦敦,所以我想我会看看布鲁塞尔的一个区域是否也被归还......不是。因此,这可能是一个准确性问题吗?我对此表示怀疑,因为绘制的折线可以准确渲染并且不会靠近区域。

我现在有点绝望,所以我也想知道我是按正确的顺序存储坐标(lat lng)还是应该是 lng lat?

0 投票
2 回答
18727 浏览

sql - 如何从 SQL Server 地理数据类型字段中选择经纬度坐标

考虑到 SQL Server 的“地理”数据类型......

我可以输入一个纬度和经度数组(顺便说一句,这样做的正确顺序还是应该是经度纬度?)指向字段如下:

这将显示为:

如何将它们选择回它们的纬度和经度格式?

0 投票
2 回答
1791 浏览

sql - SQL Server STIntersects 查询返回误报

问题

STIntersects 返回误报

场景

  1. 我使用 GoogleMaps 绘制了一个表示“伦敦拥堵费”区域的多边形,并将坐标保存到地理字段中的数据库中
  2. 我从 Google Directions API 获得一条折线
  3. 我检查折线是否与我存储的任何区域相交。

问题

  1. 一条路线在伦敦附近无处可去(避开了 50 英里),但 STIntersects 正在显示伦敦市中心的伦敦拥堵费多边形的交叉点。
  2. 我知道折线很好,因为我可以在谷歌地图上渲染它并看到它。我也知道这不是问题(见后文)
  3. 多边形坐标似乎非常好(尽管我怀疑这里有问题),因为当我在 Google 地图上直观地渲染多边形时,它会正确显示。

我相信多边形坐标是一个贡献者是因为我尝试了以下方法:

  1. 我创建了应用程序和数据库的两个完全独立的实例
  2. 我在其中一个比另一个更具体地(更多点)绘制了伦敦拥堵费区
  3. 尽管在视觉上它们看起来非常相似(它们都覆盖了伦敦拥堵费区域),但具有更多积分的版本效果很好。多段线可以在没有报告交叉点的情况下直接通过它,而具有较少点的版本会返回一个误报,因为多段线距离它实际上是几英里(50 奇数)。

怎么会这样?

这是重现问题的方法。

将问题多边形添加到地理数据库字段:

将工作多边形添加到地理数据库字段:

使用 stintersects SQL 查询运行此折线检查:

您会看到“IDoNotWork”记录在不应该被选中时被选中。

任何帮助将不胜感激。

显示使用 Google 地图呈现的两个区域的图表

这是绘制为折线的完全相同的坐标。您可以看到他们在该区域附近无处可去。

在此处输入图像描述

0 投票
1 回答
2292 浏览

c# - SqlGeography 从多多边形中获取多边形

我的表格Town包含TownBoundary相关城镇的多边形(geography数据类型)。

对于每个城镇,我都会获得生成 KML(XML) 文件所需的多边形数据,例如:

的值town.TownBoundary.WellKnownValue.WellKnownTextPOLYGON(..

但最近我意识到一些城镇包含更多的多边形,并且WellKnownText开始MULTIPOLYGON(..和功能STPolyFromText错误。

我已经将它放在try{}块中,但是在catch{}- 如果值是多面体 - 是否有可能以某种方式获得单个多边形?我知道有 method STMPolyFromText,但我无法访问那里的单个多边形,只能访问 method 中的点STPolyFromText

我的目标是将多面体拆分为多边形,然后 foreach 多边形执行与上述相同的方法。

0 投票
2 回答
2504 浏览

sql-server - 如何通过“SqlDataReader”读取“geography”列?

我有一个 SQL Server 2008 数据库,geography其中有一列由System.Data.Entity.Spatial.DbGeographyEntity Framework 6.0.0-alpha3 生成。

现在我需要用SqlDataReader. 但我不知道该怎么做。使用旧上下文不是一种选择。我试图将其转换为DbGeography

但我得到这个错误:

无法将“Microsoft.SqlServer.Types.SqlGeography”类型的对象转换为“System.Data.Entity.Spatial.DbGeography”类型

你有什么建议吗?

0 投票
1 回答
584 浏览

google-maps - SQL Server 2012 地理 STIntersects 理解

我试图得到多边形内的所有点,经过几次测试,我终于抓住了。

STIntersects即使在“视觉上”不在多边形中的点的情况下,也始终为我的所有实体返回 1。

我找到了有关多边形创建方向的帖子并尝试了它,但它没有帮助我:)

所以我决定创建一个简单的案例:

  1. 在俄罗斯某处具有 4 个顶点的多边形(角:55 37、56 38)
  2. 此多边形内的一点
  3. 还有一个在外面

这是带有点的谷歌地图的链接

这个测试的结果让我摆脱了困境

为什么会这样?我只是不明白我错过了什么

我希望pointIn当我的多边形很小时应该返回 1,当我的多边形是整个世界减去选定区域时pointOut返回 0,并且应该在第一种情况下返回 0,在第二种情况下返回 1

但是两个点都在逆时针多边形中返回 1。

更新

最后我的错误是geography::STPolyFromText 第一个应该是 lng 和第二个 lat 的输入参数的顺序。并且扩展顺序是不同的 msdn 说Point ( Lat, Long, SRID )

0 投票
1 回答
617 浏览

sql - 从几何类型生成带有 X 和 Y 的视图

中,我想生成包含几何类型的所有点的视图。我怎样才能做到这一点?查看示例

带有 sys.SDO 的 Oracle 示例

0 投票
1 回答
2173 浏览

sql - 使用地理和距离从 SQL Server 数据库中选择记录

我正在使用 SQL Server 地理数据类型将记录的位置存储在我的数据库中。我想选择给定位置给定距离内的所有记录:

在我的测试数据库中有几十条记录,它运行得非常快,我没有任何问题,但我知道 WHERE 子句正在针对我数据库中的所有记录运行 STDistance,一旦我有数千条记录,它就会慢到爬行。

有一个更好的方法吗?也许创建某种区域并首先在相邻区域中选择数据?

0 投票
1 回答
483 浏览

python - 返回矩形内的点列表

我有一个地理(纬度,经度)点的数据库(MySQL),我需要从一个矩形(每个顶点有 2 个坐标)中查询点列表。是否有任何查询或算法可以快速解决此问题。

谢谢。