GeoSpatial Training Services

Want to Build ArcGIS Server Applications without Programming?

Posted on August 10, 2011. Filed under: AGIS Server API for Flex, GeoSpatial Training Services |

The ArcGIS Server Viewer for  Flex provides an excellent framework for creating web GIS applications without the need for programming experience!  Anyone can build attractive, functional web applications with just a little knowledge of how the ArcGIS Server Viewer can be controlled through the use of XML configuration files.  These configuration files can be edited in any text editor and control everything from the appearance of the application to the layers that are included in the viewer as well as the widgets that are available to the user.

To help you in getting started with building your ArcGIS Server Viewer applications we are releasing Introduction to the ArcGIS Viewer for Flex as a free learning module.  This is the first module in our Programming the ArcGIS Server API for Flex course.  This has been a very popular course over the past two years and has now been updated for version 2.4 of the Flex API.  The next session begins August 29th and includes the course modules you see below.  This is a self-paced, web-based, instructor guided course.  One year of access to all course materials is included so you can review as necessary.  This also includes any course updates that occur during the year.

The free module also includes 5 exercises.  These exercises are in pdf format and can be found below the list of course modules.

  • Introduction to the ArcGIS Server Viewer for Flex
  • ArcGIS Server for Developers
  • Basic Concepts of the ArcGIS Server API for Flex
  • Flex and ActionScript Basics
  • Advanced Concepts of the ArcGIS Server API for Flex
  • Using Bing Maps with the Flex API
  • Creating Custom Widgets for the ArcGIS Server View for Flex

Exercises for Introduction to the ArcGIS Server Viewer for Flex:

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

Free Course – Programming ArcObjects with VBA

Posted on August 5, 2011. Filed under: ArcObjects, GeoSpatial Training Services |

Although VBA is still available if needed at ArcGIS 10 it will not be supported at release 10.1.  You can read more about this here and here.  We’ve decided to go ahead and retire our Programming ArcObjects with VBA course and make it available free of charge as a self-paced course.  I know there are still a lot of you working on ArcGIS Desktop 9.3 so hopefully this will help those of you still working with that release.

This course is broken into two sections: Introduction to VBA for ArcMap and Introduction to ArcObjects.  They are meant to be taken in sequence.  Exercises for the course come from the book Getting to Know ArcObjects which you’ll need to purchase if you intend to complete the exercises.  However, the lectures provided above are free for all to use.

For more information on other courses please visit our website.


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

August Sale on Self-Paced GIS Training Bundles

Posted on July 31, 2011. Filed under: GeoSpatial Training Services |

During the month of August you can save up to $100 on our self-paced GIS training bundles.  Bundling our self-paced courses is an excellent way to obtain training in several different subjects while getting a great discount on registration fees. Our current selection of software training bundles include:

Our self-paced GIS Training provides a fast, easy, inexpensive, and highly effective method for acquiring GIS skills. Here are some of the key features of our self paced training:

  • Courses are delivered through our Virtual GIS Classroom
  • What is the Virtual GIS Classroom? You can view a sample class here.  Click “Login as a guest”
  • One year of access for each course registration
  • Bound hard copies of the lecture notes are available for a small additional charge.  These are excellent resources if you need to take notes while watching the lectures.
  • Courses can be taken from anywhere that you have an Internet connection.  No special software is needed.
  • An average of 40 hours training with each full length GIS course.
  • Exercises and data included with each full length course to give hands-on experience with the software.
  • GIS courses offered in a variety of formats including full length courses, chapter length courses, and job aids.
  • Compatible with PCs and Mac
  • GIS training delivered by experts in both audio and video – Anyone can learn regardless of your learning style (auditory or visual)
  • You can repeat lessons anytime you like, from anywhere you like (you can’t do that with classroom training).
Read Full Post | Make a Comment ( None so far )

GIS Salary Survey Results

Posted on July 27, 2011. Filed under: .NET, AGIS Server API for Flex, ArcGIS Server, ArcGIS Server for Silverlight, ESRI, GeoSpatial Training Services, JavaScript, Open Source GIS, OpenLayers, PostGIS, Python |

We’re keeping the survey open through July 31st.  If you haven’t already participated in the survey please take a few moments to do so and forward this to your colleagues.

To date we have had 731 respondents.  Here are some of the highlights:

  • 40% of respondents list their job titles as either GIS Analyst or GIS Technician.  16% are GIS Managers/Coordinators/Directors, and 6% GIS Developers/Programmers.
  • 40% of respondents have 10 years of experience or greater.
  • 43% have a Master’s degree or higher.  Should You Get a Master’s Degree in GIS?
  • 70% of respondents are male.  I suppose this is better than it was 10 years ago, but we really need to attract more women to the field.
  • 41% of you are between the ages of 30-39.  24%  are between the ages of 40-49.  Less than 2% are above the age of 60.
  • Salaries appear to be widely dispersed with 29% between $50,000-$70,000/year.  I was surprised to see almost 13% below $20,000/year.
  • ESRI is far and away the most popular platform with 93% of respondents indicating this as one of their primary platforms.  This question allows more than one platform to be selected.  Open Source GIS software came in second at 14%.  I suspect this will grow quite a bit in the coming years.
  • Primary programming languages in use include .NET (55%), Python (50%) , JavaScript (27%), Java (20%), and Flex (17%).  You can learn more about Python, JavaScript, and Flex through our training classes.

You can get all the results here.

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

Web Mapping Programmers Bundle

Posted on July 15, 2011. Filed under: ArcGIS Server, GeoSpatial Training Services, Google Maps, Open Source GIS, OpenLayers |

Today we are pleased to announce that our Web Mapping Programmers Bundle is now available for purchase.

This is a set of four self-paced, web based courses focused on developing web mapping applications with three of the leading JavaScript APIs.

Courses include:

This bundle of courses will be made available on Monday, July 18th.  Links to each of the courses will be sent out on that date.

Through July 22nd you can pre-purchase this bundle for $299.00.   After July 22nd the bundle will sell for $399.00.

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

Reminder: ArcGIS Server Bootcamp Early Registration Ends Today

Posted on June 24, 2011. Filed under: ArcGIS Server, GeoSpatial Training Services |

The next session of our ArcGIS Server Bootcamp begins July 11th and runs through August 19th.  The early registration price of $615 is good through June 25th.  The regular course price is $999.

We still have seats available.

We do accept purchase orders.  Payment does not have to be made by today in these cases.  We just need the registration form or you
can pay online at the course web page.

This is a self-paced, instructor guided course.  You do have access to the course for a full year so you can go back and review as necessary or take some extra time to complete the materials if your schedule doesn’t allow you to finish during the course session.

During your one year of access to the course materials you also receive any updates to the course free of charge.  This will include our Introduction to Managing ArcSDE course materials slated for completion late this summer.

The bootcamp currently consists of two sections (soon to be 3 with the addition of our ArcSDE

  • Introduction to ArcGIS Server
  • Custom ArcGIS Server Developer (includes your choice of Mastering the ArcGIS
    Server JavaScript API, Programming the ArcGIS Server API for Flex, or
    Programming ArcGIS Server with Silverlight)
  • Introduction to Managing ArcSDE (coming late this summer)
Read Full Post | Make a Comment ( None so far )

Working with the Popup Widget in the ArcGIS Server API for JavaScript

Posted on June 13, 2011. Filed under: ArcGIS Online, ArcGIS Server, GeoSpatial Training Services, JavaScript |

The new Popup widget, provided with the 2.3 release of the ArcGIS Server API for JavaScript can be used as a replacement for the default info window.  This new widget provides an attractive alternative to the info window complete with navigation tools that allow you to move through the selected features, zoom to a selected feature, highlight the selected feature, and maximize/minimize,close the window.

You can also customize the look of the window as well as the content.  In this post you will learn how easy it is to programmatically add this new widget to your application.  You can also use the map viewer to create popup windows.  This post is the first in a three part series.  This first post will cover the basics of adding a Popup window to your application while the second and third posts will cover advanced customization topics.

For this series of posts we’ll review several Popup samples which can be found here, here, here, and here.

Reference the Widget
You’ll first want to add the popup stylesheet to your application as seen below:

Next, reference the Popup widget using dojo.require.

Creating the Popup
The constructor for a Popup widget takes two parameters: options and an HTML source reference to where the popup will be placed.  The ‘options’ parameter is optional and can be used to customize the look of the popup window.

In the code example below you’ll see that we simply provide a ‘null’ reference for the options object.  This simply means that we’ll use the default options provided by the Popup.  The srcNodeRef is going to be a <div> container that we create to hold the content.

The second line of code highlighted below indicates that when the map is initially created the new Popup widget, stored in a variable called ‘popup’, will serve as the info window for the application.

Finally, the method is used to define where the popup will appear which in this case is the <div> container that we created.  Place the popup under the map’s root element. This ensures that the coordinate space used by the popup for positioning aligns with the map’s coordinate space.

Adding just the lines we’ve already discussed is enough to create a basic Popup window.  Many times that’s all you need for your application, but you can also customize not only the look of the window but also the content.

Formatting with the PopupTemplate Class
Popup content can be formatted using the PopupTemplate class.  PopupTemplate inherits from the InfoTemplate class.  A code example showing how to create an instance of PopupTemplate is provided below.  This object can be used to create a title and description for the window along with a means for defining the fields that should be visible along with their labels and formatting.  You can also define whether attachments should be visible (showAttachments:<boolean>) as well as images, charts, and other media that will be part of the window.  We’ll examine some of these advanced customization techniques in our second post.

In this code example above we’ve simply defined a title for the window along with the fields that will be visible and stated that we want attachments to be loaded if they exist.

A PopupTemplate is then referenced from the ‘infoTemplate’ option when defining a new FeatureLayer as seen in the code example below.

In the next post we’ll examine several ways that you can customize the look and content of your popup windows.

Want to learn more about creating ArcGIS Server applications with the JavaScript API?  The next session of our Internet based, instructor guided course Mastering the ArcGIS Server JavaScript API begins August 29th and runs through September 30th.

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

Using the Google Maps Elevation Service

Posted on May 31, 2011. Filed under: GeoSpatial Training Services, Google Maps |

The Google Elevation Service provides elevation data for points on the surface of the Earth as well as sampled elevation data along paths.  The ElevationService object is used to communicate with the service.

The process of obtaining elevation data about a location or path is similar to that of the geocoding process.  A request object which can be either a LocationElevationRequest or PathElevationRequest object is created and passed to the ElevationService object.

Results are returned in the form of an ElevationResult object.  The Elevation Service is asynchronous so you must provide a callback function to process the results that are returned.  There is also an ElevationStatus object that you can query to determine the results of the request before further processing.

In this exercise you will learn how to use the Google Elevation Service to display the elevation profile of a polyline drawn across a map.  In addition to the Google Maps API this exercise also uses the Google Visualization service to handle plotting the elevation profile in a chart.  In addition to charting the elevation profile you’ll also write code to place Markers for each map click and also draw a polyline connecting the Markers.

Step 1: Open the Exercise File

  • The exercise file can be downloaded here.  Save the file to your computer.
  • Open the file in your favorite HTML or text editor.
  • So that you can focus on the sections of code related to the Elevation Service we have already written some of the code for this exercise.  You can view the final result of this exercise here.  Left click each point in the path and then right click to enter the final point.

Step 2: Create a new Instance of the Elevation Service

  • Inside the initialize( ) function I want you to create a new instance of the ElevationService class using the line of code that you see below.

Step 3: Add Event Listeners
For this exercise you’ll need to create two event listeners; one for a map click ( and the other for a right mouse click (Map.rightclick) on the map.  The intent of the event is to create a Marker object each time the user clicks the map and to add the LatLng objects of each click to an array which will later be used as input to the Elevation Service.  The Map.rightclick event will signal that the user has finished placing points.  In addition to creating the final Marker for the polyline this event handler will create a Polyline from the array of LatLng objects that were created and it will make a call to the ElevationService object to get the elevation along a path.

  • Add the code that you see below to create the event handlers.

The first event listener ( calls the JavaScript function ‘plotPoints()’ while the second (Map.rightclick) calls the ‘plottingComplete()’ function.  We haven’t created either of these functions yet so you won’t see them in your exercise file.

Step 4: Create plotPoints() JavaScript Function
In this step you will write the ‘plotPoints()’ JavaScript function that adds a Marker to the map each time it is clicked.  This function also adds the LatLng of the map click to an array which will be used as input to the ElevationService.

First, create the ‘path’ variable which is the array that will be populated by LatLng objects.

  • Create the plotPoints() function as seen below.

Here we use the ‘push’ method which is a JavaScript array method.  This places each LatLng into the ‘path’ array.  Next, we create a new Marker at the LatLng position.

Step 5: Creating the plottingComplete() Function
The ‘plottingComplete()’ function is triggered when the user right clicks the map display.  Just as with the ‘plotPoints()’ function this function will also create a Marker where the map was clicked and push the LatLng object into the ‘path’ array.  In addition, this function also create a Polyline connecting the Markers, creates the elevation service request, and calls the ElevationService.getElevationAlongPath() method.

  • Create the function, push the LatLng coordinate into the array, and create the Marker.
  • Create the Polyline.  A Polyline object in Google Maps accepts a PolylineOptions object in its constructor.  This PolylineOptions object is used to define the path of the Polyline, the line color, transparency, and the map with which it is associated.  Notice that the ‘path’ parameter is set to our ‘path’ variable.
  • Create the request that will be submitted to the ElevationService.  The request has two parameters: path and samples.  The ‘path’ parameter defines the path for which the elevation profile should be generated and the ‘samples’ parameter indicates the number of sample points that should be taken.
  • Finally, call the ElevationService.getElevationAlongPath() method as seen below.  The request object (pathRequest) and a callback function (plotElevation) are passed as parameters to the method.

    Step 6: Examine the ElevationService Return
    The second parameter passed into the ElevationService.getElevationAlongPath() method (plotElevation) is the callback function that will process the results returned by the Elevation Service.  The results are contained within an ElevationResult object.  Since we’re determining the elevation along a path there will be multiple ElevationResult objects each of which contain elevation and location objects.  We are interested in populating our Google Visualization Chart with the elevation for each point.  The ‘plotElevations’ chart has already been written for you but it is helpful to examine this code to understand what is being accomplished.

    If the ElevationStatus returned a message of ‘OK’ then we assign the ElevationResults to the ‘elevations’ variable.  We then create a DataTable from the Visualization library that will serve as the data source for the chart.  Inside this DataTable we add rows corresponding to the sample locations and elevations for each location.  Notice in the highlighted line of code that we are pulling out the ‘elevation’ property from the ElevationResult.  Finally, we draw the Google Visualization chart using the DataTable.

Step 7: View the Results

  • Save your work and open in a web browser.  Click anywhere on the map to deifne the first point.  Add additional points.  To add the final point in our elevation path you can right click the map display.  That will trigger the creation of the polyline and the Elevation profile as seen below.

    Want to learn more about programming the Google Maps API?  The first session of our instructor guided, web based course, Introduction to Programming the Google Maps API begins June 20th and runs through July 1st.  Course cost is $249.00.  The first 10 students receive a free pass to our follow-up course Advanced Google Maps API Programming which runs from July 11th-July 22nd.  Both courses are taught by Eric Pimpler, Qualified Google Maps API Developer.

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

Introduction to Programming the Google Maps API (v3)

Posted on May 19, 2011. Filed under: GeoSpatial Training Services, Google Fusion Tables, Google Maps |

GeoSpatial Training Services is pleased to announce the release of our newest instructor guided, Internet based course, Introduction to Programming the Google Maps API.  This is for version 3 of the API.

The first session of this course runs from June 20th – July 1st

This course will be taught by Eric Pimpler, Qualified Google Maps Developer.

The first 10 students to register will receive free entry to our follow-up course, Advanced Google Maps API Programming which runs from July 11th – July 22nd.

This is our entry level programming course for the Google Maps API (version 3), and is designed to enable you to build Google Maps applications for the web.  We will cover a lot of ground in this course.  By the end of our time together you will understand all the basic concepts you need to create dynamic web mapping applications with the Google Maps API.  We’ll start with some basic information about programming the Maps API and then we’ll dive into the longest section of our course: Basic Concepts of the Google Maps API.  In this module you’ll learn how to add and remove map controls for panning, zooming, setting map types, overview map, and the scale bar.  You’ll then learn how to add your own data to the map display using markers, polylines, and polygons.  One of the more creative functions provided with the Google Maps API is the ability to drape images across the map.  For instance, you might want to display wildlife habitats on top of Google Maps.  This is done through the use of Ground Overlays.  Ground Overlays allow you to drape historical map images and specific purpose maps on top of a Google  base map.  Building on this concept you will then learn how to add KML, GeoRSS, and FusionTables layers on top of the map.  In module 3 you will learn how to handle events.  Events are actions that take place in your application such as map clicks or drags.  Normally they are initiated by the end user but they can also be internally generated events such as the re-setting of the map center.  In module 4 you will learn how to convert addresses into geographic coordinates that can be displayed as Marker locations on the map.  You’ll also learn how to take a point of interest and find the nearest address to the point.  This is known as reverse geocoding.  Finally, we’ll wrap up the course with a module on the Google Elevation Service.  In this module you’ll learn how to obtain elevation data for a point or an elevation profiles for points along a line.

Module 1: Introduction to Programming the Google Maps API
Module 2: Basic Concepts of the Google Maps API
– Adding Controls to the Map (Zoom, Pan, Map Types, Overview Map, Scale Bar, Street View)
–  Creating Overlays (Markers, Polylines, Polygons)
–  Display Images with Ground Overlays
–  Creating Layers (KML, GeoRSS, FusionTables)
Module 3: Handling Events
Module 4: Geocoding with the Google Maps API
– Geocoding
– Reverse Geocoding
Module 5: The Google Elevation Service

Course Exercises
Create Your First Google Map
Working with Map Options
Adding and Removing Map Controls
Adding Markers to the Map
Creating and Displaying Info Windows
Adding Ground Overlays to the Map
Display KML Files on the Map
Adding Fusion Tables to the Map
Responding to Map and Marker Events
Geocoding Addresses
Using Reverse Geocoding to Find an Address for a Location
Obtaining Elevation for Points and Paths

Register Now: $249
Add to Cart

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

Open Source GIS Bootcamp Registration!

Posted on May 16, 2011. Filed under: GeoServer, GeoSpatial Training Services, Open Source GIS, OpenLayers, PostGIS |

 Have you ever wanted to learn how to use open source GIS software to develop web based GIS applications? Here is your opportunity! The first session of our Open Source GIS Bootcamp begins July 18th and runs through August 22nd.

This is an instructor guided, web based course. It is self-paced so there is no particular time when you have to be available during the course session. You have access to the course materials for a year so you can review as necessary or finish up the materials if you run beyond the 4 week session.

The course uses PostGIS, GeoServer, and OpenLayers. See our website  for more details.

You can view the syllabus here:

Our early enrollment period lasts through May 31st. Course fees through that date are $567. The regular course price is $715. Course fees include bound hard copies of the lecture notes which are mailed to you.

Register Now ($567)
Add to Cart

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

« Previous Entries

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