Questions tagged «geospatial»




2
Criteria SpatialRestrictions.IsWithinDistance NHibernate.Spatial
有没有人实现这个,或者知道实现这个困难/是否有任何指针? public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance) { // TODO: Implement throw new NotImplementedException(); } 来自NHibernate.Spatial.Criterion.SpatialRestrictions 我可以在hql中使用“ where NHSP.Distance(PROPERTY,:point)”。但是要将此查询与我现有的条件查询结合在一起。 目前,我正在创建一个粗糙的多边形,并使用 criteria.Add(SpatialRestrictions.Intersects("PROPERTY", myPolygon)); 编辑 通过在SpatialRelationCriterion上重载构造函数,并添加新的SpatialRelation.Distance,获得了一个原型工作。 public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance) { return new SpatialRelationCriterion(propertyName, SpatialRelation.Distance, anotherGeometry, distance); } 在SpatialRelationCriterion中添加了一个新字段 private readonly double? distance; public …

2
计算地理邻近度的公式
我需要在我的应用程序中实现地理邻近搜索,但是对于要使用的正确公式我非常困惑。在Web和StackOverflow中进行一些搜索后,我发现解决方案是: 使用Haversine公式 使用大圆距离公式 在数据库中使用空间搜索引擎 选项#3真的不是我的ATM选项。现在,我有点困惑了,因为我总是说大圆距离公式和Haversine公式是同义词,但显然我错了吗? 上面的屏幕截图来自MySQL出色的Geo(邻近)搜索文件,并使用以下功能: ASIN, SQRT, POWER, SIN, PI, COS 我还看到了同一个公式(余弦的球形定律)的不同形式,例如: (3956 * ACOS(COS(RADIANS(o_lat)) * COS(RADIANS(d_lat)) * COS(RADIANS(d_lon) - RADIANS(o_lon)) + SIN(RADIANS(o_lat)) * SIN(RADIANS(d_lat)))) 它使用以下功能: ACOS, COS, RADIANS, SIN 我不是数学专家,但是这些公式相同吗?我遇到了更多的变化和公式(例如余弦的球形定律和Vincenty的 公式-似乎是最准确的),这让我更加困惑... 我需要选择一个良好的通用公式以在PHP / MySQL中实现。谁能解释我上面提到的公式之间的区别? 哪一个计算最快? 哪一个提供最准确的结果? 就结果的速度/准确性而言,哪一个最好? 感谢您对这些问题的见解。 基于唯一的理论答案,我测试了以下大圆距离公式: 文森特公式 Haversine公式 余弦球定律 该Vincenty公式是死的慢,但是它是相当准确的(下降到0.5mm) 。 该haversine公式是远远比Vincenty公式更快,我能够在大约6秒,这是我的需要非常接受试验1次亿次运算。 该余弦公式的球面法发现是几乎快一倍的haversine公式和精度差是neglectfulness对于大多数使用情况。 以下是一些测试位置: Google总部(37.422045,-122.084347) …
71 php  mysql  math  geospatial  geo 

1
创建椭圆形信封数据的D3映射
我有一个椭圆形的数据集,更具体地说是椭圆形的“信封”。我想知道是否有人建议我如何在D3地图上绘制这些图形。我已经有一个带有墨卡托投影的地图设置。这个stackoverflow答案有一个createEllipse函数,它使我关闭了,但是我想确保我正确地解释了数据。 我从数据中插入了椭圆的长/短轴值,并使用了旋转的方位角,这是正确的吗?我也不太了解“信封”部分。每个区域中的几个椭圆如何形成一个连续的形状? 任何意见,将不胜感激。 const margin = {top:0, right:0, bottom:0, left:0}, width = 1000 - margin.left - margin.right, height = 800 - margin.top - margin.bottom; const svg = d3.select('body') .append('svg') .attr('width', '100%') .attr('height', '100%') .attr('viewBox', `0 0 ${width + margin.left + margin.right} ${height + margin.top + margin.bottom}`); const chart = svg.append('g') …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.