Transcript

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:01Okay. So what this application is is a JavaScript application, and it's drawing, using that second pattern I described...

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.

Copyright 2013 Esri
Auto Scroll (on)Enable or disable the automatic scrolling of the transcript text when the video is playing. You can save this option if you login

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.
Download VideoDownload this video to your computer.
<Embed>Customize the colors and use the HTML code to include this video on your own website
480x270
720x405
960x540
Custom
Width:
Height:
Start From:
Player Color:

Right-click on these links to download and save this video.

Comments 

Be the first to post a comment
To post a comment, you'll need to login.
If you don't have an Esri Global Login ID, please register here.