The history of OkMap

Before OkMap

Experience built over time

In 2003, when the idea of OkMap was beginning to take shape, I already had a way of approaching software development that I had developed over the previous years.

Programming had begun many years earlier, in a field completely different from cartography. Over time, a simple conviction had taken shape: before developing a feature, it is necessary to understand clearly what you want to achieve and how to do it; only then does writing the code come into play.

The goal was therefore to try to build things correctly from the beginning, avoiding, whenever possible, creating solutions that would have to be rewritten shortly afterwards.

When OkMap was born in 2004, this way of working was already well established. But the initial phase was also an exception: OkMap was born as a personal laboratory, and experimenting also meant writing code to understand problems that I did not yet know. Some of those early solutions would later be completely rewritten, but the experience gained during that phase would remain fundamental.

The context, however, changed completely: no longer business management software, but cartography, GPS and hiking.

OkMap was born from the combination of software development experience and a passion for cartography and mountains that I had cultivated since my youth.

The laboratory

2004–2005 — From experimentation to usable software

In 2004, development of OkMap began. The idea was not to create a commercial product, nor to build a complete program from the outset. It was primarily a laboratory in which to experiment with digital cartography, maps and the technologies needed to implement them.

The first experiments concerned the representation of the Earth's surface. One of the first projections implemented was the orthographic projection, used mainly as an exercise to visualize the Earth and experiment with a rotating globe. At the same time, work began on the representation of simple vector data.

These early experiences showed just how necessary it was to understand cartographic problems thoroughly before attempting to solve them with software. The initial idea of the rotating globe, for example, was based on an approach that did not take into account the fact that the vector data being used referred to a specific projection center. Changing the viewpoint of the globe would therefore also change the projection reference.

That solution was abandoned and much of the code was rewritten. It was not wasted work, however: that first implementation had made it possible to understand the problem and acquire the knowledge needed to approach it differently.

Meanwhile, OkMap began to take more concrete shape. The initial experiments were joined by raster map management and georeferencing, the visualization and editing of GPS data, and the ability to create and edit vector graphic objects directly on the map.

Cartographic management also developed progressively. Datums, ellipsoids and projections were defined in the XML files of OkMap's cartographic database. The main projections needed for working with maps were implemented, including Lat/Lon, Transverse Mercator and Mercator.

These features were joined by an initial set of tools for importing and exporting data, statistics and GPS track charts.

It was not yet the program that OkMap would become in the following years, but a coherent core of features now existed: a raster map could be georeferenced, GPS data could be displayed and edited, objects could be represented on the map, and the results could be analyzed.

In essence, it was the minimum necessary for OkMap to stop being just a personal laboratory and become something useful to others as well.

Free distribution

2005–2015 — OkMap meets its users

When OkMap had reached a sufficiently complete set of features to be useful to others, I decided to make it available for free. There was still no commercial project: the goal was to allow other people interested in cartography and GPS to use the work I had developed.

Distribution initially took place mainly through the OkMap website and forums dedicated to GPS, cartography and hiking. In those years these places represented an important meeting point for enthusiasts and were also the first environment in which OkMap began to meet its users.

Distribution also brought new needs. The relationship with users developed in two directions. On the one hand, there was support: trying to answer questions, helping to solve problems and, when necessary, addressing rather specific cartographic issues.

On the other hand, there were requests for new features. Not all of them led to development: each requirement had to be evaluated in relation to what OkMap was and how it could fit into the program.

In some cases, however, a particular request became an opportunity to address a more general problem. This happened, for example, when a professor experienced in reference systems and geodetic transformations introduced me to the Bursa-Wolf transformations. Until then, OkMap used simple translations for datum transformations; studying the new formulas led to the implementation of a more complete model.

Projection management was also expanded in response to specific needs. Some Russian users brought attention to the Bonne projection, which was subsequently added to OkMap.

These episodes represent a way of evolving that would remain characteristic of OkMap: a concrete need could become the starting point for developing a general feature, but it did not mean simply adding a new function every time someone requested one.

Over the years OkMap continued to grow in different directions, while maintaining its own identity. New features had to find a coherent place within the program and contribute to making it more useful, without turning it into a simple collection of independent tools.

During this period, one of the features that would play an important role in the spread of OkMap also arrived: the ability to create Garmin Custom Maps. It was still the period of free distribution, but OkMap was by then being used in increasingly diverse scenarios compared with those for which it had originally been conceived.

Commercialization

2015 — After eleven years

For about eleven years OkMap had been distributed for free. In the meantime, the program had grown, encountered users with very different needs, and undergone continuous testing and verification.

Over the years, my confidence in the software had also grown. The features had become more numerous and complete, but above all OkMap had reached a level of maturity and reliability that I considered sufficient to offer it as a commercial product.

The decision to begin commercialization therefore came as a natural consequence of this journey. On July 30, 2015, the first sale of OkMap was made: after eleven years, the personal laboratory with which everything had begun had also become commercial software.

The software continues to evolve

Commercialization did not, however, change the way OkMap continued to develop. User requests intertwined with the evolution of development tools, user interfaces and technologies related to cartography and GPS, gradually leading the program towards new possibilities.

Web Maps

Another important change came with the introduction of Web Maps. The idea arose from observing the evolution of other mapping software and the possibility of using maps available online directly.

For users, this was a significant change. It was no longer necessarily necessary to have a local digital map: OkMap could use maps available online, making access to cartography easier and significantly expanding the possibilities for using the program.

From a development perspective, this was also an important step. Managing online maps required a completely different approach from that used for local raster maps. OkMap therefore began managing various mapping services available online and allowing users to configure new ones.

Over time, support was extended to various technologies for distributing maps on the web, following the evolution of available standards and solutions.

From GPS to ROV

The evolution of OkMap also led to a use very different from the one for which it had been created. Some of the communication functions already present in the program, originally designed to receive and share position data in real time, could also be used to connect OkMap to devices other than standard GPS units.

This possibility led to a dedicated interface that could receive data from an ROV and display it on the same map used to track the position of the vessel. The same architecture made it possible to manage multiple data sources, identifying them individually, and therefore to simultaneously display information from different devices, such as ROVs and other underwater devices.

Over time, this integration was enhanced with new features. A semi-transparent side band was introduced along the ROV track to indicate the area observed by the vehicle, a proximity circle around the current position to highlight the area observable at that moment, and a bearing line to project its direction.

These solutions brought OkMap into professional operational contexts very different from its original ones, including nautical activities involving searches for missing persons and underwater archaeological activities.

Garmin PVT

Another requirement arising from the professional use of GPS led to further development. Some Garmin devices used in the field transmitted position information through the PVT protocol, which differs from the standard NMEA stream already handled by OkMap.

To use these devices directly, support for the Garmin PVT protocol was therefore implemented. Here too, a concrete need was transformed into an integrated feature, extending OkMap's possibilities with GPS tools already used in operational activities.

Software that keeps changing

Optimizing what already exists

The evolution of OkMap has not only involved adding new features. In some cases, it was necessary to return to already established parts of the program to improve how they worked.

One example is the rendering system for graphic objects on the map. As the program's capabilities grew, redrawing the entire map every time became increasingly inefficient. The system was therefore redesigned to redraw only what had changed, keeping unchanged parts in graphics memory and recomposing them as a single layer.

Interventions of this kind do not necessarily add a new menu item, but they can significantly change the behavior of the program.

Curiosity as a driver of development

Not all new features originated from a request. Some were simply an opportunity to explore a technical possibility and understand whether it could find a useful place within OkMap.

This is how, for example, support for generating hillshade and color relief maps came about, making use of a capability already provided by the tools used by OkMap. In other cases, curiosity led to studying what an effective algorithm might be for generating contour lines as vector data.

Other experiments led to tools more directly related to everyday use of the program, such as identifying the most likely reference system of a map when the CRS is not indicated but metric coordinates are available, or downloading waypoints from OpenStreetMap.

A new frontier: systematic coverage

One of the most recent features once again arose from an ROV-related need: the ability to automatically generate a mowing-the-lawn track to systematically cover a search area, or to generate a grid of routes within an area defined by a polygon.

The function was designed as a general route-planning tool rather than as a feature specific to ROVs. The same type of route can in fact be used, for example, to plan the coverage of an area with a drone, such as when surveying an agricultural field.

It is an example of how a concrete need can become a more general function, capable of finding applications in contexts different from the one that originally led to its development.

Twenty years later

Beyond intended uses

In 2024, twenty years had passed since the beginning of OkMap's development. The program was by then very different from that first personal laboratory, but some of the fundamental ideas with which it had been created remained the same.

Over the years, OkMap has been used in contexts that went far beyond those I had imagined at the beginning. Some uses were a direct consequence of the features developed, while others arose from specific user needs and led to new possibilities for the program.

In some cases, these were professional activities in which cartography and geographic position were important elements of everyday work. OkMap has been used, among other things, in nautical and underwater activities, in searches for missing persons and in archaeological activities.

OkMap has also been used to carry out surveys during some important recovery operations, working on an underwater map of the area.

Over the years, I have realized that the uses of software such as OkMap can be far more numerous than its developer can know or anticipate.

The relationship with users

Over the years, the relationship with users has become an important part of OkMap's history. It has not simply been about providing support, but about trying to understand the situations in which the program was being used and the difficulties that could arise in everyday use.

I have always tried to respond to the requests I received and, when a problem required it, investigate it directly. In some cases, this meant working together with the user on their specific situation, for example by personally checking a map and selecting the necessary control points to georeference it correctly, even providing a step-by-step procedure.

This relationship has meant that OkMap has continued to evolve through the experience of those who use it. Requests did not automatically become new features: they were evaluated first and, when they found a coherent place within the program as a whole, they could become part of its evolution.

And it continues

After more than twenty years, OkMap continues to be developed. Technologies change, new needs emerge and new ideas arise, but the way of approaching the project has remained essentially the same: understand, experiment, verify and develop what can be genuinely useful.

The history of OkMap, therefore, continues...

Discover OkMap and its features

Discover OkMap Desktop and OkMap Mobile, explore their features and find useful resources to get the most out of the software.

Windows software - Desktop features - Mobile features