|
POST
|
Brian, The 2020 DevSummit will be in Palm Springs from Tue Match 10, 2020 through Fri 13 March, 2020, with pre-conference Sun-Mon, 8-9 March. The registration page should open sometime during September, with all the other details you are looking for.
... View more
08-01-2019
09:49 AM
|
0
|
0
|
905
|
|
DOC
|
As for 2020: DevSummit in Palm Springs will take place on Tue-Fri, 10-13 March, 2020, with pre-conference workshops Sun-Mon, 8-9 March. The registration page should be open sometime during September, with all the details.
... View more
08-01-2019
09:44 AM
|
1
|
0
|
5051
|
|
POST
|
I think that's the only way. You can get the list of edited datasources using a project property: https://pro.arcgis.com/en/pro-app/sdk/api-reference/#topic20358.html If you want to re-use some of the states and conditions of ArcGIS Pro for your button(s) you can take a look at the editing.daml file at this default location: C:\Program Files\ArcGIS\Pro\bin\Extensions\Editing For example search for: esri_mapping_TOCSelectionValidForReconcile_condition You could use this condition to enable your button's functionality without having to listen to any changes in the TOC.
... View more
07-31-2019
08:51 AM
|
0
|
1
|
6190
|
|
POST
|
Hi Kevin, I haven't tried this yet, but if you listen to the TOCSelectionChangedEvent you get the MapViewEventArgs parameter which contains the MapView property. If you use the MapView.GetSelectedLayers() method you should be able to get the DataSource(s) from the returned list of layers.
... View more
07-31-2019
08:03 AM
|
0
|
3
|
6189
|
|
POST
|
Tom, You need a MapTool to do this. I added a sample of a simple map tool which displays feature data on a dockpane here: https://github.com/Esri/arcgis-pro-sdk-community-samples/tree/master/Map-Exploration/MapToolIdentifyWithDockpane The map tool calls OnSketchCompleteAsync with the sketched geometry (as a parameter) by the operator (point, line, poly ...) and you can use that method to find the features contained by that geometry and then display result information in your WPF user control (dockpane, window etc.) - Wolf
... View more
07-29-2019
03:56 PM
|
1
|
0
|
2093
|
|
POST
|
Hi Kevin, You can look at the sample here: https://github.com/Esri/arcgis-pro-sdk-community-samples/blob/f5f9dda18efa173a56d128f3ea64ca34ac3f68a9/Editing/AddFeatureTest/Module1.cs specifically the GetDatasource method. This method will retrieve the data source for your BasicFeatureLayers. In order to get a list of all layers you have to use the active MapView's Map member and get the list of layers from there: MapView.Active.Map.Layers Make sure to check if the layer is really a BasicFeatureLayer type. Hope this answers your question. - Wolf
... View more
07-24-2019
09:37 AM
|
0
|
5
|
6189
|
|
POST
|
Hi Justin, When you add additional well-known folders for Add-ins via the registry these folders are simply added to the ones you can manually add (given you have permissions) via the Pro "Add-in Manager". See here: https://github.com/Esri/arcgis-pro-sdk/wiki/ArcGIS-Pro-Registry-Keys#settings-keys . Once you add an esriAddinX add-in file to a well known add-in folder the following will happen: Each time Pro starts up, Pro checks those folders for esriAddinX files, and unzips the add-in content (in the 'esriaddinx' file) under the log-in user profile folder: ...\AppData\Local\ESRI\ArcGISPro\AssemblyCache. When the add-in is instantiated by Pro that folder location (…\AppData\Local…) is used to load the Dlls required to run the add-in. If you delete the AssemblyCache folder completely step 1. above will repeat. From your description I can't really tell what the problem is, but in summary the DLL location for add-ins cannot be changed, and I don't understand why that would be needed. - Wolf
... View more
04-26-2019
10:35 AM
|
1
|
1
|
3277
|
|
POST
|
Hi Adam, The SDK doesn't provide any means to open and manipulate a project without running ArcGIS Pro, however, you can unzip the project file (manually or programmatically) and examine its content. The content is in XML format including the CIMGISProject. - Wolf
... View more
04-04-2019
04:05 PM
|
0
|
0
|
1279
|
|
POST
|
Sorry, I guess I should have tried this first. It would have been my preferred implementation. It appears that when you use SketchOutputMode = SketchOutputMode.Screen the OnSketchCompleteAsync geometry parameter has a null spatial reference (hence the exception you get). Most API functions actually allow you to directly use this 'screen spatial referenced' geometry, but if you want to get a MapPoint, Line, Polygone etc. you need to use the MapView.Active.ClientToMap method to convert to a useful geometry. So the short answer can be found in this snippet: protected async override Task<bool> OnSketchCompleteAsync(Geometry geometry)
{
if (geometry.SpatialReference == null)
{
// screen coordinates
var screenPointAsMapPoint = geometry as MapPoint;
if (screenPointAsMapPoint != null)
{
var pnt = new System.Windows.Point {
X = screenPointAsMapPoint.X,
Y = screenPointAsMapPoint.Y};
var mapScreenPoint = await QueuedTask.Run<MapPoint>(
() => MapView.Active.ClientToMap(pnt));
_graphic = await this.AddOverlayAsync(mapScreenPoint, _pointSymbol.MakeSymbolReference());
}
}
} For the long answer I tried the sample snippet below by creating a tool called MapToolScreenToMap. This tool uses the screen coordinates (points only) and converts the Point to a MapPoint using the current Map's spatial reference. I tried both 2D and 3D, both seem to work. internal class MapToolScreenToMap : MapTool
{
private CIMPointSymbol _pointSymbol = null;
private IDisposable _graphic = null;
public MapToolScreenToMap()
{
IsSketchTool = true;
SketchType = SketchGeometryType.Point;
SketchOutputMode = SketchOutputMode.Screen;
}
protected async override Task OnToolActivateAsync(bool active)
{
if (_pointSymbol == null) _pointSymbol = await CreatePointSymbolAsync();
}
protected async override Task<bool> OnSketchCompleteAsync(Geometry geometry)
{
if (geometry.SpatialReference == null)
{
// screen coordinates
var screenPointAsMapPoint = geometry as MapPoint;
if (screenPointAsMapPoint != null) {
var mapScreenPoint = await QueuedTask.Run<MapPoint>( () => MapView.Active.ClientToMap(new System.Windows.Point { X=screenPointAsMapPoint.X, Y =screenPointAsMapPoint.Y}));
_graphic = await this.AddOverlayAsync(mapScreenPoint, _pointSymbol.MakeSymbolReference());
}
}
else
{
// map coordinates
_graphic = await this.AddOverlayAsync(geometry, _pointSymbol.MakeSymbolReference());
}
return true;
}
protected override Task OnToolDeactivateAsync(bool hasMapViewChanged)
{
if (_graphic != null) _graphic.Dispose();//Clear out the old overlay
_graphic = null;
return base.OnToolDeactivateAsync(hasMapViewChanged);
}
internal static Task<CIMPointSymbol> CreatePointSymbolAsync()
{
return QueuedTask.Run(() => SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.RedRGB, 14, SimpleMarkerStyle.Circle));
}
}
... View more
03-28-2019
08:10 PM
|
0
|
0
|
1864
|
|
POST
|
Hi Fayu, You can use the following snippet to project your geometry to your Map's spatial reference: var mapGeom = GeometryEngine.Instance.Project(screenGeometry,
MapView.Active.Map.SpatialReference);
... View more
03-27-2019
11:12 AM
|
0
|
2
|
1864
|
|
POST
|
Your requirements are a bit confusing. If you really need "user-defined parameters" then Charlie's step-by-step guide is exactly what you need and simple to implement. Check under this section: https://github.com/Esri/arcgis-pro-sdk/wiki/ProGuide-Custom-settings#step-4-add-a-settingssettings-file-to-define-the-user-preferences-to-arcgis-pros-userconfig-file In essence you use the standard recommended .Net implementation for your user settings (make sure to use user scope). Below is a summary of the essentials:
... View more
03-22-2019
01:43 PM
|
0
|
2
|
1974
|
|
POST
|
Yes, having multiple add-ins active can be a problem. Our samples usually are not 'production hardened' meaning they are not checking or preventing every conceivable error. We try to limit to sample code to the minimum required snippets to accomplish a specific task and excessive error checking can take away from this. Often another add-in throws an exception making you think that your add-in or configuration is the cause. To perform 'isolated' testing I usually remove all add-ins except for the one I need to test/debug. Later you can then do 'integration' testing by adding more add-ins to test your workflow. I checked the "EditEvents" sample and couldn't find a problem with that sample when running the sample by itself.
... View more
03-22-2019
11:57 AM
|
0
|
0
|
2517
|
|
POST
|
I think that there's a coding problem in your solution. I tried the same steps (including a filled and an empty list of existing ArcGIS Pro projects) and was not able to duplicate your issue. I think your code is throwing an exception somewhere. In order to debug this issues, you can enable the "common runtime exceptions" in your debugger through the "Exception Settings Windows" (Ctrl + Alt + E) like shown below - check the "Common Language Runtime" checkbox: Then debug again and see if the debugger stops and shows a problem. If that doesn't work I would do the steps again from scratch, but make no modifications this time and see if that works. - Wolf
... View more
03-21-2019
11:13 AM
|
0
|
3
|
2517
|
|
POST
|
You could as a workaround use either an embeddable control or an overlay control to display your information on top of a map view, like here: MapToolWithOverlayControl
... View more
03-18-2019
04:51 PM
|
0
|
1
|
2194
|
|
POST
|
I assume that you are talking about the 'status bar' that is located on the bottom of each Pane (i.e. the Map View). Currently there are no methods in the Pro API that allow customizing this status bar. You can use "ArcGIS Pro SDK Ideas" to suggest this feature for a future release. - Wolf
... View more
03-18-2019
04:43 PM
|
0
|
0
|
2194
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 10-29-2025 10:48 AM | |
| 1 | 05-24-2021 09:04 AM | |
| 1 | 12-03-2020 08:44 AM | |
| 1 | 10-07-2025 07:27 AM | |
| 2 | 12-29-2025 10:03 AM |
| Online Status |
Offline
|
| Date Last Visited |
03-30-2026
03:25 PM
|