Skip to content

Instantly share code, notes, and snippets.

@nickpeihl
Created January 13, 2017 22:45
Show Gist options
  • Save nickpeihl/5b5daa7ec3405a77a6ccdf63fbc0961b to your computer and use it in GitHub Desktop.
Save nickpeihl/5b5daa7ec3405a77a6ccdf63fbc0961b to your computer and use it in GitHub Desktop.
Example of Streaming Esri JSON to GeoJSON
const request = require('request')
const JSONStream = require('JSONStream')
const TerraformerArcGIS = require('terraformer-arcgis-parser')
const geojsonStream = require('geojson-stream')
const fs = require('fs')
const url = 'http://sjcgis.org/arcgis/rest/services/Polaris/Buildings/MapServer/0/query?outSR=4326&where=FID >= 20000 AND FID<=20175&f=json&outFields=*&geometry=&returnGeometry=true&geometryPrecision=10'
const featureStream = JSONStream.parse('features.*', convert)
const outFile = fs.createWriteStream('features.geojson')
request.get({url: url})
.on('error', err => console.log('Error', err))
.pipe(featureStream)
.pipe(geojsonStream.stringify())
.pipe(outFile)
function convert (feature) {
const gj = {
type: 'Feature',
properties: feature.attributes,
geometry: TerraformerArcGIS.parse(feature.geometry)
}
return gj
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment