<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
  <channel>
    <title>this is aaronland</title>
    <link>http://www.aaronland.info/weblog</link>
    <lastBuildDate>Fri, 05 Jun 2009 00:55:38 PDT</lastBuildDate>
    <description>Help! I'm being chased by a bubblegum machine!! (aka “Get a real web-browser, you lazy bum.”)</description>
    <item>
      <link>http://www.aaronland.info/weblog/2009/06/01/bubblegum#iamhere</link>
      <title>I Am Here Map (with apologies to Simon)</title>
      <description>
                &lt;ins&gt;

                    &lt;h1&gt;I Am Here Map (with apologies to Simon)&lt;/h1&gt;

                    &lt;blockquote&gt;
                        &lt;p&gt;I finally got fed up of hunting around for simple
                        latitude/longitude tools when messing around with
                        mapping APIs, so I built my own with a memorable
                        URL.&lt;/p&gt;

                        &lt;p&gt;— &lt;a&gt;Simon Willison&lt;/a&gt;&lt;/p&gt;
                    &lt;/blockquote&gt;

                    &lt;p&gt;&lt;a&gt;Simon&lt;/a&gt; will be remembered for many things and I
                    hope one of them is &lt;a&gt;getlatlon.com&lt;/a&gt;. It's a
                    remarkably simple site — you drag a map around and it
                    displays the latitude and longitude of the center point
                    — but it insanely useful for all kinds of
                    things and no one, before Simon, had managed to put two and
                    two together. It was definitely a &lt;em&gt;Duh!&lt;/em&gt; moment for me.&lt;/p&gt; 

                    &lt;p&gt;I use it all the time, now, and I needed something like it for
                    a side project I'm working on. My first thought was to clone
                    Simon's work but when &lt;a&gt;Tom&lt;/a&gt;, from Stamen, told
                    me that they had been working on an
                    (still) experimental &lt;a&gt;Javascript branch of the ModestMaps
                    code&lt;/a&gt; I decided to try that instead.&lt;/p&gt;

                    &lt;p&gt;Most days I still
                    haven't gotten over the initial shock and awe of seeing
                    Google Maps for the first time but at a certain point
                    All-Things-Google-All-The-Time starts to feel like walking
                    on thin ice. They're doing just fine competing on features
                    (a good thing!) but I think it's important we also continue build and
                    support &lt;a&gt;an
                    infrastructure of tools&lt;/a&gt; that people can run and host
                    themselves.&lt;/p&gt; 

                    &lt;p&gt;With that in mind, I set out to write my own
                    &lt;q&gt;getlatlon&lt;/q&gt; map tool last week. It's called &lt;q&gt;I Am
                    Here Map&lt;/q&gt; and on Sunday I finally pushed it out the
                    door.&lt;/p&gt; 

                    &lt;ul&gt;
                        &lt;li&gt;It does basic getlatlon-style lookups&lt;/li&gt;
                        &lt;li&gt;It does geocoding using either the Google Maps or
                        Flickr APIs. It's part of the plan to support a variety
                        of other geocoding services soon.&lt;/li&gt;
                        &lt;li&gt;It does reverse geocoding, using the Flickr API.&lt;/li&gt;
                        &lt;li&gt;It will fetch and display the &lt;a&gt;shapefile&lt;/a&gt; for associated with a point,
                        assuming it's been reverse geocoded successfully.&lt;/li&gt;
                        &lt;li&gt;It does client-side geolocation/positioning (aka &lt;q&gt;&lt;a&gt;find my location&lt;/a&gt;&lt;/q&gt;) using a
                        variety of third-party services.&lt;/li&gt;
                        &lt;li&gt;It allows for an arbitrary number of map tile
                        providers and styles. &lt;span&gt;At the moment, there is only one
                        tile provider: &lt;a&gt;CloudMade&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
                        &lt;li&gt;The whole thing, including core dependencies, is
                        bundled in a single Javascript file and loaded with a
                        couple lines of code.&lt;/li&gt;
                    &lt;/ul&gt;

                    &lt;p&gt;Like this:&lt;/p&gt;

                    &lt;div&gt;
                        &lt;a&gt;&lt;img&gt;&lt;/img&gt;&lt;/a&gt;

                    &lt;/div&gt;

                    &lt;p&gt;(Map data &lt;a&gt;CCBYSA&lt;/a&gt; 2009 &lt;a&gt;OpenStreetMap.org&lt;/a&gt; contributors, because that's an early screenshot before I added proper attribution.)&lt;/p&gt;

                    &lt;p&gt;This is what the code to generate that map looks
                    like:&lt;/p&gt;

                    &lt;pre&gt;

                        // as in &lt;script src="iamheremap.js"&gt;&lt;/script&gt;
                        // and   &lt;div id="map"&gt;&lt;/div&gt;

                        var args = {
                        	'modestmaps_provider' : 'CloudMade',
                        	'flickr_apikey' : '&lt;a&gt;YER_FLICKR_APIKEY&lt;/a&gt;',
                        	'cloudmade_apikey' : '&lt;a&gt;YER_CLOUDMADE_APIKEY&lt;/a&gt;',
                        	'map_style' : &lt;a&gt;999&lt;/a&gt;,
                                'map_height' : 480,
                                'map_width' : 640,
                        };

                        window.map = &lt;strong&gt;new info.aaronland.iamhere.Map&lt;/strong&gt;('map', args);&lt;/pre&gt;

                    &lt;p&gt;You can see a live demo over here, using a different &lt;q&gt;style&lt;/q&gt;,
                    specifically &lt;a&gt;Matt Jones' &lt;span&gt;Image of the City&lt;/span&gt; tiles&lt;/a&gt;:&lt;/p&gt;

                    &lt;p&gt;&lt;a&gt;http://www.aaronland.info/iamhere#style=2241&lt;/a&gt;&lt;/p&gt;

                    &lt;p&gt;The &lt;q&gt;style=&lt;/q&gt; stuff isn't part of the default
                    install but it's a simple example of the sort of thing you
                    can do. At the moment there are no standard controls to
                    toggle between &lt;code&gt;n&lt;/code&gt; number of map views/tiles but
                    that's obviously a good next step. &lt;a&gt;It's also one of the
                    things that ModestMaps makes really easy!&lt;/a&gt;&lt;/p&gt;

                    &lt;p&gt;I am pleased and excited by all of this. One of the
                    things I talked about at &lt;a&gt;PaperCamp&lt;/a&gt; was the
                    desire to get back to building some of the &lt;em&gt;online&lt;/em&gt;
                    tools for Papernet projects. That includes a generic
                    list-map-store style interface for things like &lt;a&gt;geotagging
                    Twitter posts&lt;/a&gt;, a new and Moar Bettar version of &lt;a&gt;deliciousmaps&lt;/a&gt; and the Other Thing (with the
                    Stuff).&lt;/p&gt;

                    &lt;p&gt;The &lt;q&gt;I Am Here Map&lt;/q&gt; is not that toolkit but it's a
                    building block, at least.&lt;/p&gt;

                    &lt;div&gt;
                        &lt;a&gt;&lt;img&gt;&lt;/img&gt;&lt;/a&gt;
                    &lt;/div&gt;

                    &lt;p&gt;As usual, the code and a list of known-knowns (this has
                    only been tested in Firefox and Safari, for example) is available over on Github:&lt;/p&gt;

                    &lt;p&gt;&lt;a&gt;http://github.com/straup/js-iamheremap/&lt;/a&gt;&lt;/p&gt;
                    
                    &lt;p&gt;Enjoy!&lt;/p&gt;

                &lt;/ins&gt;
            </description>
    </item>
  </channel>
</rss>
