Rails geocoding not for a map, not with Google - ruby-on-rails

I'm using the geocoder gem, which by default uses Google for geocoding. However the Google terms of service do not probably allow usage that does not immediately show on a Google Map. Likewise Bing I think. Is anyone using a geocoding service that is both accurate for U.S. street addresses, and has terms of service that allow use outside of a map?
Thanks!

You can use the Bing Maps geocoder without a map if you wish. The only restriction is that you can't show those coordinates on a competitors map such as Google Maps. If this is for a mobile app, Win 8 app, or a public facing website there are free terms of use which you can look into. Mobile and Win 8 allow 50,000 transactions a day (i.e. 1 transaction == 1 geocode requests), public facing websites are allowed 125,000 transactions a year. If this is for an internal application or non-public facing app then you would need to license Bing Maps. You can find more information on licensing here: http://www.microsoft.com/maps/Licensing/licensing.aspx

Related

Can I use google places API (auto-complete) and Mapkit together?

I want to allow the user to select a place (Google places auto complete API) and then show the place selected on map.
Can I use google places API for iOS and apple map (Mapkit) for this purpose? Map and the selection feature will be on separate view controllers but according to https://github.com/watsonbox/ios_google_places_autocomplete ,
displaying Google Places on a non-Google map is against their terms of
service.
So if I use them together, Will my app wont be accepted while uploading or app store? Or what will happen?
From Google Terms of Use:
(d) No Use With Non-Google Maps. Customer will not use the Google Maps
Core Services in a Customer Application that contains a non-Google
map. For example, Customer will not (i) display Places listings on a
non-Google map, or (ii) display Street View imagery and non-Google
maps in the same Customer Application.
As for me it says that we can't show places list provided by Google Places API on non-Google map. But it says nothing about displaying place that was chosen from Google Places list.
More then that, I have app with exact functionality that you want and I didn't had any issues with App Store submission.

Getting location coordinates from Address

The user will be prompted enter his address in a textfield and in the backend I want to get the location coordinates of the address.
I’m using geocoding service from google but not any of their APIs. I read somewhere in their document that “use of the geocoder for any purpose other than obtaining locations that will be displayed using the google maps APIs is a violation of the Terms of Service”.
And this is how HTTP request I use
http://maps.googleapis.com/maps/api/geocode/json?address=ADDRESS_STRING&sensor=false
Can I do this? I’m confused because I'm not showing any map at all but I want to get the coordinates. Will this be violating their terms?
Unfortunately, yes, I think you'd be breaking Google's rules here. See also this answer.
You could still use iOS' built-in forward-geocoding engine. See here for the docs.
Google Maps terms are very restrictive. However, it looks like they do allow showing results without Google Maps (Geocoding API Policies):
You can display Geocoding API results on a Google Map, or without a
map. If you want to display Geocoding API results on a map, then these
results must be displayed on a Google Map. It is prohibited to use
Geocoding API data on a map that is not a Google map.
So you can't display Google Geocoding API results on "non-Google" maps.
Nevertheless, please remember that you still can't cache (only lat/long on the end-use device for 30 days) and store results.
Fortunately, there are many geocoding services that are based on open data. For example, we at Geoapify allow our customers to store and even redistribute data. Try our Geocoding API, and maybe you find that it's a worthy alternative to the geocoding service from Google.

Track exact Geolocation with Google Analytics and show on Map

Situation: I want to track some Data with Google Analytics on the server-side.
Problem: My application is able to provide an exact geolocation (lat, lng). I want to track it with GA as the 'users location' so i can show them on a Map in the GA Dashboard.
I know i may track custom variables/events, but am unsure how to plot them on a map in Google Analytics. My company would like to stay with one reporting tool.
You will not be able to plot these in the Google Analytics dashboard, but you should not let this stop you from moving forward. You could do this fairly easily by saving the geolocations in a custom variable and then pulling that data and then plotting it using a combination of the Data Export API and the Google Maps API. You will not, however, be able to embed this within the Google Analytics dashboard.
It currently is not possible to provide geolocation information directly to google analytics. Google automatically extrapolates that information based on data gathered from the web client (e.g. ip address), and you cannot provide that information since you are invoking tracking on the server-side.
It would be nice if google added the ability to provide at least city level geolocation data for server-side tracking, but it doesn't appear possible at this point in time.

Google Places API in iOS application

Let me share my findings before asking the question.
Google Places API documentation says:
"Note: To use the Google Places API you must first request a Maps API
client ID and cryptographic key which you must use to sign your
request URLs. For information on signing URL requests, please see the
URL Authentication documentation within the Web Service APIs home
page."
The Google Places API is still in developer preview.
http://code.google.com/apis/maps/documentation/places/
We need a Client ID (required) and a Signature (required) to use
the Google Places API.
http://code.google.com/apis/maps/documentation/webservices/index.html#URLSigning
And, to get the Signature, we need a Google Adsense account to get
Adsense publisher id (required).
http://gmaps-ws-console.appspot.com/
You can find the requirements to use the Google Places API here.
http://code.google.com/apis/maps/documentation/places/index.html#Requirements
The Signup page for Google Maps API suggest that, "Your service
must be freely accessible to end users. To use Google mapping
technology in other types of applications, please use Google Maps API
Premier. See this FAQ for more information."
http://code.google.com/intl/it-IT/apis/maps/signup.html
Now, here's what i want to know.
I'm planning on using Google Places API in my iOS application. I don't
want to use Adsense. Can i still access the Google Places API for
free? How?
If i can't access the Google Places API for free, what are the costs
associated with using this service, and the available payment models?
I wasn't able to find any particular resources for this information.
Here's a specific scenario. What if my iOS application is free. The
free version uses Google Places API. But... my iOS application has
some additional features which are exposed using In-app Purchase (paid
features). The paid features do not use Google Places API. Is this
acceptable?
We opened up the Google Places API to all developers this week at Google I/O and simplified the Terms and authentication:
http://googlegeodevelopers.blogspot.com/2011/05/places-everybody-show-is-about-to-begin.html
You no longer need to sign your requests, but instead just use a key obtained using the Google APIs console. An AdSense ID is no longer required, but you will need to go though a credit card based identity check in order to upgrade from 1,000 to 100,000 request per day.
You can use the Places API in mobile apps that are free or sold online through a mobile app store such as the Apple App Store or Android Market. For fee desktop apps however will require a Maps API Premier license which will be offered once the Places API graduates from Google Code Labs.
For information on getting started, see the docs:
http://code.google.com/apis/maps/documentation/places/
HTH,
Thor

Can i link google maps from within my application without paying fees?

When i use the Google Maps API from within my commercial application, i have to sign-up for an API key and i have to pay fees for the usage of the Google Maps API.
What happens if i just use a link that opens a new browser window in my app?
Example:
http://maps.google.de/?saddr=Los_Angeles&daddr=hollywood
Do i have to pay fees for this, too?
Thanks in advance,
David
No you do not have to pay for such usage.
In addition, using the Google Maps API can also be free, if your Maps API implementation is generally accessible to users without charge. (Google Maps API Terms of Service)

Resources