|
POST
|
Thanks Robert - I've been working on something similar this morning. My version gets the copyright string by making a request to each unique service url as the layers load, then updates the attribution text as in your example. I'm still testing it, but it appears to be working. It would really help if Esri's documentation was clearer on exactly where the copyright text is derived from for the attribution widget.
... View more
10-18-2017
07:28 AM
|
0
|
1
|
4034
|
|
POST
|
Hi Robert Thanks, but the sample you reference only includes MapImageLayers and not feature layers. I have a basemap plus feature layers from an ArcGIS online feature service and the copyright text from the feature service definition doesn't display in the default attribution widget. John
... View more
10-18-2017
06:51 AM
|
0
|
3
|
4034
|
|
POST
|
I've recently used the javascript API (4.5) and found that the default attribution widget only picks up copyright text from the basemap. However, if feature services displayed require copyright to be displayed, then the attribution widget does not currently pick up the copyright text from feature layers included in the map, despite these being populated in the service definition. It does not appear possible to update the copyright text through code as this is read only, so does anyone know how to go about showing the copyright text in the existing widget? Or do I need to write my own?
... View more
10-18-2017
03:00 AM
|
0
|
5
|
5000
|
|
POST
|
Are you using the correct 64-bit version of ESRIRegAsm? This should be at: C:\Program Files\Common Files\ArcGIS\bin\ESRIRegAsm.exe I'm not sure your step 4 is necessary as my installer class does not do anything with the ecfg file, it just executes the 64-bit EsriRegAsm. If you aren't installing using an MSI you can ignore the steps to edit the MSI with Orca.
... View more
06-20-2017
07:47 AM
|
0
|
1
|
4166
|
|
POST
|
Hi Soren It sounds like your class extension is built against the 32-bit assemblies, which explains why it works with desktop but not server. Server is looking for a class extension that is 64-bit and cannot find one. You need to create a separate solution for the server version and build this on a machine where ArcGIS Server is installed? This is required to build against the 64-bit Esri assemblies. You also need to follow all the other steps above, including setting the platform target to 64-bit for each project and for the setup and deployment project and changing the installer class (InstallerClass.cs) code to use the "/p:server" flag when installing/uninstalling. Here is the installer class for our class extension: using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Diagnostics;
namespace InvokeESRIRegASM
{
[RunInstaller(true)]
public partial class InstallerClass : System.Configuration.Install.Installer
{
public InstallerClass()
{
InitializeComponent();
}
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
//Register the custom component.
//-----------------------------
//The default location of the ESRIRegAsm utility.
//Note how the whole string is embedded in quotes because of the spaces in the path.
string cmd1 = "\"" + Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + "\\ArcGIS\\bin\\ESRIRegAsm.exe" + "\"";
//Obtain the input argument (via the CustomActionData Property) in the setup project.
//An example CustomActionData property that is passed through might be something like:
// /arg1="[ProgramFilesFolder]\[ProductName]\bin\ArcMapClassLibrary_Implements.dll",
//which translates to the following on a default install:
//C:\Program Files\MyGISApp\bin\ArcMapClassLibrary_Implements.dll.
string part1 = this.Context.Parameters["arg1"];
//Add the appropriate command line switches when invoking the ESRIRegAsm utility.
//In this case: /p:Desktop = means the ArcGIS Desktop product, /s = means a silent install.
string part2 = " /p:Server /s";
//It is important to embed the part1 in quotes in case there are any spaces in the path.
string cmd2 = "\"" + part1 + "\"" + part2;
//Call the routing that will execute the ESRIRegAsm utility.
int exitCode = ExecuteCommand(cmd1, cmd2, 10000);
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
base.Uninstall(savedState);
//Unregister the custom component.
//-----------------------------
//The default location of the ESRIRegAsm utility.
//Note how the whole string is embedded in quotes because of the spaces in the path.
string cmd1 = "\"" + Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles) + "\\ArcGIS\\bin\\ESRIRegAsm.exe" + "\"";
//Obtain the input argument (via the CustomActionData Property) in the setup project.
//An example CustomActionData property that is passed through might be something like:
// /arg1="[ProgramFilesFolder]\[ProductName]\bin\ArcMapClassLibrary_Implements.dll",
//which translate to the following on a default install:
//C:\Program Files\MyGISApp\bin\ArcMapClassLibrary_Implements.dll.
string part1 = this.Context.Parameters["arg1"];
//Add the appropriate command line switches when invoking the ESRIRegAsm utility.
//In this case: /p:Desktop = means the ArcGIS Desktop product, /u = means unregister the Custom Component, /s = means a silent install.
string part2 = " /p:Server /u /s";
//It is important to embed the part1 in quotes in case there are any spaces in the path.
string cmd2 = "\"" + part1 + "\"" + part2;
//Call the routing that will execute the ESRIRegAsm utility.
int exitCode = ExecuteCommand(cmd1, cmd2, 10000);
}
public static int ExecuteCommand(string Command1, string Command2, int Timeout)
{
//Set up a ProcessStartInfo using your path to the executable (Command1) and the command line arguments (Command2).
ProcessStartInfo ProcessInfo = new ProcessStartInfo(Command1, Command2);
ProcessInfo.CreateNoWindow = true;
ProcessInfo.UseShellExecute = false;
//Invoke the process.
Process Process = Process.Start(ProcessInfo);
Process.WaitForExit(Timeout);
//Finish.
int ExitCode = Process.ExitCode;
Process.Close();
return ExitCode;
}
}
}
Once you've made these changes, you then need to build the solution and modify the resulting msi using Orca as described above to ensure that custom actions run using the 64-bit install utility (InstallUtil64). Note that the steps I described work for 10.2.1 and I have not tried building with later versions, but assume the process is similar. Regards John
... View more
06-20-2017
03:37 AM
|
0
|
3
|
4166
|
|
IDEA
|
Considering all the recent advancements in technology, the date format support in these applications is very poor. In a web map, on which almost everything depends, there are currently only two possible formats for fields with date and time, US format (m/d/yyyy hh:mm:ss) and international (d/m/yyyy hh:mm:ss) and neither are acceptable when users are international. The date format used in AGOL itself, most templates and widgets is also US format, which most of the rest of the world does not use. The ISO date format is designed for these scenarios as it avoids confusion. It should, as a minimum, be one of the format options and ideally, should be the default. The default date format should also be configured at the organisation or web map level. At the moment we are constantly having to apologise to customers because the date formats aren't what they require.
... View more
06-05-2017
12:58 PM
|
1
|
0
|
3775
|
|
POST
|
Now added to ArcGIS Ideas: https://community.esri.com/ideas/13470
... View more
05-17-2017
03:31 AM
|
2
|
1
|
3136
|
|
POST
|
Thanks for this suggestion - I've taken a look at this and it looks like it could be an option and avoids the need for a proxy. It looks like you can set a filter on the view based on attributes, but not geometry. You can also set the extent of the view, but that doesn't seem to limit access to features outside the extent. It would still be useful to limit access using a geometric extent.
... View more
05-12-2017
06:35 AM
|
0
|
1
|
3136
|
|
POST
|
Hi Is it possible to limit access to an ArcGIS Online feature service for a given user or group using a specified extent? For example, if we have a feature service with worldwide coverage, can we restrict a specific user or group to only be able to access features within their region (eg. UK). It would be very useful to be able to specify for that user/group the rectangular extent (or even better a polygon geometry) of features that they are able to access. The feature service will be used in ArcMap, so doing this client-side would not really be an option. The only way I can currently think of doing this is by using a proxy and having the proxy check the user/group and then apply a geometry filter to the feature layer queries. I'd appreciate any thoughts on this. Regards John
... View more
05-12-2017
02:12 AM
|
1
|
5
|
4361
|
|
POST
|
After a lot of digging and experimentation, it seems the following sets the layer's visibility successfully: FeatureSourceInfo.MobileCacheMapLayerDefinition.Visibility = true
... View more
03-06-2017
01:31 PM
|
0
|
0
|
2455
|
|
POST
|
Hi We have developed a custom collection task for the ArcGIS Windows Mobile Application (v10.2.1). As part of the task workflow, we would like to switch on visibility of a particular layer on the map, which is not visible by default. We have tried setting the following properties, which all don't result in the layer displaying on the map: FeatureSourceInfo.Visible = true. CacheMapLayerInfo.Visible = true I have also set a watch and toggled the visibility of the layer manually in the "Layer Visibility" dialog while debugging and the values for the above properties are the same regardless of whether the layer is turned on/off in the dialog. So my question is, which property controls the visibility of an individual layer in the map? Which property is the OOB Layer Visibility dialog changing? I'm hoping someone has solved this before as it's such a common requirement. Any help greatly appreciated. Regards John
... View more
03-06-2017
10:11 AM
|
0
|
1
|
3122
|
|
POST
|
After several weeks wait, I now have confirmation from Esri UK, via Esri Inc, that this is a bug as it's not possible to populate the SelectFeatureTypesPage using the SDK. The reference I was give - if it's of use to anyone else was: BUG-000102430 : Unable to populate SelectFeatureTypePage using the ArcGIS Runtime for Windows Mobile An Esri UKs conclusion was: The FeatureTypeListControl is what is used to populate the SelectFeatureTypePage. The FeatureTypeListControl is populated by FeatureSourceInfos. FeatureSourceInfos is a read only property, which means the FeatureTypeListControl cannot be populated. This in turn means the SelectFeatureTypePage cannot be populated. As the product is now in mature support and shortly to be retired, Esri Inc will not provide a fix. In any case, due to our time constraints, we had already worked around the issue by creating a custom SelectFeatureTypesPage that allows for population of the feature type list with a collection of FeatureSourceInfos. We made this visually the same as the original and it works very well, although took several hours of development that we hadn't budgeted for. I hope that helps anyone else who might be struggling with the same issue. Regards John
... View more
01-27-2017
06:58 AM
|
1
|
0
|
2921
|
|
POST
|
Hi I appreciate it's been a while, but did you ever find an answer to this? I'm trying to do the same, but have hit the same issue where no feature types are shown in the SelectFeatureTypesPage. Regards John
... View more
12-20-2016
10:20 AM
|
0
|
0
|
757
|
|
POST
|
Hi I'm trying to create a custom collection workflow for the ArcGIS Mobile for Windows application (10.2.1) which I know is out of support soon, but hoping someone might have come across this. In the workflow I want to use the standard SelectFeatureTypePage to allow the user to select a feature type to collect. However, when I create a new instance of the SelectFeatureTypePage and transition to it, there are no feature types listed, despite there being layers in the project with AllowNew = true. I can see that the SelectFeatureTypePage has a FeatureTypeListControl property which has a FeatureSourceInfos property, but this is read-only, so I can't populate it with layer sources. The code I have is: SelectFeatureTypePage selectFeatureTypePage = new SelectFeatureTypePage();
selectFeatureTypePage.Title = "Collect";
selectFeatureTypePage.Note = "Select the type of feature";
selectFeatureTypePage.ImageSource = this.ImageSource;
selectFeatureTypePage.ShowFeatureSources = true;
selectFeatureTypePage.ClickBack += new EventHandler(OnSelectFeatureTypeBackCommandExecute);
selectFeatureTypePage.FeatureTypeSelected += new EventHandler<FeatureTypeEventArgs>(OnFeatureTypeSelection);
MobileApplication.Current.Transition(selectFeatureTypePage); The constructors for SelectFeatureTypePage and FeatureTypeListControl also do not have arguments to pass in a set of layer infos. Has anyone successfully used the SelectFeatureTypePage in the ArcGIS Mobile SDK? How did you get it to populate the list of feature types? Any help greatly appreciated. Regards John
... View more
12-20-2016
09:22 AM
|
0
|
1
|
3710
|
|
POST
|
Thanks - I've done a bit more digging and found that the client has set the CONNECTIONS config setting to 999999. Looking at the docs, this could be the reason for the large memory usage, since shared memory is reserved for each possible connection. I will get them to set a more sensible setting.
... View more
09-05-2016
06:53 AM
|
2
|
0
|
1795
|
| 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
|