标签: GIS

初探Uber H3原理

2018年初,Uber正式开源了他们自己的一种空间索引算法H3(H3项目地址:h3)。最近偶然得知了这个算法,于是Google了一下,发现Uber还是比较良心地在其官网上给出了很多算法原理的讲解:简略版:H3: Uber’s Hexagonal Hierarchical Spatial Index详细版:H3 introdutction。如果英文还不错的话,建议直接看官方的介绍,我这里只是大致翻译

轨迹压缩算法(Polyline encoding algorithm)探究

前言文中的代码表达采用Java,如果不想看原理,可以直接跳到博客末尾,有我写的一个Java版的demo一般来说,轨迹是由若干个轨迹点组成的数组来表达的,每个轨迹点可以表达为 $p = (x, y, t, A)$。其中 $x, y$ 是其空间坐标(一般来说,空间坐标用经纬度表示,即$x$一般对应经度(longitude),$y$一般对应纬度(latitude)),$t$是记录这个轨迹点的时间戳(Ti

Google s2 lib研究之空间覆盖

本文适合于对Google s2有一定了解或对空间索引有一定了解的读者。 空间索引常用的方法是空间填充曲线,比如Hilbert, Geohash等,被用于许多查询场景中。Google也推出了自己的空间索引——Google s2,这个项目是一个开源项目,有兴趣的可以直接看Google s2 java版源码和官方文档。对Google s2的介绍可以看Google’s S2, geometry on th

XZ曲线探究

最近在做时空数据库相关的项目,需要做一些空间索引的工作,于是研究了一番GeoMesa和GeoWave。发现他们专门为Polygon类型数据使用了一种叫做XZ曲线的索引。空间填充曲线对于一个GISer来说十分熟悉,但XZ曲线确实是之前闻所未闻。根据GeoMesa的介绍,找到了XZ曲线的论文。论文写得晦涩难懂,看了半天仍未完全看明白。于是又去看GeoWave中关于XZ曲线的源码,终于将XZ的基本原理大