Monthly Archives: November 2010

Programmatically Working with Packages and Web Maps, new at 10 SP1

Starting at ArcGIS 10, Service Pack 1, developers now have more options when working with Packages and Web Maps.  With SP 1, you can programmatically open Layer and Map Packages from both local data sources and ArcGIS Online.  You’re not just limited to packages though; you can open Web Maps too.  This blog has more of an ArcGIS Engine focus, but since ultimately you are getting back a layer or map, ArcGIS Desktop developers can leverage this functionality too in their custom components and add-ins.

Both the LayerFile and MapDocument class’s Open methods have been enhanced to allow developers to reference a path to a package.  For example the ILayerFile.Open method can be used to open Layer Packages in a MapControl like this:

Dim layerFile as ILayerFile = new LayerFileClass
Dim layer as ILayer = layerFile.Layer

ILayerFile layerFile = new LayerFileClass();
ILayer layer = layerFile.Layer;

And the IMapDocument.Open method can be used to open both Layer Packages and Map Packages like so:

Dim mapDocument as IMapDocument = new MapDocumentClass
mapDocument.Open(“c:DataLayerPackagesMyMapPackage.mpk”, “”)
axMapControl1.Map = mapDocument.get_Map(0)

IMapDocument mapDocument = new MapDocumentClass();
mapDocument.Open(@”c:DataLayerPackagesMyMapPackage.mpk”, “”);
axMapControl1.Map = mapDocument.get_Map(0);

I said earlier that you could also access data from  This can be done by replacing the path to the package with a properly formatted URL to the ArcGIS Online content.  What is this properly formatted URL?  Let’s use the Bing Maps Road Layer Package on ArcGIS Online as an example and load it into an ArcGIS Engine Application.

Here is the link to the package.

To use it, we just need to feed the open method the correct URL which we can make by taking the unique identifier for the map, b6969de2b84d441692f5bb8792e65d1f (the long guid like number after the “id=”), and substituting it in the following URL.<unique identifier>/item.pkinfo

So we get:

Since this is a Layer Package, we will use ILayerFile’s open method to open it.  Our code would look like:

Dim layerFile as ILayerFile = new LayerFileClass
Dim layer as ILayer = layerFile.Layer

ILayerFile layerFile = new LayerFileClass();
ILayer layer = layerFile.Layer;

The same URL structure can be used with Map Packages and Web Maps IMapDocument.  Just get the unique id and plug it into the URL.  Web maps are great ways to get base maps into an application.

Why would using packages and Web Maps be useful for a developer, in particular an Engine developer?  Often Engine applications are highly specialized and are supplied with application specific data when deployed.  Good GIS data is always changing and improving so occasionally you may need to supply your users with a data update.   Why not create a Map Package with all the necessary data and upload it to you own group on  If your application references the ArcGIS Online map package instead of data on disk, it will automatically download the update.  If there are no data updates it will just reference the already unpacked data on disk.   

There are plenty of options to share your data out on  If your data is not sensitive and you don’t mind other people accessing it, you can just upload it directly to ArcGIS Online share it with the rest of the user community.  Or, your organization can create its own private group, this could be for your whole product, or even a different group for each individual organization that you are deploying to.  Provide your users with their user name and password and the first time they open the package they will automatically be prompted for the password, which can be stored so they don’t get the dialog again.

For more information on working with packages see the following document and sample in the SDK.

 Content provided by Ralf


Posted in Uncategorized | Tagged , , , , , , , , | Leave a comment

Business Analyst 10 SP1 Released

 By Lucy Guerra

The Business Analyst team is pleased to announce that Service Pack 1 for Business Analyst 10 Desktop is now available. This service pack contains several performance improvements and maintenance fixes. We recommend that customers using Business Analyst 10 or Business Analyst 10 Premium download and install this service pack at their earliest convenience to ensure the highest-quality experience when working with Business Analyst.

Download the Service Pack from the Esri Resource Center or install it automatically by using the Check for Business Analyst Updates utility from your Start > Programs > ArcGIS > Business Analyst location…

Posted in Location Analytics | Tagged , , , | Leave a comment

Historical map effects: Waterways

By Wes Jones, Esri Design Cartographer


Recently, I was trying to replicate a historic map and I would like to share a couple of the techniques I used. This first blog will show you how you can symbolize waterways so that they appear as they do on some historic maps, and the second will show you how to create a torn and creased parchment paper look for your map.

Continue reading

Posted in Mapping | Tagged | Leave a comment

Using the Mosaic Image Finder add-in

Last week, the Mosaic Image Finder add-in for ArcMap was added to the sample gallery. This window provides an interactive interface to explore the overlapping images in a mosaic dataset (or image service).

Once you’ve installed the Add-in, simply (1) add a mosaic dataset (or image service published from a mosaic dataset) to ArcMap. (2) Zoom to an area of interest, then (3) drag-and-drop the mosaic dataset into the Mosaic Image Finder window.

Each image contained in the display view will load into the Mosaic Finder Window. You can click on the window and move your mouse to tilt the view.

You can click on the fields to sort the images and click the ascending/descending arrow buttons to help filter the images that are displayed.

You can click on each image to view its metadata and the window will display a wireframe to show where in the stack the image displays. You can then click the Add button to add this selection to your ArcMap.


Submitted by: Melanie Harlow


Posted in Imagery, Services | Tagged , , , , , | Leave a comment

Version 2.1 of the ArcGIS API for Silverlight/WPF and ArcGIS API for Windows Phone now available!


Version 2.1 of the ArcGIS API for Microsoft Silverlight/WPF is now available for download on the ArcGIS Resource Center. This is a significant release for the Silverlight/WPF platform that includes numerous enhancements and fixes.

Version 2.1 of the ArcGIS API for Windows Phone is also available for download as our first public ArcGIS API for the Silverlight development platform on Windows Phone 7.  The Windows Phone API shares much of the same functionality present in the Silverlight/WPF API – in fact, they target the same source code and thus share the same version.  However, there are some minor differences, such as the Windows Phone API does not include a BehaviorsActions library, a few client-side toolkit data sources are not supported (HeatMap and GeoRSS), graphics layer map tips are not available (although InfoWindow in the toolkit will work), and the toolkit has only a few controls that have been refactored for the Windows Phone experience.   Note, Silverlight for the Windows Phone does not include some key functionality provided in Silverlight 4, such as dictionary binding, custom namespace schemas, and support for commanding.

Here are a few highlights of what’s new in the Silverlight/WPF API and included in the first release of the Windows Phone API:


  • Integrated support for gestures on touch-enabled devices
  • New InfoWindows and Legend controls, and a new KML data source available in the ESRI Silverlight Toolkit (source code available on CodePlex)
  • Convert a FeatureSet to/from JSON
  • Support for WebMaps
  • Store and use a local cache of tiles using the new TileLoaded and TileLoading events on the TiledLayer class
  • Touch-enabled magnifier for interactively drawing features using the Editor or Draw objects


To get started with version 2.1 of the ArcGIS API for Silverlight/WPF see our new Concepts, Interactive SDK, and Library Reference documentation online.

To get started with version 2.1 of the ArcGIS API for Windows Phone, see our Concepts, Interactive SDK, and Library Reference documentation.  Note, the Interactive SDK is merely a simulation of the Windows Phone developer experience and provides easy access to XAML and code-behind for Windows Phone Silverlight developers.  Download the Windows Phone Interactive SDK and deploy to an emulator or a Windows Phone device for a true developer experience.

Be sure to use the Silverlight/WPF forum or Windows Phone forum to ask questions and work with the community to resolve issues you may encounter.




The ArcGIS Silverlight/WPF and Windows Phone Development Teams


Posted in Web | Tagged , , , | 5 Comments

"Semiology of Graphics": The reprint of a classic!

By Aileen Buckley, Mapping Center Lead

Semiology Thumb

We are thrilled to announce that Esri Press has republished Semiology of Graphics: Diagrams, Networks, Maps by Jacques Bertin. Continue reading

Posted in Mapping | Tagged , | Leave a comment

Using the ArcGIS API for iOS Samples

As most of you already know, we provide a number of samples for ArcGIS API for iOS under the iOS Developer Samples group on These samples showcase the functionality of the API and also to help you get started developing applications of your own. Be sure to check the group regularly for updates and new additions, and also send us your ideas about which samples you would like to see.

Some of you have complained about not being able build and run the samples. In this post, I will provide a couple of tricks that could help you troublshoot problems with the samples, and also point you to key Apple resources for more information about the iOS Development environment.

Eash sample is provided as a zip file. The zip file contains an entire XCode project including the source code, graphics, and XCode-specific project files. The project files store many common build settings such as the frameworks and libraries to link to, the SDK to use, the targets to build, and so on.

Most commonly when a sample doesn’t build properly, the Overview Toolbar menu will display Base SDK Missing. This means the project is trying to reference an iOS SDK that is not available on your machine. This might happen, for instance, if you installed a more recent version of the iOS SDK than what was used to create the sample. When we create samples, we use the most recent version of the iOS SDK available at the time. Thus, when created samples for version 1.0 of the API, we used iOS 4.0 SDK to create the samples. Information about the SDK being used is stored in the project files. Shortly thereafter, Apple released iOS 4.1, and more recently, 4.2 SDKs. If you have these SDKs installed on your machine instead, you will experience the problem described above because the sample will try to unsuccessfully reference the previous version of the SDK.

To fix the problem, you need update the Base SDK. You do this by double-clicking the project’s Target to bring up the Info window. Then, under the Build settings pane, update the Base SDK property.

One thing to consider when you’re making changes to a Target, is to make sure you are modifying the correct configuration. A target has 2 configurations by default – Release and Debug. These configurations are used to build the Release and Debug versions of your application respectively. Some settings, such as the Base SDK, typically use the same values for both configurations. When you modify such settings, remember to modify the settings for each configuration. You can do this either by modifying each configuration separately, or by modifying both configurations simeltaneously by selecting the All Configurations option.

Another common reason why a sample may not run is if the project is configured to run the sample on a device. In such cases, you can expect to encounter the following error –

The simplest way to run a sample, is to run it on the simulator. You can do this by choosing the Simulator option in the Overview toolbar menu.

If you really do want to run on a device, you will need to do a few things –

1. You will need to have a valid Development Certificate from Apple. This certificate needs to be installed on your development machine.

2. You will also need to create a Development Provisioning Profile from the iOS Provisioning Portal and install it on your development machine and each iOS device you intend to use. A provisioning profile is used to authorize an application (specified by an App ID) created by a developer (specified by a developer certificate) to run on a device (specified by device IDs). You can find more information about this process in the Managing Devices and Digital Identities section of the iOS Development Guide and also in the iOS Developer Program User Guide (Note, you will need to sign in with your Apple ID to access the User Guide).

You will also need to make a few changes to the project -

3. You will need to modify the sample’s *-Info.plist file under the Resources group. In this file, you will need to modify the Bundle Identifier property and replace the “com.yourcompany” text with the App ID used in your provisioning profile.

4.You will need to digitially sign the application. Open the Target’s build settings, scroll down to the Code Signing Identify section, and choose your provisioning profile to digitally sign the application.

 Apple’s Technical Note TN2250 has more information about the Code Signing process. 

Once you’ve completed these steps, ensure your device is connected to your development machine, then build and run the project. The sample application should automatically get installed and launched on your device.


Posted in Mobile | Leave a comment

Using Address Inspector keyboard shortcuts


Hi All


When using the Address Inspector tool on the geocoding toolbar (ArcGIS 10) you will see some hints in the application message bar (bottom left) reminding you that the K,P,L and O keys can persist addresses to the clipboard or to graphics and labels.


For example, I find it very handy to key “K”, paste the address back to the geocode tool, zoom to the address, then use the address to name a map bookmark.  This gives a consistently scaled set of bookmarks with an immediately understandable naming schema.


Another option is to use the “P” key to preserve a graphic point; repeating this will “harvest” the addresses in an area  to a collection of point graphics, which you can then convert to a point feature class with the address preserved in a field “Name”.  This can be handy to build a collection of point features with authoritative addresses into a set of addresses of interest for your analysis.


Don’t forget that a right-click will also bring up a context menu controlling your search distance and tooltip properties, amongst a few other things.






Posted in Analysis & Geoprocessing | Tagged | Leave a comment

Thank you from Mapping Center!

By Aileen Buckley, Mapping Center Lead


In light of the U.S. Thanksgiving holiday, we want to take a minute and thank all of you for your use and support of Mapping Center. We also want to take this opportunity to thank the many people who have contributed to its success. We have never done this in the past so we are long overdue in acknowledging those who helped bring the site to life and those who keep it going. Continue reading

Posted in Mapping | Tagged , , | Leave a comment

Concave Hull

Question: I have a point dataset with about 17,000 points. I’m looking to create a footprint of the outer most points. I see one can create a convex hull, but my points form an irregular shape and the convex hull doesn’t follow the path of the outer most points. Is there a way to do this?

I’ve attached a jpg that shows the result of a convex hull.

Thanks for your help.

Answer: I presume you are using the Minimum Bounding Geometry tool in the Features toolset in the Data Management toolbox in ArcToolbox. If you read the online help for this tool, you will see that the hull (polygon defining the extents of the input features) will always be convex, as shown in your example. You do not have the option to create, what you call a concave hull.

Instead try using the Feature Outline Mask tool in the Masking toolset of the Cartography toolbox in ArcToolbox. With this tool, along with BOX and CONVEX_HULL, you can also specify:

EXACT_SIMPLIFIED —A generalized polygon representing the exact shape of the symbolized feature. Polygons created with this method will have a significantly smaller number of vertices compared to polygons created with the EXACT method.

EXACT —A polygon representing the exact shape of the symbolized feature.

This would not work in all cases, but given the nature of your data, I think it will work for you.  This is why — given the symbology you are using, your data are clustered so close together that the mapped features coalesce into a contiguous area.  It is important to understand that the Feature Outline Masks tools will create a mask polygon around the SYMBOLIZED features, so if you used a smaller point symbol or a larger reference scale (so that you zoomed in on the area) then you would start to see pockets within the polygon.

Once you have used the Feature Outline Masks tool, use the Dissolve tool to create one or a few polygons that represent the extent of the distribution.

Note that this solution, unlike the Minimum Bounding Geometry solution, provides a polygon that extends OUTSIDE the actual extent of your point features and instead represents the extent of the SYMBOLS used to map your point features.

Below is an example using census data for the places in Michigan.

25M Points

The point distribution mapped with a 4 pt symbol at a map scale of 1:25,000,000 (this looks more like the coalescing points in your attachment.)

25M Masks

The output from the Feature Outline Masks tool for the mapped features above.

25M Dissolve

The results after using Dissolve.

5M Points

The point distribution mapped with a 4 pt symbol at a map scale of 1:5,000,000 (notice all the pockets within the mapped distribution.)

25M Masks

The output from the Feature Outline Masks tool for the mapped features above.

5M Dissolve

The results after using Dissolve.

This is the solution that was offered in the comments below by Kyaw Naing Win. This inventive solution uses TINs.

Concave Hull with TINs


Attachment: Convex Hull
Formerly a Mapping Center Ask a Cartographer  Q & A.
Posted in Mapping | 1 Comment