Ask for locations
Exact places need their own category,.locations. No other category implies it, no default grant includes it, and the person always sees it named. Ask for it on its own, in plain words.
.placesVisited instead. It powers Trips and never gives coordinates, neighbourhoods or visits.
Read a photo’s place
Every hit fromsearch and similar carries details. Under .locations it has location, visit and timeZone.
Visits
A visit is a run of photos and videos close in time and place: each one within 90 minutes of the previous and within 400 metres of the visit’s centre. Screenshots never count.
A capture at a venue also gains an activity with source
venue, so interests learn from where people go, not only what they photograph.
Search by place
Place words are a third list that search ranks next to the words on screen and what the image shows. “Lisbon”, “Chiado”, “museum” and “ramen” all work, and so do mixes such as “sunset in Lisbon”.- Hits that matched a place carry the reason
.place, the words that named it inplaceMatches, andplaceSimilarity, the share of the query’s words that named the place. searchPlan.operationislocationwhen every word named a place, andretrievalIntentsaysplace,placeType(a kind of venue, such as “museum”) orcontentAndPlacewhen the query mixed both. See Search and browse.- Under
.placesVisited, only city and country words match.
Home stays out
Places appear once PoolKit has seen enough located photos to know where home is: 30 photos on 10 different days, as for Trips. Until then nothing is shown at all, because any place could be home. After that, captures near home carry no location, no visit and no venue, and never match a place search. PoolKit never says where home is.Where the names come from
- Apple’s geocoder names the neighbourhood, city, metro area, country and time zone. Apple Maps finds the venue. Both see the coordinates of the place they name; Pool’s service never does.
- Each area is looked up once and kept on the device: names about once per square kilometre, venues about once per 200 metres.
- Lookups are slow on purpose: at most one every 1.5 seconds and 60 per indexing run, and never on a cellular or other metered connection. The next run carries on.
- Offline, the city comes from a table inside PoolKit (cities of 15,000 people or more, within 75 km). Apple’s names replace it later.
Taking it back
When no active grant includes.locations any more, the next indexing run deletes every coordinate, visit, venue and place name. Deleting a photo deletes its visit when no other photo is left in it, and any place name nothing uses any more.
If your app sends places to your server, you are collecting location. Declare precise or coarse location in your own privacy manifest and App Store privacy details, whichever you send. PoolKit’s own manifest does not change, because PoolKit sends no location to Pool.
