function createLabels(){ var queryTask = new esri.tasks.QueryTask("REST url"); var query = new esri.tasks.Query(); query.returnGeometry = true; query.outFields = ["site_code"]; query.where = "site_code LIKE '%'"; queryTask.execute(query, function(featureSet){ map.graphics.clear(); var lbls = new esri.layers.GraphicsLayer(); var font = new esri.symbol.Font("9px", esri.symbol.Font.STYLE_NORMAL, esri.symbol.Font.VARIANT_SMALLCAPS, esri.symbol.Font.WEIGHT_BOLDER); for (var i=0, il=featureSet.features.length; i<il; i++) { var x = featureSet.features.geometry.x + 50; var y = featureSet.features.geometry.y + 50; featureSet.features.geometry.x = x; featureSet.features.geometry.y = y; var graphic = featureSet.features.attributes.site_code; var textSymbol = new esri.symbol.TextSymbol(graphic, font, new dojo.Color([0, 0, 0])); var symb = featureSet.features; symb.setSymbol(textSymbol); lbls.add(symb); }; map.addLayer(lbls); }); }
Solved! Go to Solution.
dojo.connect(map, "onZoomEnd", checkScale); function checkScale(extent, zoomFactor, anchor, level){ if (level > 7 && level < 16){ lbls.show() } else { lbls.hide() } //we can retreive the scale here, but level works just as well //var scale = esri.geometry.getScale(map) }