Get all addresses for specific place/company - google-api

What I'm trying to do is collect all addresses for list of companies and trying to get it with Google Map Api.
For example when I search for "Burger King" at maps.google.com I recieve 600k+ results:
20 pages of detailed results I can use
Way more "pointers" on map - but they come with images as part of map data - so can't parse it.
There is new Google Places API - I'm not sure if it fit my requirements - I need to specify coordiantes+radius there so I can't get data for whole US or World.
My question is - if there any way to get that kind of data with Google API or are there any other reliable sources?
Thanks!

Related

Is there a way to get train lines that connect to a given Place of type 'train_station' [duplicate]

I've seen that you can retrieve nearby subway stations for a location using the Google Maps Places API, as explained here:
Google Maps: Retrieve nearby subway station's latitude and longtitude?
But in addition to that data, I would also like to retrieve the subway lines available at that station. Is this possible?
Currently the Places API doesn't expose this information for transit stations. There is a feature request in Google issue tracker to make it possible to retrieve lines numbers for each stop. You can find this feature request at
https://issuetracker.google.com/issues/35827961
Please feel free to star this feature request to express your interest and subscribe to further notifications from Google.

How do I find the current temperature of a city with NCDC API v2?

I'm a beginner with APIs but I feel this one is still a bit more vast and complex.
I want to find the air temperature of Boston. Or really, output any useful weather data.
Using this URL in JSON I can find the location of Boston:
http://www.ncdc.noaa.gov/cdo-web/api/v2/locations/CITY:US250002
Response:
{"mindate":"1885-01-01","maxdate":"2015-07-25","name":"Boston, MA US","datacoverage":1,"id":"CITY:US250002"}
Using this I can find the data category of "Air Temperature":
http://www.ncdc.noaa.gov/cdo-web/api/v2/datacategories/TEMP
Response:
{"name":"Air Temperature","id":"TEMP"}
This gives me no helpful information, so here is my effort to combine the two:
http://www.ncdc.noaa.gov/cdo-web/api/v2/datacategories/TEMP?locationid=CITY:US250002 (Air Temperature in Boston)
Response:
{"name":"Air Temperature","id":"TEMP"}
Normally when I enter an API all the information is there and available to filter via parameters. Here it seems the data is all divided. It will show you all the locations, all the data sets, all the categories that exist in the API, but how do I see the actual meat of the data? Ex. Current water temperature of Chicago, IL? Air Temperature on 3/14/2014 in Los Angeles, CA?
Here's my jsfiddle I'm using:
http://jsfiddle.net/f98dauaz/1/
You need to use a different endpoint, that endpoint I believe is just used for locations if you are looking for a location and data on that location itself.
You would need to pull from the data endpoint instead of the location endpoint, which you can find info on here http://www.ncdc.noaa.gov/cdo-web/webservices/v2#data
an example would be:
http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCND&datatypeid=TMAX&datatypeid=TMIN&locationid=ZIP:(zip_code_here)&limit=(your_data_limit_for_file)&startdate=(YYYY-MM-DD)&enddate=(YYYY-MM-DD)
Note this is for historical data not for current data

How to feed Slack archive into GSA?

I am wondering how can I use Slack API to feed message history into GSA (Google Search Appliance) and having this kept up to date.
Did anyone wrote a script for this?
I don't have a readymade script, but it should be possible as you've imagined; IMO (without being familiar with the slack api, but with some knowledge of the slack archive sizes, i.e., >500K messages), I think the main challenge would be to identify and extract only the pieces of information that are important to you from the slack archive (which can easily get you to run out of your GSA document index license limit if you chose your GSA feed record elements too discretely - e.g., imagine if every message were a separate feed record).
In other words, you need to identify the discrete feed records keeping them as atomically large as possible in order to keep the document license usage down to a minimum, while keeping them discrete enough to yield accurate results.
Once that's done, or if your GSA index license limit is not a problem, one possible solution is to create an incremental/full feed by reading updates from the slack archive using its API, and then compiling the new records found, into the GSA feed format (with information that you want to be able to search-on/omit contained within the tags as appropriate, and info that you need to present in the results, contained in html meta tags), and push those new records in to the GSA.
Another solution, if you'd be able to host a few web application pages that you can have the GSA crawl, will even allow you to keep its index up to date with a continuous crawl. For this you'd need at least one "jump page" which would just be a list of links each populated with query string parameters, to be passed to your detail record page, which would serve to identify a set of various slack message archive element IDs, that you've determined as needing to be indexed as a discrete record. You'd then need to set your "jump page" URL to be crawled by the GSA, and also develop your XSLT or other search results consumer service to be able to read/render the returned results with info contained in meta tags. Note: when the consumer service makes the search call to GSA, it'll need to pass in a "&getfields=*" query string parameter to get the GSA to return all the info contained in the meta tags.
I hope that my wording is not too esoteric and helps you in some way in designing your solution.

Bus Stop Details

I am trying to get bus stop details from the Google Places API. I have been able to get the actual bus stops but now I'd like to grab the details.
For example: This is the URL Google gives me from the response. https://maps.google.com/maps/place?cid=14960400563022267569
I'd like to get a JSON representation of this information (if its available). Appending output=json just returns an empty json document.
Does anyone know how to grab the info without putting it through a parser?
EDIT: So continuing to dig through the flow I got SOME information from this URL but still doesn't seem to show me the bus numbers or anything. http://maps.google.com/maps?cid=14960400563022267569&q=a&output=json
Currently, there seems to be no option in google apis to retrieve the public transit information the way you are seeing on google maps. Your best bet is to use google places api and to filter for bus_station to get details about the bus stations , but the information returned will be limited these result details . Another option is to use google directions api, where you can search for directions by keeping your bus station as the source and a suitable destination and the returned results will provide some transit details which include departure time, headways, etc.

Exhaustive Search on Google Places

I'm trying to use Google Places API for a business locator app, but am having trouble creating an exhaustive database of business.
1.The API call only returns 20 results back.
2.The "type" restriction (e.g. type=restaurant) does not pick up all businesses by type in a given zip. I could use "keyword" but not all restaurants have restaurant in their name, and not all spas have "spa" in their name.
3. Each call produces the same set of results from day to day, and with only 20 returns per call, how am I to get a more exhaustive database of businesses?
I can try to get around the above three constraints by looping through a very well degraded search of businesses: say by zip code, some list of keywords, category type. But I still won't get close to picking up the 50 million or so businesses in google places.
In fact, even when I make a call for restaurants and bars in my own neighborhood, I don't pick up popular places down the block from me.
How is the API usable for an app that locates places then?
Any suggestions on how to create a more exhaustive search?
Thanks,
Nad
I'm not able to answer your question regarding Google Places API.
But for your requirements ('business locator app', 'I don't pick up popular places down the block from me') I suggest you try Yelp Search API:
Yelp's API program enables you to access trusted Yelp information in real time, such as business listing info, overall business ratings and review counts, deals and recent review excerpts.
Yelp is a popular review website with a capable API and you may test the quality of database and the devoted user base they have at Yelp homepage.
Note:
They keep some data for themselves and do not return everything in response.
The (free) dev account has a limit of 100 calls per 24 hours.
I know I'm late but maybe it helps someone these days.
By default, each Nearby Search or Text Search returns up to 20
establishment results per query; however, each search can return as
many as 60 results, split across three pages.
You need to use the field nextPageToken that you will receive on the first search to get the next page.
https://developers.google.com/places/web-service/search
An issue in stack overflow says:
There is no way to get more than 60 results in Places API. Some people
tried to file a feature request in Google issue tracker, but Google
rejected it with the following comment Unfortunately Places API is not
in a position to return more than 60 results. Besides technical
reasons (latency, among others) returning more than 60 results would
make the API be more like a database or general-purpose search engine.
We'd rather improve search quality so that users don't need to go so
far down a long list of results.
google places api more than 60 results
I faced the same difficulties that you did and decided to use the Yelp API instead. It is free, very complete and returns up to 1000 results. You should however check the terms of service before doing anything. It does not provide the website of the business (only the Yelp website link).
https://www.yelp.com/developers/documentation/v3/business_search
Other options I investigated at that time:
Foursquare ventures. (It was very expensive, and only returned up to around 100 results)
Here places API
Factual Places (I don't think this one is an API)
Sygic Travel API (Specific for touristical spots)
Planet.osm (OpenStreetMap)

Resources