Skip to content

Instantly share code, notes, and snippets.

@nommuna2
Last active April 26, 2019 22:04
Show Gist options
  • Save nommuna2/aa180a2a714c8ef62fcbabdc79b88972 to your computer and use it in GitHub Desktop.
Save nommuna2/aa180a2a714c8ef62fcbabdc79b88972 to your computer and use it in GitHub Desktop.
(ArcGIS API for JavaScript) Sample of simplifying polygons using 4.x
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"esri/tasks/support/Query",
"esri/tasks/QueryTask",
"esri/geometry/geometryEngineAsync",
"dojo/domReady!"
],
function (Map, MapView, FeatureLayer, Query, QueryTask, geometryEngineAsync) {
let verticesLayer = new FeatureLayer({
url: "url to feature layer"
});
//Create a new map and set the basemap to Dark gray
var map = new Map({
basemap: "dark-gray",
});
//set a new view and set the properties of the view
var view = new MapView({
container: "viewDiv",
map: map,
center: [-86.049, 38.485],
zoom: 3
});
//Setting up the renderer
var citiesRenderer = {
type: "simple",
symbol: {
type: "simple-fill",
size: 6,
color: "black",
outline: {
width: 0.5,
color: "white"
}
}
};
//Setting up the query
var query = new Query();
query.where = "1=1";
query.outFields = ["*"];
query.maxAllowableOffset = 10;
query.returnGeometry = true;
//After the layer loads, run a query on the layer, then loop through each layer and simplify each geometry. Then replace each geometry with the query results.
verticesLayer.load().then(() => {
verticesLayer.queryFeatures(query).then((results) => {
results.features.forEach((element) => {
//geometryEngineAsync.generalize(element.geometry, 7, true) - for a more defined method
geometryEngineAsync.simplify(element.geometry).then((genResults) => {
results.features.geometry = genResults;
});
}, this);
//Create a new feature layer with the simplified geometries
let myfeaturelayer = new FeatureLayer({
source: results.features,
fields: results.fields,
objectIdField: "ObjectID",
geometryType: results.geometryType,
spatialReference: results.spatialReference,
renderer: citiesRenderer
});
map.add(myfeaturelayer);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment