Monthly Archives: September 2009
In an earlier post we looked at how you can add live Web cams to your map using the live Old Faithful cam at Yellowstone National Park. Continuing with that theme, let’s look at how we can add some of the animated media found at the Park Web site to our map.
First, let’s zoom to the boundary around Yellowstone National Park. We found the boundary for Yellowstone National Park at the NPS Data clearinghouse and downloaded it as a shapefile. Then added it to our
We added a point note, placing it in the middle of the Park. The note popup automatically opens in edit mode, and we’ve already changed the title.
Now let’s go to the Yellowstone Web site. We found a link on the left of the main page titled Nature & Science which we followed, eventually taking us to the hotspot page with hot spot theories and some really spiffy flash animations.
All we need to do is copy the URL of this page and paste it in our note.
That was easy, and worked out great. And here’s how it looks.
But what we wanted was just the animation. The Park site doesn’t provide a direct link, so in this case it’s a little more of challenge to grab just the Flash animation. So we had to do a little investigation and use a little HTML and Web site knowledge. Here’s how we figured it out.
First we right-clicked on the page to view it’s source, and found the spot in the document where the flash animation is referenced. It was in the midst of another set of code to launch the flash player, and here is what that looked like.
Now the path, highlighted in yellow above, is relative, so we had to figure out what the public URL would be to the animation. Looking at the URL to the main Park site, we could figure it out pretty easily. Here is the URL to the main page.
So we just added the root of the URL above to the relative path in the URL we found in the page code.
Then we just pasted everthing including the EMBED tags into our note.
And here’s the final result – just what we wanted, just the Flash animation in our popup.
It’s easy to use HTML in popups to do very interesting things.
by Kyle Watson
One of my favorite features in Esri Business Analyst is the Benchmark Report. It allows you to compare multiple trade areas against one another to decipher how different or similar one location is versus the next. This is essential for companies in the franchising, banking, and retail industries looking to analyze well performing and not-so-well performing sites. Heck – Esri is a paying customer. We use it internally to monitor Regional and Satellite Office commuter areas and even evaluate the demographic profiles of every potential conference or seminar.
Take for example analyzing Esri’s Regional Offices, specifically 20-min drive times around each location. Which office covers the most square miles? Which has the highest population growth? How does Boston’s aggregate income measure up to Olympia’s? What about San Antonio’s diversity index versus Charlotte’s. Or St. Louis home values compared to the overall RO average. How about all this stuff in the same Excel table!
So once you load up all of your trade areas you then define how you want to “benchmark” them. Use a master site (often your best performing), overall average, or the median of all trade areas.
Below you can see a typical Benchmark Report output. Redlands (we do have a Regional Office right on campus) is the master site. Then all other ROs are benchmarked against it. I selected population and total businesses within a 20 minute commute. By examining the nicely formatted Excel table, you can see the Washington D.C RO has twice the amount of people. And there’s 66% less business locations around Olympia. This shows just two variables, but you can add any amount – including your own, such as sales or customer transactions per location.
Another cool way to use the Benchmark Report is to compare standard geographies for a frame of reference. Such as understanding how demographics for ZIP Code 90210 compares to all of Beverly Hills city, compared to LA County, compared to California, compared to the entire US, etc.
9/29/09–In Choosing Basemaps – Part 1, we took a look at some of the basemap services that ArcGIS Online offers and described how these basemaps may be used. Now, it is time to check out a few more. We will also explore some specialty services and layer packages that have the makings for a good basemap.
This basemap employs a hypsometric tint in combination with a hillshade. This natural looking map is ideal as a small scale basemap or as a general small scale inset map. The hypsometric coloring makes this basemap particularly useful for data that is physical in nature. For example, this basemap would work well with physiographic data, especially if there is a general relationship between the data and elevation.
Often, there is a need to refer to one or more traditional topographic map sheets for a specific project. USA Topographic Maps is a great basemap since it provides a complete mosaic of scanned topographic maps of the United States at varying scales. This basemap can be used for general reconnaissance, outdoor activity planning, resource management, surveying, and more. USA Topographic Maps includes a hillshade in conjunction with the traditional labeled elevation contours. This added feature makes the basemap very useful for tasks which require specific knowledge of the local relief of an area.
This specialty basemap is a cross between a street map and a topographic map. The cartography is clean and straightforward. Therefore, this map is useful as a general location map. Additionally, due to its clean design, this map is great when including large amounts of supplementary GIS data.
In addition to the general online basemap services, the ESRI Maps and Data group provides pre-symbolized, packaged data layers that can be downloaded and used for the creation of a basemap. When the objective of the map is clear, all you need to do is search for keywords to find data that will suit the map’s purpose.
Let’s say that you only have a simple polygon feature class layer of crime statistics for a state’s municipalities. Your goal is to cross-reference this data with census information to create a correlation between rates of crime and numerous census attributes for a particular county. In order to provide context and visual appeal to your finished map, you would like to add a few more base layers, as well as an inset map for reference. Here are some of the layers that you could download from ArcGIS Online in order to generate your basemap.
USA Census Tract Boundaries: This layer package provides the attribute data for comparison as well as the boundaries for symbolization.
USA Counties: This layer package helps to contain and emphasize the area of interest. It also brings context to the map.
USA Major Cities: By adding this layer package, the map user becomes acquainted with the area and is able to determine the affected communities.
USA Freeway System: This layer package provides even more context. It helps orient the map user within the area of interest.
USA States: Along with the county layer, this layer package provides the basis for the inset map. By incorporating the states layer, the user will get an overall impression for the location and relationship of the county of interest and the other counties within the state.
Layer packages come pre-symbolized and pre-labeled. However, to suit the purpose of your map, a few adjustments can always be made. The example below is an illustration of a hypothetical crime map with the addition of the layer packages mentioned above. Very little manipulation of the symbology was necessary in producing the finished map.
These are just some of the basemap services and layer packages that the ESRI Maps and Data group provide. There is an extensive amount of useful data in many different formats. By accessing this online service, your ability to create both practical and comprehensible maps becomes even easier. Data is always being added and is ready to be downloaded and used in whichever creative, exciting, and constructive manner you may imagine.
Contributed by Cindy Prostak of the ArcGIS Content team
In conjunction with the new PBS National Parks series, George Dailey’s My National Parks and ArcGIS Explorer blog series begins today.
Yesterday we posted about how to add Yellowstone National Park’s Old Faithful Web cam to your Explorer map, and we’ll be following along with additional National Park topics.
Part 1 of this series gave you a brief introduction to cross-domain policies, and showed you where to correctly place your policy files. In this post we want to show you some basic troubleshooting techniques for both Adobe Flex and Microsoft Silverlight. If you are having problems such as maps not displaying, or you are getting security sandbox errors then you may be having cross-domain policy problems. Here are some basic guidelines to follow:
- Make sure the policy file is downloading
- Make sure you are using the latest policy file
- Check your policy file settings
- Examine the error messages
- Set your project to run on local web server
Note, in this post we are focusing on resources within your domain and sub-domains; for example http://www.yourwebsite.com/ and http://maps.yourwebsite.com/. The cross-domain file needs to be on the machine with the data or service, and not necessarily the machine hosting the Flex (SWC) or Silverlight app (XAP). Also, if you are having problems accessing third party resources, then you’ll need to work with the third party directly to figure out their cross-domain policies and procedures.
Make Sure the Policy File is Downloading
There are a number of easy ways to verify if the policy file is being downloaded to the client. In Firefox click on the “Net” tab in Firebug. Or, if you are using Internet Explorer then Fiddler is a good choice. If you want more details on Firebug and Fiddler there’s a short write up in a previous ArcGIS Developer blog post. Silverlight developers should also look at using Silverlight Spy. Silverlight Spy gets the extra bonus points for having a cross-domain access policy validator.
If the client app can find and download the policy file, you should see a “200 OK” message. Another trick is to try and load the URL from a browser window, for example: http://tasks.arcgisonline.com/crossdomain.xml if that’s the server you are trying to access content from.
Make Sure You Are Using the Latest Policy File
When you make changes to the cross-domain file, be sure to refresh/reload the page to make sure the browser “sees” the latest version. If you have tried multiple web page reloads and still see “304 Not Modified”, then you have a few options:
Manually clear your cache
You can clear your entire cache, although this often isn’t very desirable if you have a lot of useful links stored. In Firefox 3.5.x they recognized this problem and implemented a very nice, new feature that lets you remove everything from the last hour called Clear Recent History.
Bypass the cache
You can bypass the cache and force the whole page to reload even if there is a cached copy. Here’s a page that explains how to do this: http://en.wikipedia.org/wiki/Bypass_your_cache.
Check the Policy File Settings
Do a little digging into what settings are appropriate for your domain security. A typical default file is completely open and allows access to all your sub-domains from any external domain. This may not meet your organizations security requirements. Adobe’s Cross-domain Policy File Specification article has a good discussion on the different configuration options for crossdomain.xml. For Silverlight developers, there is an MSDN article on Network Security and Access Restrictions that talks about the various configuration options in clientaccesspolicy.xml.
Examine the Errors
Most of the time, reading the error carefully will offer some important hints on how to resolve the problem. The really important information will be in the very first line or two of the error message dump. Just as an FYI, Flex has over twenty different errors related to Security sandbox violations. Silverlight 3 has only a handful related specifically to security sandbox violations.
Here are a few of some of the most common problems with hints and suggestions on how you might be able to resolve them:
Error #2048: Security Sandbox Violation (Flex only)
Cross-domain policy file is missing, or incorrectly configured to allow access. Check to see if policy file is downloading, and check its settings.
An Error occurred while trying to make a request to URI…This could be due to attempting to access a service in a cross-domain way… (Silverlight only)
Cross-domain policy file is missing, or incorrectly configured to allow access. Check to see if policy file is downloading, and check its settings.
404 Not Found (Flex or Silverlight)
File is missing, or in the wrong directory. See Part 1 for suggestions on how to locate the root directory.
404 Not Found - but your policy file is definitely in the right place. (Flex or Silverlight)
A few things could be wrong here. Check your policy file pathname carefully. Copy the URL into a browser to see if it loads the policy file. Check your firewall logs to make sure the request isn’t being blocked, especially if its on a non-standard port number, for example: http://subdomain.yourwebsite.com:8001/map.aspx.
Error #2032 Stream Error. (Flex only)
The URL is blocked or the policy file wasn’t found by URLLoader() or URLRequest(). It can also show up when using HTTPS and HTTPService(). Re-check that your URL is correctly spelled and is loadable. Try to run the app in a browser while using Firebug or Fiddler.
Cross-domain file 200 OK but still get Security Sandbox Violation. (Flex or Silverlight)
The policy file loaded okay, but domain access is not allowed. Check the policy file settings.
Cross-domain file 200 OK but getting 500 Internal Server Error. (Flex or Silverlight)
Problem is with the server not the client app. Check directory permissions and other configuration files for your server. On a Windows Server check the Event Viewer log since it will contain all the details for the error.
Set Project to Run on Local Web Server
If you are running into cross-domain problems on your dev box while making calls to external web services, or if you want to more accurately represent a production environment, try setting your Flex Builder or Visual Studio project to run on your local web server (e.g. IIS or Apache).
Here’s an example for Visual Studio 2008 and IIS 7. For Flex, see the example screenshot below. Also don’t forget to move your cross-domain policy files to your local web server root.
- ActionScript 3.0 Runtime Errors
- Silverlight 3 Error Messages
- ESRI Silverlight/WPF Blog – Using services across schemes
- ESRI Silverlight/WPF Blog – Troubleshooting blank layers
- Deploying your [Flex] application
We have had a lot of talk about Unique ID’s in the last few weeks and GUID’s have came up a few times. We wanted to add some more information to this topic. GUID’s or Globally Unique Identifier are essentially unique values. These are used by the geodatabase for replication and editing in ArcGIS Mobile in a special field called Global ID. This Global ID field is managed by ArcGIS. When a feature is created, it is auto populated with a GUID, either in ArcGIS Desktop, ArcGIS Server or in ArcGIS Mobile. This should not be used for a Unique ID. These values can change if you have to reload the data at some point or if you drop the Global ID field and re-add it. I would say that you should not use any field managed by something as a unique ID. But there is a GUID Option.
There is also a GUID field type. This allows you to use the GUID data type as a unique ID. It is up to you to manage it, but there are some tools to help. We are looking at adding an option in the Dynamic Value table so the Attribute Assistant that is part of the editing template can add a GUID for you. I have included a VBScript function that can be used in the Field Calculator. Please see the attach GUID.Cal file.
You can read more about GUID’s on this Wiki article. – http://en.wikipedia.org/wiki/Globally_Unique_Identifier
Notes can be used to add lots of different content to your map, including photos, reports, videos, and more. Here we’ll take a look at using notes to add a live Web cam, this one from Yellowstone National Park.
First, let’s have a look at the Yellowstone National Park Web site where we’ll find a page that contains the Web cam that provides a view of Old Faithful and the Upper Geyser Basin. At the Park site, under Photos and Multimedia, we’ll find a description and link that take us to the live Web cam page.
In ArcGIS Explorer we’ve switched our basemap from the default basemap to the physical basemap which includes the topo maps for the US. We use Find and enter “Old Faithful” to locate the geyser, then choose to move our location to the map which creates a note that we’ll edit.
Clicking the note pushpin to open its popup, we start editing by clicking Edit Popup.
Looking again at the Yellowstone National Park Web cam, you’ll see the URL that points to the cam at the top of the window.
Just copy the URL and paste it into the note popup contents.
And now we’ve got the Web cam placed on our map, so we can click to see if we can catch Old Faithful erupting, export it (save it as an NMC file), or share it by E-mailing it to others.
For more information on notes, check the following ArcGIS Explorer Help topics under Adding Notes to the map in Contents:
We have had several questions about configuring the Tax Parcel Editing Toolbar from those of you in the Land Records community who have downloaded it. Thank you for all of your good feedback and questions. The toolbar can be configured to set default values and behaviors for its tools. You can configure settings such as the feature class and field names used for searches and for retiring parcels, as well as default values for the Snake PIN tool and Zipper Task. If you would like to configure the toolbar settings to meet the specific needs of your tax parcel editors, read on for instructions.
An XML configuration file called TaxParcelDesktopTools.config is included with the Toolbar during installation. By editing the configuration file, you can change the settings for the toolbar. Here is where you can find the configuration file if you used the default installation path.
Before editing the file it is a good idea to make a copy as a backup. The file can be opened in Notepad, but it’s better to use an IDE application like Microsoft Visual Web Developer 2008 Express Edition to provide color coded text like you will see in the XML code shown throughout this blog entry. When you open the XML configuration file, you will notice that it contains a series of key and value pairs such as the one shown below. The key and value pairs control various behaviors of the toolbar.
<add key=“Search_ParcelID_FeatureClass“ value=“TaxParcel“ />
Warning: Do not modify the key text. Only the values should be altered.
Let’s examine the various components of the configuration file.
The first part of the configuration file configures the search capability of the toolbar. The keys control each feature class and field name to search on and control the zoom extent around a search result. Here are the keys for the Parcel ID search, for example:
<add key =“Search_ParcelID_FeatureClass” value=“TaxParcel“/>
<add key =“Search_ParcelID_FieldName” value=“PARCELID“/>
<add key =“Search_ParcelID_ExpandX” value=“1.5“/>
<add key =“Search_ParcelID_ExpandY” value=“1.5“/>
<add key =“Search_ParcelID_ExpandAsRatio” value=“true“/>
The Parcel ID search looks for a feature in the TaxParcel feature class with a value in the PARCELID field that matches the search value entered. When a parcel is found by the search or when a user clicks on a parcel from the list of results, the display zooms to 1.5 times the extent of the parcel in both the X and Y directions.
Notice in the configuration file that for each of the four types of searches included on the “Search By” list (Parcel ID, Conveyance, Map Page, or PLSS Polygon) there is a set of configurable parameters using XML key and value pairs. The purpose of the keys is as follows:
a. FeatureClass – This value is the name of the feature class for the layer in the map that the application will search.
b. FieldName – This value tells the application which field in the feature class to use for the search query.
c. ExpandX (optional) – If a record is found, the map will zoom to it but zoom out by this amount in the X direction.
d. ExpandY (optional) – If a record is found, the map will zoom to it but zoom out by this amount in the Y direction.
e. ExpandAsRatio (optional) – Controls whether the zoom out expansion is a ratio or an actual distance.
When a search query returns multiple results, it is up to the user to manually select the correct record to zoom to. This is done by double clicking a record in the Search Results Window. You can control whether the Search Results Window pops up automatically after every search using the following key.
<add key =“Search_SearchResultsWindow_OpenAfterSearch” value=“true“/>
The valid settings for the value key are:
a. true – The Search Window will appear automatically after every search.
b. false – The Search Window will remain hidden until the user clicks the button to show it.
The Retire Selected Parcels tool provides a quick way to export selected tax parcels to an archive feature class before they are edited. The keys control which feature classes and fields are used during the process.
<add key =“RetireTaxParcel_DynamicValuesFeatureLimit” value=“1000“/>
<add key =“RetireTaxParcel_OriginFeatureClass” value=“TaxParcel“/>
<add key =“RetireTaxParcel_OriginParcelIDField” value=“PARCELID“/>
<add key =“RetireTaxParcel_DestFeatureClass” value=“TaxParcelHistory“/>
<add key =“RetireTaxParcel_DestParcelIDField” value=“PARCELID“/>
<add key =“RetireTaxParcel_DestDocumentReferenceField” value=“DOCREF“/>
<add key =“RetireTaxParcel_DestHistoryTypeField” value=“HISTORYTYP“/>
<add key =“RetireTaxParcel_DestHistoryDateField” value=“HISTORYDT“/>
<add key =“RetireTaxParcel_DestCommentsField” value=“COMMENTS“/>
<add key =“RetireTaxParcel_HistoryTypeDomainList” value=“Retired Tax Parcel,ROW Vacation,Alley Vacation,Other,Unknown“/>
The purpose for each of the keys is described here:
a. DynamicValuesFeatureLimit – This is a control valve for the OnCreate trigger for Dynamic Values. Too many records can be very CPU intensive, thus the need for a limit.
b. OriginFeatureClass – Selected features will be copied from this feature class.
c. OriginParcelIDField – The specified field in the origin feature class will provide the parcel ID attribute value for the new record created in the History layer.
d. DestFeatureClass – This feature class is the target for the copied records.
e. DestParcelIDField – The parcel ID attribute value will be pasted in this destination feature class field for each record.
f. DestDocumentReferenceField – Information entered into the document reference input of the Retire Selected Parcels form is added into this destination feature class field.
g. DestHistoryTypeField – The History Type chosen on the Retire Selected Parcels form is added to this destination feature class field. An attribute domain that includes the valid history types should be set on this field.
h. DestHistoryDateField – This destination feature class field will hold the timestamp of when the record was added to the history layer.
i. DestCommentsField – The text entered into the Comments on the form is added into this destination feature class field.
j. HistoryTypeDomainList – Enter the valid domain values from your destination feature class history type field here. The drop-down list in the Retire Selected Parcels form comes from here.
The zipper task uses a form to control which features will be “zipped up” together within a given tolerance.
<add key =“ZipperTask_SearchDistance” value=“30“/>
The value for the SearchDistance key specifies the tolerance in map units for the coordinate search during the zipping process. The zipper task form uses this value.
Snake PIN Task
The Snake PIN task is used to create parcel identification numbers for parcels using a digitized sketch (snake path) by incrementing from a starting value.
<add key =“SnakePIN_TargetLayerName” value=“TaxParcel“/>
<add key =“SnakePIN_TargetLayerField” value=“PARCELID“/>
<add key =“SnakePIN_StartValue” value=“1“/>
<add key =“SnakePIN_IncrementValue” value=“1“/>
<add key =“SnakePIN_PrefixValue” value=“”/>
<add key =“SnakePIN_SuffixValue” value=“”/>
<add key =“SnakePIN_IncludeEnds” value=“true“/>
<add key =“SnakePIN_ParsePrefixes” value=“false“/>
a. TargetLayerName – This is the default layer for the task. The form will search for this layer in the map.
b. TargetLayerField – This is the default field in the target layer to use for the new PIN values.
c. StartValue – This is the default starting value for the first parcel found in the digitized sketch.
d. IncrementValue – Each subsequent parcel found along the sketch will have its PIN value equal to the last value plus this value.
e. PrefixValue – This will put a value in the Prefix box in the form. It is blank by default.
f. SuffixValue – This will put a value in the Suffix box in the form. It is blank by default.
g. IncludeEnds- This Boolean value specifies whether to update the PIN for the first and last parcels found along the digitized sketch.
h. ParsePrefixes – When the results of incremented values exceed the string length of the original value it may be necessary to drop a digit from the Prefix value. Since Prefixes are not always used this value is set to false by default.
The Combine Parcels tool uses the built-in Merge command with a little twist. It has the capability to capture shared boundaries before a merge and copy them to a historical line layer. This functionality can be turned on or off.
<add key =“MergeCmd_UpdateHistory” value=“true“/>
<add key =“MergeCmd_MergeLayer” value=“TaxParcel“/>
<add key =“MergeCmd_HistoryLayer” value=“ParcelBoundary“/>
<add key =“MergeCmd_HistoryField” value=“CARTLNTYP“/>
<add key =“MergeCmd_HistoryVal” value=“Tax Parcel Historical Boundary“/>
The purpose of each key is as follows:
a. UpdateHistory – This is the toggle for the historical boundary functionality. True = on and false = off.
b. MergeLayer – The merge layer is the feature class that contains the selected records that are being merged (tax parcels).
c. HistoryLayer – A line feature class that will take the shared boundaries of selected records before they are merged.
d. HistoryField – The name of the field in the history layer feature class that is used to symbolize old boundaries.
e. HistoryVal – The text value that will be written in the history field for the new record (typically a domain value).
The Dynamic Values extension is used to automatically update attributes when a feature is created or modified. It uses a table in the database to keep track of which functions will be performed on various datasets. Please consult the Tax Parcel Editing Toolbar Functionality blog entry for more information about this tool and its options for updating fields.
<add key =“DynamicValues_TableName” value=“DYNAMICVALUE“/>
<add key =“DynamicValues_EnabledOnStartUp” value=“true“/>
Following is the purpose of the dynamic value keys:
a. TableName – The name of the table that will be used for keeping track of the functions that need to be performed when data is created or changed in registered layer(s). This table should be in the map document.
b. EnabledOnStartUp – The extension can be toggled on or off from the toolbar. This parameter controls whether the extension is turned on when ArcMap is opened or not.
We hope you find this information to be helpful. Feel free to post comments or send an email to ArcGISTeamLandRecords@esri.com.