I have been using the google maps and geocoding apis. As they state there is a cost depending on how many searches that you do with your API key. So, is there any way I can see what my current costs are - so I don't break the bank.
Thanks,
Ward
I use almost exclusively OpenstreetMap, but not for geocoding, because I think Nominatim is not very flexible.
Can I use google geocoder free and unrestricted? Do I need to write on my website that I use google geocoder? Are there any restrictions, like this
However, I would find that very strange because I only use google geocoder.
For clarification:
PHP:
$filename="http://maps.googleapis.com/maps/api/geocode/xml?address=".$_GET['address']."+&sensor=true_or_false";
$xml = simplexml_load_file($filename);
$lat=$xml->result[0]->geometry[0]->location[0]->lat;
$lon=$xml->result[0]->geometry[0]->location[0]->lng;
And these coordinates I use then for OpenStreetMap.
I would be very happy for an answer.
Thanks,
Toby
No you cannot.
The Geocoding API may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited. For complete details on allowed usage, consult the Maps API Terms of Service License Restrictions.
Derived from Google
I can't find a clear answer for this one. I've read that there is no limit for Google Charts. However, I have read that there is a limit on using geocharts because of the usage of geocoding which falls under the Google Maps API. That said, under Google Geocharts Data policy, there is this:
Locations are geocoded by Google Maps. Any data that does not require
geocoding is not sent to any server. Please see the Google Maps Terms
of Service for more information on their data policy.
Is there any way that I can be sure that I am not using geocoding when I set the locations.
My locations are sent to the Geochart API as latitude-longitude, ISO-3166-1 alpha-2, or ISO-3166-2.
I just want to be sure that I am not using geocoding because I could have 25,000+ calls a day and do not want to have an issue with the Google Maps API Limits.
When I am searching "Rudy barber Shop, New York" string in http://maps.google.com, google map showing 10 results...
But When I am using google map api in my App, It only returning two results
http://maps.googleapis.com/maps/api/geocode/xml?address=Rudy%20barber%20Shop,%20New%20York&sensor=false
Now my question is that how can get the same result.
Thanks
Mandeepd
I don't think you can get exactly the same results as in Google Maps.
Google Maps is a whole application. It uses multiple kinds of search engines behind the scenes and some may not be available as APIs, e.g. transit (public transport) directions.
Your sample request shows that you are using The Google Geocoding API which is meant for converting addresses (like "1600 Amphitheatre Parkway, Mountain View, CA") into geographic coordinates. This only works for addresses, not businesses. When you put a business name in front of the address, the Geocoding API still tries to figure out where that may be, based on the part of your query that looks like an address. However, the Geocoding API is not meant for that use.
If you are after searching businesses around a given location, maybe you could use the The Google Places API (Experimental) but make sure to comply with its Requirements.
When I type in addresses in Google maps for locations in Asia, quite a lot of them are off by more than 200 metres. For example, "blk 85 bedok north road, singapore" is off by more than 300 metres. While I don't expect Google Maps to be spot on every time, sometimes the error is too great for certain use cases. What options do I have to handle inaccurate Google Maps locations in a web app? The web app should let the user enter an address or postal code as part of an entry and I will geocode the address and store the lat-long.
You could use bing, yahoo's and google's Geo Location api's to find latitude and longitude for a location, average the results together and use the result. Thus, if they all agree, you still get a good location, but if they disagree you get the best approximation of all three.
You could even programmatically compare the results from each engine and throw out any that don't agree with the others (for instance, if bing and yahoo agree and google does not, you could throw out google).
Beyond that, if you have a collection of addresses you know to be wrong, you could simply store the correct longitude and latitude for those points, and override the results in those cases.
Of course, to get around this problem at all, you'll need to geocode the addresses, check their validity in some way (as described above), and plot them using their latitude and longitude.
You don't have any fixes for this really, you're at the mercy of the accuracy of google maps here. The important part is you don't know if the address in inaccurate when doing one search to the next, so nothing you can do to handle it.
You can post a topic here and google will see it and often respond as well: Google Maps Local Listing Forums. I'd open something there with some of your examples and hope they get more accurate...that's all you can do in this case.
There are always other alternatives as well, yahoo and bing have mapping APIs, but I have no idea how much better or worse off you'd be going that route.
The problem is not the lat/lng data, in fact, they are correct. The problem is that the geo coords of the map tiles of the public Google maps api are inaccurate. The maps at maps.google.com are provided by a different map provider than the map tiles used with the public Google Maps API that you can embed in your website, use in your own applications, etc.
Check my recent posting at Google Maps & apps with mapview have different current positions
Is the result out on maps.google.com as well as through the maps api?
If on google maps live site the result is accurate then you can do an ajax search to return the correct lon/lat.
I have used this when geocoding UK postcodes
Geocoding UK Postcodes with Google Map API
I tried to reply to the upper answer, but I am not qualified enough yet. Just be aware that whatever you're using for geocoding, sometimes has restrictions on the use of that data. For example, google's geocoding API isn't allowed to be used to display information retrieved anywhere but google maps. The same might be for the others, I don't know what your project is, but it's something to be aware of.