Coveting thy neighbor’s web mapping services


We’ve all been there, you’re in some glorious online mapping application and see some data that you wish you could have.  Or perhaps you want to bring those web services into your own mashup. You’ve looked around their website, but you don’t see them publically distributing their web service1.   Still, you must have those services.  Not so long ago, you could try to make an educated guess based on web server names and knowing the correct path structure, and if you got lucky, might be able connect to a WMS service or ArcIMS service.  Well now-a-days, thanks to browsers like Google Chrome or Mozilla Firefox and browser add-ons such as Firebug, you can get to that web service information and connect to them in your local GIS in a matter of minutes or code them into your mash-up applications and have your own glorious online mapping application. #winning

I’ll run through an example of how to obtain map services using either Google Chrome or  Mozilla Firefox with the Firebug add-on.  If you don’t have one of those already installed, please go ahead and do that at this time.

https://www.google.com/chrome

http://www.mozilla.org/en-US/firefox/new/

http://getfirebug.com/

Polished Chrome

Open Google Chrome, in the top right corner you will see the wrench icon, left click on the wrench, and a dropdown will open.  Mouse over the ‘Tools’ option then click on ‘Developer Tools’.  Or for those who like short cuts, just use Ctrl+ Shift + i.

Glowing Firebugs

Open Firefox, then click  the ‘Tool’ menu in the title bar, select ‘Web Developer’, then ‘Firebug’ and ‘Open Firebug’.  The Firefox shortcut to open Firebug, once installed, is ‘F12’.

So Simple

Whichever method you choose, a new widow will open in the bottom portion of the page, this is the developer/firebug toolbar where you can view html elements, scripts, resources, etc.  We are interested in ‘Network’, so click on the ‘Network’ tab in Chrome or ‘Net’ tab in Firefox (but when you get a chance, go play and explore the other tabs, you’ll learn a lot).  Now in the same browser window type ‘www.noaa.gov‘ into the link bar and watch the magic happen.  Once the NOAA.gov page begins to load you’ll start seeing all of the page components; their type, where they came from, and how long it took each to load.  This is a great tool to test the performance of your webpage and web applications to make sure they are speedy and identify what components are slowing things down. This also gives us to a chance to peek at what services and data a webpage might be using.  Scroll through the list of components, in this specific page you’ll notice a lot of images, but peppered in at the beginning of the list you’ll see css, javascript, xml,  and flash files.  Now on  to stuff we really care about, web mapping services which are ready for GIS.  Go to http://webqa.coast.noaa.gov/mmcviewer/  in the same window.   Let it load and view the associated list.  If you are familiar with web mapping services, you’ll recogonize the service ‘calls’ and see things like ‘MapServer’ , WMSServer, and ‘arcgis/rest/services’.  This is what we are after.  In this example you’ll see ‘MapServer’ calls to ‘http://maps.coast.noaa.gov/ArcGIS_QA/rest/services/MMC/MultipurposeMarineCadastre/MapServer’ and ‘http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer’.  Enter one of those into a new browser tab, you’ll see an ArcGIS Server REST page for that service.   From here you can view services in ArcMap, Google Earth, ArcGIS.com, and other options. Or open ArcCatalog, go to GIS Servers, and add one of those services as a ArcGIS Server.  You’ll be able to use those services in your daily mapping routines. #moreWinning.

Not So Simple

That’s cool and all, but perhaps you don’t just want to use the service locally, you want to build a mashup; i.e. tell a good geospatial story using quality data (that you don’t own).  Since you have ‘found’ someone’s service you could simply code it into your application, cross your fingers and hope it stays static for few years.  But what if their data schema changes or worse they kill the service? If you really are going to spend the time to to build an application, it is best to contact the service originator and work out an arrangement.  Perhaps they will be willing to notify you before they make changes.  Or perhaps if they have the resources, you can convince them to put a second version of the service up that they won’t touch2.  After all who wouldn’t want their web service to be used in another quality application.  Its good advertising for them as well!

Simple Sharing

There you have it, a simple and quick way to the ‘backdoor’ of someone’s web services to use them for your own purposes. Remember though, be a good data custodian and use other’s data responsibily and provide credit if neccessary. As you saw in the example above, the Office for Coastal Management does have an ArcGIS Server providing numerous services.  What you didn’t see is that we have a separate ArcGIS Server dedicated to push those same services out for public use, those can be found here:

http://coast.noaa.gov/arcgis/rest/services

If you have any other tips, hacks or comment, please share them with the rest of us.


1Sad but true, good data and services are not always easily accessible and distributed to the public.

2Make it public knowledge that this public service is for use by the masses.

 

Leave a Reply. Comments are moderated.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s