Skip navigation
All Places > Esri Technical Support > Blog > 2014 > December
2014
ArcGIS Pro is the latest addition to the Esri Desktop suite of software. It offers a brand new way to do GIS, and with that, a brand new way to license and distribute the software. Check out these six great tips to get started, and you'll be a pro in no time!1. You need an active ArcGIS Online Organizational Account.*

Your software purchase that is current on maintenance includes what we call an “Entitlement account” to use ArcGIS Online. In other words, an Entitlement account is a fancy term for the licensing structure that includes: one named user, and 100 annual credits per Desktop license purchased. This account comes at no additional cost and provides access for your organization to use ArcGIS Online, Esri Maps for Office, and ArcGIS Pro.agol.png

An activation e-mail was sent to the primary maintenance contact for each account. The e-mail included instructions and a hyperlink for activating and configuring the ArcGIS Online Organization. The person who activates the account is automatically set as the organization administrator and will have the necessary permissions to invite other users to the organization and then provision those users' ArcGIS Pro licenses.

Esri also provides a free version of ArcGIS Online called a public account. This type of account does not support licensing ArcGIS Pro. An Account Troubleshooting guide has been created to provide more information.If your organization does not have an ArcGIS Online Organizational account or you would like to upgrade your public account, please contact Esri Customer Service.* It is also possible to setup ArcGIS Pro to get a license through Portal for ArcGIS. 2. You can download the software from My Esri.

My Esri is a new customer solution that integrates your ArcGIS Online, Support, and Customer Care accounts into a single site. In order to install ArcGIS Pro, sign in to your My Esri account as the Primary Maintenance Contact.

If your account is current on maintenance, the Primary Maintenance Contact should have permission to view an Organizational dashboard. The dashboard includes the option to filter by products and then by downloads in order to download the software.downloadpro.pngIf you do not see the option to download software in My Esri, please contact the primary maintenance contact for your account or Esri Customer Service.3. Provisioning the licenses in ArcGIS Online is flexible based your needs.

With an ArcGIS Online Organizational account and administrator permissions, you should see the following option when you sign in to your account:managelie.png

Click “Manage Licenses” to get started provisioning your ArcGIS Pro Licenses. The licenses are assigned to named users in your organization. You can provision each user individually, or select multiple users to batch provision the licenses. After making your selection, click the “Configure” button to grant the license levels and extensions.lasjdlf.png

Good news: the ArcGIS Pro licenses and extensions can be reassigned at any time! As an administrator you can update or revoke the use of license in real time. It may help to think of ArcGIS Online as a cloud-based licensing manager driven by the named users in your organization.If your organization does not have a “Manage Licenses” option, please contact Esri Customer Service.4. ArcGIS Pro Licenses can be “checked out” for offline use.

If you need to work with ArcGIS Pro in a disconnected mode, you can check out a license. You can check out a license on only one machine at a time, so you won't be able to sign in or use ArcGIS Pro on any other machine while your license is offline. To use ArcGIS Pro on other machines, you need to check in the license on the original machine where you took the license offline.How to check out a license: Open a project > Click the “Project” tab > Licensing > check the box for: Authorize ArcGIS Pro to work offline.authorize.pngHow to check in a license: Uncheck the box for “Authorize ArcGIS Pro to work offline”. If you find this box is greyed out, it is because you are no longer signed into ArcGIS Online. To resolve this, Open a project > Click the “Project” tab > Portals > right-click your portal connection > Sign in. Now you should be able to check in your offline license in the Licensing tab.signin2.pngIf you are having trouble checking in or out offline licenses to use ArcGIS Pro, please contact Esri Technical Support.5. Installing ArcGIS Pro is a breeze!

Once the software has been successfully downloaded from My Esri, ArcGIS Pro can be installed. Please review the install guide before getting started. You do not need to uninstall any previous version of desktop products; ArcGIS Pro can run side-by-side with any version of ArcMap, giving you the flexibility to test your ArcMap workflows in ArcGIS Pro.If you have a question or issue with installing ArcGIS Pro, please contact Esri Technical Support.6. ArcGIS Pro gives you brand new functionality.

ArcGIS Pro has a 64-bit architecture and leverages your machine's GPU and multithreading to keep the user interface responsive and to utilize additional CPU cores on the local machine. It supports multiple layouts and map views that can be linked and explored in both 2D and 3D. The new drawing and output engine in ArcGIS Pro also includes new output capabilities, such as the ability to export your maps with native transparency support. It also includes some brand new geoprocessing tools, such as Space Time Cube and Emerging Hotspots. For more information about platform GIS or ways to integrate ArcGIS Pro into an existing workflow, please refer to the help or Learn GIS.
Julia G. - Desktop Support Analyst
ArcGIS Runtime SDK for Android and for iOS allows developers to consume different kinds of awesome services from ArcGIS for Server. However, when debugging a mobile application, sometimes it is difficult to determine if the issue comes from the service or from the application. Setting up the server and making it send an HTTP response for a test can be a lot of work. But what if we can stop time and make a “fake” response?

In this blog, I’ll show how to set a breakpoint and change the HTTP response while debugging a mobile application.

First, let’s get your mobile device connected and set Fiddler as a proxy. Click here to download Fiddler. To set up an Android device with Fiddler, click here for steps on how to configure Fiddler for Android. For an Apple device, click here.

Second, we need to enable the breakpoints in Fiddler. There are two ways of doing it:
  1. Navigate to Rules > Automatic Breakpoints > After Response. It will stop at any response.
  2. In the QuickExec box (the black box at the bottom), type "bpafter yourpage.svc". Fiddler will now stop at a breakpoint before all requests to any URL containing "yourpage.svc". Type "bpafter" with no parameters to clear the breakpoint.

Next, let’s run the application. It stops in Fiddler and shows:blog11.png

Let’s look at the response.

If you don’t want to change the response, click Run to Completion. It goes to the next breakpoint or runs to the end.

What’s more, if you want to change the HTTP response, change it in 'Raw'. You can modify the content in the text box and click Run to Completion; the device gets the modified response.blog2.png

Now, you can look at your device and see the modifications!

Enjoy coding!
Rachel G. - SDK Support Analyst
At Esri Technical Support, we enjoy working with JavaScript to create powerful web applications. I’d like to take this opportunity to share different ways of listening for events in our JavaScript API with On Style Events, which is the recommended pattern for event handling. As a previous blog focused on different patterns of event handling, this blog will stick with the best practices, tips, and tricks.

Note: Click images to enlarge.

The modular On Style Events (which means something like à la mode in French) are a bit different than Connect Style Events. Why does this matter? Because On Style Events are the recommended way to listen for and handle events with the ArcGIS JavaScript API. See the screenshot below for snippets of event styles.
on-style-event.png

Snippets of Event Styles



Since version 3.5 of the JavaScript API, these event handling functions receive a single event object from which all the event object properties can be accessed. Typically, this object is called event or evt in our samples. Instead of juggling multiple objects like with Connect Style, we can now dig into one object to access the information we need. There are two ways to use the On Style Events - with and without Dojo. The syntax for these event styles can be found in the JavaScript API reference. Let’s look at a couple code snippets to compare On Style Events with and without Dojo:on = with Dojo (on is an alias for the dojo/on module)
on(map, ’zoom-end’, function(evt) {
     console.log(evt.extent.xmin);
     console.log(evt.zoomFactor);
     console.log(evt.anchor.x);
     console.log(evt.level);
});
map.on = without Dojo (map.on means we can do this event ourselves)
map.on(’zoom-end’, function(evt) {
     console.log(evt.extent.xmin);
     console.log(evt.zoomFactor);
     console.log(evt.anchor.x);
     console.log(evt.level);
});

By examining the above code snippets, we can see that the main difference when using On Style Events is in what the event listeners return. We can also see similarities among the new styles of event handlers, but there are important differences worth exploring.

Not bad, right?

For more better understanding, here's a real-world example. You can follow along at home with the JavaScript Events application hosted on jsfiddle.net. Use the following instructions to follow along (I used Google Chrome for this example):

1. Open the application in your browser.

2. Press F12.

3. Navigate to the Console Tab, if not open already.

The following screen displays:
JSFiddle.png

JSFiddle



This application shows the functionality of dynamic layers and our elegant dark gray basemap tiles (you can also try the application live here: JavaScript Events application on GitHub). As you zoom in and out of the map, different layers become visible as indicated in the lower-left information box. There are six event listeners in this application. Let’s go through them one by one and see what they do.1) map.on("load", function()

When the map first loads, it immediately runs the unnamed function. This listener will only be called once while the application is running, and the listener does not take any arguments in the function. The purpose is to define the four other event listeners and to call the updateScale() function. This allows the scale to be defined in the information box without panning or zooming.2) map.on("zoom-end", updateScale)

After zooming in or out of a map, this event listener will call the updateScale() function. This function updates the map scale in the information box and in the Console tab. This listener does not take any arguments in the function, either.

See below for the event handler:
function updateScale() {
     dojo.byId("map-scale").innerHTML =
       dojo.number.format(parseInt(map.getScale()));
     console.log("Map scale: "
       + dojo.number.format(parseInt(map.getScale())));
}
3) map.on("pan-end", updateExtent)

When a user pans around the map, this event listener will call the updateExtent() function, which will update the map extent in the Console tab. This listener takes the generic evt argument in the function.Pro tip: There are many other attributes that you can dig out of the evt object. To see what is available, use the following steps (I used Google Chrome for this example):

1. Press F12 to open the developer's tools.

2. Navigate to the Source tab.

3. Find the section of code with this event handler (around line 170).

4. To set a breakpoint, click the line number to the left of the code.

See below for a screenshot of this process.
breakpointed.png

Breakpoint in Sources tab (Google Chrome)



5. Refresh the application, and when the application pauses on the breakpoint, switch to the Console tab and type “evt” into the prompt.

You can now expand the evt object to see what’s there and experiment with how to call it. View the screenshot below to see how the evt appears in the Google Chrome Console tab.
console_evt.png

evt in Console tab with Google Chrome



See below for the event handler:
 function updateExtent(evt) {
     console.log("Map extent");
     console.log(" XMin: " + evt.extent.xmin);
     console.log(" YMin: " + evt.extent.ymin);
     console.log(" XMax: " + evt.extent.xmax);
     console.log(" YMax: " + evt.extent.ymax);
}
4) map.on("zoom-start", updateOldLevel)

When a user zooms in or out of the map, as soon as the zooming action starts, this event listener will call the updateOldLevel() function. This updates the zoom level of the map in the Console tab. Again, the listener takes the generic evt argument in the function.

Please see below for the event handler:
function updateOldLevel(evt) {
     console.log("Map zoom level was: " + evt.level);
}
5) map.on("zoom-end", updateNewLevel)

When a user zooms in or out of the map, as soon as the zooming action stops, this event listener will call the updateNewLevel() function. This updates the zoom level of the map in the Console tab. Notice that it again takes the generic evt argument in the function.

Please see below for the event handler:
function updateNewLevel(evt) {
     console.log("Map zoom level is: " + evt.level);
}
6) usaLayer.on("load", load)

When the application first loads the usaLayer map service, this event listener calls the load() function, which displays the minScale values for each layer in the Console tab. If you open the map service from REST (http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer) and compare the minScale values for each layer, you see that the dynamicLayerInfo class in the code overrides each layer, which is pretty interesting. Notice that it again takes the generic evt argument in the function.

Please see below for the event handler:
function load (evt) {
     console.log("layer 1 minScale: "
       + evt.layer.dynamicLayerInfos[0].minScale);
     console.log("layer 2 minScale: "
       + evt.layer.dynamicLayerInfos[1].minScale);
     console.log("layer 3 minScale: "
       + evt.layer.dynamicLayerInfos[2].minScale);
     console.log("layer 4 minScale: "
       + evt.layer.dynamicLayerInfos[3].minScale);
}

For most of you, this is a refresher about working with On Style Events and the JavaScript API. But also for most of you, this will be new and exciting information to take your web apps (and salaries) to the next level. Let’s take a minute to review what we learned here. On Style Events have been around for a while and are slightly different than Connect Style, but are just as easy to use. On Style Events are simple and powerful ways of listening and handling many different event patterns. You can dig into all the arguments in the Console tab by setting a breakpoint and calling the argument object "evt".

Please consider reading our Concepts documentation for more information about working with events in the JavaScript API:https://developers.arcgis.com/javascript/jshelp/inside_events.html

Stay tuned until next time, when we discuss how to make your map "pop" with the new dojo.redecorate method. Happy eventing!
Noah S. - SDK Support Analyst
You want to combine your data. Okay, so which tool should you use?Combine1-300x291.jpg

Do you ever want to combine multiple spatial datasets in ArcMap, but you aren’t sure which tool to use? You may wonder if you should use Merge, Append or Union, or if there are other tools available. Seriously – what does Dissolve do!? ArcGIS has a lot of tools that perform many useful operations, but sometimes it can be hard to figure out which one to use. Here we’ll take a look at the differences among these tools to help you decide which one will help achieve your particular goal.Merge 
The Merge tool combines multiple input datasets of the same geometry type (e.g., polyline, polygon, or point), or tables, into a new feature class. The output will have an extent that encompasses all of the features included in the merge. The relationship of input features relative to each other does not change, so the physical boundMerge1.pngaries of the features are not actually blended together - the features simply belong to the same feature class after the Merge. Therefore, the number of features in the output is equal to the sum of features used in the Merge.  No new features are created for where areas overlap.

With Merge, you can decide which attributes are transferred to the output, and these can be any combination of the input attribute fields. It is not necessary for inputs to have the same coordinate system to be merged, as the tool does this on-the-fly. However, the output defaults to the coordinate system of the first input unless specified in the Environment Settings.Example: Your colleagues collected data in different parts of the state. One collected population and age data for the western counties, while the other collected population, age, and gender information for the eastern counties. You obtain the two feature classes from your colleagues and use Merge to create a single feature class with population and age attribute information for the entire state.Append-296x300.jpgAppend The Append tool does exactly what the name implies: it adds, or appends, data from one feature class to another feature class of the same type. No new dataset is actually created, so you have to be sure you want to change the original data before using this tool. You can use Append for point, line, or polygon feature classes; tables, rasters, raster catalogs, annotation feature classes, or dimensions feature classes – the only requirement is that the inputs are the same type as the target.  In this case, you can choose to only append feature classes with the same schema (set of attributes, domains, and so forth), or you can choose to append different schemas. If appending a feature class with a different schema other than the target, the attributes will not be transferred to the target feature class.

The full geometry of the underlying features is preserved, and the number of features in the output is equal to the sum of the features from the appending layers and the target layer.Example: You work for the Department of Parks and Recreation for your city, and you have a detailed feature class with all the spatial and attribute information for city parks. A new park was just finished in the downtown area, and you have been asked to update the master parks polygon feature class. Your colleague sends you a shapefile of the new park polygon with all the required attributes. After ensuring the shapefile is correct and contains the right information, use Append to add the shapefile to the master parks feature class.  Union-300x270.jpgUnionUnion can do some nifty things, but here’s the catch: it only works with polygons. This tool is interesting because the output of the tool contains features and/or parts of features representing areas of unique intersection, as well as features and/or parts of features representing no intersection among all the features in the input feature classes. Attributes from all features involved in the intersection are contained in the output record for the newly created feature that represents the intersecting feature or feature part.  Features in the output representing areas with no intersection will have the FID_<FcName> value of -1.Example: You are looking for regions with specific combinations of soil and rainfall to help you find a good place to grow certain crops. You have two feature classes: one with the location of certain soil types and the other with ranges of precipitation.  You use the Union tool to find all the areas with unique combinations of rain and soil.Other Tools: DissolveDissolve is used for combining features from a single dataset based on aDissolve_test1-150x150.png common attribute. The tool dissolves the boundaries between features to aggregate them by category. If you have a feature class with a polygon representing each state and you just want a feature class that represents the United States, use the Dissolve tool and specify the 'country' field as the dissolve attribute. If you select the multi-part option, the output contains one polygon with no boundaries between states. You can also choose to calculate statistics of attributes during the dissolve. For example, you can calculate the sum of all state populations to get the population for the entire US.Aggregate PolygonsThis tool combines polygons within a specified distance of each other into new polygon features. The input is a single polygon layer with multiple features, and the output is a polygon layer with a reduced number of polygons encompassing the area of the input features. You can set the distance for aggregation and choose to preserve orthogonal angles in the output.

Note: Aggregate everything within a 500 meter radius.Spatial JoinThe Spatial Join tool does not combine the physical features of two datasets. Rather, it appends the attributes of a layer to a different layer. A new feature class is created based on the geometry of the target features, but the attributes of the joined features are added to the output attribute table. This tool is useful when you are looking for statistics about features located in relation to other features. Additionally, the inputs can have any combination of feature types – points can be joined to polygons, polygons can be joined to lines, and so forth.Combine This tool is specific to raster datasets. The Combine tool combines raster datasets in such a way where each output pixel has a value indicating a specific combination of input values. This is really useful for categorical raster data. For example, if you have three raster datasets, and each represents a different type of risk (e.g. drought, earthquake, and floods), use the Combine tool to find all the different combinations of risk that exist throughout an area. Which areas have a high risk of earthquakes and floods, but a low risk of drought? This combination is represented by a specific value in the output of the Combine tool.Intersect1-150x150.jpgIntersectThe Intersect tool calculates the geometric intersection of all input features. So what’s a geometric intersection? It’s the physical geometry of the overlapping features. If you have different input types (e.g. points and polygons), the output will use the lowest dimension; points have a lower dimension than lines, and lines are lower than polygons. Use this tool when you are only interested in the unique intersections between features in all your inputs, and when an intersection between the inputs is not important for the analysis.Erase
I include the Erase tool here because it does the opposite of the Intersect tool - the Erase tool removes overlapping areas of input feature classes. Use the Erase tool to remove features or parts of features representing an intersection between the input feature classes.  The output feature class only contains features or parts of features that do not intersect with the erased feature class.

There are many tools you can use to combine, overlay, or spatially relate data that share common locations– but don’t worry.  The next time you're confused about which of these tools to use, ask yourself this question: "What information do I want in my output?" Use this blog as a guide to discover the best tool for you.
Julia L. - Geodata Support Analyst

Filter Blog

By date: By tag: