在C#客户端中使用SqlGeography类型

提姆

在C#客户端,我尝试使用SQLServerTypes(SqlServerSpatial140.dll)程序集(编辑:直接这样做SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory))来测量地球上点之间的距离,一个街道地址与另一个街道地址之间的距离通常在50以内彼此相距数英里(但有时更远)。每个位置都表示为纬度/经度对。

这是一个Framework应用程序,并使用NuGet包。

此代码正确吗?我认为不可能,因为我得到的值distance太小了,例如,24.35946...当两个点相距数百英里时,例如两个城镇,其中一个位于北卡罗来纳州,另一个位于在波多黎各。米不是标准单位吗?

        foreach (Origin o in Origins)
        {
            o.loc = SqlGeometry.Point(o.lat, o.lon, 4326);
            foreach (Destination d in Destinations)
            {
                SqlDouble distance = o.loc.STDistance(SqlGeometry.Point(d.lat, d.lon, 4326));
                <snip>                   
            }
        }

4326SRID是否正确?如果SRID为零,我将得到相同的结果。同样,向Point提供参数的顺序(lat,lon)或(lon,lat)不会使距离数变大。

PS我可以在Brian的帮助下使其正常运行。这是我实例化Point的方法:

 public Microsoft.SqlServer.Types.SqlGeography CreateGeographyPoint(double longitude, double latitude)
        {
            var text = string.Format("POINT({0} {1})", longitude, latitude);
            var ch = new System.Data.SqlTypes.SqlChars(text);
            return Microsoft.SqlServer.Types.SqlGeography.STPointFromText( ch, 4326);
        }
布莱恩·W。

您应该使用Sqlgeography类,Srid 4326将以米为单位给出结果。

SqlGeometry用于笛卡尔坐标(x,y),而SqlGeography用于地理空间坐标Long,Lat(按此顺序)。

用SqlGeography替换SqlGeometry。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Geode C# 本机客户端在类型注册表中注册 PDX 类型

来自分类Dev

如何在XSockets中使用C#客户端API获取/设置属性

来自分类Dev

在C#中使用Web客户端时是否有上传限制?

来自分类Dev

在C#中使用smtp客户端发送电子邮件

来自分类Dev

在C#中使用Web客户端时是否有上传限制?

来自分类Dev

如何在C#中使用NEST客户端的ElasticClient类中的Serialize方法?

来自分类Dev

要使用C#客户端,我需要安装Oracle客户端吗?

来自分类Dev

在C ++函数中使用MQTT客户端指针

来自分类Dev

在ASP.NET中使用C#从客户端向服务器端发送值

来自分类Dev

使用Redis作为缓存和C#客户端

来自分类Dev

使用新的DocuSign C#客户端破坏信封

来自分类Dev

在C#中结合使用客户端代理

来自分类Dev

使用Redis作为缓存和C#客户端

来自分类Dev

如何使用servicestack类型的客户端?

来自分类Dev

在Accumulo Proxy C#客户端中使用正则表达式过滤器

来自分类Dev

C#启动邮件客户端

来自分类Dev

使用C#的TCP / IP服务器/客户端多连接并接收客户端的公共IP地址

来自分类Dev

如果服务器关闭,如何在C#中使gRPC客户端超时?

来自分类Dev

如何使用服务器端C#在客户端更改表单属性

来自分类Dev

js客户端脚本注册客户端脚本块C#

来自分类Dev

在C中使用Modbus创建一个简单的客户端/服务器

来自分类Dev

在客户端的C编程中使用UDP检查服务器何时联机

来自分类Dev

C#WCF-在客户端应用程序中使用Service中的实体

来自分类Dev

C ++中使用boost :: Beast的Websocket客户端-写入操作时引发错误

来自分类Dev

在C ++中使用TCP套接字进行远程客户端和服务器通信

来自分类Dev

在C中使用UDP进行服务器-客户端文件传输

来自分类Dev

在客户端的C编程中使用UDP检查服务器何时联机

来自分类Dev

(C)在多线程客户端和服务器中使用互斥锁

来自分类Dev

使用HttpClient子类的类型化客户端

Related 相关文章

  1. 1

    使用 Geode C# 本机客户端在类型注册表中注册 PDX 类型

  2. 2

    如何在XSockets中使用C#客户端API获取/设置属性

  3. 3

    在C#中使用Web客户端时是否有上传限制?

  4. 4

    在C#中使用smtp客户端发送电子邮件

  5. 5

    在C#中使用Web客户端时是否有上传限制?

  6. 6

    如何在C#中使用NEST客户端的ElasticClient类中的Serialize方法?

  7. 7

    要使用C#客户端,我需要安装Oracle客户端吗?

  8. 8

    在C ++函数中使用MQTT客户端指针

  9. 9

    在ASP.NET中使用C#从客户端向服务器端发送值

  10. 10

    使用Redis作为缓存和C#客户端

  11. 11

    使用新的DocuSign C#客户端破坏信封

  12. 12

    在C#中结合使用客户端代理

  13. 13

    使用Redis作为缓存和C#客户端

  14. 14

    如何使用servicestack类型的客户端?

  15. 15

    在Accumulo Proxy C#客户端中使用正则表达式过滤器

  16. 16

    C#启动邮件客户端

  17. 17

    使用C#的TCP / IP服务器/客户端多连接并接收客户端的公共IP地址

  18. 18

    如果服务器关闭,如何在C#中使gRPC客户端超时?

  19. 19

    如何使用服务器端C#在客户端更改表单属性

  20. 20

    js客户端脚本注册客户端脚本块C#

  21. 21

    在C中使用Modbus创建一个简单的客户端/服务器

  22. 22

    在客户端的C编程中使用UDP检查服务器何时联机

  23. 23

    C#WCF-在客户端应用程序中使用Service中的实体

  24. 24

    C ++中使用boost :: Beast的Websocket客户端-写入操作时引发错误

  25. 25

    在C ++中使用TCP套接字进行远程客户端和服务器通信

  26. 26

    在C中使用UDP进行服务器-客户端文件传输

  27. 27

    在客户端的C编程中使用UDP检查服务器何时联机

  28. 28

    (C)在多线程客户端和服务器中使用互斥锁

  29. 29

    使用HttpClient子类的类型化客户端

热门标签

归档