I have an iphone app (iOS 5) that uses a UISearchBar to search an MKMapView. We used JSON queries, and used the fantastic answers from this question as reference (our code is very similar). The process itself works fine now, but we tend to get no results back from Google when we query them, or just get a really far away and incorrect one. Most times we can even search for “McDonald’s” or “Subway” at it won’t return any results. In general, it rarely gives a good result back unless we’re very specific and include city and state and everything.
Is there another better way to go about this? Has something been updated since that answer that we should now take in to account? The problem doesn’t seem to be that the code isn’t working, but rather that Google just doesn’t handle queries well the way we do it. This seems to be a fairly common use for MKMapview so I figured there should be an easier and better-working solution.
Any help would be much appreciated.
Here is a very useful list of the parameters that the Google Maps API supports:
http://querystring.org/google-maps-query-string-parameters/
You have a couple of options:
1) Get the user’s location from the app and pass it into the search query with the
sllparameter, e.g.this search doesn’t include a location:
https://maps.google.com/?q=starbucks
but this one does (I’ve used San Francisco in this example):
https://maps.google.com/?q=starbucks&sll=37.776414,-122.437477
Then you’ll get results for the user’s actual location. You’ll also need to do something sensible if the user does not permit the app to access their location (in that case you may want to disable search).
2) If your app is for a specific place, then you can just add that place on the end of your search string. e.g. my Domesday app is only for England, so I include “,England” on the end of all my search requests, and that works nicely for me.