Check out the video, but if you want to read more about the program's features , then this guide is for you
the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

Based on the site data: Selection and Use of Personal GPS Navigators (gps-lib.ru)

Preface
As a long-time user of the map editor GPSMapEdit and a proponent of creating custom vector maps, I am excited to introduce you to some of the basics of working with this powerful program. In this guide, you will find an overview of the available tools, the basic principles of operation, some theoretical aspects, and useful tips for working with the program. I have gained this knowledge through several years of experience using the Toutmap application—an excellent tool for utilizing OSM maps and adding custom roads and points of interest (POIs).

This guide will begin by exploring the key features of the GPSMapEdit map editor. Towards the end, I'll cover how to prepare maps for uploading to the application. Let's first clarify what tasks the GPSMapEdit program is designed to perform.

Purpose of the Guide
The guide aims to:

Visually demonstrate the stages of creating custom vector maps.
Popularize the creation of custom vector maps for various navigation programs (Garmin, Toutmap, Garmin BaseCamp/MapSource, Google Earth, Lowrance MapCreate, etc.).
Introduction to GPSMapEdit
GPSMapEdit is designed for previewing, creating, and editing vector maps in multiple cartographic formats. You can find more information about the program and its latest version at geopainting.com. The program supports importing and converting GPS tracks, waypoints, and routes from various formats:

Supported GPS Formats: GPX, KML/KMZ, Garmin, iGO 8, iGO Primo, Lowrance, Magellan, OziExplorer, ALAN, Holux.
Supported Raster and Other Formats: ECW, MrSID, JPEG 2000, JPG, BMP, GIF, PNG, TIFF, EXIF, Google Maps, ESRI Shapefile, MapInfo MIF/MID, CSV, XLS, DBF, MDB.
Now, let's get started.

First Launch
Before launching the program, you must have an oriented map (rectified image) in the OziExplorer (MAP) format or any pre-existing map  in KML, SHP, IMG, or MP formats. In this guide, we will create a map from scratch using an oriented map file.

Run the GPSMapEdit program and open a linked map file (File > Open) with a .MAP extension.
Explore the data types that can be loaded into the program. For instance, user waypoints saved via OziExplorer or other programs (KML .WPT), tracks (.PLT, .MPS), and all types of files for the MapSource program, including map files in the .IMG format (SHP, MIF).
You should now have enough data to start creating your own map. On a computer with 16GB of RAM, an 800MB map file typically opens within a minute.

Preparing Maps
To begin, you may need georeferenced (rectified image) maps from programs like OziExplorer, GlobalMapper, or the free QGIS editor (with the GDAL module), and the raster maps or images themselves can be obtained using the SASPLANET program. https://sasplanet.geojamal.com/

For maps in MP format (native to GPSMapEdit), you can download pre-prepared maps from sites like Stadiamark.com, which, in turn, are often exported from the Geofabrik Download Server, where unprocessed OSM maps are stored in shapefile or .osm.pbf / .osm.bz2 formats for QGIS.

When opening GPSMapEdit, pay attention to the information in the lower part of the screen:

If you see a * symbol next to the "Ready" message, it means there were errors during map loading. You can view these errors in the log (File > Message Log). The errors don't necessarily prevent further work; they might indicate issues like unsupported bitmap files or missing objects. If errors occur, review them and try to correct them.
Understanding Map Detail Levels
GPSMapEdit allows for different levels of map detail, which helps to optimize the amount of information displayed depending on the zoom level. Each level can be thought of as a separate layer on the map, with varying amounts of detail.

Example of Map Detail Levels
Level of Detail #3: Displays at scales from 8km to 2km. At this scale, smaller objects such as heights, streams, and trails are omitted to avoid clutter and ensure performance.

Level of Detail #2: Displays at scales from 1.2km to 500m, focusing on details needed for navigating to a target, such as obstacles, swamps, and elevation changes.

Level of Detail #1: Displays at scales from 300m to 5m, highlighting very specific areas such as fishing spots, paths, or other localized points of interest.

Each level provides a different amount of detail to optimize the map's display and performance based on the current zoom level.

Thus, each level of detail, roughly speaking, is a completely independent map.

Configuring Map Properties
Open the Map Properties window (File > Map Properties). You'll see multiple tabs:
Header: Set map types, ID, name, copyright information, and more.
Levels: Configure detail levels, specifying at what scales each level should be visible.
Bounds: Displays the coordinates of the map's boundaries.
Statistics: Provides detailed statistics on all created objects, including points, lines, and polygons.
Source: Displays the map header data in "Polish format". Always save your maps in this format as it is the source code of your map.
After completing these settings, you can proceed to configure additional features of the program under Tools > Options.

Conclusion
This guide provides an overview of creating and managing vector maps using GPSMapEdit, covering essential topics such as the initial setup, configuring map properties, understanding detail levels, and using available tools effectively. By following these steps, you will be able to create customized maps suited to your specific needs and preferences.

 

the original OSM route is in red, blue after simplification

Configuring Map Properties
Open the Map Properties window (File > Map Properties). You'll see multiple tabs:
Header: Set map types, ID, name, copyright information, and more.
Levels: Configure detail levels, specifying at what scales each level should be visible.
Bounds: Displays the coordinates of the map's boundaries.
Statistics: Provides detailed statistics on all created objects, including points, lines, and polygons.
Source: Displays the map header data in "Polish format". Always save your maps in this format as it is the source code of your map.
After completing these settings, you can proceed to configure additional features of the program under Tools > Options.

Conclusion
This guide provides an overview of creating and managing vector maps using GPSMapEdit, covering essential topics such as the initial setup, configuring map properties, understanding detail levels, and using available tools effectively. By following these steps, you will be able to create customized maps suited to your specific needs and preferences.

 

This window is finished. Let's see what's interesting in the next tab. It is called "Levels", which means the same levels of detail, the need for which was described in so much just above.

Detail levels (Levels).

 

the original OSM route is in red, blue after simplification

Detail levels (Levels).

Despite the fact that there are not so many input fields, these settings are among the most important. Remember what was said about the levels of detail above. This is where their formation takes place. If you have uploaded a new map, there will be no default levels. Let's create the first level of detail. To do this, click on the "Insert before" button. However, we can see that when creating the first level, for some reason we have not one, but two levels. Everything is right. The fact is that when forming detail levels, you must meet one mandatory condition : on any map, the last level must be empty. In other words, it doesn't contain any objects. A reminder honestly warns us about this - "NOTE: The last level should be empty" The program itself monitors this condition and simply does not allow creating objects at the last level. For the example, let's create three levels of detail and configure them as indicated in the example above. After clicking the "Insert before" button three times, we have, as expected, four levels. Remember that the last level (Level3) will always be empty. Only levels one (Level0) to three (Level2) will be active.
Now you need to determine at what scale objects of each of these levels of detail will be displayed in navigation system. Click twice on the level "Level2" or select it and click on the "Change" button.The "Level settings settings" window opens. There are two options to choose from in this window. The first one is called "Bits", which can be loosely translated as" Scale in navigator", and "MapSource zoom range" (Scale for the MapSource program).
Only Garmin can display levels Garmin , app , and the Tourmap app shows only the most recent level (the most detailed one).

 

 

 

the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

How can we make objects of the third level of detail on our map visible. Navigator at a scale of 8 km, but not displayed at all before that? Very simple! Choose from the values of the drop-down field "Bits" option "18 (5km-8km)" - from 5km to 8km. If we create only one such level and set the specified value for it, then it will be visible . Navigator starting from the 8km scale to the lowest possible one. It seems convenient - I made one level, set the scale to 12km or 20km, and you can always see the entire map. Despite its apparent convenience, this option is fraught with some dangers. We'll talk about them later.
Now let's set up the second level of detail. We do the same, but set the range to "21 (800m to 1.2 km)". In this way, we have limited the visibility of objects of the third level of detail to 2 km, after which there is a scale of 1.2 km, and, accordingly, they are no longer displayed in Navigator and objects located on the second level appear. For the very first level, set the scale to "23 (200m to 300m)". This will limit the display of the second level to 500m and display the first level starting from 300m to the maximum zoom level. Garmin navigators usually have Garmin maximum zoom of 5 meters.
Now let's pay attention to the level of detail that we always keep clean -Level3. Its scale, as you probably already guessed, should be smaller than the previous one. Therefore, we will set it equal to 17 (12 km).
Bounds
This window displays the coordinates of the rectangle that all objects on our map fall into. In this case, all objects created by us are considered objects, as well as attached objects - points, tracks, and raster maps.

 

 

 

the original OSM route is in red, blue after simplification

Statistics

The statistics window contains information about all the objects you created, including points, lines, and polygons. For example, in this case, you can see that there are 7 POI points, 200 lines, and 2220 polygons on the map. There are a total of 2,427 places on the map.

There are also statistics about the road graph. A road graph is created to implement the automatic route guidance function. It is described in another article.

the original OSM route is in red, blue after simplification

In the lower By types window, you can see more detailed information about existing objects. Here you can find a summary of the types and number of map items and statistics on the road graph. Let's look at what information is available here. Code defines the icon and numeric code of the object. The Kind type shows one of three types of objects: point, line, and polygon. Name Description - the name defined by the object code for this object. There are many objects that represent everything, starting with simple ones-roads, cities, bridges, buildings, and ending with unique ones - the exit to the toilet, shipwreck, golf course, military base, etc. The choice for designating different objects according to rough estimates is no less than 150-200. The richest collection of types from universal. Then there is the Count object counter, which shows how many objects with the same code exist on the map. The last field shows the size of objects.

Source
The source code window shows us all data about the map header in "Polish format". Always save all your maps in this format (File-Save As... тип the Polish format *.mp, *.txt type). This is very important! All other formats are final and are not intended for data correction. Only a map saved in Polish format can be considered the" source code " of the map.

the original OSM route is in red, blue after simplification

Extras
In this tab, you can create and edit additional commands in the Polish format. In 99.9% of cases, this feature is not required. It should be emphasized that GPSMapEdit does not erase commands that are unknown to it. Therefore, for professionals, this window can be useful in some cases.


This completes the preliminary setup of our future map and consideration of its main properties. However, we still have to configure some features of the program itself. This operation won't take us long. In order to go to these settings, select Tools - Options in the main window of the program Options. (Settings).

CONFIGURING THE PROGRAM


 Edit
In the program settings window, we can choose the cursor behavior, the color of new objects, and the line width for the objects that the map will be created for.

the original OSM route is in red, blue after simplification

Configuring the cursor behavior consists in selecting two options: move along the Snap to grid generalization grid and Stick to the nearest nodes (Stick to neigh bours neighbors). I advise you to check the boxes in the last selection field. The generalization grid divides the map field into rectangular sections of a certain size. This results in a grid. The cursor can only move along the intersections of this grid. It's small enough that it doesn't interfere with creating complex objects. The size of this grid depends on the scale of the current level of detail - the smaller the scale, the larger the grid pitch. However, it is not always necessary for the program itself to simplify the shape of objects for the generalization grid.
The sticking effect is more necessary. A simple example is that you drew a road with a line, and on one side of it there is an intersection with another road. It is almost impossible to get exactly on the road line, but if the "stick" function is set, the cursor will automatically drag itself to the nearest node, and connecting roads will be much easier.
With the color of the new objects and the line width, everything is clear. The gray color is neutral and usually clearly visible, and the width is also optimal. Usually everything stays as it is.
The choice of navigator types repeats the set discussed above.
The last option is to select the function of the Shift and Ctrl buttons. The method of multiple and selective selection of objects is configured. Here, everyone sets up as they are more familiar with. 


View of the workspace, objects, and tracks View.
Pay attention to these settings, as they can also help you get a better understanding of the map and, especially, when creating intersecting or nested objects.

the original OSM route is in red, blue after simplification

The first item (Map background color) allows us to select the background color of the workspace. If you don't like the default white color, then choose the one that suits you best.
Next (Transparent polygons view) is a very interesting setting item-choosing the appearance of transparent polygons. They are normally filled in with a certain color type and opaque. There is a switch that switches these objects to transparency mode. There are two types of transparency. They are conventionally shown in small drawings opposite their selection. As you can see, the first option provides, in addition to displaying the edge line of the polygon, also filling it with a grid. The second option is already without a grid - only a line around the perimeter. Experiment and decide what works best for you. I would like to add that you will most likely have to switch this mode periodically, depending on the complexity and composition of objects, to achieve a better perception.
 The Tracks and Routes selection items allow us to choose the color and thickness for the uploaded tracks and routes. There are no difficulties here. I'll just say that tracks are loaded by default in the color that was assigned to them in OziExplorer.
The Map info tips selection items allow you to determine what information about an object will be displayed when you hover over it. You can display information about the item type, street name, city, zip code, phone number assigned to this item, as well as a comment on it.


Units of measurement
In this window, we will be offered a choice of units for measuring distances and, heights and depths azimuth, and areas. The last choice is the representation of latitude and longitude coordinates. Choose what you like best.

the original OSM route is in red, blue after simplification

MENU SYSTEM AND TOOLS
The menu system in this program is no different from the system that you have to work with every day in completely different programs. This circumstance can be unequivocally assessed as positive. Therefore, we will immediately begin to get acquainted with the tools or commands that are executed after selecting a menu item.
Edit
I think there is no need to comment on this menu item. However, as well as the help point. All the commands in them are completely standard and are found in the vast majority of programs. Icons for all major commands are also standard. I will note only one command from the "Edit" item:
Select -There are seven options for selecting map objects: all objects, all tracks, all waypoints, all routes, all bitmap maps, all attached ones, and objects by type. If the first six selections are usually made to remove unnecessary attached objects, then the last one is used when you need to select only certain types of objects from the set of map objects. The selection window that appears after selecting this item allows you to determine the type of object (point, line, polygon) and data about the properties of the object (road, lake, lighthouse, etc.). Only those objects that are actually present on the map are available.
Map View
This menu item contains more specific commands, so let's take a closer look at them.

the original OSM route is in red, blue after simplification

Zoom In / Zoom Out  Icons - 🔍Used for zooming the map. Here you should keep in mind the  limitations of this operation.

ScaleIcon with a list of -. The command is identical to the previous one. The only difference is that you can immediately select a fixed scale from the drop-down list. Sometimes this is necessary to quickly switch from close-up to small-scale and back.

 

Full map. All objects on the map, including attached ones, are placed within the borders of the program window. Here you should note the fact that the program has one caveat - it does not update data about the area occupied by objects on the map. In other words, if you uploaded a track or points that are significantly removed from the linked map to the map, you will see them all in the window (and this is correct), but if you delete these attached tracks or points, then later using this command the program will again show everything in the old scale without taking into account the deleted objects.

 

Levels. The concept of detail levels and how they are formed were described in detail at the beginning of the article. This menu item allows you to select which of the map levels will be displayed in the program window. However, there is an option for automatic switching based on the parameters of their visibility at user-defined scales, or explicitly specifying the visibility of a particular layer, regardless of the current map scale. At the same time, keep in mind that the newly created object will be located at the level that is currently visible.

Show mini-map. The ability to display a mini -map is often useful for determining and controlling your current position on the map. In addition, you can quickly navigate using the capabilities of the minimap. To do this, simply move the cursor in the mini -map window to the area of interest on the map and click on it with the mouse. It should be noted that the mini -map window shows the same problems as with the "Full map" command.

Show Ruler Icon -. The scale ruler is an auxiliary tool that allows you to see the current map scale and approximate distances on the map.

Show Grid Icon -.  The same auxiliary tool. Serves as a rough estimate of the current map coordinates. More accurate data can be obtained in the map properties information window. Remember that the grid in GPSMapEdit is displayed in datum the WGS84 datum, and scanned maps usually have a grid in the Pulkovo42 datum, so in these cases there will be some displacement between them.

Show Labels. Icon - ab. It is used in cases when item names interfere with viewing certain sections of the map, or in other cases when their display is not required.

Transparent Polygons Icon -. This command is used if any polygon covers the required part of the raster map that is necessary for further work. For example, a polygon marking a lake completely covers an island. We discussed the options for displaying transparent polygons in the first part of the article.

Show Routing Nodes Icon -. .Road graph data is required for creating maps with automatic routing or routing. When this display mode is enabled, routing nodes become visible routing. They can have different colors and sizes: yellow means that two roads meet at this point, green - three, purple - four or more. The increased size of the node indicates that it is external, i.e. it is intended to be connected to another map in the atlas.

Show Road Classes. Icon -. . Each road must have its own weight or priority when creating a road graph. It is this priority that can be shown when you enable this feature. The priority will be shown in the appropriate color and thickness of the road line. For more information, see the article about creating maps with the ability to set routes automatically.

 Show Numbers along Roads. This menu item is only available for maps for Garmin. The fact is that Garmin does not have as such address information that can be assigned to a specific house as an address. Instead, virtual house numbering is implemented. In this case, the numbering is indicated in the nodes of the street line. If the nodes are located at the intersection of streets, then enter the ranges of house numbers that belong to this segment of the street. The numbering is separate for the left side of the street and for the right side. In the universal type, address information can be assigned directly to an object.

Show Attachments.Icon -. . Use this command when you want to see only the objects you created. It provides the most objective information about how the map will look at a given level of detail in your app. All attached files, including the bitmap, all points and tracks, will be hidden.

GPS tracking Icon -. . This feature may be useful for laptop owners. The router is a window with some current navigator readings - the number of visible satellites, coordinates, speed, and altitude. It can be used to control the display of the current position on the map and record a track.

List of Waypoints, Tracks, Routes-opens a window with information about attached files. Data is only available for waypoints, tracks, and routes.

 Attachments. The Attached Files window allows you to view, select, display on the map, hide, and display files attached to the map.

 Refresh. If you see that the objects you created on the map are not located in the appropriate order relative to each other, then try using this command. The rules for displaying map items will be discussed below.

 Go to position... (ctrl+G). This command allows you to move to a specific point on the map. The new position is set explicitly by specifying longitude and latitude.

Definition for object types

In the text of this article, we constantly operate with objects of various types - points, lines, polygons. And although you probably already understand what each of them is, it still won't be superfluous to give a definition for each of them. This will allow us to more accurately represent its internal representation in Polish format.

Point (POI)- this type of object consists essentially of a single node that has coordinates. But since this node is considered an object, it has all the properties inherent in the object - name, type, and so on.

Polyline -as a line or curve consisting of separate straight lines connected by nodes. It is described by the coordinates of these nodes. The line is always open, even if the start and end nodes have the same coordinates.

Polygon - an area item that fits within the boundaries defined by a closed line. All the space inside this line is the same object. The boundaries of this object define the coordinates of the nodes of this closed line.

It won't be superfluous to define a node as well:

Node- a point that has its own coordinates. Not to be confused with the "Point" object, since a node has no properties other than coordinates. In the " Polyline " and " Polygon " objects, it serves as a link between straight lines that define the shape of these objects.

From these definitions, you should understand that the more nodes we have in objects of the " Polyline" and " Polygon" types, the more accurately and in more detail, we will be able to describe the shape of these objects.

 

Generalize

In the process of manually creating objects, "unnecessary" nodes often appear. As an example, you can give an ordinary straight line. The best way to describe it is to use two nodes - one at the beginning and one at the end. If there are other nodes in it, then they are superfluous as they do not determine the shape. The same applies to the required accuracy of describing the object shape based on the current level of detail. If at a scale of 5 km, Navigator will draw details that are visible only at a scale of 50 m, then this will also be superfluous. 

Thus, Generalize is used to remove" extra " nodes based on the shape of the current object and the scale of the detail layer in which it is located. This allows you to display the map faster in Navigator and save memory.

 

Object allocation procedure

Before we start creating our map, we need to understand how objects are placed on it. When working with graphic objects in programs such as Adobe Photoshop, and Corel DRAW, we always had the choice of determining the display level for each object on the sheet. In other words, we could always clearly assign which of the objects is higher than the other, and which is lower. Unfortunately, you can't set such conditions in the Polish format. Therefore, there are general rules for the sequence of layer-by-layer display of vector objects when creating them and converting them to the final format. You need to know these conditions so that you don't have to complain later about the incorrect representation of individual data in the app, or even about their complete absence. There are very few of these conditions, but they are extremely important. I will list them:

1. The topmost level is always occupied by points,

2. Lines are displayed after the dots.

3. At the very bottom are polygons. 

If everything is quite simple with the first two points, then you need to understand polygons in more detail. Since there are usually quite a lot of polygons on the map, there is always a situation when they overlap and overlap each other. How will they be displayed in this case? We can definitely say the following: an object that is completely nested in another one and, accordingly, is smaller in area, is always drawn on top of the object in which it is nested. It can also be considered a rule when two objects intersect and the smaller one remains at the top.

To prevent anything unexpected from happening, avoid embedding or overlapping one polygon with another. I'll tell you how to do this in the section on working with polygons. 

 

WORKING WITH TOOLS 

 

Creating points and their properties

Let's check if everything is ready. The map file is loaded and the map header properties are set. After that, the map containing only the title is saved under some name in Polish format (File - Save as... - Polish format) to the hard disk. Everything, it seems. Let's get started!

 

We'll be the first to create points. As mentioned above, they will always be in the top layer of the map, and we will see them in any case.

The first point will be created at the height mark with the data "69". It is located in the upper right quarter of the map. I advise you to slightly approximate (Z) this area to ensure maximum "accuracy of hitting the target". To create a point, select the appropriate tool. Click on the icon ⭶ with the drop-down menu and select "Point "in it. The same effect can be obtained by pressing the "C" shortcut key several times. at the same time, the types of objects being created are cyclically searched. After that, the cursor will look like this - 🚩. Now put the center of the target in the middle of the height marker on the map and click with the left mouse button. Immediately after that, a window will appear in front of us to select the type of our first object.

the original OSM route is in red, blue after simplification

As we scroll through the column and learn more about the number of types that can be set for points, we'll choose the "Height label (in integers)"type. Its code is 0x6300. Confirm the selection by clicking "OK". In fact, you can choose any type of object. Usually, the types with the most appropriate icon are selected. However, not all points in the app will look the same as in the program window. In the near future, I want to create a table and show how different types of points are displayed in the eTrex Legend and eTrex Vista navigators, etc.
After that, the type selection window disappears, and we see an empty field for entering a name next to our new point. Since this is a height marker, its name will correspond to the value indicated on the map - 69m.

the original OSM route is in red, blue after simplification

Later, when we upload the map to the app, we will always be able to see its name, which means we will always know what height this mark corresponds to. It will be the same for all map items. If the item has a name, it will be present on the map along with the item.

Now let's imagine that we needed to change something in the properties of an already created point. To do this, select the object selection tool- or (S). Then you can proceed in different ways. The easiest way is to double-click on the point whose properties we want to change. In the window that opens, we can see and change all the properties of this point - type and name. In addition, if necessary, we can enter a comment for this point. As a keepsake, so to speak.

the original OSM route is in red, blue after simplification

In addition, there is additional information for this map item. There are no special difficulties here. These windows are most often used as information windows. Whenever possible, but not in this article, I will describe some of the additional features when describing object properties. However, they don't apply to points. I would like to note that in the window showing data about the "Source" object, the correct information, i.e. the description of the object in Polish format, will appear only after saving the map with the already created object.

Another way to change properties will allow you to go straight to the window for changing either the name or type. To do this, select (S) an object, right-click on it, and in the "Modify" drop-down menu, select the desired line - name (Label) or Type. After that, you will be taken to one of the windows for changing these parameters. But in my opinion, the first option is easier and faster.

Moving our points around the map is not difficult. Select (S) a point and drag it to a new location.  Everything!

Now let's continue creating the remaining points. To do this, you can zoom out of the map (Z) or immediately drag (D) or right mouse button) the map to a new point. Then the creation process is repeated. I'll add a few more points to demonstrate. Let these be points for crossing the stream, parking lots, and huts. Here is a part of the map with an almost transparent raster map for clarity.

the original OSM route is in red, blue after simplification

Here, elevation points do not contain names, but only have an ordinal number. This is a specific feature of height points. All other points are visible with the names that I set for them. For clarity, I have assigned the icon " golf " for crossing a stream –Perehod / cross, "Camping " for a place of rest- Koster/ fire, and "Museum" for a hut- Izba / cottage. You can also choose a custom type for your objects. In the future, I will change the height points to the type of any locality. That way I can see them better.

This is the end of the point section. It should be noted that the principles of creating and editing objects are basically the same, so in the following chapters, so as not to repeat myself, I will skip some of the details that we have already discussed.

 

Working with lines is already more interesting. Let's try creating a railway on our map.

Before we start, make sure that we are on the most detailed layer and that the map zoom allows us to see all the details of the area we need to draw. To create a line, select the appropriate tool. To do this, select "Polyline" from the drop-down menu. The cursor will look like this -.

Put the crosshair at the beginning of the line, click the left mouse button and move the cursor slightly. We can see that a node has formed in the place where we placed the cursor before clicking the mouse, but a straight line runs behind the cursor from this node. All we need now is to accurately circle the railway line by clicking the mouse button at the bend points. If the entire line doesn't fit in the window, just move the cursor to the scroll bars, slide where you want, and continue creating. You can use the scroll wheel on the mouse. When everything is done, you need to press "Enter". After that, the object type selection window will appear. In appearance, it seems that everything in this window is the same as in the type selection window for objects of the "Point" type. But if you pay attention to the types themselves, you will find that they have been completely updated - lines and dots should represent different objects. Now select the appropriate type, for example, "Highway main" and give a name to the new item. Temporarily disable the display of attached objects and see what you've got. 

Now it's time to take a closer look at the node management tool -. Let's select (M) it and mark our new object. After that, all its nodes will be visible. You can adjust the nodes as follows. After selecting an object, each visible node can be moved randomly with the mouse. If you move the cursor to the space between nodes and click the right mouse button, you can see the action selection field:

the original OSM route is in red, blue after simplification

These items mean:

Add a node at the specified location (Add point here). No comments.

Change the direction of the points (Reverse points). It is used if the object's properties specify a direction for it. It is used in objects of the river, stream, or road type. I do not know the real benefits of using this feature. Apparently, this is for other navigators who can choose the route of movement along the streets of cities.

Generalize points. See above.

Points properties. No comments.

If you right-click the bears on the node itself, we see a slightly different selection:

the original OSM route is in red, blue after simplification

Here are two new items:

Delete points. We are talking about a dedicated node.

Split polyline. The selected line is divided into two parts at the location where the specified node is located. After that, two separate objects of the same type are formed.

You can perform the reverse operation - merge - by selecting the object selection tool (S), selecting two or more lines, right-clicking, and selecting theю выбрать операцию Join objects operation in the menu that appears. This also applies to polygons.

Now you can finish all the remaining line objects. Let's see what happened. Only the enlarged fragment is shown here.

the original OSM route is in red, blue after simplification

Creating polygons

You should start by creating the smallest objects in terms of area. This is so that large polygons do not overlap the underlying details of the raster map. Select the polygon creation tool - then "Polygon". Now the cursor is like this -. Creating polygons is almost exactly the same as creating lines. The only difference is that the line defining the polygon boundaries is closed to the initial node. All operations for defining types, names, and other properties are similar in many ways, to say the least. Just want to say that it is better to create large polygons in parts, and then combine them.

In my opinion, everything here is determined by practice. Each time, you will be able to determine the sequence of creating polygons more accurately and correctly, taking into account their location relative to each other. Now I would like to focus on the most important question - how to exclude overlapping and nesting of objects. For clarity, let's analyze a forest area with a lake. For example, like this:

the original OSM route is in red, blue after simplification

First of all, we will draw two large polygons - a woodland and a swamp. The edges of these items are marked on the map with a certain margin of error. The refore, in this case, small overlaps are quite acceptable.

the original OSM route is in red, blue after simplification

Enabling polygon transparency (T). Creating a lake. We apply node optimization. This is necessary so that in the future we will not have gaps at the edges. And since optimization is most likely to be performed in one way or another, it is better if it happens at this stage.

the original OSM route is in red, blue after simplification

Now the lake lies on top of the forest area and is a nested object. This does not suit us in any way. To avoid this, follow exactly what I describe below. At the beginning, select the lake and copy it to the clipboard. Let it remain there for now. Then first select the forest area and hold down Shift to select our lake. Both objects will be selected. Right - click on them and select «Join objects" in the selection field objects. You will get a "hole".

the original OSM route is in red, blue after simplification

If you select a lake first, and then an array, you will get the same result, but the object type will change to the one that we selected first. You'll have to change it to the original one. 

After all this, we will only need to paste our lake back from the clipboard. 

the original OSM route is in red, blue after simplification

It will turn out the same as in the previous picture with the lake. However, in the latter case, we no longer have nested objects. This option will be displayed correctly in any case, even in the most unfavorable one. The method described above is quite simple and versatile.

As a result of our work, a vector map similar to this one should appear on a raster basis:

the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

Here, surprisingly, I want to finish describing the process of creating objects. Don't be embarrassed if something becomes unclear to you. Only those who don't do anything don't have any questions. I have tried to give only the basics of this process. I believe that a person who understands the general methodology of this process will determine for himself how to organize the process itself, what exactly and in what sequence he needs to do to achieve a satisfactory result. 

 

It's time to remember that everything. what we have just done is located in only one, the lowest, layer. The first layer (Level0) is fully decorated. Now our task will be to distribute objects in layers. To make sure that the second layer is empty, just select it in the "View - Levels" menu or

As we agreed at the very beginning, we have only two layers. Before we start, let's define for ourselves what exactly will be visible in the second layer. There is no point in transferring all objects from the first one to the second one. At the scale at which it will be visible, it is enough to roughly estimate its current position to choose the direction of movement. Therefore, we copy only our points (without heights), a railway, a forest area with swamps, large lakes, a river, and a locality. Accordingly, small lakes, elevation data, isobaths, and clearings will disappear. 

In fact, you can independently draw whatever you want in different layers. It's like two separate sheets of paper - you can draw a circle on one, and a square on the other. Everything is in your hands. However, as a rule, layers are created based on the same terrain map. Therefore, the easiest way to copy some of the finished objects to the desired level is to draw all the objects in one layer and avoid re-creating the same one in other layers.

You can't do anything about it by simply copying and pasting it. Personally, I know three ways to distribute objects in layers. 

Let's start with the first one. Double-click on the object that will be present in both layers at the same time. The standard property editing window appears. We are currently interested in the "Elements" tab.

the original OSM route is in red, blue after simplification

It contains an item for determining to which layer this object will be visible - "All elements are extended to levels up to:". In the selection field, enter the number of the layer to copy the object to. Let me remind you that the first layer has the number-0. Accordingly, the second layer will be - 1, the third-2, etc. The same effect will be achieved if we right-click on the object and select "Modify - Extend all elements up to level" in the menu that appears. And this method, in my opinion, is the best. Because this way we can select several objects of any type at once and place them on the layer we need. There is one caveat, though. With this method, when copying from the most detailed layer to a coarser one, the element is automatically optimized. It is coarsened in smaller-scale layers. This is basically necessary for lines and polygons. However, if you delete an element in one layer, it will automatically be deleted in all layers. As a rule, this is "not bad", but it is better to warn about this immediately.

The second method. In the window shown above, select the "Copy..." button. The following window will appear:

the original OSM route is in red, blue after simplification

Note the levels at which our object should be visible. As a rule, map creation starts at the very first level. Therefore, in this case, there is no need to mark the first layer (Level0). In this case, we only work with one object.

The third method. If you suddenly need to put all the objects on another layer at once, you can do it as described below.

Let's say you have a map with two active layers (three in total: Level0=22, Level1=20, Level3=17 (empty)). You draw everything in the first layer (Level0=22). You are saved. Then (via "Save as", add, let's say Level1) create a second file with a different name. Go to "File-Map properties-Levels" and add a layer. Assign it the parameter Level0=22. Your map layer automatically became the second layer (Level1). Assign it the parameter Level1=20. Remove the penultimate layer because it is superfluous. You are saved. Then use "File-Add" to add your first file and get a file with the map in two full layers.

Here are two drawings with what I got. The first with the first layer, the second with the second.

the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

Now it's time to convert our map using cGPSMapper (File-Export - Garmin IMG/cGPSMapper), upload the resulting map to the GPS navigator using MapSend and see how it looks there. 

the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

It looks pretty good. Here we see only the first, most detailed layer. The first drawing shows the entire map at a scale of 1.2 m, while the second one shows a fragment at a scale of 500 m. You can see that I changed the height type in (it was "height", it became "locality"). You can't see the dots just because I set the middle level for displaying map details. This can be easily corrected in the Navigator settings.
 
    Working with attached objects
Finally, let's see what we can do with the attached objects. First, these items, in the form of waypoints and tracks, help you create a map. Since they accurately mark the actual location of any parts of the area, they can be used to position any parts of our map very accurately. If you repeatedly visit a certain area, then you accumulate a large amount of data about каких-тоcertain places. This data will help you adjust a ready-made map or create a new one. Many of the maps used in our region were created in the 60s and 70s. During this time, a lot of things on them have undergone major changes. In each region, this was expressed in its own way. 
The GPSMapEdit program has one great feature. This is its ability to convert app points to points accepted in Polish format and tracks to lines and polygons. This allows us to instantly get vector objects that are completely identical to the original ones. For example, take a forest path that we often have to walk on. As a rule, such trails have a very complex shape and it is quite difficult to draw it manually. But if we right-click on the loaded track of this path and select "Convert to-Polyline...", we immediately get a regular "Line" type object. All that remains is to set the desired properties. And you don't need to carefully circle anything. Tracks can also be converted to polygons. For example, I used this opportunity when I needed to know the exact shape of the lake by the summer. In the spring, since there was nothing much to do, I went around телефономthe edge of the lake with my phone {1} and got a track that was completely identical to the coastal edge. After uploading it to GPSMapEdit, I simply converted it to a polygon and assigned it all the necessary attributes. It turned out to be much more accurate than what was drawn on the map.
{1} Note: The lake was probably in a flood period, because it was easier to use satellite images
 
    Favorites
The Favorites menu contains only two items-add and delete files to and from Favorites.

Tools
This menu item is undoubtedly the most important. Therefore, we will focus on it in more detail. Let me remind you once again about the desirability of using quick access to tools using accelerators. In this case, we don't even use combinations, but just one button with a specific symbol, which is even more convenient. The expanded tools menu looks like this:

the original OSM route is in red, blue after simplification

Drag Map. Icon -. If the current map zoom does not allow you to see the entire map, then you can use this tool to move the visible part of the map. This is much faster than using scrolling. To do this, after selecting this tool, simply drag the map across the screen in the desired direction with the left mouse button pressed. Another alternative is to right-click (in any mode).

 

Zoom. Icon -. When you select a tool, you can use the mouse to zoom in on the map. Left-click brings the map closer, and right-click moves it further away. By holding down the left mouse button, you can outline only the desired map fragment, which must be enlarged to the size of the program's working field.

 

Select Objects. Icon -. One of the main tools. You need to select objects to determine their properties, transform nodes, move them, and in many other cases. It is possible to select multiple objects. To do this, holddown the Shift key and mark them sequentially (depending on the settings, maybe Ctrl).

 

Edit Nodes. Icon -. Since objects of the line and polygon types consist of separate straight lines connected by nodes, this tool allows you to adjust the position, delete and add nodes in existing objects of these types. It is used very often for many different operations.

 

Create Object. Icon with a list of -. This tool allows you to create all types of objects - points, lines, and polygons. You will learn more about working with this tool in the video

 

Trim. Icon -. Usually, you need to crop the map at the final stage of map creation, when you need to trim all unnecessary parts of objects that protrude beyond the required area. You can only crop the map by selecting a rectangle and then clicking the right mouse button. At the same time, everything that remains outside the borders of this selection is cut off.

 

Transform Icon with the list - . You can apply three types of correction (transformation) - shift, affine, and quadratic. The correction affects all vector map objects. Each transformation has its own characteristics. Below are the most general data for each of them.

 

Shift. This operation involves the general movement of map objects in the entire plane in a certain direction and distance. Therefore, in this case, a choice is given for only one pair of points to move. The first point marks the current position of the selected map fragment, and the second-the target position.

 

Affine is a concept from linear algebra that denotes arbitrary linear transformations of coordinates. Special cases are shear, displacement, rotation, compression, or stretching in various directions. Applying the affine transform to maps can significantly improve their accuracy in some cases. In this case, we can already use three pairs of points.

 

Quadratic Further development of the correction system led to the quadratic transformation. Here we already have six pairs of points. Although this type of transformation is the most accurate, it is also very demanding on the location of control points. They should cover the entire area of the map. 

 

Test Routing Grapf Icon - The most important feature for those who create maps with the ability to set routes automatically. Allows you to see how the route layout will work directly in the editor.

 

Generalize. When creating objects manually, there is often a situation where the nodes in the created object are not optimally located. This function, based on the location of nodes relative to each other and the generalization grid of this level of detail, where the object is located, reduces the number of nodes to the required level. Generalization is performed immediately with all objects at all levels. Its goal is to reduce the amount of information for faster display of information on the map and, accordingly, reduce the size of the map file. An example of this whole process will be discussed below.

 

Join per-Level Objects. In the Polish format, you can define objects that consist of several elements, including those distributed over different layers of detail, rather than setting a separate object for each layer. This allows you to treat the object as a single unit: the user can move, rename, change the type, delete, etc. this object at all levels at once. Therefore, this function is intended for combining objects that are similar to each other, distributed over different layers of detail, into a single object consisting of several elements. This function has almost no real application.

 

 Split Object by Levels. This function is the opposite of the previous one. It separates identical objects at different levels of detail.

 

 Remove Object Dublicates. In the process of creating a large number of objects, determining their characteristics and properties, sometimes objects appear (not themselves, of course) that repeat each other. They take up a certain amount of memory space. This command deletes the resulting copies of objects.

 

Convert Labels.... Many items on the map, such as rivers, lakes, streams, and roads, have their own names. To display all of them in the same style, you can use this command. You can applyfive name display styles 

 

Merge Inner Poligons. It is used to reduce the number of multi-element objects when one element is completely nested in the second. This option will be discussed later.

Slice All Objects... You can use this command to cut all objects on the map into parts. The grid used for slicing is set in degrees. In fact, this is a copy of the slicing function through the definition of TRE size.

 

Split Map to Files... The map is cut into chunks and saved as separate files. The division is possible in accordance with the generally accepted map nomenclature and is arbitrary. This feature is only available in the registered version of the program.

 

Verify Map выполняетсяchecks the map for several attributes. Moreover, when errors are detected, they are shown on the map.

polygons for self-intersections-self-intersections are dangerous because in some cases they can distort the shape of the object after slicing.

Check routable polylines for self-intersection -I can't self-intersect road lines in the Garmin specification . In this case, there is a possibility that the route will be set incorrectly.

Find misalignet routing graph nodes - find mismatched nodes in the road graph.

Find too close nodes (<5.4 m) - according to the Garmin specification, road graph nodes cannot be closer than 5.4 m apart. In this case, they must either be further apart or have the same coordinates.

 Generate Routing Nodes. Automatic creation of a road graph. You can create a road graph only for road and street lines. Nodes of the road graph are considered places where nodes of different roads have identical or closely located nodes within two nodes of the generalization grid.

Remove Routing Nodes Completely deletes data about the road graph.

Clear External Nodes- all nodes in the road graph lose the external node attribute.

In this article, we will discuss how to create maps that support automatic routing. But almost everything that will be said will equally concern the creation of maps with auto-scrolling for Garmin receivers. In this part of the article, I will try to reveal most of the frequently encountered questions about creating maps that support automatic routing.

Initial requirements for the map.

 

Type

Name

Garmin

OSM

1.

0x00

Road

-

+

2.

0x01

Highway

++

+

3.

0x02

Main Highway

++

+

4.

0x03

Other Country Roads

++

+

5.

0x04

City Highway

++

+

6.

0x05

Street

++

+

7.

0x06

Street

++

+

8.

0x07

Pereulok, proezd

++

+

9.

0x08

Inclined exit with overpasses

++

+

10.

0x09

Inclined high-speed exit from the overpass

++

+

11.

0x0a

Country road

++

+

12.

0x0b

Road interchange

++

+

13.

0x0c

Roundabout

++

+

15.

0x1a

Ferry

-

+

16.

0x1b

Ferry

-

+

17.

0x16

Alley, trail

++

+

18.

0x42

0x42 Unpaved road

-

+

19.

0x43

Tunnel

-

+

20.

0x48

Clearing

-

+

21.

0x49

Lane

-

+

Now let's move on to one of the most important operations of preparing a map before creating a road graph : correctly connecting road line nodes at intersections. One simple rule to remember here is that road graph nodes (more on this later) can only be created at matching road line nodes. Nodes that have the same coordinates or are located at a distance less than half the step of the current generalization grid are considered to match. Another serious point is the restriction on self-intersection of lines. Moreover, a self-intersection is considered to be the case when the beginning and end of the line are in the same coordinates. This is often the case, for example, when displaying circular motion rings. In this case, use the "Split Polyline" tool to split such a line into two parts Split Polyline.

 

Examples of self-intersections:

the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

Therefore, when creating roads, it is best to enable the "Stick to neighbors" function. In this mode, when you zoom in, the cursor will position itself on the nearest node of a neighboring object.

 To fully understand the map, you must clearly distinguish roads by their intended purpose. In other words, you should not assign street types intended for cities to country roads. And vice versa. This will allow you to automate the process of creating a road graph to some extent, since the GPSMapEdit editor allows you to perform this operation.

What else can I mention? First of all, you need to carefully analyze the map's road network and try to imagine how routes should be laid along particularly difficult road sections. Special attention should be paid to interchanges, multi-level roads, roads divided into parts by a lawn or fence, and so on. Everything can be fixed during debugging of the road graph, but it is better to anticipate some situations in advance. But, as you know, knowledge comes with experience. In this article, I will try to provide basic information on the principles of creating a road graph in the GPSMapEdit map editor.

Before we start, we need to understand what the road graph data consists of.

 

 

As noted above, you can only create road graph nodes if there are two or more nodes of different lines in the same coordinates. Before creating road graph nodes, enable a special type of map display - Show Routing Nodes. In this case, you can see which nodes are connected and which are not yet connected. Moreover, the number of docked nodes can be estimated by color. Also, the color and size of the road graph nodes will show some other characteristics.

#

View

Description

1

Error in forming a road graph nodes. It most often appears after moving objects with the road graph already created. In this case, you need to move the nodes themselves, not the road lines.

2

A final node in the road graph that doesn't intersect with other road segments, or is simply a dead end. Required for all roads without intersections. Otherwise, the route will not be automatically laid along these sections.

3

External node of the road graph. A sign of an external road graph node is that it has an increased size compared to the normal one, and такжеthat it is rotated 45 degrees relative to the normal road graph nodes. The color of a road graph node corresponds to the number of intersections with roads. In this case, it belongs to a road that doesn't intersect with other roads.

4

Intersection of two road segments. 

5

Intersection of three road segments.

5

Intersection of four road segments.

6

Intersecting four or more road segments.

7

Indicates a road graph node that has turn restriction attributes. In this case, it is a node in the road graph where four road segments meet and has turn restrictions.

Note: The road graph nodes are tripled in size for clarity.

 

To manually create a road graph node, do the following:

1. Select the tool-Edit Nodes.

2. Move the cursor to the intersection of roads with matching line nodes.

3. Right-click.

4. In the context menu, select-Connect to Nearest Nodes.

After that (when the mode is enabled Show Routing Nodes) a special road graph node label will appear at the location of the selected road intersection. You can view the properties of such a node in the Node Properties window Properties (Routing tab). This will indicate whether the line node belongs to a road graph node (This node is a routing graph node), the road graph node number (ID), and whether this node is an external node. The "Turn restrictions" window that is also present here restrictions will be discussed below.

the original OSM route is in red, blue after simplification

Keep in mind that automatic routing along a particular road will only be possible if the starting and ending points of the road line are marked as participating in routing. To do this, check the box "This node is routing graph node" in the properties of these nodes. An interesting feature of a road graph node that is located on a road line and is not connected to any of the other roads is that this is a sign for the possibility of U-turns at this point. Otherwise, the U-turn on the route will go through the nearest node in the road graph.

Now let's talk about the so-called external nodes of the road graph. If normal road graph nodes operate only at the most detailed level of detail on a single map, then external road graph nodes allow the program to create routes on several maps at once. In this case, it is enough for the program to detect two or more road graph nodes on different maps with the same coordinates and mark them as external road graph nodes. In this case, the route will continue from one map to another. This rule applies to maps combined in the atlas. If there are more than two external nodes in the road graph, then the route will be drawn on the map that has a more detailed level of detail and data about the road graph. You can designate a road graph node as an external one by selecting "Is external node". External road graph nodes are highlighted on the map with a slightly larger size (see the table above). 

If the "Connect to Nearest Nodes" option is disabled in the context menu, it means that there are no two or more nodes of different lines in the specified location that have the same coordinates or distance between them, and they are located further than half the step of the generalization grid. In this case, either create a line node in the appropriate location (Add Nodes) or move (Edit Nodes) the nearest road line node to the coordinates of the node to connect to.

It is also possible to break the link at a road graph node. To do this, select "Disconnect Nodes" in the context menu. After connecting the line nodes to a single road graph node, all the line nodes connected in this road graph node will move when moving. This simplifies the process of further updating the map's road network. 


Road classes and traffic restrictions

Road classes determine the road's status relative to each other. Together with the speed limit data, these parameters allow you to flexibly manage the route layout options. For example, if there are two roads with the same characteristics but different road classes, then the route will follow the road with the highest road class (this behavior is additionally regulated by the program settings). You can select a road class in the Object Properties window Object Properties on the "Routing" tab. Parameters are set via the "Route class" drop-down menu.

the original OSM route is in red, blue after simplification

There are a total of 5 gradations of road status:

#

Road status

Line color in Road class display mode

Affiliation

1

0

Street, alley, Country road, path

2

1

Major road, roundabout

3

2

Central Street, Other Country roads

4

3

Main Highway

5

4

Motorway, Exit from the road

Note: ВThis example of lines uses a road with a speed limit of up to 90 km / h (see below).

 

The meaning of road status becomes clear as soon as we present the distribution of traffic flows. центральным дорогамTraffic is more active on central roads. They have better coverage, more stripes. Therefore, it is more comfortable to move along such roads than on other smaller ones. Therefore, the route is laid based on driving on a more comfortable road. And this criterion is precisely the data on the status of roads. The main criterion for choosing the road status can only be knowledge of the actual situation on this road. Sometimes, for various reasons, a small road turns out to be better for driving than a larger one that goes next to it. If the road is unfamiliar, then it is best to focus on its designation on maps. Justже, as in the case of road types, you should keep the proposed division by belonging to city streets and country roads.

Below the selection of road classes, there are points for selecting traffic restrictions. The most popular point, without a doubt, is the one - way traffic sign-One way. Other points for our countries are still not so relevant, although all of them are also taken into account when scrolling the route.

High-speed mode.

Speed limit is the most important parameter for setting a route. Therefore, it should be treated accordingly. The higher the speed limit for a particular road, the higher its priority when choosing a route. The speed limit, along with the road status and additional parameters, give the route planning program enough information to set the most optimal route. Speed limit parameters are selected in the same window where road classes are defined. In the "Speed limit" drop-down menu, you can see a fairly rich selection:

Speed limit Line

color when displaying road classes

Locality

Suburban roads

1

up to 5 km / h

Pedestrian paths

Trails

2

up to 20 km/h

Courtyard driveways

Difficult roads

3

up to 40 km/h

Poorly paved roads

Sections with speed limits

4

up to 60 km/ h

Streets and highways in localities.

Country roads

5

up to 80 km / h

Motorways

Roads with minor defects

6

up to 90 km/h

Major motorways

Ordinary paved roads

7

up to 110 km/h

Very rarely

used Motorways

8

No restrictions applied

Not applicable

Improved motorways

Note: In this example of lines, a road with the status 2 is used (see above).

The table shows approximate criteria for selecting speed limit parameters. They can change according to the situation. Usually, there are no questions about the lack of options.

Before you start setting parameters for road classes and speed limits, it is best to switch the map view to Show Road Classes. This will cause all road lines to be displayed differently based on the class and speed limit parameters assigned to them. Without these attributes, all roads will appear as gray lines. Roads that have these parameters will be highlighted in color for the specified speed and line thickness for road classes. All color options are shown below, depending on the speed limit parameter.

Restriction of turns

A rather interesting additional way to describe the properties of road graph nodes is to indicate the prohibition of turns. The fact is that it is very often necessary to specify which maneuvers are forbidden to perform in certain places on roads. This applies to road signs such as "No turning left", cases when the route is laid out at a difficult road junction, and in many other cases.

These parameters are set in the window where we were already, when we looked at the properties of the road graph node-Node Properties(Routing tab). The "Turn Restrictions" field is responsible for selecting rotation restrictions Turn Restrictions. It shows all possible traffic options for a particular road graph node in the form of diagrams. To indicate a maneuver that you are not allowed to perform, just tick it. This will change the color of the schematic drawing. It will be light green for permitted maneuvers, and light red for prohibited maneuvers.

For an external node in the road graph, turn restriction parameters are ignored. A U-turn at this location will only be performed if there are no other maps in the current atlas with external road graph nodes that have the same coordinates as this external road graph node.

It should be noted that road graph nodes that contain data with turn restrictions have their own special feature - a red border. Therefore, they are quite easy to identify on the map (see above).

Pinning by practice

 So, we have reviewed all the main components of the road graph. Now it's time to practice. As an example, let's try to create a road graph for one typical case. It should contain as many of the attributes listed above as possible. And of course, one that I know quite well. I think that one solution is quite suitable for us.

As you can see in the satellite image, this is a bridge with fairly standard traffic elements. To be sure, we'll load the existing tracks.

the original OSM route is in red, blue after simplification

Now, in the usual way, we will draw a map that contains all the objects we need. It will turn out approximately like this.

the original OSM route is in red, blue after simplification

Please note that I drew most of the roads with a single line, and only two of them with a double line. These two roads at the bottom of the map have a dividing strip in the form of a lawn. This is done primarily for clarity. Also, at this stage of map creation, you must specify the "Has direction" attribute for one-way roads. When assigning the one-way road attribute, pay close attention to the length of this road segment. As a rule, one-way road sections, especially those shown in our example, are short-lived. Use the "Split" tool to break the line at the junction of a one-way and regular road Split.

From this point on, we are only working on creating a road graph. First of all, we will set up road classes. Obviously, the main roads in this case are three. They are highlighted because they are assigned the appropriate type.

Switch to displaying road classes.

the original OSM route is in red, blue after simplification

Gray road lines indicate that our roads have not yet been assigned a class. After operations to assign the status of each of the roads, using the technologies described above, the map view changes slightly.

the original OSM route is in red, blue after simplification

Using this type of road, you can tell which of the roads are a priority in the route plan, and which are not. The red color of roads shows that by default the road has a pedestrian speed limit of 5 km/h. This is wrong. In our case, set the maximum speed limit for all existing roads. According to the traffic regulations, it should not exceed 60 km/h in localities. Let's do it. The only thing I want to add is that you can assign road class attributes and speed limits for several selected roads at once. In this case, you must hold down Shift, select the desired roads and select "Modify/Routing" in the context menu, and then select "Speed Limit..." or "Route Class..."

the original OSM route is in red, blue after simplification

Now it's time to create road graph nodes. Let me remind you that at intersections of roads, there must be nodes with the same coordinates. Where roads do not connect, such as in our case, when a horizontally located road passes under a bridge, you should not create nodes. I'll open the veil of secrecy a little. Now you can. It is very convenient to perform operations for assigning road classes and road graph nodes in automatic mode. 

To do this, select командуthe "Tools/Generate Routing Nodes/at Coinciding Nodes of Polylines" command. I specifically didn't mention it before, so that you can clearly understand the meaning of certain terms, as well as what you need to pay attention to when errors occur when creating and laying a route. In this case, it will be quite justified to use this method.

Don't forget to switch to the mode of displaying road graph nodes - Show Routing Nodes.

the original OSM route is in red, blue after simplification

So I was wrong. Pay attention to the color of the road graph nodes. The blue color means that there is no connection to another line in these places and this node is the final one. Those nodes of the road graph that are located at the edges of the map are actually finite, and there are no complaints about them. But there is clearly something wrong with the two nodes. The first is the right exit from the bridge near the garages, the second is the left road near the canal. There should be no blue nodes in the road graph. Let's see what the problem is.

the original OSM route is in red, blue after simplification
the original OSM route is in red, blue after simplification

Okay, all clear. In the first case, the problem is caused by the absence of a node on the line at the junction of streets, and in the second case, the coordinates of the nodes of the two lines do not match. This is easy enough to fix. As a result, everything turns out as it should. I don't give a screenshot, so everything is clear as it is.

Everything seems to have been done correctly. However, I can assure you that in some cases the route will be set incorrectly. A reasonable question is where exactly and why. To get an answer to this question, let's take a look at some parts of our map and imagine how the route can be laid out in the current situation. Here's an example.

If you carefully analyze the situation, it will become clear that such maneuvers are now allowed by our current road graph.

the original OSM route is in red, blue after simplification

Or here's another example.

the original OSM route is in red, blue after simplification

In addition to these errors, you can find more than one similar possibility of incorrect routing on this map. We will not argue how likely these cases are. The fact is that the current road graph contains errors. Therefore, it's time to remember about the possibility of applying turn restrictions. Since everything is done by analogy, I will show only one case of using this feature. The rest are produced in the same way. I will take the case from the first example, the average node of the road graph with an error. Where two erroneous driving directions are drawn. For clarity, I will show all the options from the "Turn restrictions" field. This is how it looks now.

the original OSM route is in red, blue after simplification

As you probably already noticed, the program has already identified as impossible those options that are determined by the presence of the road direction attribute on the lines. This makes it very easy to work with the program. Now let's make the necessary adjustments to the bans. 

And so the same field looks after specifying the necessary restrictions.

the original OSM route is in red, blue after simplification

As mentioned earlier, nodes in the road graph that contain data about turn restrictions are externally distinguished by the presence of a red border.

the original OSM route is in red, blue after simplification

All. Now we can say that this map contains data about the road graph. Even though all roads have the same speed limit in this case, the route will be built on those roads that have a higher status. If, for various reasons, the route needs to pass on some roads only in case of emergency, you can slightly reduce the speed limit. At the same time, when creating a route, an analysis will be made for the presence of the most high-speed roads, which in turn will lead to the exclusion of such a road from the route. Thus, by skillfully manipulating the class and permissible speed of roads, you can achieve very good results when creating maps with the ability to automatically create a route.

 

Checking the road graph

 

Before compiling the map to the final format, all owners of Garmin navigators need to check the map for specific errors. To do this GPSMapEdit, there is a special tool in the GPSMapEdit editor. To call it, select Tools/Verify map... The following window appears:

the original OSM route is in red, blue after simplification

In the upper part of the window, you can see four criteria for checking for possible errors.

1. Check polygons for self-intersection. The danger of self-intersecting polygons lies in the unpredictable result of their appearance after slicing polygons while saving the map to the final format. This error is most dangerous for large polygons.

2.Check routable polylines for self-intersection The Garmin format does not allow routing if there are self-intersecting lines. Therefore, when the cGPSmapper compiler is running, the corresponding error will be returned and the compilation process will be stopped. 

3. Find misaligned routing graph nodes Detecting randomly broken road graph nodes will help you avoid problems with incorrect routing.

4. Find too close nodes (<5.4m)  The case again concerns the Garmin format. It is considered an error if the road graph nodes are located at a distance of less than 5.4 m from each other. Apparently, this is somehow related to the minimum distance of the generalization grid nodes and there is a risk of getting the same coordinates for several nodes of the road graph, which, of course, will be an error.

After performing a check for the selected types of errors (Start), a Result list of detected errors will appear in the Result fields. When you double-click on the error line or select the error line and click Locate, the section of the map where the error was detected will be called automatically. To resolve the error, you will need to close the error search box. After fixing the error and then opening the window Verify map..., the list of errors for this map remains. Lines with corrected errors will be marked as resolved.

 

Starting with GPSMapEdit version 2.1.78.2, the program now has a road graph debugger that simulates routing much like it does on a destination device. You can call the debugger using the "Tools/Test Routing Graph" or a special button in the tools field. As a result, the following window will appear:

the original OSM route is in red, blue after simplification

You can use the following functions here:
1.Rebuild All Routes often, when debugging a route, you need to check how the route will be built taking into account the corrections made. To avoid re-specifying its start and end points, just click this button. The route will be recalculated again.
2. Delete All Routes Standard function for deleting previously created routes.
3. Enable multiple routes. If this feature is enabled, you can simulate building a route that contains intermediate points. Otherwise, test routes can only pass through two points - the beginning and the end.
4. Find shortest (fastest) path Specifies a route construction criterion based on the road graph data. You can usually set the fastest route.
5.Vehicle: - Select the type of vehicle. Usually-A Car/Bike.
6. Avoid toll (unpaved) roads Specifies a route construction criterion based on the road graph data.
There are also tools that allow you to upload and save files with routes, as well as show the route in full screen mode. To do this, use the intuitive buttons in the upper-right part of the debugger window.
After specifying the first and second points of the tested route on the map, a line appears on the map (the color is set in "Tools/Options.../View/Routes", showing how the route will be laid based on the existing road graph data. Route points will be shown as checkboxes.

the original OSM route is in red, blue after simplification

Afterword
That's probably all I wanted to tell you about working with the wonderful GPSMapEdit program. And if you think that here are all the ways to work and features of the program, then I hasten to disappoint you. There is a lot left outside of this article. My task - to introduce novice users to the basics of working in this program-I, by virtue of my abilities, completed. In the process of creating your own maps, you will encounter many new features that are not mentioned here. This is about how to teach how to work in the same PhotoShop. A person who wants to master the program, it is enough to show the tools, the principle of operation and the most basic techniques. Further development is determined only by the desire of this person to develop in this direction, imagination and indispensable practice. 

Install your maps in  TourMap GPS navigator app play.google.com

Description

GPS navigator TourMap - navigation system - a full-featured modern application for use in car, personal and travel navigation. GSP/GLONASS navigator and built-in OpenStreetMap offline maps are free, and the laconic design, intuitive interface, high speed and user-friendly features will impress even the experienced users. Thanks to the OSM off-line maps, downloaded to your device in advance, you can navigate everywhere without Internet connection! Become mobile with TourMap in the modern world!

Main features and capabilities:

  • absolutely free;
  • work offline without any restrictions;
  • route calculation with traffic jams and traffic events;
  • voice input and control;
  • route guidance (visual and voice);
  • search by name, address, street, intersection, or coordinates;
  • search for nearby objects and objects by type along the route;
  • warnings about speeding and approaching speed cameras;
  • object feedback;
  • support for custom maps and objects.

TourMap - easy to find, easy to get to!

 

If you want to use  Toutmap on your personal or car computer or want to create your own map using our TMConvert converter – download TourMap for PC, laptop and CarPC.  For owners of communicators and smartphones running on Windows Mobile, we have retained TourMap support for this platform. And a special version of TourMap is available especially for adherents of car navigators. You can download TourMap for your communicator, smartphone and GPS Navigator (PNA) right now.

Install the TourMap program-Install. msi (this is TourMap for Windows) The программыTMConvert folder TMConvert, where the map converter for TourMap is located, will be located at the place where the program is installed.TourMap

Polish format .MP .TMX (TourMap

Convert and install maps.

 

 To convert maps from Polish format (.mp) to TourMap format (.tmx), follow the following instructions (the resulting map is compatible with TourMap version 1.8 and higher):

 * Launch the program TMConvert.exe;

 * Select the map file and output folder.

 * Enter a password to protect the card, if necessary (maximum 16 characters).

 * Click "Convert" to convert the map.

 After conversion, a file with the *.tmx extension and a TMConvert.log file with a description of conversion errors and messages will appear in the output folder.

 

the original OSM route is in red, blue after simplification

Path for uploading your maps to android 6-14 (__move maps in *.tmx format to the Maps folder (Android)

the original OSM route is in red, blue after simplification

After that, the app itself will display a list of downloaded maps:

 

the original OSM route is in red, blue after simplification

Map in the app

the original OSM route is in red, blue after simplification

However, you can always upload already prepared OSM maps to the app OSM

the original OSM route is in red, blue after simplification