Monthly Archives: May 2009

ESRI at JavaOne

Are you heading out to SanFrancisco this week for JavaOne 2009 conference? Our developers and product Engineers are also packing their bags as we speak. We have our own booth at JavaOne! Our team had been busy all this week, working on great demos for the booth. Please visit us at our ESRI booth (booth #827) and check out the demos on ArcGIS Java technology and recent enhancements at 9.3.1. Better yet, you can also chat with our developers and product engineers at the booth. 

Wish you sunshine and see you at JavaOne!


Posted in Developer | Leave a comment

The 2009 Homeland Security GIS Summit Approaches

  • Registration Deadline Extended to June 19
  • Homeland Security Summit Facebook Page Now Online!

The 2009 ESRI Homeland Security GIS Summit promises to be better than ever. This year’s theme–The Geographic Approach: A Framework for Mission-Critical Decision Making, encapsulates all of the important work public safety professionals do using GIS. The Summit provides a unique opportunity to learn how to meet the mission and address today’s challenges in homeland security.

There’s still time to sign up to attend the ESRI Homeland Security GIS Summit. The registration deadline has been extended to June 19. This year’s Summit is held July 11–14, 2009, at the Marriott Hotel & Marina in San Diego, California.
And now you can make connections BEFORE you get to the Summit or even if you can’t make it to San Diego!
ESRI has rolled out the ESRI Homeland Security GIS Summit Facebook page! Log on and use this social networking tool to communicate, collaborate, and exchange ideas. This forum is built specifically for people to reach out to one another in a quick and easy fashion. We’ll also post Summit updates, pictures, and discussion threads.

Learn more by checking out the official ESRI Homeland Security GIS Summit web page at:

Posted in Public Safety | Tagged , | Leave a comment

Utilizing Business Analyst, Spatial Analyst & Core ESRI ArcMap tools to create custom models in Modelbuilder

Dennis Kaplan by Dennis Kaplan

This workflow was of big interest to the attendees at this year’s RECON Shopping Center trade show.

The General Workflow: A business owner starts off by taking a macro look at a metro area to find ideal areas for possible investment.  Once areas of interest are found, the user is now able to go into an area and take a micro look at the business landscape within the areas of interest to see if it meets their product mix.

1. The first part of this workflow was to take a macro look at a particular metro area.  We used the Dallas Metro area.  I call this the Site Suitability Analysis.  This sample model uses Spatial Analyst to create Hot Zones for possible development. It creates distances from different geographic location surfaces as well as creating surfaces for demographics. These surfaces are then overlaid on top of each other to create a Weighted Overlay surface (This part of the model is configurable.). The result is a surface that shows areas where a retailer might want to start looking for a new prospective location. For good effect, I included some Points of Interest (POI) that a fictitious customer might have from a real estate broker. After running the sample model, it finds that two of the POIs fall into a Hot Zone.

This model is a framework that any user can utilize and swap in the layers of information of interest for their business needs. ArcGIS Business Analyst contains many layers that can be utilized for this type of Hot Zone Analysis.  You can download and work with the model from Esri’s Code Gallery at;

Site Suitability Analysis Screenshot

 2.  The second part of this workflow is called a Gap Analysis.  It starts with the user zooming into one of the POIs in the Hot Zones.  Retailers would like to know what businesses are within their trade area of interest as well as what businesses are not.  This enables retailers to see if their product is a good mix for the existing market. In this case, the retailer has already created their Trade Area of Interest with the Draw your own trade area tool from the Business Analyst Trade Area Wizard. The retailer or business owner might also have their own set of businesses they always look for (their Master List), be it Restaurants or Steel Manufacturing locations. This model is optimized to use the InfoUSA Data points that come with the Business Analyst extension.

 The model can be run in either run mode or edit mode. The model uses a custom Crystal Report template as well as a custom Python script that opens the report template upon completion. Both were created by Indria Davis from the Esri Commercial Technical Marketing team.

You can also download and work with the Gap Analysis model by going to;

 Gap Analysis Screenshot in edit mode

 The Report results are very interesting. Quickly one can see the voids (what retailers are not in the area of interest).  You can also see that there are 8 Autozones in the area, 3 of them are within the trade area and 5 of them are outside the trade area.  The first one within the trade area in yellow is a half mile away from the POI and the first one outside the area of interest is almost 4 miles away.

 Report Results Screenshot

 Esri’s tools give users open functionality to mold its tools they way users want them.  Modelbuilder and Arctoolbox is sometimes an overlooked powerful environment that enables this collaboration.  The above workflow showed how a business challange was solved utilizing Business Analyst, Spatial Analyst and Core Esri Spatial tools all within Modelbuilder’s drag and drop environment.

I hope this workflow might help to open your minds that there is much more to the Business Analyst product than the Business Analyst toolbar.

Posted in Location Analytics | Tagged , , | Leave a comment

GIS Grid Computing

At the Developer Summit I talked with a customer who had a grid computing environment where they needed to handle high volume specialized routing requests.  He knew how to do

Posted in Developer | Leave a comment

ArcGIS Developer Tip #2: Enhanced .NET Intellisense for ArcGIS 9.3.1

If you are working with the ArcGIS 9.3.1 .NET SDK, then you may have noticed a small enhancement when coding against the core ArcObjects Primary Interop Assemblies (PIA) in Visual Studio 2005 and 2008.  

In previous versions, when you typed in a property or method, you simply got this:


Now the intellisense reads the actual IDL help string from the core COM libraries and displays them for you.

Just a small enhancement, but worth noting.


Posted in Developer | Tagged , , | 1 Comment

An easier way to zoom: A Dojo dijit that zooms to states and counties

This dijit zooms to states and counties. Click to try it.Dijits (Dojo widgets) have been a semi-regular topic on this blog and those posts helped me get up to speed on how to develop my own dijit for use with the ArcGIS JavaScript API. One requirement that has come up a couple of times when I’ve worked with the JavaScript API is the need to zoom to a state and/or county. Since I figured I’d continue to want this functionality in the future, it seemed like a good idea to spend a little extra time and put together a dijit that can be easily re-used in applications. You can preview what I came up with here: Zoom To State/County Dijit. This dijit is available for download on the Resource Center.

The UI component of the “ZoomTo” dijit is composed of a couple of other standard Dojo form dijits. It’s making use of the drop down button (keeps the dijit’s footprint small) and filtering select (two actually, one for states and one for counties). On the back end, the dijit connects to two JSON files. Each JSON file has state or county names, FIPS codes and, most importantly, the extent for each state or county. When a selection is made, the dijit pulls the extent out of a JSON file and then passes it to map.setExtent() to zoom and pan the map to the correct location. The dijit also draws the extent as a graphic, fades the graphic out and removes it from the map’s graphics layer as a visual cue to the user.

Some observant readers might be wondering about spatial references. They’re taken into consideration too. The dijit will make sure it’s sending an extent with the proper spatial reference to the map. The extents in the default JSON file provided are WGS84, but JSON files with extents in Web Mercator (WKID 102113) and NAD83 (WKID 4269) are also included in the dijit’s data folder. It’s up to you to specify a JSON file that matches the spatial reference of your map, but if the spatial reference of the map doesn’t match what’s in the JSON file, a request is sent to a geometry service to project the extent before sending it to the map. This is a quick operation and causes only a slight delay in the time it takes to zoom to a state or county.

Please be sure to go through the ReadMe.txt file in the dijit’s zip file because some edits are required to get this running on your machine/server. Also, check out the comments in the ZoomTo.js file for more info on how the dijit works.

Contributed by Derek Swingley of the ESRI Applications Prototype team

Posted in Services | Tagged , , , | 5 Comments

Design concepts and setting up your own dashboard

I started typing this blog entry last week.  My original idea was to share 5 simple steps to set up the dashboard or Flex sample viewer.  Since then, two great things came up, the creating effective web maps seminar and an unbelievable flex guide from a user.  Both are discussed below with my original 5 steps.

I recently had the honor of presenting the creative effective web maps seminar.  If you did not get a chance to attend this seminar, I strongly suggest reviewing the seminar materials.  The seminar focused on creating web maps, just like the operational dashboard.  A lot of concepts and design practices were discussed.  If you would like to review the materials, you can download the powerpoint and handout from this website. 

At the end of the seminar, we demonstrated configuring the Sample Flex Viewer for a parcel notification application.  If you are interested in doing this, take a look at the handout that was provided at the seminar.  It provides a walkthrough for you.  You can find it on the web site provided above.

I would also like to share a very detailed document that one of your users shared with us.  Tapas Das, from the Arizona Land Department, wanted to learn the Flex environment so they could upgrade their old ArcIMS based Parcel Viewer to ArcGIS Server.  In this process, he put together a very detailed word documents that goes through setting up Adobe Flex builder, using a flex tutorial, debugging flex, and much much more.  Again, big thanks to Tapas for sharing this.  This is fantastic.  If you find this helpful, please thank Tapas.

So to my original idea, 5 steps to setting up the Dashboard.

1 .Determine your Data and Services

I like to think of the data to support my application in three formats.  Dynamic, Cached and Other services.  When you construct your application, you are going to use a combination of these services.  By separating data into a series of cached and dynamic services, maybe some custom overlays, you will achieve the optimal performance.  Think about it, if you had all data, orthos, mains, parcels, etc.. in one dynamic service.  Each pan and zoom has to query all these layers, label and draw them and send the image down to the browser, but if you separate the orthos and parcels into one cache service.  A pan or zoom will just grab the pre-rendered cache service of orthos, parcels, etc. and only query and draw the layers that need to be overlaid, the mains, valves, etc..

When you are trying to split up your data, here are some helpful ways to think about your different services:

Dynamic Map Services – Optimized or Regular

  • Real-time data
  • Frequently-changing data
  • Reporting Layers
  • Widget Results

Cached Map Services

  • Background data
  • Data that does not change often
  • Projected on the fly – what I mean by this is that if this data is not in the proper projection, set the data frame to the proper projection and the cache will be build with the data projected.

Other Services

  • Geoprocessing, Routing, Locators, Custom XML services
  • Real-time data from other systems
  • Results from tables or other systems

When configuration the Sample Viewers, you have three options to display your data.  Each of these options gives you a little different control over the data.

Base Maps 

Typical these are cached maps.  They are drawn as the bottom layer in the Viewer and only one base map layer can be displayed at a time.  The user does not have the option to toggle layers in the map on and off.  The service is treated as one layer. 

Live Maps

Typical these are dynamic maps.  They are drawn on top of the basemap and can be stacked on top of each other.  Think of each map service as a group layer.  If they are dynamic services, the user can toggle different layers on and off.

Widget Displays

We refer to these as client side graphics.  The information behind them is coming from a dynamic maps services or what I referred to above as other services.  If you are using a dynamic map service, the supporting map document is usually a few layers.  Symbology and scale is not determined by the map services, so do not spend anytime of this map doc look and feel.  The widget will query service, map service or other, filter the results and display a graphic.

This can include a table of information.  At this moment the Rest API’s do not support tables.  This should not prevent you from creating a web service that connects to a SDE table or third party system, and send those results to a widget as XML

Widgets are also a great place to show the results from a selection.  We typically call these selection sets in desktop GIS.  We can display them in the standard grid, but try to think about the results in a different manor.  Can we use a chart to display them?  Is there any way to rely the same info in a more intuitive way?

2. Set up the Flex Viewer

Set up files in IIS

  • Copy the Unzipped flex application to a folder on your Web Server.
  • Create a virtual directory for this application
  • If you need help with this section, follow the section in the templates help files
  • Apply CrossDomain.xml – to access data from a different server than the one hosting your Flex application, the remote server needs to have a cross-domain file in the root directory. For security reasons, the Web browser cannot access data that resides outside the exact Web domain where the SWF file originated. However, Adobe Flash Player can load data across domains if permission is granted from the server. This is accomplished by including a small crossdomain.xml file on the remote server that permits Flash to connect to services on that server.

3. Determine Widgets

The Flex viewer template comes with some widgets for typically web mapping functionality.  Some of them are listed below. 

  • AboutWidget.mxml
  • BookmarkWidget.mxml
  • ChartWidget.mxml
  • DrawWidget.mxml
  • GeoRSSWidget.mxml
  • IdentifyWidget.mxml
  • LiveLayerWidget.mxml
  • LiveMapsWidget.mxml
  • LocateWidget.mxml
  • OverviewMapWidget.mxml
  • PrintWidget.mxml
  • There are more widgets posted on the resource center for the Flex API. 

4. Update the Configurations File – Main Viewer

Open Config.xml in the Sample Viewers Root & Change the following tags

  • <Title> and <Subtitle> – This is the text in the bar at the top
  • <Menus> – Menus are the drop downs in the banner bar.  You add will add tools, widgets and layers to these.
  • <Map initialextent…..> – Adjust these extents in the spatial reference of the viewer
  • <Basemaps menu=”menuMap”> – Add the basemap services.  These services are display vertical on menu listed
  • <LiveMaps – Add the operational layers services.These are displayed in the LiveMapsWidget and are displayed on a floating widget.  Make sure to leave the LiveMapsWidget in the widget section
  • <Navtools> – By Default, all navigation tools are listed
  • <Widgets> – Add all the widgets you need in your application

5. Update the Configurations File – Widgets

Check and see if your widgets have configuration files.  If they do, open them up and adjust the configuration for each.


Posted in Water Utilities | Tagged , , , , , , , , , , , , , , , , | Leave a comment

SOE – what's new?

SOE what? 

You will hear me talk a lot about SOEs this year as the best practice for providing low-level GIS functionality on the web.  What are these SOEs and why should you use them?  An SOE (Server Object Extension) is a class and a set of methods that are developed to run within the SOC and then can be called by web applications.  We just introduced them in Java in ArcGIS Server 9.3.1 and I think they may be the most important thing the Java team worked on at 9.3.1.

 What are the advantages of writing an SOE?

  1. Modularizing your code.  SOEs allow you to separate low-level ArcObjects business logic code from presentation code.  ArcObjects developers can write SOEs without knowing JSF and JSF developers can create great web applications without knowing ArcObjects. 
  2. Performance.  There are several cases where you will see huge performance gains.
    • Round-trips.  A lot of developers have written code or tasks that take lots of round trips to the Server.  In many cases the calls to the server don’t take a lot of processing time but the network overhead is killing their application performance. 
    • Fine-grained ArcObjects.  If you need access to fine-grained ArcObjects you should put that code in an SOE.  Fine-grained ArcObjects code almost always requires lots of round-trips.  Use an SOE. 
    • Data Analysis.  If you are transferring data to your application for analysis then you should really think about either a Geoprocessing model if possible or an SOE for complex analysis.  For example, one developer I met wanted to get the median value of one of the attribute fields.  He queried all records and then computed the median in his JSF code.  When we moved his code to an SOE there was a 75% performance savings.  The only time you should be transferring data from the SOC to the client is to present it to the user.
  3. Working with clients written in multiple languages.  It doesn’t matter which language you write your SOE in (Java or .Net) it can be consumed in Java, .Net, Javascript, Flex, or Silverlight.

It’s SOE Easy!

We have put a lot of effort to make the development and deployment of SOEs easy.  Take a look at the documentation on SOEs to find out about them.

Posted in Developer | Tagged , , , | 1 Comment

Historical GIS template: Boston 1775

By Charlie Frye, Esri Chief Cartographer

This post, is to announce the release of a map template for historical GIS called Historical GIS:  Boston 1775. If you’ve never given historical GIS a second, or a first thought, you might find the contents interesting and maybe even applicable to your work. Consider that the vast majority of GIS data is historical, even if it’s only a few minutes old.

Genealogy and history have been hobbies of mine for years now, and I’ve since developed an interest in colonial U.S. history– in particular, the U.S. Revolutionary War. For me, GIS and mapping provided an obvious way to make sense of the history I found fascinating. As such, I found it more than a little ironic that relatively few of the historically-inclined geographers I’ve met had turned to GIS much less demonstrated GIS-based methods as a sound basis for scholarly historical inquiry. But, I’ve been happy enough to take that opportunity to blaze a trail. Continue reading

Posted in Mapping, Migrate | Tagged , , , | 9 Comments