00:01Okay, so to this point, we talked about geodatabases and different ways to access the geodatabase.
00:04This portion of the session, we're going to talk about getting your geodatabase data...
00:08...out on the web and allowing you to make edits to it.
00:11So the first part of the session, we're going to talk about the basics of web editing...
00:14...and then we'll get into some web editing scenarios.
00:17All of the demos and discussions I'm going to have in these slides refer to ArcGIS 10.1.
00:22We've added quite a few enhancements to the feature service in 10.1, which you'll see.
00:30So the feature service is the service that you use to do editing...
00:33...and it supports workflows on the web from simple sketching to sophisticated editing.
00:38Once you have your geodatabase data and you have ArcGIS Server, you can publish a feature service...
00:43...then access it through Desktop, web browsers, smartphones, and read and make edits.
00:52Feature service was added at 10.0, and it was designed specifically for web editing...
00:56...and it supports a feature template-based editing model, much like ArcMap supports in 10.0.
01:03So what you can do is you can query your data, and then you can perform adds, updates, and deletes...
01:07...and have those changes come through the feature service and into the geodatabase.
01:12You can also use a feature service just for querying.
01:15So you can fetch features and attributes, and it allows you to do things like, you know, identify on your features in your map.
01:22Like a lot of services, it's stateless and REST-ful and quick, so it really does a good job of scaling.
01:30When you publish a feature service, it's really an extension on top of a map service, so you publish your map service...
01:36...you enable feature access, and then when you look at it in the REST services directory, you'll actually see two services listed.
01:42One is the map service, one is the feature service.
01:44And if you click on the feature service, you'll see information about that feature service from your publishing process...
01:49...including the templates that you've authored for editing.
01:54The process of creating web editing applications starts with preparing your data and your templates.
01:59Configure your geodatabase as normal, build your templates, and then create your service; you publish it.
02:05Once it's published, you can use it and consume it in applications.
02:08So I'll go through that process now.
02:15Okay, so I'm on an EC2 instance running on Amazon.
02:19It's a machine that has Desktop, it has a geodatabase, and it has an ArcGIS Server.
02:24See, I'm connected to the ArcGIS Server right here.
02:26And in my map, I have some geodatabase data - you can see I'm connected to it - and if we click on that geodatabase...
02:37...you'll see that I have got my Save the Bay data listed here; that's the data that's in the map...
02:41...and it has attachments; you can see the attachment tables down here.
02:44What I've done is I've dropped that data into ArcMap, and I've set up some renderers.
02:50So I created a unique value renderer, and now, with this map...
02:53...I can actually publish it as a service and have people go through the web and report wildlife sightings.
03:00I've got marine birds and different types of habitat areas.
03:05Now, if I start editing on this data, you'll see that it'll show you the feature templates (if editing'll start).
03:15So it started. So you see the feature templates for this data, and by default, I get one template per type.
03:22What that lets me do is just click on a template feature - whoops. Start editing again.
03:33So what that lets me do is click on a feature and then come down here and digitize that feature.
03:38And then what I have is the feature's digitized with the correct symbology, and if I go to the Attributes dialog box...
03:45...you'll see that it'll preconfigure the feature with some defaults.
03:47It's set up to be confirmed, no, and it set the feature type by default.
03:59Now, another thing I can do is I can go beyond the defaults.
04:01I can copy one of these templates and create a copy, and then I can go and I can customize its settings.
04:07So I can come in here into properties, and maybe I want to create a raptor confirmed template.
04:14What that'll let me do is digitize a raptor, and if I'm sure it is a raptor, I can digitize it as confirmed.
04:21And then I don't need to go and set the property correctly, so I can change the Confirmed to Yes, click OK.
04:30Now I've got two templates, a Raptor and a Raptor_confirmed.
04:33And I can go in and change other properties.
04:35If we go into an area template, you can see I can change the default drawing tool.
04:41If I want to do more of a tracing type experience for digitizing, I can do that.
04:47Okay, so let me cancel. I'm going to stop editing, and I'll just save my edits, and then now I'm ready to publish my service.
04:56So to publish a service, you click File > Share As > Service...
05:00...and then you're brought up this Share as Service wizard. This is new in 10.1.
05:04Hit Next, and it'll connect to my server.
05:11So here's the server running on this machine, and I'll call it SaveTheBay, hit Next.
05:16I can put it in a folder; I have a DevSummit folder set up. Continue, and now what this will do is it'll bring me to the Service Editor.
05:24Within the Service Editor, I can set other properties. I can also enable feature access.
05:30Hitting this is what makes this a feature service, so that's important to do.
05:34If I click on this tab, you'll also see there's a whole bunch of other settings I can make...
05:38...and for now, I'll go with the defaults, but I'll show you what some of those mean further on.
05:43So now I just hit Publish, and it starts to publish my data.
05:47Now you'll see a message comes up telling me about some errors.
05:51So what happens is we run an analyze process, and what that process does...
05:54...is it checks for anything in your map that'll keep it from publishing properly.
05:59'Cause this is a feature service, I can't have a basemap, so I can just remove that basemap.
06:05And then also it's asking me for a registered database. This is a new concept in 10.1 called a data store.
06:12And what that does is it lets me control what data gets published as a service.
06:15I need to tell the server that it's okay to put this data out on the web.
06:19So to register the data store, I just hit Add and then I import the connection to the ArcSDE geodatabase.
06:28I'll give it a name, and that will make it okay to publish this data on the web.
06:35So now I hit Publish, kicks off the publishing process, and you can see that it gets past these analyzer warnings...
06:45...and it only shows me one low warning, and I'm fine with that.
06:48It's just drawing at different scales, which is fine.
06:50And it continues to publish my service.
06:54And then once this completes, I'll then have a service that I'm ready to make web edits on.
07:00Okay, so that's done, and now I have a service.
07:04So let me move off of this AMI and move into a web browser.
07:11Now in here, I can go to the REST end point, go to my DevSummit folder, and you'll see, here's my SaveTheBay feature service.
07:20Now, to build a web application, a really nice option is to use the Flex Builder.
07:25This is ArcGIS Viewer for Flex; it's an application that builds Flex-style web applications...
07:30...and it's a complete wizard-based process.
07:32This is in prerelease right now, but it's a really nice tool, and I'll show you how it works.
07:38To create a new application, you just click Create New App, and I'll call it savethebay, and that'll start creating the application.
07:51The application will actually live in a directory in my web services directory, because I have IIS on this machine.
07:57So it creates it, creates the application.
08:00Then I can set my operational layers.
08:03First thing I want to add are some basemaps, so I'll grab the topographic basemap.
08:08Next I want to add my operational layers. In this case, I want to use the service that I just published...
08:14...so I can go to that service end point, and it's now searching that service for available...
08:19...sorry, searching that server connection for available services.
08:22There's my SaveTheBay service; can just add that. Actually, expand it.
08:29I can add the specific layers that I want; I'll grab them all, and then I can set a map extent for my service.
08:38So in this case, I know I want to work in this particular area.
08:46Okay. So next, go to Widgets and save the application.
08:49So I have a whole bunch of widgets that I can just add to the app.
08:52I'm going to add the editing widget because I want to do editing, and I can configure the editing widget.
08:56In this case, I'm just going to make sure that it opens when I start the app, click OK, and hit Save.
09:05Okay. I can do some other things - set the layout, some other design things - but I think I'm ready to go with this.
09:10Here's a Preview tab to show what it's going to look like...
09:13...and I can click this link and it'll bring up the application in my web browser.
09:22Okay, so here's my Save the Bay data. Looks a lot like it did in ArcMap.
09:25I've got my features, I've got my templates.
09:28If you scroll down, it'll show that Raptor_confirmed custom template that I added. Now I can just go and start making edits.
09:38So click on a feature, it brings up the attributes. I can set those attributes.
09:44I can also come in and, say, let me add a whale observation.
09:50And I can add attachments, since my data in the back-end geodatabase has attachments.
10:00And so I have a gray whale here, and so forth.
10:05So all this information's going through the feature service into the back-end geodatabase.
10:09So if you go back onto the AMI machine, and I'll add the basemaps back here...
10:19This is actually the geodatabase data.
10:21...and I hit Refresh, you'll see that those features that I digitized have come in.
10:25Okay, so that's the basics.
10:26Quickly published a service, generated a web application, boom. I've got people out entering wildlife information.
10:32Now one thing that would be really nice to do would be able to keep track of...
10:35...who's adding this wildlife information and when they're adding that information.
10:39And one thing that we've done in 10.1 is we've added something that Craig mentioned called editor tracking.
10:45And I can turn that on to keep track of this stuff.
10:47So let me go into the service, and I've got to initially stop it. Let me refresh.
10:58Give it a second here. Stop the service.
11:02And what I can do is I can go into the geodatabase data and I can turn on these editor tracking fields.
11:07Just wait a sec for it to stop.
11:10Okay, so here's my SaveTheBay feature dataset, and I can just right-click, say Manage...
11:17...and I can say Enable Editor Tracking.
11:21So this is going to go through each of those feature classes and add some fields that are going to be used to keep track of edits.
11:28Editor tracking is like autopopulating fields.
11:31So if I go into my marine layer, you'll see that it added four new fields...
11:38...and these fields are tagged as editor tracking fields, as you can see in this tab.
11:42That means anytime I insert, update, or delete, it's going to write information about who created the feature and when...
11:47...or who edited the feature and when.
11:50So I can come back to my application, and I'm just going to refresh it really quick, and the application...
11:58...notice I didn't change anything; it'll just pick up - oops, let me try this again.
12:02I have to restart the service, of course. Can't exactly use it if it's not running. So I'm going to turn on the service...
12:12...and as I was mentioning, what it's going to do is it's going to pick up that change in the geodatabase.
12:17When you're working with feature services, it's working with your geodatabase data...
12:20...so it pulls that information from the geodatabase and gives you that - lets you use it.
12:27So let me refresh again.
12:34Okay. So here's my application again...wait a second for it to bring me up my templates.
12:39Let me come in and I'll add a dolphin.
12:44And if I close that up and I go back into Desktop and I refresh, and we look at that dolphin...
13:00...you'll see that it recorded the date that the feature was created; so I know when people are adding information...
13:06...but it recorded a blank user, creator, and a blank editor.
13:09Now why did it do that?
13:10Well, it did that because the feature service is not authenticated.
13:13There's no user tag with the feature service, so it doesn't have anything to tell me.
13:19So the information comes into the geodatabase as an unknown user and it gets logged as an empty string.
13:25So that's good, but I want to know who did this, so to do that, I want to add logins to my service.
13:36So to add logins, I can go into the manager for my server.
13:42Now this is the manager that's actually hitting that service that's running on the AMI, and I can log in.
13:53And once I've logged in, you'll see the services that are running on this machine so I can see my SaveTheBay service.
13:59And now I can create some logins, and it's actually really quick and easy to do in 10.1.
14:03I'm going to create a couple users. Call one user Gary, and I'll add another user, and I'll call the user Jackie. That's my daughter.
14:24Okay, so I've created a couple users, and then what I can do is I can create some roles.
14:29So I can create a new role, and I'll call the role Editors.
14:39Okay? And then I can add these users to the role and click Create.
14:44So there, very quickly, I created a couple users and a couple roles.
14:47Now I can come back to the services and I can click on this lock icon and make it such that only these users...
14:57...people in the editors role, can access this service. So I made it private, and the only allowed roles are editors.
15:04Hit Save, and now I've got an authenticated service.
15:07So that means I come back here, and if I refresh my map, it knows it's authenticated and automatically prompts me.
15:15Again, no new code.
15:17The service, the API knows to check for authentication, and if it detects that it needs to ask you for a login, it'll ask you for a login.
15:25So let me log in as Gary.
15:30Okay, so let me create a turtle this time, and now let me go back and show you what that did.
15:40So I'll refresh and identify on that turtle, and you'll see it recorded Gary as the editor.
15:55So that authenticated user that's authenticated on the service is actually coming in...
15:59...and being logged and recorded and the date that I made the change.
16:03Okay, so that's great. Now I know who's making the changes, when they're making the changes...
16:07...but maybe I don't want to open this up to everybody to do anything to anyone's data.
16:12I come into the application, I'm logged in as Gary, but I can click on, say, this feature and just delete it.
16:18Nothing's to stop me from doing that.
16:21So I want to make this a little more secure.
16:22I want to prevent people from blowing away other people's data.
16:27So to do that, we've added another new thing at 10.1 called ownership-based access control.
16:32Let's go back into the Administrator, going to click on my SaveTheBay service...
16:37...and I'm going to click on my feature service properties...
16:41...and I'm going to come down here and I'm going to check Enable ownership-based access control on features.
16:46So just by checking this alone, what I'm doing is I'm saying I can insert, update, and delete any features that I create...
16:53...but I cannot update or delete features that are owned by someone else.
16:59I can choose to maybe check Update, which will let me update someone else's features...
17:03...but if I leave Delete unchecked, I can't delete their features.
17:06So I've got some control here, and I can save that and restart the service, and then that'll be set up.
17:17Those rules are set up within the feature service.
17:19So it's using that information from the editor tracking fields to apply some more rules...
17:26...that control how people or how editors can make changes.
17:32Okay, so the service is now restarted. Let me refresh again. I'm trying to force refresh, I can just do this.
17:43Okay, it asks me log in. This time I'm going to log in as Jackie.
17:54Okay, so draw some features. And I'm going to click on this turtle feature.
17:56This was a feature that was created by Gary, I can see it's listed that created by Gary, and look.
18:00I can't update any of the attributes. I can't delete the feature; I can't move the feature.
18:05So I can't update or delete it, but I can see the information about it.
18:09If I create a new feature and, you know, click on something else and then click back, I can edit this feature.
18:20I can move it, I can delete it, because as you see, Jackie owns this feature.
18:26So with ownership-based access control, I've got that extra level of authentication...
18:31...and I can now safely create these applications where you've got logins, you've got people contributing...
18:37...but you don't have someone going in and removing something that they shouldn't be able to remove.
18:52Okay, so we did the basics, showed you how to create a basic feature service, get an application up and going really quick.
18:57I also showed you editor tracking and ownership-based access control.
19:01The next thing I want to talk about is working with complex symbology and geometries.
19:07Okay, so, so far, we've done, when we work with a feature service, we access it directly.
19:12And when you work with a feature service, it actually pulls the features as graphics from the server...
19:16...down to your client machine, and those features are living on your web browser client.
19:21Now that works well, and it allows you to do things like, you know, click on the feature and identify...
19:27...or hover over the feature and have some behavior, but there are some issues with it.
19:31And the issues are that the symbols that you see on that web browser are downgraded.
19:38The web browsers can't handle sophisticated symbols that ArcGIS Server can handle.
19:42So in some cases, you'll see a downgraded symbol.
19:46Another thing you need to be concerned with with web browsers is the volume or the complexity of the feature.
19:51If you've got a feature that has a ton of vertices, it's going to have issues drawing.
19:55Or if you've got many, many, many features that you're pulling down, there's going to be limits on that as well.
20:02And so another way you can do it, and we'll call this pattern II for web editing, is to render the feature with a map service...
20:12...but then just use the feature service to do the edits. So you can draw everything in the map.
20:17It has the full symbology, it has the complex symbols; it's just a JPEG in the background.
20:21But when you click on that map, at that point, features will come down and you can make edits.
20:26And that's called selection mode for the feature services.
20:29So let me show you the difference.
20:33Go back to my Flex application; have a couple of different apps here.
20:39Both of these were created the same way I created savethebay. I have one called wildfire_fs and one called wildfire_ms.
20:47So if I go into, if I double-click on this guy, you'll notice this is the wildfire_fs.
20:57It has the feature service's reference as the operational layers.
21:02And then if I go into the wildfire_ms, you'll see the operational layer is actually the map service.
21:10But other than that, the two applications are exactly the same.
21:14Now when I look at them in the browser, and I'll grab another browser to do a side-by-side comparison...
21:34...and this one's _ms; start that guy up.
21:50Okay, so I'll put them side by side. Okay, so both of these maps, like the SaveTheBay, acts as a service called Wildfire.
22:02It's for reporting wildfire information.
22:04And if you take a look - let me zoom in just a little bit - take a look at the symbols...
22:10...you'll see the one that has the map service, which is the one on the right, has all of the symbology.
22:16See it has these more complex symbols, drawing these lines?
22:19The points look pretty good; they look pretty much the same.
22:22They're just graphics that are pulled down by the feature service, look pretty much the same as they are from the map service...
22:27...but the lines look much better on the map service than they do in the feature service.
22:33So if I want to make some edits, come in here...you know, I don't see a good symbol in my template picker.
22:44I see the downgraded symbol.
22:46I draw the feature, and it looks pretty bad.
22:49Come over here to the map service. Notice that editing is enabled.
22:54The reason why editing is enabled is because the map service, the applications themselves...
22:59...the Flex Builder, know that this map service has an associated feature service...
23:03...and it knows that it can add these selection-only feature layers on top of your map, right?
23:08And then I can come in, and look, I get really good symbols.
23:11See, I can see the action symbols, and then I can come in and I can digitize a feature and it draws correctly.
23:18So this is definitely the way to go if you've got complex symbols that you want to both display and edit.
23:25You definitely want to go with the right, which is the map service use case.
23:29Now, a couple other things.
23:31Because I'm drawing a map service, there are some other things that I get.
23:35So let me make this a little larger.
23:36Feature services don't support labeling, and they don't support symbol rotation...
23:41...but because the map service draws the back-end map and sends you back a JPEG...
23:46...you can actually go and create a new feature and say, Set the rotation...
23:53...and when that feature gets sent to the map service and comes back and redraws, you'll see it's rotated.
23:59You can also label features. So I can call this Test Label, click OK.
24:09So the feature service actually isn't drawing that label, it's the map service, but because I set the attribute on the feature...
24:15...and sent it back to the map, it actually, when it redraws the map, it'll include the label.
24:21So in this workflow, you get pretty good performance because you're dealing with just a JPEG in the background.
24:27You get the full-res symbols for editing, and you also get some additional things like rotation symbology.
24:48Okay, so I'm going to go through another thing that we've added in 10.1, and that's the ability to disable geometry edits.
24:55So what this does is it allows you to put the data out there and make it such that your editors can't change the geometry.
25:03Now, why would you ever want to do that?
25:04Well, say you've got inspectors that are out in the field.
25:07You want them clicking on features and setting attributes; you don't want them moving features around...
25:11...or deleting features or doing any of that stuff.
25:14With the features service at 10.1, you can author all of that behavior right in the service, so let me show you an example.
25:23I'm going to go into ArcGIS.com.
25:27So up to this point, I've been showing you everything in the Flex viewer. Now I'm going to go into ArcGIS.com.
25:31I'm going to make a map, and I'm going to reference a service that I've already published.
25:43Service is called PoolPermits.
25:44So I'm going to grab the PoolPermits service, and I can search for the services on that service.
25:57There's my PoolPermits feature service, and I can add it to my map.
26:03And let me change the basemap to be imagery. Okay.
26:10So in this service, I have some data that's parcels for an area in Riverside.
26:17And the parcels that are in yellow that have the black dashes are parcels that have...
26:25...people that have pools and they have pool permits.
26:28The green parcels are people that do not have pool permits.
26:32And what I want to do in this application is I want to go around...
26:34...and look to see if there's anybody who has a pool but not a pool permit.
26:39You'll see there's one right here, so I can zoom in to this guy, I can click on the parcel, and actually...
26:47...I should be able to change the permit, but I did something wrong when I created the service, and I'll show you that in a minute.
26:53Let me go back, and actually I'll show you how I created the service and I'll fix that.
27:01So what I should have been able to do there is click on this feature and just been able to change that Has Pool from No to Yes.
27:07But that's actually not editable. In fact, nothing here is editable; I can only click on features.
27:12But if I want to enable that just to be editable so you can change just that one attribute...
27:16...I need to change one thing really quick in the map.
27:21So let me go and I'll open my PoolPermits map document.
27:36Okay, so here's my PoolPermits map, and what I've done is I had this...
27:40...I have two different layers, and they both point to one feature class in my geodatabase.
27:45And if I right-click on this No Permit layer, you'll see that I can...
27:50It's got a definition query, and it's only people that don't have a permit, and they either have a pool or they don't have a pool.
27:56So I've labeled the symbology that way.
27:58And then I can come into the fields and I can actually set different properties.
28:05So there's this Has Pool property, which is set to be read-only, No.
28:10I have Pool Permit, Address, and APN, and they're set to be read-only, Yes.
28:14So these read-only properties are going to be picked up by the service...
28:17...and they're going to show up in that Identify dialog as read-only.
28:22Now, I think this guy I had to actually make it to be - it's not read-only either. Okay.
28:29So let me republish this service, and I'll call this one PoolPermits2.
28:45And when I come in here, I'll turn on feature access.
28:48Now, in the Feature Access dialog, you notice that when I clicked on that feature, nothing was editable.
28:53Actually, what I want to have editable is updates.
28:55So I'm going to leave Update on, I'm going to leave Query on; I'm going to remove Delete and Create.
28:59And I don't want them to be able to change the geometry, so I'm going to uncheck Allow geometry updates.
29:04So with these settings, a person should be able to click on a feature, change attributes but not change the geometry at all...
29:11...and also not update or be able to create or delete features.
29:15Going to hit Publish, and then once this service is published, I'll bring it up in the map...
29:21...and hopefully, we'll see the service work as intended.
29:34So this is now just setting up the service; that's up and going now, so let me go back, back here...
29:43...and let me go to this guy, and I'll go back to my ArcGIS.com map.
29:59And I'll create my map again, really quickly.
30:14Okay, there's my PoolPermits2; I'll add that guy in, grab my imagery basemap...
30:23...and I'll zoom in and start looking for people that don't have a pool permit.
30:26Okay, there's one. Click on this guy, _____ still, I'll click Edit; that's what I did last time.
30:34And now you'll notice that I can edit only one attribute, Has Pool, and I can set it from No to Yes.
30:41And when I do that, it changes the symbology.
30:43So I could have someone go through all of this data and pick out who doesn't have a pool permit really quickly, set that one attribute.
30:51I know that they don't have to have a lot of training; they can't mess up the data, they don't have to know a lot...
30:56...but just can set this one feature, and they're good to go.
31:01So that's a really useful type of application, and again, I'm using ArcGIS.com...
31:05...and I just have a service that I authored. No coding.
31:07And you get this behavior that you can author right into the service.
31:21Okay. So the last thing I'm going to show is about editing versions.
31:25So in 10.1, we added support for changing versions on the fly with your feature service...
31:29...and also, you can change versions on the fly with your map service.
31:33And this is actually the first custom application that I've got.
31:37And so if we come into a browser, close down a couple of these guys, I have an application running here called Network Edit.
31:47What this is doing is it's hitting actually a service that's running on my laptop, and it's running a little slow, which I apologize for.
31:53Takes a little bit to refresh it usually. Here it comes.
32:09...it's drawing the map service in the background, and on top of that, I can do some feature edits.
32:14And I've limited the types of editing that you can do to this service to just to do updates, so I can only update features.
32:21But I can switch between different versions.
32:23So I'm in default right now; I can click on this feature, and I can move it.
32:30It's a little slow to refresh, but one of the cool things about having the map service in the background...
32:35...is that you kind of get a pseudo rubber-banding behavior when it redraws, so it corrects itself.
32:43Because the geometric network on the back end is correcting itself, and when the map redraws, you see that.
32:48I switch to the version 1, you'll see that that edit goes away because I'm looking at a different version.
32:53I can switch to version 2, I can create versions on the fly, and that'll show up in my version list, and I can also delete versions.
33:05The way this works is that behind the versions list is I have some geoprocessing tools.
33:09And there's a geoprocessing example that's going to be in the help in 10.1...
33:13...that shows you how to create a geoprocessing service for listing, creating, and deleting versions.
33:18In your application, if you want to allow people to do these versioned editing type operations, you've got it here...
33:23...and you've got the ability to draw an edit in specific versions on the fly.
33:28You may want, like, do something more controlled where only certain people have permissions to create or delete versions...
33:34...or maybe you only want to list versions and let people change between them.
33:38But this'll let you do workflows like create jobs in the field and then make edits to those jobs and submit those jobs.
33:50Okay, a few last slides.
33:55Okay, so the last thing I want to talk about is the sophisticated web editing workflows.
33:58Now, I'm not going to go into the details of these; I'll talk about a few things here.
34:01We have another whole session on feature service editing on a couple days where we go through a lot of the same material...
34:07...but we also show a lot of other things as well, and we show some pretty cool, sophisticated web editing apps...
34:12...but just a few notes on that.
34:14If you want to do more, more types of editing, you can actually quite easily do it by adding an Edit toolbar to your web maps.
34:23And I didn't show it in the Flex app, but there's a check box I could've hit that would have added an Edit toolbar...
34:28...and that would let me do things like split and extend and reshape.
34:34And what that uses is the geometry service. And that's a service that we provide for doing geometry manipulation.
34:40So you can write an application yourself that'll pull down the geometry, do the geometry operation...
34:45...and then write it back to the database.
34:47So you could do your split or extend and then you, in your application, can send that back as an edit to the database.
34:53Another way you can go is you can write server object extensions.
34:56It's how we extend ArcGIS Server.
34:59So if you want to customize a behavior such that when I get the edits in, I want to run through a bunch of validation rules...
35:04...and if they don't pass, I want to return back an error, or maybe I want to validate the topology...
35:08...or do something with the geometric network on the back end, this is how you do it.
35:13And of course, the most sophisticated web editing would be in ArcGIS Desktop with all the tools that are there.
35:18And we support tools in Desktop for pulling feature service data locally into a local geodatabase...
35:24...where you can then take advantage of all those tools to do edits and post them back to the service.
35:31Now, all of the things I've been showing to this point have been ArcGIS Server feature services...
35:36...but if you want to do this stuff with the native spatial types in databases, like we've been talking about...
35:42...we have something called the spatial data server, and it's another product that includes the ability to publish feature services...
35:48...and do the same types of demos that I'd done at the beginning with the savethebay application.
35:54And it supports a last in wins, nonversioned editing model.
35:59Okay, a couple of last things.
36:01Challenge is the user experience. It's easy to add lots of tools and lots of complexity...
36:05...but that makes things harder actually for your consumers, people that are using the application.
36:10So you want to build focused editing applications.
36:13You only want to include the tools that people need.
36:15Think about that PoolPermits app. The only thing that person needed to do was to change one attribute...
36:20...so you could author the service to just let them change that one attribute.
36:24There's some other good examples of that as well that Ismael has in our session in a couple days...
36:30...about showing splitting and merging and how to do that in a simple way, so that web editors can understand it and do it.
36:38And then also, select the right tool. Choose the right application.
36:43Take advantage of what's already there and then build on top of that.
36:50So just quickly in summary, we talked about feature services, built-in web editing applications...
36:56...being able to build these VGI-type applications, geo collaboration; what a feature service is...
37:02...some out-of-the-box clients that you have, like ArcGIS.com and the Flex Viewer; and the web mapping APIs...
37:08...and then if you want to build apps that extend on this, use geometry service and server object extensions.
Developer's Guide to Geodata Access in ArcGIS: Web Editing
Gary MacDougall demonstrates web editing scenarios.
- Recorded: Mar 26th, 2012
- Runtime: 37:15
- Views: 693
- Published: May 17th, 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.