GithubHelp home page GithubHelp logo

esri / terraformer Goto Github PK

View Code? Open in Web Editor NEW
672.0 69.0 154.0 55.43 MB

A geographic toolkit for dealing with geometry, geography, formats, and building geo databases

License: MIT License

Ruby 2.50% JavaScript 94.46% TypeScript 2.41% Shell 0.63%
data-management arcgis geojson javascript

terraformer's Introduction

IMPORTANT!

Terraformer is now depreacted and this repo is marked as read-only. Development activity has moved to https://github.com/terraformer-js/terraformer.

Terraformer

Build Status

A modular toolkit for working with geographic data.

Modules

The Terraformer project is broken up into a series of smaller modules.

  • Terraformer Core - Contains methods and objects for working with GeoJSON. This also contains common methods used by other modules.
  • WKT Parser - Parse Well Known Text into GeoJSON and vice versa.
  • ArcGIS Geometry Parser - Parse the ArcGIS Geometry Format into GeoJSON and vice versa.
  • GeoStore - A framework for persisting and querying GeoJSON features with pluggable indexes and persistent stores.

Features

  • Designed to work in Node and the browser
  • No dependencies on other tools or libraries

Getting Started

Check out the getting started guide which will give you an overview of core concepts and methods in Terraformer.

Node.js

Install the core module with npm and then require it in your Node program.

$ npm install terraformer
var Terraformer = require("terraformer");

If needed, supporting packages can be added too.

require("terraformer-arcgis-parser");
require("terraformer-wkt-parser");
require("terraformer-geostore");

Browser

<script src="https://unpkg.com/[email protected]"></script>

To utilize supporting packages, you must load their source as well.

<script src="https://unpkg.com/[email protected]"></script>
<script src="https://unpkg.com/[email protected]"></script>

Documentation

  • Terraformer Core - Contains methods and objects for working with GeoJSON. This also contains common methods used by other modules.
  • WKT Parser - Parse Well Known Text into GeoJSON and vice versa.
  • ArcGIS Geometry Parser - Parse the ArcGIS Geometry Format into GeoJSON and vice versa.
  • GeoStore - A framework for persisting and querying GeoJSON features with pluggable indexes and persistent stores.
var polygon = new Terraformer.Primitive({
  type: "Polygon",
  coordinates: [
    [
      [-122.665894, 45.5229015],
      [-122.669263, 45.5229165],
      [-122.671151, 45.5184062],
      [-122.673254, 45.5140008],
      [-122.668426, 45.5127378],
      [-122.667654, 45.5169478],
      [-122.665894, 45.5229015],
    ],
  ],
});

var point = new Terraformer.Primitive({
  type: "Point",
  coordinates: [-122.669477, 45.51776],
});

Now that you have a point and a polygon primitive you can use the primitive helper methods.

// add a new vertex to our polygon
polygon.insertVertex([-122.670851, 45.513189], 2);

// figure out if our point is within our polygon
point.within(polygon); // returns true

You can also have Terraformer perform many geometric operations like convex hulls and bounding boxes.

var convexHull = polygon.convexHull();

point.within(convexHull); // returns true

var boundingBox = polygon.bbox(); // returns the geojson bounding box for this object.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

A copy of the license is available in the repository's LICENSE file.

terraformer's People

Contributors

aaronpk avatar adamajm avatar alaframboise avatar chelm avatar darcyparker avatar dependabot[bot] avatar dsmrs avatar finchie avatar gavinr-maps avatar geospatialem avatar jcardonadcdev avatar jeffjacobson avatar jerrysievert avatar jgravois avatar julianrojas87 avatar kenichi avatar knu2xs avatar kristinaweis avatar kyledrake avatar lyzidiamond avatar markstos avatar mhogeweg avatar nikolaswise avatar nixta avatar patrickarlt avatar paulcpederson avatar sylvainguittard avatar techwraith avatar ungoldman avatar zakjan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terraformer's Issues

FeatureCollection for GeoJSON to ArcGIS JSON missing

In looking at the geojson-viewer example, the following GeoJSON does not work:
http://files.theoutpost.io/webmapping/lab3/wecomatracks.json

The first node of the object is FeatureCollection, and the convert function in arcgis.js does not have a case for this GeoJSON type. This means that null is returned.
https://github.com/Esri/Terraformer/blob/master/src/Parsers/ArcGIS/arcgis.js#L84

The GeoJSON works fine in Leaflet:
http://files.theoutpost.io/webmapping/lab3/

Also, it works when I just paste a sub feature into the input of the demo.

What would be the Esri equivalent to a FeatureCollection that would be an array of geometries?

Add sample code

Should have sample code in node, browser, AMD (require.js), Dojo and WebWorker

Node modules should not have dependency versions set to 'latest'

terraformer-wkt-parser has a dependency on the terraformer package with version set to 'latest'. This is causing problems when running 'npm shrinkwrap' currently and It might cause dependency issues in the future if you try to install an older version of terraformer-wkt-parser.

Consider this example package.json:

{
  "name": "example",
  "version": "0.1.0",
  "dependencies": {
    "terraformer-wkt-parser": "~0.1.7",
    "terraformer": "~0.1.7"
  }
}

Running the npm install and npm shrinkwrap fail with this package.json:

$ npm install
npm WARN package.json [email protected] No README.md file found!
npm http GET https://registry.npmjs.org/terraformer-wkt-parser
npm http GET https://registry.npmjs.org/terraformer
npm http 304 https://registry.npmjs.org/terraformer
npm http 304 https://registry.npmjs.org/terraformer-wkt-parser
npm WARN unmet dependency /tmp/test/node_modules/terraformer-wkt-parser requires terraformer@'latest' but will load
npm WARN unmet dependency /tmp/test/node_modules/terraformer,
npm WARN unmet dependency which is version 0.1.7
[email protected] node_modules/terraformer

[email protected] node_modules/terraformer-wkt-parser

$ npm shrinkwrap
npm WARN package.json [email protected] No README.md file found!
npm WARN unmet dependency /tmp/test/node_modules/terraformer-wkt-parser requires terraformer@'latest' but will load
npm WARN unmet dependency /tmp/test/node_modules/terraformer,
npm WARN unmet dependency which is version 0.1.7
npm ERR! Error: Problems were encountered
npm ERR! Please correct and try again.
npm ERR! invalid: [email protected] /tmp/test/node_modules/terraformer
npm ERR!     at shrinkwrap_ (/home/psanford/.nvm/v0.8.23/lib/node_modules/npm/lib/shrinkwrap.js:28:15)
npm ERR!     at /home/psanford/.nvm/v0.8.23/lib/node_modules/npm/lib/shrinkwrap.js:22:5
npm ERR!     at /home/psanford/.nvm/v0.8.23/lib/node_modules/npm/lib/ls.js:40:30
npm ERR!     at /home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/read-installed/read-installed.js:118:5
npm ERR!     at /home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/read-installed/read-installed.js:232:14
npm ERR!     at cb (/home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/slide/lib/async-map.js:48:11)
npm ERR!     at /home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/read-installed/read-installed.js:232:14
npm ERR!     at asyncMap (/home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/slide/lib/async-map.js:27:18)
npm ERR!     at next (/home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/read-installed/read-installed.js:198:5)
npm ERR!     at /home/psanford/.nvm/v0.8.23/lib/node_modules/npm/node_modules/read-installed/read-installed.js:155:7
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <[email protected]>

...
npm ERR! not ok code 0

Assuming that you are using semantic versioning, you probably want to specify the dependency with a tilde version range.

Add contains() to Features

I have this working in my fork. It throws and error if the type of geometry in the feature is not Polygon or MultiPolygon

GeoJSON Coordinate Validation

Hello, Thank you for writing this! Its great!
I needed to have good geoJSON coordinate validation so I ended up writing a geoJSON Validation Lib. I validate before I feed my JSON into Terraformer. But it might make sense to integrate validation and do the checks on the creation of the primitives. I don't think it would be too hard to add my library into the mix. If this is a route you think would make sense for you, would there be any interest in a PR?

Create tools namespace

should include envelope calculations, spatial ref converters, point in poly and circle tools.

incorrect calculation of bounds

given an extra complicated polygon, the bounds are being calculated as "null":

{"type":"Polygon","coordinates":[[[-86.743607,33.831236],[-86.744784,33.831921],[-86.749748,33.834806],[-86.749993,33.835167],[-86.753324,33.83715],[-86.759144,33.840617],[-86.759212,33.840592],[-86.760519,33.8406],[-86.761298,33.840599],[-86.761545,33.8406],[-86.762562,33.840596],[-86.76343,33.840589],[-86.76614,33.840692],[-86.76691,33.840717],[-86.76954,33.840813],[-86.769571,33.840814],[-86.770046,33.840831],[-86.773711,33.840877],[-86.777517,33.840925],[-86.781723,33.840978],[-86.782781,33.84099],[-86.783369,33.84099],[-86.785356,33.840991],[-86.787835,33.841027],[-86.788372,33.841035],[-86.799771,33.841203],[-86.800473,33.841213],[-86.801952,33.841235],[-86.802646,33.841246],[-86.80298,33.84125],[-86.803387,33.841257],[-86.803807,33.841266],[-86.805033,33.841293],[-86.811036,33.841423],[-86.811549,33.841434],[-86.811835,33.84144],[-86.814657,33.8415],[-86.814875,33.841505],[-86.816848,33.841548],[-86.81702,33.841552],[-86.818267,33.841578],[-86.818406,33.841583],[-86.825032,33.841826],[-86.825055,33.841826],[-86.825273,33.841831],[-86.825311,33.841833],[-86.828672,33.841918],[-86.831756,33.841993],[-86.832451,33.84201],[-86.83598,33.842099],[-86.843915,33.842271],[-86.847215,33.842334],[-86.85165,33.842432],[-86.85722,33.842545],[-86.864855,33.8427],[-86.866736,33.842739],[-86.87228,33.842817],[-86.872404,33.842831],[-86.873689,33.842974],[-86.873887,33.842996],[-86.873989,33.843008],[-86.874627,33.84302],[-86.874834,33.843027],[-86.874979,33.843038],[-86.87507,33.843052],[-86.875146,33.843075],[-86.87524,33.843115],[-86.875253,33.843125],[-86.875271,33.843125],[-86.879088,33.843174],[-86.883947,33.843237],[-86.88426,33.843074],[-86.890089,33.83998],[-86.89101,33.839491],[-86.891063,33.839463],[-86.8936,33.838144],[-86.895139,33.837345],[-86.901739,33.833918],[-86.904741,33.83235],[-86.904788,33.832326],[-86.908012,33.830644],[-86.913359,33.827771],[-86.914774,33.827006],[-86.914857,33.826961],[-86.917283,33.825652],[-86.92302,33.822571],[-86.923559,33.822283],[-86.929522,33.819078],[-86.934556,33.816374],[-86.936537,33.81531],[-86.936635,33.815312],[-86.940499,33.81531],[-86.940521,33.81531],[-86.944558,33.815308],[-86.945302,33.815295],[-86.953664,33.815297],[-86.953648,33.820262],[-86.953619,33.82884],[-86.953616,33.829122],[-86.953616,33.830228],[-86.953653,33.831149],[-86.954146,33.841509],[-86.954305,33.844862],[-86.957087,33.844904],[-86.957268,33.844907],[-86.958172,33.844922],[-86.960446,33.844909],[-86.961631,33.844942],[-86.962139,33.844912],[-86.962239,33.844906],[-86.96296,33.844865],[-86.963032,33.84595],[-86.963142,33.848103],[-86.963145,33.84826],[-86.963249,33.853413],[-86.963342,33.858055],[-86.963346,33.858095],[-86.963353,33.858174],[-86.963358,33.858221],[-86.963345,33.858221],[-86.963322,33.858221],[-86.96315,33.858218],[-86.962629,33.858192],[-86.962283,33.858166],[-86.961896,33.858121],[-86.961809,33.858114],[-86.961679,33.85811],[-86.961462,33.858115],[-86.961376,33.858125],[-86.96103,33.858139],[-86.960944,33.858129],[-86.960562,33.858068],[-86.960182,33.857995],[-86.959837,33.857954],[-86.95975,33.857954],[-86.959708,33.857961],[-86.959667,33.857974],[-86.959631,33.857993],[-86.95957,33.858044],[-86.959487,33.858127],[-86.959438,33.858186],[-86.959393,33.858286],[-86.959342,33.85846],[-86.959319,33.858638],[-86.959316,33.858709],[-86.959309,33.858745],[-86.959326,33.859003],[-86.959358,33.85918],[-86.959391,33.85932],[-86.959544,33.859804],[-86.959593,33.859941],[-86.959778,33.860417],[-86.959844,33.860549],[-86.95992,33.860792],[-86.96004,33.861209],[-86.960281,33.861857],[-86.960386,33.86253],[-86.960419,33.86267],[-86.960504,33.862947],[-86.960559,33.863083],[-86.960694,33.863346],[-86.960832,33.863647],[-86.960947,33.863839],[-86.961012,33.863932],[-86.961106,33.864093],[-86.961454,33.864546],[-86.961625,33.864794],[-86.961739,33.864947],[-86.962016,33.865266],[-86.962071,33.865322],[-86.962405,33.865603],[-86.962699,33.865866],[-86.962863,33.866033],[-86.96308,33.8663],[-86.963215,33.866523],[-86.963268,33.866621],[-86.963307,33.86676],[-86.963324,33.866866],[-86.963298,33.867079],[-86.963257,33.86718],[-86.963181,33.867309],[-86.963078,33.867424],[-86.962888,33.867571],[-86.962853,33.867592],[-86.962736,33.867639],[-86.96261,33.867668],[-86.962447,33.867718],[-86.962362,33.867731],[-86.962237,33.867719],[-86.962111,33.867691],[-86.961963,33.867616],[-86.961751,33.867491],[-86.961348,33.867279],[-86.961122,33.867172],[-86.960977,33.867093],[-86.960606,33.866908],[-86.960151,33.8667],[-86.960034,33.866652],[-86.959677,33.866521],[-86.959286,33.866366],[-86.95912,33.866322],[-86.958916,33.866262],[-86.958073,33.865974],[-86.957638,33.865811],[-86.957557,33.865786],[-86.957389,33.865749],[-86.957226,33.865701],[-86.9571,33.865675],[-86.956898,33.865611],[-86.956772,33.865584],[-86.956489,33.865493],[-86.956217,33.865382],[-86.956069,33.865309],[-86.95588,33.865223],[-86.955563,33.865106],[-86.955263,33.864962],[-86.954955,33.864832],[-86.954843,33.864776],[-86.954625,33.864659],[-86.954342,33.864493],[-86.954069,33.864316],[-86.954037,33.864297],[-86.954008,33.86428],[-86.953785,33.86415],[-86.953562,33.864041],[-86.95349,33.864],[-86.953142,33.863731],[-86.952831,33.863482],[-86.952564,33.863247],[-86.952276,33.862979],[-86.951892,33.862593],[-86.951844,33.862534],[-86.951691,33.862362],[-86.951295,33.86194],[-86.951096,33.861752],[-86.950915,33.861598],[-86.950817,33.861528],[-86.950603,33.861406],[-86.950564,33.86139],[-86.950398,33.861347],[-86.950314,33.861331],[-86.950079,33.861324],[-86.950036,33.861327],[-86.949601,33.861306],[-86.949341,33.861314],[-86.948867,33.861353],[-86.948739,33.861374],[-86.948571,33.86141],[-86.948448,33.861446],[-86.948283,33.861487],[-86.947996,33.861571],[-86.947922,33.861607],[-86.947789,33.861699],[-86.947761,33.861727],[-86.947746,33.861748],[-86.947681,33.861843],[-86.947663,33.861876],[-86.947656,33.861911],[-86.94766,33.861982],[-86.947667,33.862018],[-86.947679,33.862052],[-86.947734,33.862149],[-86.947852,33.862379],[-86.947978,33.862567],[-86.948185,33.862839],[-86.948281,33.862958],[-86.948433,33.863132],[-86.948544,33.863242],[-86.94889,33.863562],[-86.949338,33.863949],[-86.949614,33.864177],[-86.950352,33.864733],[-86.950518,33.864847],[-86.950608,33.864924],[-86.950869,33.865162],[-86.951063,33.865353],[-86.951422,33.865801],[-86.951624,33.866116],[-86.951712,33.866239],[-86.951936,33.866585],[-86.9521,33.866876],[-86.952159,33.866971],[-86.952247,33.867094],[-86.952273,33.867123],[-86.952427,33.867378],[-86.952547,33.867607],[-86.952553,33.867623],[-86.952559,33.867642],[-86.952624,33.867774],[-86.952709,33.867975],[-86.952755,33.868113],[-86.952784,33.868218],[-86.952811,33.868285],[-86.95288,33.868528],[-86.952885,33.868564],[-86.952899,33.868848],[-86.952881,33.869133],[-86.95286,33.869347],[-86.952809,33.869629],[-86.95279,33.869699],[-86.952683,33.870008],[-86.952468,33.870513],[-86.952292,33.870879],[-86.95225,33.87098],[-86.952157,33.871141],[-86.952071,33.871265],[-86.951996,33.871353],[-86.951854,33.871488],[-86.951819,33.871509],[-86.951779,33.871524],[-86.951737,33.871533],[-86.951694,33.871537],[-86.951651,33.871534],[-86.951437,33.871501],[-86.951397,33.871488],[-86.951241,33.871424],[-86.951205,33.871405],[-86.951127,33.871373],[-86.9507,33.871127],[-86.950402,33.87092],[-86.950273,33.870825],[-86.949553,33.870255],[-86.949225,33.86997],[-86.949142,33.869887],[-86.949118,33.869857],[-86.949062,33.869803],[-86.948878,33.869605],[-86.948476,33.869185],[-86.948204,33.868909],[-86.948154,33.868851],[-86.947861,33.868542],[-86.947714,33.868412],[-86.947524,33.868265],[-86.947456,33.868221],[-86.947293,33.868104],[-86.946992,33.8679],[-86.946821,33.86779],[-86.946157,33.867389],[-86.946089,33.867344],[-86.945708,33.867051],[-86.945642,33.867005],[-86.945496,33.866927],[-86.945341,33.866863],[-86.945136,33.866806],[-86.945051,33.866789],[-86.944837,33.866762],[-86.944787,33.866759],[-86.944745,33.866749],[-86.944702,33.866744],[-86.944615,33.866745],[-86.944356,33.866726],[-86.943883,33.86667],[-86.943798,33.866657],[-86.943454,33.866619],[-86.943374,33.866614],[-86.943072,33.866571],[-86.942856,33.866555],[-86.942121,33.866555],[-86.940908,33.866612],[-86.940133,33.866699],[-86.939873,33.86672],[-86.939528,33.866755],[-86.939182,33.866781],[-86.93901,33.866801],[-86.93875,33.86682],[-86.938708,33.866829],[-86.938619,33.866838],[-86.93823,33.866858],[-86.937795,33.866866],[-86.937623,33.86688],[-86.936886,33.866911],[-86.936628,33.866932],[-86.936414,33.86696],[-86.936073,33.867011],[-86.935987,33.867019],[-86.935944,33.867027],[-86.935643,33.86705],[-86.935471,33.867068],[-86.935216,33.867113],[-86.934403,33.867213],[-86.933839,33.867235],[-86.933538,33.86726],[-86.933149,33.867279],[-86.932324,33.867292],[-86.932239,33.867302],[-86.932112,33.867326],[-86.931988,33.867359],[-86.931948,33.867373],[-86.931798,33.867446],[-86.931726,33.867485],[-86.931559,33.867598],[-86.931488,33.867638],[-86.931208,33.867859],[-86.930905,33.868114],[-86.930901,33.868117],[-86.930869,33.868146],[-86.930644,33.868312],[-86.930582,33.868362],[-86.930453,33.868456],[-86.930392,33.868506],[-86.929808,33.86893],[-86.92954,33.869113],[-86.929148,33.869393],[-86.929043,33.869456],[-86.929039,33.869459],[-86.928851,33.869579],[-86.928367,33.869878],[-86.928133,33.870037],[-86.927645,33.870392],[-86.927545,33.870461],[-86.927402,33.870541],[-86.927262,33.870625],[-86.926924,33.870848],[-86.926853,33.870889],[-86.926613,33.871041],[-86.926245,33.871228],[-86.926174,33.87127],[-86.925802,33.871452],[-86.925696,33.871514],[-86.925406,33.87167],[-86.925142,33.871793],[-86.925022,33.871835],[-86.924319,33.872016],[-86.92416,33.872069],[-86.924078,33.872091],[-86.92404,33.872108],[-86.923919,33.872144],[-86.92369,33.872224],[-86.923367,33.872336],[-86.923159,33.872385],[-86.923031,33.8724],[-86.922774,33.872416],[-86.922645,33.872419],[-86.922602,33.872417],[-86.922348,33.872375],[-86.9221,33.872315],[-86.921937,33.872269],[-86.921812,33.87224],[-86.921685,33.872219],[-86.921599,33.872209],[-86.921469,33.872205],[-86.92121,33.872213],[-86.921038,33.872229],[-86.920953,33.872244],[-86.920759,33.872305],[-86.920684,33.872339],[-86.920578,33.872402],[-86.92054,33.872419],[-86.920469,33.87246],[-86.92028,33.872606],[-86.92022,33.872658],[-86.920196,33.872687],[-86.920112,33.872812],[-86.920098,33.872846],[-86.92007,33.873022],[-86.920068,33.87313],[-86.920078,33.873201],[-86.920104,33.873306],[-86.92017,33.873398],[-86.920198,33.873453],[-86.920386,33.873636],[-86.92054,33.873762],[-86.920608,33.873806],[-86.920854,33.873951],[-86.921158,33.874154],[-86.921228,33.874196],[-86.921302,33.874234],[-86.921509,33.874363],[-86.921641,33.874456],[-86.921883,33.874607],[-86.921981,33.874677],[-86.922218,33.874834],[-86.922344,33.874939],[-86.922355,33.874949],[-86.922365,33.874957],[-86.922375,33.874965],[-86.9224,33.874986],[-86.92248,33.87507],[-86.922512,33.875094],[-86.922773,33.87533],[-86.922798,33.875359],[-86.922902,33.875423],[-86.92312,33.87554],[-86.92322,33.875607],[-86.923398,33.87571],[-86.923641,33.87591],[-86.923697,33.875965],[-86.923756,33.876016],[-86.923972,33.876238],[-86.924125,33.876412],[-86.924172,33.876471],[-86.924266,33.876667],[-86.924313,33.876803],[-86.924348,33.877013],[-86.924344,33.877118],[-86.924329,33.877223],[-86.924306,33.877328],[-86.924257,33.877465],[-86.924222,33.877529],[-86.924161,33.877662],[-86.923967,33.877939],[-86.923723,33.878233],[-86.92357,33.878404],[-86.923173,33.878821],[-86.923031,33.878953],[-86.922971,33.879003],[-86.922637,33.879375],[-86.92258,33.879428],[-86.922556,33.879458],[-86.9225,33.879511],[-86.922476,33.879541],[-86.922421,33.879595],[-86.921788,33.88027],[-86.921771,33.880303],[-86.921715,33.880356],[-86.921456,33.880686],[-86.921417,33.880749],[-86.921347,33.880878],[-86.921307,33.88094],[-86.921237,33.881069],[-86.921198,33.881131],[-86.921081,33.881358],[-86.921003,33.881484],[-86.920858,33.881739],[-86.92079,33.881869],[-86.920663,33.88213],[-86.920636,33.882197],[-86.92056,33.882324],[-86.920518,33.882423],[-86.920432,33.882659],[-86.920397,33.882723],[-86.920235,33.883085],[-86.920211,33.883153],[-86.920101,33.883419],[-86.920068,33.883484],[-86.920057,33.883519],[-86.920056,33.883554],[-86.920046,33.883571],[-86.920006,33.883643],[-86.919931,33.883846],[-86.919901,33.883985],[-86.919868,33.884195],[-86.919824,33.884618],[-86.919819,33.884762],[-86.91983,33.884938],[-86.919849,33.885006],[-86.919859,33.885075],[-86.919895,33.885248],[-86.919917,33.885315],[-86.91992,33.88535],[-86.919947,33.885417],[-86.919956,33.885451],[-86.920055,33.885721],[-86.920163,33.886063],[-86.920179,33.886132],[-86.920201,33.8862],[-86.920248,33.886408],[-86.920285,33.886547],[-86.920389,33.88689],[-86.92043,33.8871],[-86.920498,33.887305],[-86.920512,33.887375],[-86.920523,33.887409],[-86.920561,33.887656],[-86.920576,33.887689],[-86.920612,33.887827],[-86.920615,33.887863],[-86.920653,33.888037],[-86.920661,33.88818],[-86.920652,33.88825],[-86.920631,33.888638],[-86.920632,33.888709],[-86.920618,33.888849],[-86.920616,33.888955],[-86.920621,33.88899],[-86.920616,33.88906],[-86.920619,33.889131],[-86.920616,33.889272],[-86.92062,33.889485],[-86.920646,33.890157],[-86.920644,33.890192],[-86.920649,33.890263],[-86.920673,33.890439],[-86.920684,33.890651],[-86.920675,33.89072],[-86.920676,33.890861],[-86.920672,33.890896],[-86.920673,33.890902],[-86.920703,33.891177],[-86.920717,33.891246],[-86.920776,33.89177],[-86.920792,33.891873],[-86.920809,33.891941],[-86.920845,33.892219],[-86.920882,33.892571],[-86.920894,33.89264],[-86.920932,33.892993],[-86.920949,33.893062],[-86.920965,33.893203],[-86.92098,33.893272],[-86.921004,33.893552],[-86.921008,33.893658],[-86.921005,33.893943],[-86.921009,33.894013],[-86.921019,33.894082],[-86.921036,33.894327],[-86.921062,33.894538],[-86.921097,33.89471],[-86.921158,33.894911],[-86.921326,33.895118],[-86.92144,33.895221],[-86.921502,33.89527],[-86.921568,33.895315],[-86.921596,33.895341],[-86.921726,33.895434],[-86.921837,33.895489],[-86.921951,33.895539],[-86.9223,33.895675],[-86.922418,33.895717],[-86.922499,33.895741],[-86.922577,33.89577],[-86.922618,33.895781],[-86.922773,33.895839],[-86.922935,33.895884],[-86.922973,33.8959],[-86.923092,33.895939],[-86.923174,33.895961],[-86.923293,33.895999],[-86.923331,33.896015],[-86.923373,33.896026],[-86.924089,33.896171],[-86.924259,33.8962],[-86.924341,33.896222],[-86.924385,33.89622],[-86.924552,33.896255],[-86.924676,33.896289],[-86.924761,33.896299],[-86.925015,33.896339],[-86.925474,33.896428],[-86.925882,33.896548],[-86.925924,33.896556],[-86.92623,33.896686],[-86.926566,33.896841],[-86.926638,33.896879],[-86.926714,33.896912],[-86.926892,33.897009],[-86.927165,33.897184],[-86.927216,33.897241],[-86.927307,33.897361],[-86.927349,33.897498],[-86.927402,33.897705],[-86.927412,33.897847],[-86.927398,33.897988],[-86.927397,33.898059],[-86.927371,33.898446],[-86.927359,33.898516],[-86.927337,33.898727],[-86.927264,33.899218],[-86.927257,33.899324],[-86.927254,33.899466],[-86.927231,33.899677],[-86.927181,33.899993],[-86.927166,33.900063],[-86.927156,33.900205],[-86.927146,33.900275],[-86.92713,33.900593],[-86.92711,33.900769],[-86.927107,33.90084],[-86.927085,33.901051],[-86.927055,33.901617],[-86.927037,33.901682],[-86.927026,33.901752],[-86.926972,33.90196],[-86.926754,33.902722],[-86.926742,33.902793],[-86.926703,33.902931],[-86.926679,33.903036],[-86.926669,33.903106],[-86.92661,33.903384],[-86.926591,33.903452],[-86.926544,33.903695],[-86.926501,33.90383],[-86.926476,33.903934],[-86.926453,33.904072],[-86.926414,33.904245],[-86.926354,33.904735],[-86.926349,33.904806],[-86.926303,33.90505],[-86.926294,33.905191],[-86.926283,33.905261],[-86.92628,33.905332],[-86.926274,33.905367],[-86.926243,33.905755],[-86.926222,33.90593],[-86.92611,33.90631],[-86.925789,33.907199],[-86.925698,33.907399],[-86.925418,33.907956],[-86.925341,33.908082],[-86.925178,33.908331],[-86.925084,33.90845],[-86.925042,33.908512],[-86.92497,33.908601],[-86.924769,33.908834],[-86.924691,33.908919],[-86.924387,33.909222],[-86.924262,33.909319],[-86.923903,33.909572],[-86.923355,33.909897],[-86.923282,33.909926],[-86.923177,33.909989],[-86.922736,33.910215],[-86.922658,33.910242],[-86.922239,33.910415],[-86.922126,33.910465],[-86.921905,33.910575],[-86.921584,33.910758],[-86.921386,33.910895],[-86.921002,33.911129],[-86.920403,33.911635],[-86.920212,33.911825],[-86.920067,33.911954],[-86.919983,33.912034],[-86.919922,33.912084],[-86.919499,33.912535],[-86.919252,33.912732],[-86.919209,33.912789],[-86.918978,33.913001],[-86.918763,33.913222],[-86.918473,33.913488],[-86.918078,33.913953],[-86.91783,33.914284],[-86.917686,33.914503],[-86.917619,33.914595],[-86.917518,33.91471],[-86.917326,33.914945],[-86.917064,33.915228],[-86.917015,33.915286],[-86.916933,33.91537],[-86.916785,33.915501],[-86.916689,33.915572],[-86.916362,33.915743],[-86.916207,33.915807],[-86.916007,33.915867],[-86.915924,33.915882],[-86.915885,33.915898],[-86.915761,33.91592],[-86.915632,33.915925],[-86.915328,33.915927],[-86.915201,33.915915],[-86.914911,33.91585],[-86.914837,33.915813],[-86.914797,33.915798],[-86.914723,33.915763],[-86.914683,33.915748],[-86.914575,33.915691],[-86.914504,33.915649],[-86.914462,33.91564],[-86.914236,33.915516],[-86.914023,33.915393],[-86.913957,33.915349],[-86.91361,33.915139],[-86.913542,33.915094],[-86.913396,33.915018],[-86.913292,33.914954],[-86.9131,33.914814],[-86.913071,33.914788],[-86.912971,33.91472],[-86.912934,33.914701],[-86.912835,33.914633],[-86.912681,33.91451],[-86.912243,33.914172],[-86.912014,33.914012],[-86.911952,33.913963],[-86.911751,33.913829],[-86.911539,33.913707],[-86.911243,33.913557],[-86.91092,33.913377],[-86.910733,33.913287],[-86.910656,33.913257],[-86.910506,33.913188],[-86.910428,33.91316],[-86.910351,33.913127],[-86.910234,33.913088],[-86.910158,33.913056],[-86.909964,33.912986],[-86.909883,33.912967],[-86.909846,33.91295],[-86.909724,33.912917],[-86.909558,33.912882],[-86.909435,33.91285],[-86.909277,33.912793],[-86.909116,33.912743],[-86.908867,33.912689],[-86.908739,33.912674],[-86.908482,33.912665],[-86.908356,33.912675],[-86.908151,33.912705],[-86.908109,33.912706],[-86.907944,33.912736],[-86.907859,33.912745],[-86.907733,33.912766],[-86.907486,33.912823],[-86.907161,33.912914],[-86.906681,33.91308],[-86.906177,33.913286],[-86.905909,33.913402],[-86.905669,33.913482],[-86.905195,33.913661],[-86.904788,33.913768],[-86.904749,33.913782],[-86.904667,33.913801],[-86.904545,33.913836],[-86.904024,33.914004],[-86.903949,33.914038],[-86.903916,33.914061],[-86.903694,33.914142],[-86.903532,33.91419],[-86.903377,33.914248],[-86.903336,33.91426],[-86.90326,33.914291],[-86.90314,33.914331],[-86.902813,33.914425],[-86.902689,33.914455],[-86.90261,33.914482],[-86.902534,33.914515],[-86.902412,33.914554],[-86.901879,33.914706],[-86.901504,33.914793],[-86.901253,33.914846],[-86.901047,33.914902],[-86.900928,33.914943],[-86.900727,33.915005],[-86.900149,33.915159],[-86.899523,33.915294],[-86.899481,33.915298],[-86.899315,33.91533],[-86.899231,33.915338],[-86.898896,33.915393],[-86.898105,33.915571],[-86.897729,33.915647],[-86.897646,33.91566],[-86.897398,33.915722],[-86.897063,33.915782],[-86.89702,33.91578],[-86.896939,33.915793],[-86.896856,33.915812],[-86.896147,33.915948],[-86.895871,33.915984],[-86.895595,33.916021],[-86.895412,33.916045],[-86.895203,33.916083],[-86.895076,33.916098],[-86.894994,33.916113],[-86.894782,33.916138],[-86.894741,33.916146],[-86.894107,33.916223],[-86.894068,33.916238],[-86.894026,33.916246],[-86.893855,33.916265],[-86.893729,33.916286],[-86.893448,33.916374],[-86.893325,33.916406],[-86.893242,33.916422],[-86.893159,33.916444],[-86.892821,33.916499],[-86.892607,33.916524],[-86.891485,33.916573],[-86.891399,33.916573],[-86.891011,33.916592],[-86.890711,33.916598],[-86.889847,33.916638],[-86.889502,33.916645],[-86.88907,33.916667],[-86.888983,33.916664],[-86.888767,33.916669],[-86.88829,33.9167],[-86.887901,33.916708],[-86.887814,33.916706],[-86.887121,33.916758],[-86.88683,33.916824],[-86.886605,33.91693],[-86.886535,33.916972],[-86.886355,33.917115],[-86.886298,33.91716],[-86.886186,33.917267],[-86.886125,33.917317],[-86.886022,33.917432],[-86.885956,33.917524],[-86.885917,33.917587],[-86.885893,33.917616],[-86.885831,33.91771],[-86.885718,33.917902],[-86.885644,33.91807],[-86.885622,33.918101],[-86.885605,33.918134],[-86.885597,33.918169],[-86.885595,33.918205],[-86.885415,33.918757],[-86.885341,33.918962],[-86.885228,33.919193],[-86.885098,33.919417],[-86.884985,33.919647],[-86.884893,33.919807],[-86.884718,33.920131],[-86.884539,33.920415],[-86.884433,33.920618],[-86.884302,33.920801],[-86.884099,33.921113],[-86.884055,33.921174],[-86.884046,33.921189],[-86.883907,33.921429],[-86.883742,33.921756],[-86.883579,33.922161],[-86.883532,33.922299],[-86.883449,33.922647],[-86.883385,33.922889],[-86.883303,33.92345],[-86.883277,33.92359],[-86.883217,33.924154],[-86.883202,33.924436],[-86.883198,33.924684],[-86.883187,33.924718],[-86.883205,33.924847],[-86.8832,33.924918],[-86.883215,33.925129],[-86.883251,33.925405],[-86.883322,33.92594],[-86.88335,33.92608],[-86.883419,33.92636],[-86.883528,33.926888],[-86.883614,33.927418],[-86.883678,33.927736],[-86.883807,33.92826],[-86.883868,33.928577],[-86.883959,33.928926],[-86.884172,33.929651],[-86.884233,33.929821],[-86.884309,33.929987],[-86.884335,33.930055],[-86.884588,33.930618],[-86.884637,33.930716],[-86.884693,33.930812],[-86.884822,33.930998],[-86.88486,33.931062],[-86.884972,33.931213],[-86.885447,33.931977],[-86.885513,33.932069],[-86.885655,33.932245],[-86.885709,33.932301],[-86.885903,33.932532],[-86.885949,33.932592],[-86.885999,33.932648],[-86.886091,33.932766],[-86.886179,33.932888],[-86.886218,33.932989],[-86.88622,33.933024],[-86.886213,33.933165],[-86.886203,33.933236],[-86.886192,33.93327],[-86.886098,33.933469],[-86.886038,33.933563],[-86.885931,33.933676],[-86.885782,33.933805],[-86.88571,33.933856],[-86.885569,33.93394],[-86.885459,33.933998],[-86.885304,33.934061],[-86.885162,33.934095],[-86.884026,33.93413],[-86.883322,33.934353],[-86.883099,33.934462],[-86.883018,33.934505],[-86.882518,33.934769],[-86.88239,33.934916],[-86.882379,33.934907],[-86.882307,33.934923],[-86.882179,33.934943],[-86.882053,33.934972],[-86.881603,33.935107],[-86.881402,33.935174],[-86.881152,33.935232],[-86.880333,33.935473],[-86.880212,33.935514],[-86.880134,33.935545],[-86.879459,33.935787],[-86.878971,33.935939],[-86.8786,33.936039],[-86.878087,33.93623],[-86.878009,33.936262],[-86.877888,33.936301],[-86.877719,33.936332],[-86.877416,33.936363],[-86.877156,33.936344],[-86.877029,33.936323],[-86.876863,33.936281],[-86.876302,33.936088],[-86.876148,33.936023],[-86.876112,33.936003],[-86.876036,33.935969],[-86.87588,33.935907],[-86.875517,33.935714],[-86.875442,33.935678],[-86.875057,33.935517],[-86.874875,33.93542],[-86.874798,33.935388],[-86.874507,33.935255],[-86.8745,33.935252],[-86.87427,33.935147],[-86.874197,33.93511],[-86.87408,33.935063],[-86.87392,33.935011],[-86.873536,33.934861],[-86.873495,33.934849],[-86.873423,33.934813],[-86.873119,33.934688],[-86.872961,33.934631],[-86.8726,33.934512],[-86.872434,33.934474],[-86.872392,33.93447],[-86.872266,33.934446],[-86.871935,33.934369],[-86.871855,33.934342],[-86.871778,33.934311],[-86.871383,33.934168],[-86.87131,33.934132],[-86.871119,33.934052],[-86.870769,33.933916],[-86.870726,33.933912],[-86.870301,33.93374],[-86.869789,33.933553],[-86.869675,33.933503],[-86.869454,33.933396],[-86.869278,33.933295],[-86.86921,33.933252],[-86.869059,33.933183],[-86.868823,33.933093],[-86.868749,33.933058],[-86.868709,33.933045],[-86.868549,33.932977],[-86.868476,33.93294],[-86.868338,33.932857],[-86.86823,33.932799],[-86.868171,33.932767],[-86.868071,33.932721],[-86.867863,33.932625],[-86.867738,33.932568],[-86.867505,33.932473],[-86.867206,33.932329],[-86.866879,33.932155],[-86.866848,33.932132],[-86.866777,33.932091],[-86.866609,33.931984],[-86.866549,33.931934],[-86.866224,33.931709],[-86.86608,33.931581],[-86.866025,33.931527],[-86.865703,33.931244],[-86.865551,33.931118],[-86.865494,33.931065],[-86.865462,33.931041],[-86.865125,33.930719],[-86.864793,33.930448],[-86.864736,33.930395],[-86.864703,33.930373],[-86.864506,33.930187],[-86.864446,33.930136],[-86.864336,33.930027],[-86.864243,33.929954],[-86.864103,33.929871],[-86.864001,33.929805],[-86.863924,33.929773],[-86.863397,33.929529],[-86.8632,33.929459],[-86.862916,33.929379],[-86.862838,33.929351],[-86.862714,33.929321],[-86.862376,33.929259],[-86.862291,33.929249],[-86.862207,33.929249],[-86.861952,33.929234],[-86.861868,33.929235],[-86.861485,33.929222],[-86.861399,33.929214],[-86.861186,33.929179],[-86.860978,33.929137],[-86.860596,33.92908],[-86.860295,33.929063],[-86.860039,33.929032],[-86.859953,33.929032],[-86.859825,33.929046],[-86.859699,33.929071],[-86.859617,33.929095],[-86.859578,33.929111],[-86.859505,33.929149],[-86.859426,33.929217],[-86.859347,33.929302],[-86.859286,33.929396],[-86.859274,33.92943],[-86.859268,33.929466],[-86.859244,33.929533],[-86.859214,33.929637],[-86.859183,33.930134],[-86.859189,33.930486],[-86.859232,33.930907],[-86.859245,33.930976],[-86.859268,33.931257],[-86.859269,33.931327],[-86.859283,33.931502],[-86.859308,33.931712],[-86.859321,33.931782],[-86.859332,33.931887],[-86.859387,33.932166],[-86.859395,33.932236],[-86.859419,33.932341],[-86.859504,33.932618],[-86.859745,33.933227],[-86.859778,33.933292],[-86.859801,33.933323],[-86.859837,33.933387],[-86.859881,33.933449],[-86.860203,33.933827],[-86.86034,33.934048],[-86.860364,33.934115],[-86.860383,33.934147],[-86.86042,33.934248],[-86.860451,33.934351],[-86.860437,33.934457],[-86.860436,33.934492],[-86.860418,33.934562],[-86.860394,33.93463],[-86.860341,33.934727],[-86.860298,33.934789],[-86.860246,33.934846],[-86.86,33.935139],[-86.859682,33.93543],[-86.859317,33.935733],[-86.858658,33.936294],[-86.85854,33.936399],[-86.858458,33.936481],[-86.858223,33.936737],[-86.858002,33.936956],[-86.857766,33.937211],[-86.857645,33.93736],[-86.857578,33.937451],[-86.857559,33.937483],[-86.85702,33.938088],[-86.856853,33.938297],[-86.856608,33.938593],[-86.856554,33.938648],[-86.856494,33.9387],[-86.856067,33.939103],[-86.855892,33.939261],[-86.855317,33.939748],[-86.855254,33.939797],[-86.855183,33.939839],[-86.854996,33.939931],[-86.854609,33.940083],[-86.853639,33.940684],[-86.853491,33.940759],[-86.853164,33.940935],[-86.853028,33.941024],[-86.852991,33.941043],[-86.852913,33.941074],[-86.852838,33.94111],[-86.852632,33.941242],[-86.852526,33.941354],[-86.852383,33.941488],[-86.852215,33.9416],[-86.851647,33.942042],[-86.851283,33.942349],[-86.851054,33.942564],[-86.850812,33.942769],[-86.850642,33.942903],[-86.850567,33.942898],[-86.850523,33.942899],[-86.85048,33.942905],[-86.850439,33.942917],[-86.850401,33.942935],[-86.850369,33.942959],[-86.850298,33.942999],[-86.850048,33.943197],[-86.849982,33.943243],[-86.849812,33.943351],[-86.84978,33.943376],[-86.849606,33.943535],[-86.849513,33.943609],[-86.849175,33.943824],[-86.849145,33.943849],[-86.849036,33.943905],[-86.848882,33.943969],[-86.848519,33.944091],[-86.848483,33.944109],[-86.848416,33.944154],[-86.848357,33.944206],[-86.848048,33.944502],[-86.847675,33.944801],[-86.847558,33.944906],[-86.84748,33.944991],[-86.84746,33.945022],[-86.847408,33.945078],[-86.847302,33.945233],[-86.84729,33.945268],[-86.847281,33.945339],[-86.847143,33.945453],[-86.846578,33.945896],[-86.846155,33.946203],[-86.846036,33.946307],[-86.845913,33.946407],[-86.84494,33.947168],[-86.84488,33.94722],[-86.844651,33.947435],[-86.84453,33.947537],[-86.844291,33.947692],[-86.844145,33.947823],[-86.844091,33.947879],[-86.844033,33.947931],[-86.843751,33.948205],[-86.843561,33.948351],[-86.843395,33.948466],[-86.843324,33.948507],[-86.843291,33.948531],[-86.84307,33.948643],[-86.842623,33.94886],[-86.842391,33.948957],[-86.842189,33.949023],[-86.841914,33.94913],[-86.84184,33.949167],[-86.841601,33.949255],[-86.841356,33.949327],[-86.841059,33.949383],[-86.84046,33.949466],[-86.839933,33.949573],[-86.839573,33.949646],[-86.839324,33.949708],[-86.83916,33.949756],[-86.838674,33.949912],[-86.838103,33.950063],[-86.837972,33.950098],[-86.837276,33.950302],[-86.83678,33.950433],[-86.836338,33.950585],[-86.836215,33.95062],[-86.836,33.950645],[-86.835956,33.950646],[-86.83587,33.95064],[-86.835696,33.950635],[-86.83561,33.950625],[-86.835236,33.95053],[-86.835015,33.950417],[-86.834635,33.950179],[-86.834564,33.950138],[-86.834526,33.950121],[-86.834417,33.950062],[-86.834315,33.949995],[-86.833643,33.949437],[-86.833226,33.949023],[-86.833199,33.949],[-86.833166,33.948972],[-86.832758,33.948554],[-86.832695,33.948504],[-86.832491,33.948319],[-86.832305,33.948121],[-86.832032,33.947892],[-86.831679,33.947626],[-86.83134,33.947349],[-86.831242,33.947279],[-86.830891,33.947058],[-86.83053,33.94686],[-86.830455,33.946824],[-86.829878,33.946573],[-86.829695,33.946477],[-86.829255,33.946184],[-86.829136,33.94608],[-86.829074,33.946031],[-86.828991,33.945948],[-86.828889,33.945833],[-86.828817,33.945744],[-86.828462,33.945253],[-86.828326,33.945029],[-86.828203,33.94484],[-86.828085,33.944691],[-86.827939,33.944559],[-86.827875,33.94451],[-86.827672,33.944376],[-86.827421,33.944234],[-86.826977,33.944008],[-86.826221,33.943659],[-86.826079,33.943605],[-86.825654,33.943424],[-86.825506,33.94335],[-86.82493,33.943096],[-86.824813,33.943049],[-86.824611,33.942984],[-86.824445,33.942941],[-86.824149,33.942881],[-86.823941,33.942831],[-86.823692,33.942764],[-86.823371,33.942655],[-86.823218,33.942586],[-86.823072,33.942509],[-86.822173,33.942013],[-86.821747,33.941768],[-86.821315,33.941531],[-86.821163,33.941462],[-86.821005,33.941401],[-86.820964,33.941389],[-86.820878,33.941381],[-86.820609,33.941381],[-86.820566,33.941385],[-86.820441,33.941414],[-86.820156,33.941502],[-86.820038,33.941547],[-86.819813,33.941655],[-86.819778,33.941676],[-86.81946,33.941919],[-86.819157,33.942122],[-86.818652,33.942563],[-86.818568,33.942644],[-86.818544,33.942674],[-86.818424,33.942904],[-86.818411,33.942939],[-86.818376,33.943151],[-86.818372,33.943258],[-86.818378,33.943293],[-86.818422,33.943431],[-86.818474,33.943567],[-86.818562,33.94373],[-86.818576,33.943764],[-86.818617,33.943827],[-86.81871,33.943948],[-86.818751,33.94401],[-86.818921,33.944299],[-86.819108,33.944581],[-86.819179,33.944711],[-86.819329,33.944968],[-86.819576,33.945346],[-86.819725,33.945603],[-86.819951,33.946028],[-86.819989,33.946092],[-86.820004,33.946125],[-86.82012,33.946317],[-86.820242,33.946507],[-86.820309,33.946638],[-86.820387,33.946766],[-86.820657,33.947291],[-86.820935,33.947775],[-86.821079,33.948112],[-86.82116,33.948137],[-86.821234,33.948176],[-86.821265,33.948201],[-86.821315,33.948257],[-86.821496,33.948582],[-86.821778,33.948983],[-86.821817,33.949047],[-86.821907,33.949248],[-86.821916,33.949283],[-86.821929,33.949386],[-86.822155,33.949812],[-86.822218,33.949945],[-86.822311,33.950107],[-86.822374,33.950201],[-86.822472,33.950319],[-86.822981,33.950899],[-86.823122,33.951035],[-86.823616,33.951534],[-86.823757,33.951715],[-86.823929,33.951964],[-86.823947,33.951996],[-86.823998,33.952123],[-86.823997,33.952162],[-86.824041,33.95241],[-86.824066,33.95273],[-86.824064,33.952873],[-86.824041,33.953051],[-86.824011,33.953155],[-86.823897,33.953499],[-86.82388,33.953532],[-86.823793,33.953656],[-86.823617,33.954021],[-86.823548,33.954265],[-86.823474,33.954581],[-86.823447,33.954649],[-86.823395,33.954747],[-86.823159,33.955128],[-86.822988,33.955376],[-86.822844,33.955555],[-86.822626,33.955864],[-86.82234,33.956223],[-86.822151,33.956419],[-86.822146,33.956516],[-86.822137,33.956561],[-86.822122,33.956595],[-86.822078,33.956655],[-86.821804,33.95693],[-86.821742,33.956978],[-86.821626,33.957083],[-86.821564,33.957133],[-86.82146,33.957197],[-86.821419,33.95721],[-86.821333,33.957221],[-86.821142,33.957369],[-86.820935,33.9575],[-86.820859,33.957534],[-86.820736,33.957571],[-86.820694,33.95758],[-86.820438,33.957618],[-86.820351,33.957616],[-86.820225,33.957587],[-86.820117,33.957526],[-86.81986,33.957333],[-86.819771,33.957255],[-86.819641,33.95716],[-86.819535,33.957077],[-86.819336,33.956937],[-86.819232,33.956873],[-86.818912,33.956689],[-86.818424,33.956453],[-86.818346,33.95642],[-86.818062,33.95633],[-86.817793,33.956213],[-86.817531,33.956087],[-86.816937,33.955866],[-86.816576,33.955741],[-86.816267,33.95561],[-86.816102,33.955538],[-86.815907,33.955459],[-86.815579,33.955364],[-86.815296,33.955272],[-86.814699,33.955053],[-86.814582,33.955005],[-86.814257,33.954903],[-86.814102,33.954838],[-86.81403,33.954799],[-86.813961,33.954755],[-86.813651,33.954625],[-86.813427,33.954515],[-86.813075,33.954374],[-86.812931,33.954294],[-86.812731,33.954223],[-86.812615,33.954173],[-86.812403,33.954048],[-86.812128,33.953874],[-86.81198,33.953798],[-86.811349,33.953556],[-86.810977,33.953456],[-86.810892,33.953441],[-86.810458,33.953411],[-86.810156,33.953444],[-86.810069,33.953445],[-86.809764,33.953432],[-86.809677,33.953435],[-86.809634,33.953441],[-86.809344,33.953517],[-86.808985,33.953647],[-86.808944,33.953658],[-86.808858,33.953671],[-86.808641,33.953685],[-86.808294,33.953663],[-86.808077,33.953681],[-86.807776,33.953721],[-86.807342,33.953743],[-86.807256,33.953758],[-86.807173,33.953779],[-86.807133,33.953793],[-86.807057,33.953828],[-86.806914,33.953909],[-86.806819,33.953983],[-86.806677,33.954066],[-86.806604,33.954104],[-86.806527,33.954138],[-86.806328,33.954209],[-86.806286,33.954218],[-86.806071,33.954242],[-86.805901,33.954273],[-86.805611,33.954349],[-86.805104,33.954445],[-86.804938,33.954488],[-86.804895,33.954493],[-86.804837,33.954514],[-86.804171,33.954676],[-86.803747,33.95476],[-86.803575,33.954781],[-86.803272,33.954804],[-86.803144,33.954827],[-86.80284,33.954837],[-86.802536,33.95482],[-86.802278,33.954787],[-86.802108,33.954758],[-86.801946,33.954706],[-86.801695,33.954648],[-86.801164,33.954488],[-86.800409,33.954314],[-86.800012,33.954167],[-86.799642,33.953977],[-86.799431,33.953851],[-86.799224,33.953721],[-86.799089,33.95363],[-86.798731,33.953428],[-86.798554,33.953324],[-86.798383,33.953213],[-86.797813,33.952825],[-86.797705,33.952764],[-86.797482,33.952652],[-86.797406,33.952618],[-86.797081,33.952516],[-86.795726,33.95225],[-86.79517,33.952156],[-86.795042,33.952138],[-86.794481,33.95208],[-86.794176,33.952064],[-86.794134,33.952057],[-86.794088,33.952061],[-86.793914,33.952059],[-86.793697,33.952073],[-86.793266,33.952126],[-86.792966,33.952169],[-86.792543,33.952251],[-86.792417,33.952281],[-86.792016,33.952417],[-86.791828,33.952508],[-86.791756,33.952548],[-86.791227,33.952918],[-86.791157,33.95296],[-86.791011,33.953037],[-86.790783,33.953142],[-86.790289,33.953492],[-86.790197,33.953568],[-86.789833,33.953924],[-86.789808,33.953953],[-86.789644,33.954205],[-86.789322,33.954829],[-86.789128,33.955147],[-86.789073,33.955244],[-86.78906,33.955279],[-86.788985,33.955407],[-86.788603,33.955969],[-86.788446,33.956182],[-86.788359,33.956345],[-86.788302,33.956441],[-86.788252,33.9565],[-86.787922,33.956961],[-86.787829,33.957123],[-86.787788,33.957224],[-86.787714,33.957503],[-86.787687,33.957859],[-86.787691,33.958038],[-86.787715,33.958251],[-86.787782,33.958604],[-86.787909,33.95902],[-86.787998,33.959183],[-86.788022,33.959213],[-86.788197,33.959372],[-86.788358,33.959475],[-86.788792,33.959642],[-86.788995,33.959706],[-86.789287,33.959778],[-86.789921,33.959907],[-86.790045,33.959939],[-86.790427,33.960011],[-86.790854,33.960081],[-86.791349,33.960217],[-86.791474,33.960246],[-86.791842,33.960357],[-86.791998,33.960421],[-86.792215,33.96054],[-86.792282,33.960585],[-86.792374,33.960662],[-86.792515,33.960798],[-86.792629,33.96095],[-86.792828,33.961308],[-86.792908,33.961435],[-86.792962,33.961608],[-86.792989,33.96175],[-86.793002,33.961892],[-86.793001,33.962035],[-86.792978,33.962213],[-86.792965,33.962283],[-86.79294,33.962352],[-86.792907,33.962418],[-86.792839,33.96251],[-86.792621,33.962732],[-86.792552,33.962824],[-86.79248,33.962905],[-86.791969,33.963342],[-86.791747,33.963514],[-86.791678,33.963558],[-86.791311,33.963751],[-86.790674,33.964057],[-86.790352,33.964167],[-86.790163,33.964255],[-86.789538,33.964581],[-86.789157,33.964754],[-86.78892,33.964844],[-86.788714,33.964902],[-86.78863,33.964922],[-86.788545,33.964937],[-86.788372,33.964953],[-86.788032,33.965027],[-86.787774,33.965061],[-86.787476,33.965113],[-86.787141,33.965192],[-86.786977,33.965241],[-86.786426,33.965455],[-86.786223,33.965519],[-86.785768,33.965728],[-86.785415,33.965937],[-86.785054,33.966196],[-86.78475,33.96645],[-86.784517,33.966663],[-86.784187,33.966995],[-86.784085,33.96711],[-86.784039,33.967171],[-86.783938,33.967287],[-86.78387,33.967377],[-86.78379,33.967504],[-86.783685,33.9677],[-86.783611,33.967868],[-86.783445,33.968198],[-86.783403,33.968299],[-86.783241,33.968782],[-86.783173,33.968914],[-86.783149,33.968943],[-86.783064,33.969025],[-86.782998,33.969072],[-86.782852,33.96915],[-86.782771,33.969177],[-86.782728,33.969182],[-86.782555,33.969177],[-86.782386,33.969143],[-86.782218,33.969103],[-86.781896,33.968995],[-86.78166,33.968903],[-86.781316,33.968751],[-86.780903,33.968553],[-86.780702,33.968484],[-86.780242,33.968376],[-86.779926,33.968256],[-86.779705,33.968142],[-86.779562,33.96806],[-86.779519,33.96803],[-86.779496,33.968014],[-86.779163,33.967732],[-86.779018,33.967624],[-86.778812,33.967492],[-86.778739,33.967452],[-86.778549,33.967366],[-86.777954,33.967143],[-86.777591,33.967022],[-86.776975,33.966843],[-86.776486,33.966691],[-86.776142,33.966538],[-86.776024,33.966491],[-86.77586,33.966443],[-86.775313,33.966223],[-86.775069,33.966147],[-86.774629,33.965991],[-86.77363,33.965555],[-86.773507,33.965519],[-86.773254,33.965465],[-86.773211,33.965459],[-86.773081,33.965451],[-86.772907,33.965458],[-86.77278,33.965481],[-86.772535,33.965556],[-86.772497,33.965573],[-86.772152,33.965791],[-86.772022,33.965886],[-86.77182,33.966022],[-86.771635,33.966173],[-86.771376,33.966414],[-86.771323,33.96647],[-86.771275,33.966529],[-86.771028,33.966778],[-86.770919,33.966932],[-86.770807,33.967127],[-86.770786,33.967196],[-86.770748,33.967372],[-86.770731,33.967514],[-86.770729,33.967586],[-86.770742,33.967764],[-86.770838,33.968185],[-86.770908,33.968392],[-86.770924,33.968498],[-86.770971,33.968673],[-86.771064,33.968911],[-86.771183,33.969086],[-86.771235,33.969144],[-86.771567,33.969375],[-86.771604,33.969394],[-86.771886,33.96949],[-86.772173,33.969573],[-86.7723,33.969601],[-86.772429,33.969614],[-86.772862,33.969645],[-86.772948,33.969657],[-86.773165,33.969669],[-86.773675,33.969758],[-86.774174,33.969884],[-86.774417,33.969964],[-86.774653,33.970055],[-86.774938,33.970143],[-86.775105,33.970183],[-86.775277,33.970201],[-86.775321,33.970202],[-86.775669,33.970188],[-86.775797,33.970208],[-86.775838,33.970219],[-86.775998,33.970277],[-86.776039,33.970287],[-86.776236,33.970363],[-86.77631,33.970401],[-86.776407,33.970473],[-86.776433,33.970502],[-86.776475,33.970564],[-86.776518,33.970703],[-86.776525,33.970738],[-86.776528,33.97081],[-86.776507,33.970958],[-86.776487,33.971094],[-86.776461,33.971199],[-86.776419,33.971337],[-86.776268,33.971595],[-86.776154,33.971878],[-86.776118,33.971967],[-86.776086,33.972071],[-86.776003,33.972274],[-86.775907,33.972434],[-86.775706,33.972667],[-86.775651,33.972723],[-86.775504,33.9729],[-86.775393,33.97301],[-86.775295,33.973081],[-86.774914,33.973319],[-86.774841,33.973358],[-86.774646,33.973438],[-86.774563,33.973458],[-86.774393,33.973489],[-86.774264,33.973505],[-86.774047,33.973522],[-86.773742,33.973528],[-86.773656,33.973519],[-86.773528,33.973497],[-86.773192,33.973422],[-86.772674,33.97336],[-86.772164,33.973267],[-86.771904,33.973244],[-86.771817,33.973242],[-86.771733,33.973229],[-86.77169,33.973226],[-86.771559,33.973227],[-86.771255,33.973251],[-86.771084,33.973275],[-86.770692,33.973292],[-86.770605,33.973289],[-86.769824,33.973347],[-86.769695,33.973363],[-86.769396,33.973412],[-86.76918,33.973436],[-86.768966,33.973468],[-86.768627,33.973535],[-86.768053,33.973703],[-86.767884,33.973738],[-86.76776,33.973772],[-86.767508,33.973829],[-86.767209,33.973874],[-86.767035,33.973866],[-86.766908,33.973839],[-86.766748,33.973783],[-86.766706,33.973774],[-86.766663,33.973773],[-86.766272,33.97379],[-86.766142,33.973801],[-86.76606,33.973803],[-86.766036,33.973804],[-86.765881,33.973808],[-86.76562,33.97381],[-86.764794,33.973854],[-86.76458,33.973887],[-86.764338,33.973967],[-86.764261,33.974],[-86.764225,33.97402],[-86.763999,33.974187],[-86.763892,33.9743],[-86.763799,33.974461],[-86.763705,33.974581],[-86.763574,33.974767],[-86.763442,33.974909],[-86.763382,33.974961],[-86.763151,33.975124],[-86.762906,33.975273],[-86.762815,33.97535],[-86.762764,33.975408],[-86.762683,33.975535],[-86.762579,33.975808],[-86.762569,33.975843],[-86.762442,33.976108],[-86.76241,33.976212],[-86.762404,33.976247],[-86.762393,33.976497],[-86.762377,33.976604],[-86.762349,33.976853],[-86.762352,33.97696],[-86.762384,33.97728],[-86.762378,33.977566],[-86.762347,33.977779],[-86.762353,33.977886],[-86.762414,33.978168],[-86.762441,33.978345],[-86.762442,33.978417],[-86.762432,33.978631],[-86.762373,33.979057],[-86.76236,33.979199],[-86.76237,33.979485],[-86.762393,33.979699],[-86.76239,33.980342],[-86.762424,33.980806],[-86.762422,33.981342],[-86.762381,33.981662],[-86.762371,33.98184],[-86.762386,33.981983],[-86.762511,33.982362],[-86.762543,33.982502],[-86.76264,33.982738],[-86.76274,33.982935],[-86.762751,33.98297],[-86.762763,33.983041],[-86.762771,33.983183],[-86.762768,33.98361],[-86.762746,33.983824],[-86.762677,33.984104],[-86.762662,33.984211],[-86.762647,33.984461],[-86.762621,33.984638],[-86.762555,33.984882],[-86.762544,33.984953],[-86.762523,33.985004],[-86.762425,33.985163],[-86.762273,33.985381],[-86.762053,33.985647],[-86.762025,33.985674],[-86.761805,33.985847],[-86.761563,33.986],[-86.761409,33.986126],[-86.761309,33.986195],[-86.760989,33.986381],[-86.760782,33.986512],[-86.76065,33.986606],[-86.760534,33.986712],[-86.76029,33.986964],[-86.760174,33.987115],[-86.760071,33.987231],[-86.759733,33.987558],[-86.759427,33.987813],[-86.759141,33.988033],[-86.75908,33.988084],[-86.758812,33.988366],[-86.758167,33.989086],[-86.757898,33.989367],[-86.757682,33.989635],[-86.757604,33.989763],[-86.757401,33.990119],[-86.757373,33.990186],[-86.757339,33.99029],[-86.757321,33.990396],[-86.757316,33.990503],[-86.757356,33.990715],[-86.757618,33.991359],[-86.757712,33.99152],[-86.757869,33.991734],[-86.757967,33.991894],[-86.75833,33.992296],[-86.758386,33.99235],[-86.758462,33.992438],[-86.758655,33.992718],[-86.758841,33.992916],[-86.759174,33.993146],[-86.759346,33.993256],[-86.759417,33.993297],[-86.75969,33.993409],[-86.759839,33.993483],[-86.759916,33.993516],[-86.760176,33.993648],[-86.760219,33.993649],[-86.760349,33.993663],[-86.760434,33.99368],[-86.760474,33.993693],[-86.761061,33.993929],[-86.76117,33.993989],[-86.761238,33.994034],[-86.761325,33.994113],[-86.761375,33.994172],[-86.761395,33.994203],[-86.761427,33.99427],[-86.761443,33.99434],[-86.761445,33.994385],[-86.761464,33.994417],[-86.761492,33.994484],[-86.761544,33.994695],[-86.761543,33.994766],[-86.761534,33.994801],[-86.761506,33.994867],[-86.761531,33.994934],[-86.761541,33.995005],[-86.761542,33.995076],[-86.761527,33.995146],[-86.761484,33.995248],[-86.761446,33.995312],[-86.761417,33.995338],[-86.761349,33.995383],[-86.761322,33.995438],[-86.7613,33.995469],[-86.761272,33.995497],[-86.761112,33.995618],[-86.761007,33.995681],[-86.76093,33.995715],[-86.760731,33.995788],[-86.760566,33.995836],[-86.760071,33.995934],[-86.75964,33.995984],[-86.759379,33.99599],[-86.758688,33.996062],[-86.7583,33.996107],[-86.757953,33.996132],[-86.757606,33.996163],[-86.757302,33.99616],[-86.757043,33.99613],[-86.756913,33.996124],[-86.756695,33.996128],[-86.756564,33.996135],[-86.756094,33.99621],[-86.755498,33.996319],[-86.754854,33.996411],[-86.754643,33.996454],[-86.754471,33.996479],[-86.754386,33.996495],[-86.754055,33.996585],[-86.753936,33.996629],[-86.753732,33.996692],[-86.753566,33.996735],[-86.752902,33.997005],[-86.752788,33.997057],[-86.75263,33.997117],[-86.752411,33.997225],[-86.751958,33.997448],[-86.751843,33.9975],[-86.751493,33.997644],[-86.751272,33.997701],[-86.751077,33.997751],[-86.750979,33.997768],[-86.750877,33.997785],[-86.750778,33.997802],[-86.750653,33.99781],[-86.750518,33.997819],[-86.750431,33.997815],[-86.750258,33.997794],[-86.750039,33.997742],[-86.75003,33.99774],[-86.749923,33.997714],[-86.749453,33.997631],[-86.749327,33.997609],[-86.749241,33.997597],[-86.749226,33.997597],[-86.749188,33.997596],[-86.749023,33.997591],[-86.74863,33.997627],[-86.748572,33.997633],[-86.748368,33.997642],[-86.74811,33.997675],[-86.747936,33.997677],[-86.747778,33.997663],[-86.747671,33.997666],[-86.747256,33.997679],[-86.747125,33.997676],[-86.746733,33.997679],[-86.746623,33.997698],[-86.746539,33.997718],[-86.746381,33.997778],[-86.74634,33.99779],[-86.746045,33.997856],[-86.746002,33.997859],[-86.745702,33.99784],[-86.745655,33.997837],[-86.745481,33.997836],[-86.745378,33.997844],[-86.745347,33.997847],[-86.745264,33.997854],[-86.744931,33.99794],[-86.74491,33.997947],[-86.744876,33.997958],[-86.744799,33.997983],[-86.744749,33.997999],[-86.744567,33.998058],[-86.744507,33.99811],[-86.744361,33.998187],[-86.744322,33.998203],[-86.74428,33.998212],[-86.743845,33.998229],[-86.743547,33.998281],[-86.743253,33.998348],[-86.743171,33.998371],[-86.742686,33.998529],[-86.742348,33.9986],[-86.742139,33.998648],[-86.741783,33.998782],[-86.741545,33.998938],[-86.741359,33.999087],[-86.741248,33.999197],[-86.740975,33.999644],[-86.740911,33.999737],[-86.740701,34.000007],[-86.74057,34.000149],[-86.740486,34.000253],[-86.74048,34.00026],[-86.740378,34.000386],[-86.740283,34.000546],[-86.740232,34.000644],[-86.740186,34.000744],[-86.740129,34.000917],[-86.7401,34.001021],[-86.740069,34.001197],[-86.740057,34.00134],[-86.740058,34.001589],[-86.740076,34.001731],[-86.740099,34.00198],[-86.740119,34.002086],[-86.740148,34.00219],[-86.740192,34.002326],[-86.740195,34.002335],[-86.740229,34.00244],[-86.740232,34.00245],[-86.740282,34.002604],[-86.740343,34.002776],[-86.740503,34.003146],[-86.740611,34.003341],[-86.740669,34.003437],[-86.741021,34.003888],[-86.741383,34.004291],[-86.741493,34.004402],[-86.742129,34.00498],[-86.742164,34.005012],[-86.742363,34.005187],[-86.742975,34.005743],[-86.743287,34.005992],[-86.743393,34.006095],[-86.74345,34.00615],[-86.743653,34.006345],[-86.743684,34.006371],[-86.743872,34.006567],[-86.744047,34.006772],[-86.744114,34.006863],[-86.744225,34.007056],[-86.744235,34.007091],[-86.744261,34.007231],[-86.744262,34.007267],[-86.744253,34.007302],[-86.744247,34.007373],[-86.744192,34.007536],[-86.744132,34.007716],[-86.744089,34.007807],[-86.744069,34.007849],[-86.744042,34.007917],[-86.744024,34.007949],[-86.743827,34.008226],[-86.743778,34.008285],[-86.743689,34.008363],[-86.743244,34.008704],[-86.743046,34.008894],[-86.742938,34.009006],[-86.742763,34.009164],[-86.742668,34.009238],[-86.742657,34.009245],[-86.742466,34.009373],[-86.742395,34.009414],[-86.742023,34.0096],[-86.74164,34.009769],[-86.741423,34.00988],[-86.740903,34.01014],[-86.740555,34.010289],[-86.739734,34.010531],[-86.739371,34.010651],[-86.739177,34.010733],[-86.738694,34.010974],[-86.738265,34.011149],[-86.737729,34.011457],[-86.737031,34.01182],[-86.736843,34.011922],[-86.736832,34.011928],[-86.736765,34.011964],[-86.736688,34.012006],[-86.735643,34.012572],[-86.735331,34.0127],[-86.735166,34.012746],[-86.734997,34.012783],[-86.734904,34.012808],[-86.734576,34.012983],[-86.734476,34.013043],[-86.734298,34.013147],[-86.734183,34.013198],[-86.733972,34.013311],[-86.733888,34.013354],[-86.733774,34.013406],[-86.733656,34.013452],[-86.733535,34.013494],[-86.733204,34.013582],[-86.733084,34.013625],[-86.732636,34.013766],[-86.732521,34.013817],[-86.73244,34.013843],[-86.732364,34.013879],[-86.732228,34.013967],[-86.732196,34.013992],[-86.732023,34.014153],[-86.731215,34.014697],[-86.730655,34.015075],[-86.729858,34.015574],[-86.729493,34.015829],[-86.729173,34.016013],[-86.728623,34.016303],[-86.728473,34.016376],[-86.727899,34.016632],[-86.727344,34.01684],[-86.727181,34.01689],[-86.727097,34.016911],[-86.726883,34.016945],[-86.726711,34.016964],[-86.726536,34.016972],[-86.726188,34.016978],[-86.725406,34.01697],[-86.724884,34.016993],[-86.724757,34.017018],[-86.72435,34.017144],[-86.724035,34.017333],[-86.72388,34.017458],[-86.723624,34.017701],[-86.723574,34.01776],[-86.723466,34.017915],[-86.723385,34.018041],[-86.723261,34.01827],[-86.723093,34.018638],[-86.722934,34.019083],[-86.722902,34.019223],[-86.722901,34.019472],[-86.722916,34.019686],[-86.722924,34.019722],[-86.722992,34.019929],[-86.723063,34.020097],[-86.72311,34.020197],[-86.723217,34.020393],[-86.723415,34.020711],[-86.723439,34.020744],[-86.724056,34.021478],[-86.724313,34.021809],[-86.724715,34.022361],[-86.724765,34.02246],[-86.72493,34.022829],[-86.724933,34.022865],[-86.725008,34.023071],[-86.725052,34.023281],[-86.725067,34.023387],[-86.725054,34.023744],[-86.725044,34.02385],[-86.724998,34.024169],[-86.724958,34.024345],[-86.724845,34.024726],[-86.724668,34.025096],[-86.724492,34.025383],[-86.724034,34.02599],[-86.7236,34.026651],[-86.723485,34.026843],[-86.722884,34.027959],[-86.72284,34.028017],[-86.72248,34.028665],[-86.722413,34.028797],[-86.722178,34.029297],[-86.721904,34.029822],[-86.721739,34.030114],[-86.721454,34.030596],[-86.721231,34.030944],[-86.720981,34.03136],[-86.72079,34.031641],[-86.720652,34.031903],[-86.720577,34.032032],[-86.720464,34.032185],[-86.720304,34.032354],[-86.720173,34.032448],[-86.720033,34.032533],[-86.719995,34.032552],[-86.71976,34.032645],[-86.71955,34.032693],[-86.71895,34.032781],[-86.718863,34.032788],[-86.718297,34.03278],[-86.717946,34.032769],[-86.717601,34.032728],[-86.717092,34.032634],[-86.716517,34.032467],[-86.716438,34.032436],[-86.716208,34.032335],[-86.71602,34.032245],[-86.715668,34.032036],[-86.715534,34.031945],[-86.714927,34.031445],[-86.714498,34.031044],[-86.714185,34.030796],[-86.713493,34.030204],[-86.713461,34.03018],[-86.713351,34.030077],[-86.71329,34.030026],[-86.713051,34.029871],[-86.712863,34.02978],[-86.712746,34.029732],[-86.712063,34.029416],[-86.711574,34.029214],[-86.711213,34.029088],[-86.710958,34.029043],[-86.710656,34.029006],[-86.710352,34.028998],[-86.710004,34.029018],[-86.709746,34.029047],[-86.708857,34.029227],[-86.708734,34.02926],[-86.708612,34.029298],[-86.708054,34.029504],[-86.707901,34.029571],[-86.707453,34.029793],[-86.707309,34.029872],[-86.707033,34.030047],[-86.706949,34.030129],[-86.706952,34.0302],[-86.706941,34.030271],[-86.706888,34.030369],[-86.706813,34.030456],[-86.706643,34.030618],[-86.706571,34.030658],[-86.706489,34.030688],[-86.706017,34.031306],[-86.70596,34.031445],[-86.705927,34.031511],[-86.705664,34.031855],[-86.705649,34.031875],[-86.705342,34.032221],[-86.705176,34.032386],[-86.704663,34.032826],[-86.704353,34.033076],[-86.704203,34.033206],[-86.703852,34.033524],[-86.703661,34.033718],[-86.703635,34.033762],[-86.703525,34.033873],[-86.702865,34.034491],[-86.702861,34.034562],[-86.702853,34.034597],[-86.702804,34.034696],[-86.702782,34.034726],[-86.702547,34.034981],[-86.702465,34.035064],[-86.7024,34.035111],[-86.702365,34.035129],[-86.702279,34.035141],[-86.702235,34.035139],[-86.70215,34.035125],[-86.702049,34.035197],[-86.701988,34.035248],[-86.701849,34.035385],[-86.701797,34.035442],[-86.701702,34.035561],[-86.701621,34.035687],[-86.701565,34.035784],[-86.701378,34.036181],[-86.701109,34.036854],[-86.701076,34.036957],[-86.700988,34.03727],[-86.700972,34.037303],[-86.700918,34.037621],[-86.700917,34.037693],[-86.700924,34.037799],[-86.700935,34.03787],[-86.700965,34.037974],[-86.701144,34.038525],[-86.701209,34.038768],[-86.70125,34.03898],[-86.701356,34.039325],[-86.701374,34.039395],[-86.701465,34.039633],[-86.701581,34.039825],[-86.70176,34.040071],[-86.701833,34.04016],[-86.701887,34.040215],[-86.702147,34.040457],[-86.70237,34.040612],[-86.703369,34.041301],[-86.703822,34.041687],[-86.704177,34.042048],[-86.704212,34.04208],[-86.704295,34.042153],[-86.704513,34.042329],[-86.704651,34.042416],[-86.70478,34.042401],[-86.704824,34.042403],[-86.704866,34.04241],[-86.705158,34.042481],[-86.705237,34.042511],[-86.705387,34.042583],[-86.705421,34.042605],[-86.70558,34.042728],[-86.705607,34.042756],[-86.70573,34.042792],[-86.705929,34.042864],[-86.705966,34.042883],[-86.70637,34.043208],[-86.706532,34.043327],[-86.706567,34.043349],[-86.706788,34.043465],[-86.70694,34.043534],[-86.70702,34.043562],[-86.707131,34.043619],[-86.707325,34.043762],[-86.707355,34.043788],[-86.707576,34.044009],[-86.708026,34.04449],[-86.708229,34.044723],[-86.708538,34.045112],[-86.70867,34.045297],[-86.708795,34.045485],[-86.708893,34.045645],[-86.708935,34.045746],[-86.709157,34.046135],[-86.709191,34.046201],[-86.709266,34.046449],[-86.709284,34.046482],[-86.709388,34.046846],[-86.709399,34.046984],[-86.709428,34.04716],[-86.709505,34.047402],[-86.709513,34.047472],[-86.709515,34.047544],[-86.70951,34.047721],[-86.709484,34.047789],[-86.709477,34.047824],[-86.70946,34.047857],[-86.709398,34.047951],[-86.709143,34.048195],[-86.709082,34.04829],[-86.709011,34.048421],[-86.708948,34.048554],[-86.708835,34.048862],[-86.708677,34.049222],[-86.708184,34.050098],[-86.708062,34.050327],[-86.707426,34.051464],[-86.70735,34.051592],[-86.707242,34.051747],[-86.707172,34.051878],[-86.706965,34.05219],[-86.706681,34.052694],[-86.706673,34.052708],[-86.706509,34.05289],[-86.706486,34.05292],[-86.706378,34.053114],[-86.70636,34.053184],[-86.706339,34.053469],[-86.706315,34.05361],[-86.706252,34.053833],[-86.706167,34.054058],[-86.706046,34.054325],[-86.705839,34.054679],[-86.705643,34.054957],[-86.705549,34.055077],[-86.705464,34.055202],[-86.705468,34.055254],[-86.705464,34.055326],[-86.705458,34.055361],[-86.705444,34.055395],[-86.705315,34.055621],[-86.7053,34.055654],[-86.705281,34.055724],[-86.705298,34.055794],[-86.705328,34.055861],[-86.705354,34.05589],[-86.705365,34.055922],[-86.705328,34.056206],[-86.70531,34.056276],[-86.705297,34.05631],[-86.705276,34.05634],[-86.70522,34.056395],[-86.705116,34.056458],[-86.705087,34.056484],[-86.704975,34.056637],[-86.704912,34.056687],[-86.704894,34.056767],[-86.704826,34.057227],[-86.7047,34.057568],[-86.704596,34.057724],[-86.704502,34.057923],[-86.704416,34.058047],[-86.704342,34.058134],[-86.703861,34.05864],[-86.703691,34.058803],[-86.703482,34.058985],[-86.703297,34.059136],[-86.702842,34.05947],[-86.702085,34.059951],[-86.701025,34.060517],[-86.70095,34.060553],[-86.700718,34.060653],[-86.700329,34.060813],[-86.699777,34.061026],[-86.699575,34.061092],[-86.69945,34.061124],[-86.699157,34.061191],[-86.699075,34.061213],[-86.698569,34.061319],[-86.698192,34.061406],[-86.697853,34.061471],[-86.697766,34.061481],[-86.69755,34.061497],[-86.69694,34.061511],[-86.696462,34.061542],[-86.696287,34.061544],[-86.695983,34.061563],[-86.69582,34.061402],[-86.695722,34.061283],[-86.695691,34.061217],[-86.695673,34.061147],[-86.695668,34.061111],[-86.695667,34.060968],[-86.69569,34.060791],[-86.695748,34.060509],[-86.695772,34.06044],[-86.695895,34.060025],[-86.695964,34.059708],[-86.696011,34.059283],[-86.696032,34.059142],[-86.696109,34.058864],[-86.696156,34.05851],[-86.696156,34.058439],[-86.696129,34.058298],[-86.696074,34.058126],[-86.696018,34.058029],[-86.695935,34.057904],[-86.695869,34.05783],[-86.695833,34.057789],[-86.69577,34.057739],[-86.6957,34.057697],[-86.695503,34.057623],[-86.695169,34.057542],[-86.695089,34.057514],[-86.694972,34.057466],[-86.694719,34.057327],[-86.694388,34.057157],[-86.693799,34.056924],[-86.693741,34.056902],[-86.693179,34.056566],[-86.692967,34.056394],[-86.69284,34.05629],[-86.692344,34.055745],[-86.691298,34.054697],[-86.691001,34.054345],[-86.690574,34.053809],[-86.690449,34.053663],[-86.690339,34.053553],[-86.690138,34.053374],[-86.690134,34.05337],[-86.689855,34.053146],[-86.689696,34.053025],[-86.689253,34.052734],[-86.688856,34.052516],[-86.688628,34.05241],[-86.688353,34.052303],[-86.688063,34.052223],[-86.687977,34.052211],[-86.687948,34.05219],[-86.687923,34.05216],[-86.68786,34.052111],[-86.687786,34.052072],[-86.687709,34.05204],[-86.68754,34.052007],[-86.687193,34.05199],[-86.687019,34.051998],[-86.686928,34.05202],[-86.686725,34.052086],[-86.686492,34.052181],[-86.686418,34.052217],[-86.686262,34.052279],[-86.686154,34.052338],[-86.686015,34.052423],[-86.685943,34.052462],[-86.68543,34.052792],[-86.68519,34.053006],[-86.685163,34.053034],[-86.684883,34.053394],[-86.684712,34.053643],[-86.684555,34.053899],[-86.684438,34.054129],[-86.684354,34.054331],[-86.684309,34.054469],[-86.684254,34.054714],[-86.684182,34.055209],[-86.684152,34.055494],[-86.684149,34.055779],[-86.684189,34.056312],[-86.68421,34.056417],[-86.684264,34.056879],[-86.684312,34.057126],[-86.684414,34.057509],[-86.684494,34.057713],[-86.684566,34.057881],[-86.684805,34.05838],[-86.684858,34.058478],[-86.685133,34.058883],[-86.685284,34.059057],[-86.685365,34.05914],[-86.685607,34.059344],[-86.68567,34.059393],[-86.686178,34.059832],[-86.686922,34.060529],[-86.687731,34.061269],[-86.687821,34.061345],[-86.687877,34.061399],[-86.68791,34.061423],[-86.687966,34.061477],[-86.68823,34.061712],[-86.688622,34.06209],[-86.688913,34.062352],[-86.689451,34.062813],[-86.689508,34.062867],[-86.690494,34.06371],[-86.690581,34.063789],[-86.691184,34.064438],[-86.691511,34.064815],[-86.691679,34.065024],[-86.691746,34.065116],[-86.691924,34.0654],[-86.692014,34.065562],[-86.692142,34.065903],[-86.692184,34.066041],[-86.6922,34.066111],[-86.692257,34.066283],[-86.692427,34.066689],[-86.692769,34.067384],[-86.692988,34.067773],[-86.693068,34.0679],[-86.693259,34.06818],[-86.693399,34.068361],[-86.693719,34.068743],[-86.693765,34.068803],[-86.694022,34.06909],[-86.694396,34.069528],[-86.694698,34.06992],[-86.695045,34.070346],[-86.695276,34.070606],[-86.695676,34.071031],[-86.695874,34.071266],[-86.696125,34.071512],[-86.696212,34.071592],[-86.696858,34.072268],[-86.697092,34.072611],[-86.697315,34.072958],[-86.697648,34.07346],[-86.69778,34.073644],[-86.69792,34.073825],[-86.698197,34.074229],[-86.698337,34.074454],[-86.69855,34.074766],[-86.698743,34.075085],[-86.698899,34.0753],[-86.699331,34.075878],[-86.699766,34.076411],[-86.699817,34.076469],[-86.699887,34.076559],[-86.699974,34.076683],[-86.700143,34.076972],[-86.700177,34.077037],[-86.700279,34.077195],[-86.700552,34.077516],[-86.700637,34.077596],[-86.700698,34.077647],[-86.700862,34.077764],[-86.701054,34.077847],[-86.701214,34.077903],[-86.701609,34.07805],[-86.701875,34.078173],[-86.702052,34.078275],[-86.702383,34.078505],[-86.702738,34.078769],[-86.703267,34.079139],[-86.703653,34.079428],[-86.703752,34.079497],[-86.704037,34.079718],[-86.704244,34.079947],[-86.70436,34.080098],[-86.704443,34.080223],[-86.704503,34.080356],[-86.704538,34.080421],[-86.704561,34.08049],[-86.70457,34.080596],[-86.704574,34.080739],[-86.704553,34.080916],[-86.704514,34.081054],[-86.704406,34.081286],[-86.704365,34.081349],[-86.704244,34.081497],[-86.703851,34.081831],[-86.703508,34.082107],[-86.703216,34.082319],[-86.702682,34.082657],[-86.702468,34.082779],[-86.701699,34.083182],[-86.700875,34.083578],[-86.700447,34.0838],[-86.700373,34.083838],[-86.699197,34.084512],[-86.69867,34.084828],[-86.698398,34.08503],[-86.698359,34.085027],[-86.698277,34.085032],[-86.698235,34.085041],[-86.698115,34.085085],[-86.69808,34.085105],[-86.697891,34.085252],[-86.697653,34.085406],[-86.69739,34.085594],[-86.696728,34.086109],[-86.69644,34.086326],[-86.696373,34.086373],[-86.695645,34.08688],[-86.695517,34.086977],[-86.695429,34.087054],[-86.695346,34.087137],[-86.695221,34.087281],[-86.695053,34.087488],[-86.694985,34.087579],[-86.694746,34.087919],[-86.694429,34.088426],[-86.694381,34.088525],[-86.694286,34.088836],[-86.694207,34.089038],[-86.694159,34.089137],[-86.694121,34.089201],[-86.69381,34.089631],[-86.693685,34.089819],[-86.693138,34.090787],[-86.693125,34.090821],[-86.69309,34.090886],[-86.693005,34.091088],[-86.692887,34.091394],[-86.692715,34.091911],[-86.692597,34.092217],[-86.692474,34.092405],[-86.692393,34.09249],[-86.692328,34.092537],[-86.692141,34.092627],[-86.692061,34.092654],[-86.691847,34.092687],[-86.691502,34.092715],[-86.691459,34.092713],[-86.691243,34.092718],[-86.690896,34.092694],[-86.690637,34.092665],[-86.690385,34.092613],[-86.690137,34.092549],[-86.689755,34.092481],[-86.689669,34.09247],[-86.689278,34.092443],[-86.689191,34.092447],[-86.688976,34.092474],[-86.688808,34.09251],[-86.688728,34.092539],[-86.688431,34.092596],[-86.688388,34.092601],[-86.6883,34.092601],[-86.688256,34.092572],[-86.688141,34.092465],[-86.688004,34.092283],[-86.687777,34.091859],[-86.687751,34.091791],[-86.687626,34.091195],[-86.687591,34.090983],[-86.687556,34.090663],[-86.687537,34.090306],[-86.687539,34.090057],[-86.687545,34.089951],[-86.687592,34.089454],[-86.687651,34.089101],[-86.687661,34.089066],[-86.687718,34.088933],[-86.687807,34.088698],[-86.687842,34.088634],[-86.687918,34.088469],[-86.688075,34.08818],[-86.688105,34.088115],[-86.688246,34.087858],[-86.688285,34.087795],[-86.688403,34.087568],[-86.688535,34.087345],[-86.688586,34.087247],[-86.688614,34.08718],[-86.688634,34.087148],[-86.688678,34.087047],[-86.688758,34.086769],[-86.688784,34.086592],[-86.688775,34.086486],[-86.688767,34.086451],[-86.688703,34.08628],[-86.688063,34.084914],[-86.687976,34.084713],[-86.687952,34.084644],[-86.687856,34.084408],[-86.687748,34.084064],[-86.687717,34.083745],[-86.687688,34.082859],[-86.687682,34.082788],[-86.687677,34.082575],[-86.687689,34.082434],[-86.68769,34.082363],[-86.687716,34.081974],[-86.687752,34.08162],[-86.68776,34.081407],[-86.687745,34.081017],[-86.687728,34.080875],[-86.687697,34.080735],[-86.68765,34.0806],[-86.687494,34.080267],[-86.687436,34.080172],[-86.687373,34.080079],[-86.687304,34.079989],[-86.687193,34.079879],[-86.687063,34.079786],[-86.687001,34.079737],[-86.686935,34.079692],[-86.686898,34.079672],[-86.68682,34.079642],[-86.686778,34.079633],[-86.686699,34.079604],[-86.686576,34.079569],[-86.686278,34.079517],[-86.686192,34.079515],[-86.685974,34.079523],[-86.685847,34.079547],[-86.685724,34.079583],[-86.685605,34.079626],[-86.685325,34.079795],[-86.685242,34.079858],[-86.684974,34.08009],[-86.684859,34.080196],[-86.684651,34.080376],[-86.684256,34.080799],[-86.684037,34.081065],[-86.683851,34.081308],[-86.683564,34.081666],[-86.683357,34.081893],[-86.6833,34.081946],[-86.683165,34.082085],[-86.682884,34.082356],[-86.682658,34.082525],[-86.68242,34.08268],[-86.682068,34.082889],[-86.681993,34.082926],[-86.681687,34.083062],[-86.681097,34.083288],[-86.680814,34.083381],[-86.680608,34.083439],[-86.680026,34.08358],[-86.679656,34.083681],[-86.678969,34.08391],[-86.678923,34.083926],[-86.678881,34.083935],[-86.6788,34.083962],[-86.678594,34.084018],[-86.678132,34.084117],[-86.67805,34.084142],[-86.677679,34.084238],[-86.677391,34.084317],[-86.67727,34.084355],[-86.676837,34.084521],[-86.67676,34.084555],[-86.676688,34.084594],[-86.676314,34.084775],[-86.676134,34.084875],[-86.675935,34.085014],[-86.675628,34.085266],[-86.675547,34.08535],[-86.675175,34.08583],[-86.674904,34.086275],[-86.674509,34.086988],[-86.674451,34.087083],[-86.674386,34.087176],[-86.674085,34.087566],[-86.674042,34.087628],[-86.673993,34.087687],[-86.673938,34.087742],[-86.673879,34.087793],[-86.673766,34.087901],[-86.673735,34.087926],[-86.673402,34.088154],[-86.673295,34.088215],[-86.673181,34.088267],[-86.6729,34.088362],[-86.672689,34.088404],[-86.672603,34.088412],[-86.672386,34.088409],[-86.672215,34.088381],[-86.672132,34.088361],[-86.671972,34.088306],[-86.671895,34.088273],[-86.671646,34.08813],[-86.67134,34.087927],[-86.671102,34.087728],[-86.671075,34.087701],[-86.670859,34.087451],[-86.670721,34.087269],[-86.670605,34.087079],[-86.67057,34.087014],[-86.670445,34.086751],[-86.67038,34.086581],[-86.670276,34.086199],[-86.670235,34.085989],[-86.670213,34.085812],[-86.670203,34.0856],[-86.670209,34.085457],[-86.670226,34.085351],[-86.670393,34.084869],[-86.670414,34.084728],[-86.670426,34.084478],[-86.670404,34.084373],[-86.670364,34.084234],[-86.670334,34.084167],[-86.670292,34.084105],[-86.670179,34.083996],[-86.669995,34.083845],[-86.669689,34.083711],[-86.669605,34.083695],[-86.669303,34.083677],[-86.669172,34.083683],[-86.668956,34.083701],[-86.668751,34.083761],[-86.6686,34.08383],[-86.668423,34.083932],[-86.668254,34.084045],[-86.667878,34.08434],[-86.66782,34.084392],[-86.667786,34.084415],[-86.667533,34.084647],[-86.667425,34.084757],[-86.666664,34.085437],[-86.666234,34.085739],[-86.665977,34.085933],[-86.665814,34.08605],[-86.665205,34.086454],[-86.664854,34.086663],[-86.66443,34.086969],[-86.664327,34.087035],[-86.663175,34.087673],[-86.662932,34.087822],[-86.662253,34.088204],[-86.662184,34.088247],[-86.661966,34.088364],[-86.661539,34.088588],[-86.661431,34.088648],[-86.661292,34.088733],[-86.660658,34.089165],[-86.660555,34.089229],[-86.660518,34.089247],[-86.660449,34.089291],[-86.660258,34.089377],[-86.660073,34.089442],[-86.659911,34.089494],[-86.659554,34.089627],[-86.659094,34.089825],[-86.658983,34.08988],[-86.658764,34.089997],[

Create primitive classes

new Terraformer.Point()
new Terraformer.MultiPoint()
new Terraformer.LineString()
new Terraformer.MultiLineString()
new Terraformer.Polygon()
new Terraformer.MultiPolygon()
new Terraformer.Feature()
new Terraformer.FeatureCollection()
new Terraformer.GeometryCollection()
new Terraformer.Circle()

Pay attention to ring orientation when going from ArcGIS -> GeoJSON

Per the ArcGIS JSSON spec outer rings are clockwise, holes are counterclockwise. BUT when polygons are rendered with even-odd fill rules (Leaflet, ArcGIS Javascript SDK, Open Layers) the even-odd fill rule will properly render holes regardless of orientation as long as all the rings are part of the same polygon.

So the current assumption the "A ring contained within another ring is a hole" is only true if if the contained ring is going to counterclockwise. So the parsing steps should be...

  1. Loop over every ring, if the ring is clockwise it is an outer ring add it to the output. if it is couterclockwise leave it alone.
  2. Loop over all remaining rings (holes), each hole will need to be checked to see which outer ring from step 1 contains it. This involves looping over each outer ring and running contains until one of them return true.

Code coverage plugin for grunt

Tests should use the (grunt-contrib-jasmine)[https://github.com/gruntjs/grunt-contrib-jasmine] runner with the (istanbul code coverage template)[https://github.com/maenu/grunt-template-jasmine-istanbul]

namespace collision: contains

Currently contains checks to see if a multipolygon contains a polygon.

It also does point in polygon and point in multipolygon checks.

Failure to convert complex geojson multipolygon to arcgis

Fails to convert

{"type":"MultiPolygon","coordinates":[[[[-123.00111,37.772053],[-122.997538,37.770784],[-122.99509,37.769131],[-122.987414,37.76387],[-122.981429,37.758916],[-122.977596,37.754976],[-122.975448,37.752585],[-122.974061,37.749929],[-122.973256,37.748652],[-122.970449,37.747818],[-122.967271,37.746303],[-122.964099,37.744281],[-122.961057,37.741955],[-122.958391,37.739734],[-122.95464,37.736827],[-122.949985,37.732187],[-122.945523,37.725314],[-122.942294,37.721057],[-122.939711,37.71535],[-122.937917,37.709956],[-122.937679,37.709241],[-122.935865,37.702459],[-122.93571,37.697618],[-122.937339,37.69093],[-122.939026,37.686544],[-122.939661,37.682353],[-122.941364,37.67658],[-122.945009,37.669773],[-122.949068,37.663377],[-122.954876,37.658348],[-122.963006,37.651984],[-122.973012,37.646581],[-122.980513,37.6439],[-122.986747,37.641783],[-122.992589,37.641016],[-123.000912,37.63993],[-123.00111,37.63983],[-123.00111,37.641775],[-123.011605,37.641506],[-123.027153,37.645221],[-123.040696,37.650328],[-123.05358,37.658648],[-123.063578,37.667316],[-123.068589,37.673041],[-123.073063,37.682583],[-123.074921,37.690066],[-123.077155,37.692324],[-123.08188,37.69684],[-123.086057,37.70075],[-123.088784,37.705792],[-123.0918,37.711872],[-123.09285,37.713688],[-123.094801,37.714067],[-123.099647,37.713591],[-123.104921,37.712648],[-123.115575,37.714045],[-123.119645,37.715441],[-123.126114,37.71673],[-123.132597,37.719393],[-123.141495,37.72616],[-123.149127,37.732279],[-123.156757,37.73784],[-123.162751,37.743533],[-123.166699,37.74993],[-123.169985,37.75593],[-123.172926,37.7636],[-123.173763,37.771831],[-123.173825,37.775727],[-123.173715,37.776113],[-123.169107,37.792365],[-123.166012,37.796885],[-123.160936,37.802002],[-123.153863,37.807065],[-123.153335,37.807444],[-123.147209,37.811951],[-123.139441,37.816719],[-123.132272,37.819676],[-123.126114,37.821664],[-123.118289,37.823058],[-123.108256,37.822542],[-123.095261,37.821877],[-123.081646,37.818151],[-123.070494,37.81383],[-123.048817,37.799816],[-123.038726,37.788881],[-123.035097,37.780431],[-123.033841,37.778375],[-123.031436,37.777153],[-123.02585,37.77709],[-123.01697,37.776069],[-123.010588,37.774926],[-123.006154,37.773524],[-123.00111,37.772053]]],[[[-122.387482,37.708331],[-122.388976,37.708331],[-122.392682,37.708331],[-122.393226,37.708282],[-122.39332,37.708273],[-122.393782,37.708231],[-122.394308,37.708274],[-122.394628,37.7083],[-122.394834,37.708317],[-122.39497,37.708328],[-122.395107,37.708339],[-122.395782,37.708331],[-122.396181,37.708331],[-122.400282,37.708331],[-122.400982,37.708331],[-122.401307,37.708331],[-122.401327,37.708331],[-122.401482,37.708331],[-122.401591,37.708309],[-122.401765,37.708274],[-122.401982,37.708231],[-122.402382,37.708331],[-122.402682,37.708331],[-122.402982,37.708331],[-122.403282,37.708331],[-122.404682,37.708331],[-122.405226,37.708271],[-122.405281,37.708265],[-122.40529,37.708264],[-122.405365,37.708255],[-122.405453,37.708245],[-122.405487,37.708241],[-122.405582,37.708231],[-122.406481,37.708323],[-122.407182,37.708231],[-122.407276,37.708233],[-122.40737,37.708235],[-122.40887,37.708259],[-122.41037,37.708283],[-122.411442,37.708292],[-122.412371,37.708303],[-122.41238,37.708303],[-122.412516,37.708304],[-122.412898,37.708309],[-122.413281,37.708315],[-122.413381,37.708306],[-122.413481,37.708297],[-122.413739,37.708274],[-122.413997,37.708252],[-122.414182,37.708231],[-122.414322,37.708231],[-122.414482,37.708231],[-122.415182,37.708231],[-122.415269,37.708239],[-122.415272,37.708239],[-122.416222,37.708328],[-122.417082,37.708331],[-122.417211,37.708331],[-122.418165,37.708331],[-122.418204,37.708327],[-122.418693,37.708279],[-122.419128,37.708236],[-122.419182,37.708231],[-122.419802,37.708231],[-122.420082,37.708231],[-122.422382,37.70823],[-122.423782,37.70823],[-122.42389,37.708236],[-122.42529,37.708301],[-122.425619,37.708316],[-122.425989,37.708333],[-122.426091,37.708339],[-122.426193,37.708344],[-122.42627,37.708347],[-122.426366,37.708351],[-122.426927,37.708378],[-122.427106,37.708385],[-122.427164,37.708388],[-122.427915,37.708423],[-122.428082,37.708431],[-122.428294,37.70841],[-122.429182,37.708331],[-122.429341,37.708323],[-122.430027,37.708281],[-122.430882,37.708231],[-122.431341,37.708231],[-122.432182,37.708229],[-122.432289,37.708229],[-122.43235,37.708232],[-122.433382,37.708232],[-122.433982,37.708132],[-122.434313,37.708132],[-122.43487,37.708132],[-122.4351,37.708132],[-122.435382,37.708132],[-122.435882,37.708232],[-122.436177,37.708232],[-122.436201,37.708232],[-122.436582,37.708232],[-122.438182,37.708232],[-122.438558,37.708232],[-122.438682,37.708231],[-122.438895,37.708248],[-122.439033,37.708259],[-122.439119,37.708269],[-122.439203,37.708284],[-122.439677,37.708333],[-122.440459,37.708338],[-122.440497,37.708282],[-122.440536,37.708225],[-122.440537,37.708226],[-122.440538,37.708227],[-122.440623,37.708254],[-122.440711,37.708282],[-122.440781,37.708304],[-122.440855,37.708327],[-122.441223,37.708325],[-122.441258,37.708312],[-122.441258,37.708311],[-122.441546,37.708281],[-122.441812,37.708256],[-122.442079,37.708231],[-122.443138,37.708257],[-122.443212,37.708279],[-122.444482,37.708332],[-122.444692,37.708308],[-122.445089,37.708267],[-122.445381,37.708232],[-122.445875,37.708233],[-122.446381,37.708229],[-122.447225,37.708245],[-122.447281,37.708229],[-122.449233,37.708218],[-122.449554,37.70822],[-122.449751,37.708213],[-122.450158,37.7082],[-122.45022,37.708198],[-122.450386,37.708201],[-122.451675,37.708149],[-122.452183,37.708132],[-122.452995,37.708177],[-122.453807,37.708222],[-122.453983,37.708232],[-122.454341,37.708232],[-122.454356,37.708232],[-122.455747,37.708231],[-122.457183,37.708235],[-122.457916,37.708243],[-122.458509,37.708231],[-122.45905,37.708231],[-122.459894,37.708232],[-122.461275,37.708232],[-122.461383,37.708232],[-122.462053,37.708232],[-122.462282,37.708232],[-122.462601,37.708232],[-122.46274,37.708232],[-122.462783,37.708232],[-122.463583,37.708332],[-122.464043,37.70824],[-122.464083,37.708232],[-122.46445,37.708232],[-122.464483,37.708232],[-122.46467,37.708211],[-122.464892,37.708186],[-122.464896,37.708186],[-122.465383,37.708132],[-122.465757,37.708132],[-122.465762,37.708131],[-122.466284,37.708131],[-122.466628,37.708169],[-122.466632,37.708169],[-122.466791,37.708187],[-122.466954,37.708206],[-122.466979,37.70821],[-122.467183,37.708232],[-122.467883,37.708232],[-122.468607,37.708232],[-122.468883,37.708232],[-122.468915,37.708232],[-122.468939,37.708232],[-122.469057,37.708232],[-122.469236,37.708232],[-122.470883,37.708232],[-122.471001,37.708252],[-122.471077,37.708264],[-122.471319,37.708305],[-122.471485,37.708331],[-122.471531,37.708332],[-122.471761,37.708334],[-122.471837,37.708332],[-122.481083,37.708232],[-122.483783,37.708332],[-122.484883,37.708332],[-122.485117,37.708285],[-122.485382,37.708231],[-122.48559,37.708231],[-122.48563,37.708232],[-122.485702,37.708232],[-122.486042,37.708233],[-122.48669,37.708233],[-122.493583,37.708232],[-122.497783,37.708132],[-122.498169,37.708132],[-122.498233,37.708132],[-122.502485,37.708133],[-122.502778,37.708133],[-122.502832,37.708133],[-122.504385,37.708132],[-122.506931,37.708088],[-122.507103,37.708085],[-122.550686,37.707332],[-122.575189,37.706721],[-122.578294,37.733988],[-122.5799,37.748079],[-122.581281,37.760203],[-122.581981,37.76405],[-122.583293,37.771266],[-122.584728,37.779156],[-122.588174,37.789362],[-122.600236,37.802483],[-122.612285,37.815224],[-122.584588,37.815228],[-122.550886,37.815328],[-122.546386,37.815228],[-122.536232,37.815303],[-122.534088,37.815347],[-122.5301,37.81543],[-122.529198,37.815135],[-122.5284,37.81524],[-122.527399,37.814947],[-122.527304,37.815648],[-122.528414,37.817438],[-122.529185,37.819028],[-122.527085,37.821028],[-122.525602,37.821218],[-122.525785,37.821728],[-122.525385,37.822428],[-122.524385,37.822528],[-122.524535,37.822988],[-122.523963,37.823859],[-122.523569,37.824661],[-122.519275,37.824989],[-122.518478,37.825294],[-122.517678,37.825199],[-122.516776,37.824606],[-122.516081,37.82521],[-122.51188,37.824339],[-122.511081,37.824444],[-122.505188,37.822888],[-122.505393,37.822088],[-122.50467,37.821689],[-122.504166,37.820993],[-122.503369,37.821198],[-122.502867,37.820902],[-122.501475,37.82171],[-122.501272,37.821212],[-122.499764,37.819724],[-122.498968,37.820229],[-122.499878,37.82182],[-122.498982,37.822326],[-122.498843,37.822328],[-122.496267,37.822361],[-122.495483,37.822428],[-122.494783,37.822728],[-122.494499,37.823426],[-122.493483,37.823828],[-122.493183,37.824628],[-122.492483,37.824828],[-122.492083,37.825328],[-122.491383,37.825728],[-122.491183,37.826428],[-122.486283,37.826228],[-122.483483,37.826728],[-122.482783,37.825628],[-122.481383,37.825928],[-122.481013,37.825843],[-122.479332,37.825548],[-122.479156,37.825579],[-122.479056,37.825892],[-122.478807,37.826674],[-122.478359,37.828082],[-122.478728,37.828782],[-122.478769,37.828858],[-122.479643,37.83051],[-122.47951,37.830418],[-122.479198,37.830874],[-122.478776,37.831163],[-122.47864,37.831171],[-122.478475,37.831181],[-122.478355,37.830964],[-122.478282,37.831225],[-122.478457,37.831214],[-122.47853,37.831258],[-122.478633,37.831298],[-122.478063,37.832457],[-122.477565,37.832572],[-122.474169,37.833365],[-122.473619,37.831929],[-122.472845,37.832011],[-122.472248,37.832107],[-122.468079,37.833687],[-122.453983,37.839027],[-122.445483,37.842427],[-122.433625,37.846912],[-122.424227,37.85045],[-122.422475,37.85111],[-122.41871,37.852491],[-122.418673,37.852505],[-122.418782,37.853425],[-122.418794,37.853496],[-122.419881,37.860425],[-122.419907,37.860579],[-122.420342,37.863203],[-122.42038,37.863426],[-122.422162,37.874436],[-122.422483,37.876426],[-122.422683,37.878126],[-122.424083,37.884626],[-122.427583,37.904025],[-122.430183,37.918425],[-122.432283,37.929824],[-122.432216,37.929771],[-122.430362,37.928304],[-122.430205,37.928179],[-122.426444,37.925202],[-122.424602,37.923744],[-122.422683,37.922224],[-122.420047,37.920131],[-122.412142,37.913855],[-122.409507,37.911763],[-122.402593,37.906274],[-122.399382,37.903725],[-122.38174,37.889955],[-122.374782,37.884525],[-122.374582,37.884364],[-122.373982,37.883884],[-122.373782,37.883725],[-122.372581,37.880325],[-122.372229,37.879326],[-122.370676,37.874927],[-122.369228,37.870826],[-122.36898,37.870125],[-122.367781,37.866726],[-122.3654,37.860526],[-122.35826,37.841926],[-122.355881,37.835727],[-122.354504,37.832023],[-122.352634,37.826988],[-122.350376,37.820911],[-122.349387,37.818248],[-122.349194,37.817728],[-122.349001,37.817208],[-122.348546,37.815967],[-122.347181,37.812247],[-122.346881,37.811427],[-122.346681,37.811027],[-122.345401,37.808947],[-122.341561,37.802707],[-122.340281,37.800628],[-122.336642,37.795121],[-122.336581,37.795028],[-122.336467,37.794846],[-122.336091,37.794243],[-122.336088,37.794239],[-122.336082,37.794228],[-122.33608,37.794225],[-122.33517,37.792768],[-122.332443,37.788398],[-122.331536,37.786942],[-122.330811,37.785794],[-122.33061,37.785474],[-122.330387,37.78512],[-122.330164,37.784766],[-122.329623,37.783909],[-122.329532,37.783764],[-122.32944,37.783618],[-122.328876,37.782723],[-122.328805,37.78261],[-122.328734,37.782498],[-122.32864,37.78235],[-122.327917,37.781202],[-122.32496,37.77656],[-122.321555,37.771215],[-122.316092,37.762638],[-122.313136,37.757999],[-122.31048,37.753829],[-122.30728,37.748668],[-122.30118,37.738829],[-122.30028,37.737429],[-122.297668,37.733196],[-122.29448,37.72803],[-122.2943,37.72775],[-122.29376,37.72691],[-122.29358,37.72663],[-122.29324,37.72613],[-122.29222,37.72463],[-122.29188,37.72413],[-122.29146,37.72347],[-122.2902,37.72149],[-122.28978,37.72083],[-122.28886,37.71939],[-122.286099,37.71507],[-122.28518,37.71363],[-122.2845,37.71255],[-122.28246,37.709309],[-122.28178,37.70823],[-122.29458,37.70823],[-122.360381,37.708331],[-122.371681,37.708331],[-122.375624,37.708373],[-122.376063,37.708364],[-122.379401,37.708406],[-122.379489,37.708414],[-122.381081,37.708431],[-122.387482,37.708331]]]],"bbox":[-123.173825,37.63983,-122.28178,37.929824],"properties":{"NAME":"San Francisco"}}

GeoStore documentation and samples

I made this to having discussion around GeoStore and track my progress working on it. There are several things I still need to do.

  • Write more tests for GeoStore and RTree.
  • Figure out how to package stores. Should they be part of GeoStore or separate packages?
  • I think there is a bug with RTree.remove probably related to the recent refactor.
  • Write doc for GeoStore.
  • Write some samples for GeoStore. Including doc for creating your own stores.
  • Make sure all old samples work.

WKT MultiPolygon parsing issue

I think the WKT parser isn't indenting polygons without holes in a MultiPolygon enough.

Here is the sample MultiPolygon from the GeoJSON spec

{
 "type": "MultiPolygon",
  "coordinates": [
    [
      [ [102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0] ]
    ],
    [
      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],
      [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]
    ]
  ]
}

and here is the sample output from the parser using vows tests.

{
  "type" : "MultiPolygon",
  "coordinates" : [
    [
      [ "40", "40" ], [ "20", "45" ], [ "45", "30" ], [ "40", "40" ]
    ],
    [
      [
        [ "20", "35" ], [ "45", "20" ], [ "30", "5" ], [ "10", "10" ], [ "10", "30" ], [ "20", "35" ] ],
        [ [ "30", "20" ], [ "20", "25" ], [ "20", "15" ], [ "30", "20" ]
      ]
    ]
  ]
}

I think there needs to be an array wrapped around the first set of positions. The second polygon looks fine.

"intersects" vs. "contains"

terraformer's notion of "intersect", as used by the aGeometry.intersects(otherGeometry) function only detects if the lines of the given polygons cross. this is at odds with ST_Intersects which is defined as:

ST_Intersects โ€” Returns TRUE if the Geometries/Geography "spatially intersect in 2D" - (share any portion of space) and FALSE if they don't (they are Disjoint).

by PostGIS and as:

ST_Intersects returns 1 (Oracle) or t (PostgreSQL) if the intersection of two ST_Geometries doesn't result in an empty set; otherwise, it returns 0 (Oracle) or f (PostgreSQL).

by ArcGIS

i think the concept of "intersect" in terraformer should match up with these. here is some example code:

var p = new Terraformer.Polygon({
  type: "Polygon",
  coordinates: [ [[-122.6764,49], [-122.6764,50], [-87.65,50], [-86.65,49], [-122.6764,49]] ]
});

// this geojson comes from `ST_AsGeoJSON(ST_Buffer(ST_GeogFromText('POINT(-105.1632 49.5)'), 10))`
var c = new Terraformer.Polygon({
  "type":"Polygon",
  "coordinates":[[[-105.163061893475,49.5000001947385],[-105.163064488844,49.4999826430188],[-105.163072291826,49.4999657583208],[-105.163085002551,49.4999501895131],[-105.163102132551,49.4999365348947],[-105.163123023527,49.4999253192031],[-105.163146872652,49.4999169734493],[-105.163172763422,49.4999118183545],[-105.163199700872,49.4999100520249],[-105.163226649817,49.4999117423394],[-105.163252574631,49.4999168243403],[-105.163276479041,49.4999251027303],[-105.163297444417,49.4999362593769],[-105.163314665074,49.4999498655383],[-105.163327479229,49.4999653983391],[-105.16333539444,49.499982260864],[-105.163338106524,49.4999998050966],[-105.163335511251,49.5000173568223],[-105.163327708352,49.5000342415378],[-105.163314997682,49.5000498103719],[-105.163297867703,49.5000634650216],[-105.163276976708,49.5000746807445],[-105.163253127528,49.5000830265249],[-105.163227236677,49.5000881816377],[-105.16320029913,49.5000899479737],[-105.163173350087,49.5000882576533],[-105.163147425191,49.5000831756348],[-105.163123520726,49.5000748972184],[-105.16310255533,49.5000637405406],[-105.163085334692,49.5000501343478],[-105.163072520591,49.5000346015204],[-105.163064605462,49.5000177389776],[-105.163061893475,49.5000001947385]]]
});

p.intersects(c); //=> false
p.contains(c); //=> true

// this geojson comes from `ST_AsGeoJSON(ST_Buffer(ST_GeogFromText('POINT(-105.1632 50.5)'), 10))`
var c = new Terraformer.Polygon({
  "type":"Polygon",
  "coordinates":[[[-105.163058998736,50.5000001975756],[-105.163061647628,50.4999826488416],[-105.163069613318,50.4999657669057],[-105.163082589684,50.4999502005303],[-105.163100078049,50.4999365479207],[-105.163121406343,50.4999253337374],[-105.163145754933,50.4999169889332],[-105.16317218812,50.4999118341927],[-105.163199690096,50.4999100676086],[-105.163227203982,50.4999117570694],[-105.163253672439,50.4999168376505],[-105.163278078305,50.4999251141089],[-105.16329948368,50.4999362683866],[-105.163317065968,50.4999498718327],[-105.163330149491,50.4999654016764],[-105.163338231452,50.4999822611159],[-105.163341001262,50.4999998022537],[-105.163338352473,50.5000173509938],[-105.163330386871,50.5000342329478],[-105.163317410563,50.5000497993506],[-105.163299922219,50.5000634519925],[-105.163278593905,50.5000746662083],[-105.163254245257,50.5000830110401],[-105.163227811983,50.5000881657992],[-105.163200309905,50.50008993239],[-105.163172795917,50.5000882429229],[-105.163146327373,50.5000831623237],[-105.163121921448,50.500074885838],[-105.163100516052,50.500063731528],[-105.163082933784,50.5000501280494],[-105.163069850319,50.5000345981781],[-105.163061768444,50.50001773872],[-105.163058998736,50.5000001975756]]]
});

p.intersects(c); //=> false
p.contains(c); //=> false

NOTE - this issue is not about Geographic VS. Geometric, which will be a separate issue, even though the problem is also illustrated by the example.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.