Zero-vs-error: Ideally the backend would detect when the customer was
looking at a section of map that was inside the big jurisdiction
bounding box but not valid. Imagine someone looking at a map of Texas
who pans up to Oklahoma City and zooms in a bit. That map would be in
the overall Texas bounding box, but outside the Texas polygon(s). Your
request for tickets in that map box would give Texas' endpoint a chance
to warn the client that every point it's displaying is invalid even
though some or all of the map is inside the overall Texas bounding box.
That's where I'd suggest sending an error, to differentiate between
having no tickets and the customer looking at space completely outside
jurisdiction boundaries.
(This could be really slick at the level of individual service_code
values; e.g., Texas might see that you're looking at details of a lake
or private development and warn you that the space is not valid for the
Pothole request type you selected. This would require errors with more
structure than GeoReport generally provides, something I'd jot down as a
v.Future feature.)
Regarding snappiness, I definitely think you should support
/boundaries.FMT. If the mobile app knows what jurisdiction it's working
with and that jurisdiction gives you bounding box info, there's no sense
allowing the user to pan outside that box. Panning outside not only
means asking the server for info about tickets that it would never have,
but it also means asking the mapping servers for tile images (or, in
iOS, vector map data???) related to irrelevant locations. In our website
code, we have a GMap v3 "bounds_changed" event handler that looks at the
client-cached jurisdiction coords from /boundaries.FMT and calls
setCenter() on the map if none of the visible map is within our bounding
box. It probably should be more elegant and just re-pan the map enough
to make the edge of our box visible (re-centering in the jurisdiction
center only really works well if you're zoomed out enough to see the
city boundaries on the map), but at least we prevent the browser from
requesting irrelevant tiles over the network, with zero calls back to
our jurisdiction's servers.