There are many articles about how to choose the best geocoding service. But when it comes to the comparison table, it seems that essential criteria are missing. For example, we all want to know the price, but it’s barely enough for a decision. So this article would like to cover essential criteria and try to find the answers for them. In this way, you can estimate your expenses and time when you choose the one.
Which criteria are essential when searching addresses or coordinates?
What distinguishes a good service from a bad one? First of all, the commitment to meet expectations is key. Choosing a good service provider is not enough to ensure success, however. Every business has their own unique needs, and while one service may be perfect for one client, it may not work at all for another. As the client or business owner, you should do some research on your own to make sure that the service provider you choose is Found for you.
Here are parameters that are good to check before you make a decision:
- Quality and coverage
- Pricing
- Terms and restrictions
- Features
- Integration and maintenance
Geocoding services to compare
Based on our own research and recommendations from others, we have come up with a list of geocoding services that have different data sources, price categories, and terms:
- Google Maps
- Mapbox
- OpenCage
- Positionstack
- Geoapify
We tested the platforms and compared them to each other, observing their features and drawbacks.
Please note that all tests and results belong to September 2021; the conditions and test results may change with time running. However, you can re-execute the test or make your one at any time.
Quality: processing abbreviations, misspells, missing or redundant data
Let’s check which geocoding service works better based on the expected results. Let’s define a level of completeness as "what we expect it to return when we search a specific address", what would be the result for a misspelled address, and check if it can find an address which does not exists.
We picked up a random address and generated 10 address strings from it. Here are the results we received:
Address | Note | Google Maps | Mapbox | OpenCage | Positionstack | Geoapify |
---|---|---|---|---|---|---|
Körtingsdorfer Weg 4B, 30455 Hannover | Complete address | Found | Found | Found | Found | Found |
Koertingsdorfer Weg 4B, 30455 Hannover | No special characters version | Found | Found | Found | City level | Found |
Körtingsdorfer Weg 4B, Hannover | No postcode | Found | Found | Found | Found | Found |
Körtingsdorfer Weg 4B, 30458 Hannover | Wrong postcode | Found | Found | Found | Found | Found |
Körtingsdorfer W. 4B, 30455 Hannover | Shortened street name | Street level | Wrong location | Found | City level | Found |
Körtingdurfer Weg 4B, 30455 Hannover | Wrong street name spelling | Postcode level | No Results | Postcode level | City level | Found |
Körtingsdorfer Weg 48, 30455 Hannover | Non-existing house number | Wrong location | Wrong location | Street level | City level | Street level |
Körtingsdorfer Weg 4B, 30455 Honover | Mispelled city | Found | Found | No Results | Found | Found |
Körtingsdorfer Weg 4B, Linden-Mitte, Linden-Limmer, 30455 Hanover, Region Hannover, Lower Saxony, Germany | Address with redundant data | Found | Found | Found | City level | Found |
Körtingsdorfer Weg 4B, 30455 Hanover, Lower Saxony, Germany | Address with redundant data | Found | Found | Found | Found | Found |
Coverage: metropolitan areas and villages, different countries
When choosing a geocoding service, it’s important to be aware of the coverage that an API can offer.
Here is not worse to mention that coverage depends on data sources that a Geocoding service provider uses. So when the provider owns and maintains the data source by himself, some areas might be better covered now, but new sites are updated slower than crowd-based open data sources. So you need to check not only addresses you are currently interested in but also addresses you might be interested in in the future.
We've studied geocoding of addresses in big cities and small villages in European countries and America. First of all, we've focused on addresses that are present in one data source and missing in some others. Here are our results:
Address | Note | Google Maps | Mapbox | OpenCage | Positionstack | Geoapify |
---|---|---|---|---|---|---|
Eiselenweg 19, 12555 Berlin | House in Berlin, Germany | Found | Found | Found | Found | Found |
Alexander-Giertz-Straße 12, Altlandsberg | Berlin suburb, Germany | Street level | Found | Found | Found | Found |
15 Av. Garibaldi, 69120 Vaulx-en-Velin, France | Lyon suburb, France | Found | Found | Found | Found | Found |
44 Avenue Jean Jaurès, 83460 Les Arcs | Medical cabinet in Les Arcs ski station, France | Neighborhood level | Found | Street level | Found | Found |
Green 1, 461, Rue Jean-Jacques Rousseau, Saint-Genis-Pouilly, 01630, France | Village in France | No results | Found | Found | Found | Found |
Via G.P. Della Mirandola 7, 50132 Firenze | House in Florence, Italy | Street level | No results | Postcode level | Found | Found |
Via Eugenio Azimonti, 60, 85050 Villa D'agri PZ, Italy | Village in Italy | Found | Found | Street level | City level | Found |
992, Mill Street, Henderson, KY 42420, United States | Small city in USA | Found | Found | Street level | County level | Found |
7 Saddlewood Ct, Jersey City, NJ 07302, USA | House in Jersey City | Found | Found | Found | Found | Found |
702 W Gray St, Houston, TX 77019, United States | Convenience store in Houston, USA | Found | Found | Found | Found | Found |
R. Barão da Torre, 308 - Ipanema, Rio de Janeiro - RJ, 22411-000, Brazil | College in Rio de Janeiro, Brasil | Found | Found | City level | City level | Found |
Avenida Aricanduva, 6070 - Vila California, São Paulo | Motel in San Paulo, Brasil | Found | District level | County level | Street level | Street level |
By reviewing the results, we see that even the best geocoding services have areas that are not well covered; in general, cities are covered better than villages; some countries are covered better than others. All the geocoding services provide a playground where you can try the API without registration. For example, Geoapify Geocoding API you can try from the documentation page.
Pricing: current expences and forecast
Pricing is always a point of contention for startups, small companies, and large corporations. Many providers offer a free tier, so we have checked how many geocoding requests you can do for Free. In addition, we calculated how much you would pay for different request numbers:
Requests monthly | Google Maps | Mapbox | OpenCage | Positionstack | Geoapify |
---|---|---|---|---|---|
Free tier | 70,000 autocomplete requests, 40,000 geocoding requests | 100,000 for temporary geocoding | 75,000 | 25,000 | 90,000 |
50,000 | $0 for autocomplete, $50 for geocoding | 0 for temporary, $250 for permanent geocoding | $0 | $9.99 | $0 |
100,000 | $84,9 for autocomplete, $300 for geocoding | 0 for temporary, $500 for permanent geocoding | $50 | $9,99 | $59 |
500,000 | $976,1 for autocomplete, $2,300 for geocoding | $300 for temporary, $,2500 for permanent geocoding | $100 | $49,99 | $109 |
1,000,000 | contact sales | $600 for temporary, $4,500 for permanent geocoding | $500 | $49,99 | $179 |
10,000,000 | contact sales | contact sales | $1000 | contact sales | from $860 / contact sales |
100,000,000 | contact sales | contact sales | contact sales | contact sales | from $860 / contact sales |
Note: Mapbox offers temporary and permanent geocoding. The Temporary geocoding results can't be cashed or stored. You need to use the Permanent Geocoding API to store results.
Terms and restrictions: how not to violate license
Always read the terms and conditions before you agree to use any third party library or service that is not a part of your company. Here are a few pitfalls you might run into when using a geocoder service with stricter rules:
- You can't store addresses you've found
- You can't use services from the other company that compete with the services of the Geocoding provider
- You can cancel a subscription with a 3/6/12 month notice period only
- You can't build certain apps that require geocoding results as an intermediate step
Here also becomes a question about data ownership. If the geocoding service is based on proprietary data, it will be more restrictive than a technology based on open data:
Restriction | Note | Google Maps | Mapbox | OpenCage | Positionstack | Geoapify |
---|---|---|---|---|---|---|
Cache data | Is it allowed to cache the data? | Only latitude and longitude for up to 30 days | Only on an end-user device for up to 30 days | Allowed | Allowed | Allowed |
Store data | Is it allowed to store the data? | Not allowed | Permanent Geocoding API results only | Allowed | Allowed | Allowed |
Redistribute data | Is it allowed to redistribute addresses? | Not allowed | Not allowed | Allowed | Not allowed | Allowed |
Third-party maps | Is it allowed to combine geocoding with third-party maps? | Not allowed | Not allowed | Allowed | Allowed | Allowed |
Features: make your results more accurate
Additional features can make geocoding more accurate and precise. For example, they can significantly improve results and solve more complicated address search tasks. Here are examples of extra functionality offered by geocoding service providers:
Feature | Note | Google Maps | Mapbox | OpenCage | Positionstack | Geoapify |
---|---|---|---|---|---|---|
Autocomplete | Can be used for address autocomplete forms? | Yes | Yes | No | No | Yes |
Structured address | Can accept known address components? | Only as a filter | No | No | No | Yes |
BBox filter | Can filter by bounding box? | Yes | Yes | Yes | No | Yes |
Country filter | Can filter by country? | Yes | Yes | Yes | Yes | Yes |
Proximity | Can favor results close to the location? | Yes | Yes | Yes | No | Yes |
Language | Has multilanguage support? | Yes | Yes | Yes | Yes | Yes |
Integration and flexibility: don't make it painful
"How easy to add?" and "How easy to switch?" - this is two main questions that you should answer before adding a 3d party functionality to your application. Of course, don't forget that time by time, the code needs to be maintained and libraries updated as well. In terms of product development, it's not a question about which service provider you use but rather how you integrate the solution - via SDK or via API.
Some providers, like Google Maps and Mapbox, offer SDKs for different platforms that make the integration more straightforward and faster.
But don't fall for the bait! The integration with an SDK makes it very difficult and sometimes even impossible without a complete code rewrite.
As all the listed geocoding service providers provide an API that supports simple HTTP requests, we recommend you use API as much as possible and avoid using libraries with proprietary licenses.
Conclusion
We hope our review has been useful for you and helped you find the service that suits your needs.
Of course, as a Location Platform provider, we would be happy if you choose Geoapify for address and location search. Nevertheless, we tried to be honest and impartial by writing this review.
You can try Geoapify Geocoding API without registration with our Playground and start using it for free, even in commercial products.