{"id":90,"date":"2008-04-16T19:17:17","date_gmt":"2008-04-16T23:17:17","guid":{"rendered":"http:\/\/ryepup.unwashedmeme.com\/blog\/2008\/04\/16\/lisp-geocoding-more-library-possibilities\/"},"modified":"2008-04-16T19:17:17","modified_gmt":"2008-04-16T23:17:17","slug":"lisp-geocoding-more-library-possibilities","status":"publish","type":"post","link":"http:\/\/ryepup.unwashedmeme.com\/blog\/2008\/04\/16\/lisp-geocoding-more-library-possibilities\/","title":{"rendered":"lisp geocoding, more library possibilities"},"content":{"rendered":"<p>I&#8217;m finally working on a project that has a public component (besides a login screen), and the lisp has been flowing.   I&#8217;ve been able to put in probably around 10 hours a week on this thing, and I can&#8217;t wait until its more presentable to show off.  As part of this, we&#8217;re building up our work lisp codebase, and I&#8217;ve been keeping my eye out for opportunities to open source different library components, and trying to avoid creating a big ball of mud.<\/p>\n<p>The first real candidate so far  was adw-charting, but I think I found the next potentials: adw-yahoo and adw-google.  They will be libraries for interfacing with various Yahoo! and Google services.  So far I&#8217;ve only got code for one service apiece, but there&#8217;s plenty of growth potential.<\/p>\n<p>Here&#8217;s a sample:<\/p>\n<pre>(defun geocode-fight ()\r\n  (let ((adw-yahoo:*api-key* \"YAHOO APPID\")\r\n\t(adw-google:*api-key* \"GOOGLE API-KEY\")\r\n\t(address \"5308 SW 75th ter, Gainesville FL, 32608\"))\r\n    (list\r\n     (adw-yahoo:latlong address :cache-p nil)\r\n     (adw-google:latlong address :cache-p nil))))\r\n\r\n(geocode-fight)\r\n=&gt; ((\"address\" 29.604265 -82.42349 \"5308 SW 75th Ter\")\r\n(8 29.604923 -82.42338 \"5308 SW 75th Terrace, Gainesville, FL 32608, USA\"))<\/pre>\n<p>Yahoo and Google give back different some different data, but so far Yahoo&#8217;s coordinates seem more accurate.  One thing I noticed was that Google&#8217;s geocoding service gives a different lat\/long than what maps.google.com displays, which I thought was a little sneaky.  I&#8217;ve also got some code to help construct google map widgets, using the homegrown html template system and parenscript, but I think much of that will end up getting stripped out, as it depends on the in-house libraries that are likely completely useless to anyone but us.<\/p>\n<p>Still lots to do before either of those libs would be ready for a cl-net request, but it&#8217;s on the plate.   After building so much on top of so many great free libraries, the need to contribute something back is very strong.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m finally working on a project that has a public component (besides a login screen), and the lisp has been flowing. I&#8217;ve been able to put in probably around 10 hours a week on this thing, and I can&#8217;t wait until its more presentable to show off. As part of this, we&#8217;re building up our [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,15],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-code-snippet","category-lisp"],"_links":{"self":[{"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/posts\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/comments?post=90"}],"version-history":[{"count":0,"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"wp:attachment":[{"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/ryepup.unwashedmeme.com\/blog\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}