Over the past two months or so, I’ve been working on what I like to call a location database. Yea… its a database of locations. I’m codenaming it Empire. I’m calling it Cartiki. I’m not sure if the codename Emprie will stick around or not… we’ll see. So… what’s a location? A location is anything that can be put on a map. It also, can’t move too frequently. For example, your body or your car is not a location because they move very frequently. So… I’m talking things like continents, countries, states, cities, college campuses, buildings, floors, rooms, houses, coffee shops, theaters, computer labs, dorms, etc. What am I storing in this database? I’m storing the name of each location, alternate names, their relationships in a tree structure, the location’s latitude/longitude bounds, and some other stuff that’s not fully fleshed out yet.
If you are interested in beta testing this location database, contact me via email. check out Cartiki.com and fill out the form. Maybe I’ll post a link to the beta here later.
So, you might ask… why am I building a location database? That may or may not be obvious to those people who know me. I’m building a location database because we need it for liveUgli. Right now we have only two buildings on liveUgli, and frankly, people study in more locations than just The UGLi and The Dude. So, I’m looking for an editable database of locations so that we can add locations to liveUgli very quickly and painlessly. Another issue we’ve encountered with liveUgli, is that it takes a lot of time and effort to make floor plans of buildings. So, we’re thinking about moving away from that and just using campus maps, or even Google Maps… or heck, lets scrap the maps all together. When someone tells you where they are, they can usually tell you where they are with enough accuracy to find them without the use of any kind of map whatsoever. So, maybe we can use that fact to our advantage. Combine this with maps, and it becomes very powerful. This assumes that they are a student at the University of Michigan, and have been to the location before. We’re targeting these people right now anyway, so we can make that assumption for now.The other question you might ask is, what’s so special about a location database that you can’t just use an existing solution. Well… I’ve thought about this for a while too. I’ve looked into various Geographic information systems, and they all seem too complicated for me to use. I want this GIS to be dead simple for the user. I don’t want to require people to have a GIS degree to use this thing. Maybe eventually, I will cave in and just use a GIS that is already out there, but maybe this location database thingy is in fact unique and never done before. I doubt it. However, I haven’t found the right thing yet.
There are a few things out there that are similar. For example, PostGIS “spatially enables” a PostgreSQL database server. So… a location database? Maybe. One thing I don’t think this really covers is the hierchy that I wanted to capture. I guess with any relational database its going to be tough to empose a tree structure on your data. Relational databases are simply not meant to store trees. I’m managing to do it, but not in a very elegant way.
Another really cool website that is kinda what I was going for is Wikimapia. They say they were inspired by Google Maps and Wikipedia. Wikimapia allows you to put a bounding box around any part of the earth and add a name, some tags, and a description to it.
Another online location database that I’ve played with only a little bit, is called Platial. This site is actually the most similar to Blue Puddle, a project I worked on last semester with GROCS at the University of Michigan. It doesn’t look like Platial does bounds, or any sort of hierchy of locations, but it allows you to “make your own maps”.
Right now, if I had to choose the largest competitor to liveUgli I would say it would be Plazes. Plazes allows users to upload information about places from their downloadable client called the Plazer. Each “plaze” is centered at a wireless access point or router. So, the software knows which place you are at by the wireless access point or router you are either connected to or, closest to. Or, maybe its any one it can recognise. Overall, Plazes is really cool, but it doesn’t let you get down into much detail, and what about places that don’t have wireless access points? Nope, can’t mark those yet. It uses the Google Maps API along with everyone else, and also the Flickr API for photos, which is really cool.
Wayfaring is a really cool looking site. It’s got a lot of AJAX going on and a nice color scheme. It’s also very feature rich. It allows you to, quote “Create, Share, Explore, and Connect” maps. So, you can create your own maps with waypoints, routes, and notes. You can easily put the map within an iframe on your own page. You can browse maps that other people made in your area.
Another site I just found very recently is Mapfacture. It says its a GeoRSS aggregator. GeoRSS is just a convention to tag RSS items with latitude and longitude coordinates. So, when you write a blog entry about your trip to Paris, you might attach the geo coordinates to the entry.
GeoNames says its a geographical database. “Geonames is integrating geographical data such as names, altitude, population and others from various sources. ” So, basically, they have a lot of data that is all licenced under a Creative Commons licence, specifically Attribution 2.5. They also have a webservice and database dumps so that other pieces of software can access the data easily.
Another site that I think has a great idea, but may not be as useful to me is OpenStreetMap. They aim to make a free wiki world map. You can upload GPS tracks, and view what other people have uploaded. I think this project is focusing on making free street maps, and not really going in the same direction as I want to, but still cool none-the-less.
My final service of the day is Tagzania