Autodesk 15606-011408-9300 Developer Guide - Page 57

tion and assign it to a variable called, The second statement operates on

Page 57 highlights

Next, the doGetKey function calls the getMapObjectsEx method and passes its return value (a collection of the selected map features) to a variable called objs. Note that if you use getMapObjectsEx with a map layer, it returns an MGCollection object made up of map features of a map layer, but by using the method with the selection object, and by passing it null as a parameter, it returns the map features in the current selection only: var objs = sel.getMapObjectsEx(null); Then the function calls the MGCollection.size method, which returns a count of the objects in the collection; that number is assigned to the cntObjects variable: var cntObjects = objs.size(); After that, doGetKey uses a for loop to cycle through the feature collection, placing all of the feature names in a single msg variable: // variable to hold feature names var msg = "Keys of selected features are:\n"; var i; // loop counter variable for (i = 0; i < cntObjects; i++) // iterate from 0 to cntObjects { var obj = objs.item(i); var key = obj.getKey(); msg = msg + obj.getMapLayer().getName() + " " + key + "\n"; } The cntObjects variable tells the for loop to iterate once for each object. At each iteration, the loop counter variable (i) is incremented and the following statements are processed: var obj = objs.item(i); var key = obj.getKey(); msg = msg + obj.getMapLayer().getName() + " " + key + "\n"; The first statement uses the item method to select an object from the collection and assign it to a variable called obj. The second statement operates on the obj variable, first using the getKey method to obtain the key of the feature represented by that variable, and then assigning that name to the msg variable. The last line puts it all together by concatenating the previous contents of msg, a layer name obtained by the getName method, a space character, the contents of key, and a JavaScript newline. After all selected features have been added to msg, the contents of the variable are displayed in a JavaScript alert box: alert(msg); Working with Map Features | 57

  • 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

Working with Map Features
|
57
Next, the
doGetKey
function calls the
getMapObjectsEx
method and
passes its return value (a collection of the selected map features) to a variable
called
objs
. Note that if you use
getMapObjectsEx
with a map layer, it
returns an
MGCollection
object made up of map features of a map layer, but
by using the method with the selection object, and by passing it null as a
parameter, it returns the map features in the current selection only:
var objs = sel.getMapObjectsEx(null);
Then the function calls the
MGCollection.size
method, which returns a
count of the objects in the collection; that number is assigned to the
cntObjects
variable:
var cntObjects = objs.size();
After that,
doGetKey
uses a
for
loop to cycle through the feature collection,
placing all of the feature names in a single
msg
variable:
// variable to hold feature names
var msg = "Keys of selected features are:\n";
var i; // loop counter variable
for (i = 0; i < cntObjects; i++) // iterate from 0 to cntObjects
{
var obj = objs.item(i);
var key = obj.getKey();
msg = msg + obj.getMapLayer().getName() + " " + key + "\n";
}
The
cntObjects
variable tells the
for
loop to iterate once for each object.
At each iteration, the loop counter variable (
i
) is incremented and the
following statements are processed:
var obj = objs.item(i);
var key = obj.getKey();
msg = msg + obj.getMapLayer().getName() + " " + key + "\n";
The first statement uses the
item
method to select an object from the collec-
tion and assign it to a variable called
obj
.
The second statement operates on the
obj
variable, first using the
getKey
method to obtain the key of the feature represented by that variable, and
then assigning that name to the
msg
variable. The last line puts it all together
by concatenating the previous contents of
msg
, a layer name obtained by the
getName
method, a space character, the contents of
key
, and a JavaScript
newline. After all selected features have been added to
msg
, the contents of
the variable are displayed in a JavaScript
alert
box:
alert(msg);