Esri Location Analytics Tools in an Organization: Embedding an Application Served from ArcGIS Online into a SharePoint Page

In my last post I took a map that I had authored in both Esri Maps for Microsoft Office and ArcGIS Online and created a web application that I could use on my desktop, tablet, and phone.  Now to complete the requirement I had originally I will show you how to take that same application and embed it into a SharePoint site.  Admittedly, if the end game was ONLY to have a map in SharePoint I would have started in SharePoint using the Esri Maps for SharePoint application. In this case, I had a multipurpose need and went a slightly different route.

To refresh you, the image below is the simple application that I created using the ArcGIS Online application template. Not the prettiest, but functional.

So first, I want to go back to the Summary page for my application. Go to MY CONTENT and click on the title of the application. You will see something like this.

All you need to do here is COPY the url link to the application (paste it into Notepad or somewhere else to use later).  Once done, we are done with ArcGIS Online directly.

Next it is off to SharePoint.

At GISi we have a corporate intranet site that is built on SharePoint 2010. Within this we have a Site that has Pages for all of our offices (addresses, contact info, etc.). What I want to do is embed the hotel application within this page so that anyone within the company can use it.  To start I simply click on the Edit this Page link.

This brings up the editing Ribbon.  I know that I want the Hotel Application to show up in the main part of the page just below the main block of text indicated by Zone 1.

To add the application I have to create a container – web part – to hold the application. So within the Zone 1 block I click on Add a Web Part.

NOTE: Your SharePoint Page may not have a zone but you should still be able to add a web part and configure it as I will do here.

Clicking Add a Web Part changes the Ribbon to a Explorer interface from which to choose the web part you need.  I know I want a Page Viewer web part which is under the Media and Content Category.

I select that and click the Add Web Part to: link – making sure I have the correct Zone indicated.

The result is an empty Page Viewer Web Part.

Next I click the Open the tool pane to configure the web part. And the following dialog will open on the right of your page:

In the URL space, clear out any text that SharePoint has in there and Paste the URL from your application in here.  Once done, you can click the TEST LINK link to make sure that the application loads.

You will also want to open up the Appearance tab and do some additional configuring.  For instance, Add an informative Title.  You will also need to set the Height and Width of the application within the area designated for the Page Viewer web part.  You can do this through trial and error. Set a value, hit Apply and keep going until you have what you want.

Here is the result for our application:

One note, I discovered that for some reason embedding the application in a SharePoint Page causes issues with rendering the fancy 3D graphic I had originally selected for the Hotels. To fix this, I simply went back to the map in ArcGIS Online, changed the symbol to a simple geometry and re-saved the map. The application automatically recognized the change.

So this completes my Simple Consumerization of GIS Trilogy.  In this 3 part series I was able to:

  • Add a map within an Excel spreadsheet using Esri Maps for Microsoft Office and ArcGIS Online,
  • Publish the Map from Excel to ArcGIS Online,
  • Make additions to the map in ArcGIS Online,
  • Create and publish an application using my map that worked on my desktop, tablet, and mobile phone, and
  • Embed the same application in our Corporate SharePoint intranet site.

…and all without writing a line of code!

It’s not a stretch of the imagination that our folks across the company could follow these simple steps to create layers with hotels and restaurants and even preferred running routes near our other offices add these to the Map in ArcGIS Online, and by proxy, to the application.  Almost sounds like crowd-sourcing. Think about amazing your friends when you pull up a on your iPhone a rich mapping application that you created !


Esri Location Analytics Tools in an Organization: Using ArcGIS Online to Publish a Web Application for Distribution

In my last post I showed you how you can use Excel and Esri Maps for MicroSoft Office to create a useful map within Excel and then publish it to ArcGIS Online so you could share the map.  Now I want to walk through the process of using ArcGIS Online to enhance that map, create an application that can be used in a desktop, tablet, and mobile phone browser.

So the first step is to log in to ArcGIS Online. (http://www.

Enter in your credentials. (Quick note, your username is now case sensitive – a change from other Esri sites).

Once you log in you will be taken to the Main Site. It will look a bit different for you than the screen shot below; as we have an organizationally branded site. The Banner across the top will be identical though.

So first off, I want to see where my map of Hotel locations is published, to check on that I simply click MY CONTENT.  I can see everything that I have published to my account here. You can see that both the Hotels Feature layer is there as a Feature Service and the Map is there as a Web Map, and both are shared to everyone.  I am able to select any one of the items and change the status, delete, or start using them in the map authoring tool here in ArcGIS Online.

I want to Open up the Web Map and work with it a bit to get it ready to for use in an application. So I just double click on the name and I get the Summary page for the Web Map. This shows me all the information I added during the publishing phase and the URL links for both the Hotel feature service and the Base Map feature map service (Topographic).  It also lets me start a Map session by selecting the Open Button and select the Open in map viewer.

This starts up the Map Viewer which gives me some options to enhance my map. I can change the base map if I decide I don’t like my original choice, change the way the pop up is configured, change the layer styling, etc. All the things I did in Excel I could have done here. But since I have shared the Feature service someone else can take that and set it up the way they like and re-share it as a new map.  That reminds me, I just realized that this would be a much more useful map if the folks looking for hotels also knew where our office actually was.

Now I don’t remember if I have published a feature service with our office locations myself or if someone else in the organization has, but it doesn’t matter. I can search and see what is there. Selecting the Add drop down from the main panel and choosing Search for Layers, I can see if there is a layer available that makes sense to use.

This brings up a search panel from which I can search through my own content, all of the shared content in My Organization, or all of the content available in ArcGIS Online, and the web for that matter.

Oh look, I did publish a GISi Offices feature Service already,

I click the add button and that feature is added to my map.  Again, this data could have come from anywhere that I searched.

Now that I can show where the office is relative to where the hotels are, I have a much more informative map.  Maybe later someone in the company will get excited and create a service with the local favorite restaurants or places to visit too.

Next I will simply save my map by selecting the Save drop down. I could do a Save As, but don’t need to in this instance.

Now let’s get this Map ready for Prime Time and put it to work. I want to embed this Map in an application that I can in turn use directly from the web, on a mobile device, and insert into a SharePoint site.  I can do this all without pestering a programmer (I prefer to let them wrestle with tougher problems anyway, I think they prefer that as well).

To start, I simply click on the Share button above my map (right next to the Save button I just used).

Wow, look at these options. I have a direct link to the map, I can Share the link through Facebook and Twitter, I can embed the map into a website, and I can Make a Web Application. I can also restrict usage of anything I do here too. One thing to note, at whatever level you share a Map or Application, your features need to be shared at that level as well or they won’t work.

So let’s look real quick at what happens when I click on the Embed in a Web Site button.

Look at that. Man, I can just cut and paste this code into a web application, like our corporate web site, set the size I want the map to be at and what navigation tools to add and BAM we are in business.  This is a little too programmy for what I am trying to do right now though so I am going to go back and take a look at the Create an Application path and see where that leads.

Okay, this looks interesting.  What we have here are a series of template applications waiting for a map. The best thing I can tell you here is to explore each one of these to see what they do and what they look like. Esri makes this easy. Simply hover over any one of the thumbnails and you get a brief description. But better yet, if you pull down that little down arrow next to the word Publish you will get three choices:

  • Publish – which creates and publishes the application for you,
  • Download, which is a good way to provide a programmer a jumpstart on an application that they can customize, and
  • Preview, which is the most useful for seeing how your Map will behave in each of these applications.

I have found one that looks like it will create a web page and work on mobile devices too. An added bonus for me and what my app is supposed to be for. So I select the preview button and this pops up in a new browser window. It is a fully functional application. You can see that the Pop Ups I created in the Excel phase works well.

Being satisfied that this will work for me and that I will also create a mobile version (form adjusts to the size of the browser on the mobile device – it is still a web app) I am going to go back and Publish this Application.

One more time, I need to give the application a name and some metadata about it to help the discovery process for anyone else.

I hit Save & Publish and ArcGIS Online goes to work for a few seconds and then get the following message about the next steps.

Some of the applications do have some configuration that you can perform to futher customize it; like what color scheme to use and what tools to add. In my case I just want to share the application so I click on the link in the form and get sent to my Application Summary Screen where I can manage the application. At this point I just want to share it.

And I have one more chance to determine how widely I distribute the app.

Hit OK and I am done.  Notice the URL that is provided in the summary screen. This is all I need now to share my application; I can send this out to my team. Below are a couple of screen shots from my phone and tablet of the application I just published!

From my Android Phone

From my Android Tablet

In my final blog of this series I will show you how I can embed and use this same application within SharePoint.

Esri Location Analytics Tools in an Organization: Using Esri Maps for Microsoft Office to Publish to ArcGIS Online

During the 2012 Esri Developers Summit I posted a series of blogs. The general theme of them was that the tools that Esri was releasing in the 10.1 roll-out had really begun to consumerize the use of their product suite. I had talked about how much of the mundane (to us GIS Professionals) had been so well automated with the new products that: 1- just about anyone could do basic and even some advanced GIS, and 2- this would free up our GIS Professionals to do even greater things.

So now that the 10.1 suite has been released, I wanted to take a little time to really show how easy things have become. To do this I will use a two of the newest products within the Esri Location Analytics Toolbox, specifically Esri Maps for Microsoft Office and Esri Maps for SharePoint while leveraging the centerpiece of the current Esri technology stack, ArcGIS Online. My intent is to show how workflows that either previously did not exist or were destined to end up on a GIS professionals desk are now viably performed by anyone in an organization.

For an example, I will use a simple problem that we have dealt with in the past.  We want to be able to generate a list of hotels that we recommend for people who come to our various offices, and wouldn’t it be great to actually put them on a map and then integrate it into our corporate SharePoint site and even post that to our external website.  A year ago this would have required that we put a GIS Analyst to work generating and publishing the map, and then a developer to integrate it into our SharePoint site and our external web site.  But now with Esri Maps for Microsoft Office and ArcGIS Online, this can be done by anyone in the organization.

The first step is to generate a list of hotels; five minutes cutting and pasting from an internet search and we have a viable list. I added some information including a ranking, contact number, and hotel url which will all be available to the users once we publish the map.

Assuming you have already loaded the Esri Maps for Office, there should be a menu tab at the end of the standard Excel Tabs.

If you click on the Esri Maps Tab you will be presented with the following Ribbon.

Most of the tools are greyed out because you haven’t added a map or data to the map but that will change shortly. Notice the # 1 arrow, this means that I am signed into my ArcGIS Online account.  If I wasn’t this would say “Sign In” and I would be able to log into my account. You need to do this to be able to publish the map or data to ArcGIS Online. If you need to get an account, follow this link

So to insert a map into your excel spreadsheet, just like you would add a chart, just click on the Insert Map button on the ribbon (# 2 on the image above). This will add a unconfigured map to your worksheet. In the image below you can see that I now have more available options on the Ribbon. A Control Panel has been added on the right as well. This behaves much like the Table of Contents does in ArcMap, as you add layers they will show up on the map and in the Control Panel.

So let’s configure the map a bit.

I like to zoom into the area I want to map and then cycle through the BaseMap options (on the Ribbon) to find the best looking and most useful map for what I am trying to show.  To do this, click in the map and then you can use your mouse wheel to zoom in and out, or click hold and drag to pan around.  Once you are centered about where you want to be, click on the BaseMap button in the Ribbon and select a different base map. Continue until you are satisfied. Here is what I have come up with so far:

Now I don’t really care for the Map 1 title, not really very informative. So to change that I click on the configure map icon in the upper right side of the map banner and now I can enter in a useful name for my map.  Once done, I click on the configure button again to close that window and return to the map.

Now I need to actually add the Hotels to the Map.  As you might have guessed, I simply click on the Add Excel Data button on the ribbon and it starts up a Wizard.

It asks me the format of the source of data I have, in this case it is a Cell Range so I select that and hit next. Then I am asked to select what cell range to use (just like it does when making a graph). Notice that I included the header, you don’t need to but I know from experience that it will speed up a step later on.

After I hit OK, I tell it what location type I have, this will tell ArcGIS Online how to do the Geocoding. I know my data is obviously addresses so I select that and click Next.

And here is where I have saved myself some time. Because I had headers in the selected cell range and they were words that the tool recognized, it automatically mapped which columns to use for which part of the address.  If I had not done this I would need to pull down the drop down for each element and select the appropriate column.

Now, once I hit the Add Data to Map, the data I have selected and the information about how to geocode the data gets sent to ArcGIS Online, is geocoded, and sent back to my map. It takes a few seconds. The more records you are mapping the longer it takes.

I now have the hotels plotted on the Map and I want to do some final configuration to the layer to make it a bit more useable. I can do this by right clicking on the name of the layer in the Map Contents Tab in the Control Panel on the right.

I definitely want to Rename the layer from Excel Data to Hotels. Click on Rename and enter “Hotels”.

And I want to use a symbol that represents more what the layer is. To do this Right Click on the Layer Name (Hotels) and select Style from the list; or click on the Style button on the Ribbon.  You have a bunch of choices here. In my case I want to use the Bed icon under the Transportation set.  I also made my icons a bit bigger than standard using the slider bar at the bottom of the form.  This all takes some trial and error but no more than if you were working out the details of a chart in Excel.

One last thing.  I want to configure the Pop-Up box that appears when someone clicks on one of the hotels.  Again, right click on the name of the layer (Hotels) and select Pop-Ups from the list. The following form appears:

Any field that was in the original range of cells you selected will show up here. I want to use the Hotel name for what shows up in the pop-up banner and because of that I don’t need it in the main body of the pop-up, so I uncheck the Visible check box for that record. I want everything else to show up.

The result looks like this:

You can see by adding information to the source spreadsheet you can provide a lot of information to the end users.  The web urls also work from the pop-up boxes. Click on the url and it will launch a new tab in your web browser and take you to that specific link.

Okay, one last step here. I have this potentially useful map and want to share it, but it is stuck in Excel. I can’t pass around the Excel file because not everyone will have the Esri Maps for Office capability. I could use the Create Slide button and that would create a PowerPoint slide of my map, but it wouldn’t be dynamic – the pop-ups wouldn’t work.  But I can publish this to ArcGIS Online and make it available online to anyone in my organization or the general public. And once I have my map online I have a bunch of other options for sharing.

How do I do that? Two ways. I can either just share the Hotels Layer and all the configurations I just did and build a map in ArcGIS Online, or I can Share the entire Map (in this case this would include the selected base map and map extent).

There is both a Share Layer and a Share Map button on the Ribbon. In both cases you will need to enter some information to make your map or layer discoverable and identifiable and set which user groups that you want to allow to use. Below shows how I have configured the Map to share.

Once you hit the Next button it will present one last choice about sharing the layers in the map. Then you hit the Share Map button and your map gets published out to your ArcGIS Online Account. This takes a few seconds to get the data packages moved and perform all the validations to ensure everything is correct. Once you get the green check mark, your Map is up and ready to use in ArcGIS Online.

If you have ArcGIS desktop you can check yourself to make sure everything transferred and that the map is behaving the way you intended. Just start ArcMap, go to add content from ArcGIS Online and you should see your map listed under My Content.  Click on the Open table and the map will load into ArcMap.

So I have created a Map in Excel using data from within Excel and ArcGIS Online, published it as a Shared map to ArcGIS Online, and verified that it is shared by pulling it into ArcMap.

In the next blog post of this series, I will show you how to use the Map I just shared in ArcGIS Online, add content from other users, build an application from a template, publish the application to use as is, and embed it into SharePoint or another web site.

Realizing I am an Old Dawg: Thoughts from a CTO of a Technology Company

So about 15 years ago I am sitting in the hockey locker room after a game drinking a beer. The guy sitting next to me is in his mid-fifties. I think back to the game as I say, “Hey nice goal tonight, sure hope I can play like that when I’m your age”.  In my mind I was being respectful and complimentary. Now 15 years later some smart-ass 35 year old kid is sitting next to me and I’ll be damned if he doesn’t say the same thing to me (of course I see more of a smirk on his face then I had on mine).  I can tell you it doesn’t sound as good on the receiving end as I had meant it on the delivery side. What I really heard the kid saying was, “aren’t you about ready to hang up your skates?”  Strangely enough, as my hair continues to thin and grey, I find a similar pattern occurring in my day to day role as the CTO. The younger ones, which is pretty much everyone else in the company now, full of energy and ideas and impatient to get the latest and greatest technology, always want to know why we aren’t doing this or why we aren’t doing that. The culmination of these on- and off-ice events have started me thinking a little deeper about what it means to become an Old Dawg and how my expectations and perspectives have changed along the way. This introspection has made me focus on the following question: am I slowing the technology development and adoption in the company or I am truly guiding the technology direction of the company through seasoned experience? Allow me to share my thoughts as I wrestle with this question.

I remember, as I was preparing to start my doctoral research, sitting in my advisors office passionately trying to convince him that I HAD to go to a GIS training class being held at Texas A&M to learn the “state of the art” technology in GIS.  He was somewhat dubious but I think looking back, he did not want to curb my enthusiasm and agreed. The training was being run by the National Park Service on a home grown system called SAGIS.  Anyone ever hear of that one?  I never did again either.  Now I did learn a good bit about the underlying processes in line command GIS, but as for SAGIS itself, it was a waste of time.  I started to learn two things from this (this lesson was repeated several times in my career); first, I might want to put a bit of a governor on my own excitement when making decisions like that, and second, to pay attention to your advisors’ words and even nonverbal signals. They have been there and usually truly do understand.

Another lesson I have picked up on the way is that the experts don’t always know what they are talking about (a central theme in the book The Black Swan by Nassim Taleb, which is why it resonated with me).  Some of you might remember when ESRI released MOIMS, followed shortly thereafter by ArcViewIMS, and then finally IMS.  Despite all of the experts touting how MOIMS was going to take the industry by storm because it was “just simple vb” so your existing programming staff could develop with it, it never got a foothold. The pitch for ArcViewIMS was that “your GIS Analysts could publish internet applications.” Alas, that did not stick either, but not without significant investment by the organizations I was working with at the time.  Now IMS did hit the mark and to this day seems to provide some capabilities and ease of use that ESRI is struggling to match with the AGS API technologies – damn those map services. Technologically there really wasn’t any reason the first two systems didn’t take hold. Looking back I think that it was more of a disconnect between the user base and the technology itself (a primarily desktop and client-server community base struggling with a developing internet solution). None of this was predicted by the industry experts.

Gartner Research published the Hype Cycle concept in 1995, which charts out the progression of an emerging technology through its lifespan.  I think this chart helps put into context the experiences I have described. As a new technology hits the street the community gets over-excited and pressure to try it or adopt it is high – especially by the techno-curious. The problem is that if you get caught at the peak of the hype and it turns out it is all hype and the technology is no good, for whatever reason, you have lost money, time, and credibility in one fell swoop.

So as I have progressed through my career evolving from the techno-curious guy getting caught on the false upward slope, through the skeptical road-worn warrior that appears to be the curmudgeon that likes to say “no”, I have subconsciously developed a mental attitude towards new technology that I think became clear to me as I read The Black Swan. Taleb describes the mindset of a skeptical empiricist which to simplify for me means, believe the facts just don’t trust them.  So a couple of concepts in that short definition are key. Facts have to be truly validated as facts and not opinion of the over-enthused. Belief and Trust come from understanding where the facts have been derived.  You can believe that a piece of information was actually truly derived under the circumstances, but can you trust that the same information would be valid if the circumstances were repeated or slightly changed.  And what would be the impact if the answer is no.

This Empirical Skeptic concept is at the heart of why you might have been asked by your leadership team to provide requirements and/or develop a business case for the technology you are recommending.  They are trying to ensure a logical thought process has been followed, the available information has been vetted appropriately, and the benefits of success and risk of failure have been thought through. These requests, at times, may seem like a wet blanket thrown over the fire of enthusiasm; I can assure you that is not the intent.

The reality is that leading a technology company presents some real challenges in balancing technology adoption with fiscal constraints and employee satisfaction. While we want to be constantly evolving to keep pace with technology and keep employees intellectually challenged and satisfied, we must balance that with making full use of the technology investments we have made.  I can’t tell you how many times I have championed implementation of a specific technology based on recommendations from a techno-curious employee, only to be told (by the same employee) within days of implementation that there is this new great tool out there we need to be using instead.

So let me go back to my hockey metaphor to wrap up my thoughts around all of this.  As I have gotten older, I have transformed how I am a productive team member on the ice. I am not the one scoring the goals, in fact just the opposite; I am a defenseman where my current skills are more appropriate.  One of the most important roles as a defender is to make the first break out pass – get the puck to the skills guys leaving your own zone at full speed. That’s how I see my role as a CTO, get the technology to the guys that know how to use it best. But to do this you have to be able to see the entire ice so you don’t throw a pass up the middle right to an opposing forward, or perhaps worse, right to your guy just as he is about to get crushed by the other team’s defender.  I am responsible on the ice and at the office for setting up my teammates for success – not failure.







No, not me. This is Charles Schulz (Peanuts Cartoonist) who played competitive hockey until his death at 78.

ArcGIS Server Performance: Behind the Curtain

So I am sitting in the audience watching another ESRI Demo on how the 9.3.1 AGS technology is so much faster than the 9.2. A couple of thoughts hit me right away. First, well that is a pretty low bar to get over; we all have heard the complaints from our clients. Second, of course they have the super duper Inline Server sitting 10 feet away from John Calkins running a demo that is optimized to show off performance improvement.  It made me wonder, well how big of a difference does Caching make, and for the vast majority of our client applications who require dynamic data, how well do the MSDs really improve performance on real map files.

We have started to quantify the performance gains in going from pure MXDs to optimized MSDs and finally to a fully cached map using the actual map files that are being deployed. Since we have been developing with the .NET ADF and the JavaScript and Flex APIs we have also been measuring the performance boosts with differing map service types with each of these technologies as well.

Some context for the types of map files we have been testing with. Our typical client map will have 15 to 25 layers, sometimes more, with a liberal use of scale dependent drawing. We typically view from a county level down to a parcel level view with our largest data layers being the local streets and parcel layers. The number of parcels we generally have for a county is between 35,000 and 100,000.

What we have seen our testing is for the .NET Adf applications an optimized MSD takes 1/3 the time to return a map to the user as an MXD.  We haven’t seen a significant different between the MSD and the Cached service. However, we have been able to measure the load on the server and while it takes the server half as long to process and MSD versus and MXD there is an additional 25% benefit when going to a Cached service. This could influence server sizing decisions depending on what kind of service you are able to deploy; you could support at least twice as many simultaneous map request using a Cached service versus an MSD service.

With the Flex and the JavaScript APIs we have seen an even more pronounced difference between the MXD and the MSD and Cache. An MSD and Cached service both respond about 20 times faster that an MXD.

Beyond the simple way you serve the maps to the application, the architecture and application code itself can be tuned to effect performance improvements.  We have seen significant speed improvements in initial loads of an application simply by architecting the first map to be a fully cached map (particularly useful with National or World Wide extents) and then switching to an MSD service as the user zooms in. 

While we don’t quite see the performance improvements across the board that ESRI was claiming from the podium, the 9.3.1 technology is definitely meeting and exceeding client expectations.