In our previous blogs, we learned about GIS and their data models as well as Implementation leaflet for GIS solution. Now, from this blog, we will learn how to create a new polygon by creating a Buffer that is 250ft around the perimeter of the selected parcel.
In the above image, the yellow area is selected parcel and the red area shown as Buffer polygon.
Parcel: Plot an area of land.
For the creation of buffer first we need to get selected parcel coordinates, Some parcel has only four coordinates and some has multiple, it depends on parcel shape.
You can also use the below method for creating the polygon.I am using Turf javascript for the creation of a polygon and buffer.
“Turf is a modular geospatial analysis engine written in JavaScript. It performs geospatial processing tasks with GeoJSON data and can be run on a server or in a browser.”
You can download turf.js from http://turfjs.org/
Turf.polygon: Takes an array of LinearRings and optionally an Object with properties and returns a GeoJSON Polygon feature.
[-2.275543, 53.464547] ]], { name: ‘mypoly’, population: 500});
After creation of polygon, we will create a buffer for the created polygon. First, we need to know ‘what is the buffer’.
“A buffer in GIS is a zone around a map feature measured in units of distance or time. A buffer is useful for proximity analysis”.
For the creation of buffer around the selected parcel/polygon, we are using Turf.Buffer method.
Turf.Buffer: Turf.Buffer calculates a buffer for input features for a given radius. FeatureCollection may be geojson polygon, line or point as per our requirement. Units supported are miles, kilometers, feet, and degrees (negative values are allowed).
Parameters
- Input to be buffered (FeatureCollection | Geometry | Feature)
- Radius is the distance to draw the buffer.
Options
- Units is a string type. The units are supported by turf units (optional, default “kilometers”) only.
- Steps is number type for number of steps (optional, default 64)
Examples
var poly = turf.polygon([[plg.feature.geometrynoflip.coordinates[0][0]]]);
Var ft = 200;
var buffered = turf.buffer(poly, ft, { units: ‘feet’ });
In above example input as the selected polygon, Unite as feet and Steps are 200.
For showing created buffer on the map, we need to bind with the map.
Var parcelbuf = new L.GeoJSON(buffered, { style: parcel200ftStyle });
parcelbuf.addTo(map);
This is how we create a buffer with given units using leaflet.
If you are looking to get more updates or assessments for GIS, contact us today at +1-484-876-1867 or send us a message.