{"action":"created","issue":{"url":"https://api.github.com/repos/azavea/nyc-trees/issues/267","labels_url":"https://api.github.com/repos/azavea/nyc-trees/issues/267/labels{/name}","comments_url":"https://api.github.com/repos/azavea/nyc-trees/issues/267/comments","events_url":"https://api.github.com/repos/azavea/nyc-trees/issues/267/events","html_url":"https://github.com/azavea/nyc-trees/pull/267","id":53679507,"number":267,"title":"Add geocoder interface to map module","user":{"login":"jwalgran","id":17363,"avatar_url":"https://avatars.githubusercontent.com/u/17363?v=3","gravatar_id":"","url":"https://api.github.com/users/jwalgran","html_url":"https://github.com/jwalgran","followers_url":"https://api.github.com/users/jwalgran/followers","following_url":"https://api.github.com/users/jwalgran/following{/other_user}","gists_url":"https://api.github.com/users/jwalgran/gists{/gist_id}","starred_url":"https://api.github.com/users/jwalgran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwalgran/subscriptions","organizations_url":"https://api.github.com/users/jwalgran/orgs","repos_url":"https://api.github.com/users/jwalgran/repos","events_url":"https://api.github.com/users/jwalgran/events{/privacy}","received_events_url":"https://api.github.com/users/jwalgran/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"RickMohr","id":2162993,"avatar_url":"https://avatars.githubusercontent.com/u/2162993?v=3","gravatar_id":"","url":"https://api.github.com/users/RickMohr","html_url":"https://github.com/RickMohr","followers_url":"https://api.github.com/users/RickMohr/followers","following_url":"https://api.github.com/users/RickMohr/following{/other_user}","gists_url":"https://api.github.com/users/RickMohr/gists{/gist_id}","starred_url":"https://api.github.com/users/RickMohr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RickMohr/subscriptions","organizations_url":"https://api.github.com/users/RickMohr/orgs","repos_url":"https://api.github.com/users/RickMohr/repos","events_url":"https://api.github.com/users/RickMohr/events{/privacy}","received_events_url":"https://api.github.com/users/RickMohr/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-01-07T20:41:22Z","updated_at":"2015-01-08T20:56:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/azavea/nyc-trees/pulls/267","html_url":"https://github.com/azavea/nyc-trees/pull/267","diff_url":"https://github.com/azavea/nyc-trees/pull/267.diff","patch_url":"https://github.com/azavea/nyc-trees/pull/267.patch"},"body":"The geocode interface is split into three layers:\r\n\r\nThe geocode interface is split into three layers:\r\n\r\n1. A generic ``ajaxLatest`` module that allows for interruptible requests.\r\n2. A wrapper around the geocode AJAX requests that converts responses to events.\r\n3.  A controller that pulls markup from template script tags and manages the display of UI elements in response to user events and geocode events.\r\n\r\nTo keep the ``map`` module lean, I moved a lot of code initially written in that module out to ``searchController``, but I needed access to map zooming helpers that were initially added to ``map``. My solution was to move the helpers out to a new ``mapUtils`` module.\r\n\r\nI consulted @jfrankl on the mechanics of how to display the search controls, error messages, and results. The generated markup follows Jeff's design, but needs styling."},"comment":{"url":"https://api.github.com/repos/azavea/nyc-trees/issues/comments/69247636","html_url":"https://github.com/azavea/nyc-trees/pull/267#issuecomment-69247636","issue_url":"https://api.github.com/repos/azavea/nyc-trees/issues/267","id":69247636,"user":{"login":"maurizi","id":4432106,"avatar_url":"https://avatars.githubusercontent.com/u/4432106?v=3","gravatar_id":"","url":"https://api.github.com/users/maurizi","html_url":"https://github.com/maurizi","followers_url":"https://api.github.com/users/maurizi/followers","following_url":"https://api.github.com/users/maurizi/following{/other_user}","gists_url":"https://api.github.com/users/maurizi/gists{/gist_id}","starred_url":"https://api.github.com/users/maurizi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maurizi/subscriptions","organizations_url":"https://api.github.com/users/maurizi/orgs","repos_url":"https://api.github.com/users/maurizi/repos","events_url":"https://api.github.com/users/maurizi/events{/privacy}","received_events_url":"https://api.github.com/users/maurizi/received_events","type":"User","site_admin":false},"created_at":"2015-01-08T20:56:03Z","updated_at":"2015-01-08T20:56:03Z","body":"+1"}}