ArcGIS Server

Upcoming Schedule of Web Based GIS Classes

Posted on October 15, 2010. Filed under: AGIS Server API for Flex, ArcGIS Server, ESRI, GeoSpatial Training Services |

Our upcoming schedule of web based GIS courses is below.  All courses have been updated for ArcGIS 10.


Read Full Post | Make a Comment ( None so far )

Clustering with the ArcGIS Server JavaScript API

Posted on September 9, 2010. Filed under: ArcGIS Server, JavaScript |

In this post I will describe how you can use a third party clustering tool in your AGIS JavaScript API applications.  Clustering is an excellent technique for visualizing lots of point data.  We’ve all seen applications where there were so many points that they simply appear as one big blob.  Clustering takes the individual points and groups them into clusters and then renders the cluster as one graphic.

Those of you using either the AGIS API for Flex or Silverlight have easy access to clustering functionality built into the APIs.  However, this hasn’t yet been done for the JavaScript API.  Fortunately, globoserve was provided with the clustering algorithm from ESRI and created a sub-classed GraphicsLayer to provide a third party adding clustering to your applications.  You can get additional information, see a demonstration, and download the Javascript files here.

I downloaded the JavaScript files and incorporated them into a simple application that displays retail customer data as points on the map.  In the first figure I have displayed all the customer locations as points on a map.  This results in a somewhat cluttered display of markers.

Next I applied clustering to the customer points which resulted in a much more appealing display.

The clustering algorithm automatically creates the clusters and then re-creates the clusters as you zoom in.

Let’s spend a little time discussing how you can easily integrate clustering in your application.  Here are the basic steps.

The first thing you’ll want to do is download the JavaScript files that you’ll need.  You can get them here.  There are three files in the download.  The first, Ext.util.DelayedTask-nsRemoved.js is a copy of ExtJsDelayedTask class with its namespace removed.  There is not a whole lot to say about this file so I won’t.  Globoserve discusses this file in a bit more detail.  The second file, esri.ux.layers.ClusterLayer-debug.js does the work of creating the clusters.  In this file, the esri.layers.GraphicsLayer class is extended to create a new class called esri.ux.layers.ClusterLayer.  In your code you basically just create a new instance of ClusterLayer, pass in some parameters, and it does work of creating the clusters.  There is also a “-min” version of this file which cuts down the size of the file for performance reasons.

Now that you’ve downloaded the files you can code your application to take advantage of the clustering.  There are a couple requirements.  First, the clustering algorithm uses the basemap’s tiling scheme for  its “grid” which means you will need a tiled basemap.  The WKID of the features being clustered should also be one of the following:

  • Projected: 102100, 102113
  • Geographic: 4326, 4269, 4267
  • Or matching the WKID of the basemap

On to the code.  I’ve created a displayCustomers() function which executes when the user clicks the Display button.  Inside this function I first create a QueryTask object that points to my customer layer.  This is a tiled map service.  I also create a Query object and set several parameters.  This Query object acts as input to the QueryTask object.  Here we have defined parameters to return the geometry of the features, return all records (1=1) and specified that we’d like to return the Address and LastName fields.  This is highlighted in green in the figure below.

Once the QueryTask has finished executing a featureSet is returned to the callback function which creates a new ClusterLayer object.  Several parameters are supplied for the creation of this object.

  • map – refers to an esri.Map objects from the AGIS API
  • features – this is just a reference to the featureSet that was returned from the QueryTask execution
  • infoWindow – configuration options for the infoWindow that will appear when you hover over each individual graphic point.  You can see an example of this below.
  • flareLimit – the number of “flare graphics” that can appear around a cluster (default is 20)
  • flareDistanceFromCenter – the distance in pixels that the flare graphics appear from the center of their cluster.

From there we simply call Map.addLayer passing in our new instance of the ClusterLayer object.  That’s pretty much all there is to it.  I’ve included some screenshots below to show the flaring and infoWindows.  Once again, thanks to Adam at globoserve for creating this really useful functionality that many of you will no doubt use in your applications.

The next session of our Mastering the ArcGIS Server JavaScript API begins October 4th, 2010.  We still have seats available.

Read Full Post | Make a Comment ( None so far )

Introducing the ArcGIS Server Mastery Club

Posted on September 3, 2010. Filed under: AGIS Server API for Flex, ArcGIS Server, ArcGIS Server for Silverlight, ESRI, GeoSpatial Training Services, JavaScript |

GeoSpatial Training Services is excited to announce the immediate availability of the ArcGIS Server Mastery Club!

This is our most exciting product to date for anyone looking to develop custom ArcGIS Server applications with any or all of the ArcGIS Server REST APIs including Flex, JavaScript, and Silverlight.

In our new ArcGIS Server Mastery Club you have 24 x 7 access to all our ArcGIS Server course materials including Introduction to ArcGIS Server, Basic ArcGIS Server Concepts for Developers, Programming the ArcGIS Server API for Flex, Mastering the ArcGIS Server JavaScript API, and Programming ArcGIS Server with Silverlight.

We provide serveral pricing options:

  • Single User Monthly Subscription $59.00
  • Single User Annual Subscription $799.00
  • Unlimited Users Annual Subscription $2999
  • Academic Unlimited Users Annual Subscription $1999

In addition to all the great content that you can access today you will also have immediate access to all future courses that we develop for the ArcGIS Server platform.  In early 2011 we expect to release two new courses that will be part of the club: Integrating Social Media with ArcGIS Server Applications, and Developing GIS Applications for the iPhone and iPad.

What comes with the ArcGIS Server Mastery Club?

  • Complete access to all our ArcGIS Server course materials including
    • Introduction to ArcGIS Server
    • ArcGIS Server Concepts for Developers
    • Programming the ArcGIs Server API for Flex
    • Mastering the ArcGIS Server JavaScript API
    • Programming ArcGIS Server with Silverlight
  • Immediate access to new course materials as they come online
    • Integrating Social Media with ArcGIS Server Applications (coming in late 2010 or early 2011)
    • Developing GIS Applications for the iPhone and iPad (2011)
  • 24×7 access to all lectures, exercises, capstone projects, and more
  • Access to over 1,000 pre-recorded audio lecture slides
  • Access to 60 exercises covering all the REST development platforms (Flex, JavaScript, Silverlight)
  • New exercises added every month
  • Article digest containing articles of interest for ArcGIS Server developers
  • Guest interviews with subject matter experts
  • 24×7 discussion forums for communicating with other members and moderators
  • Integrated chat for communicating with members and moderators
  • Code examples
  • Work with others in the club to develop custom, live applications
  • Learn from the comfort of your home or office, at the time of your convenience
  • Group application development projects to refine skills
  • Application development contests
  • Job board
  • Recommended books and websites
  • Get education credits toward your GISP certification
Read Full Post | Make a Comment ( None so far )

User Interface Creation Made Easy with ArcGIS Server JavaScript API and Dojo

Posted on August 19, 2010. Filed under: ArcGIS Server, ESRI, GeoSpatial Training Services, JavaScript |

One of the most difficult tasks for many web developers building GIS applications is designing and creating the user interface.  The ArcGIS Server API for JavaScript and Dojo greatly simplifies this task.  Dojo’s layout dijits provide a simple, efficient way to create application layouts and ESRI has provided a number of sample application layouts that you can use to get up and running quickly.   The AGIS JavaScript API also provides Draw, Edit, and Navigation toolbars that you can use to quickly embed commonly used tools in your application.  In this post we’ll examine how you can quickly build your application layout using these tools.

BorderContainer Dijit
Since the AGIS API for JavaScript is built directly on top of Dojo you automatically have access to the user interface libraries including layout dijits such as BorderContainer.  BorderContainer serves primarily as a container for other child containers and can be one of two design types: headline or sidebar.  You define the design type using the ‘design’ attribute as seen in the code examples below.  In either case, whether you define a design type of headline or sidebar is split into as many as 5 different regions: top, bottom, right, left, and center.  Each region is normally filled by a Dojo layout element.

Note: Not every region has to be filled by a layout element.

In the first code example, we are defining the design to be of type ‘headline’ which results in the general configuration that you see below with the ‘top’ and ‘bottom’ regions stretching across the entire width of the screen space.  In this case you only need to set the ‘height’ property for the top and bottom regions.

In the second code example we define the design as ‘sidebar’.  With the sidebar design the left and right regions expand to take up 100% of the height of the window, sacrificing the area available to the top and bottom regions.  In this case you only need to define the width style property since the height will always be 100%.

In either case the center region will conform to fit the amount of space available based on the sizing of the other regions.

Child Elements of BorderContainer
Each region of a BorderContainer (top, bottom, left, right, center) can be filled by a Dojo layout element.  These elements are AccordionContainer, ContentPane, SplitContainer, StackContainer, and TabContainer.  You can also created nested BorderContainers to further divide the available layout space.

Child elements are placed inside a region through the use of the ‘region’ attribute as seen below.  Notice in the yellow highlighted section that the ‘region’ attribute is set to ‘left’.  This will create a ContentPane in the left region.  A ContentPane is a very basic layout element and is used as a container for other widgets.  In this case it is going to hold a TabContainer (green highlighted code).

The other child layout elements that can be placed inside a BorderContainer include AccordionContainer, SplitContainer, and StackContainer.

AccordionContainers hold a set of panes whose titles are visible, but only one pane’s content is visible at a time.  As the user clicks a title, the pane contents become visible.  These are excellent user interface containers that can hold a lot of information in a small area.

StackContainers resemble books where only a single pane of information is available at a time.  Users can page through various panes of information.

Finally, a SplitContainer is a container that contains multiple children.  All the children are displayed side by side either horizontally or vertically with a bar in between.  The bars can be dragged to change the relative size of the child areas.

There are a number of other design considerations which you should take into account.  ESRI has done a great job of defining those here near the bottom of the page.

Sample Layouts from ESRI
ESRI has provided a number of sample layouts that you can use to get started in the layout of your application.  Go to the ArcGIS API for JavaScript Samples and click Layouts on the left hand side to see the available layouts.  If you see one you like you can easily copy and paste the code into your application files to get started.  Spend some time getting to know the various options provided by BorderContainer and its child layout elements.

ESRI also provides toolbar helper classes that enable you to easily add in navigation, drawing, or editing functionality.  These toolbars aren’t user interface components that you simply drop into your application, but are instead helper classes that make creating the toolbars a snap to create and add to your interface.  For now we’ll just take a look at adding a navigation toolbar to your application.  There are several steps to adding the toolbar, but all are quite simple.

First you’ll want to add in the references that you’ll need to implement this functionality.

You need a reference to the navigation toolbar along with a reference to dijit.Toolbar and dijit.form.Button.  Each of the tools in the toolbar is actually a Dojo Dijit Button that is contained within a Dojo Dijit Toolbar.

Next we’ll define the icons that will be used for each of our buttons.  This can be done through CSS styling as seen below.  Here we are defining the images to be used along with their width and height.

Finally, we create the toolbar through the use of dijit.Toolbar which is defined inside a ContentPane in the ‘top’ region of our BorderContainer.  You can see this in the code below.  In the yellow highlighted code we are creating an instance of dijit.Toolbar called ‘navToolbar’.  This new toolbar is located inside a ContentPane called ‘toolbar-container’ which is a child layout element of BorderContainer.  This code is highlighted in green.

Inside our toolbar (‘navToolbar’) we create a series of dijit.form.Button objects that correspond to the type of function that should be performed by that tool.  I’ve highlighted one example of this in the code below.  This is the Zoom In tool that a user can click and then drag a rectangle on the map to zoom to a new extent.  This tool is defined as type dijit.form.Button.  The ‘onClick’ event is particularly important here because it references back to the esri.toolbars.navigation reference that we defined earlier.  This actually defines what type of functionality should be provided by this button.  In this case, esri.toolbars.Navigation.ZOOM_IN.  The ‘iconClass’ attribute is used to reference back to the style we created earlier which contains the icon that will be used for the button.

So, all of that results in a toolbar.

It’s really quite simple.  You no longer have to worry about writing basic navigation code such as creating the rectangular zoom box, zooming to the extent defined by the user, and other basic navigation functionality that most web mapping applications need.  The AGIS JavaScript API handles all that.  You just need to worry about hooking everything up.

More information about the ArcGIS Server JavaScript API?  The next session of our Mastering the ArcGIS Server JavaScript API course begins October 4th, 2010.  Only $567 when you register before August 31st.

Read Full Post | Make a Comment ( None so far )

Introducing the ArcPy.Mapping Module in ArcGIS 10

Posted on August 2, 2010. Filed under: ArcGIS Server, ESRI, Geoprocessing, GeoSpatial Training Services, Python |

The ArcPy.Mapping module is new to ArcGIS 10 and brings some really exciting features for mapping automation including the ability to manage map documents and layer files as well as the data within these files.  Support is also provided for automating map export and printing as well as the creation of PDF map books and the publication of map documents to ArcGIS Server map services.  I’m going to be writing a series of posts of the next few weeks covering some of the functionality provided by this module.

ArcPy.Mapping scripts can be run from a variety of environments just like any other geoprocessing script that you’ve developed with Python for use with the ArcGIS geoprocessor.  The new Python Window in ArcMap is a great interface for writing and testing small code blocks.  Once tested, these code blocks are often moved into stand-alone Python scripts which can be executed from an IDE such as PythonWin, IDLE, or Wing, but they can also be executed from custom script tools in ArcToolbox, the command line or as scheduled tasks.  Many people choose to attach their scripts to script tools in ArcMap or ArcCatalog to provide a visual interface for the scripts within the familiar ArcGIS Desktop environment.  Finally, scripts can also be published as geoprocessing tasks in ArcGIS Server.

Before you can actually perform any operations on a map document file you need to get a reference to it in your Python script.  This is done by calling the MapDocument() method on the arcpy.mapping module.  You can reference either the currently running document or a document at a specific location.  To reference the currently active document you simply supply the keyword “CURRENT” as a parameter to the MapDocument() function.  This gets the currently active document in ArcMap.  To reference a map document on disk you simply supply the path to the map document as well as the map document name as a parameter to MapDocument().  The two code examples below illustrate each of these operations. 

Get the active map document:

Get a map document on disk:

In today’s post I’m going to cover a number of the new list functions provided by Arcpy.Mapping.  There are a number of list functions provided by Arcpy.Mapping.  Each of these list functions returns a Python list which is a highly functional data structure for storing information.  Normally, the list functions are used as part of a multi-step process where creating a list is only the first step.  Subsequent processing in the script will iterate over one or more of the items in this list.  For example, you might obtain a list of broken data links in your map document file and iterate over these links, fixing each as you progress. 

The ListLayers() function returns a Python list of all the layers within an mxd file, a data frame within an mxd file, or a layer file.  As with all other list functions you can iterate this list through the use of a ‘for’ loop which cycles through each element in the list. 

ListDataFrames() returns a Python list of data frames in a map document file.  An integer index value can be used to access an individual data frame or you can test for a specific data frame name before applying further processing to the data within the data frame.  You can also use a wildcard to filter the data frames that are returned.

Data sources in your map document files are often broken due to data being deleted or moved to a new location.  The result can be broken data sources in many map document files.  ListBrokenDataSources() returns a list of layer objects that have a broken data connection.  In ArcMap, a broken data connection is signified by the red exclamation point just before the layer name.

Typically, the ListBrokenDataSources() function is used as the first step in a script that iterates through the list and fixes the data source.   In a future post I’ll show an example script that lists and fixes broken data sources.

ListTableViews() returns a list of Table objects in a map document.  You can use a wildcard to return a filtered list of tables.

ListLayoutElements() returns a list of Layout elements in the form of various Layout classes.  Each element can be one of: GraphicElement, LegendElement, PictureElement, TextElement, MapSurroundElement, or PictureElement.  I’ve outlined some of these layout elements below.

ListLayoutElements() is a versatile function which in its most basic form is used to return a list of all the layout elements on the page layout of a map document.  However, there are two optional parameters that you can supply to filter this list.  The first type of filter is an element type filter in which you specify that you only want to return one of the layout element types seen on this slide.  You can also apply a wildcard to filter the returned list.  These two types of filters can be used in combination.  For example, in the code example below we are specifying that we only want to return LEGEND_ELEMENT objects with the name “Legend Crime”.  This would likely result in a highly filtered list.

In the next post in this series you’ll learn how to fix broken data sources based on a list generated by the ListBrokenDatasources() function.

The next session of our Internet based, instructor led course, GIS Programming 101: Mastering Python for Geoprocessing in ArcGIS begins October 25th.  This course is only $499 when you register by August 31st.  The regular price of this course is $667.

Read Full Post | Make a Comment ( 2 so far )

2010 Schedule of Internet Based, Instructor Led Courses

Posted on July 26, 2010. Filed under: AGIS Server API for Flex, ArcGIS Server, ArcGIS Server for Silverlight, GeoSpatial Training Services, JavaScript, Python |

Below you will find our schedule of Internet based, instructor led courses for the remainder of 2010.

Programming ArcGIS Server with Silverlight
August 30th – October 8th
October 18th – November 30th

Early registration for the August 30th session ends July 31st.  Course fee is $499 if you register before this date.

Programming the ArcGIS Server API for Flex
August 9th – September 17th
October 4th – November 12th

Last week to save on August 9th session.  Course fee is $615 before July 31st and $715 after.

Early registration for the October 4th session is only $499.

Mastering the ArcGIS Server JavaScript API
August 9th – September 17th
October 4th – November 12th

Last week to save on August 9th session.  Course fee is $615 before July 31st and $715 after.

Early registration for the October 4th session is only $499.

ArcGIS Server Bootcamp
September 7th – October 29th

Last week to save on early registration!

GIS Programming 101 for ArcGIS 10
October 25th – November 19th

Read Full Post | Make a Comment ( None so far )

Last Week to Register for ArcGIS Server Summer Classes

Posted on June 1, 2010. Filed under: AGIS Server API for Flex, ArcGIS Server, ArcGIS Server for Silverlight, ESRI, GeoSpatial Training Services |

Next week, three of our instructor guided, Internet based courses on ArcGIS Server are beginning. You still have time to register, but we’re running out of seats.

We still have 6 seats available for our ArcGIS Server Bootcamp. Beginning June 7th and ending in late August this self-paced, instructor led, Internet based course will teach you all the fundamental skills you need to fully take advantage of the new ArcGIS Server 10 platform. The course is self-paced and is designed to accomodate busy work and family schedules as well as summer vacations.

Also beginning next Monday, June 7th are our Programming the ArcGIS Server API for Flex and Mastering the ArcGIS Server JavaScript API courses. We only have 4 seats remaining for the Flex course!

Also beginning in June is the first session of our Programming ArcGIS Server with Silverlight course which begins June 21st. These seats are selling rapidly. The course is still on sale for $667.00 through June 5th.

Other Internet based, instructor led courses this summer:

GIS Programming 101: Mastering Python for Geoprocessing in ArcGIS (Updated for ArcGIS 10).
Begins July 19th.

Programming ArcObjects with .NET
Begins July 19th.

Read Full Post | Make a Comment ( None so far )

Summer Training Schedule

Posted on May 12, 2010. Filed under: AGIS Server API for Flex, ArcGIS Server, ArcGIS Server for Silverlight, ESRI, GeoSpatial Training Services |

We’ve rounded out our Summer 2010 Internet based, instructor led training schedule.

Programming the ArcGIS Server API for Flex
Next Session: June 7 – July 16

Updated for ArcGIS 10 and API 2.0 for Flex

Mastering the ArcGIS Server JavaScript API
Next Session: June 7- July 16
Updated for ArcGIS 10 and API 2.0 for JavaScript

Programming ArcGIS Server with Silverlight
Next Session: June 21st – July 23rd

ArcGIS Server Bootcamp
Next Session: June7 – August 27
Only 9 Seats Left

GIS Programming 101: Mastering Python for Geoprocessing in ArcGIS
Next Session: July 19th – August 13th
Updated for ArcGIS 10

Programming ArcObjects with .NET
Next Session: July 19th – August 13th

Read Full Post | Make a Comment ( None so far )

Query Data with the ArcGIS Server API for Flex

Posted on May 10, 2010. Filed under: AGIS Server API for Flex, ArcGIS Server, GeoSpatial Training Services |

The next session of our Programming the ArcGIS Server API for Flex class begins June 7th.  There are still seats available.

ArcGIS Server can perform a number of different tasks.  In this article we will introduce the Query Task and you’ll see how it can be used with the ArcGIS Server API for Flex to query data in a map service.  A Query Task can be an attribute, spatial, or combination query that can be performed against the data layers in a map service.  Some examples would perhaps be illustrative at this point.  An attribute query might search for all land parcels with a valuation of greater than $100,000.  A spatial query could be used to find all land parcels that intersect a 100 year floodplain, and a combination query might search for all land parcels with a valuation of greater than $100,000 and whose geometry intersects the 100 year floodplain.

A Query object is used as input to a QueryTask and is defined by properties including geometry, where, and text.  The geometry property  is used to input a geometry that will be used in a spatial query and will be a point, line, or polygon geometry.  The where property is used to define an attribute query while the text property is used to perform a where clause containing a ‘like’ modifier.  The Query object can also contain a number of optional properties including the ability to define the fields that will be returned as a result of the query, the output spatial reference for the return geometry, and the actual geometry of the features that meet the query conditions.

Once you’ve defined the input properties in a Query object you can then use QueryTask to execute the query against a layer. You must provide a pointer to the layer that will be queried.  This pointer should be an integer based value.  Notice in the code example on this slide that we are pointing to the 6th layer in the ESRI_CENSUS_USA map service.  Although the integer shows a value of 5 it is actually the sixth layer since it is a zero based array.  In other words, the first layer has an integer value of 0.  Execute returns a FeatureSet object that contains the results of the query and these features are processed through a callback function which is specified in the execute( ) method.

As I mentioned earlier, the results of a query are stored in a FeatureSet object which is simply an array of Graphics which you can then plot on your map if you wish.  Using this object you can set field aliases for the returned fields as well as a display field name.
Here we provide a demonstration of using the query object in the ArcGIS Server API for Flex as well as the code that was used in the demonstration.  The code for this demonstration is provided by the ESRI Samples site.
Attribute queries can be specified using one of two properties on the Query class.  The ‘text’ property searches the display field of your layer in a literal fashion.  It functions as a ‘like’ operator.  The ‘where’ property is used to define a traditional where clause for your query.
Spatial queries use the geometry property to apply a spatial filter to the query.  The geometry used as input will need to have been determined before the query is executed.  In addition, a spatialRelationship property is also used to apply a spatial relationship to the input geometry with SPATIAL_REL_INTERSECTS being the default if not specified.  As you can see from the figure below there are many spatialRelationship tests that you can apply to filter your data based on a spatial relationship.
You can restrict the data returned by a query in a number of ways.  The fields, spatial reference, and geometry can all be restricted.  For performance reasons you should try to limit the fields returned by the query through the use of the outFields property.  This is simply a set of field names provided within an array.  To return all fields you can use an asterisk as a wildcard.  As I mentioned, you should attempt to limit the fields returned to only those that you will use as it will increase the performance of your application.  Depending upon your application you may or may not want to return the geometry of each feature that matched the query.  Using the returnGeometry property you can specify a true or false value to indicate whether or not you wish to return the geometry for each feature.  If you don’t need to plot the geometry on your application by all means do not return the geometry as it will increase the performance of your application.  You can also specify the spatial reference for any returned geometry through the outSpatialReference property.
Since queries return data sets you will often use the results of the queries in data binding.  For example, you may want to populate the contents of a grid with the information returned from a query.  Flex data binding provides an easy way of doing this without a lot of coding.  Data binding is a Flex feature, not an ArcGIS Server API for Flex feature, but you can easily put it to use in your applications.  Essentially, data binding is a way of passing information around in your application in a sort of publish-subscribe pattern.  Data is published in one way or another such as the result of a QueryTask, and then one or more components in your application can monitor for this data and consume it when it becomes available.

In the figure below you’ll see a depiction of how data binding can be used with queries in Flex.  Here, the FeatureSet returned by our QueryTask is bound to a Flex grid component.  The contents of the grid will automatically be populated with the contents of the FeatureSet without the need for a lot of coding.  As you can see from the code snippet, data binding is accomplished through the use of curly braces that surround the data to be bound to the component.  Data binding in Flex is specified with these curly braces.

As I mentioned, curly braces are used to define the binding between a data source and the component that it will be bound to.  In the example code below we are binding the results of a QueryTask to a Flex DataGrid.
Read Full Post | Make a Comment ( None so far )

New Course: Programming ArcGIS Server with Silverlight

Posted on May 6, 2010. Filed under: ArcGIS Server, ArcGIS Server for Silverlight, GeoSpatial Training Services |

GeoSpatial Training Services is pleased to announce the availability of a new instructor guided, Internet based Virtual GIS Classroom course entitled “Programming ArcGIS Server with Silverlight“. With our unique combination of hands-on exercises, Flash based lecture materials containing audio, video, code samples, and demonstrations you will be creating next generation web-based GIS applications in a matter of days using Silverlight with ArcGIS Server.

Course Modules

  • ArcGIS Server for Developers
  • What is Silverlight?
  • ESRI ArcGIS Silverlight API Introduction
    • Adding Maps and Layers
    • Creating Base Maps with ArcGIS Online
    • Adding Layers
    • Map Navigation
    • Navigation Tools
    • Map Events
  • Adding Graphics
    • Creating a Graphics Layer
    • Using a Graphic Feature
    • Adding Maptips
    • Drawing Graphics
    • Adding a Feature Layer
    • Working with Symbols and Renderers
  • Working with Tasks
    • Query
    • Find
    • Identify
    • Address Locator
    • Geometry Services (Buffering, Measurements, Selections)
    • Geoprocessing
    • Routing
  • Using Bing Maps
  • Working with Expression Blend 3
  • Capstone Project

The first session of this course will be taught June 21st through July 23rd.

Cost is $567 if you register before May 15th. Regular price for this course will be $715.

You may also register by downloading the registration form and sending back to use via one of the methods listed on the registration document.

We do accept purchase orders!

Read Full Post | Make a Comment ( None so far )

« Previous Entries Next Entries »

Liked it here?
Why not try sites on the blogroll...


Get every new post delivered to your Inbox.

Join 48 other followers