• Download 2 GIS maps for your navigator. “2GIS” is an electronic map and directory in one smartphone. Entrance to the building, diagrams and contact information

    Do you often travel around our huge and very beautiful world? If yes, then we recommend downloading 2GIS: reference book and navigator for Android. Thanks to this application, you will never get lost and will be able to find the right place without any problems. In addition, you can open a bunch of cities not only in the country in which you live, but also beyond its borders. Many have already realized that the program is not only a reference book, but also a cool navigator that many inhabitants of our planet would like to use. Thanks to this application, you can work in a taxi without any problems, because all the streets are jammed here and it takes very little time to find them. Using the application, you can get from one point of the city to another in just a few minutes. In addition, you will find out the travel time, look up the phone number of the desired company, or even some other important information. Not every application offers such broad user functions. You can download 2GIS: reference book and navigator for Android completely free of charge and at any time. The program can be downloaded to both a mobile device and a tablet.

    Walk around any city

    The uniqueness of this program is that it does not require the Internet. You need to download the program, install it, download several maps of different cities or countries at once, and then simply select the city and the desired places. Thanks to the application, you can build the optimal route without any problems. You can get from point A to point B either by your car, on foot, or by transport. All the necessary information is provided in the application and will most likely be important to many individuals. The interesting thing is that the application provides detailed maps where all the streets, shops, parks or some other establishments are drawn. Any business centers will be presented even by floor. Who would have thought that one of the developers would think of making such a cool program. Right now you can download 2GIS: reference book and navigator for Android and start using it. The creators have included a lot of maps, so finding the right city will not be difficult for you. You can be in any country, but you will still have to use one program, because everything is here. The application turned out to be convenient, many people like it. We hope that it will definitely help you too. Try it and leave your comments about this program for Android.

    The 2GIS application now has a navigator. We have learned to “drive” along a track, voice maneuvers, automatically rearrange the route, calculate travel time, guide the user to the entrance to a building or organization, taking into account fences and barriers - and all this in an honest offline environment. We have been taking traffic jams (unless they require the Internet), open bridges and closed streets into account for a long time. For now, our navigator contains the required minimum. A little later, we’ll teach it to warn about too high speeds, speed bumps and traffic cameras, set up a night mode, and make routes on toll and dirt roads optional. To use it, you need to update 2GIS on your smartphone or download it from the AppStore or Windows Store. For Android, the update is released gradually, starting on August 22 (will be available to the entire audience by September).

    And today we’ll tell you how the 2GIS navigator predicts the position of the car and smoothly moves the arrow along the route. After all, it is the quality of guiding the user along the route that determines the ergonomics of the interface of any modern navigator, the ease of orientation on the ground and the timeliness of maneuvers.

    Most of the time, the driver of a car is forced to monitor the road, so even a quick glance at the screen of a device with a navigator program should be enough to obtain the most accurate and timely information about his own location relative to the route and surrounding objects. This seemingly simple functionality requires solving many technical problems to implement. We will consider some of them.

    GPS marker and route

    To indicate the user's location on the map, many navigators (and ours was no exception) use a special GPS marker in the form of an arrowhead or simply a triangle, which intuitively indicates the direction of movement. In addition, the marker must be clearly visible on the map, so its color is usually very different from the background, the edges are additionally outlined, etc.

    In the simplest case, you can display the device’s position on the ground by reading coordinates from a GPS sensor and placing a marker in the corresponding place on the map. Already here we are faced with the first problem - the measurement error, which even in conditions of a good signal can easily reach 20–30 meters.

    To answer the common question “Where am I?” This display method will be quite sufficient, especially if you also draw an accuracy circle around the marker with a radius equal to the error estimate. However, for navigation you need to come up with something better, because a driver moving along a city street is unlikely to be satisfied with a GPS marker located inside a neighboring house or, even worse, on some intra-block passage.

    A route built by the program to the destination point and always present in the navigation script helps solve the problem. With the help of some tricks, we can “pull” a point on the map to the route, leveling out some of the measurement error of the GPS sensor. To a first approximation, the attraction can be considered as the projection of a point onto a route line. Consideration of the nuances, as well as methods for detecting departure from the route, unfortunately, is beyond the scope of this article.

    By adopting the indicated technique of attraction, we can abstract from two-dimensional geographic coordinates (latitude-longitude or any other) and move on to a one-dimensional coordinate - a displacement relative to the beginning of the route, measured, for example, in meters. This transition simplifies both theoretical models and calculations performed on user devices.

    Displaying geolocation over time

    The discrete nature of the data received from the GPS sensor is another problem when implementing user route guidance. Ideally, coordinates are updated once per second. Let's consider several options for displaying geoposition in time and choose the most suitable one for our tasks.

    1. The simplest way is to immediately snap to the route upon receiving each new reading from the sensor and display the corresponding location on the map. Among the advantages, it is worth noting the exceptional ease of implementation, high, in a sense, accuracy (after all, here we are simply displaying satellite data without making any serious changes to them) and minimal computational complexity. The main drawback is that the marker in this case does not move across the map in the usual sense, but “teleports” from point to point. In the main navigation scenario, the camera (virtual observer is a term from the field of computer graphics) is tied to a GPS marker, so such teleportations lead to a sharp “scrolling” of the map along the route and, as a result, to disorientation of the driver, especially at high speeds, when time The car travels a considerable distance between geoposition readings. Our goal is to help the user, not confuse him, so this flaw is already enough to exclude this option from consideration.

    The only way to avoid disorientation is to move the GPS marker smoothly, without “teleportation,” which means you need to move it much more often than the geoposition readings arrive. To ensure such movement, it is necessary to somehow calculate intermediate points between real readings from the sensor and use them until the next reading is received. The specific approach to calculating these intermediate points is worth paying special attention to, as it will ultimately greatly affect the overall ergonomics of the navigator program.

    2. The second way to display the user's location is associated with the most obvious approach to generating intermediate points - interpolation between the last real GPS readings. The point is to move the marker from the penultimate sample to the last one for a certain specified time, calculating intermediate points with the required frequency using one of the known mathematical functions (the simplest option is linear interpolation). Using a navigator this way is much more convenient, but it also has disadvantages.

    One of the most harmless ones is the need to set the interpolation time in advance. Setting it to one second will only work well in the ideal case mentioned above, when that is the amount of time that will pass between GPS readings. If less time passes, it doesn’t matter, you can simply start moving from the current position to a new target. But if it’s more, the marker will have to stand still and wait for new coordinates from the sensor, although the user’s car may well be moving at this time.

    There is a more serious problem. At the moment a new sample arrives, the marker, at best, is at the previous real point. From the user's point of view, we introduce another positioning error, the magnitude of which is no less than the distance covered by the car during the time between readings. At a speed of 100 km/h, this value reaches almost 28 meters, which, coupled with a possible measurement error, makes the information provided to the user, to put it mildly, unreliable.

    We could make a huge GPS marker and block a quarter of the screen with it, carefully masking the shortcomings of the described positioning method, but going for direct forgery would be disrespectful to users and ourselves. The accuracy and timeliness of the displayed data is no less important criterion when developing a navigator than the external beauty and smoothness of movement.

    3. Taking into account the emerging requirement for positioning accuracy, it is worth noting that now we are required, shortly before the arrival of a new GPS reading, to place the marker at a point as close as possible to this new reading. That is, in essence, to look into the future, even if only for a short time. Although with the invention of the time machine things are currently looking very bad for humanity, there is still salvation for us. The movement of the car is inert, so the speed and direction of its movement cannot change instantly, and if so, we can try to predict with some accuracy where the user will be in the interval between the last position reference and the future. If we manage to ensure that the forecast error in most cases will be less than the error of the second method, then we will make the life of our navigator users a lot easier.

    This kind of forecasting in the exact sciences is called extrapolation. This is the path we will take in an attempt to develop a third method of route guidance that satisfies all the criteria listed above. Next, we will have to resort to a more formal language of presentation, since we will be talking about mathematical models.

    Route guidance with position extrapolation

    It was mentioned earlier that thanks to the attraction of the user’s geoposition to the navigation route, we can move from two-dimensional geographic coordinates to a one-dimensional coordinate - an offset relative to the beginning of the route (for brevity, we will further use the term “offset” without clarification).

    Let’s remember the data coming to us and introduce the notation for it:

    Real displacement readings obtained by pulling the GPS position to the route line;
    - arrival time of the corresponding displacement samples.
    This is where the list of input data ends. You will have to squeeze out as much useful information as possible from them.

    Ultimately, we need to build a displacement extrapolation function that will be close to the real dynamics of the car and at the same time ensure smooth movement of the GPS marker along our entire route (its length will not affect anything, since the completion of the route is processed separately, so we will conditionally consider the route infinite). To ensure good visual smoothness, the smoothness condition will be sufficient, that is, neither the position nor the speed of the marker should change abruptly. In other words, the function must be continuous along with its first derivative (hereinafter - in time) throughout the entire domain of definition.

    Let us note that each real displacement sample carries significantly new information about the movement. For example, if a car was driving uniformly for a long time, and then began to accelerate, then the navigator will be able to “feel” the acceleration only with the arrival of the next countdown. Since we cannot look into the future for any length of time, all incoming new GPS readings will, in the general case, change the behavior of the desired function, which does not allow us to specify it in one analytical expression. Instead, let's try to define the function piecewise. To do this, let's solve a simpler problem first.

    Direct piecewise extrapolation

    Let us construct a displacement extrapolation function such that after the th sample its values ​​predict the actual location of the user for a sufficient time before the arrival of the th sample. All useful data that we have is a sequence of counts up to - inclusive, along with the time of receipt of each of them.

    Remembering about finite differences, we note that we have the opportunity to estimate the speed of the car at the th moment of time by dividing the length of the segment between the last and penultimate displacement by the corresponding time interval:


    , where is the speed estimate from the samples, and is the derivative of the extrapolation function that we are trying to construct.

    Similarly for higher order derivatives - acceleration, jerk, etc.:


    As can be seen from these formulas, in order to obtain an estimate of increasingly higher derivatives of the displacement, it is necessary to take into account more and more samples preceding the current one: to determine the speed, two samples are needed, for acceleration - three, for jerk - four, etc. On the one hand, the more dynamic characteristics of movement we take into account in our forecast, the greater modeling ability we will obtain; on the other hand, useful information contained in increasingly “older” readings dramatically loses relevance. For example, the fact that we were driving at a speed of 30 km/h a minute ago will not help us in any way at the current moment in time: since then we could have accelerated, slowed down, or even stopped several times. For this reason, estimates of increasingly higher derivatives of the displacement become further and further from reality; in addition, the contribution of the error in calculating a certain derivative to the general analytical model of displacement also increases with increasing order of this derivative. If so, then, starting from a certain order, the dynamic characteristics estimated using finite differences, instead of refinement, will only spoil our model.

    Based on real-world testing, it appears that jerk estimation, especially in cases of “average” GPS signal quality, is already bad enough that it does more harm than good. On the other hand, fortunately, the most common car dynamics scenarios are rest, uniform and uniform motion, described by polynomial equations of 0th, 1st and 2nd degree in time, respectively.

    It turns out that the quadratic model of uniformly variable motion will be quite sufficient for us to describe most road situations, and for it we just have enough more or less high-quality estimates of the dynamic characteristics - speed and acceleration. Remembering the school physics course, we can already roughly draw up an analytical expression for the desired extrapolation function:


    There is only one step left to take: the domain of definition begins from the moment of time, so it is more convenient to count time in calculations from the same moment.

    As a result, the function will take the form:


    A remarkable feature of this function is its smoothness over the entire domain of definition, which, as mentioned earlier, is included in the formulation of our problem.

    Now let’s take several real displacement samples from the device and try to extrapolate them at each interval (although it was determined before , at the moment the sample arrives we will immediately move on to the next function, because it has more recent data):

    Let us make a reservation that for clarity, the data was taken with a relatively low quality GPS signal, but the situation in the figure is quite real and can occur to any user.

    The smoothness of each extrapolation polynomial is clearly visible on the corresponding time interval, but the problem is that at the junctions of the intervals the general gray curve suffers discontinuities, sometimes quite noticeable.

    Let's call the magnitude of the gap at the th moment of time the extrapolation error. Indeed, it is this value that shows how inaccurate each of our forecasts is by the end of its time interval. You can calculate the error value using the following expression:


    Alas, we cannot reduce the error to zero by varying the functions themselves, because this would be equivalent to one hundred percent accuracy of vision of the future. This means that in order to solve our initial problem of constructing a single function, we will have to somehow “glue” together the piecewise extrapolation polynomials, that is, correct the errors that arise at the joints.

    Error Correction Approach

    In accordance with the notation chosen above, we can informally say that by the time a new reference arrives, we are at point , i.e. shifted relative to the real position by the amount of error accumulated by the previous extrapolation polynomial.

    On the one hand, from the point of view of compliance of the data given to the user with reality, the best way to correct the error would be to break the function at the starting point of the next polynomial, but we cannot do this, because in this case we will again “teleport” the marker on the map and disorient the driver.

    Obviously, if an instantaneous change in value is unacceptable, error correction will take some non-zero time. It is also clear that it is advisable to complete error correction before the next count arrives in order to prevent error accumulation.

    Due to the stochastic nature of the time intervals between offset readings, it is not possible to reliably determine the exact correction time. Therefore, as a first approximation, we will fix the error correction time in the form of some constant value, the specific value of which will be selected in the future experimentally.

    Speaking in informal language again, to correct an error, you need to smoothly “return” from a point to the next extrapolation polynomial - a curve.

    To describe the error correction process, it is convenient to introduce individual correction functions in such a way that at the moment of time the corresponding correction function takes on the value , and starting from the moment it becomes equal to zero:


    If we add such a correction function with the corresponding interpolation polynomial, then at key points we will provide offset error correction:
    Let us call the adjusted displacement function the sum of the extrapolation polynomial and the corresponding correction function:
    Note that thanks to the properties of the correction functions described above, we have obtained a very important property of the functions - they are already “stitched by offset”, i.e. do not tolerate breaks at points:
    The set of corrected functions could pretend to be the desired displacement model, defined at all times, if not for one circumstance: despite the absence of displacement discontinuities at points, the derivatives of this set of functions in the general case are still discontinuous.

    Specifically, we are interested in the discontinuity of the first derivative - velocity, because the initial requirements contain the condition of universal smoothness, i.e. condition of universal continuity of speed. Taking this into account, it is necessary to expand the requirements for correction functions in order to also “stitch” the derivatives of the corrected functions:


    This equation is a condition for the smoothness of the set of corrected functions. Substituting the definition of adjusted functions into both sides of the equation, we get
    We mentioned earlier that after the correction time has expired, the correction function takes zero values. Let's add one more requirement to the correction function - let its derivative also take zero values ​​after the correction time has expired:
    Then, under the assumption that the correction time is always less than the interval between samples, we can assume that the derivative of the th correction function will already be zero by the time the next sample arrives. Then, returning to the smoothness condition, we get:
    Let's express it from here:

    Note that this is an estimate of the speed made using finite differences, let's substitute it:


    The right side represents the speed extrapolation error - the difference between the speed obtained from the previous extrapolation polynomial and the “real” speed reading. Now we can put together the boundary conditions for the correction functions:
    They can be described in words like this: you need to find a correction function so that:
    • at the beginning of the correction interval, its value coincided with the displacement extrapolation error;
    • at the beginning of the correction interval, the value of its derivative coincided with the velocity extrapolation error;
    • at the end of the correction interval and further, the value of the function itself and its derivative was zero.

    Selecting an Error Correction Function

    It is worth noting that it is very difficult to obtain a single analytical expression for the correction functions that exactly satisfies the above four conditions. The problem lies in that part of the definition domain that comes after the correction time has expired - you need to achieve zero values ​​of the function and its derivative on the entire remainder of the numerical axis. To simplify the problem, we will reduce the domain of definition of the desired analytical expression of the correction function to the correction interval , and after its upper limit we will consider the value of the function and its derivative to be trivially zero (fortunately, at the program code level we have such an opportunity due to the presence of branches).

    Formally, taking into account this technique, the piecewise correction function is some expression for the correction interval and the constant 0 below, however, if the boundary conditions are met at the point, there will be no discontinuity in either the correction function itself or its first derivative. Since discontinuities of higher derivatives are not of interest to us (they will not spoil the smoothness of the desired function), in what follows we will not mention the zero “tail” of the correction function, and we will reformulate the boundary conditions in a more convenient form:


    Let us denote the speed extrapolation error by:
    Now we need to define an analytical expression for . Due to the ergonomic requirements for the program, in addition to the boundary conditions, it is necessary that the correction function have as few extremes and kinks as possible during the correction interval - so that the GPS marker does not “twitch”.

    The simplest function that meets these requirements is again a polynomial - a polynomial of the minimum possible degree in time (theoretically, among elementary functions, sine, for example, also has similar characteristics, but calculating its value is more expensive from the point of view of processor time).

    Since the boundary conditions are a system of four nontrivial equations, the minimum degree of the polynomial that provides sufficient parameterization of the correction function is the third. Considering that when constructing an analytical expression for it is more convenient to count the time from the moment of the th count (exactly the same as in the definition), the required polynomial will take the following form:


    Substituting this expression into the system of boundary conditions and solving it with respect to the constants and , we obtain the following values:
    As a result, if we define the correction functions in the described way, then the corrected functions merge into a single extrapolation function, smooth at all times. We will not give the full expression for due to its cumbersomeness.

    Note: the last inaccuracy remained in the assumption when choosing the correction time - our reasoning was based on the condition that there will always be less than the interval between readings:


    A nice feature of the constructed model is that we only need to choose in such a way that it does not exceed the average time between samples: if individual intervals are less than , then part of the error that we did not have time to correct at too short an interval will be corrected at one from the following. To do this, it will be enough to calculate the extrapolation error not from the usual extrapolation function, but from the adjusted one:
    The figure below shows an example of a graph of the final extrapolation function, built using real data:

    The formal problem is solved, the resulting curve satisfies all the specified conditions, and it looks quite nice. One could relax on this, but the features of the real world present certain difficulties for the constructed idealized system.

    Let's look at some of them in more detail, making the reservation that all the decisions made below are implemented directly in the program code outside the mathematical model.

    Adaptation of the mathematical model to real conditions

    Prohibition of marker movement in the opposite direction

    In the last graph you can see that in some cases the function begins to decrease, even when, according to real measurements, the user is driving exclusively forward along the route. This happens when our forecast greatly overestimates the speed of movement. On the other hand, in reality, a car moves in the opposite direction for only two reasons: the driver actually put the car in reverse gear and went back (a very rare case), or made a U-turn.

    In the event of a U-turn, the road situation changes significantly, which requires rebuilding the navigation route; this is a separate topic and does not fit into the scope of this article.

    If we use the results of extrapolation of the position directly, then of all the movements of the marker towards the beginning of the route, a vanishing minority will correspond to the real movement of the car in the same direction. In light of this, it was decided to completely prohibit the marker from moving backwards without changing the route, so as not to mislead users.

    Such a strict condition is difficult to describe in mathematical language, but it is relatively easy to implement in program code. To begin with, let’s take into account the discrete nature of model time - due to the peculiarities of the functioning of computers, we will, in any case, receive extrapolation results at certain selected points in time.

    If so, then it will not be difficult to ensure that the extrapolated displacement does not decrease: it is enough to compare the new obtained value with the previous one, and if the current one turns out to be smaller, then replace it with the previous one. Despite the apparent crudeness of this technique, we will not disturb the smoothness of the extrapolation function, because in order to start moving backward along a smooth function, you must first stop completely.
    In the future, the mode of operation when we replace mathematically correct values ​​with older ones in order to prevent movement back will be called the forced stop mode.

    Extrapolation errors are too large and intervals between samples are too long

    Despite the fact that we have constructed a qualitative function in a sense, sometimes extrapolation errors can reach unacceptable values. In these cases, the program should stop trying to correct errors using standard means. Another situation where extrapolated data becomes irrelevant occurs if a new offset sample does not arrive for some reason for too long - the modeling ability drops dramatically since the last sample was received. To avoid crossing the line between attempts at prediction and shameless lies, relying on a model usually costs no more than three seconds.

    For simplicity, we will call the first negative situation an uncorrectable displacement error, and the second - an uncorrectable time error.

    We can work with each of these types of errors in two ways:

    • Enter the above-mentioned forced stop mode. The advantage of this approach is that it preserves the smooth movement of the geoposition marker on the terrain map. However, the longer we are in forced stop mode, the worse we inform the user about his real location;
    • Instantly teleport the GPS marker to the last reference location. Here, on the contrary, we sacrifice ergonomics for the sake of the reliability of the information provided to the user.
    For our application, the first method was chosen, since particularly close attention is paid to the smoothness of movement.

    Prolonged forced stop mode

    Any entry into the forced stop mode is associated with the production of less accurate location data for the sake of prohibiting the reverse movement of the GPS marker. In order not to misinform the user in particularly unfavorable cases, our model is additionally endowed with the ability to interrupt the forced stop mode by “teleporting” the marker to the last real position after a specified period of time, regardless of the reason for entering the mode (mathematical result of extrapolation or uncorrectable offset/time errors) . At this moment, even the smoothness of movements has to be sacrificed for the sake of the “remnants” of accuracy.

    Conclusions

    As a result of the work done, we were able to improve route guidance so as to provide a good balance between the accuracy of the data provided and the visual ergonomics of their display. The user will feel quite comfortable, especially when high-quality data is received from the GPS sensor due to a good signal.

    The extrapolation system described can be used in other applications that use geopositioning. Where the concept of a route, and therefore a displacement relative to its beginning, does not exist, the mathematical model from a one-dimensional scalar can be generalized to a multidimensional vector one. Implementing the model itself in code is not a problem in any of the popular programming languages ​​- it only requires simple arithmetic operations.

    As for further development paths, it is worth paying attention to the measurement error in the “raw” positional data from the sensor mentioned at the beginning of the article. If we are already trying to correct the errors in our forecasting, then the fight against measurement errors is a separate layer of work for the future, difficult, but no less interesting for this. The benefits of potential success in this field for the accuracy of the displayed information cannot be overestimated.

    Tags: Add tags

    2GIS is one of the best applications for Android, providing convenient geographical maps with contact information of companies and transport links. Many countries around the world are supported, including even small cities and towns, and the mobile program works offline.

    The application will help you if you want to build the most optimal route in an unfamiliar city, and we also recommend download 2GIS as a good reference book with phone numbers, addresses and opening hours of companies or organizations. To use the tool without an Internet connection, simply pre-load the desired location into the database. You can do this directly from the application, you will not experience any difficulties. In addition, the mobile program not only has a clear, user-friendly interface, it also contains high-quality and detailed maps with clearly presented visual information. And you will be able to plot the route both by personal car and on foot, and as an addition - a public transport schedule.

    Unique features of the mobile program:

  • Accessible, clear maps with detailed information about the city’s companies without an Internet connection: opening hours, contacts, addresses and photos
  • Location of public organizations nearby: cafes, restaurants, cinemas, shops, taxis, etc.
  • Building routes taking into account any type of transport: metro, trolleybus, bus, train and even a river bus, or just a walking route
  • Navigation through the largest shopping centers and supermarkets: the diagram shows floor plans, toilets, food areas and other important information
  • Data from your service organizations: providers, hospitals, housing offices, etc.

    Thus, you will never get lost not only somewhere on the street, miss your stop or miss your turn, but you will also be able to perfectly navigate inside buildings. That's why 2GIS for Android It is considered the best navigator and explorer, capable of eclipsing all other applications of this kind. The tool can understand queries literally, you can even enter popular names, the application will still find what you need.

  • 2GIS for Android is an unrivaled directory of organizations, roads and routes of your city!

    You can download 2GIS for Android for free with maps using the link below as a direct APK file or through the Google store. After installing the application, select the desired city and download the map.

    2GIS for Android contains information about 273 cities and 9.2 thousand settlements located in nine countries. In such a vast information space you will find information about almost seven million buildings and even more organizations, cafes, restaurants, gas stations, cinemas and other types of establishments.

    Any user can leave a review for each enterprise, making it easier for other visitors to make a choice and form an opinion about the place.

    To make it easier to find the desired location, Duplicate GIS on Android contains photographs of buildings where companies, food places or other types of companies are located. Some buildings are specially created by technicians in 3D. The posted information about companies is absolutely free, you can find out not only the location address, but also opening hours (and whether this establishment is currently open), contact phone number, view images or look through reviews.

    Main features:

    • Detailed directory of organizations;
    • Ability to create routes;
    • There is a library of photographs of buildings, reviews of most companies.

    2GIS for Android is a kind of trading platform that helps sellers and buyers find each other. Development specialists regularly update and update the database of hosted and new organizations, select and find the necessary companies even for the most ornate requests, and plot routes in various ways so that the buyer chooses the optimal path for him.

    The maps themselves from 2GIS for Android deserve special attention: this is the painstaking work of the team, which was embodied in the most detailed and detailed map of cities, where all the details that may be useful are drawn to the smallest detail.

    When the desired object is found, Duplicate GIS on Android will not only offer the best route and a list of possible options for getting to the place, but will also report traffic jams and suggest a detour if you are by car; or choose the fastest type of public transport.

    With 2GIS for Android you will feel calm and confident in any city. If you are roaming, then download maps of the city where you are going in advance and use them for free and without problems, without using mobile traffic or even Wi-Fi. This is a very convenient, modern and pleasing to the eye application.

    Small functional navigator 2 GIS.
    In everyday life, a convenient and portable car navigator is not at all uncommon. And now the developers are presenting its virtual analogue, which is easy to install on a home computer, laptop, gadget. The program with navigator functions is called 2GIS.

    In addition to the endless city routes posted here, the smart utility will offer upon request a whole list of companies, firms, organizations, retail supermarkets, show the location of street ATMs, and indicate the addresses of the nearest pharmacies.

    The base of the smart utility includes most cities of the CIS, as well as countries of Old Europe popular for tourists. In fact, the PC user has a real virtual guide in front of him, capable of informing the travel fan in detail about the local attractions of any locality. The tourist will save valuable time by quickly receiving the useful information he needs at the moment.

    The navigator program works on Windows 7, 8, 10, XP. A special feature of the utility is the constant monthly updating of area maps.
    It remains to add - You can download 2 GIS for free in the Russian version on our website right now via a direct link.