Version 2.0 introduces support for Web editing workflows, a new “feature layer” for working with client-side graphics, support for time-aware layers, an expanded geometry service, and many other new features.
What if I don’t have ArcGIS 10?
Many of the new features are designed to work with the forthcoming ArcGIS 10. If you’re not part of the ArcGIS 10 beta program, you can still get a feel for the API using an ArcGIS 10 sample server that ESRI has made available. All the samples in the online SDK use this sample server.
We wish you happy exploring with the new API and look forward to your feedback.
An updated version of the Flex API 2.0 is now available. The focus of this update is improved editing usability, both for end users and developers. For example, when editing, you can now undo a current edit by using the Esc key. Also, while creating or editing new features, there are tooltips that provide quick help for what to do. Finally, the Editor component has some new properties to allow developers more configuration options, for example easy access to the underlying DrawTool and EditTool.
The AttachmentInspector has been overhauled to show thumbnails of the attachments. It also now allows an attachment to open on click.
In addition, this update has several bug fixes and minor updates for our tools and new components, especially the Editor, TemplatePicker and AttachmentInspector. The updated DrawTool and EditTool, for example, have a “showDrawTips” property.
There are also some API changes for a few property and constant names, and a new renderer supportClass package. See the Change Log page for details.
Please visit the ArcGIS API for Flex 2.0 home page to download the updated version of the Flex API Library.
Contributed by Bjorn Svensson of the ArcGIS API for Flex development team
This week and the next, we will be posting updates to the templates on the Water Utilities Resource Center. Our focus was to expand the templates to include data, cartography and examples for sewer and storm water.
The next release of the templates will have an expanded and updated data model. There are now feature dataset for both the Sewer System and Storm Collection System. We have included these datasets in each the of map documents with sample cartography, scale dependency, label expressions, etc.
We also restructure the Operations and Planning datasets. All operational data, whether it be data for the field or the office, is now in the Operations Dataset. This dataset has been expanded to include layers to support typical activities for Sewer and Storm data maintenance. The Planning dataset is now only used to store and manage the reporting layers. We have also included the results from the CIP template, both decision support results and the CIP project areas, in the core information model. We did this so you can see how storing when you store CIP data in your utilities authoritative data repository in GIS, your analytical results and new CIP projects are available for publication to browser based and mobile GIS applications.
Since many public works departments also operate water or wastewater utilities, we’ve decided that the public works resource center and the water utility resource center should use the same sample data when possible. So you’ll also notice in the newer template sample data some public works feature classes like roads and facilities. We wanted to leave this dataset in the download to show how one Geodatabase, a central source of information, can support many different divisions or departments in a municipality and to show that these templates can be easily expanded to support different or other datasets.
At the time of this blog, we have already posted the first two updated templates, the Water Utilities Mobile Map template and the Water Utilities Network Editing template. These templates have been upgraded and improved to handle the changes to the data model mentioned above. You will see new functions and workflows built around the sewer and storm datasets. Below I will highlight some of the new functions in each template.
In the Water Utilities Network Editing Template, you will find many new improvements and enhancements. Most of these changes were a direct result of your requests. First you will notice that we split up the Attribute Assistant and the ArcMap Toolbars into 2 separate installs. This makes it easier for us to make future improvements and roll them out faster and also allows you to install just one of the components. We heard from a few utilities that had built their own editing toolbar previously that they just wanted the attribute assistant.
When you open ArcMap, you will now find two toolbars. We split the tools into reporting/tracing tools and into editing tools. If you want more details, review the release notes, or you can click shift +F1 on top of any of the tools on the toolbar…yes per your suggestions, we included compiled help for each of the tools!!! The new reporting/trace toolbar has commonly used tracing functions. You can perform an upstream trace, downstream trace, or isolation trace, by just the click of your mouse. There is also an option to Export to Excel the selected feature, or load the selected features into the ID Box.
You’ll also have notice a new table, GenerateID, in the GDB in the updated data model. This table is used to support a new option in the Attribute Assistant, GenerateID. This new option allows you to specify a column in the GenerateID table to use as the ID index. Yup, you can generate unique ID right in ArcMap using whatever incrementing scheme you want. The tool uses the value, combines it with a prefix you specified, then increments the table. There are a few more new options in the Attribute Assistant, so check out the release notes and review the help. There is also a link for the help in the start menu, under ArcGIS Templates. Note, Windows 7 does not support .hlp out of the box, please download the fix.
The Water Utilities Mobile Map now shows both the Water dataset, and the sewer and storm data. We added a new component that lets you toggle between the different datasets. So it is easy now to just look at sewer data or water or storm, or turn all three on. This is presented to the field staff as a single, large button that make toggling between them very easy. We also improved the ID layer list. You can now filter which layers are presented to the user for Identification, making it easier to navigate the drop down list. You will also see the list expands when you click it, again, making it easier for the field personal to select a value. This new version also includes a module to show how to record new data, such as inspections, leak locations, service request, etc. This inspection module can linked to a source asset. Say you are doing a fire hydrant inspection. When you tap or click the hydrant, the inspection module copies information from the hydrant to the inspection record. It does this by matching field names. So it can help automate some of the information that needs to be captured, like ID. Lastly, you will see a module for workorders. This is an example of how you can work with a workorder system. This module read a feature class that stores all the work orders, filters them based on the crew name and present them to the field staff. The workorder module is linked to the activity module, so by opening a workorder, it starts an inspection.
We’re very happy with these new releases, but we’re already looking forward to rolling out more enhancements. With the expanded tools, symbology, data schema and workflows into Sewer and Storm, you now have a starting point for all assets at a water department, sewer utility or public works department.
Please keep in mind, these enhancements came directly from your requests and feedback about the templates, so please keep them coming!
ArcGIS Team Water
10/20/09–As we mentioned in last week’s post about our live training seminar, we had about 150 questions from the audience. Because we couldn’t get to most of them, we promised we’d answer some of them in later posts. Today, we’ll address a few of the functionality questions. First though, the answer to an important general question:
Is this presentation recorded? If yes, where can I find the recorded seminar?
Yes, the seminar was recorded. Access the recording from the Live Training Seminar page.
Do we need the server software to share the webmaps?
No. Sharing your ArcGIS Online Web maps does not require any software. You do need ArcGIS Server to create the services that make up a Web map. However, there are lots of publicly available services you can use in your map. See ArcGIS Online Help for more information about creating and sharing Web maps.
If I update a layer package (say, with additional edits), can I do so without having to delete and add it again in ArcGIS Online?
Yes, you can update a file without having to delete and add it again. You do this through the item properties page in My Content. When you update the file in ArcGIS Online, you decide if you want to maintain the item properties information as displayed in ArcGIS Online (which you may have edited) or use the properties from the uploaded file (which will overwrite any of your edits). See ArcGIS Online Help for more information about updating files.
Can live editing (drawing boxes, lines, on the map) be done while working on online maps, and not use the ‘upload files’ button?
We are currently researching feature editing on Web maps. You will still have to use the Add Item button to add map and layer files. See ArcGIS Online Help for more information on adding your maps and layers.
Is there a file size restriction on files that can be uploaded? Is the limit per account, per map, or per timeframe?
Yes. You can upload items up to 1 GB in size. Each account can have a total of 1 GB worth of stored items. In My Content, each item size is listed so you can track your total storage.
Can you share with a specific individual by emailing that person? Or do they have to be a member of some group?
Yes, you can share your maps via email if they are shared with everybody (which means they are public). Web maps can be shared directly by copying/pasting the URL into an email. Your email recipients will see your actual Web map.
For other types of public items (e.g., Explorer layers, Map documents), you can share the item properties page. You can also share public group description and content pages. See ArcGIS Online Help for more information about creating and sharing URLs.
Can you publish/view legends in ArcGIS Online?
Can I access ArcGIS Mobile Map in ArcGIS Online or share those maps? How about sharing/viewing online maps for mobile applications? How about for a BlackBerry device?
ArcGIS Mobile is a Windows Mobile app only right now and doesn’t currently work with ArcGIS Online map and task services. We are currently researching support for other mobile devices, such as, the iPhone and phones from Blackberry. On a related note, at the 2009 UC, we announced support for an ArcGIS API for iPhone. We also addressed our current support for BlackBerry devices.
We’ll address another set of questions from the seminar audience in a few weeks. In the meantime, take advantage of the forums to ask any questions you have about ArcGIS Online.
Last month the ESRI geodatabase development team revealed their new blog Inside the Geodatabase. Visit this blog to get news and tips about ESRI geodatabases directly from development team members.
The blog is moderated by Product Engineers Brent Pierce and Jonathan Murphy, who have already published a number of posts that you’ll find useful if you work with geodatabases and ArcSDE technology. As an example, check out the recent post Five best practices for maintaining an ArcSDE geodatabase.
Be sure to e-mail Brent and Jonathan your ideas for future posts. Just like with this blog, you’ll need to sign in with your ESRI Global Account to send e-mail.
In this post, Rex Hansen describes how to customize the .NET Web ADF EditorTask control and provides a downloadable sample.
While the EditorTask includes a comprehensive set of out-of-the-box capabilities, many Web editing solutions require customizing the behavior of the EditorTask to satisfy user specific requirements. The EditorTask offers two options for developing a custom solution:
- Using the out-of-the-box EditorTask, add custom functionality by handling EditorTask events in a page.
- Create a custom Web control by subclassing the EditorTask and its child controls.
Option 1 is designed for convenient access to standard EditorTask events in a Web application. Option 2 is more complex, but provides comprehensive access to the implementation details (which includes events) of the EditorTask and its subcomponents. It also enables you to package a Web ADF editing solution as a redistributable custom EditorTask control. In either case, it is important to understand the existing structure of an EditorTask. At run-time the EditorTask creates two visible container controls: the Editor and EditorSettingsPanel. The Editor is a composite control that contains either a VersionIDPanel or a set of editor panels and other controls to edit feature layers. The EditorSettingsPanel is a type of EditorPanel that contains a SnappingPanel and SelectionPanel. The class type and naming of these components will be important when working with EditorTask events or subclassing them in a custom EditorTask control.
Panel Structure and Naming
This section provides a visual guide to the class type and unique control id for notable components packaged with the EditorTask. For each component, the class type is listed above the unique control id, listed in quotes.
If an editable layer is versioned and more than one version is available for editing, the VersionIDPanel will be displayed in the Editor when the EditorTask is initialized at runtime.
The EditorTask contains an Editor which represents the primary visible control that contains other editing controls. The Editor contains a drop down list to select an editable layer. The main toolbar contains a set of tools and commands to manage the selected features in the active edit layer. A set of commands to manage edit operations may be included depending on the type of layer being edited and the map service in which it is accessed. When editing a non-versioned feature layer in a pooled service, the main toolbar will not contain an Undo, Redo, or Save button. When editing non-versioned data in a non-pooled service, the Undo and Redo buttons will not be available (the Save button will be available). The main toolbar can be customized.
The Editor also contains a set of panels to create and modify features and attributes. The CreateFeaturePanel contains one or more tools to create a new feature depending on the active edit layer feature type. It contains a toolbar that cannot be customized. The EditExistingFeaturesPanel contains a number of tools and commands to modify existing features, packaged in two toolbars; GeometryToolbar1 contains items to modify entire features while items in GeometryToolbar2 were designed to manipulate feature vertices. Both toolbars can be customized. The EditAttributesPanel lists the attributes of the current set of selected features. Since only one feature’s attributes can be visible at any time, paging will be enabled when more than one feature is selected. The visibility and editability of attributes can be modified via attribute filtering. The attribute labels and textboxes are generated internally by the EditAttributesPanel and are not available for explicit customization.
The EditorTask also contains an EditorSettingsPanel which can be initialized via the Editor at runtime and is designed to compliment actions initiated by Editor panels. The EditorSettingsPanel contains two panels: a SnappingPanel and SelectionPanel. The SnappingPanel panel provides the ability to change snapping rules and snap tips display at runtime. The SelectionPanel provides the end user with the ability to modify selection behavior when using the select tool in the Editor’s main toolbar. Both panels are not designed to be customized. However, like the Editor, the EditorSettingsPanel is designed to allow the addition and/or removal of panels.
The EditorTask was explicitly designed to support customization in the following distinct, but related categories:
- EditorTask events
- Attribute Filtering
- Custom Editor Tools
- Custom Editor Panels
Recall that there are two options for developing a custom EditorTask solution; handle events on an out-of-the-box EditorTask control or subclass the EditorTask and its subcomponents. Both options are demonstrated in the example provided, within the context of each category.
Option 1 uses an out-of-the-box EditorTask control and EditorTask events within the context of the pagecontrol lifecycle to implement custom capabilities in each category. The diagram below highlights where these categories can be leveraged with Option 1. Note that you can add event handlers during Page or EditorTask control lifecycle events (e.g Init, Load).
Option 2 demonstrates how to subclass existing EditorTask controls, override members, create new custom components, and construct a redistributable EditorTask component. All customization capabilities present in Option 1 are available with Option 2, plus those capabilities that are only available within a subclass solution (e.g. protected members). The diagram below highlights where the implementation of each customization category may occur when extending the EditorTask.
What’s in the sample
To get the sample, download one of the following based on your preference for C# or VB.NET:
Two projects are packaged with the sample:
A class library project (CustomEditorTask_<language>) that contains the classes and content needed to create a custom EditorTask control. Note the following customizations:
- On initial load of the custom EditorTask, attributes for the “Tentative Assessed Parcels”, “Address Points” and “Water Bodies” layers are filtered for display.
- On post tool execute, if a feature was created or modified in the “Tentative Assessed Parcels” layer, the time of the edit is written to respective fields in the feature class.
- The EditExistingFeaturePanel has been replaced by a custom Editor panel. The custom panel subclasses EditExistingFeaturePanel and adds two custom Editor tools, clip features and convert polygon to polyline.
- A set of custom properties on the EditorTask define if map units should be used for snapping. If true, a custom EditorSettingsPanel replaces the existing default panel. The custom panel also contains a custom SnappingPanel which contains the logic necessary to snap using map units (pixel tolerance changes with map scale).
A Web project (CustomEditorTaskWebApp_<language>) that contains two pages and a set of custom components (Editor tools and panels) in the App_Code folder. One page includes a reference to the custom EditorTask control created in the aforementioned project. The other page contains an out-of-the-box Editor task which is customized by handling events on the EditorTask. Both pages handle the release of server context for non-pooled services via a callback when the browser is closed. Note the following customizations to the out-of-the-box EditorTask:
- On initial load of the page, attributes for the “Tentative Assessed Parcels”, “Address Points” and “Water Bodies” layers are filtered for display and applied to the EditorTask.
- A custom CreateFeaturePanel is added to the Editor. It contains a custom tool that references the prepackaged CreateFeature EditorToolServerAction.
- A custom clip Editor tool is added to the existing GeometryToolbar1 in the EditExistingFeaturePanel.
- A custom Editor toolbar and custom Editor command is added to the EditExistingFeaturePanel.
- On pre attribute update, if a field named “UPDATEDBY” exists in the active edit layer and an authenticated user has been defined, add the username as a field value.
- On post attribute update, if update was not successful, return the exception message in an alert box.
- On pre command execute, cancel actions that delete features in the “Address Points” layer.
How to set up the sample
This section explains how to set up the sample after you have downloaded the two projects mentioned above. Before you begin, unzip the Common_CustomEditorTask_<language> zip file into a folder accessible from IIS (e.g. c:inetpubwwwroot).
Set up access to the geodatabase
You must have access to Microsoft SQL Server Express which has been configured for use with ArcSDE Workgroup geodatabases to use the data packaged with the sample. If you use your own data, you will need to change some portions of the sample code to function.
- Assuming you have access to SQL Server Express configured for use with ArcSDE Workgroup geodatabases, open ArcCatalog; under Database Servers click Add Database Server and connect to SQL Server Express.
- Right-click on the SQL Server Express instance and select Permissions. Add the ArcGIS Server container account.
- Right-click the SQL Server Express instance and select Attach. Navigate to the EditParcels.mdf included with the sample (e.g. c:inetpubwwwrootCommon_ CustomEditorTask _CSharpdataEditParcels.mdf). The EditParcels geodatabase should be added to the geodatabase list for the SQL Server Express instance in ArcCatalog.
- Right-click on the EditParcels geodatabase and select Administration>Permissions. Grant the ArcGIS Server container account readwrite privileges.
Configure the map document and create the map service
- Open the EditParcelsDemo.mxd in ArcMap. Note that the data source for every layer is invalid, thus a red exclamation point is displayed next to each layer name. Click (single left mouse button click) on the red exclamation point next to the “Address Points” layer to display the Set Data Source dialog.
- Navigate to the SQL Server Express instance on which the EditParcels geodatabase is available. Select the “EditParcels.DBO.AddressPoints” feature class and select OK. Data sources for all layers in the map document should be repaired. Save the map document. ArcMap should appear as follows.
Open ArcCatalog and add a new map service with the following properties:
Map document: <path to EditParcelsDemo.mxd>
Pooling: Not Pooled, Min instances: 0, Max instances 6
When finished, start the service.
Configure the EditorTask projects
- Open the IIS Manager from Control Panel > Administrative Tools > Internet Information Services (IIS) Manager or Internet Information Services
- In the console tree view on the left, navigate to Local Computer > Web Sites > Default Web Site.
- Open the Common_ CustomEditorTask _<language> folder, right-click the CustomEditorTaskWebApp_<language> folder and click Properties.
- On the Directory tab, click the Create button in the Application Settings section of this panel. Click OK to dismiss the Properties dialog.
- Launch Microsoft Visual Studio 2005 and open the Common_ CustomEditorTask _<language> solution located where you unzipped the file in step 1. (e.g. c:inetpubwwwrootCommon_ CustomEditorTask _CSharpCommon_CustomEditorTask _CSharp.sln).
- In the Solution Explorer, right-click the CustomEditorTaskWebApp _<language> project and select ‘Set as StartUp Project’. Also, right-click CustomEditorTaskPage.aspx and select ‘Set As Start Page’.
- If necessary, set an impersonation identity for the Web application. Right-click on the Web project and select “Add ArcGIS Identity”. Enter the credentials of a user account which has been added to the agsadmin or agsusers group on the SOM (server object manager) where the EditParcelsDemo map service is running.
- Open the CustomEditorTaskPage.aspx in design view and define the connection properties for the single ArcGIS Server Local map resource item in the MapResourceManager.
- Also in design-view, set CustomEditorTask1 control properties to define the map and resource, editable layers (select all) and editable versions (select all).
- Open the StandardEditorTaskPage.aspx and modify the MapResourceManager and EditorTask1 using the same properties defined in the CustomEditorTaskPage.aspx.
- Build the solution. View both Web pages in a browser and use the EditorTask at runtime. The following screenshot shows the CustomEditorTaskPage.aspx at runtime:
Our team recently added a new tutorial to the Web-based help: Creating a Web Editing Application. It’s designed to help you set up a Web application for editing data, and uses the out-of-the-box Editing Task that comes with ArcGIS Server. Along the way, the tutorial discusses:
- How to configure an instance of Workgroup ArcSDE for Web editing
- How to design a map document that will be used in a Web editing application
- How to publish your map to ArcGIS Server
- How to create a Web application with the Editing Task
- How to use the application
Did this tutorial help you? Leave us a comment about your experience.
When the Editor task was released at version 9.2 of the Web ADF for the .NET Framework, a common question was “How can I customize the Editor task?”. Service Pack 2 provides an answer to this question. You can now customize the Editor task with custom tools and Editor Panels and we have added more events that allow you to hook into the Editor task.
In addition to these new customization options for developers, the Editor task has another key change at Service Pack 2 which it allows it to be configured with a pooled map service. You can edit non-versioned data using a pooled map service.
See the Editor Task control discussion in the Developer Help for samples and instructions.