Urban Exploration – My Life Under Bridge

Recently I’ve been exploring the development of an “outdoor adventure” brand and in my market research I ran across this Wikipedia article on urban exploration:

Urban exploration (often shortened as urbex or UE) is the exploration of man-made structures, usually abandoned ruins or not usually seen components of the man-made environment. Photography and historical interest/documentation are heavily featured in the hobby and, although it may sometimes involve trespass onto private property, this is not always the case and is of innocent intention.[1] Urban exploration is also commonly referred to as infiltration, although some people consider infiltration to be more closely associated with the exploration of active or inhabited sites. It may also be referred to as draining (when exploring drains), urban spelunking, urban rock climbing, urban caving, or building hacking.

I had never heard of that term before, but it brought back memories of my own urban exploration.


When I was in first and second grade I lived in a subdivision with a concrete ditch and a storm sewer at the end of the street. The entrance was like an inviting cave beckoning me to explore its depths. My brother and I would pack our lunch and our flash lights and set off through the drain seeing how far we could go. I remember looking up through the storm drains like windows. It was pretty dangerous. Don’t do this.


After moving to Southport in third grade I began playing under the bridge in the creek at the bottom of the hill in my subdivision. I would build dams and streams using the rocks and sand that had built up there. By the fifth grade I had moved on to other bridges around town where I was actively manipulating the stream’s flow using sandbags, rocks, and any tools I could find.

In sixth grade I moved to the outskirts of Franklin into the “country”. There was a bridge and a creek there that I played in, but it wasn’t until high school that I started urban exploring indoors. The high school auditorium had a giant HVAC room in a giant attic. I would climb up into it during choir class and hang out and often thought about spending the night there. I never did.


My first two years of college were spent in Grayson which was located next to an interstate highway. There was a drainage pipe that went under the highway that I crawled through. Like in second grade I brought my lunch to eat once I got to the other side and like in Southport I took some time to play under the bridge on my way back. I actually took a video camera too and recorded the adventure, which is part of urban exploration, from what I can tell.

Like in Franklin, the auditorium at our school had a “secret room” which was locked from the outside, but could be accessed from the stage by climbing the backdrops. It was used as a sound and light booth for when they had plays (they never had plays). It had a phone. I would go there and call people to come hang out with me. They would never answer.

One day I signed up for a 24-hour prayer program and my hour was early in the morning around 2 or 3 AM. I’d wake up or stay up and walk around the dorm at night praying as I walked. Because of curfew I couldn’t leave the building. It was hard to stay awake sometimes and because I was mostly alone I started to explore. There was an access panel in the hallway outside of the bathrooms on the first floor. Upon opening the panel there appeared a ladder. I would go in between the walls and climb the ladder to the third floor and back. Do not try this at home.

Milligan College

After Grayson I transferred to Milligan College where I again lived in a dorm. Like Grayson, there was an access panel in the bottom floor of the building and like Grayson I filmed myself exploring what was inside. Unlike Grayson, this wasn’t a vertical shaft, but a horizontal one. It was sort of like a crawl space underneath the dorm that eventually emptied out through a small opening into the boiler room, which was locked from the outside. It was a neat discovery.

My Life Under Bridge

In November of 2008 I set about to tell a similar story using Google Maps Street view and Google Docs Presentations as a medium. I ended up with 19 slides that took me from my home in Raytown to my current home in Tipton. Apparently I’ve told this story before.

My Life Under Bridge

“It all started in Raytown, Missouri. I lived in a subdivision with a ditch at the other end of the road which fed into the local sewer system. We would explore the sewers with flashlights and see how far we could go.”

In Southport, “I would go down to the bridge and build dams and tiny rivers in the creek’s sand. There was a hidden waterfall in the woods.” It was near Strawberry Farm.

“Stephani lived off of Loretta Dr. Our older brothers were friends and our families went to the same church. They had a bridge near their house.”

“I dug my most massive canals and dams here using garden tools provided to me on loan from the Stephani’s house.”

“Then I moved to Franklin and played under a bridge near Mt. Pleasant Baptist Church.”

“When I got older, my friends and I set out from church one day to build a new hangout spot under the bridge at the bottom of the hill. We called it the Outdoor Blue Lounge. We painted the walls blue and were blamed for cows escaping. The county Sheriff made us paint over it with white, which later peeled.”

The Outdoor Blue Lounge

“One day I skipped some class to go on a hike. I packed my lunch and a change of clothes, and took my video camera along with me.”

“Next I moved to Milligan and roomed with Ben. I filmed my exploration of Hyder Mill by the creek.” Oh yeah, I forgot about that one.

About Erich Stauffer

In addition to urban exploration, I also like making custom maps.

How To Run Google Maps On the Kindle Fire

The new Amazon Kindle Fire is a full-blown Android tablet for only $199. However, by default, Google Maps is not installed and neither is the Android Market, but this doesn’t mean you can’t install Google Maps – you just can’t do it from Amazon’s App Store.

The workaround is to use an Android phone which can access the Android Market.

And the best part? You don’t need to “root” your phone or Kindle Fire tablet to do this PLUS Amazon doesn’t oppose adding apps in this way (like Barnes and Noble did initially with the Nook Color).

The Kindle Fire can install any app in the standard Android APK format and you can find APKs scattered around the Internet on various sites, but it’s recommended to only use the ones found in the Android Market to avoid infecting your phone or tablet.

Next, we’ll explain how to move any Android APK app from an Android phone running Gingerbread (Android 2.3 – check your system settings to know for sure) to a Kindle Fire.

7 Steps to Installing Google Maps on the Kindle FireGet the Google Maps App on the Kindle Fire

  1. Using Astro File Manager on your Android phone, change the Preferences of the Backup Directory to “/mnt/sdcard-ext” or “/mnt/external-sd” or “sdcard”, whatever the MicroSD card is called. Click OK twice, then Back three times.
  2. Still in Astro File Manager, click “Application Backup” then select Google Maps and any other apps you want to move to the Kindle Fire. Click Backup. The Android APK files have now been copied to your external MicroSD card.
  3. Now hook your Android phone up to your PC using a USB cable. Open the drive which appears on your PC, and look for the “backups” folder. Open the “apps” folder within backups. Copy all the APK files from there onto your PC.
  4. Now pick up your Kindle Fire and browse to the Appstore for Android to download “Easy Installer” from INFOLIFE. Don’t worry, it’s free.
  5. Plug your Kindle Fire into your PC using a USB cable and when it’s drive appears on your PC, copy the Android APK files (Google Maps and whatever else you copied) into it.
  6. Now disconnect the Kindle Fire from the PC and open Easy Installer in Apps. You will be able to choose an app to install from a list of the APK files you copied.
  7. Choose Google Apps and any other apps you want to install and click, “Install Selected Apps.” You now have Google Maps installed on your Amazon Kindle Fire!

Google Maps Query String Parameters

The following is a list of query string parameters that can be passed to Google Maps.

These arguments are helpful if you want to get Google Maps to display driving directions, which are not available under the API.



q= “q” stands for “query” and anything passed in this parameter is treated as if it had been typed into the query box on the maps.google.com page.
near= “near” can be used as the location part of a query instead of putting the entire string into q=
g= “g” is an address or location that provides extra context for the “q” parameter. Google Maps stores the last ran search here, but if it is the first search it can only contain your starting location. This is a potential information leak, so make sure you do actually mean to share the content of this parameter.
mrt= “mrt” specifies a type of search. The default is blank, which searches for everything.
start= “start” skips the first (start-1) matches.
num= “num” displays, at most, the given number of matches. The valid range is 0 to 20.
ll= “ll” stands for Latitude,longitude of a Google Map center – Note that the order has to be latitude first, then longitude and it has to be in decimal format.
sll= “sll” Latitude,longitude of the point from which the business search should be performed.
spn= “spn” Approximate lat/long span. The zoom level will be adjusted to fit if there’s no z= parameter.
latlng= “latlng” takes three numbers separated by commas. The first two numbers (presumably representing latitude and longitude multiplied by 1000000) are ignored. The third number seems to be a Google internal “Company ID” number for a particular business.
cid= “cid” is similar to “latlng,” but generating a different map size. It takes three numbers separated by commas. The first two numbers (presumably representing latitude and longitude multiplied by 1000000) are ignored. The third number seems to be a Google internal “Company ID” number for a particular business.
geocode= “geocode” is a concatination of “geocode” encoded values for waypoints used in directions.
radius= “radius” localizes results to a certain radius. Requires “sll” or similar center point to work.
t= “t” is Map Type. The available options are “m” map, “k” satellite, “h” hybrid, “p” terrain.
z= “z” sets the zoom level.
layer= “layer” Activates overlay. Current option is “t” traffic.
lci= “lci” activates layers of tiles and needs to be comma-separated.
view= “view” can be used to select text view (view=text) or the normal map view (view=map).
saddr= “saddr” source address. Use this when asking for driving directions.
daddr= “daddr” Destination address(es). Use this when asking for driving directions.
mrad= “mrad” gives you additional destination address.
dirflg= “dirflg” is the route type: dirflg=h Switches on “Avoid Highways” route finding mode. dirflg=t Switches on “Avoid Tolls” route finding mode. dirflg=r Switches on “Public Transit” – only works in some areas. dirflg=w Switches to walking directions – still in beta.
via= “via” gives a comma separated list of intermediate addresses for directions, that should be ‘via points’.
doflg= “doflg” Distance Units. (Defaults to prevalent units in country of origin.) doflg=ptk outputs directions in metric (km) and doflg=ptm outputs directions in imperial (miles).
cbll= “cbll” is latitude,longitude for Street View.
cbp= “cbp” Street View window that accepts 5 parameters: 1) Street View/map arrangement, 11=upper half Street View and lower half map, 12=mostly Street View with corner map 2) Rotation angle/bearing (in degrees) 3) Tilt angle, -90 (straight up) to 90 (straight down) 4) Zoom level, 0-2 5) Pitch (in degrees) -90 (straight up) to 90 (straight down), default 5
panoid= “panoid” is the panorama ID, which is the ID of the current nearby panorama object in Street View.
hl= “hl” stands for “host language”.
om= “om” stands for “overview map.” The presence of this parameter with a value other than 1 causes the overview map to be closed. If the parameter is omitted, or present with the value 1, then the overview map is open.
ie= “ie” stands for “input encoding” and can be used to specify the input character encoding set.
oe= “oe” stands for “output encoding” and can be used to specify the input character encoding set.
output= “output” is for output format (blank is default).
f= “f” stands for “form” and controls the style of query form to be displayed. f=d Displays the “directions” form (two input boxes: from, to). f=l Displays the “local” form (two input boxes: what, where). f=q (or no parameter) The default search form is displayed (single input).
pw= “pw” stands for “print window.” It activates the print mode and initiates printing. Example, pw=2.
iwloc= “iwloc” stands for “info window location” and specifies where the infowindow will be displayed. In a business search iwloc=A to iwloc=J will open the info window over the corresponding business marker, and iwloc=near will place it over the big green arrow if that’s currently displayed. iwloc=addr can be used on map search to explicitly request the info window to be open on the address, but that’s the default anyway. Directions search supports iwloc=start, iwloc=end and iwloc=pause1
iwd=1 “iwd” stands for “info window display” and specifies that the infowindow displayed (iwloc=) will be a detailed (expanded) view.
iwstate1= iwstate1=ssaddfeatureinstructioncard Specifies that the infowindow is in add place mode. Use with ssp=addf and iwloc=SS.  iwstate1=sscorrectthiscard Specifies the infowindow is in edit mode. iwstate1=sscorrectthiscard:ssmovemarkercard The infowindow is in Move marker mode, with the marker bouncing and draggable. iwstate1=sscorrectthiscard:ssedithistorycard The infowindow is in View history mode, displaying a graphical list of marker moves.
msa= “msa” is involved in My Maps processing. It does nothing without the “/ms” and “/ms” does nothing without the msa=. msa=0 Used with msid= to show a particular My Map.msa=b Activates the “My Maps” sidebar when used in conjunction with “maps.google.com/ms”.  msa=1 shows the My Maps tab directly (like msa=b did). msa=2 Jumps directly to create new My Map form.
msid= “msid” specifies a My Maps identifier. When used in conjunction with “maps.google.com/ms” and msa=0, the corresponding My Map is displayed.
vp= “vp” stands for “view point” and the presence of this parameter causes maps.google.com to switch into Copyright Service mode. Instead of returning the html that draws a map, it returns information about the copyright ownership in Javascript format. The vp= parameter specifies the viewpoint (i.e. the centre of the map). Copyright Service only works when the spn= and z= parameters are also supplied, indicating the span and the zoom. Optional parameters are t=, which specifies the map type, and key= which specifies the API key of the site performing the request.
sspn = “sspn” stands for “Screen span”. Map bounds dimensions in Degrees, to calculate this use: newGLatLng(map.getBounds().getNorthEast().lat() − map.getBounds().getSouthWest().lat(),map.getBounds().getNorthEast().lng() − map.getBounds().getSouthWest().lng()).toUrlValue()

Here are some reference books on Google Maps programming that may also be useful:

Google Maps APIMap Scripting 101Google Web Toolkit ApplicationsBeginning Google Maps API 3 (Expert’s Voice in Web Development) [Paperback]Map Scripting 101: An Example-Driven Guide to Building Interactive Maps with Bing, Yahoo!, and Google Maps [Paperback]Google Web Toolkit Applications [Paperback]

One reviewer said about Svennerberg’s book, “It’s been a constant struggle for me to find accessible Google Maps API resources that not only cover the capabilities of the API, but also explain the JavaScript concepts behind them in a way that I can understand.” You might also be interested in Gabriel Svennerberg’s blog.

What is a Query String Anyway?

A query string is the part of a Uniform Resource Locator (URL) that can contain data (called parameters) to be passed to web applications such as CGI programs. When a web page is requested via a web browser, the remote server locates a file in its system based on the requested URL. This file may be a simple file or a program. If it is a program, the server may run the program (depending on its configuration), and send output as the required page. The query string is a part of the URL which is passed to the program. It’s use permits data to be passed from the HTTP client (often a web browser like Mozilla Firefox) to the program which generates the web page. This site uses software from WordPress which uses query strings to indicate criteria to search for specific posts or sets of posts in the database. This default use of query strings may reduce search engine optimization (SEO) efforts so pretty permalinks are used here instead. I use the /%category%/%postname%/ permalink, which is probably the most popular.