I consider this one a bit of an unsolved problem at the moment. There’s also the related but slightly different case of walking inside a large mall or airport. But the outdoor park/zoo setting is the worst, in that to us it’s conceptually “at one place”, but to the data it’s definitely not.
The indoor mall/airport one used to be solved automatically for us, by way of indoor location data being much lower accuracy, so it ended up getting all lumped together on account of the data not providing enough accuracy or detail for the processing engine to piece apart. But iPhone hardware and software has come a long way, and now indoor location data accuracy can be quite good, so the indoor data in large buildings ends up being not too dissimilar from outdoor data.
For parks and zoos, because it really is a pure case of our conceptions of “this is a single place” not matching with the physical reality of the data (ie we’re constantly walking around a large area, with near perfect location data accuracy), I think it has to come down to just deciding how we want to categorise it ourselves, within the limits the processing engine will allow.
For me that typically means I’ll go with one of two strategies: Either a single massive Place, and assign that same Place to each of the various stops (eg “CentralWorld Mall”), or use separate Places for the various locations within (eg “Boots Pharmacy”, “Starbucks”, “Nike Shop”, etc inside the mall).
There’s unfortunately no way to merge the various walks and stops into a single visit though, which is why I consider it an unsolved problem. If you genuinely do want it to show up a single multi hour Visit to “CentralWorld Mall” or whatever, with the way the processing engine currently works, you can’t do it. It’s not going to let you merge those extended walks and brief stops into a single Visit.
Well… ok, you can make it happen. But hoo boy is it a struggle. You can start by categorising all the walking as stationary, so that you can assign it all to a single massive Visit. Then go into the Individual Segments view and use segment splitting to split back out the walking portions, without extracting them out into separate timeline items. (The Split Segment action doesn’t extract the parts out into new timeline items, unlike what happens when you change the type of a whole segment from the Individual Segments view. So you can use segment splitting to rework the shape of things inside a single Visit).
I occasionally do it that way when I’m being especially pedantic and really don’t want “Hotel Reception”, “Hotel Restaurant”, and “Hotel Room” as separate Visits and want it all combined together in a single Visit, but with the walking segments between preserved inside that single Visit. But it’s such an awkward hassle that most times I don’t bother.
I’ve got various ideas for how to “solve” this problem eventually. The main one being to change the way Visits are modelled, so that they can have multiple centres of gravity instead of just one. That way a Visit would internally / under the hood look more like a solar system than a solo gravity entity. But… it’s added complexity for an edge case (albeit an edge case that’s commonly annoying), so I haven’t pushed it up the priorities. More of a pet project, “someday I really want to do this better”, kind of thing.