Google Maps: how can I get the exact date of a Google review for a business I don't own? - google-maps

I'd like to explore patterns of Google reviews for a specific business (that I do not own). It would be useful to get the exact date of a review, rather than just the "3 months ago" or "1 year ago" approximation that you get via the web interface.
Does anyone know a way to do this? Here are the options I've explored so far:
I tried "manually" scraping the review list HTML (e.g. from a page like this), but it does not contain any review timestamp that I could recognise, other than the approximated relative date (e.g. "1 year ago").
The Google "My Business" API does seem to provide exact review dates, but to use this API, you need to own the business for which you're retrieving the reviews.
The Google Places API does expose review dates, but only for 5 reviews per place. According to this API feature request, this limitation remains in place even if you pay for Premium data access.
Results from party review analysis tool Reviewshake contain an absolute date field, but it is derived from the approximate relative date. So it erroneously makes it seem like most past reviews occurred exactly on this day each month, or exactly on this day on previous years!
Any help much appreciated!

The unix timestamp you're referring to can be easily converted from you first bullet point; what occurs when you view the reviews is Google's ReviewService is polled and the date comes in a unix format, that unix format is processed by a date/time function in the JS file on maps that returns the duration in length resulting in a week ago, a month ago, etc.
There is no known interface other than some of what you've already looked at; the closest you've got in your first point is the direct maps URL however you would need to rip the JS feed and convert the timestamps where you can make sense of them.
There aren't many sources that can do this but I can recommend you try https://www.reviewsmaker.com/api/demo/google/ or sign up free at reviewsmaker.com and add the business as a listing and you'll be able to crawl the results; otherwise you'll be stuck scraping the same data.
If you find another way please do share your results!

Related

How to get public transport time schedule from The Google Maps Directions API?

I am trying to make public transport time schedule app using google maps directions api.
Whats the best way to get all of the possible departure_time's for a specific route from one place to another from a specific time?
The problem is, the server is always responding with only one route for one specific time. How can I get all of the following departure_times?
The worst way to do this is asking server every minute if there is some new travel link. But hey, its gonna take a lot of time!
So I thought google might be providing some kind of transport schedules but I can't find any info on google developers webs. I saw only the way to give google schedule information with the help of General Transit Feed Specification (GTFS) here or here.
But I can't find the way to get it from them.
I don't believe google maps directions api will return the information you are looking for as a collection.
The problem with transit data is that calculating a future schedule can require a lot of processing (especially if there are multiple routes involved in the rider reaching their destination) because, basically, the system needs to do a trip plan for each scheduled trip at starting point for the time range.
Google hints at this in their API regarding the alternatives parameter
alternatives — If set to true, specifies that the Directions service may provide more than one route alternative in the response. Note that providing route alternatives may increase the response time from the server.
Also, the different future departure times may actually be different routes or combination of routes (e.g. where multiple routes may come together on the same street for a while - for instance, near a college campus or other transit hub)
In order to get the underlying route data that would have the actual stop times you are looking for you would need to download the transit agencies' GTFS data directly and process it yourself (check our GTFS Data Exchange). This is what your competitors are already doing (e.g. Transit App, Moovit, etc.). There are packages that will do some of this processing for you (e.g. One Bus Away). However, even with the use of existing libraries, there is some heavy lifting involved here (from a development point of view).
As a final note, if you want to pursue using google maps directions api you wouldn't need query it for each minute within a time-range in order to get a series of departure times. You should be able to make a series of calls with the departure time set just past the departure time you got back in the previous call. For example, if the first trip time was 1:00pm set departure_time to 1:05pm and request again, then if the second trip time was 1:20pm set the next departure_time to 1:25pm and request again, and so on to build your list of future trips.
Okay. Firstly your question is not in the right spirit as stackoverflow demands. Check at google's developer console , API section and check if they offer any such API to give you all transport schedules in 24hrs or not ? If there is any such API then good, you can hit that but if not then I am afraid you wont be able to get it unless you hit API after some intervals.
Another suggestion is that , you can try yahoo or bing maps and check if they have any such API for your query.

Office365 REST v1.0 API calendar does not return recurrences

The Microsoft Office team annouced today the availability of a REST API across the Office365 suite, as well as guides for writing apps across the different app ecosystems.
To evaluate the API, I simply wanted to get a listing of my events for today.
The new API seems to be relatively unchanged from the preview API
The basic GET is quite simple:
https://outlook.office365.com/api/v1.0/me/events
This gives back listing of calendar events. To get a specific day, we should be able to use OData Query Parameters.
For example:
https://outlook.office365.com/api/v1.0/me/events?$filter=End gt 2014-10-28 and Start lt 2014-10-29
This gives a much shorter list, but it's not quite right.
There are no recurring events that weren't created in that timeframe.
This seems to be a known issue with the preview (EWS/OData) API:
Office 365 API recurring meetings not always returning
Office 365 API EWS calendar not expanding recurring events
There are some work-arounds mentioned in the above isssues, but there are notes that the API is in flux and that those approaches may not work in the v1.0 release. Furthermore those work-arounds don't seem to still apply, which is why this question is not a duplicate.
So, how can one get all of today's events, including recurrences, via the Office365 REST v1.0 API?
Thanks for your interest in Office 365 REST APIs. You are correct that, in V1.0, GET on events returns single instance meetings and series masters, and doesn't expand series. We have two ways to expand recurrences. We just checked and it looks like that documentation is missing and we will update it ASAP. In the meantime, here is the info that should unblock you:
CalendarView: You can use this API to get list of all events (single instances and occurrences of series) for a given timeframe. Timeframe is specified in UTC, so you have to ask for the right times based on your user's time zone. Time zone support is high on our priority list and will be coming soon. Here is an example request to fetch list of events for October 1-31 PDT:
https://outlook.office365.com/api/v1.0/Me/CalendarView/?startDateTime=2014-10-01T07:00:00Z&endDateTime=2014-11-01T07:00:00Z
Please note: We are in the process of fixing a bug where navigating the "next" link in the response doesn't work, but a fix is already on its way.
Instances of a Specific Meeting Series: You can use this API to expand a specific meeting series for a specified time period. Once again, times are in UTC. Here is an example to expand a specific meeting series to get list of instances for October 1-31 PDT:
https://outlook.office365.com/api/v1.0/Me/Events('AAMkA...')/instances?startDateTime=2014-10-01T07:00:00Z&endDateTime=2014-11-01T07:00:00Z
Please let me know if you have any questions or need more info.
Thanks,
Venkat

Should I use Google Maps API/Geocoding to power a store finder

I'm new to geocoding so I'm not certain this is even the question I should be asking, but all of the other discussions I've seen on this topic (here and on the Google API forum) are so application specific that I feel like I might be missing a very elementary step - I don't need to know how to implement a store finder - I need to know if I should.
Here is my specific situation - I have been contracted to design an application wherein we will build a database of shops (say, independently owned bars and pubs). This list will continually grow and change as shops close and new ones open. The user can enter his/her point of origin (zip code or address) and be shown a list or map containing all the various shops within a given radius in order of proximity.
I know how to deliver these results from a static database:
One would store the longitude and latitude as columns for each row and then just use that information to check distances.
But I have inherited an (already fairly large) database of shops which have addresses but not coordinates - so I'm not sure what the best way to get those addresses is. I could write a script to query them one at a time against google geocoding, I could have a data entry person manually look up the coordinates for each one and populate the data that way, or maybe there is a third option I'm not aware of.
Is this the right place to be asking this question? Google Maps Geocoding doesn't host a forum of their own, but refers people to Stack Overflow. Other forums on the net dealing with this topic are all relating to a specific technical question but no one seems to be talking about it from a top-down perspective (ie the big picture).
Google imposes a 2,500 queries per day limit on free users and a 100,000 queries a day limit on paid ones - neither of these seem to be up to the task of a site with even moderate traffic if, every time a user makes a request, the entire database (perhaps thousands of shops) are being checked against Google's data. It seems certain we must store the coords locally but even storing them locally, there will have to be checks against Google in order to plot them on a map. If I had a finite number of locations (if, for example, I had six hardware shops) and I wanted to make a store locator, there would be a wealth of discussions, tutorials, and stack overflow questions available to point the way for me, but I'm dealing with a potentially vast number of records and not sure how to proceed or where to begin.
Any advice would be welcome - Additionally, if this is not the best place to be asking this question, a helpful response would be to indicate a better place to post it. I've searched for three days but haven't found what looks like a good resource for asking such subjective questions.
The best way of course would be when you use a geocoding-service to get coordinates and store the coordinates in your DB. But it's not possible with google's geocoding-service, because it's not permitted to store geocoded data permanent.
There are free services without this restriction, some keywords to search for: mapquest, nominatim, geonames(but these services are less accurate than google)
Another option would be to use a FusionTable. The geocoding would run automatically(but the daily limits are the same as for the geocoding-service). The benefit: the geocoding is permanent(you can't access the locations directly by e.g. downloading the DB-dump), but you may use the coordinates for plotting markers(via a FusionTablesLayer) or filtering(e.g. by distance)
The number of entries shouldn't be an issue, 100k is no problem for a database

examples of custom google maps

I'm looking for examples of how to create my own page/site with google maps API.
Specifically, if anyone knows of example for road trip. Let me explain:
1. Let's say I'd like to drive from california to maine, obviously I'm not going to get there in a day.
2. Now let's say I'd like to leave at 5p.m drive all the way into the night, 11p.m - 12.am for example, so it would be nice to see where I can be after 5, 6 hours of driving.
3. Standard google (yahoo, bing, etc.) don't have that option (unless I don't know how to enable it), but they only give you total time, for example 30 hours. I can't nor I don't want to drive for 30 hours straight. I'd like to see where I can be after x hours.
anyway, this is getting to long, so if anyone has a collection of good/nice/cool examples with sample code, please post it.
Based on the time you want to leave, the time of arrival as given by your api you can calculate the average speed.
Using the average speed, you can know how many kilometers you can drive in a given time. If you know how many kilometers, you know where you are.
It looks like if you are using the API it returns information about each step (distance, time, etc.). You can then use that information to show the user where they will be based on what time they started. API Information here.

Using the CloudMade API or some other geosearching API to get tourism spots?

I've been looking for an online geosearch API such that I can get location data for tourism spots, e.g. historic landmarks, tourism information locations, castles, etc. I'm not looking for a map image, but rather a list of location tagged data. I've played with CloudMade, but none of the object types seems to returning anything like the number of reponses I expect (even with a wide bounding box). None of Bing, Yahoo or Google Maps seems to have a geosearch API w/o the maps -- just geocoding. I've seen apps that find restaurants open 24-hours or apartments for rent near me -- where does that day come from? Thanks!
Where does that data come from:
Nearby restaurant searches are often performed with the Google AJAX Search API using its Local Search mode. It doesn't work for performing vague searches like "tourism spot" or "historical landmark", it needs something more specific like "museum". It's fundamentally a business search (they initially bought data from Yellow Pages, so it's heavily biassed towards organisations that have a telephone) so it won't find natural features. It's also limited to about 8 replies per query.
Apps that find apartments for rent tend to have their own database, and that database is built by reading things like Craigslist.
CloudMade uses limitation on the returning results not to hurt your browser. By default it returns 10 result. You could use "limit=" and "offset=" for paging. And the response contains "found" field which gives you the total number of results.
BTW, couple of weeks ago new CloudMade Geocoding API was published. It is far faster and easier to use.
More info - http://blog.cloudmade.com/2009/10/08/new-geocoding-engine-delivers-results-up-to-24-times-faster/
Documentation - http://developers.cloudmade.com/wiki/geocoding-http-api/Documentation