|
POST
|
Excellent. Better than I could have hoped. I've created the lines as accurately as possible with the available data, but there's still plenty of room for error. Fortunately, there is stationing data associated with the line files that do have coordinates. Once I have those, everything should work out nicely. In theory. If you have known stationing you can use the Calibration tools to fix those measure values and interpolate the remaining measures for increased accruacy relative to your field data. Anyway, you should look at the Linear Referencing help to get more information on what you can do.
... View more
11-30-2011
02:02 PM
|
0
|
0
|
1331
|
|
POST
|
I do not think you can do this through a label expression across multiple rows of features without using a summary tool or a cursor (python or .Net) and storing the result in a field for each row through a join to the summary or from the cursor processing. If this involves a single feature only and multiple field columns that is different, but your description sounds like you have to accumulate multiple rows to get your answer.
... View more
11-30-2011
10:58 AM
|
0
|
0
|
778
|
|
POST
|
Disclaimer: I have next to no experience with code, and I'm relatively new to ArcGIS, but I figure that my problem is such that learning to write a code would probably go faster than trying to do this manually. I'm in a particularly frustrating situation trying to locate sets of several hundred points, a few thousand total. The points were surveyed using the only prominent landmark; specifically, all I have to locate them is a distance measurement along the line, and a perpendicular distance from that point (I believe my life would be easier if either measurement was made at a regular distance, but this is not the case). They are, at least, all on the same side of the line. I'm assuming I would need to populate a table with said measurements and point identifiers, but beyond that... Fortunately, I have people in my life that will put up with my lack of knowledge, but I'm sure they would be more appreciative if I had snippets of code to get me started. Any ideas? I know there will be a cumulative error associated with line placement, but there isn't much that can be done about that. If you actually have a line feature you can use Linear Referencing to create the points from the table you create without any code. You could use the Create Route tool to create a new feature class that would assign measure values along the line based on its length. You would need to make the point data into a table. The table would need a set of 3 fields to store the line's id value (a name or a number in a field of the line), a distance along the line, and a distance to the side of the line. When you have the Route and the table, right click the table and choose Create Route Events to match up the line as the Route feature class and the table as an event source. Specify that you want points and fill in the fields for the measure and the side offset. You may have to use the advanced settings to get the side offset on the correct side of the line (or just multiply the values by -1 to switch their side).
... View more
11-30-2011
10:51 AM
|
0
|
0
|
1331
|
|
POST
|
Here is an example add-in button that does the basics of what you want: Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Geometry
Imports ESRI.ArcGIS.Geodatabase
Imports ESRI.ArcGIS.ArcMapUI
Imports ESRI.ArcGIS.ADF
Imports My
Public Class MyClass ' Your real class name will appear here
Inherits ESRI.ArcGIS.Desktop.AddIns.Button
Public Sub New()
End Sub
Protected Overrides Sub OnClick()
Dim pMxDoc As IMxDocument
pMxDoc = CType(ArcMap.Application.Document, IMxDocument)
Dim pMap As IMap
pMap = pMxDoc.FocusMap
Dim pEnumLayer As IEnumLayer
pEnumLayer = pMap.Layers
pEnumLayer.Reset()
Dim pLayer As ILayer
pLayer = pEnumLayer.Next
Dim pFLayer As IFeatureLayer
Do While Not pLayer Is Nothing
If pLayer.Name = "MY_LAYER_NAME" And TypeOf pLayer Is IFeatureLayer Then ' Substitute your real layer name
pFLayer = TryCast(pLayer, IFeatureLayer)
Exit Do
End If
pLayer = pEnumLayer.Next
Loop
If pFLayer is Nothing Then
MsgBox("No Layer Found")
Exit Sub
End If
Dim pFSel As IFeatureSelection
pFSel = pFLayer
Dim pSelSet As ESRI.ArcGIS.Geodatabase.ISelectionSet2
pSelSet = pFSel.SelectionSet
If pSelSet.Count < 1 Then
MsgBox("No Features Selected")
Return
End If
Using comReleaser As ComReleaser = New ComReleaser() ' Recommended for cleaning up cursors
Dim pFCursor As ESRI.ArcGIS.Geodatabase.IFeatureCursor = Nothing
pSelSet.Search(Nothing, False, pFCursor)
comReleaser.ManageLifetime(pFCursor)
Dim pFeature As IFeature
pFeature = pFCursor.NextFeature ' Get First Feature
If pFeature Is Nothing Then
MsgBox("No Features Selected!") ' Just in case, but probably already taken care of earlier
Return
End If
Dim lFIndex As Long
lFIndex = pFCursor.FindField("MY_FIELD_NAME") ' Replace with your field name
If lFIndex > -1 Then
Dim fValue as String ' Substute the correct data type to match the field type
Do While Not pFeature Is Nothing
fValue = pFeature.Value(lFIndex)
' Do something with the value stored in fValue
pFeature = pFCursor.NextFeature
Loop
End If
End Using
End Sub
Protected Overrides Sub OnUpdate()
End Sub
End Class
... View more
11-27-2011
12:04 PM
|
1
|
0
|
2319
|
|
POST
|
Given that ArcScene uses a vanishing point and horizon if the view is anything but looking straight down, wouldn't a scalebar be misleading? Even a straight down view has scale distortions if varying elevations exist (and why would anyone use ArcScene if you have no elevation changes and do not intend to use a view other than looking straight down). Scale measurements taken as one approaches the vanishing point and horizon would never match the scalebar. Esri can't change the laws of physics relative to the effects of 3D viewing distortions on scale without compromising the 3D view. Any placement of a scalebar from ArcMap on an ArcScene view is simply misleading yourself and your audience except in the simplest of cases around a relatively limited focal point. A legend is something that should be supported in ArcScene, but the workaround is all there is for now.
... View more
11-25-2011
07:52 PM
|
0
|
0
|
2419
|