Autodesk 15606-011408-9300 Developer Guide - Page 60

and the following statements are processed, The first statement uses - 0 60 6 seconds

Page 60 highlights

Otherwise, the function creates some more variables. The obj variable contains the first (and only) object in the current selection. The vertices and cntVertices variables hold empty MGCollection objects: var obj = sel.getMapObjectsEx(layer).item(0); var vertices = map.createObject("MGCollection"); var cntVertices = map.createObject("MGCollection"); Then doGetCoordinates uses the getVertices method to get the coordinates and number of vertices of obj, our selected parcel feature. The values getVertices obtains are passed to the empty vertices and cntVertices collections. If getVertices is successful, it returns an integer telling the number of vertices it found; otherwise, it returns zero. The getVertices return value is passed to a variable called res. If getVertices returns zero, an alert displays and the function terminates: var res = obj.getVertices(vertices, cntVertices); if (res == 0) { alert("No access to coordinate information."); return; } Next, doGetCoordinates uses a for loop to cycle through the vertices collection, placing all of the coordinate listings in a single msg variable: msg = "Parcel:" + obj.getKey() + "\n"; msg = msg + "Coordinates in MCS unit\n"; for(var i = 0; i < cntVertices.item(0); i++) { var pnt = vertices.item(i); msg = msg + pnt.getX() + "," + pnt.getY() + "\n"; } The cntVertices variable tells the for loop to iterate once for each vertex in the object. At each iteration, the loop counter variable (i) is incremented and the following statements are processed: var pnt = vertices.item(i); msg = msg + pnt.getX() + "," + pnt.getY() + "\n"; The first statement uses the item method to select a vertex from the collection and assign it to a variable called pnt. The second statement operates on the pnt variable, using the getX and getY methods to get the vertex coordinates and assign them to msg. As with the previous examples, a new line is added to msg each time the for loop iterates. After all coordinates have been added to msg, the contents of the variable are displayed in a JavaScript alert box: alert(msg); 60 | Chapter 4 Working with Map Layers, Map Features, and Printing

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208

60
|
Chapter 4
Working with Map Layers, Map Features, and Printing
Otherwise, the function creates some more variables. The
obj
variable
contains the first (and only) object in the current selection. The
vertices
and
cntVertices
variables hold empty
MGCollection
objects:
var obj = sel.getMapObjectsEx(layer).item(0);
var vertices = map.createObject("MGCollection");
var cntVertices = map.createObject("MGCollection");
Then
doGetCoordinates
uses the
getVertices
method to get the coordi-
nates and number of vertices of
obj
, our selected parcel feature. The values
getVertices
obtains are passed to the empty
vertices
and
cntVertices
collections.
If
getVertices
is successful, it returns an integer telling the number of
vertices it found; otherwise, it returns zero. The
getVertices
return value
is passed to a variable called
res
. If
getVertices
returns zero, an
alert
displays and the function terminates:
var res = obj.getVertices(vertices, cntVertices);
if (res == 0)
{
alert("No access to coordinate information.");
return;
}
Next,
doGetCoordinates
uses a
for
loop to cycle through the
vertices
collection, placing all of the coordinate listings in a single
msg
variable:
msg = "Parcel:" + obj.getKey() + "\n";
msg = msg + "Coordinates in MCS unit\n";
for(var i = 0; i < cntVertices.item(0); i++)
{
var pnt = vertices.item(i);
msg = msg + pnt.getX() + "," + pnt.getY() + "\n";
}
The
cntVertices
variable tells the
for
loop to iterate once for each vertex
in the object. At each iteration, the loop counter variable (
i
) is incremented
and the following statements are processed:
var pnt = vertices.item(i);
msg = msg + pnt.getX() + "," + pnt.getY() + "\n";
The first statement uses the
item
method to select a vertex from the collec-
tion and assign it to a variable called
pnt
.
The second statement operates on the
pnt
variable, using the
getX
and
getY
methods to get the vertex coordinates and assign them to
msg
. As with the
previous examples, a new line is added to
msg
each time the
for
loop iter-
ates. After all coordinates have been added to
msg
, the contents of the vari-
able are displayed in a JavaScript
alert
box:
alert(msg);