Looks like I'll need to halt my efforts as well. I wasn't aware of the others who have been working on this. I've been working on one for our ward using Perl/MySQL/PHP. I export the data from MLS, use a Perl script to load the DB and check Lat/Long on everything, and then the users use the PHP interface for search criteria and maps. The server involved was my own, hosted by my company, utilizing SSL. I'm a clerk for our ward currently so I already had access to the data, and the Bishop approved who did and didn't have access. It's still not in a "Finished state" as a large number of the features we wanted to add still need to be implemented. Before I started on this project, I spent some time talking to the various leaders who would need access as well as falling back on some of my own experience in some of these positions to determine what features were needed and would be useful. I would like to list some of what I found here in hopes it may be helpful for what the Church is working on.
1. Search Criteria
This is actually a much more difficult issue than it may at first appear - probably the most difficult part of the whole thing. Quite often, what is needed with these maps is not a map of all members in the ward, it's a map of members meeting certain criteria such as all the elders, all the single parent homes, all new members, all homes containing children between 12-18, etc. Some of these searches are pretty obvious such searches to help with planning home teaching or visiting teaching routes, but others were a bit less expected and tended to come from the Bishop and fell along the lines of "well I'm going to be in X area today, and after we finish our visit there, I'd like for us to go visit all Y type families in the nearby area".
In working out how the search criteria would function, the first thing I had to realize was that they were not searching for individuals. They were searching for families that contained individuals of X type. That made everything much easier once I started working along those lines. I also realized that recognizing whether or not a particular person was either a head of household or a spouse to the head of household was important as well as their other attributes (age, gender, priesthood, etc.) so my search form took on more the form of the family (fathers criteria, mother's criteria, children criteria) with and/or options available between the different household members. This gave the program a fair amount of flexibility in what could actually be searched, though I always felt my form layout could somehow be better than it was to help cut down on possible confusion (Searching for all Elders would require filling out a slot for Father matching elder as well as filling out a child slot matching elder since elders could be present in a household as either children or parents).
As a separate criteria from this, I also allowed them to select one of the households in the ward and specify that all results must be within X miles of that household (as the crow flies).
2. Display results
It's tricky to map points like this where there may be a fair amount of data needed from each point and yet keep that data from obscuring the map in some way that makes it less than useful. I had all the traditional map features included (drag, zoom in and out, etc.) and am presently using a generic diamond shaped icon large enough to be noticed but small enough to stay out of the way. I had some discussion going on about the possibility of using icons composed of colored bars to represent different things about each household with significance being placed on the location of the bars as well ( husband member/priesthood, wife member, children, etc.).
My icons would allow you to mouse over them for some info and click on them for additional info. The info displayed was something I was in the process of allowing them to select from the search form (Head of Household name, phone number, names of all household members, ages of all household members, priesthood held, address, etc.) so the user could find only the data they wanted without having to wade through to much of what they didn't want.
What really starts to make this tricky is when you start to consider printing. What makes it even more tricky is when you realize that sometimes you need to print vastly different things depending on the need for the data to begin with. Sometimes you only need the locations with a key for household names, other times there's a lot of additional data you need. Often, in my case, I was faced with people who wanted it for directions as well to visit those people. In that case you might be better off dumping the matching households out to something else to produce driving directions. Printing was something I hadn't implemented yet and was still trying to work out how to manage, meet their needs in the process, and stay in compliance with any of the applicable usage rules.
3. Unexpected results/benefits
One of the unexpected benefits of all of this, was that I could generate reports from the DB of how well the lat/long conversion had gone. Based on the results, it was much easier to spot bad address information in our MLS and then set about doing the homework required to get it fixed.
Also, for whatever reason, we had a number of people in our MLS with an address outside of ward boundaries (bad address, kid of to college and the records haven't been moved for some reason, etc.). As a built in part of the search criteria, I skipped over anyone outside of a generous Lat/Long box I drew around our ward boundaries. This also made it easier to determine whether or not someone was actually IN our ward boundaries (given the design of both our boundaries, and the roads around here, that's not as easy as you might think).
I hope some of this is of use. If there are any other questions about what I found, or what I did, feel free to ask or contact me directly. Also, if the Church is looking for some beta testers, I've got a Bishop (and probably a few others) who would like to wear it out for you and provide feedback. If you want it broken, I'll be glad to do my best for testing purposes