StackGeography is the code behind stackgeography.apphb.com. StackGeography is a mapping of recent question from Stack Exchange API sites on a Google Maps API map. All Stack Exchange sites are capable of being polled, though the current selection system filters out the corresponding "Meta *" sites to keep the list from being so long.
- Multiple site polling concurrently
- Per-site icons
While everything is in a fairly stable state, I do plan to add a number of additional features.
- Additional data visualization I would like to add some indicators to the question info window to indicate votes/score, answered status, and number of answers.
- Refactoring everywhere I hope to extract a number of parts from the JavaScript I wrote for this project into reusable chunks, some of which may end up as separate projects (e.g., my wrapper for Google Maps to make it play well with jQuery's deferred system).
- jQuery v1.7.1 (MIT or GPL) (used for just about everything)
- jQuery UI v1.8.16 (MIT or GPL) (used for the site selection dialog)
- jsrender v1.0pre (MIT) (used to render out a number of things from JavaScript objects to HTML)
- LINQ to JavaScript (JSLINQ) v2.10 (Ms-RL) (used for collection manipulations)
- URI.js (MIT or GPL) (used to simplify URL handling)
- jquery-jsonp (MIT)
- jquery.hotkeys (MIT or GPL)
MIT license. If you do something cool with it, though, I'd love to hear about it.
I wanted to put together a mapping demo that I could use for a demo project of an upcoming feature I am adding to the Sierra Trading Post API (my full-time job). Since the day I started writing the first code for the Sierra Trading Post API, I have tried to research other APIs to learn from their successes and pain points. One such API that has provided a lot of [positive] learning is the Stack Exchange API. It just so happened that they were releasing version 2 of their API, so I decided to use that for my first proof-of-concept mapping fun.
I started everything in jsFiddle. After exactly 337 revisions over a week through jsFiddle, I decided to put the code and markup somewhere more permanent. I went out and registered a domain and set up this repository. I have started working on getting it hosted through AppHarbor but I haven't nailed that down yet as I am still picking up Git, GitHub, and AppHarbor.
- Ability to poll meta Stack Exchange sites, defaults to omit to keep site list shorter (toggle via saved option).
- Marker placement can be staggered via saved option.
- Clear map markers via #.
- Polling multiple sites concurrently! The UI still needs work, but if you return to site selection by pressing S, you can keep adding sites to poll.
- Polling management: hit P to view pending polls and cancel some/all of them.
- Options management: hit O to view/set options (more options to come).
- Using localStore for StackGeography options (currently only saving last selected site and maximum map markers).
- Mark questions with site-specific map markers.
- Options window:
- Toggle site-based map markers vs. generic stackgeography.com map marker.
- Change max number of markers shown (default 500).
- Switched to ASP.NET MVC to make it easier to output-cache common API hits on the server.
- Added location geocoding in batches (up to 100).
- Added filters to the Stack Exchange API calls to cut down on JSON coming back from those requests.
- Switched to SQL Server on AppHarbor to avoid locking issues on geocode cache inserts.
- Added keyboard shortcuts ('?' brings up hint window).
- Google Maps 403 issue patched with server-side caching proxy for geocoding API requests.