Transcript
00:01Hi, my name is Garry Burgess, I'm the development lead on the Business Analyst and Community Analyst teams...
00:05...as my colleague Chris Wilcox, and my colleague Tony Howser.
00:09We're here to do a session today on building location intelligence into your applications.
00:16So, thank you for coming.
00:18I hope everyone's having a good conference and there were no injuries in dodgeball last night. There was one, yeah.
00:29So, this is a developer conference, so I will apologize by showing a few PowerPoint slides...
00:36...but it won't be many, and we'll be digging right into it in a moment.
00:42So what do we mean by location analytics or location intelligence?
00:48Really I could classify that into three buckets. The first is providing spatial context, standard GIS stuff, where I am located...
00:57...provide me some geographic information about my location.
01:01Spatial analytics, so an example of that would - that I'm going to demonstrate soon...
01:07...would be plop a point down and tell me...
01:11...or draw a service area that represents where I can drive to in a five-minute time frame.
01:18And the last one is this concept of spatial information, that's what we're going to be focusing on much of our session today.
01:25And what do I mean by spatial information?
01:27Really it's providing geointelligence or location analytics for a particular location.
01:36So imagine, if you will, I have an address here in London, England...
01:44...and from that address, I want to find out information about it.
01:49So I may want some geographic context, so I want what county does it belong to, what post code does it represent...
01:56...what district is it in, et cetera.
01:59I may want some demographic information, or lifestyle characteristics.
02:03So if I know Chris, being a very wealthy individual, because he's a developer at Esri...
02:09...I got his address, and I could tell you that Chris probably makes a good seven-figure salary, drives a Ferrari...
02:15...and goes skiing in Aspen on the weekends, right, Chris? Are those your lifestyle habits?
02:21Yes.
02:22Yep. And we can also tell you what's nearby through this API...
02:26...so from Chris's we could tell you know where he can go buy his Rolls-Royce on the weekend...
02:32...or rent a Mercedes or other information nearby.
02:40And then I think the last thing that we can do with this location intelligence is provide comparative analytics.
02:46So not only can we tell you that what are the lifestyle characteristics, what are the demographics...
02:53...in Chris's particular address, but we could compare that to the ZIP code, for example, or the county.
02:59So that we know that hey, Chris makes a lot of money...
03:02...well, is that because everybody makes a lot of money in this particular area, or is it because he's an anomaly.
03:09So that's kind of what I would describe as business intelligence or...
03:15...the business intelligence that we're going to talk about today.
03:19And these are the types of information that we could infer or calculate for a given area itself.
03:27So really, what we're going to be demonstrating today is something that we call...
03:30...the Business Analyst or Community Analyst API.
03:35And we have created a couple of web solutions that utilize that API.
03:42How many people here are familiar either with the Business Analyst Online application...
03:46...or the Community Analyst application? Can I show of hands? Okay.
03:50There's a few, and I think a lot of people in the audience didn't put their hand up.
03:55So what I'm going to do now is take a couple of minutes and just demonstrate Community Analyst...
04:02...just so you get an idea of what we've done from Esri in terms of providing an end-user solution that's powered by this API...
04:11...and then we're going to dig into the actual API itself.
04:21So I'm going to open up a browser and I'm going to go to communityanalyst.esri.com...
04:30...and now this is the part where everyone crosses their fingers
04:34...Convention Center web access is working well. We'll use my account, and I'm going to log in.
04:48So what you're looking at here is an application that was released at the last User Conference...
04:56...it's a Flex or Flash-based application that's using our - the Community Analyst or Business Analyst API behind the scenes.
05:04It's that API that talked about that has that kind of location intelligence.
05:08So if we go into the select location, and I'm going to do a Find location, and Chris, what's your address?
05:18380 New York Street, Redlands.
05:21That's cheating.
05:23Good answer.
05:24Most of the time.
05:25Well that's because he works so hard he actually sleeps there.
05:31Can't spell Redlands. Alright, so if we pop that location on there...
05:37...it finds the location, we could see the Esri campus here.
05:40Again hit Next. Now's where we can actually apply some service areas around this particular point.
05:48So we could do a ring buffer, or we could do a quick drive-time service area around that.
05:55And what we're going to do now is use the Network Analyst service provided in our API...
06:01...and it's going to calculate that five-minute service area there.
06:05I could give this a name. Alright, and what we can do now is, now that we've created that area, we can go and create some reports.
06:18And there are different ways that we can produce reports. One is either through precanned reports.
06:24So, for example, if I wanted to look at the demographics in income within a five-minute service area around Redlands...
06:31...I could either generate a PDF or return the data in Excel format. I can hit Run now.
06:37And what this is doing now is a good example of where we've wrapped a user interface around...
06:44...the API we are going to be demonstrating today.
06:47So now if I open up this actual report here, I can see that there are...
06:52...approximately 36,000 people that live within a five-minute service area of the Redlands campus.
07:01Unfortunately, it doesn't tell you how many of them work at Esri. But I think we have a good idea of that.
07:06So there's kind of the precanned area.
07:09Another way that you can actually look at the information is that we've provided a dashboard as well, too.
07:15So for example, if I wanted to compare the five-minute service area around a particular area, I could hit Next...
07:25...it's going to actually generate what the income is in this area. And we'll look the different income characteristics...
07:32...we could look at what the housing characteristics are, right, so how many people are renting versus owning.
07:37We could look at what the population is like in that particular area.
07:40And we could even customize this, and, if we want, look at all the kind of key demographics for the particular area...
07:48...and view this in tabular form. And now what we can do is it's going to take that five-minute service area...
07:53 ...and here are all the kind of key demographic characteristics for this area...
07:57...and we get a nice kind of dashboard, and we can export this information out to Excel.
08:03The last thing I'm going to show you is something that we call smart map search.
08:07And this is - think of this, for the GIS geeks in the room, kind of a multilevel query for the area.
08:16So for example, if I wanted to look at the median household income - let's find Chris a date.
08:25Because he's a single guy. So we're looking for median household income and median age, and we'll hit Next.
08:33And Chris is probably looking for a rich girlfriend. So we're going to take that. We're looking for people...
08:38...what, Chris, someone who makes more than $75,000, is that acceptable criteria for you?
08:43Alright. And Chris, do you want an older or a younger girlfriend, probably?
08:47We'll go with younger.
08:48Younger. I kind of suspected as much.
08:50Okay, so we're looking for someone what, younger than 38? Does that sound pretty good?
08:54Yeah, that's good.
08:55Alright, maybe 35, we'll say.
08:57[Inaudible audience question]
09:01What we're going to do now is that we'll show these results on the map...
09:05...and what we're going to do here, look at the areas that...
09:08...Chris will be driving around later tonight looking for dates.
09:13So here are the block routes that meet this criteria.
09:15So it's kind of - as you can see, it provides a really nice user experience...
09:21...where we're able to go in and interact with the map and find these areas.
09:24And we've all these different types of demographic criteria as well, too. We could actually change the criteria here...
09:33...so if we looked for Chris, I knows like to drink beer a lot, right, Chris?
09:38So if we looked at the actual market potential, and we're looking for people that drank beer in the last six months...
09:45...and we wanted to find the index there and we hit Apply now?
09:48Now, this is an example of some other data that we've got here, and this is what we call our market potential data.
09:53And this is - takes some survey information and applies that to the actual geographic area in here. And now...
10:01...an index of greater than 100 means that people in this area drink beer greater than the national average.
10:07So we're going to look for a young female that makes lots of money, and drinks lots of beer, maybe lots of beer, Chris, for you.
10:16Alright, and now we're - get that down. So there's an example of Community Analyst itself.
10:24Now this is focused more for communities; it's used a lot by state and local governments for doing planning...
10:34...and sort of policy work as well too, so for example, all kidding aside, it was a humorous example...
10:40...but this being used a lot in the real world to find areas that are suffering economic hardship...
10:46...so that they can apply grant money to the appropriate locations.
10:49And on the business side of things, this is used by retailers to find areas...
10:53...that meet specific criteria for types of expansion.
10:58So with that in mind, I think if you could take away one thing from the presentation today, it would be this URL.
11:09Because everything that we're going to demonstrate from the rest of this session is up on the Resource Center.
11:14It's operating; we have live samples and code samples of everything that we're going to demonstrate as well today.
11:20So - and that ends the PowerPoint portion of the presentation.
11:27What I'm going to do now is I'm going to go on to the Resource Center.
11:32And where you will find all of the stuff that we're talking today...
11:35...is in the solution products, and it's under an envelope called Business Analyst.
11:43Sometime in the near feature we're probably going to rebrand this as location analytics...
11:48...because, as you can tell, not only is it good for businesses but this API is also good at finding dates for Chris.
11:55We didn't want to pigeonhole ourselves.
11:57If we click on the Business Analyst link here, what you'll see here is that we get a landing page...
12:06...where we get some information about a desktop product, a server product, and an online product.
12:12And if we click on the online product, you'll see information...
12:15...about the - basically the blue version of the application that I just showed you right here.
12:20And this is an end-user solution. If I go back, there are two key links that we're going to focus on today.
12:28And I think it's important to understand the distinction here.
12:31We have a Business Analyst Server product. So this is - think of this as an extension to ArcGIS Server.
12:38So you have the ArcGIS Server in your enterprise, and what this does is it adds additional capabilities to the server...
12:47...so, basically, adds a whole new web services end point that you can interact with.
12:52And it also comes where you can install a whole bunch of content.
12:55Basically, it's like an appliance that you install in your organization...
12:59...you get a whole lot of demographic data and street data and geocoding data...
13:03...and then you interact with that appliance with the services end point.
13:06So that works wonderful; I see some people out in the audience here that I've worked with in the past...
13:10...that have actually installed Business Analyst Server, and they're working with it, and they're creating custom applications.
13:15As you can imagine, if those of you - how many people in the room here are actually Business Analyst Server clients?
13:22So only a few hands here, right. So the barrier to entry there is a little hard for a developer...
13:28...because it means you actually have to install the, install the box...
13:32...install the software, install a whole bunch of content.
13:35So what we're going to focus much of the demonstration on today is something that we call...
13:38...the Business Analyst Online API.
13:41And what we've done there is, we've taken all that great content from Business Analyst Server...
13:46...and we've taken a small subset of the actual services end point, and we've exposed it on the public Esri cloud...
13:52...so that all you need is an account, essentially...
13:55...and when Tony demonstrates, he'll actually show you how you can sign up for an account, I think, right, Tony?
13:59Uh-huh.
14:00So what we're going to do now is, we'll look at the Business Analyst Online API.
14:05And what we do is we get some wonderful information on our Resource Center...
14:09...and then we've got - the key here, there are some different web APIs...
14:14...we have a Flex API, a Silverlight API, as well as REST, and so.
14:19So what I thought I'd do is I'd start off by going in and showing you our REST API.
14:27So, REST is, for the, I guess, the nongeeks in the room, think of this a way to interact with our API through URLs.
14:43So much like you can go to Google and search for all the restaurants in Palm Springs, through our URL...
14:51...you are able to interact with our Business Analyst Online through our URL as well, too.
14:55So we could say, how many people live within a five-minute service area of the Redlands campus?
15:03So if we wanted to ask that question through the REST URL, we could look at our different services.
15:10So we've got one here called Drive Time. And I click drive time...
15:14...and then what you'd see here, is you get - there's the actual URL for our drive-time service, so here's the base URL...
15:20...and then what we have to do is basically through that URL, we just need to send some instructions to the actual API...
15:27...so that it knows, well, what kind of drive time are you creating? You're creating a five-minute drive time.
15:32Where are you creating the drive time? I'm going to do it based on this address, or this lat, long.
15:38And then what kind of demographic information do you want for your service area?
15:41So these are all referred to as parameters. So you can see here, we have to define our distance units.
15:47Do we want them in miles or kilometers or feet? What's the radii? We want five miles, and then we have to provide a center point.
15:54So all these types of parameters we have to provide.
15:57And what's really nice about all of these methods have living, breathing, live examples on the website...
16:04...that are written in JavaScript that you can interact with.
16:06So we can actually click on the live examples, and for our drive-time example here...
16:12...you can see this creates a one, three, five-minute drive-time service area...
16:17...around rings, around a single point, and returns the feature set for that area.
16:24So not only do we provide you the example, so you can interact with this...
16:28...but we actually provide you the sample REST end point or the URL that's actually used to generate this report.
16:34So you can actually replicate this on your own.
16:37So if we go and run this right now, so here is that particular request...
16:45...this is the REST request that is being sent to our server.
16:49And it actually generates the response, and then what we do here...
16:54...is we get - we actually use our own Esri JavaScript API to render that response.
17:00And then what you'll see here is what, there's the actual REST request that we sent to the client...
17:04...and this is the JSON response.
17:05So this is basically a text - a standards-based web text response that can easily be parsed by web developers.
17:17So you can see now that we can actually render this application.
17:22So this provides a lot of wonderful information for developers.
17:26And you know someone like myself could open up a development environment...
17:31...use this documentation to create a request.
17:35So here in this request, we're actually going to - not only this time did we create...
17:40...in this particular example we created two service areas, so two different ones.
17:46And then not only did we render the map, but we produced a demographic report.
17:50And we did that all in one request. And hopefully you can tell here, the performance is quite good as well, too.
17:58During our last release, we did a lot of reengineering behind the scenes...
18:02...and our goal is to make sure that for a particular area we can generate a PDF or an Excel spreadsheet in less than one second.
18:09So a lot of engineering went into making sure that happened, but that's pretty successful.
18:14Alright, so that's kind of the REST side of things.
18:21What we can do now is, I'm going to show you a couple of the other developer APIs.
18:32So what we're going to do now is look at the Flex API. And again, much like the REST side of things...
18:38...each one of the methods that you're working with, we have different living and breathing samples.
18:45So we have a lot of contextual information about how the Business Analyst Online API works and how you use it...
18:52...and how you install it, how you get it set up, but the really the meat of this is in the samples themselves.
18:58So if we go back to that drive-time example again, here is an example where we can actually wrap around some Flex API.
19:06So we could plop down a service area, we can generate a market profile report.
19:13It's again going to use the API, this time using the Flex API, and it's going to generate that service area...
19:21...and when the service area is generated, it generates the three rings and then we can open up the report again.
19:27So - and - if we actually look for every one of our examples here...
19:33...we've got our full complete source code that shows how this is working.
19:37And if we look at the way that this works - actually, I think it's probably best.
19:54So if we look at the way that this works right now is that, we've basically got an object here...
20:01...which is a drive-time parameters object right here.
20:04And this is where we're passing all the different parameters to it, that we showed in the REST API.
20:09So as a Flex developer I'm going to say, I want this in drive-time minutes, here're the different radii that I've got here.
20:16I'm going to give it a center point. All these different report options, what report that I want to create...
20:22...and then basically, I then use the drive-time task and generate this particular drive-time task with the token, and that's it.
20:30And really, that is the amount of source code that you're really writing to generate this particular example itself.
20:38So as a developer, what it allows you do is to come in and interact with the Resource Center and we can do the exact same thing...
20:46...not only for the Flex API here, but if we go back to the Business Analyst, use the online APIs.
21:04We have the same thing for our Silverlight developers as well, too.
21:08So if you live in the Microsoft domain, and you're using Silverlight...
21:12...we have the same sort of interactive sample viewer where - it's the same deal, so we've got different types of tasks...
21:30...so here's the thematic mapping example, where we're generating a thematic map...
21:35...and here we've actually created a thematic map of total population for different states.
21:42And the code behind this is now routed in Flex, we've got it in C# or as NVB as well, too.
21:50You can copy this to the clipboard as well too, and then all of these Tony examples are also downloadable as well, too.
21:57And Tony's going to kind of show you that next.
22:01Alright, so the last thing in terms of giving you a walking tour of the Resource Center...
22:05...I wanted to show you is, not only do we provide you with full developer documentation and code samples...
22:14...but we've actually also provided some interactive, ready-to-use widgets as well, too...
22:21...that allow you get off the ground working faster.
22:24So if you actually go on to the code gallery, and do a search for BAO...
22:29...what you'll see here is that we've got the Business Analyst widgets for Flex.
22:33So if we actually click on the details there, and you can actually download these.
22:44I'll show you what happens when you download them in a second.
22:46But it comes with a pretty robust PDF document.
22:49That shows you as a developer, how you would download these and use them in your API.
22:55And then, what these widgets are, are ready-to-use, configurable widgets that you can use with...
23:01...not only can you use them with the Business Analyst Online API that's hosted by Esri...
23:06...but they can be configured to work with your own instance of BA Server.
23:11So if you have a Business Analyst Server working with your own data, then you'll be able to interact with that as well, too.
23:18So, each one of the widgets, they come with a login, and then they're configured out of the box to work with a demo account...
23:29...that works in the Redlands area, so that - you don't even need to get an account for this to work...
23:39...it will just work out of the box in kind of the Redlands area as well, too.
23:45So if you remember back to my previous demo, if we wanted to go back and open up the smart map search again...
23:53...what you're going to see here is, this smart map search going to look very familiar...
23:56...it's just going to have a different skin to it.
23:58It's going to have the kind of Flex viewer standard skin to it.
24:02So again, I can look for areas that have high per-capita income and low median age and...
24:09...then you could have that same sort of sliders that we'll work with here as well, too.
24:14And then you're showing the results on the map.
24:17So this actually comes with three widgets out of the box. It comes with the smart map search that I showed you.
24:25It also comes with a comparison report. This was this interactive dashboard that I showed you previously as well, too.
24:34And it comes with another widget that I didn't demonstrate inside Community Analyst, and this is a business search.
24:40And this is where we could actually use an interactive dashboard or filtering service...
24:48...where we could search for all the businesses in the United States or in Canada.
24:53So for example, if again we wanted to look for beer in the Redlands area...
24:57...what it's going to do now is, it's going to search for all the breweries in the Redlands area.
25:03And you can see here if, you know if I wanted to do a better search, say something like pizza...
25:09...and do a search for pizza...
25:13...we'll see here all the restaurants with pizza. I can filter this and I say, I only want to view the records in Redlands area.
25:21And actually only want to get the pizza joints that are in the Redlands particular ZIP code.
25:28And I could add these locations to the map, and then the pizza layer was added to the map.
25:33And now you can see that the actual pizza locations are located right there on the map.
25:38So these are three widgets that are ready to use when you actually download these.
25:44It comes with a set of instructions on how to basically download them, get them into the Flex IDE...
25:51...and then through the configuration file, you could set them up or configure them to work with your own data as well, too.
25:57So that's kind of - kicks us off with a walking tour of the Resource Center.
26:02And what I'm going to do now is turn this over to Tony.
26:05He's going to do a little bit more in-depth discussion of how you would actually as a developer...
26:10...download different code samples and work with them in the API.
26:14Alright, yep. Do you have a question first?
26:17[Inaudible audience question]
26:23Yes.
26:25And I'm going to show everybody how to get one of the 30-day trials right now. So that was actually a very timely question.
26:35You can do a Google search for - this is a fast way to find it - Esri BAO API.
26:44And go to the first link, and click on the free 30-day trial.
26:50The subscription credentials are associated with your Esri Global Account.
26:53If you don't have one already, they will have links to create an Esri Global Account.
26:59And you would pick a subscription level, and the various subscription levels...
27:04...give you access to certain categories of variables and reports.
27:10And incidentally, you can do the same with Community Analyst, and click on the Try it Free.
27:24And for the developers out there, the differences between Community Analyst and the Business Analyst Online APR...
27:33...are mostly on the data side.
27:35So maybe the Community Analyst will have additional datasets, such as CDC cancer rates, or food deserts, stuff related to that...
27:45...whereas the Business Analyst site might have market potential variables...
27:50...for predicting supply and demand of certain commercial goods in web businesses.
27:57So again, please sign up for your demo account, so you can get your subscription.
28:02And then the first step you would do is generate a token with the authentication service.
28:11And if you go to those Flex and Silverlight sample viewers or even the REST API that Gary was covering earlier...
28:20...you can find the authentication tasks, and in this case you can actually submit your credentials through this UI right here...
28:29...because we configured our sample viewers to not just have these geofenced - the sample credentials...
28:39...that kind of constrain you to Redlands, California, 'cause we don't want to give away all our data...
28:45...but we also want to give you the opportunity to interact with it.
28:49You can actually submit your real credentials here and generate a token. So it's a quick way of getting started.
28:55So I have a development background, and I'm all about efficiency...
29:01...and generally I don't like reading documentation, because sometimes it takes too long.
29:06So I look at documentation as a reference.
29:09So what I do is, I just go straight to the sample viewers and start playing with all these tasks.
29:16And then I can figure out what - I can get ideas of the types of functionality that I can expose.
29:22So for this benchmark report, Administrative Boundary task...
29:25...and let me enter my credentials to unlock the - to get out of the Redlands geofence here.
29:36And so these interactive sample viewers, actually enable you to...
29:40...actually use them as real samples rather than just code snippets.
29:46So let's go to Maryland here - actually, I'm going to pick Texas and Dallas.
29:56So this code is actually making a request to pull all the ZIP codes in Dallas. And it selected the first one that it can find.
30:06And then it's making a subsequent request to - I'll zoom in here...
30:13...to get information about owner, renter, and vacant housing occupancy.
30:18And as you can see, it's comparing the entire US with the state edits and the county it's in and the ZIP code that it's in.
30:26And then I'm querying age variables on the right for all those areas.
30:33And of course the downloaded - all the ZIP codes with the name Dallas in the state of Texas.
30:40So I can quickly change the area, and you saw how quickly the polygon geometry returned...
30:47...in case I'm now on ZIP code 75227, and the charting below updated accordingly.
30:53And guess what? This little, slick little workflow demo is available as a download.
31:01You can look at the XAML code or the C# code behind, or the VB code, or you can choose simply to just download the solution...
31:10...from the code gallery on the Resource Center. And the connection is slow, so, you know, hold off on that right now.
31:23Couple other interesting things that I wanted to note to all of you.
31:28Yes, we're talking about generating reports and querying lots of variables...
31:31...and we're talking thousands upon thousands of variables.
31:33And we spend an incredible amount of money and time and...
31:37...resources on collecting these various third-party public and private datasets...
31:43...and integrating them into our system for our entire solution line.
31:49But a lot of people also found our services useful for establishing spatial context, geographic context.
31:57So in the standard geography test sample here, I'm going to demonstrate this return standard geography.
32:02As you can see in the background, there's nine maps running simultaneously.
32:12And again, I have to get out of the Redlands geofence here, so bear with me.
32:23So think in terms of the context of a mobile application.
32:28A lot of mobile devices, tablets and such, contain some kind of location information...
32:38...and then, you know, the HTML5 spec, they have the location API built in...
32:44...that has all kinds of cascading methods of determining location.
32:51Say you're a private company or you have data associated with different levels of geography, as we call them...
32:59...but you want to establish some kind of spatial context.
33:01Then you immediately need to know what the intersecting features and all kinds of different layers are.
33:07And that was pretty fast, considering that these are not rasters, these are actually polygon geometries with attributes.
33:15I mean that's very - I'd consider that one of our distinctive competencies.
33:20We've serialized our features as geometry so we can store more than one attribute with it.
33:28If you have a raster map like a Google has...
33:32...you cannot store a lot of information beside the brightness value of those pixels.
33:37There may be other ways of doing it, but it's a value add here.
33:42Utility tasks are very useful for figuring out and inspecting our variables.
33:50I'm just going to use the basic account here. You could go into this and get summarization's keywords search...
33:57...and then type keywords and filter by variant. Type the keyword home...
34:02...and in this basic account, I got 390 attributes.
34:09And as you can see, this MOE stands for margin of error, because in the last census, that's census 2010...
34:18...they got rid of the long form, which was called the long form.
34:22Which was the long survey questions that they used to give to households.
34:27They've moved to a system called American Community Survey, where they're just sampling.
34:32So we've taken account these changes, and we give our users the ability to quantify and determine how accurate the data are.
34:42Because when you use sampling, certain areas are not as accurate.
34:47So I'm covering a lot of different stuff here. Let's get to a Silverlight sample here.
34:53Drive time. You saw Garry demonstrate this in the other clients. As I said, all these little helpful widgets, even the...
35:07...styles on them, are contained in the downloadable samples.
35:11Just going to create a one- and three-mile drive distance, and generate a summary report...
35:22...let's do the community profile report. And I'm going to download it in PDF.
35:30Incidentally for the developers out there, you can download all of these reports in XML format.
35:38And what that means is, you can parse the content of the report and bind it to a chart control...
35:44...or any other bound component, to visualize the data...
35:51...and to basically create dashboard applications and other types of useful applications.
35:57But generating the PDF report first, even during application design time...
36:04...is incredibly useful for determining what types of data are out there. Let me remove some of these things...
36:11...'cause this 1024 by 768 resolution is killing me here.
36:16Zero to one-mile area and zero to three miles, and here is the report.
36:23So I actually downloaded the C# solution before our presentation here.
36:31And I unzipped it, and here's the location, drive time by location in C#.
36:38And there's a README doc that tells you how to run the application.
36:42But basically, you're going to click on the Visual Studio 10 solution.
36:48And the demo credentials that constrain it to Redlands, California, are already embedded in the code.
36:55You don't even have to copy and paste code in this case.
36:59You simply hit F5, compile your solution, and go. Let's see if that worked.
37:05And as you can see, it's highly commented code.
37:14And we also give you all the images and the styles and stuff like that.
37:20It's going to start debugging the compile here. So it's building it, and starting up my local host instance through Visual Studio.
37:35Here we go, and even the little user dialog.
37:38Incidentally, it's not a very good idea to save user credential information on the client side in any type of web application.
37:47Usually, they get around that limitation and use a proxy, which sits on the server.
37:53And on top of that, you can do some account management on the server side, and there you have it.
38:00So that is the example I just showed you, except it's outside of that interacftive sample viewer, and the code is just there.
38:12Because we truly believe this is the fastest way to develop applications.
38:16Now you guys came to a developer's conference, to see stuff that is different than you might not come in contact with...
38:25...by just reading blogs or reading documentation, et cetera.
38:29So I'm going to show you a couple more things before I pass it on to Chris that are pretty cool...
38:36...and that leverage the Business Analyst and Community Analyst APIs, just to give you some ideas of what's possible.
38:47I didn't close the application first. Oh, dear. Okay, so I sort of showed this at a demo theater earlier.
39:03This is one of our favorite Silverlight applications; it's kind of a dashboard application...
39:11...that is actually accessible to the public. And if you want to find this application...
39:15...just do a Google search for Esri Tapestry. And click on the first link...
39:24...and Tapestry basically throws categories of every geography location into 1 of 65 categories based on...
39:33...disposable income, the lifestyle and lifestage. Like if they're students...
39:41...they're growing up at home, they're beginning their career.
39:45It's basically a bunch of buckets to classify locations.
39:51I can type a ZIP code here, in this Who's in Your Neighborhood...
39:56...and it will pop up that Silverlight application. That's a very nice dashboard...
40:01...that's actually calling Business Analyst behind the scenes.
40:06And as you can see, this ZIP code here consists of 20 percent of households that fall in the connoisseurs' category.
40:14And these are just little snapshots from our demographic data, that their median age is 47.3...
40:20...they have a bachelor or grad degree...
40:23...single-family residents, predominantly White ethnicity, et cetera, et cetera.
40:28Why is this useful? Well, when you're going to, like, market problems, or problems with describing location...
40:35...you don't necessarily know which one of these thousands of variables are significant to your customers.
40:41So you could go in completely naive to the types of attributes that are important for your problem...
40:49...and just determine what the classification of this area is based on one of these 65 categories.
40:57Then you can - let's say, like a big coffee shop company like Starbucks...
41:05...knows who their best customers are, and their best stores are.
41:08And a lot of people collect different types of information that associates spatial location with their customers...
41:18...clients, or stakeholders.
41:20Then they can determine who are the most profitable customers or locations are.
41:23Find out which Tapestry segment they fall in.
41:27And then go to their real - commercial real estate division...
41:29...and then rank order the potential sites, that they are interested in in the future.
41:35Just the different types of stuff that are possible. And this Tapestry Segmentation.
41:43Now let's get into some applied stuff real quick.
41:47This is the Silverlight application builder application.
41:54And I just throw it together for fun. And if you come up to the table after the presentation...
42:02...and drop your card, or if you e-mail us at bateam@esri.com, I can give you the add-in for this.
42:11An add-in is basically a precompiled little component that is extensible and customizable.
42:18And I created this little simple rings add-in, or this is basically the ring buffer analysis that you saw earlier with the BAO API.
42:27And then, I'm going to create an application. And this is linked up to ArcGIS Online.
42:34And I'll do a search for nuclear power plants...
42:41...'cause there's a lot of, that's been in the news a lot. And then I look for a map service with plants in the US.
42:50Use this one by this gentleman.
42:55Okay, and I've locations here, and right now I'm in the design time mode, right.
43:01Let's go on to Northern Illinois area, and maybe change the title of this to Emergency Dashboard.
43:22And then go to my tools, my Add My Custom Tool, that's built on Business Analyst Online API's buffer analysis.
43:32And I could configure it, too. This is all an extensibility feature that's built-in to the application builder.
43:41And now I have this widget here; I can deploy this application...
43:46...let's say, I'll call it Dashboard, to a server. And let's see if my IIS instance doesn't crash here.
44:04And there, now it's running on my local server as a web application that I've configured. Now I can zoom in on the area.
44:13This could be any types of point features; these could be businesses. In this case, they're nuclear power plants.
44:23And I'm going to open up my widget; once again, bear with me...
44:28...these credentials only work in Redlands, California. And there's no design to this.
44:40Like I said, I'm a developer by trade, so I have absolutely no design sense.
44:46So you'll have to bear with me with the appearance. Also, apparently I don't know how to type.
44:57Okay, one more time. Ah hah, there we go. You know, you can add different types of controls and components here.
45:15This was thrown together in a day as a demo. I'm just going to do one-and two-mile rings.
45:23I'm going to select a location; incidentally, I could select multiple locations, but for this demo...
45:29...I'll choose this cooling tower, 'cause it's really intimidating looking, and select one of my reports.
45:35And maybe I want to find out the population around here, because I'm in emergency management.
45:42Okay, so basically I created a mashup without, this is important, without any programming.
45:53In this case, the population is about 539, but the margin of error is plus or minus 345.
46:01Here is that estimate. Did - the reliability is kind of yellow, and these reds, reliability indexes...
46:08...and this is from the Census Bureau's American Community Survey.
46:11Again, we are exposing this because we want you to make good decisions with the information you have.
46:17We can very much just give you this column with the ACS estimates...
46:21...but you don't have context into how good those estimates are, so this is that value add.
46:28I only have a couple of minutes before I have to pass it on to Chris...
46:31...so to wrap this up on my end, I want to show you just a couple more things.
46:39This is developed in JavaScript; it's a simple site report map that is a...
46:49...and we have the code for this, it's the ArcGIS API for JavaScript calling our REST services.
46:57You may note that you can do value-added things with our information.
47:02And I talked about this middleware type thing where you can kind of customize the output to suit your needs.
47:08Well there's this service that takes, it does IP geolocation, based on your browser...
47:14...and based on all kinds of other tables and records. In this case it's a third-party service...
47:21...so I'm mashing it up on the server side here, and it's just a PHP sample. And again, if you drop your information off...
47:29...I'll give you all the code except my credentials, for all these samples.
47:36And it geolocated me at this lat long; however, the information is not incredibly detailed.
47:43So we're like in the Los Angeles region. We're in the state of California and stuff.
47:48So what you can do with Business Analyst and Community Analyst is do what we call geoenrichment.
47:56And that means augment your existing data in whatever format it is, with additional data...
48:02...about the location in order to make informed decisions. And in this case...
48:07...I'm taking that exact same information - I've augmented it with that spatial context and additional attributes.
48:16So now I took this IP geolocation based on where my browser is, and I'm pulling up the census block group...
48:27...and the average value of the owner-occupied housing units versus the national value...
48:35...the census tract, the ZIP code, all this interesting information, and for the state of California, all appended.
48:43So this is for, this is augmenting information, this is enriching your dataset.
48:48You could also do that with that Tapestry stuff that I was discussing earlier.
48:53I could find out types of households in this location by doing the geoenrichment.
49:03I think I'm done with this, and I'm going to pass it on to my colleague Chris.
49:09Good morning, everybody. So I'll pass it on to Garry to start.
49:20Hey there. We're going to finish off by showing you another demonstration on a sample application...
49:27...that's also up on the Resource Center.
49:30Again, if you were to go on to the Resource Center, you can do a search for this. It is called the Cancer Risk Application.
49:39So we actually go and run this application. Now unlike the all demos you've seen before...
49:45...that were working against the Business Analyst Online API, so, hosted by Esri...
49:50...this is a sample application that's working against a custom instance of the...
49:55...Business Analyst Server application, that has some custom data.
49:58So what we did is we took some data from the EPA...
50:01... the Environmental Protection Agency, on air quality and cancer risk in certain areas.
50:07And we thought, wouldn't it be interesting if we were to correlate this...
50:10...information against demographic information.
50:14So what we've got here is an application. So we're going to another address...
50:27...we'll avoid going to Redlands for once during this demonstration.
50:30And what this is going to do is it's going to find the census tract that intersects this particular address.
50:37It's going to render on the map, and then what it's going to do is give us some information here.
50:40And what you're seeing here is a blend of two types of information.
50:44We're getting demographic snapshots, so we know...
50:46...that there are 5,000 people that live in this census tract, and we get some age breaks.
50:51But then we also get access to health insurance, so we can see here that this again, some demographic information.
50:58That letting you know the area in this particular census tract has above-average access to health care.
51:04And what we've got here is, we've got kind of corresponding information from the EPA.
51:09So what we've done is, we've gone and looked at - they calculate what your risk for cancer is...
51:15...based on air toxins for each census tract in the United States.
51:19So we can look here for this particular area; it's actually 55, which is just about the national average.
51:27And then it gives you some information on the four highest levels of carcinogens...
51:33...that are found in this area, and what the parts per billion are for each of the areas.
51:38So this is a little sample application that we created in conjunction with the EPA.
51:43The data is sourced right here; you can look at it as well, too.
51:48And then you can actually use Business Analyst Server here to create a custom PDF.
51:54So what we do is we actually encapsulate all the information you're seeing in this sample application in a custom report.
52:01So what I'm going to do now is - Chris, in a couple of minutes, you can maybe show how we went about taking this EPA data...
52:11...combined it with Business Analyst data, and put it up on Business Analyst Server.
52:15So, good morning. What we started with in Business Analyst Desktop...
52:22...so, for those of us who don't know, this is ArcMap with Business Analyst the MXD...
52:27...we started with a table that contains the variables that are interesting to our audience here.
52:33We've got the cancer risk, these are all indexes, arsenic, cadmium, coke oven emissions, nickel...
52:42...as well as a unique identifier for the census tracts right here.
52:47What we did, we came into Business Analyst, we clicked - we did the custom data setup...
52:55...and I'm not going to go through it, I already have the BDS created, but I'll just show you what - just the way you get to this.
53:02So you come in and you would create your own BDS layer, business data source layer, by importing your own data...
53:10...and it would come out of this, and because it has the unique identifier...
53:14...it matches up with the geographies that are in our census tracts.
53:17So it's similar to a join, only it's creating a BDS which points to these tables.
53:25And as you can see, the resulting BDS contains the cancer risk and all these indexes, which come from...
53:37...and incidentally, BDS means Business Analyst data.
53:40Yep.
53:42So we have that in BA Desktop. We also created a custom report template, which - there's a wizard in here...
53:51...which will allow you to go through, and you can add your own tags to the report.
53:58You add your own variables to be calculated in the report.
54:03You can create calculations, graphs and charts, things like that.
54:09And then, as I said, for the purposes of this demo, we already had this created.
54:16So here in Business Analyst Desktop, we also have, in ArcCatalog, we have the Business Analyst repository.
54:23This is pointing to the C My Data folder on your desktop by default...
54:29...and so I come in here, and would go to Upload My Projects.
54:36So as I created the custom BDS, it stored in my repository right there.
54:41The one that I actually created for this is the My EPA Cancer Risk data.
54:46And I'll uncheck everything in here, and focus on just My EPA Cancer Risk data.
54:52Before I upload it, I'll show you there's a "get data" hierarchies.
54:56Hierarchies are used by Business Analyst when creating calculations through the reporting engine.
55:02And so if I execute, I should come up with one data hierarchy, just the out-of-the-box standard Business Analyst data.
55:13And it might take a second on this.
55:19So while Chris is doing this, Business Analyst Server, is basically the on-premises solution, or it can also be a cloud...
55:27...private cloud instance of Business Analyst Server.
55:33And Business Analyst Online and Community Analyst are built on top of Business Analyst Server.
55:38It's more or less an Esri-hosted version that has a very small subset of functionality.
55:47In this case, Chris and Garry are demonstrating integrating custom datasets in the solution...
55:53... you can't do that with the Online system, and you'll certainly get a much smaller subset of the powerful analysis tests...
56:02...of Business Analyst Online versus Business Analyst Server.
56:06And in Desktop, it's as simple as coming to ArcCatalog, connecting to your Business Analyst service...
56:16...okay, so before I showed you that there's one data hierarchy, which you can use for calculations in your report.
56:23So I connect to Business Analyst - to the server, it will list my projects, I will upload this to my default project.
56:33So Chris, just to review what happened here, is that you had some - you downloaded some data from the EPA...
56:38...yep...
56:39...you brought that into ArcMap. You essentially used Business Analyst Desktop to join that to some demographic data.
56:46Correct.
56:47And now once that's done, you created a custom report template, that I showed at the end of my demonstration...
56:54...and now you're using the tools in Catalog, you're literally right-mouse-click on it...
56:59...and now you're publishing that from Desktop...
57:01...you're pushing it out through Business Analyst Server.
57:03And when this is done, then all of that EPA content is going to be available to the developers...
57:10...so that the demonstrations that Tony and I showed you for creating a five-minute service area...
57:16...and finding out how many people live there, and what their income is...
57:19...now we could tell you not only how many people live there, and what their income is...
57:22...but what their risk to cancer is. Or it could be what their sales are, or what their...
57:30...you know, the number of financial institutions...
57:35...or the number of savings accounts - that could be your own information, you basically connect that to your own data.
57:41Yep. And we've run out of time, but as you can see in the results there, Chris has successfully uploaded the custom data...
57:49...in this case from the EPA, including the report template.
57:52And we apologize that we weren't able to show you creation of the report, custom report template.
57:57But we just want you to know that it's an extensible, powerful solution.
58:03And if you would fill out the surveys, that would be greatly appreciated.
58:06If anybody is interested in seeing the rest of the demo, I can blaze through it real quick here.
58:11So, yeah, as you can see that the new data hierarchy shows, it's My Cancer Risk data...
58:20...back in ArcCatalog, we have the report templates as well, which contains my custom report template...
58:28...the cancer risk data which I created before starting this demo.
58:32And I choose to connect to my Business Analyst instance, it challenges for credentials.
58:40I hopefully enter the correct credentials. I go through, and it uploads successfully.
58:46And in Business Analyst Server, there's a get report templates REST task...
58:51...which you execute, and it should come back.
58:54Out of the box, there're 10 summary report templates. One of them is an example custom report template.
59:03But the one that we uploaded here is listed in the results of our get report templates task.
59:11And you see the various formats that it's also available in...
59:15...yep...
59:16...from the programmer perspective again that XML is going to be the key there.
59:21And what I did to make sure that it works; I set up a drive-time task...
59:26...I have two points at shopping centers near Redlands campus at Esri.
59:32Contains a radii for my drive time, some miles, I turn on - it's full of error messages.
59:37If you turn that on, or if you set that parameter to Yes, it gives you a much more helpful error message in the results...
59:46...just to help with troubleshooting.
59:49Here I ran with my - I entered my data hierarchy, the custom data hierarchy.
59:56And then the report options - I have my cancer risk profile specified here.
1:00:01I specified that I want to get the report. And I'm going to ask for it back in PDF.
1:00:09And it takes a second, on this network it does, at least.
1:00:16And you're running a server on your laptop.
1:00:17Yep. So the one-box solution.
1:00:26Does anybody have any questions? I know I kind of went through that very quickly...
1:00:30...but this is what I see as one of the most important things for BA Server, is using your own data...
1:00:38...so if you have variables that don't exist in our data, and your audience is going to be interested in it...
1:00:45...such as the EPA would be interested in some things that we might not have.
1:00:50And my resulting PDF, as you can see, I have my own custom graphic up here for my company's logo.
1:01:00And then I have the resulting statistics.
1:01:05I also have a graph and a chart.
1:01:11Thank you very much, everybody. Thank you guys and sorry for keeping you late today.
1:01:15And thank you for staying all the way to Thursday.
Build Location Intelligence into Your Applications
Garry Burgess, Bob Hazelton, Tony Howser, and Chris Wilcox show how to add demographic, lifestyle, and community information into apps or websites.
- Recorded: Mar 29th, 2012
- Runtime: 1:01:18
- Views: 761
- Published: Apr 25th, 2012
- Night Mode (Off)Automatically dim the web site while the video is playing. A few seconds after you start watching the video and stop moving your mouse, your screen will dim. You can auto save this option if you login.
- HTML5 Video (Off) Play videos using HTML5 Video instead of flash. A modern web browser is required to view videos using HTML5.
Right-click on these links to download and save this video.
- 480x270:WebM (139.4 MB)MP4 (139.3 MB)
- 960x540:WebM (358.0 MB)MP4 (377.3 MB)
If you don't have an Esri Global Login ID, please register here.