|
POST
|
I found the Migrating Data into the Parcel Fabric Solution recording in the Land Records Meetup http://www.meetup.com/Esri-Land-Records-Meet-Up/pages/Meeting%27s_Recordings It is a great overview. In the recording they mention that you shouldn't use the whitepaper anymore, but instead use the online help that you linked to above.
... View more
12-21-2015
11:42 AM
|
0
|
0
|
656
|
|
POST
|
There is a 2011 "Loading Data into a Parcel Fabric" Esri White Paper. Has this paper ever been updated or does anyone have any info on best practices that have changed since 10.0? A little background: We've built most of our county from CAD data, but will be loading one city from a file geodatabase polygon FC that will need to have linestrings split into two point lines and true curves created from curves represented as line strings. Thanks
... View more
12-21-2015
08:52 AM
|
0
|
2
|
3906
|
|
POST
|
This is excellent! Exactly what I was looking for. One small change on line 9. If the _print property is false then the if statement will still evaluate to false. I think it should read: if (layer.hasOwnProperty('_print') && layer._print === false) {
... View more
12-18-2015
04:14 PM
|
0
|
0
|
1691
|
|
POST
|
Excellent! And his sample code in the follow up explanation does exactly what I had hoped to do!
... View more
12-18-2015
03:40 PM
|
0
|
0
|
839
|
|
POST
|
Hi, Our Firewall blocks the POST request from PrintTask.execute if the JSON is over a certain character length. This happens when a user adds too many graphics to a map. Currently the print task just fails. Instead, I'd like to be able to do one of the following: query the length of the Web_Map_as_JSON and not execute the task if it is too long (instead I'll warn the user). or, edit the json to strip out the offending graphics layer if it is too big. I found a couple of posts that mention the _getPrintDefinition(). This returns an object, and I could use it to find how many graphics are in each graphics layer, but I would really prefer converting the entire object to the same Json used by the task. Is that possible? If I could convert it, then I could determine how many characters the Json is, and achieve 1. above. Even better would be if I could somehow edit the Json before the print task sends it and achieve 2. above. However, from what I've found, this doesn't seem possible. Any suggestions? Thanks, S. Roberts
... View more
12-16-2015
04:55 PM
|
1
|
2
|
3425
|
|
POST
|
Freddie, Thanks for getting me on the right road. I ended up not using Data Driven Pages, but did use your suggestion of putting all the data in one row and just panning data frames. This tool from the Map Automation Team was useful too. In any case, here is the script that I came up with. It assumes an mxd with a title text element and 3 data frames that are in geographic projection WGS84. Also data in the 1 row format as shown in the screen shot above (although it doesn't help to have the lat and lon reversed - a bit embarrassed about that). #assumes fields named ID, Lat1, Lon1, Lat2, Lon2, Lat3, Lon3, etc for each data frame
#assumes an mxd with a "titleField" text element and a "no data" text element over each dataframe
#data frames must be in Geographic WGS84
import arcpy, os
idField = "ID"
pageTitleFieldName = "CardTitle" #This is the name of the text element at the top of page that should be populated with the ID
in_features = r"H:\Test.gdb\TestData"
mxd = arcpy.mapping.MapDocument(r"H:\Test.mxd")
outputPDF = "H:\TestFinalPDF.pdf"
tmpPDF = "H:\Temp.pdf"
outresolution = 300
outQuality = "NORMAL"
if arcpy.Exists(outputPDF):
arcpy.Delete_management(outputPDF)
finalPDF = arcpy.mapping.PDFDocumentCreate(outputPDF)
pageLayoutCursor = arcpy.SearchCursor(in_features)
for row in pageLayoutCursor:
titleTxt = arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT", pageTitleFieldName)[0]
titleTxt.text = row.getValue(idField)
dfNum = 1
for df in arcpy.mapping.ListDataFrames(mxd):
newExtent = df.extent
if row.getValue("Lat" + str(dfNum)) is not None and row.getValue("Lon" + str(dfNum)) is not None:
newExtent.XMin = row.getValue("Lon" + str(dfNum)) - 0.002
newExtent.YMin = row.getValue("Lat" + str(dfNum)) - 0.002
newExtent.XMax = row.getValue("Lon" + str(dfNum)) + 0.002
newExtent.YMax = row.getValue("Lat" + str(dfNum)) + 0.002
df.extent = newExtent
else:
#this is just my way of zooming the frame to a no data area. You could move the frame off the map too
newExtent.XMin = 37
newExtent.YMin = 37.01
newExtent.XMax = -123
newExtent.YMax = -123.01
df.extent = newExtent
dfNum = dfNum + 1
arcpy.mapping.ExportToPDF(mxd, tmpPDF,"PAGE_LAYOUT",0,0,outresolution,outQuality,)
finalPDF.appendPages(tmpPDF)
del mxd
finalPDF.updateDocProperties(pdf_open_view="USE_THUMBS", pdf_layout="SINGLE_PAGE")
finalPDF.saveAndClose()
del finalPDF
if arcpy.Exists(tmpPDF):
arcpy.Delete_management(tmpPDF)
... View more
11-20-2015
03:53 PM
|
0
|
0
|
900
|
|
POST
|
I've got a table with IDs and each ID could have 1-3 point locations (lat,lon). I'd like to create a PDF with one page for each ID, and each of the 3 data frames centered on the associated points. I have reasonable Esri related python experience, but haven't done much with arcpy.mapping. Any start with creating the PDF, cycling through the IDs to add a page to the PDF, and then centering each data frame would be so much appreciated. Or perhaps I'll get lucky, and someone has done this exactly. Below is an example of the data (could be in excel or a GeoDB table), and an example of one page of the PDF. Thanks in advance, S. Roberts either one of these two table formats could be created: Each PDF page would look like this:
... View more
11-19-2015
09:34 AM
|
0
|
2
|
3074
|
|
DOC
|
Robert, I noticed a little quirk when clicking on items in the list. If you click on subsequent white (no background) records, then the previously selected item doesn't change it's background back to white. The following 2 changes in the list.js will fix this: In the add function, Replace if(item.alt){ domClass.add(div, this._itemCSS); }else{ domClass.add(div, this._itemAltCSS); } with: if(item.alt){ domClass.add(div, this._itemAltCSS); }else{ domClass.add(div, this._itemCSS); } also in the _onClick function, replace if (this._selectedNode) { domClass.replace(this._selectedNode, ((item.alt)? this._itemAltCSS:this._itemCSS), this._itemSelectedCSS); } with: if (this._selectedNode) { var item_selected = this._getItemById(this._selectedNode); domClass.replace(this._selectedNode, ((item_selected.alt)? this._itemAltCSS:this._itemCSS), this._itemSelectedCSS); }
... View more
11-03-2015
09:22 AM
|
0
|
0
|
6040
|
|
POST
|
One minor change. In Robert's sample code, replace the two instances of: "uniqname_0_1" with: this.list.id.toLowerCase() I found that if you have more than one widget that uses a list, then depending on which widget is created first, the unique name may be "uniqname_0_1" or "uniqname_0_2" for the list.
... View more
11-02-2015
12:08 PM
|
1
|
0
|
1022
|
|
POST
|
Robert, Works splendidly. Once again you've saved me a good number of hours!
... View more
11-02-2015
10:42 AM
|
0
|
0
|
1022
|
|
POST
|
I'm using Robert's eSearch Widget. If the widget is maximized, I'd like the user to be able to click (or touch) a graphic and have the result list in the widget scroll to the record (or list item) that corresponds to the graphic. Has anyone done anything similar with scrolling a list in the WAB that might get me started?
... View more
10-30-2015
04:54 PM
|
0
|
3
|
2972
|
|
POST
|
Thanks for this thread. It was very useful. I got analytics going, and thought I would share my method. In the index.html, before the closing </head> tag, I added the Analytics code from the top of this Google Page I wrapped the whole thing in an if statement: if (document.domain === 'gis.nevcounty.net' ) so that the tracking only occurs once the app is deployed to our production web server. We have a separate tracker code for our widget analytics, so I also added this line: ga('create', 'XX-XXXXXX-X', 'auto',{'name': 'widgetTracker'}); widgetTracker is just a name that is assigend so that you can send page views or events to either tracker. Just use ga('send'.... for the first tracker, or ga('widgetTracker.send'..... for the second tracker. So when the eSearch tool is opened, I log a pageview using the widgetTracker code, by adding this code to the beginning of the postCreate function: if (ga){ ga('widgetTracker.send', 'pageview','MN_Widget/' + this.name); } The above will only log once when the widget is created, so it tells you that the tool was used during this session. I log specific events for various widget functions. So for instance if a user does a search using the eSearch tool, I added the following lines in Widget.js to the onSearch function that will track the type of search that they did: if (ga){ var trackerLabelString = this.config.layers[this.AttributeLayerIndex].name ga('widgetTracker.send', 'event', 'search', 'by Attribute: ' + trackerLabelString , {'nonInteraction': 1}); } According to the documentation, the 'nonInteraction' object will send the event without impacting your bounce rate.
... View more
09-04-2015
11:02 AM
|
3
|
1
|
3773
|
|
POST
|
I don't' want the layer to show on the map (and the legend in that case).
... View more
08-28-2015
01:22 PM
|
0
|
2
|
1786
|
|
POST
|
Does anyone know how I can exclude a map layer from a print task? I have an operational layer on my map, but don't want to include it in the resulting print. I am passing a PrintParameters object to the print task. I am assigning the Map object to the printparameters.map property. I can remove a layer id from Map object, print the map, then add the layer id back to the Map object, but what I would really like to do is just remove the layer from the print. I don't see how I can do this without cloning the entire Map object, removing the layer, and then assigning the cloned object to printparameters.map. There must be a better way!
... View more
08-28-2015
12:55 PM
|
1
|
5
|
4613
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 11-02-2015 12:08 PM | |
| 1 | 02-08-2016 08:22 AM | |
| 1 | 08-13-2015 10:32 AM | |
| 1 | 08-13-2015 09:44 AM | |
| 1 | 05-04-2015 03:17 PM |
| Online Status |
Offline
|
| Date Last Visited |
11-11-2020
02:23 AM
|