make-geo-json
Version:
Converts polylines, wkts, wkbs, polygons, circles, rectangles, as well as standard geoJSON into geoJSON MultiPolygon Feature Objects. Converts wkb_list and FeatureCollection to arrays.
134 lines (98 loc) • 2.85 kB
Markdown
Converts polylines, wkts, wkbs, polygons, circles, rectangles, googlePolys, as well as standard geoJSON into geoJSON MultiPolygon Feature Objects. Includes poly area (calculated in square miles).
Converts FeatureCollection and KMLs into arrays of geoJSON MultiPolygon Feature Objects.
Can be used as npm package or AWS Lambda.
### Params
makeGeoJSON receives two parameters, "type" and "poly".
#### Type
Options for type include:
+ wkt
+ wkb
+ polygons (Leaflet polygon)
+ circles (Leaflet circles)
+ rectangles (Leaflet rectangles)
+ Feature (Feature, geoJSON, and geo_json are the same, but worded differently to catch user mistakes)
+ geoJSON
+ geo_json
+ FeatureCollection
+ wkb_list (An array of wkbs)
+ kml
#### Poly
Poly will be passed in as a string, object, or array of objects, depending on the type
String:
+ wkt
+ wkb
+ polyline
Object:
+ polygons
+ circles
+ rectangles
+ geoJSON
+ FeatureCollection
Array of Objects:
+ kml
### Lambda
https://console.aws.amazon.com/lambda/home?region=us-east-1#/functions/make-geo-json?tab=graph
arn:aws:lambda:us-east-1:498598553520:function:make-geo-json
Pass in event with this structure:
```
{
"type": :string,
"poly": :string (for polyline, wkt, wkb, polygon, circle, rectangle)
:object (for googlePolys, geoJSON, FeatureColletion)
:array of objects (for kml)
:array of strings (for wkb_list)
}
```
### NPM
```
npm i --save make-geo-json
```
```
import { makeGeoJSON } from 'make-geo-json';
```
```
makeGeoJSON(poly.type, poly,data)
```
```
npm i --save lodash
npm i --save wkx
```
lodash - https://www.npmjs.com/package/lodash
wkx - https://www.npmjs.com/package/wkx
```
const polyline = {
type: 'polyline',
data: 'polylinestringdata',
};
makeGeoJSON(polyline.type, polyline.data);
outputs:
{ type: 'Feature',
properties: {
area: number,
whateverelse: "You put here",
},
geometry: {
type: 'MultiPolygon',
coordinates: [[[
[],
[],
]]],
},
}
```
Also see test/ for more examples.
Any single point poly is converted to a circle with a 75 meter radius.
Any two point poly is converted into a rectangle.
Any three point plus, open linestring is closed.
Output comes in the form of a MultiPolygon Feature Object. With the *exceptions* of kml and FeatureCollection, which return as an aray of Multipolygon Feature Objects.
Use claudia `test-lambda --event event.json` to test lambda. Must have claudia.js installed on machine.
Use `npm test` to run jest tests.