问题标签 [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.
c# - 使用设计器将 Geography.Lat/Long 添加到视图
我目前正在处理一些 GIS 数据并在 MS SQL Server 2012 中使用 Geography 数据类型。尝试使用 View 设计器显示 Geography 类型的纬度和经度时遇到一些困难,特别是如果我与另一个连接桌子。
例如,以下在视图设计器中工作正常:
但是,这不会:
我发现如果我删除架构 (dbo) 并通过 SQL 命令手动创建视图,它将创建视图并正确运行,但是,稍后尝试通过设计器对其进行编辑将显示错误。
作为参考,设计师抛出的错误是“无法绑定多部分标识符”。
虽然手动创建 View 可以解决这个问题,但我真的很想找到一种方法来解决这个问题,因为它困扰着我,但也给从事该项目的其他人带来了问题,他们不知道现在是将来编辑 View 的唯一方法是创建一个“Alter View”SQL 命令。
我已经尝试寻找答案,但还没有找到任何东西,通常这不会是一个问题,因为我会从代码中获取地理类型对象并在那里显示纬度/经度,但我需要创建第 3 方的导出/视图。
sql - 多多边形地理并集的高效计算技术
我有包含许多(70,000+)GEOGRAPHY
多边形的数据库表。(多边形是属性地块。)我们需要对MULTIPOLYGON
由所有这些地块的地理联合组成的聚合形状 (a) 执行一些计算,例如“这些多边形覆盖凸包的百分比” ? (注意:这并不像听起来那么简单。重叠的地块确实会发生,我们不想重复计算它们,所以我们不能简单地将地块的面积相加。)
为了执行这些计算,我们想要生成一个新形状,它代表所有多边形的地理联合。根据对这个问题的回答,我尝试了以下查询:
但是查询需要很长时间(到目前为止,60 分钟还在计数;还没有答案)。我想知道其他人可以想到哪些其他技术更有效。此查询不需要是实时查询,但 60 多分钟也不行。
sql - 同步“Microsoft.SqlServer.Types.SqlGeography”类型时的 Visual Studio 数据比较错误
尝试运行由 Visual Studio 的数据比较工具生成的脚本时会引发错误。通过谷歌搜索我找不到解决方案。
这发生在我在办公室尝试过的所有开发机器上。
我在 Microsoft SQL Sever Management Studio 2006 R2 中执行它,通过网络连接到远程服务器实例。
- Microsoft SQL Server 管理工作室 10.50.2550.0
- Microsoft 分析服务客户端工具 10.50.2500.0
- Microsoft 数据访问组件 (MDAC) 6.1.7601.17514
- 微软 MSXML3.0 4.0 5.0 6.0
- 微软 Internet Explorer 9.11.9600.16476
- 微软 .NET 框架 2.0.50727.5472
- 操作系统 6.1.7601
错误
SQL
http://pastebin.com/embed_iframe.php?i=R9ResyeX
请注意,表格列“形状”被声明为;
我试图更正生成的 TSQL,我根据http://technet.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlgeography.write%28v=sql.105%29将 .WRITE 更改为 .Write 然后将.aspx去掉两个多余的NULL,从NULL参数结束。以防 SQL 自动将十六进制字符串转换为该方法期望的 BinaryWriter。这导致了预期的错误;
我不确定,但这看起来像是代码比较工具中的一个错误,它在哪里生成无效的 SqlGeography SQL 命令?
如果我们完全删除“.WRITE”并只保留 = 运算符,这看起来就像 TSQL 应该强制十六进制值的方式,因为它会更进一步。然而,我们得到另一个错误。
我发现的唯一一篇涉及这个错误的文章是这个;
http://blogs.msdn.com/b/isaac/archive/2009/08/10/spatial-data-type-structure.aspx
但是,当谈到 Visual Studio 从源数据表中提取的 HEX 时,我并不明智。
c# - 查找附近的 GPS 导航路线
我正在开发一个拼车网站。为此,我创建了具有不同用户选择的不同路线选项的数据库。这些路线作为地理数据类型保存在数据库中。对于数据访问,我使用了实体框架。在 C# 代码中,我使用 DBGeography 数据类型来处理路由。
我有一个要求,用户可以选择一条路线,并识别选择保存在数据库中的相同/附近路线的用户。我如何实现这一目标?
sql-server - 检查点是否在多边形内不起作用
使用 SQL Server 2012,以下查询不断告诉我,我正在寻找的点不在我正在使用的多边形内,但我知道它在。在 QGIS 2.2.0 中使用相同的数据,我清楚地看到该点位于多边形内部(屏幕截图)。
我需要做什么才能让查询告诉我该点在多边形中?我看到一些搜索结果谈论“方向”,但我不知道如何指定它。坐标是从 Google Maps JavaScript API 捕获的,并使用 Entity Framework 6.1 保存到数据库中。
sql-server - 如何找到从多边形边缘开始的多边形外部点的最短距离?
考虑以下:
- A 点
DbGeography
(办公地址) - B 点
DbGeography
(客户地址在办公室服务区域外) - Polygon C
DbGeography
(办公室服务区)
使用上述点和多边形,我怎样才能找到B到C边缘的最近距离?我假设首先我需要找到A和B之间的线,然后找到线与C(= D)相交的位置,然后计算从D到B的距离?
由于我对 SQL Server 空间功能的使用是有限的,而且我使用的是实体框架,所以我不确定如何在代码中表达它。我还假设我必须使用SqlGeography
它,因为DbGeography
它有点有限。我可能最终会为DbGeography
.
对于如何完成上述任务的任何建议(希望代码示例),我将不胜感激。
c# - 无法使用 dapper 将 SQL 地理列映射到 EF DbGeography 类
我的 SQL 数据库中有带有 sql geography 列的表。我已经使用 EF6 为我的数据库生成了实体。如您所知,实体框架System.Data.Entity.Spatial.DbGeography
为 SQL 地理类型生成。我正在使用 dapper 运行查询并将结果映射到我的 EF 生成的实体中。
我的实体类
引发异常的 SQL 查询
这是异常快照
我认为默认情况下,dapper 正在尝试映射到Microsoft.SqlServer.Types.SqlGeography
.
这里有什么解决方法吗?
已编辑
找到了一些解决方案,为我的实体创建了部分类
并改变了我的查询
c# - 从多边形 SqlGeography 创建 MultiPolygon SqlGeography
我有一个多边形的 SqlGeography 列表。我想将它们组合成一个多多边形类型的 SqlGeography。
sql-server-2008 - 多个地理值之间的距离
我们使用多个地理点的平均值来获得平均值并将其分配为项目位置。我现在需要追踪这些数据并以某种方式识别任何与其他点相距太远的原始点。我认为我需要使用 STDistance,但担心要正确使用,我需要 2 个游标来循环遍历并将每个点与其他点进行比较。
举个例子来说明一下:我们需要锁定一个项目的 GPS 坐标,所以我们要求用户在他们处于项目的大致区域时按下一个按钮,并记录 GPS 坐标。然后我们取其中的 5 个并将项目的位置设置为 AVG(Location.Lat) + AVG(Location.Long)。当其中一个用户按下数英里外,抛出平均值时,就会出现问题,因此现在需要识别其中的任何一个。
关于仅在 SQL 中执行此操作的正确/有效方法的任何想法?(处理数百万个条目,因此担心每个项目循环 2 个游标会削弱数据库)
c# - 从 DataReader 检索 SqlGeography 类型时如何解决 InvalidCastException?
我正在使用 Visual Studio 2013 和 SQL Server 2012 在 C# 中进行开发。我已经能够使用 T-SQL 将多边形存储在地理列中,并且我没有尝试在代码中使用 SqlGeography 类来检索数据。
当我尝试:
从我收到消息的数据库中检索多边形:
GeoLib.dll 中出现“System.InvalidCastException”类型的未处理异常
附加信息:[A]Microsoft.SqlServer.Types.SqlGeography 不能转换为 [B]Microsoft.SqlServer.Types.SqlGeography。类型 A 源自 'Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' 在位置 'C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Types\10.0 的上下文 'Default' 中.0.0__89845dcd8080cc91\Microsoft.SqlServer.Types.dll'。
类型 B 源自 'Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' 在位置'C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Types\11.0 的上下文'Default'中.0.0__89845dcd8080cc91\Microsoft.SqlServer.Types.dll'。
我怀疑 SQL Server 和 Visual Studio 之间的版本不兼容,如不同的版本号所示。有没有人遇到过这个?也许我需要安装 SQL Server 2014?任何想法表示赞赏!