POST
|
The main issue with your code is in the getParcelFromUrl() function. You are attempting to access a query property called 'parcelid' when the URL does not contain this query string parameter. Your code sets the window history to include an 'objectid' parameter. Modify your getParcelFromUrl() function to access the objectid parameter:
//extract the parcel id from the url - new version using objectid
function getParcelFromUrl(url) {
var urlObject = urlUtils.urlToObject(url);
if (urlObject.query && urlObject.query.objectid) {
return urlObject.query.objectid;
} else {
return null;
}
}
Also, note that this appears to be case sensitive so you will need to update the following line (101) from:
window.history.pushState(null, null, "?OBJECTID=" + selection[0].attributes.OBJECTID);
To (note the lowercase objectid parameter key):
window.history.pushState(null, null, "?objectid=" + selection[0].attributes.OBJECTID);
A working example is available here.
... View more
07-24-2014
04:08 AM
|
1
|
1
|
400
|
POST
|
It looks like all of your map is being cached correctly - but there is an issue with transparent areas. If this was a caching issue then you end up with missing tiles that look more like this: Like jiang suwen says (above), try changing the tile format to PNG to resolve transparency issues. Also, check that the background colour of the ArcMap data frame is not black (Data Frame Properties > Frame (tab) > Background).
... View more
07-24-2014
03:28 AM
|
0
|
3
|
795
|
POST
|
Unlike a feature layer, a graphic layer has no backing feature class - they only exist in the context of the map in the web browser. The applyEdits() method is only available on feature layers. If you go down this path to store graphics (geometries) you would also need separate feature services for each geometry type. You could write custom functionality to store each graphic (or a collection of graphics) as a JSON object in your database. If you want to display the saved changes at a later stage you would also need custom JS functions to add graphics back into a graphics layer on the map from your database. As far as I am aware this functionality is not available without custom JS and server-side code.
... View more
07-24-2014
03:14 AM
|
1
|
4
|
1233
|
POST
|
Hi Michael, Check out the update-end event for feature layers. I have created a quick demo here to show this in action (make sure to open a console window). This is the results in the console window: Hope this helps.
... View more
07-23-2014
08:08 PM
|
2
|
3
|
1812
|
POST
|
Instead of removing a single layer you could use the map.removeAllLayers() method to reset the map. This line: if (ct.loaded = 'true') {map.removeLayer(ct)} Becomes: if (ct.loaded = 'true') {map.removeAllLayers()} Owen
... View more
07-18-2014
04:43 PM
|
0
|
1
|
1604
|
POST
|
If you are happy to leave the PDF in the Jobs scratch folder then you can use the following line to create the output path:
fn = r"{0}\well_map.pdf".format(arcpy.env.scratchFolder)
Also, make sure not to change the scratch workspace in your script:
# You should be able to remove this line when running on the server:
arcpy.env.scratchWorkspace = '%scratchworkspace%' (is this in quotes?)
Let ArcGIS Server control the scratch directory and it will use a new Job directory each time the process runs. Hope this helps. Owen
... View more
07-17-2014
04:19 PM
|
0
|
2
|
4784
|
POST
|
Hi Dorothy, When running a GP service on the server, the scratch workspace is created under a job directory. For example:
http://[server]/arcgis/rest/directories/arcgisjobs/lotexport_gpserver/j52e4e3ec1ff741e9aad19b8263615232/scratch/WebMap_12345.pdf
You will notice that in the path a directory with a Global ID (j52e4e3ec1ff741e9aad19b8263615232) is created to ensure the output is unique. If you want to control where the file is created then you can export the PDF into this job directory then copy it into your target directory using python, for example:
arcpy.mapping.ExportToPDF(mxd,fn,resolution=self.dpi,image_compression="JPEG",jpeg_compression_quality=90)
shutil.copyfile(fn, r"{0}\{1}.pdf".format(outdir, key))
return r"{0}/{1}.pdf".format(baseurl,key)
# Notes:
# mxd = map document
# fn = output filename (include the arcpy.env.scratchWorkspace path)
# outdir = a path on the server for the output PDFs
# baseurl = the virtual path to the outdir
# key = unique file name
Just make sure that your output PDF name is also unique. You can then return the URL to the PDF as the geoprocessing result. You may also need to implement some kind of regular spring cleaning for this directory. Scheduled tasks work great for this. Owen
... View more
07-17-2014
02:05 AM
|
2
|
4
|
4784
|
POST
|
Your code accesses the map layer. To access field values you need to query features - not the layer properties. The first thing you will need to do is query the layer for the features that you want, check out: QueryTask: https://developers.arcgis.com/javascript/jsapi/querytask-amd.html Query: https://developers.arcgis.com/javascript/jsapi/query-amd.html Set the where clause on the Query to select your features ("TID" > 0 or "TID" = 0) then process your features in the response handling function.
... View more
06-28-2014
12:50 AM
|
0
|
0
|
252
|
POST
|
The clip by polygon in the Data Frame Properties only prevents data outside the polygon from displaying on the map. If you want to delete the data use the Clip tool (available from the Geoprocessing menu). Note that you will need to use a feature class as the clip extent instead of a graphic polygon feature created using the Draw toolbar. The Clip tool is available at all license levels.
... View more
06-24-2014
03:04 PM
|
0
|
0
|
9493
|
POST
|
You can have multiple output parameters. For example, the following takes 2 input parameters then creates 4 output values: import arcpy
n1 = float(arcpy.GetParameterAsText(0))
n2 = float(arcpy.GetParameterAsText(1))
out1 = n1 + n2
arcpy.SetParameter(2, out1)
out2 = n1 - n2
arcpy.SetParameter(3, out2)
out3 = n1 * n2
arcpy.SetParameter(4, out3)
out4 = n1 / n2
arcpy.SetParameter(5, out4) Results: [ATTACH=CONFIG]34829[/ATTACH] Just make sure to set the Direction to Output in the Parameter properties when creating the script tool: [ATTACH=CONFIG]34830[/ATTACH]
... View more
06-23-2014
07:09 PM
|
0
|
0
|
706
|
POST
|
Check out this example: http://jsbin.com/hobomode/2 I just added your JavaScript to the selectParcel() function in the ESRI sample:
function selectParcel(parcelid) {
if (parcelid) {
var query = new Query();
query.where = "PARCELID = '" + parcelid + "'";
var deferred = parcels.selectFeatures(query, FeatureLayer.SELECTION_NEW, function (selection) {
var center = graphicsUtils.graphicsExtent(selection).getCenter();
// add parcel to browser history
var apn = selection[0].attributes.APN;
if ((typeof history.pushState !== "undefined") && (apn)) {
window.history.pushState(null, null, "?getParcel=" + apn);
}
var extHandler = map.on("extent-change", function () {
extHandler.remove();
//zoom to the center then display the popup
map.infoWindow.setFeatures(selection);
map.infoWindow.show(center);
});
map.centerAt(center);
});
}
}
... View more
06-23-2014
06:43 PM
|
0
|
0
|
539
|
POST
|
You should be able to use the Assign Domain To Field tool to do this. After assigning the coded value domain - if there are values that do not match then the actual value will be shown in the attribute table instead of the coded value.
... View more
06-23-2014
06:27 PM
|
1
|
0
|
425
|
POST
|
This example uses multiple services for find tasks: http://jsbin.com/bacuwova The code was developed for this post: http://forums.arcgis.com/threads/112630-Multiple-find-tasks-populating-multiple-datagrids?p=395954#post395954
... View more
06-18-2014
03:12 PM
|
0
|
0
|
202
|
POST
|
Hi Todd, Try this method using a python list to store the input feature class names: # Set you parameters (e.g. change to use tool inputs)
gdbInputs = r"c:/temp/Inputs.gdb"
gdbRoutes = r"c:/temp/Routes.gdb"
# Create inputs list
arcpy.env.workspace = gdbInputs
inputList = []
fcList1 = arcpy.ListFeatureClasses()
for fc in fcList1:
inputList.append("{0}/{1}".format(gdbInputs,fc));
# Switch workspace (if required)
arcpy.env.workspace = gdbRoutes
for inputFC in inputList:
# find your second feature class based on the last 6 digits
targetFC = "{0}/Route{1}".format(gdbRoutes,inputFC[-6:])
# run your other processing with inputFC and targetFC
print "Input FC: {0}".format(inputFC)
print "Target FC: {0}".format(targetFC) Owen www.spatialxp.com.au
... View more
06-16-2014
07:25 PM
|
0
|
0
|
252
|
POST
|
I haven't tried this using silverlight but I think all the ESRI web APIs would need to pass a GPFeatureRecordSetLayer object to the server for geometry objects - more information is availabe here: http://resources.arcgis.com/en/help/main/10.1/index.html#/Using_geoprocessing_tasks_in_web_applications/0154000004v8000000/ Also, check out the message in a bottle sample at: http://resources.arcgis.com/en/help/silverlight-api/concepts/#/Geoprocessing_task/01660000000n000000/ The message in a bottle sample uses a point but you should be able to substitute this with your polygon or graphic input: List<GPParameter> parameters = new List<GPParameter>();
parameters.Add(new GPFeatureRecordSetLayer("Input_Polygon", poly));
...any other tool parameters...
parameters.Add(new GPDouble("Other_Input", Convert.ToDouble(DaysTextBox.Text))); Owen www.spatialxp.com.au
... View more
06-16-2014
03:20 PM
|
0
|
0
|
414
|
Title | Kudos | Posted |
---|---|---|
1 | 10-07-2014 06:13 PM | |
1 | 08-25-2015 02:04 AM | |
1 | 10-07-2014 03:54 PM | |
1 | 08-07-2014 09:19 PM | |
1 | 03-04-2015 02:02 PM |
Online Status |
Offline
|
Date Last Visited |
07-21-2021
06:32 PM
|