Transcript
00:01Thanks for coming.
00:03I'm Jeremy Bartley and I'm pleased to be joined with Kelly Hutchins here.
00:07We both work on the JavaScript API dev team.
00:11My background's in geography, and that's your background, too, right Kelly?
00:16Yep. We're both geographers but we kind of found our way into the exciting world of computer mapping.
00:23And, it is a great time to be integrating maps for building applications that have maps or a map driven or a map focused...
00:33...for your end users.
00:34It's much better than it was, I don't know, 5 or 10 years ago...
00:38...when a lot of the mapping applications you would see were really hard to use...
00:42...and only a geographer who was versed in whatever technology could actually run the maps or the apps.
00:50Now it's totally different, and that's why it's exciting and it helps reach the consumer world, not just the professional world.
00:58So I'm going to...I have no slides.
01:01I have a bunch and bunch of demos that I'm going to drill through and show you kind of what you can do.
01:07Won't drill into too much code, but everything that...just about everything that I show you is already online...
01:12...and you can always refer back to it.
01:16So our JavaScript API, we're currently on version 2.1.
01:18We released...we've had nine releases of our JavaScript API, released relatively quickly over the last two years.
01:26Next release in December will be 2.2 which will be our templates.
01:30We're really excited about that.
01:33But everything is online.
01:34Everything that you need is online.
01:36We host the library online on a content delivery network so you get a fast download of our library.
01:43And the SDK is also online.
01:47You know, you can drill through each one of these sections...look at...
01:48...there's a whole bunch of conceptual documentation that help you get started using our API.
01:55Also, a large set of samples...oops...large set of samples.
02:04I mean, we must have over 125 different samples that you can try online.
02:08We had so many samples and we had to introduce a search mechanism so you could drill through them.
02:13We have a really rich API reference.
02:16Lots of content is available from this API reference.
02:20There's really great documentation, so if you're looking, if you're just getting started and want to know how something works...
02:26...I mean, just look at the documentation that's available for just one of these classes.
02:31It's really outstanding.
02:32Kelly does a great job.
02:35And we also have a set of code assist plug-ins like, you know, a lot of...you can develop JavaScript applications in Notepad...
02:42...or Textpad or Notepad++, but that's a little bit more difficult than to use a nice IDE where you get code complete, and so on.
02:51Optana has a really good JavaScript debugging experience.
02:54It's freeware that you can download and just use.
02:59And we have our whole API references available as a code assist plug-in.
03:03So when you're doing your code assist, you'll get the actual doc as it is online...
03:08...you know, for each class that you create or each method that you want to call.
03:15And then just something at the end.
03:17We have a whole bunch of our users who have uploaded their applications and shared them on ArcGIS.com.
03:23We've kind of given a window into the JavaScript application on this site.
03:30You know, there's hundreds of these applications that people have built.
03:33You can use them to kind of get ideas for what people do.
03:36Like, this example is from The Omega Group, and 0892, go to my house hopefully.
03:56There we go.
03:58And see all of the crime that's happened over a particular time period.
04:03This kind of the crime mapping is very popular and now there's open crime maps and so forth.
04:09And you can do quite a bit with, you know, this is to get the people who are worried about what's going on...
04:14...around your neighborhood, what crimes are being committed.
04:16You have access to all that information from this nice simple-to-use user interface.
04:23This is an example of a consumer application.
04:26I think if you were to see this app maybe 10 years ago, it would have looked nothing like this.
04:31It would have been all jargon about various layers and turning things on and off...
04:34...and nobody but the person who builds it or the GIS professional who builds it would know how to use it.
04:40So we've come a long way.
04:44So if we drill into some of these samples and to show you how you really want to get started...
04:48...but we'll just take a look at the kind of hello world example.
04:52And if we launch this, this example here.
04:54This is just a very simple example about creating an application that has just a few components.
04:59It's got a scale bar component and has a nice basemap layer.
05:02This is that same community map that Dave was talking about in his session.
05:06You see the nice trees for the City of San Francisco.
05:09This is a great multiscale basemap that covers the whole world...
05:12...and there's organizations throughout the world who've submitted their data and is part of this kind of tapestry, this thematic map.
05:23Oh, excuse me. I wanted to look at the code there just briefly.
05:33Won't do too much looking at the source code, but just kind of give you a feel for how easy it is to build some of these applications.
05:40You can load the JavaScript API from us.
05:42It's hosted 24/7.
05:45And then I've got a few components here about my map.
05:47I've got a scale bar.
05:48Got some layout components to kind of give me that nice easy to work with look and feel that works across all browsers.
05:57I have a custom start extent.
05:59I'm going to create my map control, pass it in a div and pass it in this custom start extent.
06:05And then I'm going to add a layer to this map.
06:07And then I have one of these layers like this case, ArcGIS tiled map service layer, and it just takes a URL.
06:12In this case, it's a URL to an ArcGIS Server service.
06:15And that's basically it.
06:16I add that layer and I'm all done.
06:22Now there's other types of layers that we can add to this...add to these maps.
06:28We can look at maybe some dynamic maps.
06:31Dynamic maps are maps that aren't precached, but they draw dynamically every time the user pans around the screen.
06:38A new map is requested and the image gets sent back to the client and then it's displayed.
06:43There's also a different type of map, a layer, excuse me.
06:48In this case, it's a feature layer.
06:51And a feature layer is something new that we've added as a new layer type within our latest release.
06:57And actually we're not bringing the image.
06:59We're not asking the server to draw the map.
07:01We're saying, hey, server, give me all of the features in this extent.
07:05And as I pan around the map, it's going to requery the features and then get them and draw them on the client side.
07:10How do I know that it's getting the features and it's not the map because when I have the feature, I have the attributes that go with it.
07:16I can touch the feature and get that information.
07:22[Audience question] So is that an automatic pop-up or is that...?
07:25Yeah, automatic pop-up.
07:27You can just set what you want to be in the title and description and it'll just show up.
07:31Binds, it binds to that layer.
07:38So you can take these individual layers and you can look at them kind of one off...
07:42...like I showed you that each one of these is basically one layer.
07:44Or you can take the layers and combine them together kind of in a mashup.
07:50Take that basemap, that community map that we looked at.
07:53We could take that dynamic map service and we could take another basemap on top of it and drop it in.
07:59And you get kind of a very beautiful map actually.
08:02This is that community basemap that we saw first.
08:05On top of it is the population map that I showed that was dynamic.
08:08And then on top of that we loaded some boundaries and labels.
08:13And if we were to look at the source of this application, each one of these is its own layer.
08:20So I've got this tiled basemap, this tiled map service layer here, got this dynamic map service layer with a set of a custom opacity....
08:29...and finally I've got another tiled map service layer that gives you that reference and created this multilayer map or mashup.
08:35Now that's one way to put all these things together and create a seamless map that combines multiple layers.
08:45But another way that I wanted to show you is there's many more maps that are available to you.
08:51So a new site that we launched this year, ArcGIS.com, makes it really easy to author these kind of maps and share them out with people.
09:00So I can look for thousands of maps that people have created.
09:03I'm going to look for California fire.
09:08I see several maps that people have created.
09:11This one here, the Southern California Fire History is the one I'm most interested in.
09:15Now if I look at that map, I mean, that's just a map to me.
09:20But this map can easily be brought into my application environment.
09:24I can load this into my JavaScript map and so forth.
09:28If we were to look at the kind of the details, I see multiple layers that have been added to this map.
09:33But that's just kind of the detailed information that's not really necessary.
09:37But this map, we can take this map and share it out.
09:42I have different ways to share it.
09:44I can share a link to the map.
09:45I can embed the map, copy and paste this into my blog or onto my website, and I'll have that map accessible to me.
09:53Or, I can build an application from this map.
09:56So we have like 20 or so kind of template applications that work with these maps that you author on ArcGIS.com.
10:03So if we were to preview what does this look like in this kind of layout.
10:07I get the legend for the map.
10:09That's the important part that I want to show in this application.
10:13The map is easily usable and all that it's taking is this ID.
10:21So I could have built the app...I could have built this app by writing all that code to specify each layer which points to each service.
10:27That's the custom extent.
10:28Or I can just take that map ID and pass it into the application.
10:34Just to show you briefly what that code might look like.
10:44This looks a little more complicated than it really needs to be because it's taking that code from the URL.
10:49But basically it takes this code and then we call this function.
10:56Get Item, gets the web map, gives me that information about the map, and then I can create that...
11:01...pass that to my map control and boom, there I have an application.
11:16Let's see, where was I going next? Okay.
11:18So that's kind of about the maps and the layers that you can create.
11:21So there's many ways you can do it.
11:22I can write out each layer and add them to the map, you know, within the application...
11:27...or I can author a map that combines multiple map service layers together and I can load that in my application.
11:33I could take one of these application templates that I showed you.
11:36There's about 20 or so.
11:37Some of them have more functionality than others, but they're meant to be easily downloadable, configurable...
11:42...and you just drop your own map into it.
11:46But the other thing I wanted to talk about was some of the more kind of spatial analysis or different ways to look at data.
11:53So at 10, we've made a big push to create...to make maps that aren't just spatially aware but also temporally aware.
12:04So we have the notion of it.
12:06A map service can be time aware so that the map can control that basically what's drawn.
12:16You know, let's you bring up things with like new kind of sliders so I can zip through a year's worth of hurricanes.
12:24In this case, these features are actually installed on the client so I can touch one of these hurricane tracts, get some information about it.
12:33But it's a really interesting way to visualize data that might span across multiple years or decades or so on.
12:44Another way to look at things through time is to render things temporally.
12:49So in this example, we looking at recent earthquakes and it's just going to automatically start up.
12:56It takes earthquakes from the last seven days, and we're just going hour by hour...
13:02...seeing what earthquakes are happening with respect to the current time period.
13:06So that thing at the top is the time slider moving hour by hour...
13:09...and the color of the squares indicates how recent it is relative to where the current time is.
13:16So the red ones are less than an hour, and the blue ones are one to 24 hours, and the yellow ones are greater than a day.
13:23And then the size of the squares indicates it magnitude—how big was the earthquake.
13:29This is a pretty simple application that you can build...
13:32...just to give you an idea of how you can put another spin on top of this kind of data.
13:43We can also look at some kind of a spatial analysis.
13:48So another thing, and I've shown you this service here, this population service.
13:56I showed you that when I showed you that dynamic service.
13:58That represents population.
14:00Each pixel represents a certain number of people.
14:04And we can build...we can expose that data through different means.
14:09In this case, I can build a geoprocessing task that takes input like that input polygon, for instance...
14:17...and we'll summarize all of the cell blocks within that polygon.
14:22So I can get it, say, in this case I'm just summing it up.
14:25So it's about 10 million people who live in this user-defined polygon.
14:31Another way to bring spatial analysis to your application is to do things about what's around me or what's near me.
14:40So in this application, I want to find the closest health care facility.
14:43I'm going to drop down to...maybe I want to find the three closest health care facilities.
14:47I can touch the map, and it's going to generate me routes to the three closest one and then order them by the time.
14:57And so forth.
14:59Now maybe I want to make that four closest facilities.
15:06Maybe I don't want to include the clinics.
15:08You can get the idea.
15:09Taking that data in real time, remapping it, and generating the new closest facility routes...
15:14...and then showing me how to get to those locations.
15:24Okay.
15:26Another new component to ArcGIS Server 10 is editing.
15:32And editing is a way for you to elicit input from your end users.
15:38You can build many types of editing applications.
15:40You can build editing applications that are very specific and very workflow-centric.
15:45Or you can build sort of kind of generic applications that let people sketch up on the map and...
15:50...contribute information that you want to collect.
15:54We're looking at kind of a workflow-specific one.
15:58In this example, we're looking at...we're looking at the basemap and these are oil and gas field boundaries.
16:05So I can touch one of these field boundaries, gets me information about that field, selected, I see the size and so forth.
16:12But this pop-up window that I have is not a static pop-up window.
16:15It's taking user input.
16:17So maybe I would want to change the status, not to oil, but it's actually gas.
16:22Or, since I changed this to gas I'd better give it a number, you know...
16:27...do things like just out of the box give you the ability to check data before it goes in.
16:33So, hey, it's supposed to be a number, I'll go ahead and enter that, and so forth.
16:40Actually, all that did was update that attribute in that...on that layer for that feature.
16:46By updating that, we can redraw the map and get a different view.
16:51We can also create features.
17:00So in this case here, we move over here.
17:03This is an example of an editable fire map where you might have points of interest like fire department, campground.
17:10I might have evacuation perimeters or actual fires.
17:14Just by clicking on that map, excuse me, on that predefined template, I can let the user draw on the map.
17:24It's going to actually create that feature.
17:28I can name it and have a full rich text experience.
17:38You can elicit whatever you...whatever's appropriate.
17:43You can elicit that from the user, whatever's appropriate, whatever information you're trying to collect.
17:48You can also edit information.
17:49So I can touch one of these.
17:51Maybe I want to scale it, rotate it.
17:54Actually, no, I want to do vertex style editing where I touch each vertex and move it around.
18:01That's all easily accessible to you to be able to build these kind of applications and share them out with your users.
18:08If we were to look at the source of this, there's very little...very little code.
18:13So we've added the layers.
18:15So all I've got here is I've added three editable layers, feature layers, and I've added a basemap.
18:22And then I've initialized my editor.
18:25Get that information, create the...pass them to our widgets and start the widget up and then I have that editing experience.
18:32Now, so that's kind of like the functional look of some of the things you can do.
18:36And actually there's a lot more types of editing that you can do.
18:41You can do editing when the user doesn't even know they're doing editing.
18:44You can make it real, real simple.
18:47It's really easy to create focused kind of editing experiences.
18:51Another thing I wanted to point out is that our API, this is JavaScript API, and we're built on the Dojo JavaScript toolkit.
18:57Dojo is an open source JavaScript framework and works really well for us but it doesn't work for everybody.
19:05J-query is a hugely popular JavaScript framework.
19:08It has a lot of activity.
19:10You can definitely use J-query and work with our map.
19:13So in this example of using J-query, we see a...we've swapped out some of the controls that might come with our API...
19:21...which is using Dojo and we dropped in some J-query specific controls and widgets and sliders and so forth.
19:33There's also other frameworks like EXTJS.
19:36This is another JavaScript framework that gets lots of user...and makes it really easy to create powerful and easy-to-use user experiences.
19:45Different slider, different control.
19:47Each one of these frameworks...actually the frameworks are what makes it easy to develop JavaScript applications now.
19:53You know, five, ten years ago, it was really difficult to develop HTML and JavaScript applications...
19:58...because of the fragmentation of the browsers.
20:00The browsers are getting better, but the frameworks actually abstract away that complexity.
20:05So it's much easier now to build these kind of apps.
20:15So, which brings me to where we are today.
20:17'Cause actually today is very exciting.
20:19I've shown you all browser-based applications that you can run, you know, in Chrome, Safari, Firefox, Internet Explorer.
20:27The desktop browsers are getting better and better.
20:30Internet Explorer 9 is going to be light years of where Internet Explorer 8 was, and so on.
20:35But some of the even the more exciting things about building HTML and JavaScript applications is with the advent of HTML 5.
20:43HTML 5 is kind of a big bucket of functionality that vendors like Apple, Google, and Microsoft are pushing...
20:53...and it's not just for the desktop browser anymore.
20:55A lot of it's being driven by the mobile clients.
20:58And so what I wanted to show you is a plethora of devices that target multiple applications.
21:13If I can get the things to flip up here... This is the new BlackBerry...BlackBerry Torch.
21:21A little out of focus but, looks better on here.
21:25But the new BlackBerry Torch is also touch aware.
21:28It's built with a web kit-based browser so I can just touch and move the map around.
21:32It's going to regenerate that map request and then draw it on the screen.
21:38Let's swap that one out with something like the Droid.
21:49Same kind of idea.
21:50I can touch it.
21:51I can access the HTML device, I've lost my connection here on my Droid.
22:02I'm not used to all these devices.
22:04I'm not used to all these devices.
22:05I felt like a weird, a weirdo carrying all these things on the plane and passing them through security.
22:11I got a lot of odd looks.
22:13[Audience question] Can I ask you a question?
22:14Um-hmm.
22:15[Audience question] __________ are in HTML 5?
22:16Yeah, all HTML 5.
22:17[Inaudible audience question]
22:21Web kit enabled? HTML 5. And open this up here.
22:30Yeah, that's actually the beauty of this.
22:32These kind of sort of look like native applications, but if I pull this down, you see it's just got the HTML bar at the top.
22:40And I can zoom in, you know.
22:43Some of them support different functionalities.
22:45So like the iOS has a much richer kind of in the browser, you know, the pinch, pinch zoom kind of functionality.
22:56Some of the other mobile clients are taking longer to come up to speed.
23:06Swap that one out.
23:11And we'll look at something like this.
23:13Let me zoom out a second.
23:21Now we look at the iPad.
23:24The iPad also I can just click and move my finger around, rerequest the map.
23:29I can zoom in.
23:30This is just an HTML application.
23:33There's no code different from the code that I showed you on the other applications.
23:37You can do things like draw on the screen.
23:43You can imagine I could actually then take that and push it into a server...
23:48...with our new ArcGIS Server which supports feature-based editing.
23:52All these devices are open to you to be able to reach your customers or reach the people who you're building applications for...
24:02...your end audience.
24:04And that's kind of the exciting part about where the browser-based development is today...
24:09...is that without being an expert in the iOS or an expert in Java development or expert in WinPhone 7 Silverlight development...
24:20...you can still touch a lot of these devices which is simple HTML and JavaScript.
24:25And you can build extremely rich and functional applications, too.
24:29Applications that leverage more HTML 5 functionality like local storage, SQL storage...
24:36...so you can create full relational SQL queries against, through JavaScript into your browser...
24:43...working with data offline via the application cache.
24:46There's quite a bit of things you can do.
24:49Now they're not the same apps that you would build on the desktop.
24:53What we're...what at least what I'm starting to see is that a lot of the people are going to build applications that target the iPad...
25:00...and that basically would work the same on the desktop device.
25:04The difference between the iPad or the Tablet and the desktop devices, it's less precise.
25:10You know, you're not...you don't have a precise mouse on the iPad, it's your fat finger.
25:16And also you're not going to do things like listen for events like hover or move over because, no, you're touching the screen...
25:24...you're moving the map.
25:25You're not hovering over it.
25:27So you'll start to see more applications where it's developed first for the iPad, but then it works just perfectly fine on the desktop.
25:35Now the mobile devices have a different...when the smartphones...it's a different...it's a different animal, really.
25:43What's interesting about the smartphones is that they're not...what's interesting about the smartphones...
25:57...is that they're not about the same thing that you might get on the iPad or the same thing you might get on the desktop.
26:05It's in most cases focused around where you are.
26:08The location and the GPS location of the device is extremely important to build these kind of focused apps.
26:14Especially in the mapping field.
26:16Now if you're reading a newspaper, it might not be quite as important...
26:19...but if you're building a mapping application, location is the most important thing.
26:24And so you want to build applications that kind of take that location into account.
26:30So this is an example of an application actually Kelly built using the Dojo X mobile framework...
26:36...which kind of makes it really easy to build these kind of applications.
26:40See it's just a browser app, but it looks like a desktop, excuse me, a native iPhone application.
26:46And if you're to run this on the Droid, it would look like a native Droid application, all just through CSS.
26:52But I can do things about, eh, what coffee shops are nearby, give me a list of those coffee shops, you know...
26:58...move this thing up and down, and you want to route to it, takes that location...
27:03...routes me to that closest to that coffee shop that I picked out, an easy way to get directions.
27:09A kind of nice fade in and fade out.
27:13It's very exciting time to build these kinds of applications without having to invest a lot of effort in learning the native API.
27:24Or working through the app store.
27:26Now if your goal is to make money, make lots of money, then the app store is still very attractive...
27:33...because you get a very focused audience.
27:35But if your goal is to just get information out, if that's your mission is to get information out in the best possible way...
27:42...then building these HTML applications is really the way to go to touch all of these devices.
27:49So let me point you at to a whole bunch of these samples that are targeting kind of the mobile devices.
27:58And this is also really cool on this location with temporal renderer.
28:02Maybe after we can walk around at _________, but basically it's going to use some of our client-side technology...
28:09...to map where you were and how long it's been 'til you've been to that location.
28:15And but using the GPS device so as you're walking along.
28:18Okay.
28:21So kind of give you kind of a review of what everything that we have in the API and then kind of like a summary.
28:30Now I want to turn it over to Kelly to kind of show you, this is just kind of samples that you've seen.
28:35But let's take some real data and do something cool with it.
28:39As Jeremy mentioned, we've looked at a lot of applications that use basemap data that comes from ArcGIS Online...
28:45...or some of the demographic data.
28:47But now let's look at an example that uses some real-world data.
28:50So there's a local website called DataSF that has data for the data for the San Francisco Bay area.
28:57One of the datasets that we'll look at is trees.
29:02So we'll search for trees, and there's a dataset here that's a street tree list.
29:06So it's a list of all the street trees in the city of San Francisco.
29:10So there's 60,000-some features in this dataset.
29:15So this isn't really the kind of data that you want to take and just drop on top of Google.
29:19That's a lot of data to draw on the client, and you probably wouldn't get the best performance.
29:25This data is in CSV format, so it was really easy to take that data, load it into our database.
29:32We set a couple of properties, and we'll look at those.
29:34We did things like define symbology so we get some nice symbols for our data when we're looking at it in our mapping application.
29:42We can enable time on the data so you can build applications that are time aware like the ones Jeremy showed you...
29:48...where you can move through the data over time.
29:51You can enable editing.
29:52You can allow people to upload attachments.
29:54You can do all this stuff on your data that's loaded into the database, publish it as a service, and then consume it from our applications.
30:02So we did this with the street tree data.
30:07And we published this as a service, and we'll look at it in ArcGIS services directory.
30:13So this dataset, if we scroll down a little bit, you can see that there's a layer in here, and we have some symbology defined.
30:24So in this case there's some information associated with this data that describes the types of trees you have.
30:32In this case, we've separated them into two categories, landscaping trees, so like shrubs maybe get one symbol...
30:39...and all the other trees get another symbol.
30:41So you can symbolize by attribute information.
30:45So here, as Jeremy mentioned, is that data drawn just as a big blob.
30:48Not very useful.
30:49You know, it's going to take a little while to draw, even, you know, from the server.
30:53So let's look at a more realistic application, a very simple...a simple application.
31:00So here we are zoomed in to more of a street level view.
31:03We can see our trees here.
31:05It's more realistic.
31:06We can pick out the individual trees.
31:09We can click on the tree, and we can get a pop-up window that pops up with attribute information directly from that service.
31:19Let's look really quickly at the code for this.
31:22We also have, you know, a little link we've added to this pop-up window.
31:25It finds the Wikipedia entry for that particular genus and species and pops it up in a separate window.
31:34So let's look at this and see that really we don't have to write much code at all.
31:38So Jeremy showed you some of this stuff earlier where we defined extent...
31:41...and this is where we're saying we want to zoom into a particular area.
31:45We're adding a basemap layer, that really nice topo map.
31:50We define our templates.
31:51So this is defining what that pop-up window is going to look like.
31:54We're pulling attributes from, thank you, Jeremy.
31:58We're pulling attributes from that service.
32:02And then here's really all we're doing.
32:04We're creating a new feature layer.
32:07We're giving it the URL to that service on the services directory.
32:13And we're adding that to the map.
32:15That gives us those pop-up windows with all that attribute information displayed.
32:20That gives us nicely rendered data, so we have symbology, our nice tree symbol shows up.
32:27And we get that pop-up capability with just a few lines of code.
32:31So it's definitely one of the benefits.
32:32It would be quite a bit more work if we were, you know...
32:35...parsing that data and adding it to the map and applying symbology and working with attributes, right.
32:39Simplifies the process.
32:46Now we're going to look at another application on Firefox, I guess.
32:52This one is another view of that same San Francisco trees dataset.
32:57We enabled it for time so the data available on the San Francisco data site has time associated with it...
33:04...the date and time these trees were planted.
33:08So we can have a drop-down list.
33:10In this case, we're filtering this data by a particular type of tree.
33:15So let's say we want to look at all the gingko trees in San Francisco.
33:19We can choose that.
33:22We have our time slider, and we can step through and watch as new trees get planted over time.
33:29So we're stepping through this data over time...
33:32...and sort of filtering this large dataset of 60,000 records to view a more realistic subset.
33:43Finally, I want to show you, if I can find the right phone in this multitude of devices.
33:58Okay, so we have this same data and going to look at it on the iPhone.
34:09So this application looks really familiar.
34:11It's sort of a modification of the find nearby restaurants and coffee shops application that Jeremy showed you earlier.
34:18But we wanted to show you that you can use your own data with this...
34:22...and build mobile applications that take advantage of all these things that Jeremy's shown you throughout this presentation...
34:27...analysis and mapping and graphics.
34:30So in this case we can specify a tree type.
34:35It brings us back a list of the trees nearby, so it queries and finds which trees are near your current location...
34:43...and routes you to that particular tree.
34:48So this is that same sort of experience we just looked at, but here we're looking at it with this tree data.
34:55Now in this case, we're not using the geolocation API only because we're not actually in the city of San Francisco.
35:01So if we tried to find trees nearby us, they'd, you know, be pretty far away.
35:05So we hard coded a position in here, but it would be very easy, just a line or two of code...
35:11...to switch that over to use the geolocation API.
35:14Or allow users to enter an input address or select an address from a predefined list of addresses.
35:23This kind of shows why you'd want to put it in the server.
35:25So you can do these kind of queries, leverage the power of the database, filter it down, you know...
35:31...pull slices of data out by time or by tree type and then it makes it accessible for these kind of applications.
35:38You can leverage some of the other analysis capabilities I showed you like the find closest facility, the routing.
35:44You could think of other types of questions you'd want to ask like what's around me, what's near me...
35:49...get me to the nearest six places in the most efficient way possible.
35:54These kinds of applications you would build with these mobile devices where the input is basically the location of the person...
36:00...and then whatever they're interested in.
36:02So that was kind of a quick, a quick look of what we have in our API.
36:09Just some, tried to show some examples of what you can do.
36:15The best way to learn more about what we have here is to get to our JavaScript API, and I think if you go esri...
36:22...links.esri.com/JavaScript.
36:25Links.esri.com. I'm going to try that here.
36:28[Audience question] I think those links are on that flash drive you passed out.
36:30Okay, cool.
36:31Oh, great. Okay.
36:32And, it'll take you right to this home page.
36:42So links.esri.com/JavaScript, and you can try out more of what we have here.
36:47Then, actually, there was a question earlier.
36:48I'm going to make sure I showed it before.
36:50If you wanted to download this API, in the Frequently Asked Questions, we have links to the library.
36:58So you can download it and host it on your own server, download the SDK and host it offline.
37:03The best thing to do is to just work with the one that we host because it's a 24/7 CDN-hosted.
37:08It's the safest thing to do.
37:09But for intranet applications or if you just want to have control, you can download and deploy on your own website.
ArcGIS API for JavaScript
Esri development team members Jeremy Bartley and Kelly Hutchins explain and demonstrate ArcGIS API for JavaScript.
- Recorded: Nov 4th, 2010
- Runtime: 37:33
- Views: 65902
- Published: Jan 25th, 2011
- 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:MP4 (124.4 MB)
- 960x540:MP4 (125.1 MB)
If you don't have an Esri Global Login ID, please register here.