POST
|
Did anyone ever figure out if this was possible? I'm trying to do the exact same thing to give our users some context on logging in. Thank you!
... View more
10-25-2023
07:28 AM
|
0
|
0
|
173
|
POST
|
Thank you for the reply. I will look into the Geometry Engine. I'm not sure the GP engine will work in this case as it may not be a quick enough response time for the users and it needs to write back to a single table. I don't think Roads and Highways is an option for this particular user base either, but something else to look into. Thank you!
... View more
01-26-2022
05:25 AM
|
1
|
0
|
478
|
POST
|
Hi All - I'm hoping to convert an existing ArcMap Add-in to an ArcGIS Pro Add-in but the tool does quite a bit of Linear Referencing and I can't seem to find an equivalent of the below code, or any other tasks from the linear referencing portion of the tool. The ArcMap tool allows the user to trace an LRS to define a "project segment" then that segment is located on the LRS and the measures stored in an event table for future use. Any ideas would be great as I haven't been able to find anything dealing with LRS methods. Maybe they're just not available yet? public static void LRSLocateLine(IFeatureClass InputFC)
{
try
{
IRouteLocator rtLocator = LRSSetupLocator();
//create new table name for output to scratch workspace
IDataset ds = (IDataset)createWSandFC.fWorkspace;
IWorkspaceName wsn = (IWorkspaceName)ds.FullName;
ITableName tblname = new TableNameClass();
IDatasetName dsn = (IDatasetName)tblname;
dsn.WorkspaceName = wsn;
dsn.Name = "events_temp";
try
{
IDataset tempDS;
tempDS = (IDataset)createWSandFC.fWorkspace.OpenTable("events_temp");
tempDS.Delete();
}
catch
{
}
//Create RouteLocatorOperations object
IRouteLocatorOperations2 routeop = new RouteLocatorOperationsClass();
routeop.RouteLocator = rtLocator;
routeop.InputFeatureClass = InputFC;
//output event properties
IRouteEventProperties2 LMeasProps = new RouteMeasureLinePropertiesClass(); //RouteMeasurePointPropertiesClass();
LMeasProps.AddErrorField = true;
LMeasProps.EventRouteIDFieldName = "RTE_NM";
IRouteMeasureLineProperties MPLineProps = (IRouteMeasureLineProperties)LMeasProps;
MPLineProps.FromMeasureFieldName = "FromMeas";
MPLineProps.ToMeasureFieldName = "ToMeas";
//Locate the points along the routes
double radius = 1;
routeop.LocateLineFeatures(radius, LMeasProps, true, dsn, "DEFAULT", null);
}
catch (System.Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
... View more
01-23-2022
10:52 AM
|
0
|
2
|
552
|
POST
|
Hi All - I'm trying to use the "Generate Offline Map" sample and am running into an error that is telling me that the mobile map directory path is not specified. qml: error: Invalid argument Mobile map directory path is not specified. I have tried hard coding the path in the sample to "c:\temp\out.mmpk" just in case my URL variable was not working correctly, but it still is giving me the same result. The only thing I have changed is to give it my own portal item which is a webmap that is available to the public for testing purposes. I'm sure I'm missing something very simple as I'm new to Qt/QML. Any insights would be appreciated. Code is below, but it's almost identical to the original sample. Thanks in advance! // Create a button and anchor it to the attribution top QtControls.Button { id: downloadButton anchors { horizontalCenter: parent.horizontalCenter bottom: parent.verticalCenter margins: 5 * scaleFactor } visible: map.loadStatus === Enums.LoadStatusLoaded onClicked: extentRectangle.getRectangleEnvelope(); } // Create an extent rectangle for selecting the offline area Rectangle { id: extentRectangle anchors.centerIn: parent width: parent.width - (50 * scaleFactor) height: parent.height - (125 * scaleFactor) color: "transparent" visible: map.loadStatus === Enums.LoadStatusLoaded border { color: "red" width: 3 * scaleFactor } function getRectangleEnvelope() { var corner1 = mapView.screenToLocation(extentRectangle.x, extentRectangle.y); var corner2 = mapView.screenToLocation((extentRectangle.x + extentRectangle.width), (extentRectangle.y + extentRectangle.height)); var envBuilder = ArcGISRuntimeEnvironment.createObject("EnvelopeBuilder"); envBuilder.setCorners(corner1, corner2); var mapExtent = GeometryEngine.project(envBuilder.geometry, SpatialReference.createWebMercator()); offlineMapTask.createDefaultGenerateOfflineMapParameters(mapExtent); } } // Create Offline Map Task OfflineMapTask { id: offlineMapTask portalItem: mapPortalItem //onlineMap: map property var generateJob onErrorChanged: console.log("error:", error.message, error.additionalMessage); onCreateDefaultGenerateOfflineMapParametersStatusChanged: { if (createDefaultGenerateOfflineMapParametersStatus !== Enums.TaskStatusCompleted) return; // Take the map offline once the parameters are generated takeMapOffline(offlineMapTask.createDefaultGenerateOfflineMapParametersResult); } function takeMapOffline(parameters) { // create the job generateJob = offlineMapTask.generateOfflineMap(parameters, "c:\temp\out.mmpk"); console.log(mapPortalItem.url); console.log(mapPortalItem.itemId); console.log(mapPortalItem.type); // check if job is valid if (generateJob) { // show the export window generateWindow.visible = true; console.log("Path: " + generateJob.downloadDirectoryPath); console.log("test: "+ generateJob.parameters.areaOfInterest); // connect to the job's status changed signal to know once it is done generateJob.jobStatusChanged.connect(updateJobStatus); // connect to the job's progress changed signal generateJob.progressChanged.connect(updateProgress); generateJob.start(); } else { generateWindow.visible = true; generateWindow.statusText = "Task failed"; generateWindow.hideWindow(5000); console.log("error:", generateJob.error.message, generateJob.error.additionalMessage); } } function updateJobStatus() { switch(generateJob.jobStatus) { case Enums.JobStatusFailed: generateWindow.statusText = "Task failed"; generateWindow.hideWindow(5000); console.log("error:", generateJob.error.message, generateJob.error.additionalMessage); break; case Enums.JobStatusNotStarted: generateWindow.statusText = "Job not started"; break; case Enums.JobStatusPaused: generateWindow.statusText = "Job paused"; break; case Enums.JobStatusStarted: generateWindow.statusText = "In progress"; break; case Enums.JobStatusSucceeded: // show any layer errors if (generateJob.result.hasErrors) { var layerErrors = generateJob.result.layerErrors; var errorText = ""; for (var i = 0; i < layerErrors.length; i++) { var errorPair = layerErrors[i]; errorText += errorPair.layer.name + ": " + errorPair.error.message + "\n"; } msgDialog.detailedText = errorText; msgDialog.open(); } // show the map generateWindow.statusText = "Complete"; generateWindow.hideWindow(1500); displayOfflineMap(generateJob.result); break; default: console.log("default"); break; } } function updateProgress() { generateWindow.progressText = generateJob.progress; } function displayOfflineMap(result) { // Set the offline map to the MapView mapView.map = result.offlineMap; downloadButton.visible = false; extentRectangle.visible = false; } Component.onDestruction: { if (generateJob) { generateJob.jobStatusChanged.disconnect(updateJobStatus); generateJob.progressChanged.disconnect(updateProgress); } } } GenerateWindow { id: generateWindow anchors.fill: parent } MessageDialog { id: msgDialog title: "Layer Errors" text: "Some layers could not be taken offline." }
... View more
04-01-2019
08:46 AM
|
0
|
1
|
479
|
POST
|
I apologize for not being clear. I am looking to use the most current version, 3.22. I only referenced 3.18 because it appeared to be the version where that sample no longer worked. Thanks!
... View more
10-24-2017
10:31 AM
|
0
|
1
|
1021
|
POST
|
Hi All - I'm looking to use the sample referenced below to export the contents of a Feature Table to a CSV file in a custom JavaScript application. JS Bin - Collaborative JavaScript Debugging It appears that starting at version 3.18 of the JS API, the array generated using FeatureTable.dataStore.data comes back as a JSON object versus an array of attributes and the sample no longer works. I can get at all the attributes using the following, then iterating over each record returned, but it returns all attributes, not just the ones visible in the table and it seems like a overly complicated way to accomplish what I'm trying to do. Object.keys(featTable.dataStore.data[Object.keys(featTable.dataStore.data)[0]].attributes) Has anyone tried to do this in the newer versions of the API? Or know of an easier way to do this? A similar question was asked about a year ago but there were no responses. Feature Table Export 3.18 to CSV Thank you in advance.
... View more
10-24-2017
08:10 AM
|
0
|
3
|
1515
|
POST
|
This might help you. I was never able to get our data to sync back to the map. Tech support said they recommended less features be collected before each sync, which isn't always an option. Here's what I did to recover the data. Steps: 1. Pull data file off of iPad using iTunes 2. Make backup copy. If you have a lot of pictures this can be large so make sure you have enough space. Our folder was about 3.5 gigabytes. 3. Download SQLite maestro or similar SQLite viewer 4. Query the duplicated records based on "gdb_from_date" and "gdb_to_date" fields. 5. Then use the python script referenced by Tech support to export the XML and load back to a geodatabase. It's a workaround if you can't get the data to sync, but can be a bit tricky if you're not familiar with database management tools, so I'd recommend a backup first. Hope that helps!
... View more
09-22-2014
05:33 AM
|
0
|
3
|
577
|
POST
|
Any luck on this? I'm trying to sync 100 points that were edited with an iPad using offline editing. All of the features have attachments and the python script won't work. It's giving me errors that there are multiple OIDs with the same value. Any insights? Thanks. Pam
... View more
08-13-2014
12:30 PM
|
0
|
0
|
577
|
POST
|
I was able to accomplish this using AlivePDF, it is an open source PDF printing API. You can take any of the columns of a datagrid and publish that into a PDF report. You can also take display features (like a map) and print them as images in the report. I attached two sample reports, one is a list out of a datagrid, the other is an inspection report and shows a map. When pulling data from a datagrid it honors the sort. Hi Aaron - I am trying to do something almost identical to what you shared with your Test.PDF document. I have implemented similar things on the .NET side, but trying to output this from the flex API is stumping me. Anyway you could share some code? Thanks in advance.
... View more
11-11-2013
11:27 AM
|
0
|
0
|
599
|
POST
|
Is there a comparable fix to reorder/turn fields off in the 3.0 flex viewer. I thought the default Field Inspector option would do it but I can't find any documentation to set it up and have tried all the usual search locations. Any guidance would be appreiciated. I'm trying to move from 2.5 to 3. Thanks in advance.
... View more
09-30-2012
02:21 PM
|
0
|
0
|
390
|
POST
|
Same here. Model Builder process crashes when it hits the "Spatial Join" task. Problem appears to be with the "closest" option. I need to use this option because of the licensing level on our server. Anyone have a work around? I'd like to use "Near" or one of the simplier processing tools, but no dice. Using ArcGIS 10.0 SP4. I'll try the bug route with ESRI.
... View more
04-01-2012
07:51 PM
|
0
|
0
|
773
|
POST
|
Brian - If you have the ArcInfo licensing level there's a tool called "Eliminate" in the Generalization toolbox that does this. I found it a little bit ago, unfortuately it was several months after I needed it :). Good Luck!
... View more
02-15-2012
05:51 AM
|
0
|
0
|
609
|
POST
|
Hi All, I have what I thought would be a simple editing task, but has turned out to be cumbersome to put it mildly. I have a set of land cover polygons from image data classified at a resolution of 1 foot. Because the resolution of the reference data are so precise, I'm getting small 1 sqft polygons in the middle of the larger ones. For example, a 1 sqft impervious surface poly surrounded by 50 sqft of managed turf. I would like to be able to dissolve these tiny polygons into the bigger ones. I've tried topologies, but that doesn't work correctly because I don't want to lose the resolution of the data that are already there, which happens with high cluster tolearances. I can delete the polygons of less than a certain area, but then I'm left with tiny gaps that I have to hand edit out, which could potentially be in the hundreds of thousands. Is there any way to programmatically collapse polygons under a certain size, without losing the integrity of the rest of the data? I'm just trying to clean it up a little bit. Thanks. Pam
... View more
02-08-2011
06:59 AM
|
0
|
4
|
3888
|
Title | Kudos | Posted |
---|---|---|
1 | 01-26-2022 05:25 AM |
Online Status |
Offline
|
Date Last Visited |
Tuesday
|