我怎么可以把世界各地的小网格,使得它可以让我每经/纬度位置分配给电网? [关闭]

StackOverflow https://stackoverflow.com/questions/1824790

为了计算由纬度/经度表示的最近的位置,我正在考虑将所述地图成小网格,100×100左右仪表网格。基本上每个点将被分配给一个网格。

我明白,我可以代替也可以使用空间索引与MySQL等,但我打算用像Cassandra的非关系型数据库,在那里将是很难做到对空间对象的索引,所以某种格近似技术的可能整齐。

什么是建立这样一个网格系统和映射2-d的空间位置,以它的最佳方式?

EDIT1:它可能如果电网不完全统一,更使周围的电线杆是好的

有帮助吗?

解决方案

矩形网格可以是一个合理的估计,但只有在一个相对较小的区域,是不是太接近极点。一个全地球溶液需要不同的方法。

其他提示

从二维空间坐标中的空间索引/地理散列映射是一个有趣的问题。你可能看这文章四叉树,geohashes和希尔伯特曲线的。的希尔伯特曲线是一个空间填充曲线提供局部性;你的目的,这意味着,在一维空间索引附近项目将在二维空间附近。

的目标(如由其他反应所描述的)是最小化必要的,以覆盖所讨论的空间,而无需请求吨不必要的数据从所述服务器的查询的数量。你如何从2-d的空间有1 d指数映射将影响这一目标。

不知道您的具体应用需求Geohashing可能是一个适当的技术: HTTP://en.wikipedia。组织/维基/地理散列

“这是一个分层的空间数据结构,其细分空间分成格子状的桶。 Geohashes提供像任意精度和逐渐从代码的末尾去除字符以减小其尺寸(和逐渐失去精度)的可能性的特性。“

可以不创建矩形网格,其灯罩均匀映射。如果电网必须统一,就必须改用三角形。但总的来说,我怀疑这将解决您的问题。你需要的是一个2D 八叉树(这是谷歌的搜索链接;检查图像对于一些类型的易线索是如何工作的):你必须将你的坐标转换成层次结构(例如北/南/东/起源西为第一级,然后90度等)之间的

然后,你可以做一对夫妇的选择,这将很快得到它确实包含现有的坐标的最小矩形。现在,你可以检查矩形的大小。如果是<100M,那么你已经找到了解决办法。否则,你将有只有几个位置要检查(通常是一个)。

谷歌 “八叉树SQL数据库” 用于实施方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top