|
IDEA
|
The Experience Builder Query Widget currently allows for specifying a spatial filter using "Selected features from Data Source", which then requires pre-defined layers to be selected for the filter. This has to be done for each query configured and can be very painful where there are multiple layers in the map. An obvious solution to this would be to have an "All layers in map" option (preferably default), which would allow all layers from the specified map to be used in the spatial filter, rather than specifying the specific layers to use (see images). This would be very similar to how the Web App Builder Query Widget works, which does not require the specific layers to be selected for use in the spatial filter and therefore allows all suitable layers in the map to be used.
... View more
04-04-2023
08:00 AM
|
18
|
16
|
7666
|
|
IDEA
|
A calculated default value that remains editable (if the field is editable) is absolutely a requirement. The field calculations are generally there to speed up and simplify data collection, but should not prevent the user overriding them if required.
... View more
03-02-2023
01:47 AM
|
0
|
0
|
3254
|
|
POST
|
We have developed arcpy scripts to automate layer publishing that follow the examples at: https://pro.arcgis.com/en/pro-app/latest/arcpy/sharing/mapimagesharingdraft-class.htm We have a requirement for the correct copyright/attribution/credits to be populated on both the resulting feature service and feature layer within the feature service, so that these are displayed correctly in the OOB attribution on maps and apps. The documentation states: However, when we publish layers using arcpy, the credits/copyright is not populated on the resulting feature service or feature layer (within the service): If we override the credits after generating the sddraft (using sddraft.credits = "Some text"), the copyright is populated at the feature service level, but not at the feature layer level. For the credits to appear correctly in map viewer and apps, they need to be populated at the feature layer level. Note that it works when manually publishing from ArcGIS Pro, but we need to publish in an automated way as part of a CI/CD pipeline, so this is not an option. We have raised with Esri support and they have created an enhancement request, but has anyone else found a work around for this issue? Is there a way to update the copyright on the feature layer after the service has been published (e.g. with the rest api). We are using ArcGIS Enterprise 10.9 (Server & Portal) and not ArcGIS Online and these are standard feature layers and not hosted feature layers. Any thoughts much appreciated. Sample python code for generating an SD file below (which can then be published in server manager). John import arcpy
import os
import sys
import xml.dom.minidom as DOM
#params
if len(sys.argv) != 8:
print("Incorrect arguments. Usage: creditstest.py <portal url> <server url> <portal user> <portal password> <pro project path> <out directory path> <override credits (Y/N)>")
sys.exit(1)
portalUrl = sys.argv[1]
serverUrl = sys.argv[2]
portalUser = sys.argv[3]
portalPassword = sys.argv[4]
arcgisProProjectPath = sys.argv[5]
outDirPath = sys.argv[6]
overrideCredits = sys.argv[7]
# layer from project
print("Opening Pro project...")
proj = arcpy.mp.ArcGISProject(arcgisProProjectPath)
map = proj.listMaps('Map')[0]
layer = map.listLayers()[0]
# Set output file paths
print("Building output file paths...")
sddraftFilename = "{0}.sddraft".format(layer.name)
sddraftPath = os.path.join(outDirPath, sddraftFilename)
sdPath = sddraftPath.replace(".sddraft",".sd")
#If any old service definitions exist, remove them
for filePath in [sddraftPath,sdPath]:
if os.path.exists(filePath):
os.remove(filePath)
# Sign in to portal
print("Signing in to Portal...")
arcpy.SignInToPortal(portalUrl, portalUser, portalPassword)
#Create map image sharing draft
print("Generating SD draft...")
sddraft = map.getWebLayerSharingDraft("FEDERATED_SERVER", "MAP_IMAGE", layer.name, [layer])
#Set draft properties
sddraft.federatedServerUrl= serverUrl
sddraft.copyDataToServer = False
#sddraft.overwriteExistingService = True
#sddraft.description = ""
#sddraft.summary = ""
# Set the credits/attribution/copyright based on the credits in the layer metadata
# Note this ONLY sets the credits at the service level and NOT at the layer level
# (which is required for copyright to display in map viewer for feature layers)
if overrideCredits.upper() == "Y":
print("Overriding credits with layer credits...")
layerCredits = layer.metadata.credits
if layerCredits != None and len(layerCredits.strip()) > 0:
sddraft.credits = layerCredits
#Export service definition draft
print("Exporting SD draft...")
sddraft.exportToSDDraft(sddraftPath)
# Modify sddraft to enable feature access
# Read the file
print("Add feature server to SD draft...")
doc = DOM.parse(sddraftPath)
# Find all elements named TypeName
# This is where the addition layers and capabilities are defined
typeNames = doc.getElementsByTagName('TypeName')
for typeName in typeNames:
# Get the TypeName to enable
if typeName.firstChild.data == "FeatureServer":
extension = typeName.parentNode
for extElement in extension.childNodes:
# Enable feature access
if extElement.tagName == 'Enabled':
extElement.firstChild.data = 'true'
# Write to a new .sddraft file
sddraftMod = layer.name + '_mod_xml' + '.sddraft'
sddraftModPath = os.path.join(outDirPath, sddraftMod)
with open(sddraftModPath, 'w') as f:
doc.writexml(f)
# Stage service
print("Generating SD file...")
arcpy.StageService_server(sddraftModPath, sdPath)
print("Successfully generated SD file.")
... View more
02-07-2023
08:13 AM
|
2
|
1
|
1360
|
|
POST
|
I have now raised a support request for this issue. After further investigations and experimentation, it seems that union will use the shapely union function when arcpy is not available, which also involves a conversion behind the scenes between Esri and shapely geometry. It seems that after unioning, the resulting polygon has both incorrect ring orientation (exterior rings should be clockwise orientation) for Esri and the srid is also set to 4326 regardless of what the input srids were. I've had to come up with a fix to re-orient the polygons following union, which seems to work in most cases and the geometry is then valid and can be added to a feature layer successfully. However, there also seem to be multiple issues with the shapely union function, especially when using multi-part polygons as input, and this still results in invalid geometries in some cases. Overall I'm not that impressed with what should really be a straightforward spatial operation in the ArcGIS API for python. I should not be having to write code to fix the resulting geometry issues.
... View more
02-03-2023
08:30 AM
|
0
|
0
|
3949
|
|
POST
|
I have a requirement to process some features from a feature layer in ArcGIS Online to merge them together based on unique combinations of attributes and write the output to another feature layer. We want to do this in a scheduled notebook, but have been having some issues with the union operation when it comes to creating multi-part polygons. When I union two polygons that are disjoint (not intersecting) I expect the union operation to create a single multi-part polygon, as it does in desktop and arcpy. However, when we do this in a standard ArcGIS Online notebook, the result is not a multi-part polygon, but just the first of the two polygons used as input. The below is a test using an ArcGIS Online notebook. When the input polygons are intersecting, the union works as expected. However, when they are disjoint, it doesn't work as expected: I have tested the exact same notebook code within ArcGIS Pro and get a multi-part feature when the input polygons are disjoint (non intersecting), which is expected: I have attached the test python code. I know there are some differences in the way the API works in ArcGIS Online vs ArcGIS Pro, as arcpy is not used in the standard Online notebooks. However, the documentation for the API seems to suggest union is supported and will use the shapely library when arcpy isn't available. It seems like a fairly basic thing to want to do, so does anyone know how to get this union working, so that unioning two disjoint polygons results in a multipart polygon, in an ArcGIS Online notebook without arcpy? Is there something specific I need to do to use shapely?
... View more
01-30-2023
11:19 AM
|
1
|
2
|
3991
|
|
POST
|
It was absolutely the windows firewall, which was on by default. Not quite sure how I missed that, but adding rules to allow the required port numbers on portal and server VMs to the windows firewall resolved it. Note that no other NSG rules were required as by default, VMs in the same VNet can communicate on all ports. Thanks for the responses. The powershell Test-NetConnection tip is also a useful one.
... View more
01-30-2023
01:04 AM
|
0
|
0
|
2748
|
|
POST
|
We are attempting to put together a development ArcGIS Enterprise build in Azure that uses the following: ArcGIS Server installed on a Windows VM (inc data store etc). ArcGIS Portal installed on a Windows VM. The Server and Portal components (inc. Web Adaptors) have been installed manually on these VMs. We are NOT using Cloud Builder and do not wish to at this point for various reasons (mainly that this is not generally allowed to be used in customers environments). Both VMs are within the same VNet and no specific firewall or NSG rules have been configured as by default all communication is allowed between VMs in the same VNet (as I understand it). However, we are having connectivity issues when attempting to Add the ArcGIS Server to Portal (step 14 in https://enterprise.arcgis.com/en/portal/10.9/install/windows/tutorial-creating-your-first-web-gis-configuration.htm). When we do this it fails to connect to server on the admin URL (i.e. port 6443). When trying to open to the admin URL (e.g. https://machine-name:6443/arcgis) via a browser on the Portal VM, it also fails to connect with a timeout. However, we can browse to the Server web adptor URL (e.g. https://machine-name/server) from the Portal VM with no issues. From this, we assume that something is blocking traffic on port 6443 from the Portal VM to the Server VM. Does anyone know why we would have such communication issues between two VMs in the same VNet? Are there specific rules we need to configure to allow communication on port 6443? We are using: Standard build Windows Server 2022 VMs in Azure. ArcGIS Server 10.9 ArcGIS Portal 10.9 And are following the steps documented at https://enterprise.arcgis.com/en/portal/10.9/install/windows/tutorial-creating-your-first-web-gis-configuration.htm. Except that we are using two VMs and not a single machine deployment.
... View more
01-26-2023
01:30 AM
|
0
|
4
|
2829
|
|
POST
|
Hi - I have just noticed the same issue in 10.9.1 when trying to lock down a stand-alone ArcGIS Server with specific allowedorigins following this doc - https://enterprise.arcgis.com/en/server/10.9.1/administer/windows/restricting-cross-domain-requests-to-arcgis-server.htm. I've used our ArcGIS Online url (e.g. https://<orgname>.maps.arcgis.com) in the AllowedOrigins, but found that I can access the services on this ArcGIS Server from a different AGOL organistion that doesn't match the AllowedOrigins. Did you ever resolve this or does anyone else know how to get this working? Regards John
... View more
12-19-2022
09:46 AM
|
0
|
0
|
1581
|
|
IDEA
|
When creating a hosted feature layer view from a hosted feature layer, various metadata from the parent layer item is not copied to the view layer item, meaning having to manually copy information between the two. It would be great if, by default or as an option, when creating a hosted feature layer view, all the metadata from the parent hosted feature layer item was copied to the view layer item, including: tags summary description credits terms of use categories The user would still have the capability to ammend these once the view item is created.
... View more
12-16-2022
07:41 AM
|
5
|
2
|
1066
|
|
IDEA
|
Currently when creating a hosted feature layer view, it is not possible to exclude fields from the view that are set as non-nullable. It should be possible to exclude these fields from views. The reason given in the documentation for not allowing non-nullable fields to be disabled is that these may be needed for editing. However, this is only true if the view is intended to be used for editing. For example, we have a layer with some fields that we absolutely want to be populated when editing, so we set these fields to be non-nullable. These fields may contain sensitive/personal information and for GDPR purposes, we do not want all viewers of this data to see or have access to the contents of these fields. We should be able to create a hosted feature layer view that is not editable and that excludes these fields.
... View more
12-16-2022
06:48 AM
|
1
|
0
|
553
|
|
IDEA
|
Absolutely agree that if mixed case is supported in postgresql, then it sould also be supported in ArcGIS (as it is with SQL Server & Oracle). This is especially problematic for customers who are transitioning to Esri from open source solutions and we have recently had to go through the painful process of renaming db objects for one customer, just so that ArcGIS will recognise them. Not a good start to their Esri experience!
... View more
10-21-2022
07:02 AM
|
0
|
0
|
1322
|
|
POST
|
See https://community.esri.com/t5/arcgis-runtime-sdk-for-net-questions/switching-day-night-mode-styling-for-vector-tile/m-p/1170027 for details of a potential way to implement day/night mode with a VTPK basemap.
... View more
07-01-2022
02:24 AM
|
0
|
0
|
1382
|
|
POST
|
We have been attempting to publish an editable feature service containing data from a non-Esri PostgreSQL database (i.e. not a geodatabase). I have found various documentation suggesting this is possible, including the following: https://desktop.arcgis.com/en/arcmap/latest/map/publish-map-services/tutorial-performing-web-editing-using-data-from-a-database.htm https://enterprise.arcgis.com/en/server/latest/publish-services/windows/prepare-data-for-feature-services.htm We are able to publish an editable feature service that uses data from PostgreSQL tables that meet the criteria (e.g. single geometry column and type, auto incrementing id field etc). However, when we try to add features to a layer in the resulting feature service, we are getting the following error in ArcGIS Pro: ERROR: Unable to complete operation. Rowbuffer creation failed. The table does not have an auto-incrementing column. And a similar error if we attempt to edit in a web map: "addResults":["success":false,"error":"code":1060,"description":"Rowbuffer creation failed. The table does not have an auto-incrementing column.[testedits]"],"updateResults":[],"deleteResults":[] The steps taken were as follows: 1) In ArcGIS Pro, connect to the postgresql database as the data owner user (i.e. the owner of the schema in which the new table will reside). 2) Right-click the database connection and create a new point feature class. 3) Right-click the resulting feature class and add permissions (SELECT/INSERT/UPDATE/DELETE) for the "edit" user that will be used for publishing. 4) In pgAdmin add permissions (ALL) on the sequence used that was created for the objectid field for the "edit" user (otherwise a different permissions error occurs). 5) In ArcGIS Pro - connect using "edit" user and add the feature class/table as a layer to a new map, setting the objectid as the unique id and setting the projection as required. 6) Publish the resulting map as a feature service with editing enabled to ArcGIS Server (registering a new connection with the server if required). Note we are not using Portal. 6) Once published successfully, add the resulting feature service to a new map in ArcGIS Pro (e.g. via Add data from path and using the feature layer url). 7) Start editing and attempt to create a new feature. (The above error occurs at this point) We have also tried various other things, including: Creating a new postgresql table with geometry column and then using the "Add Incrementing ID Field" geoprocessing tool to add an ID column to the table. Using an existing table with an auto incrementing id. All of these methods result in the same error message when attempting to add a new feature to the resulting feature service. If I use pgAdmin to connect as the "edit" user and perform a SQL insert on the same table, the insert is successful and the objectid has been set correctly for the inserted record, which suggests the permissions for the "edit" user are correct. ArcGIS-wise we are using the latest versions: ArcGIS Pro 2.9.3 on Windows Server 2019. ArcGIS Server 10.9.1 (with all current patches installed) on Windows Server 2019. We have so far tried the following for postgresql: PostgreSQL 11.15 with postgis 2.5.5 on Ubuntu 18.04. PostgreSQL 13.7 with postgis 3.2.1 on Ubuntu 20.04. Azure Database for PostgreSQL Flexible Server. All exhibit the same issue. I have also tried the same concept with a SQL Server 2019 database and this works as expected. We are already working with Esri UK support on this, but would be interested to know if anyone else has managed to publish and use an editable feature service from non-esri/geodatabase tables in a postgres database successfully?
... View more
06-10-2022
11:14 AM
|
0
|
2
|
2541
|
|
POST
|
ArcGIS Pro itself is not an RDBMS, it is simply a client application. However, it can connect to many data sources including: A traditional RDBMS (eg. Oracle, SQL Server, PostgreSQL etc). Esri File Geodatabases stored locally or on a file share. Various other local storage formats (e.g. shapefile, geopackage etc). So depending on many factors, including how you intend to use the data and who will access it, you can use any of the above to store and manage your data. For example, if you are the only user and simply need to manage and analyse a bunch of spatial data, then a File Geodatabase is probably sufficient. However, if you want to allow lots of other users to acces and potentially edit that data, or to consume/query from other non-esri applications, then storing the data in an RDBMS would be a more sensible choice. There are many more reasons for choosing between the different options, but that's the basics.
... View more
06-10-2022
10:40 AM
|
3
|
1
|
2474
|
|
POST
|
After some further investigation and experimentation, I've managed to get this working as follows: 1) Create two VTPKs in Pro for day/night mode with the same data/layers but different styling using Create Vector Tile Package. 2) Extract (unzip) the "resources" folder from each VTPK into it's own directory. 3) Zip the contents of the resulting "resources" folder(s) in uncompressed format (e.g. 7zip "store" option) into a file called resources.zip. Note don't include the "resources" folder itself, just the child folders. 4) Place the VTPK and resources.zip files in a structure similar to below: Root basemap.vtpk style day resources.zip night resources.zip 5) Use code similar to below to: Load a VectorTileCache from the vtpk. Load an ItemResourceCache from the required resources.zip. Create a new ArcGISVectorTiledLayer using the above VectorTileCache and ItemResourceCache. Set the map basemap as the new ArcGISVectorTiledLayer. public async void SetBasemap(Boolean toggle)
{
// load tile cache from vtpk
String localVTPKPath = Path.Combine(_localFolder.Path, "basemap.vtpk");
VectorTileCache vectorTileCache = new VectorTileCache(localVTPKPath);
await vectorTileCache.LoadAsync();
// load resource cache from folder path (should contain an uncompressed zip file called resources.zip containing the vector tile resource cache directory structure
String resourceCachePath = Path.Combine(_localFolder.Path, @"style\day");
if (toggle)
{
if (_currentBasemapMode == "day")
{
resourceCachePath = Path.Combine(_localFolder.Path, @"style\night");
_currentBasemapMode = "night";
}
else
{
resourceCachePath = Path.Combine(_localFolder.Path, @"style\day");
_currentBasemapMode = "day";
}
}
ItemResourceCache resourceCache = new ItemResourceCache(resourceCachePath);
await resourceCache.LoadAsync();
// create new vector tiled layer and set as basemap
ArcGISVectorTiledLayer vectorTiledLayer = new ArcGISVectorTiledLayer(vectorTileCache, resourceCache);
_map.Basemap = new Basemap(vectorTiledLayer);
} It's worth noting that VTPKs and the styles (ItemResourceCaches) can also be downloaded from ArcGIS Online/Enterprise using the SDK (see ExportVectorTilesTask). In this case we wanted to avoid using Online/Enterprise, hence the above approach.
... View more
05-16-2022
11:19 AM
|
0
|
2
|
2275
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | 04-02-2026 01:52 PM | |
| 2 | 03-07-2026 12:07 AM | |
| 4 | 03-06-2026 04:49 AM | |
| 1 | 03-31-2025 04:53 AM | |
| 1 | 12-11-2025 05:50 AM |
| Online Status |
Offline
|
| Date Last Visited |
05-15-2026
02:10 AM
|