After the insane price hike of Google Maps with far-reaching consequences, people are looking for its viable alternatives, including geocoding autocomplete services.
We had Google autocomplete text field in one of the apps, which had some 20,000 plus autocompleted sessions a month (Google counts autocomplete by session, not per keystroke). We didn’t have the map, just the text field to fill out and select a place which were suggested in the Google’s default dropdown.
Our usage would easily exceed the $200 free limit, though not by much. But why pay even an extra 100 bucks, when an alternative does the similar work in less or even for free?
I should tell at the outset that no other service comes even close to Google Places in covering the whole world’s administrative data down to the street level. If you want a pin-point accuracy to your doorstep, this post won’t be much help.
I’ll only list down the alternatives that I personally explored in relation to geocoding/autocomplete.
TomTom is a good alternative if you want an autocomplete feature. It has a maps JS SDK for that, too. If I recall, in the SDK the search autocomplete comes embedded in the map, and you can’t have it separately like we wanted. For that, you can implement your own text autocomplete using their APIs.
I would’ve implemented my custom text autocomplete with their APIs if it was not for the price. Turned out, they charge you by the transaction, unlike Google Maps which do that by the session. Meaning, that each keystroke fires an API call (one transaction). So, our 20,000 searches without session would’ve meant anywhere between 100,000 to a million transactions. Umm, No thanks!
Again, very promising, but without the option to separate search box from the map. And again, they charge by the keystroke.
Additionally, their support response was super slow. I enquired about the above just to confirm my findings and they got back to me after a week, by the time I had moved on.
3) Custom Implementation
Fed up with these popular alternatives, I decided to find a json of world locations. The biggest downside, as you might have guessed, is the lack of any detail in the data you find for free. It’s countries, their states and cities, and at most a few localities, that too the US only. You can buy a bigger data dump, but still it’ll have stale localities after a certain time, and a limited data.
One such data source I came across: GeoDataSource.
I did implement an autocomplete all the way using its free data dump, and if I hadn’t found the better alternative, I’d’ve stuck with it.
Strangely enough, Here JS is always placed well below TomTom and Map Box in the lists of Google Maps alternatives. I was expecting the similar outcome as above, and sure enough, for separate text field you had to implement your own version using their API. Quite unexpectedly, however, it was totally free!
I only had to implement autocomplete in Angular JS with their API, which I did. It’s been a long time now, and Here js has been working smoothly in our app, as a viable alternative to Google places autocomplete.
The slight (or big, depending on your requirement) downside, of course, goes without saying: it has limited data. For most little known countries (if that is what your app targets), it doesn’t go further than the country name and a few major cities. Only for the US, Canada, and the UK, its data reaches the administrative and local level. Here’s the geocoding example that can get you started.
Hope the above list helps you pick the right alternative!