Real-time Tracking and Mappingof Geographic ObjectsRagi Burhum@rburhum[email protected]
View Slide
AmigoCloudWe Synchronize Map Data-offline/online-edit
If you have tried thisbefore, this mayseem familiar…
Licensing Issues-Password-protected Site-Asset Tracking or similar-Map Data Provider’s (Navteq, TomTom/TeleAtlas,etc) Business Model
Most People See This
Examples of Free/Open DatasetsOut There
OpenStreetMap
NAIP
SRTM
Natural Earth Data
Map Renderers(Mapnik, MapServer, GeoServer)+StyleFile
Client-side Map JS Library
“Normal” GeoStackNginxGunicorn (Django)TileStacheMemcachedMapnikPostgreSQL/PostGISData StorageWeb / MobileClient (OpenLayers)Varnish (80)
https://gist.github.com/RBURHUM/4559323
http://tilestache.org/doc/
A good real-timetracking solutionrequires a statefulconnection
Polling is BAD
Server-Side EventsInstead of having [N] clients polling every [X] timeinterval, how about the server notifying you
Publisher/Subscriber QueueOne of the queues(RabbitMQ, Redis, etc)M3 M2 M1M4PublisherSubscriberSubscriberSubscriber
Celery is awesome!from tasks import myCustomTaskmyCustomTask.do_work(my_data)myCustomTask.do_work.delay(my_data)
“Real-time” GeoStackNginxGunicorn (Django)TileStacheMemcachedMapnikPostgreSQL/PostGISData StorageWeb / MobileClient (OpenLayers,Socket IO)Varnish (80)Celery with RabbitMQNode.js with Socket IO
Demohttp://abuse.amigocloud.com
Ragi Burhum@rburhum[email protected]mIf you are in the Bay Area and like Geo:http://www.meetup.com/geomeetup