Where is the center of a landmark?

There is a one very important issue related to adoption of landmarks which is good to understand when utilizing landmarks in map services, visualization, navigation or defining locations: How the center point of a landmark (exact coordinates) is determined and presented in a single point, and what are the most appropriate selection criteria’s and principles to select this point.

If you compare available map services (Google Maps, Yahoo Maps, Google Earth, Bing Maps, etc.), you will realize that location of the landmarks and such are not identical at all. Everyone has their own version of where the center points of landmarks are located. Cities, towns and villages are more or less “somewhere there”, POI (Point of Interest) type of landmarks are usually close to, but not exactly where the "real position" is.

This is one of the core issues with landmarks – How to determine and place the center point of the single point which represents city, village or another man-made landmark? Should the selection be based on functional, geographical, administrative principles or just on one person's perception? In geography, mathematics and especially in cartography, this issue/problem have been analyzed extensively, but no straightforward and generally accepted solution has been presented... And never will.

Since the theories and principles never provide the correct and absolute answer, the correct answer depends on the primary use of landmark. In this case, all the criteria’s and principles can affect the location separately or all together with different degree. If we ignore all the mathematical models, scales and map projections, the center of the landmark can be set through four general principles:


On this basis, the landmark locates in the functional focal point of a city or a village, in the center of the area where the most traffic flows and commercial activities are concentrated. In the case of POI type of landmark, center point locates where people mostly move within the area of landmark, usually in main entrance of the building/premise/area.

Functional location of Juba and Juba Teaching Hospital


On this basis, the center of a city or a village is placed into mathematical center of their geographical borderline polygon that determines the operational area (built up area). The center of POI type of landmark is also defined by the center of a polygon that usually is based on a building outline or something similar.

Geographical location of Juba and Juba Teaching Hospital


On this basis, the location of the landmark is relatively easy as it is placed in the mathematical center of an administrative city/village limit polygon. This polygon may be the same as the geographical, but often it is not. In case of POI type of landmarks, center point is located according to mathematical center of a property or site, according to the compound boundary polygon.


Administrative location of Juba and Juba Teaching Hospital

Personal Perception

This is “the principle” that confuses and messes up all the other criteria and principles, but is the most important of them all. How can one person define where the center point of a city, village, or a single building should be? There are a lot of studies and tests about this: Approx 90% of the people place the center of the city within one kilometer radius from the functional center. For POI-type of landmark, they place center point as follows: 40% in the middle of the building, 40% in the main entrance and 10% elsewhere.

My location for Juba and Juba Teaching Hospital

So, where is the center of a landmark? If none of these four principles work directly for a particular landmark, it is useful to make an appropriate synthesis of these four. This kind of generalization usually works well and provides good and generally accepted answer.


However this is not a totally definitive response to the question where the center point of a landmark should be located, but it provides the basis for how the center point can be determined.


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