I get requests all the time from new developers, who want to learn the programming strategies for clever new GeoSpatial/GeoLocation applications, so they can “take over the world!”
Before we ever begin, I require them to depart from the conventional way of looking at things, and ask them to really think deep about what’s actually taking place as users move around in space and time. This usually takes awhile to overcome, because the conventional way of looking at things is all they know. Or rather, all they’ve been taught.
But once I get them thinking with an open mind, we dive right in and go for the good stuff. Let’s explore one recent lesson in greater depth.
GEOFENCING A NATION
I have an application called UBERDASH™, which was natively written as a dashboard for mobile commuters. And I mean a literal dashboard, just like you have in your car. But the most exciting part of the app, is the beast of a GeoSpatial framework that lies in the backend.
This backend is my testing platform for an ever expanding range of cool new features, and through the process of writing the software, I have become increasingly aware of why you’d want to programmatically change key functions on the fly. Now, stay with me here. In order to change key functions on the fly, or even create new functions entirely, you’re going to have to think in terms of math and “conditional statements”.
Okay, so that things make a little more sense from here on out, let me give you a little back story on the UBERDASH™ app. Over the last few months, I have seen an enormous amount of new installations coming from Germany. Not sure why yet, but in any case, installations there are second only to U.S. installations (which is interesting, considering the app has users across 40 countries). Seeing this was the case, I felt compelled to give my users in Germany a, “dynamic version” of their own, and trigger a UI change on the fly. This change will happen via Geo-Fence triggering, and will be completely unknown to app users. They’ll just open their app, and whamo….it’s in German.
Now what’s interesting here, is that I’m not just changing the language of the app and the text on the UI from English to German (that’s easy), but I am triggering all new functions based on the fact that users in Germany have a different perspective than us here in the states (or anywhere for that matter). Unfortunately, it would take many hours to explain what I’m doing to make things “personal” for each international app user…so let’s just get to the math part.
NOW THE MATH
Simple enough, right? Well indeed it is, but if you really need make things accurate, then instead of using just one big Geo-Fence…use a combination of multiple smaller Geo-Fences, and eliminate more of the “dead space” you see here.
If you’re super crazy about setting ultra-accurate Geo-Fences (for unusual shapes), then you could do this: “chunk” the country into three parts (you can see the black, red, and yellow chunks…ironically the country colors ;^), and then build parallelograms around the bottom two chunks, and a rectangle around the top chunk. But from here on out, the math gets CRAZY…so I wouldn’t suggest this (unless you really want to know how).
NOW FOR THE FUN STUFF
Okay, so we’ve set a Geo-Fence around Germany, but what happens when you cross the border to Poland, Czech Republic, Austria, Switzerland, Belgium, Netherlands, or Denmark and beyond? Well, you could do what I am doing, and research the culture and customs in those countries, and design unique UI’s and functions for them as well? Make it an experience for your app users who travel from culture to culture, and give them something fresh and new to see as they travel. In other words, making EVERYBODY & EVERYTHING locationally aware…is a spectacular proposition, don’t you think?
Just go and get cranking!
~To learn more on this topic, send me an email, postcard, courier pigeon, whatever…and I’ll do my best to help you get things going. – Craig