Modern life is hard to imagine without travel. As such, tools for locating destinations, charting routes, and planning journeys are increasingly sought after. In this article, I’ll share insights from our experience in developing custom mapping solutions, focusing on a web product aimed at travelers. We’ll also explore various approaches to crafting custom mapping software tailored to different categories of users.
Custom Mapping Software: The Basics
Geospatial data is an essential component in various aspects of our modern daily lives, and one of the most user-friendly ways to present such data is through maps. Consider how offline maps being downloaded to a device have significantly simplified user experiences; or think about advancements in web maps, particularly animated and real-time maps, and their transformative effects.
At SECL Group, our team has developed an intricate mapping website tailored for tourists. The project has shown substantial growth. This website has attracted over 100,000 visitors monthly within its first year and it keeps growing. Our journey through the complete cycle of building mapping software solutions has immersed us deeply in this specialized field. I’m excited to share the insights and lessons we’ve learned.
Web mapping software is based on maps crafted using Geographic Information Systems (GIS). GIS technologies are pivotal in the storage, management, analysis, editing, output, and visualization of geospatial data. In the process of constructing mapping solutions, we encountered two primary challenges:
- First, much of the available geographic data isn’t user-friendly. For example, using latitudinal and longitudinal data is fine for backpackers in remote areas or scouts, but most travelers prefer the simplicity of street addresses. Our solution was to reformat geospatial data into an easily understandable and usable format, saving our users time and effort.
- Second, incorporating attributive (semantic) data is key to enhancing maps with detailed area information tailored to diverse user needs. Tourists, for instance, find layers showing local attractions, eateries, or sports venues useful. Keeping these maps up-to-date is crucial to their effectiveness. Developers overlay this specialized data onto the base GIS map, which covers basic topographical information. Anticipating the need for multiple, sometimes dozens, of these data layers is essential — something we experienced in our project — to ensure a dynamic and comprehensive mapping solution.
Before developing custom mapping solutions, it’s important to know what the most user-friendly data presentation will be and which additional information users will need. This understanding helps in creating valuable mapping software that stands out in the market.
Custom mapping solutions often start with maps from well-known providers, onto which developers overlay their project-specific data. Let’s look at the main interactive map services that you can use when creating your mapping software.
Google Maps
Google Maps, launched in 2005, has emerged as a preeminent online mapping system, renowned for its global coverage and remarkable accuracy, particularly in urban landscapes. It has rapidly become a standard in the industry, offering comprehensive access to worldwide maps and satellite imagery.
As with any popular service though, Google Maps presents pros and cons for custom map software development. Developers appreciate the accuracy of Google Maps data, but grapple with substantial service costs. Our case study sheds light on strategies to deal with this.
The suite of Google Maps services includes, among others, Google Earth for surface imagery, Google Aerial View for aerial photography, Indoor Google Maps for geospatial data of significant buildings, Get Directions for route planning, Google Transit for public transit information, and Google Street View for panoramic street visuals. The Google My Business (GMB) directory is also integrated. Continual updates by Google’s team and partners ensure ongoing data relevance.
Several APIs are available for integrating these services into mapping solutions, each requiring registration and an API key, including:
- Javascript API for adding maps to a website
- Geocoding API for access to geocoding services of static addresses through an HTTP request, which makes it possible to place content on the map
- Directions API, which provides what is necessary for drawing up routes, calculating travel times and distances
- Places API Web Service for access to additional information about objects.
The Google Maps Platform is designed specifically for custom mapping software development, grouping its extensive APIs and SDKs into three categories: Maps, Routes, and Places. However, most functionalities are paid, with limited free usage options.
Sounds great, right? But we should also consider why relying solely on a single cloud-based mapping vendor, even one as comprehensive as Google Maps, might not actually be ideal:
- Cost: The Google Maps Platform can be expensive, posing financial challenges for various web projects. Later, I’ll recall how we tackled the issue of cost on our project.
- Data Freshness: Rapid changes in modern cities can outpace Google Maps’ updates. Accessing alternative sources might be necessary for the most current data.
- Regional Variability: Detail and zoom levels in Google Maps differ across regions, with a noticeable focus on major cities. Additional data may be required for specific areas.
- Personalization Limits: Features like ‘For You’ and ‘Your Match’ offer general recommendations, but deeper personalization may require analyzing user search histories, which isn’t always feasible.
Therefore, developers of custom mapping solutions often use Google Maps as a foundation, before enhancing it with layers of other map data or custom information. This approach can mitigate financial impacts, as leveraging more self-sourced or free data reduces reliance on Google’s paid services.
Now, let’s take a look at some alternative basic map services.
OpenStreetMap
No discussion of mapping services would be complete without mentioning OpenStreetMap, an international initiative dedicated to creating a freely accessible world map. This project operates on a collaborative model akin to Wikipedia. Volunteers globally contribute data about localities and infrastructure, derived from personal research or open sources. Geospatial data in OpenStreetMap is structured around core elements such as Nodes, Ways, Relations, and Tags – the latter providing additional details on the primary elements. As a non-profit endeavor, it relies on donations but offers its data for free use, with the only requirement being source attribution.
Integrating OpenStreetMap into web resources is straightforward. Maps can be embedded directly into websites or web applications without an API, using a web map library and corresponding script. However, APIs like the Overpass API (formerly OSM Server Side Scripting or OSM3S) are also available for more advanced integrations.
For mapping websites, making use of OpenStreetMap’s geographic data is great due to its cost-free nature. Given the high expenses associated with Google’s mapping services, it makes sense to start with a detailed base map, such as Google Maps, and supplement it with your own custom database of object information. Additionally, integrating free geo-data from OpenStreetMap to display on a Google Maps-based platform can significantly reduce costs compared to relying solely on Google Maps. This hybrid approach is why we incorporated OpenStreetMap into our mapping solution, achieving cost-effectiveness without compromising on data richness and accuracy.
Azure Maps
Azure Maps is a cloud suite of geospatial mapping services from Microsoft. Mapping APIs and SDKs allow you to build and operate custom mapping software on the Microsoft Cloud platform. Azure Maps has advanced functionality, including asset tracking, vehicle routing, geolocation, and more. The service processes several thousand user requests to the API per month for free, but use of the API over this limit is subject to a fee. We use Azure Maps data for our product. It is especially helpful for our website to receive data on city boundaries through the API.
Bing maps
Bing Maps is a Microsoft mapping service, which was launched in the same year as Google Maps but has repeatedly changed names. This Microsoft web product has functional similarities with Google Maps. There is, in particular, Bing Maps Preview, similar to Google Earth, as it has 3D maps of large cities with high-quality photos.
For developers of custom mapping solutions, there is the Bing Maps Platform with a set of APIs, and incidentally, the toolkit of this platform is intended not only for Bing Maps but also for Azure Maps.
Many types of projects can start using the Bing Maps API with a free Basic Key. In cases where the number of cumulative billable transactions exceeds the Basic Key limits, they will have to purchase an Enterprise Key.
Apple Maps
Apple Inc. also has its own web mapping service. Apple Maps is the default map system on iOS, iPadOS, macOS, and watchOS devices, and at the same time is available via the Internet. Non-Apple devices can also access Apple Maps, for example, by conducting a map-related search on the DuckDuckGo search engine. The service contains four layers: regular map, satellite view, hybrid view (a combination of the first two views), and public transit view. Apple Maps provides an API to approved partners that create mapping software for businesses. Developers use MapKit JS to embed interactive maps directly into websites across platforms and operating systems, including iOS and Android. Each Apple Developer Program participant receives a certain amount of free services, up to 250,000 map views, and 25,000 service calls per day. Services above this limit are subject to payment.
Amazon Maps
Tech powerhouse Amazon has also ventured into the world of spatial data. Their services offer functionality similar to those we’ve discussed previously. The Amazon Location Service Map provides access to foundational map data, which integrates seamlessly with map rendering libraries. This integration enables the addition of interactive maps to applications. Amazon Location Services extends its capabilities with SDKs and APIs for various features like Maps, Places, Routes, Trackers, and Geofences.
One notable aspect of AWS Cloud Map’s pricing model is its pay-for-what-you-use approach. This ensures that charges are only incurred for the actual resources used and API calls made. For new users, Amazon offers a Location Service Free Tier for the first three months. This tier allows users to access certain services without charges, up to specified limits. After this period, the Amazon Location Service Paid Tier becomes applicable. Under this tier, the usage is measured based on the number of map tiles retrieved, places geocoded, routes calculated, and other similar metrics.
Here WeGo
Here WeGo’s journey exemplifies the evolution of a mapping system, initially developed within Nokia as Nokia Maps, into a fully independent project with its own distinct brand. Today, Here WeGo offers web mapping and satellite navigation software accessible through both web and mobile platforms. The system’s features include turn-by-turn navigation, along with route information for public transport, pedestrians, and cyclists. It provides real-time traffic updates and offers offline map accessibility. For developers working on custom mapping solutions, Here WeGo presents the HERE Map API, which includes location-enabled support and a Points of Interest (POIs) search functionality. The usage fees are based on the number of transactions and the selected features, with both free and paid plans available.
MapQuest
MapQuest is one of the oldest free online web mapping services, established in 1996. Primarily focused on North America, MapQuest has maintained a significant presence in this market. It offers a comprehensive suite of APIs for various software mapping solutions, including Data Manager, Directions, Geocoding, Search, Traffic, and Static Map. Additionally, MapQuest provides MapQuest.js, a JavaScript library for interactive maps, geocoding, and providing directions and traffic information.
NASA WorldWind
The National Aeronautics and Space Administration of the United States, with its unique capabilities for surveying the Earth’s surface from space, also makes a significant contribution to mapping solutions. NASA WorldWind is a virtual globe, which is free and open-source. WorldWind API allows developers of custom mapping software to build interactive visualizations of geographical information. Website owners can more easily implement weather awareness, terrain visualization, traffic tracking, geospatial data analysis, and more, with NASA WorldWind.
Wikimapia
Wikimapia is also free. This Wiki project combines the possibilities of mapping solutions with Wiki technologies. Users in many languages fill and edit the resource under the supervision of the website administration. Anyone interested can add their own reference articles and modify existing ones. Boasting tens of millions of objects, Wikimapia’s robust search functionality allows users to easily navigate through various object categories. Additionally, Wikimapia offers an API, enabling websites and web applications to access its extensive map database.
I’ve introduced you to the primary geospatial data sources for custom mapping software. Now, how do we navigate this diversity? Which sources are the most suitable for your mapping solutions? Read on for more insights.
Highlights of our custom mapping software project
A pivotal aspect of the project we’re discussing was our approach to map integration. Rather than simply embedding third-party maps into our website, we developed a bespoke mapping solution. Our product is rooted in geospatial data sourced from multiple origins, offering a unique and comprehensive mapping experience.
Software mapping solutions: the right choice of data sources
When considering the range of options available for geospatial data, it’s tempting to select a single mapping or geospatial service for website integration or to base an entire website on it. While straightforward, this method has notable limitations. Recognizing these early was key to our project’s success.
In preparation for launching our traveler-focused mapping solution, we initiated a comprehensive discovery phase. This crucial step helped us identify which existing geospatial databases to use, the providers to source from, and how to process the data effectively. The insights we gained not only prevented unnecessary expenditures but also established the foundation for our web mapping solution’s market competitiveness. Our approach was to amalgamate data from multiple geospatial databases and integrate additional information parsed from various web resources.
This strategy is grounded in three core principles, which form the backbone of our custom mapping software project.
1. Spatial data is of higher quality if you get it from multiple sources. While the geospatial databases and services we’ve examined are all advanced, it’s crucial to understand that they do not uniformly and flawlessly represent specific areas and objects. Image resolution for identical terrain areas can differ notably.
Moreover, each map database possesses distinct features and strengths. Consider data relevance, for example. Updates of landscapes and objects, particularly in large urban areas, happen swiftly. All major services aim to maintain up-to-date data. However, the timeliness of these updates can vary—some providers might have recently refreshed data in your target area, while others could be lagging slightly behind. Thus, comparing data from a range of sources is advantageous.
The development approaches of different providers also vary, leading to unique strengths in their features. For instance, the translation of coordinates into user-friendly addresses differs in precision across platforms. MapQuest stands out by providing not just building addresses but specific entrance locations, which is especially useful in large building complexes. Another example is Google Maps, which accurately delineates city boundaries. Unfortunately, this data isn’t accessible via API. Among the other providers mentioned, Azure Maps most accurately represents city boundaries and makes this information available via API. We use this on our website.
Choosing geospatial data sources for a custom mapping solution should align with your project’s objectives and requirements. For our project, we selected Google Maps as the foundation, as we were developing a tourist map covering all countries. Google Maps’ extensive geodatabase, encompassing all countries and cities, met our needs. Additionally, we aimed to build our own database of locations and objects from the outset. Hence, Google Maps serves merely as a base to which we add our unique data. We also integrate data from other services when it enhances our product, similar to how we utilized city boundary data from Azure Maps.
Our experience in mapping software development shows that most projects benefit from sourcing data from multiple providers, as exemplified in our approach.
2. You save money by using geospatial data from a variety of sources. Most of the vendors I’ve mentioned initially offered their services for free, but this is increasingly rare. Relying solely on a single, albeit powerful, provider elevates the financial risks for your website. API usage incurs significant costs. While vendors might offer a limited range of free services, they typically charge for more user-demanded actions like routing, current geopositioning, and object information. The cost is primarily driven by the number of requests and the diversity of data sought. For instance, obtaining real-time geolocation data, such as vehicle tracking, is costly. If your custom mapping solution attracts tens of thousands of users, expenses will be substantial. Should user numbers reach millions, the financial impact could become unsustainable.
To mitigate this, we adopted a strategy of integrating a mix of maps and piecing together information, including free data, from various sources. However, it’s important to note that successfully combining data from different interactive maps and geospatial databases in a cost-effective and functional manner, as we have done, requires an experienced development team.
Our approach to our mapping solutions project is thus more versatile. We use some free data sources, like OpenStreetMap. As previously mentioned, commercial vendors often offer subscription plans, including free but limited options. It’s also crucial to understand the pricing models of different services.
Our strategy is grounded in the principles of unit economics and a deep understanding of our user audience. By calculating the average marginal cost of third-party solutions per user per month, we manage to balance free and paid services, maintaining budgetary control. We recommend this model to all project founders looking to develop custom mapping software.
3. Your own database of objects and geofences is the additional value you can offer users. Firstly, it allows for the refinement and accumulation of your own spatial data. Secondly, it provides access to a wealth of additional information about user-interest objects, which can be effectively organized and layered on maps according to user groups.
Travelers, for instance, seek information about transportation, shopping, entertainment, weather, notable places, service facilities along with their pricing, cultural and business events, and much more. While it’s impossible to detail everything in an article, our custom mapping solution features around 50 layers of additional data for users. Maintaining and updating such a custom database is crucial, as we do, treating it as an invaluable asset of our web project.
Having analyzed all of the above, we selected OpenStreetMap, Google Maps, and Azure Maps as our primary sources of geospatial data for our custom mapping solution. To populate our geodata, we established parsers using the APIs of these services.
Tech stack of the mapping solutions building project
In the development of our custom mapping software, we used Vue/JavaScript for the frontend and Django/Python for the backend. Beyond these standard web development languages and frameworks, crafting a custom mapping solution requires a specialized set of tools for implementing maps and managing information about spatial objects.
In GIS, we extensively use Polygons—a geometry type—to display additional reference data on maps, such as postal addresses and points of interest. Polygon mapping not only renders polygons and their attributes on maps but also allows for comprehensive alphanumeric labeling. This includes detailed aspects like shading, symbology placement, and numerical identification.
Utilizing Polygons also enhances the accuracy of reverse geocoding, which converts geographic coordinates into human-readable addresses or place names. This allows us to add more detailed information about objects and localities.
We use Simple Polygon, a function of the Maps JavaScript API, for Polygon mapping. We apply the getBBox() method to determine the coordinates of the polygons.
Our specialists set up parsing from the above geodata sources using Celery, an asynchronous task queue. Due to this software, our parsing is done in the background. We use the GeoDjango module and Python package Shapely to process geodata.
To search for objects in our custom mapping solution, we combine Google Maps and Azure Maps’ capabilities for searching by name, with custom-developed logic to form queries and check the validity of answers. Our engineers use an Elasticsearch search engine to provide the filter feature for geodata searches.
Also, of course, we applied technologies that ensure that our map solution is responsive and mobile-friendly. And as for the architecture of the mapping software product, we began with a monolithic one, and later switched to microservices. We took this step in order to improve scalability in view of the increasing popularity of the website.
As the project evolved, we moved from using our hardware server to cloud-based hosting, moving the web product to AWS.
Ultimately, we followed the recommendations I always give to our clients:
- On the one hand, technologies are chosen based on the goals and specifics of the project
- Secondly, it’s crucial to be prepared for the scalability and growth of website traffic, particularly when — as we were pleased to discover on our project — your marketing strategy resonates with and is well-received by your target audience.
Building custom mapping software is a highly specialized task. In order to meet development timelines and budget constraints, you need a team that is experienced and capable in this domain. In particular, developers should know the API of the map services they apply like the back of their hand to save the customer’s money because the cost of using the API is one of the key issues in such projects.
Web mapping solutions functionality
The functionality of custom mapping solutions may differ from each other; the extent of which depends on the target user audience. For example, we created our website for tourists, but if you want to make custom mapping software for business, you will focus on other features.
Therefore, let’s consider the approximate functionality that would suit most custom mapping solutions, and I will add comments about our product’s features after the list. The functionality of web mapping solutions may include the following:
1. Map customization
- Basemap customization: There are a variety of base map styles, including satellite views, topographical maps, and more
- Marker customization: Custom map markers may include custom icons, colors, labels, etc
- Map style customization: The overall appearance of the map, including the colors, fonts, and other visual elements.
2. Data visualization
- Heatmaps: A heatmap helps visualize the concentration of data points on a map
- Choropleth maps: This means of visualization helps display the distribution of data across different localities. Highlighting certain territories with color or shading shows their inherent patterns and characteristics, for example, building height, population density, communication availability, etc. In this way, it is possible to show the value of any parameter of a certain area
- Bubble maps: Visualization of data points on a map using bubbles of different sizes
- Line charts: Lines that show the change in data points over time
- Bar charts: These charts are designed to compare different data points
3. User interaction
- Zoom and Pan: The ability for users to zoom in and out of the map and pan around to view different areas
- Search: The possibility for users to search for specific locations or Points of Interest (POI) on the map can be a killer feature of custom mapping solutions
- Filtering: The data filtering function on different criteria
- Tooltips: Tooltips with additional information about data points appear on the map when users hover over them
- Popups: Popups with more detailed information about points of interest display on the map when users click on them
- Directions and routes: Users can plot routes to different locations on the map. Availability of turn-by-turn directions and navigation tools
- Measurement tools: A set of tools for measuring distances and areas on the map
- Localization: Translating the map and additional data into different languages.
4. Collaboration
- Sharing: The ability for users to share their maps with others via a link or embed code
- Collaboration: Multiple users can collaborate on the same map with this feature
- Comments: The possibility for users to leave comments on different parts of the map.
5. Data integration
- Import and export data: This feature allows users to import and export data from the map to different formats
- API integration: This is a potentially promising feature for custom business mapping software that helps integrate your website with other websites and applications via APIs.
6. Other features:
- Custom branding: This refers to branding to the map, including, for example, your company logo and colors
- Social media integration: Sharing by users their maps on social media
- Street view: Street-level views of locations
- 3D maps: Display 3D maps and models
- Indoor maps: Maps of indoor spaces, such as buildings and shopping malls.
7. Premium features:
- Paid accounts: Users with such accounts gain access to additional information on the map that is not available to regular map website visitors
- Real-time data updates: Maps are updated with real-time data from a variety of sources
- Geospatial analysis: Perform geospatial analysis of map data
- Offline support: Access the map offline
- Custom integrations: Integrations the map with specific third-party systems and apps of the user’s choice.
I will supplement the general picture of the general functionality of custom mapping solutions with a few specific details about our website.
We have provided markers, Markers, or Advanced Markers, to mark points on the map. For this, our developers used the google.maps.marker capabilities of the Google Map API. The customization of user icons and opening of information windows when hovering is available for each marker. Our engineers implemented this feature with the help of google. maps.InfoWindow. They also developed an additional interactive feature for this element of functionality on Vue.js.
Geolocation data obtained from a database can be displayed in any shape while adding styling to it: fill color, borders, transparency, hover effects, pop-ups, and more. We built this feature with google.maps.data.
The map also displays the user’s geometric shapes added using Circles, Polyline, Rectangle, Polygon, and other tools. User navigation is implemented on the map of our custom mapping solution, so that a website visitor can, for example, automatically move the viewing area to their current location, or any object they are trying to find on the map.
We monitor users’ interaction with the map. For example, for optimization purposes, when changing the viewport and zooming on the map, additional markers are automatically suggested, even if the user has not set them beforehand.
Stylization of the drawn polygons (color, saturation, dimensions, etc.) can change depending on the map scale. In the same way, when the user changes the scale, the markers displayed on the map are combined.
A standout feature of our custom mapping software is our advanced search functionality. It includes detailed filtering, aids users with their queries, and ensures that results are both relevant and validated.
Our unique database, meticulously curated with high-quality data, is a key component of our project. It offers around 50 layers of searchable information, enriched through continuous validation. Our commitment to providing a comprehensive information spectrum is bolstered by our extensive use of unit tests. These tests quickly identify and rectify data gaps, sourcing from multiple channels.
To enhance data relevancy, we regularly analyze our user base, which spans 200 countries. Through this research, we’ve identified 150 distinct interest groups among our visitors. This insight informs our creation of targeted, valuable content and functionalities.
For instance, our mapping solution offers real-time event information, enabling users to plan trips around specific happenings and events. Additionally, users can compare holiday destinations based on personalized criteria, with the comparison results visually represented on the map.
Another user-centric feature is the ability to create detailed trip itineraries. Users can select from various transport options, with schedules integrated into our platform. This is just one of many examples showcasing our focus on improving user experience.
Remember, the basic functionality can always be expanded with additional features, depending upon project requirements and target user expectations.
Project management of custom mapping software
How many specialists did it take for us to create our custom mapping solution? Here was our project team composition:
- One project manager (PM)
- One business analyst
- One UI/UX designer
- Two backend developers
- Two frontend developers
- One manual quality control engineer
- One automated quality control engineer.
Since its beginning, the project has achieved success, particularly in its monetization model. Our combination of paid user accounts, advertising, and placement of links within affiliate programs enabled receiving funds for further project development.
Within just a year of launch, our custom mapping solution website reached approximately 100,000 users per month, and this number continues to grow. This milestone not only reflects the platform’s popularity but also underscores its utility and value to travelers.
Conclusion
So, now you know how we developed our custom mapping software, highlighting the unique aspects and specialized tools intrinsic to this domain. Our company is part of an elite group of development teams with the requisite domain expertise and proficiency in using specialized tools to create custom mapping solutions.
Our experience in this field positions us ideally to contribute significantly to your project. If you have an idea for a web mapping solution, contact us and we will help you implement it, and save you valuable time and money.