轨迹压缩算法(Polyline encoding algorithm)探究
前言文中的代码表达采用Java,如果不想看原理,可以直接跳到博客末尾,有我写的一个Java版的demo一般来说,轨迹是由若干个轨迹点组成的数组来表达的,每个轨迹点可以表达为 。其中 是其空间坐标(一般来说,空间坐标用经纬度表示,即一般对应经度(longitude),一般对应纬度(latitude)),是记录这个轨迹点的时间戳(Ti
前言文中的代码表达采用Java,如果不想看原理,可以直接跳到博客末尾,有我写的一个Java版的demo一般来说,轨迹是由若干个轨迹点组成的数组来表达的,每个轨迹点可以表达为 。其中 是其空间坐标(一般来说,空间坐标用经纬度表示,即一般对应经度(longitude),一般对应纬度(latitude)),是记录这个轨迹点的时间戳(Ti
本文适合于对Google s2有一定了解或对空间索引有一定了解的读者。 空间索引常用的方法是空间填充曲线,比如Hilbert, Geohash等,被用于许多查询场景中。Google也推出了自己的空间索引——Google s2,这个项目是一个开源项目,有兴趣的可以直接看Google s2 java版源码和官方文档。对Google s2的介绍可以看Google’s S2, geometry on th
距离首次开通这个博客已经过去了四年时间。四年前我还在学校,每天畅想着美好未来,现在成了一个日渐肥胖的辛苦打工人。 记得刚知道能够搞github博客的时候还是很高兴,觉得能够白嫖github的服务器搞一个自己的网站,什么都自己设计,不是很爽吗。于是用hexo整了这个博客,然后用markdown写文章。
之前对Go sort包的印象一直是只能做排序,毕竟包名就叫sort嘛。后来在一次刷leetcode的时候,发现官方题解做二分搜索的时候用了sort包里的Search函数,惊讶sort包还封装了二分查找功能。于是看了下sort.Search的源码,发现源码其实也写的很简单,就是一个普通的二分: 123
往ES某个字段中插入值时,有时候需要对结果进行去重,即需要这个字段里所有的值是互异的。而ES又没有Set这样的数据结构,所以需要在插入的时候执行脚本来实现这样的功能。 在参考了ES官方文档Script后,可以很容易写出这样的脚本,假设values字段是数组类型的,需要存储去重的值: 1234567L
Elasticsearch的API是RESTful风格的,传入json风格的DSL就可以进行很多种操作。然而DSL的语法和格式实在是有些太过复杂,对于新手来说难以快速掌握,所以有时候会用ES的SQL接口写一些SQL来进行查询。然而ES对SQL的支持并不是很完备,所以学习一点DSL的语法还是有必要的。
最近遇到一个小问题,由于某个api只支持写入string,而我生成的压缩后的数据都是一个字节的byte,所以不得不将byte转成string。于是写出了如下的代码: 1s := string(b) // b is byte 这样只要b在00000000 到11111111之间,编译是不会报任何问题的