Geocoding Chinese addresses using Google Maps API in Python? - google-app-engine

I have looked into Geopy and googlemaps (http://py-googlemaps.sourceforge.net/) and they both do not work for Chinese addresses. My app is stored on the Google App Engine. What I want to do is to parse a file containing addresses of restaurants in Hong Kong, and then Geocode the addresses and store the Lat and Lng in the datastore. How do I do this?

Try the Chinese language version of GoogleMaps ditu.google.cn. It is better than the China coverage in the English Google Maps (at least it was a couple of years ago when I last looked into it).
Be aware that the Chinese government restricts foreign use of GIS data, so there may not be a good geocoding solution available if you are based outside China.

I am not sure the API provides geocoding in China. Are you also saying that even with the google maps interface you can not get the geocoding to work. If that is the case then you better try to move on to a different service since there is quite a bit of functionality in the gmap website that is not in the API. So if the website doesn't work it is probably a darn good bet the API won't work.

Related

Any alternative to Google Maps API with directions from current location?

I am currently developing a web site for my thesis which features my City's tourist spots (e.g. malls, parks, restaurants) with Google Maps API that shows the current location of the user and the destination point and all the possible routes to said destination. But sadly, with the Billing system I am limited to load a few maps before it says "OVER_QUERY_LIMIT".
I have researched few free Maps API and I have found some, like MapBox, HERE Api... What would be the best free alternative for Google Map API?
P.s. I am still a student and can not afford to pay $200. If there are any other possible ways in handling this, please do let me know. Thank you!
Check Freemium Plan from HERE Maps, 250.000 transactions/months for free, no need for credit card.
You can use JS, REST and Native APIs.

Using Google Maps website to create a keyless Embedded map

I notice that, if I follow the instructions on this google maps answer, there is no information about the requirement for an API key when embedding a Google Map iframe into the HTML of my website or blog.
What will be the requirements for this sort of use regarding keyless embedded maps access following June 11?
None I suppose,
I'm using ruby explaining the code below
<iframe ... src="https://maps.google.com/maps?q=#{question}&z=15&ie=UTF8&iwloc=&output=embed" ... ></iframe>
So far this is working (Aug 30) and should be working for a while since it's the Maps way to share addresses. This embed forces a couple logos related to Google like, Maps Embed API (free but not keyless)
If you plan to use Maps as a developer with other options please consider registering an API in Google cloud.
Meanwhile, you could use it like you are using it.

Is it possible to allow users to search for an address, and attach a pin to a location like in Google Maps using Leaflet? How do I do this?

I've read about how some sites use streets data and overlay it over their map tiles. Is this necessary in leaflet? I think the attaching of a marker is fairly well-covered in the Leaflet documentation, but I'm not sure whether there's a (ideally reasonably easy) way to give it the full search for address functionality in Google Maps.
Should be possible - you'll need a geocoding web service, like Google's, that you can hand an address and will give you back a lat/lon coordinate, which you can then plot onto Leaflet. I believe MapQuest has a free one; not sure if there's an API limit or anything along those lines: http://www.mapquestapi.com/geocoding/
In fact, I think this template site from MapBox, though it doesn't use Leaflet, hooks into MapQuest for it's geocoding. You might be able to use that as an example.
MapQuest offers two Geocoding Web Services, which will take an address and convert it to latitude and longitude coordinates.
MapQuest Geocoding Web Service (licensed data, meaning, the 'behind the scenes' geocoding data is commercially-available data)
MapQuest Open Geocoding Web Service (open data, meaning, the 'behind the scenes' data is open, generated by users of the OpenStreetMap community).
The Open Geocoding Web Service is brand new! For more information, check out the MapQuest Developer Network and Developer Network Forums.

Geocoding - the should I use API or database?

I need my users to be able to regularly geocode their addresses, but NOT onto a map - I simply need to be able to translate an address into a set of lat/long coordinates so my site can react accordingly.
It seems like Google doesn't want you to use their geocoding service unless you are actually plotting on a map. On the other hand, I want to make sure that the service is reliable and will last a long time.
I'd also consider downloading some kind of address database and running the requests myself if I knew where to find it.
Any ideas?
A good alternative to the Google Geocoding API is SimpleGeo (no affiliation). They are more liberal when it comes to the Terms of Service, meaning you have fewer restrictions of what you can do with the data.
On the other hand, I remember a quote from their founder saying their non-US data is not on the same level (or better) than, for example, the data from Google.
Note this answer is incorrect, but retained for posterity.
If you are under 2,500 requests per day, you should be fine using Google's geocoding API:
http://code.google.com/apis/maps/documentation/geocoding/
Are you basing your assumption about what Google wants on this?
This document is intended for website and mobile developers who want to use geocoding data within maps provided by one of the Google Maps APIs. It provides an introduction to using this API and reference material on the available parameters.
That's describing the audience of the document, not the audience of the API itself.

Google App Engine: Share data between users

Is it possible to make invitations to share/view data similar to Google Docs?
Definitely: GAE is a platform, a canvas for what you want to build. Document access management is entirely up to you, but of course you'll have access to some APIs to facilitate your life (e.g. Google Accounts integration).
Of course it is. You can create virtually any kind of web application that you want with AppEngine. It doesn't come with anything built-in to do this other than an API for sending emails, but you can certainly code up this functionality.

Resources