POST
|
I have published a feature service which has both spatial layers and non-spatial tables. Next, I want to generate a runtime .geodatabase using GenerateGeodatabaseJob::generateGeodatabase(parameters, fileLocation). The parameters are generated with GeodatabaseSyncTask::createDefaultGenerateGeodatabaseParameters(). The documentation of this method says All layers from the service will be included But also Related tables and layers are not included. I guess this included non-spatial tables. To fix this, I set the GenerateLayerOption.setUseGeometry to False, and add a whereClause to select everything ("1=1"). But still, I get the following error : Unable to create replica. Please check your parameters." : "Exporting data for layer 10 failed." First of all, is it possible to download non-spatial tables with these methods ? And if yes, which settings do I need to change ? All suggestions are welcome. PS : There is an "ugly" workaround, but I like to avoid it : convert all non-spatial tables to feature tables, by adding a shape field with 1 point
... View more
09-20-2017
05:00 AM
|
0
|
6
|
949
|
POST
|
Hi Luke, Sorry for the delay in replying - I enjoyed two weeks holiday. My code does more or less the same as in your example, using updateFeature(). Here is some part of the code : while (featureQueryResult->iterator().hasNext()) {
Feature* feature = featureQueryResult->iterator().next();
bool showLine;
getVisible(showLine); // our proprietary code
feature->attributes()->replaceAttribute("ShowLine", showLine);
feature->featureTable()->updateFeature(feature);
} Could it have something to do with versions, or syncing ? The geodatabase method hasLocalEdits() returns True after calling updateFeature(). How can I inform the geodatabase that all editing is finished, and it's "state" should be clean again ?
... View more
09-20-2017
03:47 AM
|
0
|
0
|
374
|
POST
|
We want to work in our application with a read/write enabled mobile geodatabase. Generating one with ArcMap (File - Share as - ArcGIS Runtime Content) produces a read-only .geodatabase. So, we have published our geodatabase on ArcGIS online, and downloaded a copy (using GeodatabaseSyncTask) to have a copy which can be edited (add, delete features), but our main purpose is to change feature attributes. We do not need or want to synchronize the local geodatabase again with the online version. All the changes we make to the local .geodatabse add copies of the modified features, with changed gdb_from_date/gdb_to_date fields. How can I prevent this, or consolidate the changes, so the number of features in each table remains the same ?
... View more
09-01-2017
03:50 AM
|
0
|
2
|
553
|
POST
|
I ended up re-installing ArcGIS Pro (version 2.0), and 'miraculously' everything worked again as normal. Apparently you can avoid situations like this with Conda, but I am a newby in the Python world, and I'm satisfied with the current solution.
... View more
08-31-2017
04:00 AM
|
0
|
0
|
1958
|
POST
|
I don't understand why calling my script from a Scheduled Task (no experience at all with this), would make any difference. In the external Python IDE (Wing), I can set the project properties to point directly to the correct Python version (c:\Program Files (x86)\ArcGIS\Pro 1.4\bin\Python\envs\arcgispro-py3\python.exe). This is not the problem. It worked without any problem earlier. There are some other settings or parameters - which I cannot find - which are causing this behaviour.
... View more
08-28-2017
08:05 AM
|
0
|
1
|
1958
|
POST
|
I can provide you a short snippet, but actually, it fails already at the 1st line !!!! Therefor it doesn't matter whether I call it from ArcGIS Pro, or outside. Because it's a "quick-and-dirty" script, lot's of stuff is hard coded, and changed for each run. # start of my script -> fails at this 1st line already
import arcpy
import os
import manageTables
import readProperties
# Option 1 : Get parameters from ArcGIS Pro toolbox
# inputProject = arcpy.GetParameterAsText(0)
# outputFolder = arcpy.GetParameterAsText(1)
# Option 2 : Get parameters hard coded
inputProject = r"Path/to/my/input/file"
outputFolder = r"Path/to/my/output/folder"
... View more
08-28-2017
07:47 AM
|
0
|
3
|
1958
|
POST
|
Hi Joshua, The scripts are failing both in stand-alone mode, as being called from ArcGIS Pro (I just change the input part). You propose searching on the Internet, but I have no clue what to look for : I have zero to none experience with Python distributions, I simply installed it right from the ArcGIS downloads. What should I look for specifically ?
... View more
08-28-2017
06:35 AM
|
0
|
2
|
1958
|
POST
|
I have been running scripts using Python 3.5 from ArcGIS Pro 1.4 (C:\Program Files (x86)\ArcGIS\Pro 1.4\bin\Python\envs\arcgispro-py3\python.exe) without any problem. Last week I installed ArcGIS Server (ArcGIS Enterprise), and now my scripts all fail, starting with the import arcpy statement. Root cause error is builtins.NameError: name 'arcgisscripting' is not defined File "c:\Program Files (x86)\ArcGIS\Pro 1.4\Resources\ArcPy\arcpy\geoprocessing\_base.py", line 62, in __init__ self._gp = arcgisscripting.create(11.0) builtins.NameError: name 'arcgisscripting' is not defined What have I done wrong ? Any help is welcome ! Marc
... View more
08-28-2017
04:38 AM
|
0
|
9
|
2831
|
POST
|
Thanks Luke, I wish all my programming problems could be fixed so quickly Regards, Marc
... View more
08-22-2017
03:06 AM
|
0
|
0
|
514
|
POST
|
Hi Luke, What a fast response time ! You are right about creating a new connection every time I click the mouse. But then I have a related question : selectFeatures() works on layers, queryFeatures() works on tables. Should I also make these connections in the constructor for all the layers and tables I use (which can vary during the lifetime of the application), or is it possible to disconnect every time the slot has done it's work ? Marc
... View more
08-22-2017
02:26 AM
|
0
|
2
|
514
|
POST
|
I connect the IdentifyLayerCompleted signal with a slot, in which I check the TaskWatcher's taskId() to make sure I have the correct signal. However, every time I execute the identifyLayer method, the number of time this slot is called increases, using the same taskID for each call. How can I remove this extra signal calls ? void Myclass::mouseClickedSlot(QMouseEvent& mouseEvent)
{
connect(_mapView, &MapQuickView::identifyLayerCompleted, this, &Myclass::clickedSlot);
for (int i = 0; i < _map->operationalLayers()->rowCount(); ++i) {
FeatureLayer* thisLayer = (FeatureLayer*)(_map->operationalLayers()->at(i));
TaskWatcher tw = _mapView->identifyLayer(thisLayer, mouseEvent.x(), mouseEvent.y(), 10, false, 10);
_identifyTasks.push_back(tw.taskId());
}
}
void Myclass::clickedSlot(QUuid taskID, IdentifyLayerResult* identifyResult)
{
if (find(_identifyTasks.begin(), _identifyTasks.end(), taskID) == _selectedTasks.end()) {
// not the taskID I was expecting
return;
}
// do something, depending on the layer
// ...
}
... View more
08-22-2017
02:08 AM
|
0
|
4
|
675
|
POST
|
Hi Luke, Thanks for the suggestion ! I wasn't yet aware that you could also use a geometry in the queryFeatures method. Using the absolute distance instead of pixels is not a real problem, the only problem we have is using the correct SpatialReference: we create a default map before loading our feature tables, therefor the spatial references don't always match. We already convert the position of the mouseclick using GeometryEngine::project(), but now I get more results than I expect. The search area is much wider than the buffer (which I showed on the map for confirmation). Some extra digging into Spatial references is needed, I guess.
... View more
08-18-2017
05:15 AM
|
0
|
0
|
820
|
POST
|
I would like to execute a 'find' command searching for features around the mouse click with a search radius of 200 pixels. Using identifyLayers and setting tolerance to 200, I get no results. Apparently the maximum tolerance is only 100. Any ideas how I can increase the search area ? Thanks for any idea. Marc
... View more
08-17-2017
06:12 AM
|
0
|
2
|
1214
|
POST
|
Thanks for the update. My real purpose was to measure a distance on the map, but to show a (more or less) accurate scale bar instead of just a number. You refer to the toolkit for iOs, but the toolkit Qt doesn't seem to have the same functionality.
... View more
08-09-2017
12:15 AM
|
0
|
0
|
1316
|
POST
|
If you show a map without specifying a SpatialReference, how do you know what the distance is ? In a simple application, I read the mapView's mapScale and plot it on the map in a textbox (like 1/mapScale). I would assume that with a mapScale of 10000, 1 cm on the screen represents 10000 cm = 100 m in reality, so a street of 800 m would be shown 8 cm long ? However, on my application it's nearly double that size (about 16 cm). How can I know the exact distance of an object on the map, using mapScale() ?
... View more
08-08-2017
05:12 AM
|
0
|
2
|
1316
|
Title | Kudos | Posted |
---|---|---|
1 | 07-28-2017 01:49 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|