Autodesk 15606-011408-9300 Developer Guide - Page 63

Handling Busy State and Map Refresh, assign it to a variable called

Page 63 highlights

The showFeatureCount function starts by checking the status of the global variable, legendSet. If legendSet is set to True, showFeatureCount terminates: if (legendSet) return; This keeps showFeatureCount from printing multiple messages to the legend if the user clicks the button more than once. Next, showFeatureCount creates an instance of the map and checks to see if the map is in a busy state (see "Handling Busy State and Map Refresh" on page 43 for more information about the busy state): var map = getMap(); if (map.isBusy() == false) If the map is not busy, the function continues. First, it uses the getMapLayersEx method to obtain a layer collection and assign it to a variable called layers. Then it uses the size method to get the number of layers and assign that number to the cnt variable: var layers = map.getMapLayersEx(); var cnt = layers.size(); Then it creates a loop that counts the features in each layer and uses the getLegendLabel and setLegendLabel methods, as shown in the illustrations following the example, to report the map feature counts in the map legend: var i; var msg; for (i = 0; i

  • 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
|
63
The
showFeatureCount
function starts by checking the status of the global
variable,
legendSet
. If
legendSet
is set to
True
,
showFeatureCount
terminates:
if (legendSet)
return;
This keeps
showFeatureCount
from printing multiple messages to the
legend if the user clicks the button more than once.
Next,
showFeatureCount
creates an instance of the map and checks to see
if the map is in a busy state (see
Handling Busy State and Map Refresh
on
page 43 for more information about the busy state):
var map = getMap();
if (map.isBusy() == false)
If the map is not busy, the function continues.
First, it uses the
getMapLayersEx
method to obtain a layer collection and
assign it to a variable called
layers
. Then it uses the
size
method to get the
number of layers and assign that number to the
cnt
variable:
var layers = map.getMapLayersEx();
var cnt = layers.size();
Then it creates a loop that counts the features in each layer and uses the
getLegendLabel
and
setLegendLabel
methods, as shown in the illustra-
tions following the example, to report the map feature counts in the map
legend:
var i;
var msg;
for (i = 0; i<cnt; i++)
{
var layer = layers.item(i);
var objectCount = layer.getMapObjectsEx().size();
var label = layer.getLegendLabel();
label = label + " " + objectCount + " features";
layer.setLegendLabel(label);
}
Finally
showFeatureCount
sets the global
legendSet
variable to
True
.
This keeps the function from running again until the page containing the
map is refreshed.
legendSet = true;