问题标签 [dbgeography]
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# - DbGeography 相交
我正在DbGeography
使用Entity Framework 6
这个模型:
然后我尝试执行如下Intersects
方法:
但是,对于这两种方法,创建的查询看起来像这样。我可以做些什么来不选择整个表并在数据库中执行查询?
c# - 传递 DBGeometry 列表以检索 SQL 中包含的点
我的 SQL 服务器上有一个数据集,其中包含几百万个地理点,我想根据我在客户端创建的 DBGeography 矩形网格来检索这些地理点。基本上我想传入 ac# List of DBGeography ,我的服务器将返回适合这些几何图形的点列表,以及它们所属的 DBGeography 。我目前正在查询每个单独的矩形,如果我要拉的地图被分成大量的瓷砖,则会引起很多查询。显然,性能受到影响。
我目前正在使用下面的代码。
问题:我将如何更改它以传入 DBGeography 矩形列表并取回相应的数据?
MyRectangle 是我在 C# 中创建的 DBGeography,而 Location 是我的 SQL 表中的点地理。此代码当前有效,但一次仅适用于一个单元格。我尝试了几件事,但无济于事。实体框架不是我的专长,但我也不知道如何直接使用 SQL(尽管如果需要解决方案,我可以使用 SQL)。
我还尝试将所有点(从较大的外部矩形)拉到客户端,然后在客户端进行处理以将其细分为网格。即使初始查询几乎是即时的(可能是因为索引),性能也很慢。
c# - 将两个 C# DbGeography 多边形连接成一个多多边形
我从官方来源下载了一张包含瑞典地区的地图作为 Shape 文件。然后我使用QGIS将数据转换为geojson
,然后将其转换geojson
为DbGeography
如下所示:
https://stackoverflow.com/a/49225753/3850405
地图来源:
这些地区可以有两个或更多区域,但不是multipolygon
,但polygon
每个区域共享相同的密钥(代码)。使用其他官方来源,我直接得到了一个multipolygon
,但不是来自这个来源。当我将它保存到我的数据库时,我想正确地进行操作,并且只有一次 code 和 name 属性并将其存储为multipolygon
. 我使用实体框架将信息存储到我的数据库中。
如何将两个或多个多边形连接成一个多多边形?
带有代码的Stora Hammars distrikt示例101019
。
当前代码:
模型:
方法:
扩展方法是为了解决由于 SQL Server 使用左手方向而导致的MakePolygonValid()
环方向错误,而瑞典几乎所有的源都使用右手方向。这里描述了扩展方法:
xamarin.forms - 无法让 DbGeography 在 Xamarin.Forms 应用程序中工作
执行所有 Gets、Puts、Posts 等操作的 SDK 是 PCL。因此,我无法安装实体框架。
使用 Postman 的基本获取返回有关 DbGeography 的以下数据。
由于我无法安装实体框架,因此我尝试创建自己的 DbGeography 和 DbGeographyWellKnownValue。
我从应用程序进行的 API 调用应返回 4 条完整记录。相反,一旦 Json 被反序列化,它就会返回 1 条完整记录和 3 条空记录。我认为这与 DbGeography 字段有关。我试过添加 [JsonIgnore],但这仍然没有得到 4 条完整的记录。这是我的 Location、DbGeography、DbGeographyWellKnownValue 和 DbGeographyConverter 类。
地点
地理数据库
DbGeography众所周知的值
最后,我有一个DbGeographyConverter类。
这一切都在我的 MVC 5 Web 应用程序中完美运行,并且使用相同的 API,所以我知道它与 DbGeography 字段有关。
任何帮助深表感谢。谢谢!
c# - System.Data.Spatial DbGeography.Distance 无法始终如一地工作
我正在开发一个需要计算点之间距离的应用程序。我正在使用 LINQ 和 DbGeography 类来实现这一点。
在大多数情况下,它在应用程序中运行良好,但是我遇到了一个问题,它没有返回正确的结果。我请看一下,看看你是否发现问题。
我有用于测试目的的硬编码值。
这个确切的代码适用于其他值,所以我很难过。请帮忙
谢谢
c# - 在我的 dbGeography linq-to-entity 语句中删除半径子句
如何删除我的 linq-to-entity 语句中的“半径”,以便它不会将搜索限制在半径范围内?
仅供参考 - 我希望我的查询搜索以“术语”开头的名称,并从最接近位置点的名称开始向外搜索,但不将其限制为半径
wcf - 如何在 WCF 服务应用程序中使用 Microsoft.SqlServer.Types
我正在开发 WCF 服务应用程序。我想找到离某人最近的位置。我的问题是当我想调用与 System.Data.Entity.Spatial.DbGeography 相关的任何方法时,我收到此错误“空间类型和函数不适用于此提供程序,因为程序集 'Microsoft.SqlServer.Types' 版本 10 或更高版本可能找不到。”
我在 Visual Studio 2017 解决方案中通过 NuGet 安装 Microsoft.SqlServer.Types 并在调用 DbGeography 类之前调用加载 SqlServerTypes 程序集
在尝试查询位置之前,我调用了 CheckSqlServerTypes(),但我仍然收到此错误“空间类型和函数不适用于此提供程序,因为找不到程序集 'Microsoft.SqlServer.Types' 版本 10 或更高版本。”
我的错误是什么?
c# - System.Data.Spatial DBGeography.Distance() 将与 SQL Server 2008 一起使用吗?
我正在使用LINQToSQL、c#System.Data.Spatial.DBGeography.Distance()
来计算两个位置之间的距离。DBGeography
我验证这适用于 SQL Server 2012。我可以在 SQL Server 2008 中使用它吗?
先感谢您!
c# - DbGeography.Distance 返回不正确的结果
这是我的简化代码:
这是“CreatePoint”函数:
我在几个来源中看到结果应该以米为单位,所以我预计会看到493:
http://boulter.com/gps/distance/?from=-73.98%2C40.7155773&to=-73.984434%2C40.7155773&units=k
谷歌地图测量工具显示相同的结果(但它不允许共享链接)。
但是我从“距离”函数得到的结果是374.65。我检查了两个对象的 CoordinateSystemId,它的默认值是 4326。
那么我做错了什么?或者那个结果是哪个单位的?