2) We will be passing bounding box coordinates as a parameter. We have
a Google Summer of Code project underway that is implementing the
bounding box search on the server side in uReport.
https://github.com/City-of-Bloomington/uReport/tree/mapping
The way we've written the mobile apps includes the AvailableServers
configuration file which tells the app what features the endpoint
supports. This file is created by hand. We already use settings in the
AvailableServers to toggle some other non-standard things, like the
Media upload via POST functionality. Once the server is ready, the
mobile apps would include a new setting to toggle display of existing
service_requests on a map depending on whether the endpoint supports the
bounding box parameter. That's still a little way off, but we'll see if
we can get it implemented by this fall.
For us, when doing a request using a bounding box parameter, we only
return tickets that have coordinates. Any service_requests that do not
have lat/long are essentially invisible to the map request.
3) We also a have a fair amount of tickets that do not have coordinates,
however these are usually for things that are not georeferenced (such as
complaints about the website). All of our tickets get geogeocoded at
creation time.
Our open311 clients only send in lat/long, which we use to reverse
geocode the address string. For internally generated tickets, city
employees provide a validated address string (we are integrated with our
master address system). From that string we add the lat/long for that
address.