Build Your Own Foursquare!    Develop GeoSpatial Apps with         Zend, MongoDB and              OpenShift      Steven Ci...
Agenda    • Learn a little spatial    • Load some spatial data into mongo    • Do a query or two              SIGN UP CODE...
Git repo for the data and codehttps://github.com/thesteve0/parks-php-zf2Please remember the point here is not that this is...
Assumptions    1) You can use the command line    2) You are comfortable with Mongo command line    3) Please ask question...
What is OpenShift?    Red Hat’s free platform as a service for applications in the cloud.5
6    Dalbera on Flickr
Kind of like Amazon, right? Nope.7
Cook24v on Flickr 8
9
What’s supported?10
There’s more? What’s the catch?• OpenShift is free-as-in-beer & free-as-in-freedom• Three 512 MB RAM / 1 GB storage gears•...
On to spatial!12
Spatial is fun The only spatial functionality Mongo currently has is: 1) Near 2) Containment All of it is laid out on one ...
Caveats 1. Assumes coords. are between -180 and 180 2. Can handle any 2D coordinates 3. Has methods to handle curvature of...
How to make it work 1) Put your coordinates into an arrary     { loc : [ 50 , 30 ] } //SUGGESTED OPTION     { loc : { x : ...
Demo 1. I have an app and a mongo instance running 2. Load some spatial data in JSON format 3. Make the 2d index 4. Do som...
Conclusion 1. Spatial is easy and fun on Mongo with PHP 2. You can now build your own FourSquare or other    checkin appli...
Upcoming SlideShare
Loading in...5
×

Spatial mongo for PHP and Zend

1,496

Published on

My spatial + mongo talk using Zend framework

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,496
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Spatial mongo for PHP and Zend

  1. 1. Build Your Own Foursquare! Develop GeoSpatial Apps with Zend, MongoDB and OpenShift Steven Citron-Pousty PaaS Dust Spreader, Red Hat @TheSteve01
  2. 2. Agenda • Learn a little spatial • Load some spatial data into mongo • Do a query or two SIGN UP CODE: zendcon2
  3. 3. Git repo for the data and codehttps://github.com/thesteve0/parks-php-zf2Please remember the point here is not that this is great PHP or ZF2 code. This ismostly to show you how to do spatial queries in mongo through PHP. The main filewith that code is:https://github.com/thesteve0/parks-php-zf2/blob/master/module/Application/src/Application/Controller/IndexController.phpThe data file is in the root dir and is called parks.json3
  4. 4. Assumptions 1) You can use the command line 2) You are comfortable with Mongo command line 3) Please ask questions – though since there are things I really want to cover, they may have to wait until the end or after the session4
  5. 5. What is OpenShift? Red Hat’s free platform as a service for applications in the cloud.5
  6. 6. 6 Dalbera on Flickr
  7. 7. Kind of like Amazon, right? Nope.7
  8. 8. Cook24v on Flickr 8
  9. 9. 9
  10. 10. What’s supported?10
  11. 11. There’s more? What’s the catch?• OpenShift is free-as-in-beer & free-as-in-freedom• Three 512 MB RAM / 1 GB storage gears• Need more resources, just ask!• We are really in Developer Preview11
  12. 12. On to spatial!12
  13. 13. Spatial is fun The only spatial functionality Mongo currently has is: 1) Near 2) Containment All of it is laid out on one page: http://www.mongodb.org/display/DOCS/Geospatial+Inde xing First link on a google search for “mongodb spatial indexing”13
  14. 14. Caveats 1. Assumes coords. are between -180 and 180 2. Can handle any 2D coordinates 3. Has methods to handle curvature of the earth (spherical)14
  15. 15. How to make it work 1) Put your coordinates into an arrary { loc : [ 50 , 30 ] } //SUGGESTED OPTION { loc : { x : 50 , y : 30 } } { loc : { foo : 50 , y : 30 } } { loc : { lon : 40.739037, lat: 73.992964 } } 2) Make a 2d index db.places.ensureIndex( { loc : "2d" } )15
  16. 16. Demo 1. I have an app and a mongo instance running 2. Load some spatial data in JSON format 3. Make the 2d index 4. Do some fun spatial and mongoDB work 5. Show some PHP code that takes advantage of it16
  17. 17. Conclusion 1. Spatial is easy and fun on Mongo with PHP 2. You can now build your own FourSquare or other checkin application. 3. You can also build your own field data entry system. 4. You can build and deploy your application quickly without having to think about infrastructure. SIGN UP CODE: zendcon http://openshift.redhat.com17
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×