Google has asked me to remove the programs that I wrote that help you make large maps. There are lots of good reasons why this is a bad idea. There are also many why it makes sense. I've been thinking about this from many sides for a long time (well okay non-stop for 22 hours, minus some sleep and circuit design) and haven't reached a final decision on who is "right" and who is "wrong." The only thing I've come to realize is that it's a very Huge Gray Area.
To name a few perspectives, both for and against removing the programs:
But that's not where the discussion ends. There's the fact that Google could at any time fix the architecture of their system so that it's impossible for people to use it in a way that is unacceptable to them. They do have teams of scientists after all. They choose instead to send out pushy letters (are lawyers cheaper than scientists?). And then there's the fact that I might do the same in their place. Really. I've Google'd the product manager of Google Maps who sent me the takedown letter and he's a lot like me: He's got photos of himself at Coachella, looks about the same age as me, dresses up in silly costumes on Halloween, etc.
Then there's the fact that I could just press control-z right now, type "rm -fr *", and everything would be over in an instant.
But then there's the fact that culture is changing. Humans have always used tools around them to manipulate their environment into something liveable. (see Kubrick, and possibly also Toynbee, heh). That's why I don't begrudge the fact that we'd be dead without computers- we'd also be dead without bones to wack things with.
And in addition to just wacking things, we also make plowshares, and communication tools. Freedom of expression = the right to take what's around as and turn it into a reference for our feelings. To come up with ideas. This process takes place in highly civilized places, like libraries, in informal ones, like coffee shops, outlaw ones, like graffitti under bridges, and in collage art. It's been going on since America started, with people appropriating each other's music, for example. Negativland point this out very well, demonstrating that we can't help but use what is around us (billboards, radio jingles, etc.) to communicate with each other. It's absurd to have language police jump out of the bushes every time we pervert a jingle for our own enjoyment. And in this same way, This hack is taking what's offered to me and expressing with it. And allowing other people to do it, too.
And that can cut two ways: do we like grafitti? well yes and no. Not all the time, and only in certain places. Is my little hack more like grafitti or a thinktank press release.
And there's more, too. I suspect Google wouldn't mind if I just did my art piece and moved on. But I think that's somewhat elitist! It's pretty lame if only the most ace hackers can go around doing whatever they want, and everyone else has to put up or shut up. What if only the most intelligent could take part in all the reindeer games? What if only the smartest were allowed to paint? or make music? Think about the wonderful explosion in home recording in the last 5-10 years since home recording studios came into abundance...one no longer needs to be (significantly) wealthy in order to produce music.
I mean, think of that line in that movie Bulworth: "If a brother can't rap or write computer games." He was saying being poor sucks if you don't have lE3t 5|<1lz. This is the one of the main reasons I do what I do...to try to use my gifts to help other people! To help us all see something wonderful. Google has started to do that with these map programs...and I'm trying to keep the ball rolling! Years from now, we'll be able to talk about the effects on our culture of having google maps, how it changed the way we do things. But I just wanted to do it a little differently because I didn't think they had it quite right. And look! In the last three weeks, there have been umpteen links of people praising the script on blogs and comments, writing email to me to say thank you, fixing my bugs, and translating it into programming languages some of which I haven't even heard of before. What does this all say? My way of doing things IS important to people.
Now, trying to see the problem from Google's side a little more: I believe Google is maybe afraid of people seriously leeching their data. (Care to speak up, guys? Please use my Media Lab addr, so I'll get it in time...it seems everyone at the lab knew about the takedown notice before I did!) And I guess that is a fear that I didn't think of when I first wrote the scripts. You know, I want to make clear that's not why I wrote them, and I don't encourage it at all. In fact, I don't think anyone using these programs would use up significantly more bandwidth than if they were using Googles original (and pretty smooth!) interface. After all, mine caches the image on your HD. And you know if it were technically possible, I would cripple the script so that you couldn't download more than, say, a 12x12 area at once. But I know that's impossible on my side...They could only restrict that at the server. And I wish they would.
I think if people want more than 12x12, they can render several on their own and hand-stitch them. So I have modified my programs to restrict their max size to 12x12. I know most people can get around that, but I'm
Anyway, there are too many sides to this problem to make a clear cut decision. Don't you at least agree to that? It's a problem our generation has to deal with. And, along with artists like Krzysztof Wodiczko, I don't believe in solutions, only discourse. (My sister has pointed out other problems our generation has yet to "solve," such as young people moving together before marriage. And I have added: who pays for the internet hardware? Who gets it when you move out?). So, discourse this is. And there has been discourse on Slashdot recently, too. I think my map program is somewhere in the middle. A gray area. And that's why I have made this page gray. Have I removed the programs yet? No, I'm still thinking about it, but I have modified them to turn all images downloaded into grayscale.
In short, this is one of the least Black and White situations
I've ever been in.
(this is from a reader named JJ): I didn't need to use the Page Info/Media tab in Firefox on Mac OS X. At least for me, I can just control-click in the Google Maps viewport where I want center to be, and select 'Copy Image Location' to get the URL. (You can open the image directly in a new tab as well.) Definitely saves a few steps.
They have a simple format to them: e.g. http://mt.google.com/mt?v=.38&x=5376&y=-730&zoom=2 fetches tile 5376,-730.
Then, you can write a program like this one (now version 3, adds grayscaling) that grabs all the tiles around the center one you specify and stitches them together using ImageMagick convert. Replace the numbers in the first two lines "$sx" and "$sy" with the coordinates of the center tile you wish to use. Note, it caches the tiles each time to run to save time on future runs.
The map tile data is stored in the string made up of qs, rs, ss, and ts. The highest level of zoom out is called simply "t". E.g.: href=http://kh.google.com/kh?v=1&t=t
Then, the letters q,r,s and t mean to zoom in toward a particular direction. 'q' means northwest/upper left, 'r' means northeast/upper right, 's' means southeast/down and to the right and 't' means southwest/down and to the left. Notice the the directions go in a clockwise circle.
Each zoom level adds another letter. Up to 18 digits can be specified for maximum zoom! e.g. http://kh.google.com/kh?v=1&t=tqstqrrqstsrtsqsqr
How to create a superbitmap? You want to grab adjacent tiles and stitch them to together, e.g. with unix convert. To navigate up/down/left/right, you can translate the string of q-t this way: q=0 r=1 t=2 s=3
Now, you can treat each letter as a 2-bit number, where bit 0 means left/right and bit 1 means up/down. Therefore, a string gets translated like:
# tqstqrrqstsrtsqsqr = # = 203201103231230301 # H 001001101011010101 (horizontal) # V 101100001110110100 (vertical)
Now, you have two 18-bit binary numbers that encode position. To navigate east, for example, you simply increment the horizontal number, then reencode:
# H 001001101011010110 # V 101100001110110100 # = 203201103231230310 # = tqstqrrqstsrtsqsrq
You can now use this script (now version5, adds gray scaling) to grab satellite tiles and stitch them together into one mega image.
Boston, MA, Downtown
U.S. Map with Capitals
...or here to see more projects.
Debugging help came from Roberto.
Pall made a very nice map of Iceland. Enjoy this beautiful country by recycling as much aluminum as you possibly can! A lot of environmental degradation in Iceland happens because of aluminum mined and refined there. Pall also gives a version of my script translated into php.