GeoRSS aggregator and Layar augmented reality server
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

post.rb 514 B

1234567891011121314151617181920212223242526
  1. class Post
  2. include MongoMapper::Document
  3. key :title, String
  4. key :url, String
  5. key :author, String
  6. key :summary, String
  7. key :content, String
  8. key :published, Time
  9. key :loc, Hash # { lng, lat }
  10. timestamps!
  11. ensure_index [[:loc, '2d']]
  12. belongs_to :feed
  13. EARTH_RADIUS_KM = 6378.0
  14. def self.near(lat, lng, radius_km)
  15. all(
  16. :loc => {
  17. '$nearSphere' => [ lng, lat ],
  18. '$maxDistance' => radius_km / EARTH_RADIUS_KM
  19. })
  20. end
  21. end