How to retrieve province, municipality, ward no and district?

1075
2
05-19-2020 04:44 AM
SiyabongaKubeka
Regular Contributor

Hi All

I have the following JavaScript code that I use to retrieve province, municipality, ward no and district. Now I want to put inside its own variable, how can I do that?

<script>
var lon;
var lat;
var latlon;
var provinces;
var municipalities;
var districts;
var wards;
require([
"esri/Map",
"esri/views/MapView",
"esri/WebMap",
"esri/layers/FeatureLayer",
"esri/tasks/QueryTask",
"esri/tasks/support/Query",
"esri/config",
"esri/widgets/Sketch",
"esri/layers/GraphicsLayer"],

function(Map, MapView, WebMap, FeatureLayer, QueryTask, Query,
esriConfig, Sketch, GraphicsLayer) {
esriConfig.portalUrl = "https://portal.environment.gov.za/portal";

const featureLayerUrl = 'https://portal.environment.gov.za/server/rest/services/Boundary/Wards/MapServer/0';
var webmap = new WebMap({
portalItem: {
id: "04582be14885483da48f29398960f653"
}
});

var graphicsLayer = new GraphicsLayer();

var view = new MapView({
map: webmap,
container: "viewDiv",
popup: null
});

var featureLayer = new FeatureLayer({
url: featureLayerUrl
});

webmap.add(featureLayer);

webmap.layers.add(graphicsLayer);

var sketch = new Sketch({
layer: graphicsLayer,
view: view,
creationMode: "update",

});

view.ui.add(sketch, {
position: "top-right"
});

sketch.on('create', function (event) {
// check if the create event's state has changed to complete indicating
// the graphic create operation is completed.
if (event.state === "complete") {

if (view.zoom >= 11) {
let gra = event.graphic.clone();
event.graphic.layer.removeAll();
gra.symbol.color = "red";
gra.layer.add(gra);
console.log(view.zoom);
console.log("X = ", gra.geometry.x);
console.log("Y = ", gra.geometry.y);
console.log("Lat = ", event.graphic.geometry.latitude);
console.log("Long = ", event.graphic.geometry.longitude);
lat = event.graphic.geometry.latitude;
lon = event.graphic.geometry.longitude;
zoomLevel = view.zoom;
for (var i = 0; i < gra.geometry.rings.length; i++){
for (var p = 0; p < gra.geometry.rings.length; p++){
var LatLon = String(gra.geometry.rings

);
console.log(LatLon);
latlon = LatLon;


}
}
debugger;
}
else{
alert("please zoom in");
event.graphic.layer.remove(event.graphic);
}
}

});

view.on('click', function(event){
var queryTask = new QueryTask({
url: featureLayerUrl
});
var query = new Query();
query.geometry = view.toMap(event);
query.distance = 0;
query.units = "meters";
query.spatialRelationship = "intersects";
query.returnGeometry = true;
query.outFields = [ "PROVINCE", "DCS12_NAME", "S12_NAME", "WARD_NO" ];

queryTask.execute(query).then(function(results){
console.log(results.features[0].attributes);
});

});
});
</script>

Tags (2)
This widget could not be displayed.
This widget could not be displayed.
2 Replies
RobertScheitlin__GISP
MVP Emeritus

You are almost there.

queryTask.execute(query).then(function(results){
  var feat = results.features[0];
  provinces = feat.attributes.PROVINCE;
  wards = feat.attributes.WARD_NO;
  districts = feat.attributes.DCS12_NAME;
  municipalities = feat.attributes.S12_NAME
});
This widget could not be displayed.
This widget could not be displayed.
SiyabongaKubeka
Regular Contributor

Hi Robert,

Thank you very much.

This widget could not be displayed.
This widget could not be displayed.