按地理分布确定“范围”

Posted

技术标签:

【中文标题】按地理分布确定“范围”【英文标题】:Determine "reach" by geographic distribution 【发布时间】:2013-10-21 01:50:22 【问题描述】:

我收集了大量在不同地理位置生产的产品的签到。我想创建一个汇总指标,用于根据这些产品在全球范围内从原产地出发的距离对它们进行排名。例如,在加利福尼亚州、佛罗里达州和爱尔兰都柏林发现的缅因州生产的产品的排名应该高于在加利福尼亚州以外没有出现过的加利福尼亚州生产的产品。

我应该查看什么样的算法?您将如何处理?

【问题讨论】:

【参考方案1】:

MS SQL Server(我刚刚发现它可能与您无关)包括空间数据类型,可让您计算(除其他外)由纬度和经度定义的两点之间的距离。所以这段代码:-

DECLARE @p1 geography = geography::Point(@lat1, @long1, 4326);

SELECT @distance=@p1.STDistance(geography::Point(@lat2, @long2, 4326))

将加载@distance 两点之间的距离(以米为单位)。我从我编写的行函数中的标量值中提取代码 - 但它也可以直接针对表列。 4326 幻数是对空间参考系统标识符 (SRID) 的引用,它以米为单位提供答案。此计算未考虑高度和地球的变形(其他功能/SRID 可用于此),但对于大多数用途来说可能足够准确。

不幸的是,如果您仅限于使用 postgresql,则此答案毫无用处(尽管它可能会为您指明进一步调查的方向)。

可以在此处找到 Sql Server 的参考:http://technet.microsoft.com/en-us/library/bb933790.aspx

【讨论】:

以上是关于按地理分布确定“范围”的主要内容,如果未能解决你的问题,请参考以下文章

地理编码器在 Android 移动设备上的实施范围有多广?

按时间范围确定的每月计数

确定指定数字的范围类别

elasticsearch按范围聚合

Oracle 按时间范围按 ID 聚合

怎样按页面范围分割pdf文件