Geo tagging and Google Drive search - search

I have the following situation:
The pictures that my app stores on Google Drive have GPS position written in the EXIF data. See here.
I'd like to use the position later for additional indexing. Maybe even to get a street address from one of the friendly Google APIs. But it looks to me that there is no obvious integration of the GPS data with Google indexing. If I leave them in the EXIF header, I can't even get to them using Drive API.
So, my only option seems to be to pull the JPEG file, parse EXIF myself, call Google Maps API to get the street address (didn't try this one yet, just assuming there is such a method), and push the address data back to my 'meta', 'description' or 'IndexableText'. Or I can push the GPS coordinates directly to my meta data when storing the JPEG (2 signed floats only, afterall). This effectively duplicates the EXIF info (and I love duplicate data).
So my question is: Am I missing something obvious? Are there any plans to do this "EXIF GPS data" -> "street address" on Google Drive level? Is it already there? Should I do it myself or wait?
Thanks, sean

Google Drive SDK returns an imageMediaMetadata field for image files that contains basic properties of the image and EXIF information. At the moment, Drive doesn't reverse geocode the geo-coordinates on the EXIF metadata to provide street addresses.
Depending on your scale and performance requirements, you either can extract them by yourself or use image metadata returned by the API and then reverse geocode with Google Maps APIs. You can use custom file properties to append an address. Properties are query-able, you can build a search feature on top of them. A sample property entity looks like what's below. Read documentation for more details.
{
"key": "address",
"value": "City of Westminster, WC2N 5DN, United Kingdom",
"visibility": "PRIVATE"
}

Related

Tweepy-Twitter Python : Get trends where no WOEID available

I've reading docs about twitter api's and I know how to get the trends for available countrys with Woeid (where on the world id).
Twitter has a list of countrys for which they can show the trends. When you list the availables places for trends you may notice that not all cities are supported.
My problem is that I need the trends for a country that has not support for its API. The country I need is El Salvador. This country has no support on the API, neither Woeid. But you can go to homepage and you will see the local trends to the right of window.
There is an option: get the latitude, longitude of El salvador and search trough twitter geo API for trends, but it will return you the trends for other country (Guatemala).
So, as far as I searched, using the api is not an option. Is there another way to get the twitter trends from El Salvador?
Ok, I’ve been doing what you need today.
Without being able to do an api call, which yahoo don’t support, go here;
https://www.yahoo.com/news/weather/el-salvador/apopa/apopa-76867
When you search a city, the woeid is added to the address bar.
Eg Apopa, El Salvador is 76867
Type in city names in yahoo weather and get the ones you need.
Not the best solution but should work for what you need.

Need POI Category Search Clarification

I think Azure Mapping API Service does not return any data for a search using Military Zip Codes. Is that correct? Also, which POI categories or query terms would provide search results for the following:
the standard ZIP Code, which refers to a post office for a city or a division of a city that has mail service
the P.O.-Box-only type is used for P.O. boxes at various facilities
unique ZIP Code types given to organizations that receive large quantities of mail
Thank you very much for your assistance.
Unfortunately today we don't support military zip codes. To submit feature requests, please go to Azure Maps Feedback (UserVoice):
To search zip codes, you can for example call our Get Search Address API (https://learn.microsoft.com/rest/api/maps/search/getsearchaddress), if you know that your input is zip code or an address.
For example, you can use the following query to search zip codes:
https://atlas.microsoft.com/search/address/json?subscription-key=[your_key]&api-version=1.0&query=98007&countrySet=US

Do not want a barcode on the expanded view, but would like the card number to be displayed as large as possible, for manual keying by a store clerk

From what I can see in the Google Wallet Objects API documentation, there are two loyalty templates from which to choose. One has the barcode section, and the other has an image instead. Is there any way to configure or otherwise create a third option, where a text string could be displayed in place of either a barcode or image?
We currently provide two templates, loyalty1 and loyalty2.
You can use loyalty1 template that provides a barcode. For the barcode type, select textOnly. For more information on the types of barcode provided please look at the API Reference
https://developers.google.com/commerce/wallet/objects/reference/v1/loyaltyobject

Instagram: Get photos from a tag after a specified photo

I'm working on an instagram scraper for something and I'm trying to figure out if it's possible to get all photos for a tag that have an id or timestamp later than the last one I have.
The instagram API docs are useless in that they don't have any real info on pagination (which I presume I'll have to abuse).
Does anyone have any ideas?
I've been slogging through the Instagram API for the last couple of days so here's my 2 cents worth:
As far as I can see it if you call the api with /tags/tag-name/media/recent it only return a list if items. If the amount exceeds about 25 you have to make another request with the pagination value returned in the previous request.
In order to gain some control I am initially iterating through all images and storing the results (just the URL not the actual image) to a database. Now I can manipulate however I want. When I feel like updating (I'm doing it manually now but could be a cron job or use the real-time api) I re-read all the images, compare to what I have in my DB and add possible new images. My app then reads out the url and info from my DB (which btw is a heck of a lot faster than going through the instagram api, which will only return about 25 images per request - regardless of any 'count' parameter value you put in the request url) and displays it.
I am developing this for a client who is afraid of people posting nsfw or whatever pics using their dedicated hashtag (for a contest) - with the above set up I can offer them an interface where they can check and mark images that are then displayed in the app.
One thing to watch out for is when a user deletes his picture; you will have to find a way to check for this. Currently (since I'm lazy) I load all images and use jquery to check for an error loading the image. If there is one I delete the image from the DB (via ajax).
I'm not sure the pagination is going to help you: as far as I can see the pagination response has no relation to the id's of the actual image objects on each page - so theoretically a pagination id that jumps to a certain page (i.e. date) might not work tomorrow if enough images have been deleted in the mean time.
to get all images instead of latest 20, just append &count=-1 to your api call - it's that simple.
In either case, there is a timestamp on each json object - or if you prefer, you can use max_tag_id
check out my post here: there any way to show more than 20 photos of the instagram API?
* Update April 2014: count=-1 is no longer available.

Flickr photos by group with location name

I am grabbing photos from my 2 flickr groups using the API method flickr.groups.pools.getPhotos. This is ok but i'd like to actually return the town name rather than just the geo location. Does anybody know of an alternative method to grab my images including the geo location, town name, and the group that they are in? I'd rather not make multiple API calls per image.
Thanks
So it appears there is no way of doing this. I had to call flickr.groups.pools.getPhotos then flickr.photos.geo.getLocation on each image to get its location. Not the best solution but it is then being cached into a db for improved performance, then only called once every 30 mins.
You can get location attributes by adding "geo" parameter to extras argument for flickr.groups.pools.getPhotos request.
extras (Optional)
A comma-delimited list of extra information to fetch for each returned record. Currently supported fields are: description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_q, url_m, url_n, url_z, url_c, url_l, url_o
In response you will receive geo latitude and longitude for each photo from group.

Resources