├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── index.js ├── package.json └── test ├── all.json ├── basic.js └── illinois.json /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | ## [0.2.2](https://github.com/mapbox/geojson-area/compare/v0.2.1...v0.2.2) (2016-12-19) 3 | 4 | 5 | ### Bug Fixes 6 | 7 | * **algorithm:** Avoid accidental global i, fixes use strict ([1646944](https://github.com/mapbox/geojson-area/commit/1646944)) 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2005-2013 OpenLayers Contributors. All rights reserved. See 2 | authors.txt for full list. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY OPENLAYERS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 15 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 17 | SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 18 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 19 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 21 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 22 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 23 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | The views and conclusions contained in the software and documentation are those 26 | of the authors and should not be interpreted as representing official policies, 27 | either expressed or implied, of OpenLayers Contributors. 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/mapbox/geojson-area.png)](https://travis-ci.org/mapbox/geojson-area) 2 | 3 | # geojson-area 4 | 5 | Calculate the area inside of any [GeoJSON](http://geojson.org/) geometry. 6 | 7 | ## usage 8 | 9 | npm install @mapbox/geojson-area 10 | 11 | ## example 12 | 13 | ```js 14 | var geojsonArea = require('@mapbox/geojson-area'); 15 | 16 | var area = geojsonArea.geometry(obj); 17 | ``` 18 | 19 | ## api 20 | 21 | ### `geojsonArea.geometry(obj)` 22 | 23 | Given a Geometry object, return contained 24 | area as square meters. Invalid input will return `null`. 25 | 26 | Adapted from [OpenLayers](http://openlayers.org/) 27 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var wgs84 = require('wgs84'); 2 | 3 | module.exports.geometry = geometry; 4 | module.exports.ring = ringArea; 5 | 6 | function geometry(_) { 7 | var area = 0, i; 8 | switch (_.type) { 9 | case 'Polygon': 10 | return polygonArea(_.coordinates); 11 | case 'MultiPolygon': 12 | for (i = 0; i < _.coordinates.length; i++) { 13 | area += polygonArea(_.coordinates[i]); 14 | } 15 | return area; 16 | case 'Point': 17 | case 'MultiPoint': 18 | case 'LineString': 19 | case 'MultiLineString': 20 | return 0; 21 | case 'GeometryCollection': 22 | for (i = 0; i < _.geometries.length; i++) { 23 | area += geometry(_.geometries[i]); 24 | } 25 | return area; 26 | } 27 | } 28 | 29 | function polygonArea(coords) { 30 | var area = 0; 31 | if (coords && coords.length > 0) { 32 | area += Math.abs(ringArea(coords[0])); 33 | for (var i = 1; i < coords.length; i++) { 34 | area -= Math.abs(ringArea(coords[i])); 35 | } 36 | } 37 | return area; 38 | } 39 | 40 | /** 41 | * Calculate the approximate area of the polygon were it projected onto 42 | * the earth. Note that this area will be positive if ring is oriented 43 | * clockwise, otherwise it will be negative. 44 | * 45 | * Reference: 46 | * Robert. G. Chamberlain and William H. Duquette, "Some Algorithms for 47 | * Polygons on a Sphere", JPL Publication 07-03, Jet Propulsion 48 | * Laboratory, Pasadena, CA, June 2007 http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409 49 | * 50 | * Returns: 51 | * {float} The approximate signed geodesic area of the polygon in square 52 | * meters. 53 | */ 54 | 55 | function ringArea(coords) { 56 | var p1, p2, p3, lowerIndex, middleIndex, upperIndex, i, 57 | area = 0, 58 | coordsLength = coords.length; 59 | 60 | if (coordsLength > 2) { 61 | for (i = 0; i < coordsLength; i++) { 62 | if (i === coordsLength - 2) {// i = N-2 63 | lowerIndex = coordsLength - 2; 64 | middleIndex = coordsLength -1; 65 | upperIndex = 0; 66 | } else if (i === coordsLength - 1) {// i = N-1 67 | lowerIndex = coordsLength - 1; 68 | middleIndex = 0; 69 | upperIndex = 1; 70 | } else { // i = 0 to N-3 71 | lowerIndex = i; 72 | middleIndex = i+1; 73 | upperIndex = i+2; 74 | } 75 | p1 = coords[lowerIndex]; 76 | p2 = coords[middleIndex]; 77 | p3 = coords[upperIndex]; 78 | area += ( rad(p3[0]) - rad(p1[0]) ) * Math.sin( rad(p2[1])); 79 | } 80 | 81 | area = area * wgs84.RADIUS * wgs84.RADIUS / 2; 82 | } 83 | 84 | return area; 85 | } 86 | 87 | function rad(_) { 88 | return _ * Math.PI / 180; 89 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@mapbox/geojson-area", 3 | "version": "0.2.2", 4 | "description": "calculate the physical area of a geojson geometry", 5 | "main": "index.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git@github.com:mapbox/geojson-area.git" 12 | }, 13 | "scripts": { 14 | "test": "tape test/basic.js" 15 | }, 16 | "keywords": [ 17 | "geojson", 18 | "area", 19 | "geodesy" 20 | ], 21 | "author": "Tom MacWright", 22 | "license": "BSD-2-Clause", 23 | "dependencies": { 24 | "wgs84": "0.0.0" 25 | }, 26 | "devDependencies": { 27 | "cz-conventional-changelog": "^1.2.0", 28 | "tape": "^3.0.3" 29 | }, 30 | "config": { 31 | "commitizen": { 32 | "path": "./node_modules/cz-conventional-changelog" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /test/all.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Polygon", 3 | "coordinates": [[ 4 | [-180, -90], 5 | [-180, 90], 6 | [180, 90], 7 | [180, -90], 8 | [-180, -90] 9 | ] 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /test/basic.js: -------------------------------------------------------------------------------- 1 | var gjArea = require('../'), 2 | test = require('tape'), 3 | ill = require('./illinois.json'), 4 | all = require('./all.json'); 5 | 6 | test('geojson area', function(t) { 7 | t.test('computes the area of illinois', function(t) { 8 | t.equal(gjArea.geometry(ill), 145978332359.36746); 9 | t.end(); 10 | }); 11 | // http://www.wolframalpha.com/input/?i=surface+area+of+earth 12 | t.test('computes the area of the world', function(t) { 13 | t.equal(gjArea.geometry(all), 511207893395811.06); 14 | t.end(); 15 | }); 16 | t.test('point has zero area', function(t) { 17 | t.equal(gjArea.geometry({ type: 'Point', coordinates: [0,0] }), 0); 18 | t.end(); 19 | }); 20 | t.test('linestring has zero area', function(t) { 21 | t.equal(gjArea.geometry({ type: 'LineString', coordinates: [[0,0],[1,1]] }), 0); 22 | t.end(); 23 | }); 24 | t.test('geometrycollection is the sum', function(t) { 25 | t.equal(gjArea.geometry({ type: 'GeometryCollection', geometries: [all, ill] }), 511353871728170.44); 26 | t.end(); 27 | }); 28 | t.end(); 29 | }); 30 | -------------------------------------------------------------------------------- /test/illinois.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "MultiPolygon", 3 | "coordinates": [[ 4 | [ 5 | [ 6 | -88.071564, 7 | 37.51099 8 | ], 9 | [ 10 | -88.087883, 11 | 37.476273 12 | ], 13 | [ 14 | -88.311707, 15 | 37.442852 16 | ], 17 | [ 18 | -88.359177, 19 | 37.409309 20 | ], 21 | [ 22 | -88.419853, 23 | 37.420292 24 | ], 25 | [ 26 | -88.467644, 27 | 37.400757 28 | ], 29 | [ 30 | -88.511322, 31 | 37.296852 32 | ], 33 | [ 34 | -88.501427, 35 | 37.257782 36 | ], 37 | [ 38 | -88.450699, 39 | 37.205669 40 | ], 41 | [ 42 | -88.422516, 43 | 37.15691 44 | ], 45 | [ 46 | -88.45047, 47 | 37.098671 48 | ], 49 | [ 50 | -88.476799, 51 | 37.072144 52 | ], 53 | [ 54 | -88.4907, 55 | 37.06818 56 | ], 57 | [ 58 | -88.517273, 59 | 37.06477 60 | ], 61 | [ 62 | -88.559273, 63 | 37.072815 64 | ], 65 | [ 66 | -88.61422, 67 | 37.109047 68 | ], 69 | [ 70 | -88.68837, 71 | 37.13541 72 | ], 73 | [ 74 | -88.739113, 75 | 37.141182 76 | ], 77 | [ 78 | -88.746506, 79 | 37.152107 80 | ], 81 | [ 82 | -88.863289, 83 | 37.202194 84 | ], 85 | [ 86 | -88.932503, 87 | 37.218407 88 | ], 89 | [ 90 | -88.993172, 91 | 37.220036 92 | ], 93 | [ 94 | -89.065033, 95 | 37.18586 96 | ], 97 | [ 98 | -89.116821, 99 | 37.112137 100 | ], 101 | [ 102 | -89.146347, 103 | 37.093185 104 | ], 105 | [ 106 | -89.169548, 107 | 37.064236 108 | ], 109 | [ 110 | -89.174332, 111 | 37.025711 112 | ], 113 | [ 114 | -89.150246, 115 | 36.99844 116 | ], 117 | [ 118 | -89.12986, 119 | 36.988113 120 | ], 121 | [ 122 | -89.193512, 123 | 36.986771 124 | ], 125 | [ 126 | -89.210052, 127 | 37.028973 128 | ], 129 | [ 130 | -89.237679, 131 | 37.041733 132 | ], 133 | [ 134 | -89.264053, 135 | 37.087124 136 | ], 137 | [ 138 | -89.284233, 139 | 37.091244 140 | ], 141 | [ 142 | -89.303291, 143 | 37.085384 144 | ], 145 | [ 146 | -89.3097, 147 | 37.060909 148 | ], 149 | [ 150 | -89.264244, 151 | 37.027733 152 | ], 153 | [ 154 | -89.262001, 155 | 37.008686 156 | ], 157 | [ 158 | -89.282768, 159 | 36.999207 160 | ], 161 | [ 162 | -89.310982, 163 | 37.009682 164 | ], 165 | [ 166 | -89.38295, 167 | 37.049213 168 | ], 169 | [ 170 | -89.37999, 171 | 37.099083 172 | ], 173 | [ 174 | -89.423798, 175 | 37.137203 176 | ], 177 | [ 178 | -89.440521, 179 | 37.165318 180 | ], 181 | [ 182 | -89.468216, 183 | 37.224266 184 | ], 185 | [ 186 | -89.465309, 187 | 37.253731 188 | ], 189 | [ 190 | -89.489594, 191 | 37.256001 192 | ], 193 | [ 194 | -89.513885, 195 | 37.276402 196 | ], 197 | [ 198 | -89.513885, 199 | 37.304962 200 | ], 201 | [ 202 | -89.50058, 203 | 37.329441 204 | ], 205 | [ 206 | -89.468742, 207 | 37.339409 208 | ], 209 | [ 210 | -89.435738, 211 | 37.355717 212 | ], 213 | [ 214 | -89.427574, 215 | 37.411018 216 | ], 217 | [ 218 | -89.453621, 219 | 37.453186 220 | ], 221 | [ 222 | -89.494781, 223 | 37.491726 224 | ], 225 | [ 226 | -89.524971, 227 | 37.571957 228 | ], 229 | [ 230 | -89.513367, 231 | 37.615929 232 | ], 233 | [ 234 | -89.51918, 235 | 37.650375 236 | ], 237 | [ 238 | -89.513374, 239 | 37.67984 240 | ], 241 | [ 242 | -89.521523, 243 | 37.694798 244 | ], 245 | [ 246 | -89.581436, 247 | 37.706104 248 | ], 249 | [ 250 | -89.666458, 251 | 37.745453 252 | ], 253 | [ 254 | -89.675858, 255 | 37.78397 256 | ], 257 | [ 258 | -89.691055, 259 | 37.804794 260 | ], 261 | [ 262 | -89.728447, 263 | 37.840992 264 | ], 265 | [ 266 | -89.851715, 267 | 37.905064 268 | ], 269 | [ 270 | -89.861046, 271 | 37.905487 272 | ], 273 | [ 274 | -89.866814, 275 | 37.891876 276 | ], 277 | [ 278 | -89.900551, 279 | 37.875904 280 | ], 281 | [ 282 | -89.937874, 283 | 37.878044 284 | ], 285 | [ 286 | -89.978912, 287 | 37.911884 288 | ], 289 | [ 290 | -89.958229, 291 | 37.963634 292 | ], 293 | [ 294 | -90.010811, 295 | 37.969318 296 | ], 297 | [ 298 | -90.041924, 299 | 37.993206 300 | ], 301 | [ 302 | -90.119339, 303 | 38.032272 304 | ], 305 | [ 306 | -90.134712, 307 | 38.053951 308 | ], 309 | [ 310 | -90.207527, 311 | 38.088905 312 | ], 313 | [ 314 | -90.254059, 315 | 38.122169 316 | ], 317 | [ 318 | -90.289635, 319 | 38.166817 320 | ], 321 | [ 322 | -90.336716, 323 | 38.188713 324 | ], 325 | [ 326 | -90.364769, 327 | 38.234299 328 | ], 329 | [ 330 | -90.369347, 331 | 38.323559 332 | ], 333 | [ 334 | -90.358688, 335 | 38.36533 336 | ], 337 | [ 338 | -90.339607, 339 | 38.390846 340 | ], 341 | [ 342 | -90.301842, 343 | 38.427357 344 | ], 345 | [ 346 | -90.265785, 347 | 38.518688 348 | ], 349 | [ 350 | -90.26123, 351 | 38.532768 352 | ], 353 | [ 354 | -90.240944, 355 | 38.562805 356 | ], 357 | [ 358 | -90.183708, 359 | 38.610271 360 | ], 361 | [ 362 | -90.183578, 363 | 38.658772 364 | ], 365 | [ 366 | -90.20224, 367 | 38.700363 368 | ], 369 | [ 370 | -90.196571, 371 | 38.723965 372 | ], 373 | [ 374 | -90.163399, 375 | 38.773098 376 | ], 377 | [ 378 | -90.135178, 379 | 38.785484 380 | ], 381 | [ 382 | -90.121727, 383 | 38.80051 384 | ], 385 | [ 386 | -90.113121, 387 | 38.830467 388 | ], 389 | [ 390 | -90.132812, 391 | 38.853031 392 | ], 393 | [ 394 | -90.243927, 395 | 38.914509 396 | ], 397 | [ 398 | -90.278931, 399 | 38.924717 400 | ], 401 | [ 402 | -90.31974, 403 | 38.924908 404 | ], 405 | [ 406 | -90.413071, 407 | 38.96233 408 | ], 409 | [ 410 | -90.469841, 411 | 38.959179 412 | ], 413 | [ 414 | -90.530426, 415 | 38.891609 416 | ], 417 | [ 418 | -90.570328, 419 | 38.871326 420 | ], 421 | [ 422 | -90.627213, 423 | 38.880795 424 | ], 425 | [ 426 | -90.668877, 427 | 38.935253 428 | ], 429 | [ 430 | -90.70607, 431 | 39.037792 432 | ], 433 | [ 434 | -90.707588, 435 | 39.058178 436 | ], 437 | [ 438 | -90.690399, 439 | 39.0937 440 | ], 441 | [ 442 | -90.716736, 443 | 39.144211 444 | ], 445 | [ 446 | -90.718193, 447 | 39.195873 448 | ], 449 | [ 450 | -90.732338, 451 | 39.224747 452 | ], 453 | [ 454 | -90.738083, 455 | 39.24781 456 | ], 457 | [ 458 | -90.779343, 459 | 39.296803 460 | ], 461 | [ 462 | -90.850494, 463 | 39.350452 464 | ], 465 | [ 466 | -90.947891, 467 | 39.400585 468 | ], 469 | [ 470 | -91.036339, 471 | 39.444412 472 | ], 473 | [ 474 | -91.064384, 475 | 39.473984 476 | ], 477 | [ 478 | -91.093613, 479 | 39.528927 480 | ], 481 | [ 482 | -91.156189, 483 | 39.552593 484 | ], 485 | [ 486 | -91.203247, 487 | 39.600021 488 | ], 489 | [ 490 | -91.317665, 491 | 39.685917 492 | ], 493 | [ 494 | -91.367088, 495 | 39.72464 496 | ], 497 | [ 498 | -91.373421, 499 | 39.761272 500 | ], 501 | [ 502 | -91.381714, 503 | 39.803772 504 | ], 505 | [ 506 | -91.449188, 507 | 39.863049 508 | ], 509 | [ 510 | -91.450989, 511 | 39.885242 512 | ], 513 | [ 514 | -91.434052, 515 | 39.901829 516 | ], 517 | [ 518 | -91.430389, 519 | 39.921837 520 | ], 521 | [ 522 | -91.447243, 523 | 39.946064 524 | ], 525 | [ 526 | -91.487289, 527 | 40.005753 528 | ], 529 | [ 530 | -91.504005, 531 | 40.066711 532 | ], 533 | [ 534 | -91.516129, 535 | 40.134544 536 | ], 537 | [ 538 | -91.506546, 539 | 40.200459 540 | ], 541 | [ 542 | -91.498932, 543 | 40.251377 544 | ], 545 | [ 546 | -91.486694, 547 | 40.309624 548 | ], 549 | [ 550 | -91.448593, 551 | 40.371902 552 | ], 553 | [ 554 | -91.418816, 555 | 40.386875 556 | ], 557 | [ 558 | -91.385757, 559 | 40.392361 560 | ], 561 | [ 562 | -91.372757, 563 | 40.402988 564 | ], 565 | [ 566 | -91.385399, 567 | 40.44725 568 | ], 569 | [ 570 | -91.374794, 571 | 40.503654 572 | ], 573 | [ 574 | -91.382103, 575 | 40.528496 576 | ], 577 | [ 578 | -91.412872, 579 | 40.547993 580 | ], 581 | [ 582 | -91.411118, 583 | 40.572971 584 | ], 585 | [ 586 | -91.37561, 587 | 40.603439 588 | ], 589 | [ 590 | -91.262062, 591 | 40.639545 592 | ], 593 | [ 594 | -91.214912, 595 | 40.643818 596 | ], 597 | [ 598 | -91.162498, 599 | 40.656311 600 | ], 601 | [ 602 | -91.129158, 603 | 40.682148 604 | ], 605 | [ 606 | -91.119987, 607 | 40.705402 608 | ], 609 | [ 610 | -91.092751, 611 | 40.761547 612 | ], 613 | [ 614 | -91.088905, 615 | 40.833729 616 | ], 617 | [ 618 | -91.04921, 619 | 40.879585 620 | ], 621 | [ 622 | -90.983276, 623 | 40.923927 624 | ], 625 | [ 626 | -90.960709, 627 | 40.950504 628 | ], 629 | [ 630 | -90.954651, 631 | 41.070362 632 | ], 633 | [ 634 | -90.957787, 635 | 41.104359 636 | ], 637 | [ 638 | -90.990341, 639 | 41.144371 640 | ], 641 | [ 642 | -91.018257, 643 | 41.165825 644 | ], 645 | [ 646 | -91.05632, 647 | 41.176258 648 | ], 649 | [ 650 | -91.101524, 651 | 41.231522 652 | ], 653 | [ 654 | -91.102348, 655 | 41.267818 656 | ], 657 | [ 658 | -91.07328, 659 | 41.334896 660 | ], 661 | [ 662 | -91.055786, 663 | 41.401379 664 | ], 665 | [ 666 | -91.027489, 667 | 41.423508 668 | ], 669 | [ 670 | -91.000694, 671 | 41.431084 672 | ], 673 | [ 674 | -90.949654, 675 | 41.421234 676 | ], 677 | [ 678 | -90.844139, 679 | 41.444622 680 | ], 681 | [ 682 | -90.7799, 683 | 41.449821 684 | ], 685 | [ 686 | -90.708214, 687 | 41.450062 688 | ], 689 | [ 690 | -90.658791, 691 | 41.462318 692 | ], 693 | [ 694 | -90.6007, 695 | 41.509586 696 | ], 697 | [ 698 | -90.54084, 699 | 41.52597 700 | ], 701 | [ 702 | -90.454994, 703 | 41.527546 704 | ], 705 | [ 706 | -90.434967, 707 | 41.543579 708 | ], 709 | [ 710 | -90.423004, 711 | 41.567272 712 | ], 713 | [ 714 | -90.348366, 715 | 41.586849 716 | ], 717 | [ 718 | -90.339348, 719 | 41.602798 720 | ], 721 | [ 722 | -90.341133, 723 | 41.64909 724 | ], 725 | [ 726 | -90.326027, 727 | 41.722736 728 | ], 729 | [ 730 | -90.304886, 731 | 41.756466 732 | ], 733 | [ 734 | -90.25531, 735 | 41.781738 736 | ], 737 | [ 738 | -90.195839, 739 | 41.806137 740 | ], 741 | [ 742 | -90.154518, 743 | 41.930775 744 | ], 745 | [ 746 | -90.14267, 747 | 41.983963 748 | ], 749 | [ 750 | -90.150536, 751 | 42.033428 752 | ], 753 | [ 754 | -90.168098, 755 | 42.061043 756 | ], 757 | [ 758 | -90.166649, 759 | 42.103745 760 | ], 761 | [ 762 | -90.176086, 763 | 42.120502 764 | ], 765 | [ 766 | -90.191574, 767 | 42.122688 768 | ], 769 | [ 770 | -90.230934, 771 | 42.159721 772 | ], 773 | [ 774 | -90.323601, 775 | 42.197319 776 | ], 777 | [ 778 | -90.367729, 779 | 42.210209 780 | ], 781 | [ 782 | -90.407173, 783 | 42.242645 784 | ], 785 | [ 786 | -90.417984, 787 | 42.263924 788 | ], 789 | [ 790 | -90.427681, 791 | 42.340633 792 | ], 793 | [ 794 | -90.441597, 795 | 42.360073 796 | ], 797 | [ 798 | -90.491043, 799 | 42.388783 800 | ], 801 | [ 802 | -90.563583, 803 | 42.421837 804 | ], 805 | [ 806 | -90.605827, 807 | 42.46056 808 | ], 809 | [ 810 | -90.648346, 811 | 42.475643 812 | ], 813 | [ 814 | -90.651772, 815 | 42.494698 816 | ], 817 | [ 818 | -90.638329, 819 | 42.509361 820 | ], 821 | [ 822 | -90.419975, 823 | 42.508362 824 | ], 825 | [ 826 | -89.923569, 827 | 42.504108 828 | ], 829 | [ 830 | -89.834618, 831 | 42.50346 832 | ], 833 | [ 834 | -89.400497, 835 | 42.49749 836 | ], 837 | [ 838 | -89.359444, 839 | 42.497906 840 | ], 841 | [ 842 | -88.939079, 843 | 42.490864 844 | ], 845 | [ 846 | -88.764954, 847 | 42.490906 848 | ], 849 | [ 850 | -88.70652, 851 | 42.489655 852 | ], 853 | [ 854 | -88.297897, 855 | 42.49197 856 | ], 857 | [ 858 | -88.194702, 859 | 42.489613 860 | ], 861 | [ 862 | -87.79731, 863 | 42.489132 864 | ], 865 | [ 866 | -87.836945, 867 | 42.314213 868 | ], 869 | [ 870 | -87.760239, 871 | 42.156456 872 | ], 873 | [ 874 | -87.670547, 875 | 42.059822 876 | ], 877 | [ 878 | -87.612625, 879 | 41.847332 880 | ], 881 | [ 882 | -87.529861, 883 | 41.723591 884 | ], 885 | [ 886 | -87.532646, 887 | 41.469715 888 | ], 889 | [ 890 | -87.532448, 891 | 41.301304 892 | ], 893 | [ 894 | -87.531731, 895 | 41.173756 896 | ], 897 | [ 898 | -87.532021, 899 | 41.00993 900 | ], 901 | [ 902 | -87.532669, 903 | 40.745411 904 | ], 905 | [ 906 | -87.53717, 907 | 40.49461 908 | ], 909 | [ 910 | -87.535675, 911 | 40.483246 912 | ], 913 | [ 914 | -87.535339, 915 | 40.166195 916 | ], 917 | [ 918 | -87.535774, 919 | 39.887302 920 | ], 921 | [ 922 | -87.535576, 923 | 39.609341 924 | ], 925 | [ 926 | -87.538567, 927 | 39.477448 928 | ], 929 | [ 930 | -87.540215, 931 | 39.350525 932 | ], 933 | [ 934 | -87.597664, 935 | 39.338268 936 | ], 937 | [ 938 | -87.625237, 939 | 39.307404 940 | ], 941 | [ 942 | -87.610619, 943 | 39.297661 944 | ], 945 | [ 946 | -87.615799, 947 | 39.281418 948 | ], 949 | [ 950 | -87.606895, 951 | 39.258163 952 | ], 953 | [ 954 | -87.584564, 955 | 39.248753 956 | ], 957 | [ 958 | -87.588593, 959 | 39.208466 960 | ], 961 | [ 962 | -87.594208, 963 | 39.198128 964 | ], 965 | [ 966 | -87.607925, 967 | 39.196068 968 | ], 969 | [ 970 | -87.644257, 971 | 39.168507 972 | ], 973 | [ 974 | -87.670326, 975 | 39.146679 976 | ], 977 | [ 978 | -87.659454, 979 | 39.130653 980 | ], 981 | [ 982 | -87.662262, 983 | 39.113468 984 | ], 985 | [ 986 | -87.631668, 987 | 39.103943 988 | ], 989 | [ 990 | -87.630867, 991 | 39.088974 992 | ], 993 | [ 994 | -87.612007, 995 | 39.084606 996 | ], 997 | [ 998 | -87.58532, 999 | 39.062435 1000 | ], 1001 | [ 1002 | -87.581749, 1003 | 38.995743 1004 | ], 1005 | [ 1006 | -87.591858, 1007 | 38.994083 1008 | ], 1009 | [ 1010 | -87.547905, 1011 | 38.977077 1012 | ], 1013 | [ 1014 | -87.53347, 1015 | 38.963703 1016 | ], 1017 | [ 1018 | -87.530182, 1019 | 38.931919 1020 | ], 1021 | [ 1022 | -87.5392, 1023 | 38.904861 1024 | ], 1025 | [ 1026 | -87.559059, 1027 | 38.869812 1028 | ], 1029 | [ 1030 | -87.550507, 1031 | 38.857891 1032 | ], 1033 | [ 1034 | -87.507889, 1035 | 38.795559 1036 | ], 1037 | [ 1038 | -87.519028, 1039 | 38.776699 1040 | ], 1041 | [ 1042 | -87.508003, 1043 | 38.769722 1044 | ], 1045 | [ 1046 | -87.508316, 1047 | 38.736633 1048 | ], 1049 | [ 1050 | -87.543892, 1051 | 38.685974 1052 | ], 1053 | [ 1054 | -87.588478, 1055 | 38.672169 1056 | ], 1057 | [ 1058 | -87.625191, 1059 | 38.642811 1060 | ], 1061 | [ 1062 | -87.628647, 1063 | 38.622917 1064 | ], 1065 | [ 1066 | -87.619827, 1067 | 38.599209 1068 | ], 1069 | [ 1070 | -87.640594, 1071 | 38.593178 1072 | ], 1073 | [ 1074 | -87.652855, 1075 | 38.573872 1076 | ], 1077 | [ 1078 | -87.672943, 1079 | 38.547424 1080 | ], 1081 | [ 1082 | -87.65139, 1083 | 38.515369 1084 | ], 1085 | [ 1086 | -87.653534, 1087 | 38.500443 1088 | ], 1089 | [ 1090 | -87.679909, 1091 | 38.504005 1092 | ], 1093 | [ 1094 | -87.692818, 1095 | 38.481533 1096 | ], 1097 | [ 1098 | -87.756096, 1099 | 38.466125 1100 | ], 1101 | [ 1102 | -87.758659, 1103 | 38.457096 1104 | ], 1105 | [ 1106 | -87.738953, 1107 | 38.44548 1108 | ], 1109 | [ 1110 | -87.748428, 1111 | 38.417965 1112 | ], 1113 | [ 1114 | -87.784019, 1115 | 38.378124 1116 | ], 1117 | [ 1118 | -87.834503, 1119 | 38.352524 1120 | ], 1121 | [ 1122 | -87.850082, 1123 | 38.286098 1124 | ], 1125 | [ 1126 | -87.863007, 1127 | 38.285362 1128 | ], 1129 | [ 1130 | -87.874039, 1131 | 38.316788 1132 | ], 1133 | [ 1134 | -87.883446, 1135 | 38.315552 1136 | ], 1137 | [ 1138 | -87.888466, 1139 | 38.300659 1140 | ], 1141 | [ 1142 | -87.914108, 1143 | 38.281048 1144 | ], 1145 | [ 1146 | -87.913651, 1147 | 38.302345 1148 | ], 1149 | [ 1150 | -87.925919, 1151 | 38.304771 1152 | ], 1153 | [ 1154 | -87.980019, 1155 | 38.241085 1156 | ], 1157 | [ 1158 | -87.986008, 1159 | 38.234814 1160 | ], 1161 | [ 1162 | -87.977928, 1163 | 38.200714 1164 | ], 1165 | [ 1166 | -87.932289, 1167 | 38.171131 1168 | ], 1169 | [ 1170 | -87.931992, 1171 | 38.157528 1172 | ], 1173 | [ 1174 | -87.950569, 1175 | 38.136913 1176 | ], 1177 | [ 1178 | -87.973503, 1179 | 38.13176 1180 | ], 1181 | [ 1182 | -88.018547, 1183 | 38.103302 1184 | ], 1185 | [ 1186 | -88.012329, 1187 | 38.092346 1188 | ], 1189 | [ 1190 | -87.964867, 1191 | 38.096748 1192 | ], 1193 | [ 1194 | -87.975296, 1195 | 38.073307 1196 | ], 1197 | [ 1198 | -88.034729, 1199 | 38.054085 1200 | ], 1201 | [ 1202 | -88.043091, 1203 | 38.04512 1204 | ], 1205 | [ 1206 | -88.041473, 1207 | 38.038303 1208 | ], 1209 | [ 1210 | -88.021698, 1211 | 38.033531 1212 | ], 1213 | [ 1214 | -88.029213, 1215 | 38.008236 1216 | ], 1217 | [ 1218 | -88.021706, 1219 | 37.975056 1220 | ], 1221 | [ 1222 | -88.042511, 1223 | 37.956264 1224 | ], 1225 | [ 1226 | -88.041771, 1227 | 37.934498 1228 | ], 1229 | [ 1230 | -88.064621, 1231 | 37.929783 1232 | ], 1233 | [ 1234 | -88.078941, 1235 | 37.944 1236 | ], 1237 | [ 1238 | -88.084, 1239 | 37.92366 1240 | ], 1241 | [ 1242 | -88.030441, 1243 | 37.917591 1244 | ], 1245 | [ 1246 | -88.026588, 1247 | 37.905758 1248 | ], 1249 | [ 1250 | -88.044868, 1251 | 37.896004 1252 | ], 1253 | [ 1254 | -88.100082, 1255 | 37.90617 1256 | ], 1257 | [ 1258 | -88.101456, 1259 | 37.895306 1260 | ], 1261 | [ 1262 | -88.075737, 1263 | 37.867809 1264 | ], 1265 | [ 1266 | -88.034241, 1267 | 37.843746 1268 | ], 1269 | [ 1270 | -88.042137, 1271 | 37.827522 1272 | ], 1273 | [ 1274 | -88.089264, 1275 | 37.831249 1276 | ], 1277 | [ 1278 | -88.086029, 1279 | 37.817612 1280 | ], 1281 | [ 1282 | -88.035576, 1283 | 37.805683 1284 | ], 1285 | [ 1286 | -88.072472, 1287 | 37.735401 1288 | ], 1289 | [ 1290 | -88.133636, 1291 | 37.700745 1292 | ], 1293 | [ 1294 | -88.15937, 1295 | 37.660686 1296 | ], 1297 | [ 1298 | -88.157631, 1299 | 37.628479 1300 | ], 1301 | [ 1302 | -88.134171, 1303 | 37.583572 1304 | ], 1305 | [ 1306 | -88.071564, 1307 | 37.51099 1308 | ] 1309 | ] 1310 | ]] 1311 | } 1312 | --------------------------------------------------------------------------------