Tag: 地理空间

从SQL Server 2008到C#的Geo函数(多边形/地图区域内外的纬度和经度点)

在SQL Server 2008中,我有: Declare @pointIn geometry Declare @pointOut geometry Declare @polygon geometry SET @polygon = geometry::STGeomFromText(‘POLYGON((40 -9,40 -6,35 -6,35 -9,40 -9))’, 4326) SET @pointIn = geometry::STGeomFromText(‘POINT (39 -8)’, 4326) SET @pointOut = geometry::STGeomFromText(‘POINT (41 -3)’, 4326) select @polygon.STIntersects(@pointIn) select @polygon.STIntersects(@pointOut) 正如预期的那样,我得到了结果1和0 。 现在我尝试使用库将相同的代码带到C#: Microsoft.SqlServer.Types.dll 使用以下代码: var p1lat = 40; var p1long = -9; var p2lat […]

我需要哪些经度/纬度调整才能将地图放大到西北和东南?

这与我之前的问题有关 我想在我的地图上添加一个“垫片”,以便极端的图钉不是半边界,半边界。 我走在正确的轨道上(没有双关语),但我的逻辑是错误的。 我写了这个方法: // Adapted from Brundritt and Boonaert: https://stackoverflow.com/questions/26937358/can-i-adjust-my-bing-maps-view-locationrect-bounding-box-by-a-small-amount public static Location GetAShimLocation(IList locations, bool IsForNorthwestCorner) { const double MAP_CUSHION = 0.1; // Is this a comfortable enough cushion? // I don’t know why the Lats are 85 instead of 90 double maxLat = -85; double minLat = 85; double maxLon = -180; […]

通过Massive ORM(ExecuteNonQuery),UdtTypeName错误更新带有空间数据类型的SQL Server 2008记录

我正在尝试使用Rob Conery的Massive“动态ORM”来查询我的数据库(到目前为止工作得很好)。 当我将Geography字段添加到表格时出现问题。 这是错误: UdtTypeName property must be set for UDT parameters 更新(14Apr2011):抛出exception的ADO方法是.ExecuteNonQuery(); 这是抛出exception的Massive.cs中的方法: public virtual int Execute(IEnumerable commands) { var result = 0; using (var conn = OpenConnection()) { using (var tx = conn.BeginTransaction()) { foreach (var cmd in commands) { cmd.Connection = conn; cmd.Transaction = tx; result += cmd.ExecuteNonQuery(); } tx.Commit(); } } […]

如何计算质心

我正在使用地理空间形状并在这里查看质心算法, http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon 我已经在C#中实现了这样的代码(这只是这个改编), 找到多边形的质心? class Program { static void Main(string[] args) { List vertices = new List(); vertices.Add(new Point() { X = 1, Y = 1 }); vertices.Add(new Point() { X = 1, Y = 10 }); vertices.Add(new Point() { X = 2, Y = 10 }); vertices.Add(new Point() { X = 2, Y = […]

MongoDb C#GeoNear查询构建

如何使用C#驱动程序和GeoNear方法在MongoDB中查询附近的地理点? 以下返回具有错误距离值的点: var results = myCollection.GeoNear( Query.GT(“ExpiresOn”, now), // only recent values latitude, longitude, 20 ); 我怀疑我应该告诉Mongo查询double [] Location字段,但我不知道查询语法。

缓冲折线以创建多边形的有效算法?

我需要编写一些代码来缓冲一行来创建一个多边形,如下所示。 http://www.sli.unimelb.edu.au/gisweb/BuffersModule/Buff_line.htm 从遵循概述的步骤开始,我可以围绕简单的线条创建多边形形状,这些线条不会交叉自己或者曲线太紧,但是因为我试图缓冲的线条是波浪形的飓风轨道,所以它真的不够好。 我知道SQL Server 2008中有一个function可以做到这一点,但我担心目前还不行。 任何人都可以指向我可以遵循的更完整算法的方向,或任何可以帮助我解决这个问题的背景信息?

计算端点给定距离,方位,起点

我试图找到目的地点,给定起点纬度/长度,方位和距离。 下面这个网站的计算器给了我想要的结果。 http://www.movable-type.co.uk/scripts/latlong.html 当我尝试通过代码实现相同的操作时,我得不到正确的结果。 以下是我的代码 – private GLatLng pointRadialDistance(double lat1, double lon1, double radianBearing, double radialDistance) { double rEarth = 6371.01; lat1 = DegreeToRadian(lat1); lon1 = DegreeToRadian(lon1); radianBearing = DegreeToRadian(radianBearing); radialDistance = radialDistance / rEarth; double lat = Math.Asin(Math.Sin(lat1) * Math.Cos(radialDistance) + Math.Cos(lat1) * Math.Sin(radialDistance) * Math.Cos(radianBearing)); double lon; if (Math.Cos(lat) == 0) { // […]