UNPKG

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
# make-geo-json 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'; ``` ## To Use ``` makeGeoJSON(poly.type, poly,data) ``` ### Peer Dependencies ``` npm i --save lodash npm i --save wkx ``` lodash - https://www.npmjs.com/package/lodash wkx - https://www.npmjs.com/package/wkx ### Examples ``` 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: [[[ [long, lat], [long, lat], ]]], }, } ``` Also see test/ for more examples. ## Data Conversion ### Points and Linestrings 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 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. ## Testing Use claudia `test-lambda --event event.json` to test lambda. Must have claudia.js installed on machine. Use `npm test` to run jest tests. ###### For reference see: http://geojson.org/