问题标签 [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# - 是否可以将 SqlGeography 与 Linq to Sql 一起使用?
我在尝试使用Microsoft.SqlServer.Types.SqlGeography
. 我很清楚 Linq to Sql 对此的支持不是很好。我尝试了很多方法,从预期的方法开始(数据库类型geography
,CLR 类型SqlGeography
)。这会产生NotSupportedException
,通过博客广泛讨论。
然后,我沿着将geography
列视为的路径varbinary(max)
,将geography
UDT 存储为二进制文件。这似乎工作正常(使用一些二进制读写扩展方法)。
然而,我现在遇到了一个相当模糊的问题,这似乎并没有发生在许多其他人身上。
System.InvalidCastException:无法将“Microsoft.SqlServer.Types.SqlGeography”类型的对象转换为“System.Byte []”类型。
ObjectMaterializer
迭代查询时会引发此错误。它似乎仅在包含地理列的表被隐式包含在查询中时发生(即使用EntityRef<>
属性进行连接)。
System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
我的问题:如果我将geography
列检索为varbinary(max)
,我可能会期望反向错误:无法byte[]
转换为SqlGeography
. 我会理解的。这个我不。我在隐藏二进制转换的部分 LINQ to SQL 类上确实有一些属性......这些可能是问题吗?
任何帮助表示赞赏,我知道可能没有足够的信息。
附加功能:
geography
Visual Studio dbml 设计器中带有“服务器数据类型”的列 =生成geography
此错误:The specified type 'geography' is not a valid provider type.
- Visual Studio dbml 设计器中没有“服务器数据类型”的
geography
列会生成此错误:Could not format node 'Value' for execution as SQL.
polygon - SQL 地理河流清除
如何从 GeographyCollection 中删除“孔”/linestrings/.etc?其次,你如何加入不相交成一个多边形的 MPolygons?
我们有一个地理地图的邮政编码汇总,但我们在形状上有洞。研究了这个和那个,但我还没有找到去除内孔的好方法。
ConvexHull 创建了一个时髦的形状,这也不是我们真正想要的。目标是使该区域“贴合”在一起,以便在地图上便于人类查看。
.Reduce 有帮助,但它不会删除所有内容。我真的只想要只有当有 2 个多边形彼此相邻时才会出现带有微小(小)ConvexHull 的外部信封。
想法?重定向?
visual-studio-2010 - LINQ to SQL 设计器和地理数据类型
我在将表格加载到设计器时遇到了一些问题。我收到以下错误。
一个或多个选定项目包含设计器不支持的数据类型
假设它是导致此错误的表中使用的地理类型,我是否正确?
任何指针都非常感谢。
silverlight - 是否有 SqlGeography 的 Silverlight 替代品?
我正在寻找可以在 Silverlight 中工作的 Microsoft.SqlServer.Types.SqlGeography 的替代品。我主要对任意数据集合(点、路径或多边形)以及 STBuffer、STUnion 和 STIntersect 功能感兴趣。
我需要通过中间层的 WCF 从我的数据库中检索一些地理数据,并将其返回给我的 silverlight 客户端,让它在那里操作地理空间数据。我错误地认为我可以使用 Microsoft.SqlServer.Types.SqlGeography 类型来做到这一点。不幸的是,它包含非托管代码并且不会通过 WCF 序列化。
我希望有人以前做过这件事,而不仅仅是将纬度/经度编码为其他格式。问题是当我将数据返回给客户端时我需要对数据执行操作,并且不想处理执行此操作的算法。
c# - KML 到 SqlGeography
任何人都有将 KML 转换为 SqlGeography (SQLServer DataType) 的函数或 DLL?
如果有必要我会自己写出来,但我很惊讶我在那里找不到。
sql-server - SQL Server GEOGRAPHY_GRID x & y 范围
我有一张表需要记录全世界的地理点(经纬度)。输入数据是传统的纵向和纬度(-180、-90、180、90)。
我创建了一个地理列并希望对其进行索引。但是,有很多选项,MSDN 并未指明最佳实践。我有以下问题:
- 我假设 GRIDS = ( LEVEL_1 = HIGH, LEVEL_2 = HIGH, LEVEL_3 = HIGH, LEVEL_4 = HIGH) 最适合网格。这将在纬度 ≈ 611.5m 处创建最大可能的分辨率。我已经看到了其他选项的示例。什么是最好的?
- 由于我只记录点,我假设 CELLS_PER_OBJECT = 1 是正确的?
- GEOGRAPHY_GRID 的 x 和 y 的最小到最大范围是多少?见#4。
- 参考上面的#3,我是否需要将传统的纵向和纬度(-180、-90、180、90)数据转换为 GEOGRAPHY_GRID 使用的任何范围以便正确使用网格?
sql-server - SQL Server 2008 地理 - 空间结果 - 基于另一列值的颜色
我在 SQL Server 2008 中有这样的表:
如果 I SELECT * FROM this_table
,我会自动获得空间结果——比如地图上的点。
我想得到的是同样的东西,但是点的颜色是基于serv_type
列的,即我想要相同的“地图”,但是所有的餐馆都应该是蓝色的,所有的商店都应该是红色的。
是否可以在 SQL Server 中执行此操作?谢谢。
sql-server - SQL 中的地理空间数据
我最近一直在尝试地理数据类型,并且很喜欢它。但我无法决定是否应该从当前模式转换为地理类型,该模式将纬度和经度存储在两个单独的数字(9,5)字段中。我已经计算出这两种类型的大小和表示一个点的纬度/经度方式是单个点的 28 个字节,而地理类型是 26 个。空间上的增益不是很大,但在执行地理空间操作(相交、距离测量等)方面有很大的改进。 ) 目前使用笨拙的存储过程和标量函数处理。我想知道的是指数。地理数据类型是否需要更多空间来索引数据?我有一种感觉,即使存储在列中的实际数据较少,我认为地理空间索引的工作方式最终会为它们分配更大的空间。
PS 作为旁注,似乎 SQL Server 2008(不是 R2)不会自动搜索地理空间索引,除非明确告知使用 WITH(INDEX()) 子句
sql-server - SQL Server 地理数据类型:奇怪的行为
我有一个应用程序已经运行多年,没有任何问题。最近我决定在其中一个表中添加一个地理类型列,应用程序使用。这样做之后,生产服务器上的网站开始出现问题:在使用表的地方出现了奇怪的空引用异常。但更重要的是,该站点在我的开发机器上运行良好。请注意,我所做的唯一更改是将列添加到表中。DAL 或 BBL 没有任何变化。数据访问层是使用 ADO.NED 编写的。我的开发机器和生产服务器之间唯一真正的区别是我的机器上安装了 SQL Server 2008 R2。但仍然无法弄清楚为什么这会导致应用程序错误。如果我忽略 SELECT 语句中的地理列,代码工作正常,但是一旦存储过程也返回此列,代码就会停止工作。难道DataSet不知道如何处理Geography类型的数据?
任何见解都受到高度赞赏。
sql-server-2008 - MS SQL geography.STDistance 返回错误的距离
我正在尝试查询距另一个位置指定距离内的任何位置。查询不是问题,但 geography.STDistance 返回的距离是。
它似乎STDistance
对靠近赤道的位置进行了相当准确的计算,但我需要它来处理北欧国家的位置。挪威、瑞典、芬兰等等……
根据我在瑞典北部地点进行的计算,距离误差大约为 2.38 倍?!预期结果为 1070 米,返回距离为 2537,28850694302 米
我的查询如下所示:
并且“其他位置”具有坐标(65,578541 22,202286)(存储在 SRID 4326 中)
我猜这与到赤道的距离(靠近极圈)有关,但必须有一种方法可以根据纬度更准确地计算出来,还是我错了?