PostGIS笔记(下)

上篇说了为什么用Geography,这篇具体讲怎么取“范围n米以内的数据”。

Rails里运行Migration,建Portal Model,以下是Schema

距离东京站1km内所有的portals

  • ST_Distance

    float ST_Distance(geography gg1, geography gg2, boolean use_spheroid);

  • ST_DWithin

    boolean ST_DWithin(geography gg1, geography gg2, double precision distance_meters, boolean use_spheroid);

结果:

Continue reading “PostGIS笔记(下)”

postGIS笔记(上)

好久没写博客,来扯淡一下。

2月~4月参与了一个游戏app的backend开发,基本上就是写API给app调用。
除了组里规定的严打不动的得用rails以外,这次项目自由度很大。

先简单介绍一下游戏功能:
把全日本10w左右的公园当portal,用户打开app可以看到附近当portal,到了portal范围内就可以玩游戏抓snoopy。
这次server要做的事情就是不停接受app的polling request,看用户附近是否有公园portal。

组里做过LBS的人不多,leader很早之前做过一次,推荐我用Geohash,并警告我说可能数据库压力会很大。
于是开发前准备阶段便搜了些相关资料。
结果发现Geohash相关gem都几乎没有在更新维护,便开始怀疑Geohash是否可行。
偶尔在infoQ和RubyChina发现了一些中文文章,谈到LBS的解决方案,其中包括:

Continue reading “postGIS笔记(上)”

postgresql小试

作为一个只用过mysql,外加在公司用oracle的苦逼程序员,今天趁着感冒差不多好的当口,学学之前就碰到过,但是始终没自己动手试过的postgresql。

首先说明一下,我是在vagrant做的虚拟机中搭建的postgresql。postgresql的具体安装方法是

安装好之后你可以通过下面的方式测试

如果列出一些数据库的话,那就代表成功。基本上apt-get install方式安装的不会失败的,除非你有别的程序占据了5432端口(postgresql默认端口)之类的。
为了方便,你需要建立一个数据库自己用。
Continue reading “postgresql小试”