Why not the exact location. Geolocation in iOS - all the most important things about navigation on iPhone and iPad

Information on many Yandex services depends on the user’s location. For example, the Yandex main page shows the local weather forecast, posters and traffic jams in your city. Location is also taken into account in search results: if you are looking for a gym, Yandex will show you the nearest sports clubs.

If you have disabled your location, a link will appear in the search results Results nearby. You can tap it to allow access to your location and get more accurate results for your search.

You can change location access settings using the Location Access instructions.

  1. How to set the city manually
  2. How to reset city settings
  3. How to prevent location detection

How Yandex determines my city

Yandex can determine the location of your device in several ways:

  • By IP address

    By default, the city in which a device connected to the Internet is located is determined through the IP address of this device.

    There may be situations where the same IP address is used in different cities. Then the location that is set correctly for one user will be determined incorrectly for another user.

  • Using LBS technology

    LBS (Location-based service) technology allows you to determine a more precise location of the device:

    • By Wi-Fi access points. When your device's Wi-Fi adapter is turned on, it periodically checks the signal strength of nearby networks. The approximate location of the device can be determined if among the Wi-Fi networks there is at least one whose location is known to Yandex. For example, this could be a Wi-Fi hotspot in a nearby cafe.
    • By cellular network cell. The location of a mobile device is determined using the cellular network cell identifier (Cell ID), within the radius of which the device is located.

    The resulting coordinates are compared with our database of the location of Wi-Fi access points and cellular cells.

    Note. Yandex.Maps users helped create the database. Using the built-in Yandex.Locator technology, the Yandex.Maps mobile application, with the user’s consent, constantly transmits the device’s GPS coordinates and determines which base station is servicing the phone at these coordinates and which Wi-Fi networks are visible.

Based on Android, it does not detect / does not detect the location correctly. Navigation does not work or does not work correctly. What to do and how to fix it?

Many users encounter a problem when phone or The Android tablet starts acting up. It seems that nothing happened that could cause a malfunction, but it does not work as it should.

For example, the device has problems with the fact that it has ceased to determine its location either tablet e or The phone's navigation is not working properly. The reason for this may be:

1st: Software glitch- i.e. the problem is a software glitch

2nd: Hardware failure- i.e. the problem is in the hardware (i.e., replacement or restoration of spare parts for the gadget is required)

However, do not rush to get upset - in 90% of cases there are problems operation of location recognition, geolocation, satellite detection, navigation, etc. functions. smartphone a or Android tablet is to blame software glitch which you can easily fix on your own.

Fixing a software glitch:

Method 1. Quite simple - go to "settings", find there "backup and reset" in which you choose full reset settings with deletion of all data. Be careful, using this method is often effective, but it entails deleting all photos, contacts, passwords, music, games, videos and, in general, all information stored on your smartphone e or tablet e. Therefore, first save everything you need by connecting the gadget to your computer. If this method does not suit you, or if even after this the problem is not resolved, see Method 2.

Method 2.

Based on solving problems with communication and network reception phone number and tablets based on Android by introducing additional software. Utilities that control all processes inside gadgets. Today, there are quite a lot of them, however, the fewer functions an application contains, the more effective it is, as a rule. The best way to monitor system functions, corrects, and correct all possible settings and synchronization errors is a small, easy-to-use, free utility for Android-based devices. You can download the application from Google Play and see its additional options in the description. After installing the application, all that remains is to launch it. Further, in principle, nothing more is required from you. The application will take full control of the device's functions. (By the way, among other things, the gadget will begin to charge 20% faster, and its performance will also increase significantly, which will affect the loading speed and operation of all applications, games, and the system as a whole. On average, after scanning, the system runs at 50% faster.)

  • Also, to achieve maximum data exchange speed over the Internet, it is recommended to install a high-speed browser on your Android device Yandex Browser You can download it from Google Play.

Method 3.

Changing the device software, or as it is also called "re firmware ". This method, as a rule, requires certain skills and can be solved by contacting the Service Center. To carry out this task yourself, you need to contact the website of the manufacturer of your device, download the utilities necessary for flashing the firmware and the firmware itself, and then reinstall it on your gadget.

If none of the methods brings results, unfortunately, you will have to contact the Service Center for repairing your tablet a or smartphone a.

An Android phone or tablet does not detect / does not detect the location correctly. Navigation does not work or does not work correctly. What to do and how to fix it?

Previously, only intelligence services and the military had the ability to track location, but now any mobile user can build their own routes, view visited places and follow another person (with his consent). The navigation system is built into all modern smartphones, it is easy to activate: the GPS system and data transmission via the Internet are responsible for this. Geolocation data can also be obtained using spyware.

What is geodata transfer on Android

GPS is a system for determining the location of a device on the surface of the earth. Many applications based on Android and iOS are related to geolocation, for example, searching for nearby attractions, cafes, shops. Using geodata, the user can plot the optimal route to get to a destination inside or outside the city.

The navigation system works through communication with a satellite or nearby cell phone towers. Typically, the phone finds beacons to receive a signal and receives information from them, transmitting data about your location. Modern mobile phones work with all available navigation systems without being tied to a specific country. To work with GPS, GLONASS, GPS, Deidou (China) systems are used. The main function of geolocation for Android is to build a route to the desired point. To do this, you can use a Google account or third-party applications.

How to enable geolocation on Android

Some applications and programs automatically offer to enable a coordinate system after installation, for example, photos, Instagram, Tinder, Maps. You just need to click on “Allow” and the function will be activated. If you need to enable the function yourself (manually), then follow the following instructions:

  1. Open the Settings menu.
  2. Go to Security & Location.
  3. Open the "Location" section.
  4. Move the switch to the On position (just swipe it to the right). The switch should light up, indicating an active state.
  5. On new phone models there is a quick settings panel (usually swap the top panel down).
  6. Find the GPS icon and activate it.

If you own an Apple phone, you can activate geolocation as follows:

  1. Go to your phone settings.
  2. Open the "Privacy" or "Confidentiality" section.
  3. Then click on “Location Services”.
  4. Here you need to switch to the On position the switch opposite programs that support determining location data.
  5. The first time you turn on applications that use GPS, you will be asked to activate geolocation.

Operating modes

To track the position of a device in space, there are several sources of information. When you activate the function, you will be asked to choose one of three modes:

  1. According to all sources. The preferred option, in early versions of the Android operating system, was called “High Precision”. Offers maximum accuracy in determining the location of the device, using all available tools for geopositioning. Data will be collected from the mobile operator, from GPS satellites, information via Bluetooth and Wi-Fi channels (if enabled).
  2. By network coordinates. In earlier versions of Android, the mode was called “Battery Saver”. This function used only data from a cellular operator or wireless networks for tracking. Economy mode is called because GPS is deactivated and does not consume battery power. This helps the user to extend battery life and conserve battery power.
  3. By GPS satellites. In early versions of Android it is called “By device sensors”. For geolocation, only data from a GPS tracker is used. Information from wireless networks and mobile operators will not be taken into account.

Location history and geodata transfer

In the “Location History” menu section, you can activate the recording of your routes, places you visited different establishments and attractions. The data is stored on Google servers and can be viewed through an account in this system on Google Maps. To do this, you will need to open the section called “Chronology”. Before doing this, you must log in to your Google account at least once from your device.

If you want your relatives or friends to have access to your location, you need to add users in the “Transfer of geodata” section. They will have access to information about your movements and actual location in real time. Trusted users will also be able to track their movements through Google Maps from the “Show where I am” section.

How to use geolocation

The specifics of using this function depend on the goals you set for it. Geolocation on Android and iOS is available on all modern smartphones. After activation, you will be able to mark on photos the places where they were taken (the data is automatically pulled up), and mark interesting points on the map. Coordinates are added, if given permission, to all popular social networks: VKontakte, Facebook, Instagram. You can also use geolocation to track a specific person. To do this, you will need to use additional programs and applications.

Determining the location of the phone via Google

If you have a profile on the Google service, you can link your device to it. The search giant offers a special “Find Device” feature, which is activated the first time you log into your account from a mobile phone. You will have the opportunity to play a loud sound even when the sound is turned off, lock the device, or completely erase all data from it. One of the “Show on map” sections determines the location of the mobile phone, but only under the condition that:

  • the device is turned on and associated with this Google account;
  • there is a connection to the Internet;
  • geolocation function activated;
  • The Find My Device feature is activated.

To view the location of your Android device inside your Google account, you need to do the following:

  1. Go to your account page.
  2. At the top there will be a selection of devices (if you use several), select the one you need.
  3. A list of actions will appear: send a sound signal, block, find the device.
  4. If the above conditions are met, then the point where the mobile phone is located will appear on the map.
  5. If some parameters are disabled, it will show the last place where the phone was fixed.

Find My Android

This geolocation program for Android is suitable for all models from version 1.6. You need to download the application and transfer it to your phone via cable. Next, unpack the installation file; after installation, the application works in offline mode and does not manifest itself in any way. Third-party data storage services are not used; all data is sent to your email on your behalf.

When you download and install wiretapping and tracking utilities, you automatically confirm that the program will not be used unlawfully. To use the program you must complete additional steps:

  1. Before installation, you must activate the “Unknown sources” item in the Android device settings so that you can install the utility.
  2. From the phone you want to track, go to the website and click on the “Install” button.
  3. The program will require the right to access the Internet, send and read SMS. Confirm all these tolerances.
  4. To receive location data, send an SMS to your mobile phone with the =location= command. You will receive a response SMS with coordinates.

Google Maps

Another application from Google, which specializes in geolocation. Using maps, you can plot the best route around the world. The app's useful "Show where I am" feature helps track the user's location. The application works on both Android and iOS devices. The program must be installed on both phones (yours and the one whose owner you want to track). You need to do the following:

  1. On the device you are tracking, activate the “Show where I am” feature from your Google account.
  2. Select a tracking period, enter your phone number or email.
  3. Next, on your mobile phone, go to Google Maps, open the “Show where I am” section and select the tracked phone from the list.

Programs for building routes to Android addresses

All applications that can work with maps can be roughly divided into two types: offline and online access. The latter require a connection to servers to work, which contain map data, updates, and can download missing files. Connection is required when building a route. If you save it later in the device’s memory (cache), you will not need to re-activate the Internet. There are a number of programs that always require access to the network. The disadvantages of such cards are the following factors:

  • Uploading maps requires traffic, the costs are low, but they exist;
  • The battery life of a mobile phone without recharging is reduced due to a constantly active connection to the network;
  • Not everywhere there is access to the Internet.

Offline programs do not require an Internet connection: you only need to connect to a computer that has access to the network. Through the cord you can transfer cards to your mobile or other Android devices. The route is built based on those already existing in the database, so the user will not be able to create completely new routes. In addition, you will have to store a large amount of data on your phone.

Yandex.Navigator

This is a service from the Yandex search engine that can work both online and offline. The navigator helps solve problems and unforeseen situations that arise on the road. First you need to install it on a mobile device with the Android operating system:

  1. Open the official Google store.
  2. Through the search, find Yandex.Navigator.
  3. Click on the “Install” icon.

To start using it, you need to perform the initial setup of the application. The owner of the mobile phone can set the parameters for himself according to the following instructions:

  1. Click on the application icon that appears on your smartphone screen.
  2. Only at the first launch, two requests from the program will pop up. Confirm access to geolocation and microphone.
  3. It is recommended to perform both permissions so that the navigator works as correctly as possible.

After the initial settings, a map will appear with an arrow in the center indicating your current location. Next, you can set the following additional settings:

  1. Click on the “Menu” button located at the bottom right. Open the "Settings" section.
  2. The “Map View” item is responsible for switching between satellite and standard road and street maps. You can choose one of the options, but the schematic option is considered more convenient.
  3. To switch to offline mode, you need to open the “Download maps” item, then click on the search line. A selection of countries, territories, regions, cities and provinces will appear. Find the area you need.
  4. The "Cursor" tab is responsible for the icon of your current position.

The “Sound” settings section is responsible for selecting the language in which the program will comment on the route and road information. On this tab you can make the following settings:

  1. Launch the Narrator tab.
  2. Select the setting that suits you (female or male voice, etc.).
  3. Leave the last three items enabled so that you can get directions using the voice command “Listen, Yandex.” Just dictate your destination and the program will show you the way.

These are all the basic settings before starting to work with the program. To build a route, you can use two input methods:

  1. Manual. Click on the search line, enter the required address and tap on “Search”. The navigator will suggest street options.
  2. Voice. Say the phrase “Listen, Yandex.” A window will appear at the bottom with the word “Speak” - name the street or destination. This is very convenient so as not to be distracted from driving.

Yandex.Navigator will offer two shortest routes and the distance to the destination. Select the appropriate one and click the “Let’s go” button. The Android device will go into travel mode, the remaining travel time, speed, and distance to the first turn will be indicated. Follow the geolocation data and the speaker's instructions. When connected online, the utility indicates traffic congestion, possible and existing traffic jams. You can activate this function by clicking on the traffic light on the top right.

To work with offline mode, you don’t need the Internet; all you need is an Android mobile phone and enabled geolocation via GPS. To plot a route, you need to download terrain files to your mobile phone in advance. The algorithm for constructing a path in the presence of maps coincides with the online mode. To remember the route in advance, you need to click on the “My Places” button and save.

2GIS

2GIS is an independent project that does not belong to any of the search engines. Geolocation on Android is implemented on the principle of a navigator; you can set a route from point A to point B by indicating the address, the name of the organization, or simply pointing your finger anywhere on the map. The main disadvantage of the Android application is that it is paid. To use it on a PC, you do not need to buy it.

The program will calculate the optimal route and show you how to get there by public transport. The utility does not support walking or driving, so it is not suitable for motorists. 2GIS still has little content; not all Russian cities are available, not to mention foreign ones, but the developers are constantly updating maps. The program is used more as a reference book than as an option for geolocation on Android.

Applications for tracking a person

You can use GPS not only to plot a route and make it easier to travel to unfamiliar places. If desired, a person can determine the location of the Android phone. The reasons for this are very different: loss of a mobile phone, mistrust of a loved one or employee, worries about a child. Tracking utilities connect to the geolocation system and transmit location data to you. Below are popular options for Android.

GPS tracker Family Locator

The name indicates that the application helps keep track of relatives and children, but only with their knowledge. For geographic positioning, you must enable a GPS tracker, which will send data to your computer or mobile phone. The application is installed on several Android mobile phones, then a “Circle” is created. Everyone must confirm permission to be tracked using geolocation.

The main disadvantage of the program is that the GPS tracker must be activated, without it it will not be possible to establish the location. You can download the Family Locator GPS tracker for free, download the file to your phone via a USB cable and run the installation. The application has the following options:

  • sending an SOS signal with one click;
  • determines location when GPS is turned on;
  • sends a message when deviating from the direction specified by the route;
  • You can set the arrival point, the application will send a message when the user reaches it.

Lost Android

You can download the utility directly from the official Android application store, it is distributed free of charge. Helps you find out, using geolocation, where the mobile phone on which the program is installed is located. To manage and view data, you must register on the developer’s website and you will be given access to your personal account. The main drawback is the lack of Russian language; the interface is entirely in English. The application has high potential for remote control of an Android device:

  • device blocking;
  • destruction of mobile data;
  • reading received and sent messages;
  • enable/disable Wi-Fi, GPS;
  • notification about SIM card change;
  • removing the launch icon from the desktop;
  • mobile phone control using text commands;
  • call list display and much more.

Where are my children

The application helps to track not only the child’s location by geolocation, but also the state of the mobile phone. When the battery charge is low, the system sends a message to the parent. Android location detection is not the only function of the program; it also has the following options:

  1. Wiretap. Launches the microphone remotely, which allows you to listen to the environment and record an audio track without the child’s knowledge. This is a useful feature for parents whose children are in turbulent adolescence.
  2. Setting up movement zones. Parents create special zones (school, sports section, your yard) and if the child leaves it, an alert is sent. You can call him and ask him to come back.
  3. Saving your travel route. The application stores data about where the user has been over the last 2 days.

After installation, the program can work in two modes - child and parent. The first one must be activated on the Android device that will be monitored. The second is needed to obtain data and control. Remember that geolocation on Android only works when GPS is turned on and the utility can be easily turned off if the user notices it, so it will not be possible to covertly set up surveillance.

How to disable geolocation on Android

The geolocation function usually requires Internet access and activation of a GPS navigator. This puts additional stress on the battery and it discharges faster. You can disable geolocation on your Android device using the following instructions:

  1. Go to your device settings.
  2. Find the "Location" section.
  3. Deactivate the option.
  4. You can also disable it through the quick access menu (swipe down from the top of the screen). Just click on the GPS icon again.

Video

On various sites and forums there are often questions about why the navigator does not determine the location? There can be many reasons for this malfunction.

If you turn on the navigator after an impressive movement (about 1000 kilometers), then it needs a lot of time to re-detect the satellites. If you remain stationary, this time may increase even more. In order for the navigator to show the location, it needs to “see” the sky. For more accurate positioning, the receiver needs to catch 4-5 satellites; in general, the greater the number of satellites, the more accurately the device will show the location.

Often, the reason that the navigator does not determine the location may be too dense buildings, dense trees, or, for example, the roof of a car. Another thing is that the signal may be too weak and insufficient to detect the location of the object where the device is installed.

If the navigator does not determine the location, the signal icon is crossed out, and if the signal is too weak, the color of the signal indicator turns red.

Often, the device does not determine the location after flashing. The receiver may start connecting to satellites that are not visible to us, and therefore the device cannot automatically show the location. To load the correct almanac, you need to set the coordinates. There are two modes of how this can be done: automatic and manual. Automatic mode takes longer.

In manual mode, the country and city of location are independently selected and the receiver soon finds the correct satellites. Why don’t devices pick up satellites after updating the software from the official website? Often the reason lies in the opening of the wrong COM port or in a faulty GPS antenna. The correct port can only be opened by the correct firmware, and if you load the wrong firmware version into the GPS navigator, it will malfunction or not work at all.

The reason that the navigator does not show the location may also be a failure of the almanac. This may happen if the device is stored without power, but after rebooting the almanac the receiver will work stably. If this does not help, then you can still do a full reset.

It is also quite possible that the power amplifier has failed (in this case it needs to be replaced) or mechanical damage to the device has occurred (shocks, moisture), in which case it is necessary to carry out diagnostics. But, if, in the end, none of them appeared in the menu for determining the number of satellites, then, most likely, the problem with the navigator is quite serious and you need to contact a service center, which, as a rule, will carry out free diagnostics.

Nowadays, more and more mobile applications are becoming geo-dependent. Some simply don’t make sense without knowledge of the user’s location, while others become more comfortable with it. These are the so-called Location Based Services (LBS): navigators, four squares, Instagrams with geotagged photos, and even reminder applications that trigger near a specific location, for example, next to an office or store.

For Yandex services and applications, we have created our own implementation of a method for determining location without GPS - Yandex.Locator. It saves the user time and makes our applications a little smarter. In Navigator and Maps, it eliminates the need to enter the starting point of the route, even if you are in a parking garage. And when choosing a movie in the Cinema Afisha or a product in the mobile Market, it helps to immediately show where to find them exactly in your area of ​​the city. And, of course, when searching for cafes and ATMs, it allows you to immediately show the nearest ones, even when you are on the subway.

We discovered the technology a long time ago in the form of a free API. Today we want to tell you how it works.

Why without GPS and how else

Satellite navigation systems (GNSS), in our case GPS and GLONASS, are the most accurate geodetermination method to date. The corresponding modules are found in almost all modern smartphones. But not always and not everywhere it can solve LBS problems.

Firstly, searching for satellites sometimes takes several minutes, and there are situations in which the speed of determination is important even with a loss of accuracy. For example, when you need to build a preliminary route in the navigator or check in. Secondly, satellites are usually not “visible” indoors or underground. Thirdly, not every mobile phone or tablet has GPS modules, and there are almost none in laptops. That is, LBS requires alternatives.

And, of course, there are alternatives - you can determine your location by nearby GSM towers, Wi-Fi networks, and even by IP address. The accuracy of each of these methods is much worse than that of GPS. But if you combine them, they together give acceptable quality. At the same time, some shortcomings of one are neutralized by the capabilities of the other. There are GSM towers almost everywhere, but there are no Wi-Fi networks. At the same time, over Wi-Fi the accuracy of determination is better. Therefore, the combined method is better in completeness and accuracy than each method separately. A lesser known fact is that two routers in different parts of the city may have the same MAC address. Combining GSM and Wi-Fi solves such collisions. These routers will most likely have towers with different identifiers nearby - after all, the probability of a coincidence within a block is much less than across the entire city.

There are several implementations of this combined method of geodetermination in the world. And it seems that the first question that all developers are faced with is where to get information about the location of Wi-Fi networks and cell towers?

Network Location Database

In the “buy or build” dilemma, we ultimately chose the latter. The main reason is that with your own data and algorithms it is much easier to control the quality of the result. Mobile Yandex.Maps users helped us collect information.

When we started developing Latitude, there were already hundreds of thousands of people on the city streets with Yandex.Maps turned on on their phones. With the user's consent, the application constantly transmits his GPS coordinates - Yandex.Traffics are built on the basis of this information. We thought that at the same time, the application could note which base station is servicing the phone at these coordinates, which Wi-Fi networks are visible (while, of course, not connecting to the networks themselves - so as not to create privacy risks).

To participate in such crowdsourcing, a person does not need to do anything special - just use the application. As with coordinates, data about surrounding Wi-Fi networks and GSM stations is anonymized. They “weigh” practically nothing, and the battery from their transmission, accordingly, does not run out faster.

Thus, users began to help each other:


Some, with a GPS receiver in their phone, find out the exact location of networks and transmit the information to Yandex. Others, who do not have GPS modules, send a list of networks that they see at the moment, and receive in response their approximate location on the map.

The database has been compiled and is regularly updated. And here we are faced with the next problem.

"Moving" networks

Experience shows that cell tower identifiers are constantly changing - a number that was in the city center yesterday may be on the outskirts tomorrow. Wi-Fi routers can also move, along with their owners. And it turns out that with each move you need to invalidate a significant part of the data.

This is how we managed to solve the problems with moving both towers and routers at the same time. The user receives a location request along with information about what networks he can see. If the list of networks contains one that was seen in different parts of the city, the algorithm takes into account how many signals from it have accumulated in each area and the age of the latter. We call each dense accumulation of signals from a Wi-Fi network or cell tower a “cloud”. The more signals there are in the cloud and the more recent they are, the more trustworthy it is. The answer will be, accordingly, the largest and freshest. And we consider a cloud in which there are no signals for more than a month to be obsolete - even if a more recent cloud has not appeared for this network in another area.

Cloud radius

Since the position is determined approximately, it is impossible to show the point - you need to draw a circle (after all, the radio signal, in the absence of interference, is distributed evenly in all directions). Although, if you look at the actual picture of the signals, most often it is an ellipse. After all, motorists use mobile maps the most. Their GPS traces remain on the roads, and there are practically no signals coming from yards and, especially, from buildings.

For the answer to be extremely accurate, the radius of the circle must be minimal. If you simply draw a circle around all the signal points on a particular network, the radius will be too large. Mat helped reduce it. statistics. The signal density is subject to a normal distribution, that is, the three-sigma rule applies. 99.7% of points fall within the vicinity of this radius.

We decided to go further and experimentally selected a sigma coefficient that minimized the radius while maintaining acceptable accuracy. This was possible because in most cases the user sees several networks. That is, the areas “opened” by a decrease in the coefficient are most likely overlapped by other clouds.

Non-cloud signals

Unfortunately, not all GPS signals from users are easy to combine into clouds. It turned out that if you overlay all the signals of a particular network on a map, in addition to the “ellipses” there will be points and lines on it. These are, accordingly, single signals, very distant from the cluster of signals of the same network, and very long GPS tracks (i.e. chains of GPS signals).

“Singles” appear, for example, when a person travels by subway. The phone loses contact with a cell at one station, and when it goes to another, it still thinks that it is served by that cell. The locator filters out such signals. In addition, we set a minimum threshold for clouds to avoid relying on too few signal clusters.

Long GPS tracks appear, for example, when a person drives a car through the entire city. The phone “drags” the tower identifier with it from the beginning of the route and conveys that it supposedly sees it along the entire route. It is known that base stations have a limited range, so the Locator also filters out such GPS tracks. Tracks whose length falls within the tower’s range of action remain. They tend to be noticeable in areas where there is little data. There they become a chain of small clouds.

We consider single signals, small clouds and long tracks to be “noise”. When the user sees one single network for which we know only such signals, he receives a response that the location could not be determined. We consider this more correct than giving a result that is obviously incorrect, according to our estimates.

When little data was accumulated, there was another difficulty in combining all the signals into one cloud. It happened that signals from a tower in one city also came from another. The presence of the location area code in the GSM network identifiers - LAC (Location Area Code) helped us. Since towers with the same code must be nearby according to the standard, the Latitude began to give underestimated weight to clouds that were “out of their city” (i.e. among clouds with a different LAC).

Improving detection accuracy...

...via GSM networks
Once upon a time, applications had access to information about only one base station, although the phone most often sees several. After the advent of the Android platform, applications were able to learn to see them all (except for connections in the 3G standard, which allows you to recognize only one cell tower). The location began to be determined more accurately - no longer by one cloud, but by a combination of several. It turned out that for many clouds you can use the same approach as for one. The radius is calculated by the standard deviation of the signals included in the set of clouds, and the center is calculated by the average of their coordinates.
…via Wi-Fi networks
When a smartphone is within range of several Wi-Fi networks, it can report not only a list of them, but also the signal strength of each. We used the knowledge of this power to clarify the center of the circle in which the user is located. We began to attach imaginary springs to the centers of the observed clouds - the stronger the signal, the tighter they were. And their free ends should be connected. The point at which these springs are balanced is the refined center.

Resulting quality

First, a few words about how we evaluate the quality of our solution. As already mentioned, from users who have a GPS module in their devices, Locator receives both coordinates and a list of networks that the devices can see. To assess quality, it first determines an approximate location based only on these networks. And then checks whether the true coordinates from the user fall within the circle assumed by the Latitude.

Using this technique, we obtained the following figures:

  • for 83% of requests per day, the location was determined correctly - the GPS coordinates of the device fell into an area called Latitude
  • 14% of signals are with an error:
    • 7% - error less than 100 meters
    • 5.6% - from 100 meters to several kilometers
    • 1.4% - The locator has the wrong city
  • the remaining 3% of requests receive a “Location not found” response


Is it possible to achieve better quality? Yes. The advantage of the method is that with a certain maturity of the algorithms, it is only necessary to collect more data to determine the location more accurately. And this is quite easy, because both the number of Wi-Fi networks and the number of users of our applications are growing.

But there are technological limits:

  • if the phone reports only one GSM tower, the minimum radius will be several hundred meters in the city, and several kilometers outside the city
  • if the phone sees several towers, the center can be determined more accurately, but the radius is unlikely to be reduced
  • if a Wi-Fi network is visible, the minimum radius will be 10 meters

Computation volumes

To quickly respond to the user, you need to prepare the entire answer, or at least a significant part, in advance. Every night, a cluster based on our distributed computing system YAMR aggregates signals received up to yesterday, receiving “clouds” ready for response. At the time of the request, all that remains for the Locator is to combine them in the correct way. Thus, terabytes of “raw signals” were compressed into 1.5-2 GB of ready-made responses, which easily fit into memory. And preparing a response almost always takes 1 ms, and each server in the cluster can handle 10 thousand RPS.

And so that the duration of the daily calculation does not grow linearly with the growth of the history of GPS signals, we have achieved “additivity” of the clouds. Now it is enough to store only a few indicators for each cloud, and there is no need to re-process the entire old history every day.

Preparing a more complete answer turns out to be ineffective. If you cluster each combination of networks into a separate cloud, you get a combinatorial explosion. The volume of ready-made answers grows by several orders of magnitude, and with partial coincidence of networks, preparing an answer requires even more calculations.

Analogs

Location services without GPS, as we have already said, are not only available from Yandex. Developers can turn to a commercial provider (such as Altergeo in Russia and Skyhook Wireless in the world), or use the mobile platform or browser API.

In general, you can collect such a database in three ways:

  • drive around cities of interest in cars, scanning networks, and then periodically drive around again to update the database
  • create a mass mobile application (for example, Yandex.Maps)
  • create a mobile platform (for example, iOS or Android)
But only the developer of a location-based application has to choose between different solutions, and the user “lives” with this choice. In the absence of a unified comparison methodology, you need to pay attention to the accuracy of the determination (the “tolerance” radius and the percentage of errors) in the regions of interest.