Category: SQL

  • PostGIS笔记(下)

    PostGIS笔记(上) PostGIS笔记(中) 上篇说了为什么用Geography,这篇具体讲怎么取“范围n米以内的数据”。 Rails里运行Migration,建Portal Model,以下是Schema t.geography “lonlat”, limit: {:srid=>4326, :type=>”point”, :geography=>true}, null: false t.datetime “created_at”, null: false t.datetime “updated_at”, null: false t.index [“lonlat”], name: “index_parks_on_lonlat”, using: :gist 距离东京站1km内所有的portals ST_Distance float ST_Distance(geography gg1, geography gg2, boolean use_spheroid); SELECT id, name FROM portals WHERE ST_Distance(lonlat, ST_GeogFromText(‘POINT(139.767052 35.681167)’)) < 1000; ST_DWithin boolean ST_DWithin(geography gg1, geography gg2, double precision…

  • PostGIS笔记(中)

    PostGIS笔记(上) PostGIS笔记(下) Rails 和 PostgreSQL 的连接、postGIS 的 安装之类就都不赘述了。 PostgreSQL里postGIS安装好之后,就可以开始配置Rails这边了:

  • postGIS笔记(上)

    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的解决方案,其中包括: