This session is a more in-depth look at using ArcGIS 10 for Server feature service capabilities for simple editing within Web applications. Web editing can be used by organizations for empowering everyday Web users to contribute volunteered geographic information (VGI) as well as for distributing common editing tasks to non-GIS staff.
00:01 So welcome to your first technical session. I believe for most of you there were a few very early sessions today...
00:07 ...but it's probably your first session and here we are going to talk about web editing in ArcGIS Editor 10.
00:16 This new version has built-in capabilities to edit the geodatabase over the Internet...
00:22 ...and that enables you to build very exciting applications like for crowdsourcing, volunteered geographic...
00:29 ...information applications.
00:30 And also you can build geocollaboration workflows within your organizations, as well.
00:38 My name is Ismael Chivite, I'm the ArcGIS Server product manager, and I will present today...
00:45 ...although I have two colleagues from the Dev team, Craig and Ruth, who will help me at the end...
00:49 ...with the hard questions.
00:51 Hopefully we have time at the end so you can throw your questions at us.
00:58 The agenda for today is fairly simple.
01:01 I'm going to start with an overview of editing in ArcGIS.
01:05 This is just to give you some context of where web editing sits in the context of the overall editing within ArcGIS.
01:15 Then I'm going to talk about the basics of web editing in ArcGIS Server 10.
01:19 We are going to talk basically about two things.
01:21 A new service called a feature service, which allows you to do the edits over the Internet...
01:26 ...and also this new way of thinking about editing based on future templates which...
01:33 ...you probably are familiar with because it was demonstrated during the Plenary Session.
01:39 Then we will use different web editing scenarios to kind of dive into several aspects of web editing.
01:46 That will be kind of the advanced aspect of the session.
01:50 We will discuss typical architectures for web editing and then we will go into the Q&A.
01:58 So, editing in ArcGIS 10 is kind of represented in this diagram and, as you know, everything...
02:05 ...starts at the database level with a multiuser geodatabase.
02:08 ...but don't display too many features in the display at once when using features.
02:10 Today we are not going to talk about editing shapefiles or file geodatabases.
02:14 All the data you are going to edit is going to be in a multiuser geodatabase.
02:19 At the very top you can see the clients, and there are different clients.
02:23 The reason why we have many different clients that access the multiuser geodatabase is because you have people...
02:30 ...ranging from the professional GIS user to the casual user who uses web browser...
02:35 ...applications to edit.
02:36 And it's important to acknowledge that, that there are different tools that can be used for editing...
02:42 ...meaning that you should pick the right tool for the right task, as opposed to maybe building...
02:48 ...ArcEditor on a web browser.
02:52 In the middle tier you can see GIS services.
02:54 Most clients edit the geodatabase using web services.
02:59 The feature service, which is this new service in ArcGIS Server 10, or the geodata service...
03:05 ...or the mobile service, which you probably are familiar with.
03:09 The only exception will be ArcGIS Desktop that can connect directly.
03:13 So let me talk a little more in detail about all these different clients, just to identify the audience...
03:19 ...for each of them and put web editing in context.
03:24 If you have a person who wants to do professional GIS editing, the right tool is ArcMap, ArcEditor...
03:30 ...because it has full-blown editing capabilities.
03:33 COGO, spatial adjustment tools you can vectorize, you can edit versions themselves, conflicts between...
03:41 ...the different versions, you have history, you can edit complex features, our geometric networks, topologies, and so on.
03:47 You have a gazillion tools to edit.
03:51 ArcMap can edit directly against the ArcSDE geodatabase; you know that.
03:56 But it can also edit the geodatabase over the Internet, and we will see a demonstration later in this session.
04:02 You can connect to a geodatabase over a feature service and edit the information in there...
04:08 ...which is quite interesting because you can maintain this sophisticated editing tool but still operate over the Internet.
04:16 This feature service assignment is new in 10, although some of you may be familiar already with the geodata service...
04:22 ...which is the replication, allows you to build the replication workflows.
04:27 It can also work over the Internet, so you can synchronize geodatabases across the wire.
04:37 The other big chunk of clients is for field editing, specifically ArcGIS Mobile.
04:43 ArcGIS Mobile has an out-of-the-box editing application that works on our mobile device run in Windows Mobile...
04:52 ...and it connects to the geodatabase through a service called the mobile service.
04:56 The mobile service is similar to the geodata service in the sense that it allows the client to pull data from the...
05:03 ...geodatabase over the Internet and is stored locally in the device, in the mobile device.
05:08 And then you can make changes locally in that device even if you are disconnected, because it works in this...
05:14 ...partially connected environment.
05:16 And then when you gain connectivity with the server again, you can push these changes back to the server, okay?
05:24 So these devices work with these caches locally to do the edits, and they have simple tools for editing.
05:32 They are not like ArcEditor.
05:33 They have tools that interact with GPS devices, and they have a subset of the symbology...
05:39 ...that you can represent in the mobile device.
05:41 But they are basically optimized for working in the field.
05:45 There is also an SDK for mobile, as well.
05:49 Another type of mobile editing happens from devices like iPhone and, very shortly after...
05:55 ...the User Conference, from Android.
05:57 So we have these ArcGIS for iOS and ArcGIS for Android coming that will allow you to edit the...
06:04 ...geodatabase over the Internet, as well.
06:07 They also work on mobile devices, but they work in a fully connected mode; that is, you always need to be...
06:14 ...connected to the server in order to make the changes.
06:17 It's not like in the mobile aspect of things where you can have this cache and edit, even though you are disconnected.
06:25 Again, these devices are designed for, they are not really for GIS professionals, they are just for casual users...
06:32 ...and they have the device and they can add a point, change an attribute, but they cannot do complex editing.
06:40 And finally we have web browser-based editing.
06:44 This is what we are going to discuss today.
06:47 You can edit from a web browser and you do so through this new service, the feature service.
06:55 It also works like Androids and iPhones, following a fully connected mode.
07:00 If you lose connectivity with the server, that's it; it won't work anymore.
07:04 You need to kind of reconnect to the server.
07:07 It's just a web browser, right? It doesn't have a local cache.
07:10 Well, maybe with HTML 5 soon, but not yet.
07:15 Again, in this case let's try to identify the audience for these applications.
07:20 We can build web browser-based editing applications that do simple edits like changing attributes or maybe sketching.
07:27 They are not for accurate editing, like trace a perpendicular to the parcel and then a parallel one...
07:34 ...and use COGO tools, and so on.
07:36 They are optimal for sketching.
07:40 However, you can do focused editing applications.
07:43 You can do sophisticated things on the web, and we will see demonstrations, as well.
07:47 But let me make sure you get the message - please do not attempt to build these generic editing tools on a...
07:55 ...web browser just because Silverlight or Flex allow you to do very rich Internet applications.
08:02 We did not design this web browser-based editing for you to build ArcEditor on the web. Makes sense?
08:09 You'll see that there are different out-of-the-box tools for doing web browser editing in ArcGIS Server 10.
08:18 No development needed, but we will also talk about the web mapping APIs, so you can see how you can...
08:23 ...tweak your editing applications.
08:28 Okay. Let's talk now about the basics of web editing in ArcGIS Server 10.
08:33 How do I build these feature services and how I use them.
08:41 So there two basic concepts that we are going to talk about.
08:45 One is this new feature service.
08:49 And the other one is the feature template-based editing.
08:52 Feature template-based editing allows you to work with a well-defined information model...
08:58 ...so people don't add just anything to the geodatabase.
09:01 Every time they edit, they will do so through these templates that you have defined, and these templates control...
09:07 ...which attributes you can put into which features, and also how the features are represented in the map.
09:13 That's what we mean by structured information.
09:18 The feature service is just a web service that sits on top of your geodatabase and expose update methods on it.
09:30 Feature templates are kind of a shortcut to the things that people edit.
09:35 A feature template defines the symbology, how features are rendered in the map, which attributes you can...
09:43 ...see, so you may have in the geodatabase 10 fields and then create a template on top of it that says...
09:49 ...I only want to display four.
09:52 It also controls which fields can be edited, so out of these four fields that the user can see in the editing application...
09:59 ...I want only one to be read and write.
10:02 The rest will be read.
10:05 Feature templates allow you to set default values, so when I can create a new feature, attribute A...
10:10 ...will have this specific value.
10:13 And that's interesting because you are familiar with this concept of default values in the geodatabase, right?
10:20 Well, you can still set that value, but the feature templates allow you to overwrite those default values...
10:26 ...from the geodatabase.
10:28 So you can fine-tune specific editing workloads.
10:32 And also the templates define what is the preferred drawing mode.
10:36 When I'm going to draw a polygon, should I use a freehand tool, or should I use one of these polygon...
10:43 ...click, click, click, click, click - kind of tools.
10:46 Those things are defined in the feature templates.
10:48 And feature templates are authored in ArcMap.
10:51 It's kind of a step for preparing your data for editing over the web.
10:56 Once you create these feature templates, they work across all the different clients.
11:00 So you can see on the right a screen shot.
11:03 This is what we call a template picker, or a palette.
11:08 Users will click on these feature templates and then start drawing on the map.
11:12 And that experience of clicking on the feature and then clicking on the map to draw extends to ArcGIS Desktop...
11:19 ...as well as to web browsers.
11:22 So what we were trying to do with this is kind of allow you to build a web editing workflow where you can...
11:28 ...work with structured information, but at the same time you can offer the user a nice user experience...
11:35 ...an easy experience for editing, whether you are in Desktop or you are in Server.
11:43 A feature service is a new service in ArcGIS Server 10, and it's designed for web editing.
11:49 It basically pushes changes into the geodatabase over HTTP.
11:55 But it's also excellent for querying.
11:57 In a sense, a feature service allows you to query the database and instead of asking the service to create a map...
12:04 ...you actually ask the service for geometries and attributes, and then you get these geometries and attributes...
12:09 ...down to the client, and then you do things with them in the client.
12:14 You may want to render this information in a web browser but you may also want to change these features in the client...
12:20 ...and then push the changes back to the database.
12:24 So this is kind of what we are representing here on the right.
12:28 So here is my web browser.
12:30 Initially it is going to throw or send a query down to the feature service; the feature service will query the database...
12:38 ...and then it will return in number 2, geometry and attributes.
12:43 Those will be, in number 3, rendered in the clients in the web browser, using the rendering capabilities of the browser...
12:51 ...basically using graphics.
12:53 And then I can manipulate these objects in my web browser and push them back to the database through...
12:58 ...the feature service again, okay?
13:01 That's kind of a simplified workflow of how feature services normally work.
13:10 So with these two concepts, let's kind of go through the process of creating a feature service and using it.
13:15 And there are basically three steps - you first prepare your data in the geodatabase...
13:19 ...and you create these templates, then you publish that map document as a feature service...
13:26 ...and then you simply connect to the feature service and use it from whatever client you picked.
13:31 Let's go into the details of each step.
13:34 Preparing your data is really about two things.
13:38 First, you define your geodatabase model and many of you already have probably done this job.
13:44 You decide whether this feature is going to be a point, a line, or a polygon, so you create the feature classes accordingly.
13:50 You create the relationship classes, domains, subtypes, I guess you are all familiar with these concepts, correct?
13:57 That's no different; you can still use these concepts for geodatabase editing.
14:03 But you should keep a few things in mind.
14:05 There are a few features or feature types that we don't support for web editing through the feature service, at least from web browsers.
14:13 And those are annotations, TINs, rasters, and dimensions; those features you cannot edit really...
14:20 ...over the Internet with this feature service approach.
14:25 Other than that, just feel free to edit pretty much anything.
14:30 Even if you have feature classes that participate in that topology, you can still edit those simple features.
14:36 You want to be able to manipulate the topology with the feature service, you can edit.
14:40 Think about a geometric network.
14:42 You can edit the geometric network, too, because the underlying feature classes that made up...
14:47 ...this network are simple features.
14:50 Right? They are points, they are lines, they are polygons, and so on, so you can edit them as well.
14:56 They are actually complex features but we can still edit them.
15:01 Okay, so you have your geodatabase model, then just make sure that it can be edited.
15:05 When you connect from ArcMap to a geodatabase, you normally use the database authentication, right?
15:13 Now, you must be certain that when running your feature service, the ArcGIS SOC user can edit the geodatabase.
15:24 If you are working with an enterprise geodatabase, well, make sure that the user using...
15:30 ...used in the SD connection has read and write permissions.
15:32 And if you are using Windows authentication again with SQL Server...
15:36 ...just make sure that the ArcGIS SOC user has read and write access into that database...
15:41 ...because when you start the feature service we can have used the ArcGIS SOC user to edit the geodatabase...
15:48 ...not the user that you normally log in as when you are using ArcMap.
15:54 You don't need to version your feature classes in order to do web editing.
15:59 You can edit nonversioned data; however, there are some scenarios where you always need to version your data...
16:07 ...geometric networks, topologies; you have to version your data even if you are using ArcMap to edit that information...
16:14 ...and that carries or flows down to the feature service, as well.
16:18 So basically, if you cannot edit your ArcMap, there is just no way you will be able to edit that with a feature service.
16:25 You don't need to version, but you need to register in ArcSDE, just like in ArcMap.
16:30 If your data is not registered in ArcSDE, you cannot edit in ArcMap, you cannot edit in the feature service.
16:39 Now that you have the geodatabase set, now we are going to do the map document...
16:44 ...and in this map document, we are going to create these feature templates.
16:49 As I described before, you can play with the field visibility, the aliases.
16:55 Read-only fields versus read and write. You can set default attributes.
17:00 You can also check the symbology.
17:02 The symbology for the feature templates does not necessarily need to be the same that you see in the table of contents.
17:10 It's symbology and types that are specifically created for the editing experience.
17:16 And you'll see in the next slide that with symbology we need to be a little bit careful, because not every symbol...
17:22 ...is supported by the feature service.
17:26 You can also define the preferred drawing mode for these templates.
17:29 And finally, once you have these templates, you'll refine your map document.
17:34 So, if your data is versioned, you must select the version that will be edited over the web, because once...
17:41 ...you create the feature service, we'll knock down into that version that you have in the map document.
17:46 You cannot change the versions when you are doing web editing.
17:49 You also eliminate unnecessary data from the map, and you are pretty much ready to publish the service.
17:57 But let me talk a little bit more about how you handle symbology with these feature services.
18:03 There are three renderers that we support with the feature service.
18:06 If you use any renderer that is not in this collection, the feature service will not publish.
18:12 It will give you an error, it won't publish. Okay.
18:16 So you need to manipulate if you have a field that is using a layer that is using multiple fields, for example...
18:23 ...we cannot handle that; you'll need to simplify your symbology before you publish.
18:28 And then symbology.
18:29 You can throw any symbology, any symbol you like, to the feature service and it will publish.
18:34 However, when clients connect to your feature service, they may downgrade the symbology.
18:40 Remember that we said with the feature service that we will pull the geometry on the attributes...
18:45 ...to the clients and then render client side.
18:47 There are some clients who are not capable of rendering everything we can render in ArcMap.
18:53 So we will downgrade things, and here are some examples.
18:56 Take points, for example.
18:57 Just create any point symbol you like with multiple layers, anything.
19:03 We will basically create a picture marker symbol out of it.
19:07 We are going to create a, kind of a snapshot of it, save a P&G file and that's what we are going to use in the web browsers.
19:14 For lines, you can even use cartographic representations, but at the end of the day, web browsers...
19:20 ...will just see a simple line symbol.
19:23 So if you have a line symbol with let's say a red line, and then a black line - thicker black line to do the casing...
19:31 ...we will take the first line that we find, the red one, and we will represent it that way.
19:37 And with polygons, everything will be downgraded to simple and picture fill symbols, okay?
19:43 This is for web browsers.
19:44 If you connect to the feature service from ArcMap, ArcMap is going to connect, get the features...
19:49 ...and draw everything perfectly, right?
19:53 So, there are ways actually to prevent this downgraded symbology to show up in the client when you are editing.
20:02 There are workflows to avoid that. We'll see that later.
20:05 What I want to do now is kind of give you a few examples of how things compare when you are...
20:12 ...drawing things through the feature service versus the map service.
20:25 Okay. So here we have an application that is showing two maps. I have synchronized them.
20:31 And they are displaying the same information from the geodatabase, but on the left...
20:35 ...we are using a dynamic map service, we are using server-side rendering.
20:40 And on the right we are using client-side rendering.
20:43 Because the proper symbology is very simple, you can see that there is almost no difference.
20:48 Maybe these symbols are a little bit sharper, right? On the left.
20:51 But they are pretty much the same.
20:55 This is just a P&G file that we are retrieving from the server.
21:00 Those are features rendered in the client.
21:02 In fact, if I click on the feature you see that it shows I mapped it because the feature detected in the client...
21:09 ...that I clicked on it and then it displays the attributes.
21:11 That's a feature, feature service being used.
21:16 Let me give you another example.
21:19 In this case, this is a bit more complicated.
21:23 In this case, we are going to see two things.
21:25 You'll see that the symbology is not exactly the same, and also that the performance is not exactly the same.
21:32 On the left, again, we are displaying a dynamic map service.
21:36 Bang! Bang! Bang!
21:37 It's very quick; we are using an optimized map service.
21:41 On the other side, we are fetching these geometries and attributes to the client.
21:47 If you have just a handful, it's actually pretty quick, right?
21:51 I mean, you can see that it responds fairly quickly.
21:54 Now as I zoom out, I have more and more feature to render, and you can see that the different layers...
22:00 ...come right in different waves.
22:04 On the other side, it always has like very quick updates.
22:08 So we need to be careful when using these feature services not to grow a lot of features in the display.
22:13 You can have feature classes with thousands and millions of features...
22:24 You can also see that on the left we have text, on the right we don't, because labeling doesn't come through, okay?
22:31 The browser is not labeling.
22:33 And also if you look at the features closely, you'll see that they are being downgraded a little bit.
22:38 Marker symbols are generally just fine, as you can see.
22:41 Very, very minor differences.
22:43 Look at the pipes.
22:44 In this case, the pipe has casing; here you can see it very clearly, right?
22:48 And in this case, you can take the first line and then nothing else.
22:53 You see those minor differences?
22:54 Sometimes it doesn't make any difference from a user point of view but for some maps, people are really...
22:59 ...really picky about the symbology that you use.
23:06 Okay, this is another example.
23:07 These are some symbols from a wildfire map, and as you can see on the left, they are quite complicated.
23:17 We are using cartographic representations to represent them.
23:20 For example, this is an uncontrolled fire line, a dozer line.
23:26 Planned dozer line, escape route.
23:30 They are fairly complex symbology.
23:31 Look how the symbology is displayed on the right, okay?
23:36 We'll cover this use case, and you'll see that you can actually edit over the Internet maps that look like this on the left.
23:44 But you won't use this technique of rendering features on the client to address these workloads.
23:50 So I just want you to be aware of these differences.
23:58 Okay. So we have the symbology set, now we are going to publish the feature service.
24:03 The feature service is just a capability of a map service, so you check it and then it publishes it.
24:09 And like any other ArcGIS Server service, it can be secured.
24:14 No big secrets there.
24:16 Now, of course, things are not going to go right maybe the first time.
24:20 What are the most common reasons why you cannot publish a feature service?
24:25 ArcGIS SOC users cannot access the data. An obvious one.
24:29 You may not have an ArcSDE workspace that you can edit in that map document that you are publishing...
24:35 ...that might be another reason.
24:37 Another reason is that you may have two ArcSDE editable workspaces in that map document; you can only have one.
24:45 And of course, the renderer is not supported.
24:47 All these messages will display in your logs.
24:50 If things go wrong when you publish a feature service first thing, go to a log.
24:55 Go to a log.
24:56 Go to a log.
24:57 The descriptions are normally fairly decent.
25:01 As you can see at the bottom, we have a note.
25:04 Symbology downgrades will be warnings, but we will allow you to publish.
25:10 Once you publish, your feature service is going to display in the services directory.
25:14 Here you can see that it's coupled with the map service.
25:17 It's a capability of a map service.
25:20 And on the right you can kind of see how the feature service advertises these templates that you defined in ArcMap.
25:31 And finally, once your service is up and running, you select the right tool to edit that information.
25:37 If you are in the field, you go with the mobile device. If you want a web browser, you use a web browser and so on.
25:43 So let's do now a quick demonstration where we will author a feature service and we will use it, okay?
25:58 So, as many things in ArcGIS, things start with ArcGIS Desktop.
26:09 ArcGIS Desktop is where you are going to author your map document.
26:13 So here I have a map document which has some information about observations of wildlife...
26:18 ...and I want people to edit this information.
26:21 This data is coming from SQL Server Express, a workgroup ArcSDE database, as you can see in the data sources.
26:31 So now if I go to that database, you'll see that if I go to administration permissions...
26:40 ...I said my ArcGIS SOC user has read and write access, right?
26:46 Very important.
26:49 Other than that, I'm just using points, lines, and polygons rendered in ArcMap.
26:54 Here you are.
26:55 Now let's start editing so you can see how feature templates are authored.
27:02 These are the feature templates in my map, and in this case, pretty much any symbol that you see...
27:08 ...in the table of contents will automatically show up in the gallery.
27:12 These templates have been created automatically for me.
27:15 One thing that may lose you at the beginning is that if a feature, if a layer in your table of contents...
27:24 ...is not visible because of scale dependencies, the feature templates are not going to show up here.
27:31 So if you see this thing empty, maybe that's the reason.
27:34 There are no usable editing things in your display.
27:38 The other reason might be that you have definition queries.
27:41 If you have definition queries in your map document, things may not show up here.
27:46 And the reason is that we always try to make sure that every template that shows in the gallery...
27:52 ...when you create a feature, it will draw.
27:54 And sometimes you cannot control with feature definition queries if a feature is actually going to draw or not.
28:00 So the feature will exist, actually.
28:02 You'll need to create on this Organize Templates button, and they are going to show up here.
28:09 Every layer has associated templates.
28:12 And then you can click on them and say basically, display them on the template gallery, okay?
28:23 Now, we have the templates here and templates - let me double-click on this one, for example.
28:30 They have a name, a description; they also have a Default tool, right?
28:35 Freehand for this type of polygons.
28:38 In this case, I'm going to say, I just want the user to kind of go click, click, click.
28:42 This is a draw tool.
28:44 Here are some of the fields that I can edit, and you can see that some of them have attribute domains.
28:50 Those come from the geodatabase.
28:52 And through the template I can define the default values.
28:56 That's very powerful because traditionally, you edit things that, all the behavior is in the geodatabase.
29:05 With the feature templates, I can say, oh, I know that these folks using the editing application...
29:10 ...are going to create a lot of, let's say, raptors, right, but are supposed to not confirm.
29:19 They are going to say, these are raptor sitings, and it's confirmed, right?
29:25 So I can create a second feature template, say Copy; it will create a second one.
29:31 And then I can say, okay, this feature is a raptor, confirmed.
29:37 And then I say this attribute will say yes.
29:42 Okay? So you can adapt feature templates to specific editing workflows that you have independently...
29:49 ...kind of independently, of the geodatabase rules.
29:52 You can fine-tune these rules for your editing workflows.
29:56 Now these fields can be flagged as read-only, you can use aliases, and so on.
30:03 Okay, so that's pretty much it for templates.
30:06 You create your templates; you can also of course remove templates if you like.
30:12 And then you stop editing, and then you save the document. I'm going to save it.
30:26 And now we are ready to publish.
30:28 Now before I publish, I'm going to get rid of the background map, and then I will publish on this button, right?
30:37 This is the standard map service publishing toolbar.
30:40 You often validate first; I get three low warnings, because all the features have...
30:49 ...drawn at every scale, but that is fine in my case, and then I'm going to publish in here.
30:51 This is going to replace an existing service that I have, so I'm going to say, yes, replace.
30:56 Oh! There you go, feature service, right? Feature access; you need to enable that.
31:01 And then you pretty much publish that set, okay?
31:08 Now you know that every time you create a service, what do you need to do?
31:16 You need to update the service's directory, right?
31:20 Okay; so that's what we are going to do now.
31:27 Okay, nice. So my service is up and running now, and before I move on I just want to kind of have you look at...
31:38 ...the service from this catalog window... so you can see some additional properties that you can define.
31:46 Capabilities, feature access, you can enable queries or queries on editing, okay?
31:53 And also if you have 3D values, Z's, you can apply a constant 3D value to the features that are created, as well.
32:02 And there's not much to it.
32:04 Now our service is running, so I'm going to use a web browser to explore my feature service.
32:15 Okay, so here is my service, you can see, complete map service, right, for Save the Bay and the feature service.
32:23 I click here and you can see the three layers that we are editing.
32:28 Let's go to birds, and as I scroll down, you'll see that it's picking up on the renderers, right, for my feature templates.
32:38 Here are all the renderers.
32:40 And if I keep going down, you'll see that we also have the templates, okay?
32:46 Those are all the templates where we defined the different attributes that will be assigned with each template.
33:00 Now, let's edit this information.
33:02 We authored the map, we publish it, now we are going to use it with a web browser.
33:06 Let's use a web browser to edit this information.
33:09 So this is a new option in ArcGIS Server 10.
33:11 You can view your map services and feature services in ArcGIS.com.
33:16 So I'm going to click here, and this is going to display my feature service within the ArcGIS.com viewer, okay?
33:28 So now we can go to this area; those are all features.
33:36 Let's switch the basemap here, and this little thing, as you probably know already, has a table of contents that is...
33:48 ...created automatically, and this also because it's a feature service and has the editing capabilities enabled...
33:53 ...I also have the edit function right there, okay?
33:57 And, well, that's it. I mean, I can now click on a feature and maybe change the attributes, I mean the vertices as I see...
34:07 ...I can move a feature around.
34:09 Of course I can change the attributes if I like, so, No, and submit it, right, that date.
34:17 So you can see that this attribute inspector is picking up on the file types from the geodatabase.
34:24 Picking up on the domains, the default attributes, and it's displaying that nice IUI.
34:29 Of course, I could also delete the feature, or I could create new ones.
34:33 So I'm going to take one of these polygons and just click on the gallery and start drawing.
34:42 And this just created a feature in the geodatabase.
34:45 Feature service sends the geometry to the feature service, I mean, the client to the feature service...
34:50 ...and that's in the geodatabase.
34:53 That's pretty cool, isn't it?
34:54 I mean, no development, just all ArcMap publish ArcGIS.com, done.
35:01 It's true simple sketching, but this is the core use case that we wanted to address in this release.
35:06 We were not after creating very accurate editing tools in a web browser.
35:12 We were after this sketching use case where the freedom of drawing and ease of editing is...
35:20 ...more important than the accurate editing for web browsers, okay?
35:26 Points, the same thing.
35:27 I get the guide, and I just add it.
35:34 Okay? Makes sense? That's pretty neat, isn't it?
35:40 Okay. So that's the basics, basics, basics of the most basic thing of creating feature services.
35:57 Okay. Now I'm going to take different scenarios, and we are going to go into the details of how this thing really works...
36:04 ...and how we can get into the API aspect of it and so on.
36:11 Here are some of the scenarios. Let's just start with attachments.
36:16 And, let me just go and do a demonstration.
36:36 So in this case, we are accessing the same feature service that we authored a minute ago.
36:43 But we are not using the ArcGIS.com out-of-the-box tool.
36:48 You know that this ArcGIS.com tool is hosted by Esri.
36:52 In some cases, we want to have applications for editing installed locally, within your network...
36:57 ...within your intranet, so you can have more full control of it.
37:00 So this will be the tool that you could use out of the box.
37:04 This is the ArcGIS Viewer for Flex.
37:06 It's downloadable from the Internet from the Resource Center.
37:09 And you basically download this application and then you tweak a few configuration files...
37:14 ...and then you can make this application point to your services to display your data or edit your information.
37:19 And this application has an out-of-the-box editing widget, we call it.
37:24 So let's zoom in here. I'm going to switch the basemap to aerial, and now I'm going to click on the editing widget.
37:37 This is the same experience, the template picker, as you saw before...
37:41 ...where you can click and add a new feature.
37:45 Let's go to California.
37:48 This is a beautiful town in the central coast of California.
37:52 And here are lots of dolphins.
37:55 I'm going to click on this feature and go to the attachments.
37:59 And you can see that this feature has a picture attached to it. That's an attachment.
38:05 This picture is stored in the geodatabase, and I can use the feature service to retrieve the thumbnail so it displays nicely...
38:14 ...on the application, but also I can double-click and literally get the document down to my computer from the geodatabase.
38:21 This could be a picture, a video, music, a PDF file, a text file.
38:29 Whatever file, right?
38:30 That's an attachment; this is a new concept in the geodatabase in 10 and it's supported by the feature service.
38:37 If you wanted to add a new attachment, you just click there, and then I think I have dolphins and this thing.
38:48 Should meet and this will literally get the file from my computer, upload it to my feature service...
38:54 ...and store it in the geodatabase associated to my feature.
38:58 Okay? Attachments out of the box on the application.
39:07 A file associated to a feature, any type of file, is stored in the geodatabase as a BLOB.
39:14 Following a one-to-many relationship, so you can have many features associated, many attachments...
39:20 ...associated with a feature, and you can retrieve and edit from pretty much any client.
39:33 The good part is that it's super simple to create these attachments in the geodatabase.
39:40 This is my feature SQL Server database, and you can see that I have my feature class, Marine, with points...
39:47 ...those are, the dolphins are stored here, and then I have a table which is marine_attached.
39:55 That's the table that was created when I said this feature class has attachments, and between this table...
40:02 ...and the feature class, there is a relationship class, a one-to-many relationship class.
40:06 If I go to the properties of this table, you see it's a stand-alone table, and it has a BLOB field.
40:12 This is where we store the data and then we store some metadata as well about the file in the geodatabase.
40:19 How did I create this? Very easy.
40:22 That's, my birds, feature class, doesn't have attachments.
40:26 So if you wanted to create an attachment, you simply right-click and say, Attachments, Create Attachments...
40:33 ...and this will automatically create an extra table - okay, this one - and the relationship.
40:42 So if I now publish my map service again, my birds will have attachments, so I can edit them, right?
40:56 Let's go now and talk about this scenario where we have complex geometry, complex symbology...
41:02 ...and you still want to edit while looking at this symbology.
41:08 I'm going to click on this application, and we go back to this example where we have this complex geometry.
41:17 You can see that everything looks fine in this case, right?
41:21 One thing I did not talk about before that I'm going to do now, if I go to the side-by-side comparison...
41:28 ...you can see that points are right on.
41:30 You can do points very well.
41:31 But look at this point right here.
41:33 It has rotation, right?
41:36 Well, only on one side of the map; when you represent as a feature layer, rotation is dropped.
41:41 And lines and polygons are kind of a complete disaster.
41:45 So, now we have this application - and let me go here - switch the basemap - and this is the symbology...
41:55 ...that a firefighter would be expecting to see.
41:58 This is where the fire started, these polygons are represented [as] infrared areas of high heat, right...
42:07 ...which you calculate basically with infrared.
42:10 This is an uncontrolled fire line; you can see the labeling for these polygons, which displays automatically the area...
42:19 ...the escape routes, aerial hazards for planes to be careful.
42:25 Look at the complexity of the symbology, right?
42:30 Now, here's my template gallery; you can see that it's simplifying the symbols already, but to some extent that's kind of...
42:36 ...I think, acceptable in many cases, and now you can see I'm using the freehand tool, right...
42:43 ...because the client sees that this feature is associated with the freehand drawing tools, so you automatically...
42:49 ...click and start drawing.
42:51 And look at the text; I'm not using a feature, I'm not rendering this feature's client side.
42:57 I'm using a dynamic map service to render.
42:59 So basically I'm here combining systems; I'm using the feature service to push the changes...
43:04 ...and then I ask the server to refresh the map, right?
43:08 And it renders the map nicely.
43:11 With text in this case, and if I had to create and control fire edge, you draw, and you get that beautiful line.
43:24 Let's go with division break.
43:29 Oh, you see, this is click, click, click, as opposed to - well, that's a weird line.
43:38 That's too simple.
43:40 Foam, let's drop foam, drop here, you see?
43:43 All of these are using cartographic representations.
43:45 So you can literally get crazy here with symbology and it will display fine.
43:50 With the points, if I go down here, as you know, no big problems here, okay?
43:59 You can add the rotation and the symbol will rotate on its own.
44:04 So, we can handle that complex symbology as well.
44:09 Let's go back to the slides now.
44:13 I want to introduce the concept of a feature layer here.
44:16 A feature layer is kind of a counterpart to the feature service.
44:20 A feature layer is a client-side concept, and we how we handle the rendering of the features in the client...
44:27 ...when we connect to the feature service.
44:31 It manages how features are fetched to the client.
44:34 It has three modes - snapshot, on demand, and selection only.
44:39 Snapshot means that the application will fetch every feature to a client at once when you first connect.
44:46 And that's very nice when you have just a handful of features, because you never go back to the client...
44:50 ...when you pan them up, they are all on the client.
44:53 So the application is not as chatty as they normally are.
44:57 On demand means that, as I pan them up, I will get the extent and ask the feature service to give me the features.
45:04 That's nice when you have lots of features in the feature class, but you have to be careful not to display...
45:09 ...many features in the client.
45:11 And what "many" means? Well, it depends.
45:13 Depends on many things, like the web browser.
45:17 Google Chrome is the fastest.
45:19 Firefox is slightly slower, and Internet Explorer is slightly slower.
45:25 I still didn't mention any numbers.
45:27 We are in the hundreds.
45:29 If you are displaying 500, 600 features, that's fine.
45:33 Well, features.
45:34 It's really vertices that counts, more than features, okay.
45:37 So if you have complex polygons with many vertices, you can slow down if you add a lot of features.
45:43 Just to give you an idea, if I connect to a feature class which contains all the US counties...
45:51 ...we've kind of generalized symbology, it may take about 3 to 4 seconds to bring everything to the client.
45:58 And with Silverlight and Flex clients, we can move that fairly well.
46:12 ...this classic message that says, "A script is running in your browser, do you want to stop it," right?
46:19 That will happen.
46:21 Anyway, it also defines how features are rendered, and this feature layer is normally used in combination...
46:30 ...with out-of-the-box things that you have been looking at in this session, like the attribute inspector...
46:36 ...to edit the attributes, the template picker.
46:38 The feature layer is kind of a central point where all the components of your application...
46:44 ...are going to ask the feature layer what is the rendering, right, so the template picker can display...
46:49 ...what are the default attributes, so that the attribute inspector can display the default attributes, and so on.
46:53 We will go into more and more detail as we move into this presentation.
47:00 So, you can already, in your mind, I think you understand the two patterns that we are going to discuss.
47:06 The first pattern for using feature layers is one where you either use the on-demand or the snapshot mode.
47:14 It's a pattern where you bring all the features on demand or as a snapshot to the client, and you render client side...
47:22 ...and you know the limitations of that approach.
47:25 But also the good things about it, like this maptip just comes out of the box, right?
47:30 When I click on the feature, boom! I get the information.
47:34 Here, you should be, as I said, careful with very large polygons.
47:35 Well, those selected features will be rendered client side, and then you can manipulate the geometry...
47:37 If you are editing land-use polygons, probably you shouldn't use this one, this approach of rendering client side...
47:44 ...and no more than a few hundred features in the display.
47:47 And also remember the limitations with the symbology that we saw with the demonstration.
47:52 Here you must be smart about using scale dependencies, generalizing the geometry...
47:57 ...to display data in this fashion.
48:00 The other pattern combines the map service and the feature service, so basically, first of all, my web browser...
48:07 ...is going to get the map.
48:08 It's going to ask the map service to render a JPEG image, and boom, I get back the map.
48:15 And then, let's say I click on the map, because I want to edit a parcel that I see.
48:20 I click there, and then I send a request to the feature service and I get the geometry and the attributes...
48:27 ...just for the parcel I clicked on.
48:30 Think of it as a selection.
48:38 ...and push the changes back to the server, right? Simple.
48:44 So before, when you are only displaying selections, even though the geometry might be complex...
48:49 ...there are chances that it's going to be fairly, fairly fast, right?
48:52 'Cause you don't have many things, just selected ones.
48:55 And the selection mode, or the mode for the feature layer, is called Selection Only, so the feature layer...
49:03 ...knows that it's not going to retrieve everything but only things that are selected.
49:09 When using map service, you should use MSDs as much as possible, as opposed to MXDs.
49:15 And I guess you are all familiar with the difference between MSD and MXD, correct?
49:20 Yeah? Yeah? Cool.
49:24 Full symbology, as you saw in the last demonstration.
49:27 Do you have that pattern? Okay.
49:29 So I don't want to go into the details yet of kind of developing with the web mapping APIs...
49:36 ...but I want you to see how I configured my online wildfire editing application.
49:44 So that application is based on something we call the...it's a VGI kit.
49:49 It's basically an application that we created which is configurable through a simple text file.
50:01 This is the folder, what we call the VGI kit.
50:04 It's just a folder that you can download, we will put this in the Resource Center, and then you simply go...
50:10 ...to the Resources folder, application settings, and then you open that with text editor, and you change things...
50:18 ...like the title of the application, the colors of the text, the initial extent, and if I scroll down...
50:26 ...you'll see that it's pointing to a map service, which is my dynamic map service, and also a feature service.
50:34 The feature service because I want to edit the map service because I want to represent the data through the map service.
50:41 And then for selection mode, I say, Is selection mode true.
50:45 And then the application knows what to do.
50:48 If you say False, the application will ignore the map service and use features to render everything, okay?
50:57 Now, here's another scenario, one where you don't want people to edit geometries, you don't want people to add...
51:00 So, this application allows me to, oh, look at this guy. Oh, that guy is fine, but, that guy has a pool...
51:04 ...new parcels to the town, you don't want them to delete them, you want them just to edit attributes.
51:10 Let's have a look at the application.
51:14 I thought I had a shortcut there; I think it's...No, I have a bookmark here, pool permits.
51:23 This is an interesting application for interested people.
51:31 So, yellow polygons represent properties who have a pool permit.
51:39 And when you've got a pool permit, you need to pay, so obviously you have a swimming pool, right?
51:44 So, yeah, that is true.
51:46 Here is swimming pool, swimming pool, swimming pool, swimming pool.
52:04 ...by the way, it's dirty - but it's not yellow, which means that he doesn't have a permit.
52:10 So I click on the pool. Did you see what happened?
52:14 Now the parcel is highlighted.
52:18 That's the selection, okay?
52:20 Now if you look at the polygon, that hatched polygon, that's not supported by the feature layer...
52:24 ...so I'm rendering dynamically, right?
52:27 So right now I have one feature in my client, which I am rendering, and then I say, has pool?
52:32 Yes, it has a pool.
52:34 And then flags as red.
52:37 And I'm not saying anything; I'm just saying you have a pool, it's dirty, and you don't have a permit.
52:42 So we'll see what happens.
52:46 And notice also that I cannot add features and my attribute inspector normally has a delete button...
52:51 ...but in this case, I dropped it.
52:54 It's a very focused application to do just attribute edits and we can support that.
52:59 Also, if you look at this drop-down list, I set the feature template so you could only edit the Has Pool field.
53:09 But if I change this guy and say, "has a pool permit, yes," it won't do anything, right?
53:16 It won't commit.
53:18 And also if I click on a parcel that has a permit, I click here and nothing happens because I cannot say...
53:26 ...this parcel doesn't have a permit or doesn't have a pool, right?
53:29 So those are things we can see in the application that we are controlling.
53:33 Which features can I edit, which attributes in those features that I can edit, I can edit too.
53:39 And what operations can I do on this information?
53:43 Can I add, can I delete, and so on.
53:46 So how should we build this application? Okay.
53:51 So, so far we have been looking at out-of-the-box applications, applications that don't require any development.
53:58 Now we are going to show you how you can customize things so you can do very focused things.
54:08 ...that we call dingies, or widgets.
54:10 Those are kind of self-contained controls or classes, utility classes that you can use to build your own editing experience.
54:18 And you saw some of them already in the out-of-the-box applications, like the template picker...
54:23 ...the attachment editor to upload and download attachments, run features; this is the attribute inspector...
54:31 ...and here is another look at the template picker, and also there is a toolbar, with selections and delete...
54:38 ...and things like that, that is available to you.
54:42 So, what I'm going to do now, let me just, when is this session...we have half an hour? Thirty minutes.
54:51 Okay, so, 20 minutes. Okay.
54:58 So, let's go through this very quickly, and I apologize if you get a little bit... let's just do it.
55:11 Remember in the past, it was resources.esri.com?
55:15 Now we changed it.
55:18 It's resources.arcgis.com.
55:23 I'm going to go to server, and from server I'm going to go to web APIs, and this is where you find all the developer stuff.
55:40 I'm going to go to samples, there are many of them, and of course, we have editing samples.
55:45 And one of them is the attribute inspector.
55:51 So I can view the live sample, and this is pretty much what we were doing, the pool permits application.
55:57 I click on the feature, and then I change an attribute, okay?
56:03 That's the attribute inspector.
56:05 Okay. So that's kind of the application I want to build.
56:08 So I'm going to take this code and I'll go with you through the code so you can see what's going on...
56:13 ...and how you make changes on those things.
56:16 So I'm going to go to my server and I'll go to the root directory where I can put my HTML file...
56:25 ...so people can see it, and then I'll create a text file where I put this code that I took from...oops, nope...
56:39 ...I took from the sample.
56:41 And now I'm going to save this as a.html. Okay.
56:51 Now let's have a look at this.
56:54 Can you see this in the back? Is it big enough? Yes.
56:57 There is this HTML code, and here you see the title, right?
57:03 Easy to change that.
57:07 Let's call this pool editor.
57:24 And then let's keep going a little bit.
57:27 One important thing that you should keep in mind when building web editing applications with this API...
57:32 ...is the concept of the proxy server, so that easy when you are editing is that often you...
57:37 ...send very large geometries to the feature service to add or remove things or reshape.
57:42 So you cannot do just a, you have to do a post.
57:46 And to do a post from this application you need this concept of a proxy.
57:50 So there is a proxy, basically a proxy just so you can see it; I mean, it's not a big deal.
57:56 If I go to my folder Demos, I have an Esri proxy folder, I just download it, these two files from the resource center...
58:05 ...and one of the files is the proxy itself, and the other one is just a configuration file for this proxy...
58:12 ...which is telling me, only applications running within this server will be able to use the proxy...
58:20 ...to communicate with the feature service.
58:23 Makes sense?
58:26 So, once you have that proxy set up in your code, you just point to it.
58:30 So, the proxy in my case is going to be Demos, Esri Proxy.
58:38 It's a relative location for the proxy I'm going to use.
58:41 And then the application sets the initial extent.
58:45 In my case, I don't want to use the initial extent from the sample because it's Texas...
58:50 ...and who wants to edit pools in Texas?
58:54 So I'm going to get rid of that.
58:56 And then you can see how things were here.
58:58 First is connecting the map control to this toolbar.
59:04 This is one of these library developer utilities things that allow you to handle selections very easily.
59:11 And then it's using a tiled layer.
59:13 This is the cached map service that we are displaying at the bottom.
59:17 So I'm going to basically replace that and use one of my services.
59:22 So I go to my service directory, City, Imagery, this is the map I want to use as the background for my application.
59:34 So I go there and I say, okay, that's the tiled map layer.
59:38 And then you can see on the next line that it's adding the layer to the map.
59:42 The next one is adding a dynamic map service layer, and the same, it has a URL.
59:50 So I'm going to get rid of that URL, go back, and display my city pool permits map server, right?
1:00:03 Back to my remote desktop, and I add that.
1:00:07 And that's just for display purposes.
1:00:10 Notice that we disable client caching, so every time that we refresh, even if we are in the same extent...
1:00:16 ...we are literally going to go and get a new image, so the browser doesn't cache what the server doesn't cache.
1:00:22 And then we add the layer.
1:00:24 And finally, look at this line.
1:00:26 It's basically adding a feature layer to the application, and that's the one we are going to use for editing.
1:00:34 So if I go back to the services directory, you'll see that I have city pool permits...
1:00:41 You don't add the feature server, you add the feature service, feature service layer.
1:00:49 The layer you want to edit, right?
1:00:51 Not the whole server but the layer.
1:00:53 And the layer I want to edit is the layer that contains polygons who have no permit, right?
1:01:03 And then I take that, and I paste that.
1:01:11 And look at this, the mode, modus, mode selection.
1:01:16 So the feature layer, controls how the features are fetched to the client.
1:01:20 Select the mode only; don't bring anything unless the feature is selected. Okay.
1:01:27 So, just a few more tweaks here; this will be quick, like the fields that I want to retrieve.
1:01:35 In this case, if I want to retrieve every field, and I think we are pretty much good to go.
1:01:43 Okay, I just want to point out this.
1:01:45 Every time you complete edits, you are going to refresh the dynamic layer, right?
1:01:50 There's another piece of code in there.
1:01:52 So now we go back here and we go to a.html, and that's my cache map service, if I zoom in a little bit.
1:02:03 Those are my parcels, and then, oh, this guy, there you go...has pool. Yes.
1:02:16 Boom, it changes. Right?
1:02:18 The only thing is left here is to remove the Delete button which is just a simple line of code.
1:02:24 So, while, what I was trying to demonstrate here is that through the APIs, you can build very customized...
1:02:33 ...web editing applications.
1:02:34 And that is a key aspect of web browser editing, because now that you see that you have ...
1:02:40 ...an attribute inspector and all these things, you think oh my god, I can create a killer app.
1:02:45 This app that has delete, add, move, reshape, edit, vertices.
1:02:52 All these are buttons in a nice-looking toolbar.
1:02:55 It has perpendicular tracing, parallel. It even has this button on the toolbar that you can...
1:03:01 If you select two lines, right, that are going to intersect, but they don't quite touch, but you select them...
1:03:06 ...and then you push the control key, and while standing on your left foot, you click on this other key and then, boom. Right.
1:03:13 Don't do that, don't do that.
1:03:16 Don't do that, one - because as I said before...
1:03:20 ...we didn't design this to be a complete ArcEditor-like environment for editing.
1:03:24 But also don't do that because people, the expectations that people have when they access your web editing...
1:03:30 ...applications is that it's going to be straightforward.
1:03:33 Most likely they are not GIS professionals; they are just people who want to edit easily on the web application.
1:03:39 And you can build these easy-to-use user interfaces to do even sophisticated editing.
1:03:45 So let's don't confuse sophisticated editing with complex user interfaces.
1:03:50 And that's a real challenge, to get that user interface right.
1:03:53 So here is an example, this is a classic one.
1:03:55 This is an organization that allows farmers to edit the distribution of their crops within their properties.
1:04:08 And this is a complex editing workflow because the farmer doesn't want gaps between the polygons...
1:04:15 ...because if there is a gap, they don't get as much money from the government.
1:04:18 And the government doesn't want overlaps between the different crops, because then they need to pay more, right?
1:04:25 So, it's a tricky thing because you need to maintain the topological relationships, all topological relationships.
1:04:30 That's it, so we need a toolbar to edit topological relationships, so we can fix errors and...
1:04:35 ...no, you actually don't, you just need to think about the real problem.
1:04:40 And the real problem in this case, we thought it was like, okay.
1:04:45 Here's the farmer who's going to navigate to his property, and you can see that there's a polygon here...
1:04:50 ...that we want to delineate.
1:04:52 So I'm going to click on this area, and now this is, I recognize this is too much of a GIS term, but let's call it a split.
1:05:01 And then I just digitize my polygon here and this will do it.
1:05:12 There is no overlap or gaps between this feature and this feature.
1:05:17 And now you can change the attributes and so on.
1:05:20 And maybe these two, you need to merge.
1:05:23 So you click that one and you say Merge, and then, boom, you merge them.
1:05:29 So the trick here is that you don't need a topology toolbar, because you don't let the user make any topology errors.
1:05:38 You cannot create errors, so you don't need to fix them.
1:05:41 The only thing you can do is to edit, is to merge, split; merge, split; and things that to the user seem...
1:05:47 ...like adding features are really a split.
1:05:50 In this case, I want to add this building, so you add the building.
1:05:58 That's a polygon with a hole, and within that hole there's another polygon, right?
1:06:03 So, I guess that's where, you know, I want you to think about, it's like, yes, sophisticated web editing...
1:06:08 ...yes, complex or sophisticated UIs. We don't have to...
1:06:19 Okay, in this application we used the geometry service.
1:06:22 The geometry service is another service that you can use as a developer, and it aids editing because it allows you...
1:06:29 ...to do geometry manipulation.
1:06:32 Let me do a quick demonstration so you can see it working.
1:06:36 Allows you to measure distances, three miles.
1:06:39 Allows you to do union, execute union, it unions these two polygons.
1:06:45 Allows you to do an offset off geometry, that's an offset to the inside.
1:06:51 Allows you to execute the convex hole for a collection of points.
1:06:57 Allows you to, let me clear...trim and extend features. Right?
1:07:09 Allows you to autocomplete, so here's my parcel, and I now draw this, boom, autocomplete.
1:07:16 To calculate the difference, okay.
1:07:22 Calculate the intersect.
1:07:25 There you go.
1:07:26 To reshape, right?
1:07:31 So this is just a geometry service, it just manipulates geometries.
1:07:35 So the trick here is, you use this in combination with the feature service, so you get the features to the client...
1:07:42 ...you send them to the geometry service, you do something, you get back then to the client, and then you...
1:07:46 ...put them to the feature service to commit your changes.
1:07:48 This is what we were using for the split and the merge application.
1:07:52 Another one, server object extensions.
1:07:54 This is how you extend ArcGIS Server.
1:07:56 We are not going to get into this, but it's quite powerful and I just want to throw that idea in there.
1:08:01 You can create your own service, and just like the geometry service helps you manipulate geometries, this one can...
1:08:08 ...help you do gazillion things, because you can use fine-grained ArcObjects within these services, and these are...
1:08:13 ...REST-enabled web services that you can create.
1:08:16 Very powerful.
1:08:20 Don't want to give you more about the challenges that you should experience; I think you've got that.
1:08:26 In cases where you really need the sophisticated editing tools, very sophisticated, use ArcMap.
1:08:31 ArcMap can edit over the feature service.
1:08:34 You add the map service to ArcMap, right-click on the map service and say Edit Features Locally.
1:08:39 It will sack the features from the geodatabase over the Internet, create a local copy, you can edit the local copy and then...
1:08:45 ...go back to the map service and say Synchronize changes, and it will use the feature service to push the changes.
1:08:53 Okay, just a few thoughts about architectures.
1:08:56 You are in a trusted environment, where you trust the contributions that people make, and it's a safe environment, an intranet.
1:09:04 You can do nonversioned editing; it's the fastest option, right?
1:09:07 Nonversioned editing, the fastest.
1:09:10 But the trick is that every change that goes in, goes in.
1:09:16 Version editing. I don't trust people; they may add junk to my geodatabase.
1:09:20 I create a version; I call that Web Editing version, and people make all the changes in that version.
1:09:26 And then I can validate the QA/QC in that version, and post changes to the master version as needed.
1:09:33 The next one; not only do I not trust people, I don't even trust the network. This is kind of the...
1:09:37 ...cloudsourcing or VGI applications.
1:09:40 Well, your geodatabase, the one where you make the analysis, don't make edits on that one.
1:09:46 Create a replica, and then make edits on that replica.
1:09:49 You create an isolated geodatabase and feature service, and then you edit that.
1:09:54 This is what we call the contribution geodatabase.
1:09:57 You isolate contributions.
1:09:59 The line that separates the production geodatabase from the contribution geodatabase could be your DMC...
1:10:05 ...or maybe you may want to deploy this off site, in the cloud or on a separate data center.
1:10:13 So you completely isolate the networks. People will not attack your geodatabase because you control this internalization...
1:10:19 ...between the contribution and the production geodatabases.
1:10:22 Do you get the concept? It's easy, right?
1:10:26 Okay, and then Q&A. I'm not sure if we have a lot of time, but quick, quick, quick. You have questions?
1:10:32 Three or four minutes for questions.
1:10:35 Those are some that people often ask, but...
1:10:39 [inaudible audience participation]
1:10:50 Okay, so the question is, do I need a license in the client machine where my application is running?
1:10:55 No, it's just a web browser; you don't need to license anything but the server. The applications...
1:11:01 ...you can use as many as you like.
1:11:04 [inaudible audience participation]
1:11:12 Right, in practice I can create my geodatabase, expose it as a feature service, and create a simple application...
1:11:18 ...on my web browser that anyone can use to edit my geodatabase with no additional licensing on that client.
1:11:24 Yeah. Lots of editors.
1:11:27 [inaudible audience participation]
1:11:30 Okay, if I am editing a feature service through ArcMap, I need an ArcEditor license for ArcMap...
1:11:35 ...and then I can do the editing.
1:11:40 [inaudible audience participation]
1:11:44 Okay. Pooled versus nonpooled. I forgot to mention that, but feature services work with pooled services only.
1:11:50 It's a stateless service.
1:11:52 So, we don't have this notion of long-term sections that we have with the web ADF editing, which still works.
1:11:59 In fact, there is no redo, undo, redo in here.
1:12:03 You make a change, you make a change.
1:12:05 If you want to implement undo/redo, you will need to do that at the application level...
1:12:09 ...but the service doesn't have that concept.
1:12:14 More questions?
1:12:16 [inaudible audience participation]
1:12:21 Yes, attachments...right, a concept of attachment in the geodatabase works with both file geodatabases...
1:12:28 ...and ArcSDE databases, and is new in 10.
1:12:31 In 9.3.1, it doesn't.
1:12:32 By the way, speaking of 9.3.1, all of this you can do with ArcGIS Server 10 against 9.3.1 ArcSDE database.
1:12:40 You don't need to update the database itself.
1:12:45 [inaudible audience participation]
1:12:50 Okay, the template definition is stored in the map document; in the layer, actually, right, Gary? It's the layer.
1:13:01 [inaudible audience participation]
1:13:04 This editing only works...you missed the first slide...this only works against multiuser geodatabases...
1:13:11 ...workgroup or enterprise, but file geodatabases, check files, CAD...no.
1:13:15 No, because those things are not for multi-user editing, those are just for single use.
1:13:23 [inaudible audience participation]
1:13:29 That's application logic, like in the pool permits application, I told you, you cannot edit but what's the feedback that I get, right.
1:13:36 I should have done that in the application.
1:13:42 [inaudible audience participation]
1:13:45 Okay. At this point in 10, we don't have feature-level security.
1:13:52 So once the user can access your feature service, they have add, delete, everything. They can touch any feature.
1:13:59 So you can prevent user A from deleting features from user B with application logic.
1:14:04 But at the service itself, that's something we are working on for the next version.
1:14:09 You can control feature-level and operation security.
1:14:14 But in 10, you get access to the feature service, you get access to...
1:14:21 [inaudible audience participation]
1:14:28 More questions?
1:14:32 [inaudible audience participation]
1:14:37 [inaudible audience participation]
1:14:44 Yes, yes, there are so many things.
1:14:46 So, in 10, when you have a geodatabase relationship...
© Esri 2013 http://www.esri.com