Friday's Favorite Landmark: Anawangin Beach

This is the second part of our Friday's Favorire Landmark series.


(Photo source: http://yabagmc.wordpress.com/zambales-beaches/)

Anawangin Beach, Pundakit, Zambales, Philippines
Coordinates: 14.87985 °N, 120.07011 °E (Google Maps)
Favorited by: Gilmer Bianzon / Datadev Team

This beach is situated in a cove off the coast of Zambales. I’ve spent most of my vacation in this lovely place. There’s no electricity or cellphone signal, accommodation is by tents only. It’s a perfect place to relax and get drunk all day.

 

Don't miss a blog post, Like us on Facebook!

Friday's Favorite Landmark: Kaitaisten Silta

This if the first part in a series of weekly posts where we show some of our landmarks that are interesting, fun, or just personal favorites.


 Kaitaisten Silta (Kaitainen Bridge), Taivassalo, Southwest Finland
Coordinates: 60.54869 °N, 21.51578 °E (Google Maps)
Favorited by: the undersigned

This is the last and longest bridge when driving to the island of Kustavi. For me it's a special landmark, because my family has a cottage really close to it.

The bridge has a really nice view, and going to the cottage this is the perfect place to check the weather and water conditions to see if it is going to be a good day for wakeboarding, kiteboarding, or what.

There is a separate platform for walking below the surface, and when I was a kid, we would be anventurous and walk across under the bridge. I think they have built fences and locked doors so one does not get to go there anymore.

Kaitaisten Silta in Gecko SMS

By the way, if you want to get our blog updates via Facebook, you should like our Facebook-group!

Without GPS, how does Google and Android know where I am

Simplified diagram of the messages passed during a network location lookup
in Gecko SMS. The messages are usually passed purely inside the phone
with cached data, sometimes over the Internet

Gecko SMS and many other applications are dependent on knowing the location of the phone they are running on. The usual way for a device to get its location is using GPS, Global Positioning System, but this can be slow, use a lot of battery, and is sometimes totally unavailable; especially indoors.

But Gecko SMS for Android phones works really well even when GPS is turned off or not available. How is this possible?

The answer is "network location", which is a method based on either the mobile or WLAN networks that the phone can detect. Basically each cell (i.e. tower, base station) in a network has a unique ID*, so it is possible to build a list of all the IDs and their coordinates. Mobile phones are always connected to some network cell**, so to get the location or the phone, one can look it up from this list based on the current cell ID.

The tricky part is getting a list of all the mobile network and WLAN cells in the world, with their coordinates. Mobile operators do not usually publish the locations of their towers, and there is no central list for wireless network routers either. This means that someone must physically go to all possible places and record the IDs using some kind of a device. This is where big companies have great advantage, and for example Google has two major ways for doing this. The first one is by crowd sourcing: Everyone that uses Google Maps on a mobile phone with GPS enabled is also feeding back network data to Google. This is quite brilliant and works well: the phone needs to contact Google servers to get the maps, so there is little overhead for also gathering the network data. It also means that for Google Maps, network location is really reliable in all the areas where they have active users. The second method that Google uses is data collection by their Street View cars that drive around many countries. In Europe, there was some controversy about this as the cars accidentally collected a bit more data from the WLAN networks than just network IDs.

Such a list of ids and locations for each cell in the world is too big to be stored in a phone, and needs to be constantly updated, so the full data is stored on servers. The phone uses normal mobile internet connection to get the relevant locations from the server when it needs them, and stores these for later use.

This whole solution from Google is built into the Android platform, so all Gecko SMS needs to do is use the provided APIs and it can almost always get a location to work with. Pretty neat!

Also other new smartphone platforms have similar functionality built-in, but this has not always been the case. Last year when we built a prototype of Gecko SMS for the older S60 Symbian platform, we had to deal with the cell ID lookups and related database queries in our own code. Simple HTTP requests, but nevertheless tedious to get right especially when network connections and location tables are not 100% reliable.

Network cell IDs are not a foolproof way of getting a location. As networks change, there is a chance that the list of locations for the cells is outdated. I noticed this first hand a few months ago when I moved house: my WLAN router had physically moved, but still had the same ID as before. Thus at my new place, all my test phones were giving the location to my old place. This continued until I renamed the WLAN, so Google picked up the change. These kinds of incidents however are rare enough that it basically "just works".

Another limitation is that especially for GSM networks, a single network cell covers a wide area, so the location defined by it is quite inexact. GSM cell location is accurate to about 200-3000 meters, whereas WLAN and WCDMA (3G) cells can provide an accuracy of 50 meters or even less. This inaccuracy is something that has to be handled on the application level. In the case of Gecko SMS, the application learns the users choices and can automatically single out the exactly correct landmark even from inexact location information.

 

Google Maps and Gecko SMS show current position with a large circle to indicate that the location is inexact, in these examples detected from a mobile network cell ID.

 

 

*) That was a bit simplified: For GSM/3G networks this ID contains Mobile Country Code, Mobile Network Code, Location Area Code, and Cell ID. For CDMA it is System Identification number, Network Identification number, and Base Station ID (SID, NID & BID). For WLAN networks it is the MAC address and network identifier (SSID).

**) If the phone is not not in airplane/offline mode

Hello world, what is a landmark?

Hello world, this is the blog for Gecko SMS.

We just released Gecko SMS for Android in the Android Market, and there was some brief discussion about the concept on Hacker News and on reddit.com. This chance to discuss the idea with people outside our little circle of geo-nerds made me see some weaknesses in our message. This blog is one of our ways to improve on that.

As the first post, I'd like to share our thoughts on what a landmark is. This is a fundamental thing for us, that's what we do: develop and maintain global landmark data and applications that utilize it.

But what does the word landmark really mean?

The Wikipedia-page on landmarks, makes a distinction between American and British English usage of the word: In American English the word is usually "used to designate places that might be of interest to tourists due to notable physical features or historical significance" where as "landmarks in the British English sense are often used for casual navigation, such as giving directions".

Without taking any sides on the language of choice, we definitely go with the latter understanding: landmarks are not just places for tourists. They are anything that can be used to define a location in an widely understandable way, for example schools, shopping malls, buildings, corners of main streets, museums. Anything that helps you locate yourself and everybody locally knows.

Here is an example of a landmark that is highly useful for giving directions in Makati, but definitely not a "must see" for tourists visiting Manila:
 

McDonald's H.V. dela Costa, Makati, NCR, Philippines
 Coordinates: 14.56070 °N, 121.01790 °E (Google Maps)

(BTW, today they had very cute girl behind the counter, and the 25 PHP Sundae tasted extra good because of that!)

So that is how we define a landmark.

Check back later on this blog for other examples of cool landmarks, and more information about what we are doing with this data.