I'm trying to detect current user address using MKReverseGeocoder passing coordinates obtained via CLLocation class. Reading MKReverseGeocoder Class Reference I noticed that
The Google terms of service require that the reverse geocoding service be used in conjunction with a Google map; take this into account when designing your application's user interface.
so I'm wondering if (and eventually how) can I reverse geocode user current location on iPhone OS SDK 3.1.3.
I thought using Google Maps API but the EULA has the same obligation.
Yahoo Maps API is even worse and Microsoft one aren't free.
http://www.geonames.org/ is another free alternative
Well if the EULA of Google has the obligation and you are not following it ( similar topic here), then of course you can't do it.
Still I would advice you to find some alternatives, what about this, it's free and doesn't look bad at all.
a question on geonames:
for retrieving city i must pass north,south,eas,west; there's a way to pass only lat & long for retrieve city? I canno't find method to do...
Related
I'd like to know how to create an API call to the Steam web API in order to retrieve all the relevant data for a specified game. I found an example call that almost does what I need, except this call requires you to know the Steam app ID as you can see below:
http://store.steampowered.com/api/appdetails/?appids=730
As you can see if you click on the link, all the information I need is returned with the API call. However I'd like to know if it's possible to modify this API call so that it returns the required information using the game name rather than the Steam ID number?
Unfortunately I don't think this is possible (although the lack of official documentation of the API means I may be wrong).
Firstly, from a design perspective it probably wouldn't work - games could have the same name and so name is not a unique enough reference to identify an item (which is a fundamental concept of a correctly designed REST API).
Secondly, all examples (such as this here) I have come across on the web of people self-documenting the API use appID to identify a game/software and have found no cases of being able to use name. The other documented Steam DEV APIs also use AppId
I'm using Bing Maps on Windows store app (XAML).
I have the longitude and the latitude and I want to get the address (if it exists) of the location.
How can I do it?
Thanks!
You want to do what is called reverse geocoding. Take a look at the SearchManager class: http://msdn.microsoft.com/en-us/library/dn306041.aspx This will let you reverse geocode your coordinates and get the address.
Alternatively you can also use the Bing Maps REST services:
This would be more work than using the search manager, but wouldn't require loading an interactive map first.
http://msdn.microsoft.com/en-us/library/ff701710.aspx
http://msdn.microsoft.com/en-us/library/jj819168.aspx
http://msdn.microsoft.com/en-us/library/jj870778.aspx
Since it sounds like you are new to using Bing Maps in Windows Store apps I'd recommend downloading a free copy of my eBook on creating location intelligent Windows Store apps. It shows how to do this an a lot more. You can get a copy of it here: http://rbrundritt.wordpress.com/my-book/
I've set up API service account access and that seems to be authenticating and connecting OK using the provided sample code (https://developers.google.com/maps-engine/documentation/oauth/serviceaccount).
I've shared my map with the provided service account email address in the Google Maps Engine UI.
Accessing the API method https://www.googleapis.com/mapsengine/v1/projects I expected to see my map in a returned list of projects visible to the service account. Instead, only an empty projects array is returned.
Ultimately my goal is to access place name and geodata stored within a layer on the map I have created in Maps Engine Lite. Is there a step I have missed or something I have misunderstood about granting API access to a Maps Engine Lite map?
Did you progress with your question?. I got one project in the list but because I singed in for a free Google Maps Engine account. That allows you to créate just one project.
But I was looking for accessing "my places" maps.
It turns out certain features, such as the ones I was looking to use, are only available on the (paid for) Maps Engine, and not "Maps Engine Lite". The API is different.
When you mention that they are just available on the Maps Engine Pro (paid for) version, do you mean that the user who owns the maps has to upgrade or yourself, as a developer that want's to access user's maps, have?.
I wouldn't mind to pay (a reasonable price) for it in order to get my app working again. But I don't think most of my app's users would.
Could you check if it worked that way?
I'm developing an application which use map. I'm trying to avoide google API (because their request time are limited).
I want something complete free but can provide feature like geocoding, reserve-geo, find nearest place ...
Any suggestion ?
Have you looked at geonames? They are using googlemaps as well as openstreetmap for the forward and reverse searches. I know openstreetmap can handle everything that you are asking for.
OK, here's what I want to implement and I need your ideas :
Input a geo location by name/address/etc (e.g. London, Oxford Street 20)
Get the point's longitude/latitude
My Questions :
How would you go about that?
Is using Google Maps API (that's what I first thought of) my only solution?
It'd be better if the service used CAN be freely integrated in a commercial app - so any idea is welcome... :-)
What you are trying to do is basically geocoding. Major map providers like Google, Bing and Yahoo (and many more) all offer some form of Geocoding API for you to take advantage of. Check out the following quick links:
Google Maps Geocoding API
Bing Locations API
Yahoo! Maps Web Services (Geocoding API)
Edit: (just saw the objective-c tag)
Note that these are non-native solutions. However, the provided APIs are typically REST-based (with output as xml/json), it shouldn't be hard for you to consume these services to grab the gecoded lat-long that you want from within your app.
There is a built in API for that.
For iOS 5 and newer you can use CLGeocoder and for older version you will need to use some extern libraries.
Just call
- (void)geocodeAddressString:(NSString *)addressString completionHandler:(CLGeocodeCompletionHandler)completionHandler
where you want to get the location. It runs async and in the completionHandler you will get an array of all possible placemarks for your address where the first one is the most accurate. As apple says:
For most geocoding requests, this array should contain only one
entry. However, forward-geocoding requests may return multiple
placemark objects in situations where the specified address could not
be resolved to a single location.
Off topic:
Am I the only one whos first thoughts about Oxford was "What does he mean with this weird Hex value?"