October 14th, 2013 at 9:53 pm by Dr. Drang
The system I described in this post for setting location-based reminders to alert me to look at my shopping lists when I’m in any one of a number of grocery or hardware stores has been helpful, but getting the locations set up correctly wasn’t nearly as easy as I thought when I wrote that post. The problem lies with both the limitations of setting locations in the Reminders app and, as you might have guessed, the deficiencies in Apple’s Maps data.
I haven’t complained much about Maps. It’s true that its database of points of interest is weak, and it’s frustrating to see the locations of restaurants still wrong a year after I sent in corrections (so much for improvements through crowdsourcing); but when I’ve given Maps an address and asked for directions, the directions have generally been pretty good. But “pretty good” for driving directions doesn’t have to be all that accurate. Being 500 feet off means nothing when I’m driving to a destination; as long as Maps gets to the right street and within a block or so, I’ll get where I want to go. In fact, I switch off Siri’s turn-by-turn instructions when I get close to a destination because she won’t shut up when I’m driving around near the address looking for a parking spot.
Being 500 feet off for a location-based reminder, on the other hand, can mean not getting the reminder. The day after I created my first set of reminders and wrote that post, I went to a local hardware store and did not get the reminder to look at my hardware shopping list. Here’s why:
I assigned the reminder to the correct Menards address, but Maps puts that address south of the store, which is the black-roofed building in the screenshot. Had I approached Menards from the south along Fort Hill Drive, the reminder would have sounded as drove there, but because I came from the north and west, I never got the alert, even when I was in the building.
Reminders allows you to set a radius for location-based reminders, and I could have increased the radius from its default to encompass the building and its parking lot. But doing so would make the alert sound far more often than I’d like. I wanted a different solution.
I decided to drop a pin at the front door of each store and assign that location to a contact. Here’s one for a grocery store:
The address Maps gave for that location was nonsense.
As far as I know, there is no West Madison Street anywhere in Naperville, and there certainly isn’t one near that Jewel. But I figured if that’s what Maps thinks the address is, it will at least recognize that location and be internally consistent. I was, of course, wrong. Tapping on that address in Contacts got me this:
That’s right. Maps couldn’t find an address that it itself had given me.
Even weirder, when I tried this same procedure another time—dropping the pin near the front door of the store and saving that location as the address of the Jewel—Maps would later find the address. Unfortunately, where it put that address was 2–3 miles from the store and the dropped pin.
This does not inspire confidence. By the way, there’s no West Madison Street at that location, either.
The fundamental problem here is that Maps is taking a location that’s given as the longitude and latitude of the dropped pin and converting it into a street address for the Contacts app. Because the Maps database is weak, that conversion doesn’t always work out. As it happens, the types of locations I was interested in—stores in shopping centers—often have weird addresses because they’re so far off the street. The correspondence between their addresses and locations isn’t as amenable to algorithmic conversion as would be found in a residential area on a nice rectangular grid.
It’s not all Maps’s fault, though. Reminders shows a little map when you’re setting a location-based reminder—that’s how you’re able to set the radius of the alert. If it let you drop a pin on that map, you wouldn’t have to worry about addresses. Reminders could just store the location as a longitude/latitude pair and alert you when your location is within the radius. But Reminders doesn’t include that little affordance.
The closest thing to the ability to drop a pin is to use the Current Location option when setting a reminder’s location.
To use this option, of course, you have to go to where you want the reminder’s location to be set, which is sort of like using yourself as a dropped pin. Hardly optimal, but that’s exactly what I did.
Over the course of a couple of days, I drove to each of the grocery and hardware stores on my way to or from work, stopped near the front door, and set the location of a reminder. Now I have a new set of locations in my Stores list, most of which have nonsensical addresses, but all of which send me an alert when I’m near the store.
How can this feature be so poorly implemented? I can think of two possibilities:
- The programmers and testers only tried locations that Maps understands well. For about a year, I’ve been using location-based reminders set to my home and office, and they’ve always worked well because Maps knows exactly where they are.
- The programmers and higher-ups at Apple don’t use location-based reminders enough to understand how crappy it can be. Features that get used seriously by the people who can influence them always seem to be more polished. Can you imagine Steve Jobs putting up with the nonsense I just put up with?