The two most popular map frameworks available for iOS developers are Google Maps SDK and Apple MapKit. Now there’s also MapBox and a few others, though I won’t address those today because they are NOT free to use and they are less common.
Before jumping into a simple comparison of the two frameworks, I will say this: Google is an information based company whereas Apple is a electronic product and services based company. Google doesn’t want your money – they want your soul. Google will give you everything you want for free if you just use Google. Apple will make you pay for everything – and a lot for it.
It’s important to understand that Apple doesn’t generate revenue from MapKit, where as Google Maps is a part of its core ad revenue. Thus, a reasonable expectation is that Google Maps SDK would be better – simply because there’s motivation for it to be.
In my experience, this turns out to be true. Let’s take a simple example. Suppose you’re building an app that allows users to tap on different neighborhoods in their city. Each neighborhood is essentially a polygon. Both frameworks allow you to draw polygons to your heart’s content. But what about detecting a tap on a polygon?
Google provides this delegate callback:
- (void) mapView: (GMSMapView *) mapView didTapOverlay: (GMSOverlay *) overlay
What does Apple provide? Nothing! Absolutely nothing! I was just shocked and clenching my fists.
OK, so what else does Google have to offer that trumps over Apple in the domain for mapping?
Take a look at this simple API:
Walla, so much information in a mili second about any address in the world!