make it easier to add locations with a large radius
I'm currently using the beta version of Locale, and I'm waiting for a particular feature before I upgrade.
I set up many city-wide locations (40km - 60km radius) to incite actions when I enter a particular market (ie. e-mail a list of folks to let them know I am in the area, change my phone settings based upon the status of the cellular service in the area, etc)
I am constantly setting up new instances for the cities that I expect to be in over the upcoming weeks or months, and it is currently quite a challenge to create a location and then convince the maps interface to increase the radius as far as possible based on the current zoom level, zoom out a bit, increase the radius some more, and so on, until the radius covers the entire city.
There are several methods I can see to make this process easier:
a) when a broad-area location is entered (a city name instead of a street address) have the default radius set to something like 40km when it takes the user to the google-maps location setup screen. That would mean less fiddling to get the radius up to a reasonable level. This could have several possible levels. For example, if I enter just a zip code, the default radius could be 5km. If I just enter a city, the default radius could be 20km. If I enter a specific street address, the default radius could be 100m.
b) If there was a way to adjust the default starting radius for new locations. This would be something set somewhere in the program's basic preferences and settings controls.
c) In location entry process, you could provide a field to enter a starting radius (in meters, say) right alongside the entry field to enter the address or city. Then, I could simply decide to enter 20km radius for a small city, or a 60km radius for a larger metropolitan area, and it would be a simple matter to make minute adjustments on the googlemaps screen.
Option c) is my current favorite.
It’s always interesting to hear the usage scenarios people have for Locale!
Locale’s UI doesn’t handle your particular use case very well, as Locale’s UI was optimized for the most common usage scenario. Consider a recent study http://www.nature.com/nature/journal/v453/n7196/abs/nature06958.html where researchers followed the movements of 100,000 mobile phone users based on cellular tower positioning and discovered that people devote most of their time to just a few locations. Nearly 3/4 of the study’s subjects stayed within a 20-mile radius over a 6-month period. There was a significant degree of periodicity in these movements, such as going between home and work on a daily basis. Simply put, the majority of users are interested in a few locations that are relatively close together.
In terms of improving the Locale UI for your use-case, let’s look at the options:
a. Locale doesn’t know anything about what the user is typing in; it simply hands the query off to Android’s Geocoder and gets a coordinate back. Having Locale parse this isn’t going to be a good idea, especially once you start thinking about international addresses, etc. as we’d have to completely re-implement the Geocoder ourselves.
Locale doesn’t currently have any app-wide preferences, which is by design.c. Locale uses the Android system-wide search UI facilities and these only provide a single input field. Adding multiple fields wouldn’t be possible.
I don’t think any of these adequately solve the problem, while keeping the UI design simply for the majority of users. So we’ll have to think more about how exactly this could be implemented…
1 comment
-
marnoldster
commented
Solutions:
1. As you drag the circle to a certain radius, automatically zoom out a level. To cover a whole city would take a couple of seconds of "stroking" the circle.
2. Use the pinch action change the circle radius. In that way the user could zoom out to whatever level they like, then pinch the circle - whose radius would be linked to the screen-size. In this way, if you are zoomed out far enough, a simple pinch will give you an averaged-sized circle, which in fact would be several thousand meters in radius.
Even more advanced: One finger is the circle centre point, and the second is the radius. Or the two fingers are the diameter. In this way a user could very cleanly do the radius AND position of locations.
Single finger actions should remain the same, as for position especially, it will probably be more accurate.