Moving from ArcGIS Server to Google Maps API

May 14, 2010
Share

Sharing is Caring

Ed. note: This article first appeared on Jason Sanford's blog and is reprinted here with permission.

As mentioned in a previous post I have been converting Union County's Community Mapper application from ArcGIS Server to the Google Maps API.

Why?

Do I have anything against an ArcGIS Server solution? Not at all. ArcGIS Server still takes up a lot of room in my tool chest. I just wanted to freshen up the look and feel of a stale application and take a deep dive into the ever-changing API v3.

Benefits

Let Google handle the base map and related traffic. Forget scheduling a map caching job to run for hours (and hours, and hours) every week.

Users are comfortable with Google Maps. Web mapping trends show Google Maps continues to catch (surely have surpassed by now) MapQuest.

The Google Maps API is powerful and has an active community developing applications with it. Got a question? Send it to the group and you'll get replies within hours, maybe minutes.

Disadvantages

These roads were absent on picture day. (Click for larger view.)



The biggest downer that I see is that you lose complete control over your base map. Sure Google lets your report a problem but there is no guarantee when, or even if, they'll get around to fixing it. Luckily the Street View crew made it around to a good third or so of Union County so our base map isn't in bad shape.



With Google there's always a chance of advertisements popping in at some point in the future. Personally, I have no problem with spatially relevant advertising. That's the price we pay for someone hosting and updating your web map services. Although, end users might not like the idea of an ad for Jim's Tire and Lube appearing near their parcel ownership information.

How does it work?

One big search. (Click for larger view.)


Users select one or many parcels by either clicking the map or using a single search text box. This eliminates the need for having a text box for every type of search a user might use (owner name, parcel number, subdivision, address, etc). With some simple logic on the back end we can query only the tables whose data matches what the user entered. For example: if a user types "8620 Elmsworth" we can be almost certain they are searching for an address. In this case only one table is queried. Alternatively if a user types "Poplin" they could be searching for Poplin Elementary School, the Poplin Farms subdivision, or Poplin Rd. In this scenario more tables are queried for potential results but I haven't heard any complaining from Postgres yet.

Spatially relevant information. (Click for larger view.)


Once parcels are selected a user can uncover lots of spatial data by clicking various tabs within an info window. Questions like "What school district am I in?", "What flood zones are on my property?" and "Where are my closest parks, libraries and bus stops located?" are just a few mouse clicks away.
On the front end mapping is handled by the Google Maps API (obviously). I'm using a few JavaScript libraries as well. jQuery makes coding by browser unnecessary and makes HTTP requests a breeze. jQuery Tools helps out with some simple tabs and modal overlays and is a much lighter weight UI tool than jQuery UI. For all that autocomplete goodness, the folks over at Devbridge have put together a powerful, yet very simple jQuery autocomplete plugin. jQuery Layout keeps things orderly and helps with some nice collapsible panels. Underscore helps traverse GeoJSON from our web services and create polygons (parcels, subdivisions). Okay, maybe I went a little overkill on the js libraries.
On the back end I'm using Union County's GeoData API to do all of my spatial analysis. These are a series of RESTful web services that allow you to execute spatial queries on a PostgreSQL/PostGIS database through simple HTTP requests. I won't go into detail here but feel free to check out the documentation for a better explanation.

A few other new features to note:

  • parcel export in kml, csv and xml formats

  • add to your current parcel selection by holding ctrl and clicking the map (unless you're on a mac, still figuring that out)

Where's it at?
The old Community Mapper is actually still live but users can choose to try out the new application while I work out a few kinks with the newer version.

Community Mapper 1.0 http://gisapps.co.union.nc.us/cm

Community Mapper 2.0 http://gisapps.co.union.nc.us/community-mapper

If you have any questions or comments about the application or you get some errors feel free to let me know. Styling and documentation are lacking as these are the last things I'll be working on.

Share

Sharing is Caring


Geospatial Newsletters

Keep up to date with the latest geospatial trends!

Sign up

Search DM

Get Directions Magazine delivered to you
Please enter a valid email address
Please let us know that you're not a robot by using reCAPTCHA.
Sorry, there was a problem submitting your sign up request. Please try again or email editors@directionsmag.com

Thank You! We'll email you to verify your address.

In order to complete the subscription process, simply check your inbox and click on the link in the email we have just sent you. If it is not there, please check your junk mail folder.

Thank you!

It looks like you're already subscribed.

If you still experience difficulties subscribing to our newsletters, please contact us at editors@directionsmag.com