Monthly Archives: January 2009
By Charlie Frye, Esri Chief Cartographer
Have you ever found that even with feature linked annotation and the follow feature option you cannot get your line’s label into what you clearly see to be the best position? That leaves the option to edit the baseline sketch of that curved annotation feature. Continue reading
Of the participants who took the last poll, almost 70% have upgraded and are using ArcGIS 9.3. The remainder are still using ArcGIS 9.2 for the most part.
Things definitely move fast however and ArcGIS 9.3.1 is just around the corner.
The next developer poll is already in place: How many of your customers will require you to support Internet Explorer 6.0 during the next 12 months?
Thanks again for participating.
Opening a dataset such as a table or a feature class from a geodatabase can be an expensive operation. With this in mind, application developers should try to minimize the number of times they open datasets by following these patterns:
Keep datasets from going out of scope: If a dataset is being opened in a method that gets called frequently, consider keeping a reference to the dataset outside of the method to keep it from going out of scope and forcing the application to reopen it each time the method is called.
The code below shows an example of how this might look before and after:
public void MyMethodBefore()
IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(“Parcels”);
private IFeatureClass parcelsClass = null;
// Call this prior to calling methods that use the parcels class.
public void Initialize()
parcelsClass = featureWorkspace.OpenFeatureClass(“Parcels”);
public void MyMethodAfter()
// Use the parcels class …
Of course, this will apply a shared schema lock to the feature class so it may not be appropriate for all applications.
Open related classes when notification is used: Whenever an application is editing a dataset and that dataset participates in a relationship class with notification, it’s related dataset should also be kept open. Consider a Parcels-Owners relationship class that has forward notification enabled; whenever a parcel is created, deleted or modified, a message is sent to the Owners class. If the Owners class is not open it will be opened by the system. The geodatabase must do this because a response to the message may occur (i.e. deleting an owner in response to the deletion of a parcel, for composite relationships). After a class is opened by the geodatabase it will be closed.
Application developers can prevent this kind of performance hit by simply opening the related class at the same scope as the class being edited. How much this improves performance depends on many factors, but a ten-fold increase is not atypical, and fifty-fold increases have occurred.
With all of our attention on the upcoming Super Bowl, there are so many questions that we want answered – Who are you cheering for? Which team will win? Or my favorite question, what company will have the best commercial this year? But the age old question that haunts NFL fans is – Which team has the best fan base? Thankfully, Esri Data can reveal very interesting facts about NFL fans across the country.
The Esri Market Potential Data measures the likely demand for a product or service in a defined geographic area. The database includes an expected number of consumers and a Market Potential Index (MPI) for each product or service. An MPI compares the demand for a specific product or service in an area to the national demand for that product or service.
The MPI for an adult to watch a professional football game on television on the weekend in the Pittsburgh, PA metropolitan area is 108, or 8 percent higher than the U.S. average. The MPI in the Phoenix, AZ metropolitan area is 103 – still higher than the U.S. average, but not as high as Pittsburgh.
Watching the game on television is one thing…attending a game is another story. The MPI for adults to attend professional football games on the weekend in the Phoenix metro area is 113, compared to 99 in the Pittsburgh metro area. Therefore, it appears that people in Pittsburgh are highly likely to watch the game on television, but less likely than Phoenix residents to attend a professional game.
So, it appears that the debate over fan loyalty will continue and we can just hope that the game (…and the commercials) this weekend will be exciting. For more information about Esri Market Potential Data please visit – http://www.esri.com/data/esri_data/market-potential.html
Here’s a preview of an article that will appear in an upcoming issue of ArcNews by Tim Asimos, marketing manager, and Lowell Ballard, director of geospatial solutions, at the Timmons Group, an ESRI business partner based in Richmond, Virginia.
The article details their ArcGIS Explorer implementation for Goochland County, Virginia, that integrates Goochland County’s GIS data (and data from others), ArcGIS Server-based geoprocessing tasks, and other emergency management systems such as ESi WebEOC 7 Professional. Here’s some screenshots and descriptions that explain how Explorer is being used.
The James River, which has a tendency to spill over its banks from time to time, serves as the southern meandering boundary of the County. Emergency managers are interested in monitoring the stage height of the river at a USGS stream monitoring station. Above we see a graph of the gauging station data displayed within Explorer. The graph is retrieved and displayed in the popup window when the gauge location is clicked. Also shown is a Google Map and StreetView imagery at the same location. Both of these are implemented as tasks within ArcGIS Explorer.
Above, a dashboard interface is shown, allowing authenticated users to view, update, and create incident information that is pulled from and pushed to the County’s ESi WebEOC database. The incidents, road closures, shelters, etc., can be located on the map, where those locations can be further analyzed. Also shown on the map are Fire Station and hydrant locations.
In using ArcGIS Explorer as an emergency planning tool, exercises can be conducted that simulate a hazmat spill on an interstate. One of several available models can be used to generate a plume, which can be used to select underlying parcel data, which could be used to create a reverse 911 call list. Photos from the scene can be also be added to give decision makers a visual of the incident.
ArcGIS Explorer allows for the inclusion of Virginia Emergency Management response grids, nuclear facility locations, and other base layers. Using this information, alongside other custom Explorer tasks such as Plume models (that incorporate live wind speed / direction feeds) managers are better able to plan and respond to events. The image above shows how daytime population risks associated with an event at the nearby Lake Anna nuclear facility can be examined in Explorer.
by Bob Hazelton
After more than a few late nights the Business Analyst Server team delivered DVDs to our manufacturing group just before the end of the year. We are anticipating that we will have the product in boxes to be shipped out to all of our friends during the week of January 26th.
Here are some highlights of the 9.3 release:
Stateless application objects - support more simultaneous users with lower CPU and RAM resource consumption.
Integration and Custom Development – the SOAP API has been updated and there is a new REST API.
API Example code – provides a complete set of calls to illustrate the usage of the particular method as well as showing the context to other methods.
Custom task/task list – create custom functionality to extend the Task list.
New Trade Area types - Two new ways of evaluating and exploring the area that your business operates in have been added, Grids and Standard Levels of Geography.
New Analyses - understanding your existing sites and customers is easier with the addition of two new analyses types, Customer Profiling & Prospecting and Find Similar.
New Reports - several reports have been added such as Customer Demographic profile, Benchmark report and the Executive Summary.
New data - 2008 Data Update
For all Web GIS developers: A recent poll on the ArcObjects Development Blog asks about browsers that your clients require you to support. Specifically we’re interested in knowing what percentage of your clients are still requiring Internet Explorer 6 support this year.
Please take the poll and if you have more detailed comments for us on browser support by ESRI components, please post them here. We’d like to learn about general trends you’re seeing in browser support requested by your clientele.
In a previous post, we looked at how to use the VS 2008 .NET Upgrade Wizard to convert an ArcGIS VB6 project (AddShapeFile) to VB.NET. Now we’ll look at how to improve the code by using one of the ArcGIS .NET BaseClasses and the ArcGIS IDE Integration Tools.
One of the drawbacks of using the Upgrade Wizard is that it translates all of the raw COM classes and interfaces implemented in the VB6 project directly to VB.NET classes. That means that all interfaces such as ICommand are re-implemented exactly as they were in VB6. We can’t fault the wizard for doing so however, because it is doing its job, but as a developer, you really should really take advantage of the features the ArcGIS .NET SDK provides.
Furthermore, leaving the code as is has its drawbacks:
1. The code will be difficult to navigate and read for classes that have interfaces with many members.
2. Error handling becomes repetitive.
3. You will need to provide the plumbing for some members that we already provide the implementation for!
Therefore, in order to improve the original code we converted, let’s go back and simply create a new class that inherits from the ESRI.ArcGIS.ADF.BaseCommand and then move all of the remaining code over.
Here’s the steps:
1. Use the Upgrade Wizard to convert your VB 6 project to VB.NET (see Migrating from VB to .NET video).
2. Use the ArcGIS .NET IDE integration to create a new base class (BaseCommand in this case).
3. Copy and paste the code from the class the wizard created to the new base command class.
4. Use the underlying implementation of the base class where possible. E.g. BaseCommand::Bitmap.
5. Delete the old command.
Voila! Now the ICommand implementation uses the base class and the code is complete. Be sure to check out the video to see how it’s done.
Special thanks to Sirisha Karamchedu for contributing the video!
We’d like to get your feedback and opinions on ArcGIS Explorer and have recently published an online user survey. It’s very short and will take just a few moments to complete.
We’re looking for just a little more information on how you use or deploy Explorer in your organization, what you’d like to see changed and/or enhanced, additional features or capabilities you would like to have added, and your general feedback. We’ll use this information to guide our development, and to improve the product.
Thanks in advance for completing the survey!
The ArcGIS Explorer tasks that we noted in an earlier post as being temporarily offline are now back online again.