APS8: Interactive Maps: Making Them Work for You

Joel Herron, Web Technology Specialist, University of Wisconsin-Whitewater

The audio for this podcast can be downloaded at http://highedweb.org/2009/presentations/aps8.mp3

[Intro Music]

Announcer: You’re listening to one in a series of podcasts from the 2009 HighEdWeb Conference in Milwaukee, Wisconsin.

Joel Herron: The first thing I want to talk about is what I call the mouse trap of interactive maps. Usually, people who build interactive maps end up being more geeky. Your programmers or whoever ends up being that they fall into a lot of traps when it comes to, I mean it looks like an easy path just walked down, I have to have my map, I have my data, I put it in there, it works. The problem ends up being is that there are a lot of issues on campuses that make it so that it's not just an easy path. It's a lot more complex just because of how you need to do things in a certain way.

So some of the issues I want to go through as far as what we found a white water as doing things is we found that we have a lot of just regular plain maps that people use all the time. One of the drivers for us doing an interactive map was we're trying to consolidate all these parking maps, all these things. What we found is that there's a lot of incorrect information out there. If people have buildings that donít exist anymore, they have parking lots that, well, those aren't there anymore so there are all of these things.

Plus, obviously being there's a variety of maps, people are sending them out so they're wasting a lot of paper and we're trying to be more green these days and so wasting paper is wasting money. And where they could've just sent an email to somebody saying hey, go to this interactive map, here it is for you.

Also, they're rarely updated. Every once in a while, the alumni department sends out, here's our nice paid map for this alumni event, here's where you go to parking. Well, if they only updated once a year, what is on their website is PF or something, that data could be out there for a year and you're driving to your alumni or your other constituents to bad data which leads us to outdated maps.

Like on our campus for instance, we have never ending construction, never ending, it's horrible. We decided 10 years ago that we decided we're going to start building again so we've had I think seven new buildings in the last 10 years which lead to really outdated maps because building A doesn't exist anymore. In fact three buildings don't exist anymore and this huge other building is now over at the top of them and we still have maps that have this building that used to be the administration building that isn't there anymore. So if you tried to ask where is Salisbury Hall, well, it doesn't exist and it hasn't for quite some time.

So what approach can we take to make sure that when we're building our interactive map, it's going to last, it's going to make sure that we can actually succeed at making at that map? The first big point is collecting and organizing your data. This is the biggest part of how you can make sure that when you're actually building your map, you're having data and you have things people actually want to use.

The next as I call getting started is figure out where your starting point is, what technologies you're going to use, how are you going to get your data to the actual map? Putting it altogether, meaning as far as how do I take my little map that I've built and how do I make it something that people come back to, people continue to use because that's probably the biggest reason of making a map. It's to actually make sure that people actually use it.

Then, after you have a map that's successful, how do you make sure that people keep coming back to your map? How do you make sure there's new content and new things happening all the time so that you can actually sustain and keep that data coming?

So I would call this one as collecting the gumdrop buttons. Sorry, I'm becoming a new father and so I have to learn all these games. Well, old kid games, I know.

So part of the whole getting data thing is figuring out well, what kind of data am I going to have? What do I want to display? Do I want to display things like buildings, parking, dining? Where are wireless accesses on campus? Or maybe accessibility, where handicap parking, where the accessible doors are on campus? That's the thing.

One of the biggest parts and I think it's the most important is figuring out before you even the start the map is what data do you want to display because that's going to impact how you're going to organize that data. Whether you're going to do things like building where your locations are going to be or if you have dining, are you going to make it underneath a building or is it going to be separate? How many markers are you going to be displaying on your map?

The second biggest key to finding your data is finding your key master because they own your data. As IT people or marketing people, you don't necessarily own that data. I mean I donít know where or when dining information gets updated; the dining people do. So the whole thing is you have to make sure that you're not the person who you think own the data. You need to find the people who own the data so they can get the data to you.

Obviously, a big thing is what format is that data in. Is it an Excel spreadsheet? Are you trying to do an overlay on a map and it's a certain size but your map is a different size. You need to have time to convert it. What can you do about that? So the whole thing is can you even use the data they're giving you?

Addresses are great but sometimes are not, like in campuses like ours, some of our buildings donít actually have addresses. They're internal to a big block system and so the address is like Hyman Mall. Well, that's not a street that you can go down. It's an actual pedestrian mall.

The other big thing is conversion time. On our map, we have a campus overlay that actually gets built on top that we get updated every six months. That takes us 110 hours to do the actual transformation, make all the walking paths, make sure all the buildings are in the right place and that sort of thing. So it can take a lot of time in order to make sure that the data you are getting, you can actually use it at some point and make sure that you have the time to do so because it obviously could be a time intensive process.

Another big key is going to be how often is your data updated. How often do your facilities and planning and management people put out a new CAD drawing or how often do people in dining update their locations? Do they move things around in the summer when things are open? That type of thing.

Another big thing is so you have all these people that have your data, well how do you make sure that you get the freshest data all the time? Because sometimes they update it on a regular basis, sometimes they donít update it. Also, the thing is that like me in a state institution, they don't necessarily give me that data because it means more work for them or things that they donít necessarily want to do. So building partnerships with those people to make sure that they're giving you that data is really key to make sure that you're getting the freshest data so that you're not becoming one of those maps that's outdated that is bad information and that type of thing.

Sometimes partnerships don't work. People are angry; people donít like you for whatever reasons. So you have to hope and plead to get that data. Sometimes it takes chocolate cake and cigarettes. We actually have a person on campus that if I need my new map, I have to bring a chocolate cake. That's what I do. It happens. I'm sure there are people that you work with on campus that are ornery and bitchy and whatnot and that may be what you have to do. So finding that person and finding how you can get that data to make sure you have that data always accessible to you and easy to get the format is really key.

So how do you all sort it out? How can you make sure that when you're building that data model, you have all this data now, how do you make sure that you're organizing it properly? Well, you need to find your base unit, whether that be a building, an office or just some sort of let's say call it generic space. What this means is at some point, you're going to have to have a dataset of saying okay, well, I have a building. Let's have anything that's inside that building part of that building or let's say I have an office that's inside of a building, I donít want to make that the base unit that I'm working off. So if I have a map and I'm displaying all the offices, different points will show for each office but not just for a whole building. Or I have a building and everything that's inside that building is actually data points that are coming off of that and you're actually building it so you have more simple interface or that type of thing.

Generic spaces, what we use, actually we have this thing we call the space so whether it be a parking lot, a building, a WiFi hotspot, the blue light box. I don't know if you have the emergency blue light boxes that we end up calling that a space as well. Buildings for us are spaces as well so that we can make sure that we have enough breadth when we're extending our maps to make sure that we can have different things inside of our maps that we make sure that we're not building redundant data and make sure that we're actually organizing it properly.

Now, by extending the base unit, meaning, let's say I do have a building as a base unit, you need to be able to add services to that building. Well, what is admissions in that building, what services do they offer? That type of thing. So when you're building your map and if you want to get farther than just this is where my buildings are, this is where my parking lots are, you can actually bring data back to them saying, okay, well, you look for admissions. I know it's in this building so I'm going to pop that up for you. Here are the other things that are in that building as well for you, which brings me to sub-locations depending on your base unit.

So if you picked an office or a building, offices necessarily aren't going to have sub-points unless you're going to find ERP data and bring that in and say, well, I want to take John Smith from accounting. I'm going to bring that, I'm going to show you when you searched for him, I'm going to show you where he is on that map, which is definitely possible and doable. But if you had a building then you could actually bring it and so you have a lot more data available at your beck and call. So how you sort your data is definitely key to how you end up showing people what you're actually going to do. I'm doing a bit of Propeller at the moment.

The biggest part so we have your data, we know how we're going to organize it. The hardest part now is how do I get that data on to my map because obviously Google Maps, the APIs, Yahoo, Microsoft or what have you, they don't use nice street addresses and that sort of thing. They're all based on latitude and longitudes so how do I get geocoding or reversed geocoding data out of it. So let's say I want to take a building that I know, what location it is, how do I make sure that I can say here's where it is on the map? Or if I already have that address or I have that pinpoint location now, how if I want to tell somebody what the address is, how do I reverse geocode that back out?

There are definitely some services you can use. The one that we use currently is Google Maps API which allows you to do geocoding both forward and reverse but you're only limited to a certain amount I believe per month, I think, if I remember correctly. So you do have to be careful if you're geocoding your entire alumni base. That probably isn't a good idea to do it in one fell swoop. There's also Yahoo as a really good web service API for geocoding as well.

Actually, what we use the most is Google Maps itself. You can actually go to Google Maps, type in a certain piece of JavaScript code and it'll actually give you back the latitude and longitude of where you're centered on the map which allows you to say well, for my building that's in the middle of nowhere and has no address, I can hover at the top in Google Maps and say here's the JavaScript point and it gives me back my latitude and longitude so I can actually record that and put that into my XML or database or what have you.

So baby steps. What this means is so now we have our data, we know how we're going to store it. We've figured out how to get to our locations to be something that we can actually use in one of these APIs. Well, how do we start putting it together?

Thinking big and starting small means basically that when I'm thinking about the big picture, you're not going to start with a whole full-blown map or at least you shouldn't. You should start with something a little smaller, a little bit more manageable so that you can know you have the technology, you could build it and you can work to extend it later. So the big thing about it is use what you know. Don't go out and learn a new language just to bring in Google Maps. Use what you know and pick a service that works for you.

There are a lot of services out there. There's obviously the 800-pound gorilla Google Maps. A lot of people use it. A lot of people really like it but it may not be for you. Maybe you want to use Yahoo or MapQuest. They all have great APIs to be used. Or maybe you want something a little more advanced, for instance weather.com uses big maps to do really crazy weather overlays. So I mean maybe that's what you want to do. Or there's also your own bring your own map. You can also do things such as there's a lot of open source services as far as having tile servers, having different things that you can actually build out and say, I want my map but I donít want to use these APIs, I want to write my own type of thing. So if that's your type of thing, maybe that's the way to go.

Also, being iterative is really going to help you succeed because if you look at this grand scope and you have this big planet and you want all this data you want to bring in, bringing in little pieces not only gives you a timeline you can keep to but it features a package of little things that you can say, okay, I'm going to reach this time, three months later or whatever your cycle ends up being; it's a little bit later so it doesn't overwhelm you with work. And it also keeps people coming back to your site because they're going to see, oh they well raised a new feature I can now have full text search or I have tagging or that type of thing that I can actually build in and really get good data out of.

Why this works? Obviously, if you're working on little smaller things at a time you increase quality. Well, you should have increased quality. You're avoiding burnout of well, now, I hate Google Maps because I've been working on it for three months straight and I really, really hate it now. Whereas, if you're working on other projects simultaneously it helps you not hate it. For a while you can start hating it. At least I do.

Also, that obviously keeps them coming back so you're going to have people who are saying, oh, well, I have this new feature like you at least help call them out on it. Boston University has an amazing Google Map. Have you seen it? Go check it out. It has a MyMaps feature for people who actually have a Boston University login and it can do amazing things. But they've released an iterative process that keep adding and adding things as they go along so they've really done a good job.

So, bringing all the goods together. Kiss your interface and not your palm. What this really means is a lot of people have this well, I want to have this grandiose plan for my interface. Look at Google Maps. It's simple, it's clean, they donít try to do anything except show you the map and maybe some sidebar options. I've seen some maps that I have three bars on each side, I have this whole row of stuff on the top and now I have this little tiny map. That's not what people want. They want this huge map that they can see everything and have little bits of data scattered around helping you get to it. So keeping it clean significantly helps as far as keeping people on your site, keeping people coming back to use it and making it easy.

The other thing too is let's say you do have a lot of data you want to present. When you pop up those boxes telling people you want to go here and you're there, you want to make sure that you're presenting your data clearly. You can just throw a whole bunch of stuff in there and saying, here's whatever. If you organize it properly and keep and let the data present itself easily, it really ends up working out pretty well.

Make search your friend. If you have the ability, search is really key because you can have little checkboxes around saying, I want to show all buildings this time or I want to show up parking or I want to show all my wireless options. If you allow people to search for things, you're instantly freeing up your interface and you're also allowing people to get a lot deeper into your site. You're allowing people to really figure out, well, I'm looking for this but if you have keyword matching and keyword that type of thing, you can actually build a lot more because who knows what they're actually looking for? Maybe they're looking for some specific dining location like we have a commons. Well, they donít necessarily know that it's in our university center. They're not likely going to search for that. Well, if they search for that, I can then find it, put it in there and display that point on the map, display it up and bring it to them.

So tagging and full search text searches is really key I think in the end stages of getting a map that actually works really well.

So keeping it going. We've got our map. We've started it out. It's working. We're iterating through building it. How do you keep it so that people will actually keep coming back or how do you add new features? What kind of features can you add to really build it out and make it a lot better?

One of them that we're working on right now is actually custom maps. A good example of this is we have a college of education that has a bunch of different internships around the state and not just our campus map but what we're doing is allowing them to have points in another space that basically when they say come to this custom URL, you can automatically pull it up. Here, scattered around are all the points of all of our current alumni that are working and where they're working so you can actually see where people are working in the area and it's kind of connecting back and forth, that's a good thing. So you have a lot of options as far as mashing up services.

So let's say a good example is I want to find out where I can study and have WifI at the same time. On our campuses, we're completely covered but maybe on your campus you don't necessarily have covered WifI You could do something as far as have a little button for nice study places or something like that that you can actually build it so you actually have these custom maps whether it's special event parking, whether it's move-in day. How do you change from parking on move-in day, how does that work? How can you overlay things on top of your map to make custom maps for people that keep coming back or keep from moving and keep them coming back and make sure that they know things like construction zones? Maybe you put an orange box around the construction zone while it's currently there, something like that to keep people knowing that when they come to that map, they're going to make sure that if they use it they're not going somewhere that doesn't exist.

So another thing is obviously you can do things like accessibility I've talked about before and POI; points of interest is what it really comes down to being. †We have what's called our hot card and they accept what we call purple points because it's really dumb. But anyways, mascots. But we have a thing where you can figure out where are all your purple points, where are the locations on campus you can use a purple point and off campus where you say, can I go to McDonald's and use purple points? No, you can't but I can go to Wal-Mart and use purple points or I can go to the grocery store and that type of thing. So you're using your data to actually give your students and your faculty more information and better use of their actual services.

Then, obviously I told you about mashing up career data. Then obviously the sky is the limit. Whatever data you have, that's what maps really are, it's points, locations. If you have them, you can use them and you can actually I think really increase your maps productivity.

So what maps rule them all? The idea that we came up with was we're trying to give everybody these paper maps. How can we do that, via custom maps, via this type of things we can really take what we have? And if we can climb it down and give people whether it's custom URL to find their specialty map or however we do it, we can really make it a single point of data for how we can make sure that whenever everyone comes to finds the map on UW wireless campus, they're coming to our interactive map, they're not printing things, they're really finding it one place and it's data that's kept up to date because we have those partnerships, cake or whatever it is that we're giving out to make sure that we can get our data. So that's going to help eliminate those outdated maps.

Obviously, this is going to help us be green as well so we're not necessarily sending paper to new recruits saying, here's how you get to our campus, we have on campus data, that type of thing.

The other nice thing is you can also do a lot of easy controls. So obviously move-in day for freshmen students is only once a year. Well, I donít need that map to be out there for the entire time. Maybe I only need it to be out there for a certain section of time where you can say, well, this map is only going to be available this time. Or you're just going to say that we have special parking for commencement as well so here's how you're going to get there or that type of thing.

That is it. It's a little fast, but questions?

Audience:†Have you considered a mobile interface for your maps?

Joel Herron: A question asking about global interfaces for our maps. Yes, we have looked at it. Currently, our map does actually work if you pull up a web browser on an iPhone or BlackBerry, it does work. The JavaScript does work but we are looking at possibly pulling stuff from our ERP system to be able to give students point to point from their class schedules going from point to point. I don't know if you've ever seen the Stanford. Is anybody here from Stanford? No. Their iPhone app has a full built-in backend that I think they have PeopleSoft that actually pulls that data out. It's pretty cool. Is it Blackboard that they pull out of? Yes. Other questions?

Audience: Actually, I'm looking at your maps when you start going down the same path and then we realized that Tele Atlas' data wasn't matching out like streets or matching out of the actual map photo. So do you have that in your experience?

Joel Herron: Yes. The question was Google's map data doesn't necessarily match up with how it actually is and we have a huge problem with that. Our satellite map is actually four years old. I know this because my car is sitting in a parking lot and I can see it and it's very troublesome to me and there are actually roads in our map that if you go to the regular map that don't actually exist. There's a map cutting through our entire campus that's been dead for three years.

So how we went about fixing that was if you look at our map, we have a campus overlay on top of it that puts, but that's a lot of work. We built our own tile server and we clearly only have one level of zoom because it is just a ridiculous amount of work to make it happen. So yes, that is definitely an issue.

Audience: I thought it was a Wisconsin thing.

Joel Herron: It's more than just a Wisconsin thing. I think it's any area that's kind of not necessarily a big metropolitan area. They just donít update the - yes. Other question?

Audience: You mentioned something earlier, sorry I'm not very experienced in this area, some kind of custom Java thing where you could get an exact location of...

Joel Herron: Yes, and I'll go back actually. There it is. Yes, I know. Actually, the post at Lifehacker is really great. They tell you what you can use it for and kind of give you a description of how to do it. I know I'm using a horrible getURL system for our own campus but it was just sort of giving them a new URL.

I really love that service just because you can kind of go somewhere and get the bird's eye view and say that's the point I want and it kind of pulls it up for you. Other questions, yes?


Sure. The question is about the backend of how our data holds. What we do is ours is a PHP frontend, SQL server backend and we have a bunch of different tables that have all our different stuff and tagging or whatever it is, our own separate tables and we have a bunch of stored procedures that run through and get our search data back.

The nice thing that we use is the PHP is only on the backend. Everything coming through is actually JSON and JavaScript coming back through, so it's very light on the server side, I guess you could say. Yes, follow up.

They will be two months. We're building a backend so they can actually update their own data, which is I think also a really nice thing you can do because then it makes them the owners so they don't have to give you the data. They can actually go in and update it themselves. Other questions, yes?

We do. That comes -

Audience: How about that generation, that...

Joel Herron: I will speak to that because it's - yes, on our site, we have a printable map. We also have an image map as well along with our interactive map. We're in the process of getting to that one map to do them all type of thing but we have a lot of people who as probably you do too, they love to print things. We can't stop them from printing things and they need that tangible I have a map in front of me to figure out where I'm going type of thing so that's why it's there. It's developed by our parking services people. It's a completely server map.

We get two completely different maps from them. One is a huge CAD file that we have to do all the coloring and everything in it. The other one they do for us.

Audience: Printable maps would best be parts.

Joel Herron: Yes, they do. Yes?

Audience: I guess that's simple.

Joel Herron: That would be me.

Audience: Is that your full-time job?

Joel Herron: The question was how much time do I spend on this crazy thing. Yes. I use my minions. They do all the data entry directly into the database and then I actually do all the coding myself but we're starting to work on a framework. We're actually making sure that we have everything together so that when you do a Google Map, all you have to do is include this framework and all your points and everything like that, all the building blocks are all there, which we may distribute at some point.

It takes me probably I'd say I spent about five hours a week on the map just building it through the iterations. We try to go through about a three-month lifecycle as far as getting new stuff out. Other questions?

Audience: Is this information loaded into the reader, Google Maps system?

Joel Herron: The question was does this get integrated back into Google Maps? The answer is no, it doesn't. The data we have is our data. Google has their own data and they like it that way. It's the same with Yahoo and any of the other services. It's kind of your thing to figure out, use the APIs and figure out how you want to use it yourself, but they do offer you a lot of good tools. Yes?

Audience: Because we're going through this process and it's going on too long. Have you started down your path? And now we're looking at using Google's data and claiming it as a business. Did you work with that? I mean did you get to you don't have the overlay of doing this on there with just Google data and do they need that?

Joel Herron: The question was: have we looked at using just Google's data and not our own data and possibly doing mash-ups on top of their data or that type of thing? The answer is we did not. The reason we didn't was because our road structure is not feasible because we do have certain things that people just get lost on. We did not go that path just because we wanted to have that campus overlay on top of it that people could easily use, but it is a good method to do. Other questions, yes?

Audience: Is the geolocation updated when the person you are addressing, how do you get the longitude and latitude? Do you use the API to stream it or do they have to put the Google Map and copy it.

Joel Herron: The question was let's say you have a new address you want to put into the map, how do you take that street address and turn it into a latitude and longitude? There are a couple of ways you can do it. If you have a backend system where you can actually input the data into, you could use the Google API to just automatically send it through and send it back and it gives you the latitude and longitude which is what we're doing currently. We have a backend page that I want a new address in the database, it gives to me back and it puts it in the table I want it to go in.

Audience: So you do it only once?

Joel Herron: Yes, we only do it once, and what we do is if you have the address and we have the latitude and longitude, we keep the latitude and longitude and the address on the database so that we donít have to do reverse geocoding multiple times. That is data intensive. Other questions?

Excellent. Well, thank you guys very much.