Code Monkey home page Code Monkey logo

geo's Introduction

Geo - a geospatial library for .NET

NuGet

Geo is a spatial library that is made specfically for geographic data.

Wiki | Issues | NuGet

Features include:

  • Geographic geometry types:
    • Point
    • LineString
    • Polygon, Triangle
    • Circle
    • GeometryCollection, MultiPoint, MultiLineString, and MultiPolygon
  • GPS types:
    • GPSData
    • Route
    • Track
  • Serialize and deserialize geometries:
    • WKT (Well-known text)
    • WKB (Well-known binary)
    • GeoJSON
  • Serialize and deserialize GPS files:
    • GPX
    • NMEA (deserialize only)
    • IGC (deserialize only)
    • Garmin Flightplan (deserialize only)
    • SkyDemon flightplan (deserialize only)
    • PocketFMS flightplan (deserialize only)
  • Geographic calculations
    • Distance
    • Area
    • Greate circle lines
    • Rhumb lines
  • Geomagnetism calculations
    • IGRF / WMM models
    • Declination, Inclination, Intensity, etc.

Useful Information

  • All ordinates are in degress, unless specified otherwise
  • All measurements are in S.I. units (metres, seconds, etc.), unless specified otherwise
  • The coordinate reference system is assumed to be WGS-84

License

Geo is licensed under the terms of the GNU Lesser General Public License as published by the Free Software Foundation.

geo's People

Contributors

mfeingol avatar pashcovich avatar sabrial-safi avatar sibartlett avatar spadger avatar stanleygoldman 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

geo's Issues

Project geometry objects

Hi,

Does Geo support projection in current version?
It would be beneficial to have an ability to project features or geometry objects to other Projections ..
As I checked the source codes, abstraction has been applied very well, so it would be possible to add a new Interface like IProjectable and implement that for all Geometry objects.

P S : As you might already know Proj4Net (https://proj4net.codeplex.com) is a mature library in order to transform point coordinates from one geographic coordinate system to another.

Best Regards,
Shahin

Parsing of coordinates is not Culture independent

Running the unit tests on a PC with .Net in Italian ("it-IT" ) it does not pass.

Coordinate.cs TryParse() assumes the current Thread culture use dot as decimal separator.

method should use the double.Parse() and double.TryParse() overrides with NumberStyles and IFormatProvider parameters as I seen in other classes.

Example:
var deg1 = double.Parse(match.Groups["Deg1"].Value);
should be:
var deg1 = double.Parse(match.Groups["Deg1"].Value, CultureInfo.InvariantCulture);

double.TryParse(match.Groups["Min1"].Value, out temp)
should be:
double.TryParse(match.Groups["Min1"].Value, NumberStyles.None, CultureInfo.InvariantCulture, out temp)

I'm not sure NumberStyles.None is the best choice, but it works.

Alex

Is there a way to sort coordinates CW or CCW?

First off, I love this library. Lightweight and has everything I have needed so far. Great stuff!

I am in a situation where I have a collection of Coordinate objects which should be able to form a the shell of a polygon. I want to convert them to a Polygon object after verifying this fact.

The only snag is that these Coordinate objects are not in any sort of sorted order (e.g. Anti-Clockwise positioning) which means not following the advice from the wiki and doing things like putting them into a CoordinateSequence and calling IsClosed will not work.

Is there anything built-in to the Geo library that will take a collection of Coordinate objects and sort them CW or CCW so that things like IsClosed will work? I have had a peruse of the code and didn't see anything but I might have missed it.

If not then I think I have a way to do it but wanted to check if there was anything built-in first to avoid re-inventing the wheel.

NativeAot compatibility

Due to the use of System.Xml.Serialization, this library isn't NativeAot-compatible.

using Geo.Gps.Serialization;

try
{
    var data = File.ReadAllBytes("path_to_gpx");
    using var stream = new MemoryStream(data);
    var streamWrapper = new StreamWrapper(stream);
    var gpsData = new Gpx10Serializer().CanDeSerialize(streamWrapper) ?
        new Gpx10Serializer().DeSerialize(streamWrapper) :
        new Gpx11Serializer().DeSerialize(streamWrapper);
}
catch (Exception e)
{
    Console.WriteLine(e);
}

dotnet publish
.\geo_nativeaot\bin\Release\net8.0\win-x64\publish\geo_nativeaot.exe

GpxFile cannot be serialized because it does not have a parameterless constructor.
   at System.Xml.Serialization.TypeDesc.CheckSupported() + 0x42
   at System.Xml.Serialization.TypeScope.GetTypeDesc(Type, MemberInfo, Boolean, Boolean) + 0xbd
   at System.Xml.Serialization.ModelScope.GetTypeModel(Type, Boolean) + 0x5a
   at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type, XmlRootAttribute, String) + 0x50
   at System.Xml.Serialization.XmlSerializer.GetMapping() + 0x4f
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) + 0x98
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) + 0x209
   at Geo.Gps.Serialization.Xml.GpsXmlDeSerializer`1.DeSerialize(StreamWrapper) + 0xc7

When excluding the Geo assembly from trimming, another error surfaces:

<ItemGroup>
    <TrimmerRootAssembly Include="Geo" />
</ItemGroup>
System.InvalidOperationException: There is an error in XML document (3, 3).
 ---> System.NotSupportedException: 'System.Xml.Serialization.ReflectionXmlSerializationReaderHelper.GetSetMemberValueDelegateWithType[Geo.Gps.Serialization.Xml.Gpx.Gpx11.GpxMetadata,System.DateTime](System.Reflection.MemberInfo)' is missing native code. MethodInfo.MakeGenericMethod() is not compatible with AOT compilation. Inspect and fix AOT related warnings that were generated when the app was published. For more information see https://aka.ms/nativeaot-compatibility
   at System.Reflection.Runtime.MethodInfos.RuntimeNamedMethodInfo`1.GetUncachedMethodInvoker(RuntimeTypeInfo[], MemberInfo) + 0x2f
...

Demo project: geo_nativeaot.zip

Want extensions of Gpx11.GpxWaypoint

I am very interested in a practical application of the extensions property of
Geo.Gps.Serialization.Xml.Gpx.Gpx11.GpxWaypoint. It's documented here.
In your file, it is commented out. It has been 4 years. Do you suggest I work on a branch here or should I fork? Thanks.

Support waypoint attributes

I'm using the Geo library for a UWP app, and I need to know the names of waypoints in GPX files. Unfortunately, the Geo library doesn't seem to support that.

Any chance you could integrate the following changes (or better)?

Thanks!

Waypoint.cs:

using Geo.Abstractions.Interfaces;
using Geo.Geometries;
using Geo.Measure;

namespace Geo.Gps
{
    public class Waypoint : IRavenIndexable, IHasLength
    {
        public string Name { get; private set; }
        public Point Point { get; set; }

        public Waypoint(string name, Point point)
        {
            Name = name;
            Point = point;
        }

        public Coordinate Coordinate
        {
            get { return Point.Coordinate; }
        }

        public LineString ToLineString()
        {
            return new LineString(Point.Coordinate);
        }

        ISpatial4nShape IRavenIndexable.GetSpatial4nShape()
        {
            return ToLineString();
        }

        public Distance GetLength()
        {
            return ToLineString().GetLength();
        }
    }
}

Rest of diff:

O:\Build\External\Geo>git diff
diff --git a/Geo/Geo.csproj b/Geo/Geo.csproj
index 899c4f5..f81e3d0 100644
--- a/Geo/Geo.csproj
+++ b/Geo/Geo.csproj
@@ -179,6 +179,7 @@
     <Compile Include="Gps\Serialization\Xml\SkyDemon\SkyDemonFlightplan.cs" />
     <Compile Include="Gps\Track.cs" />
     <Compile Include="Gps\TrackSegment.cs" />
+    <Compile Include="Gps\Waypoint.cs" />
     <Compile Include="InternalHelpers.cs" />
     <Compile Include="IO\GeoJson\Feature.cs" />
     <Compile Include="IO\GeoJson\FeatureCollection.cs" />
diff --git a/Geo/Gps/GpsData.cs b/Geo/Gps/GpsData.cs
index 2857036..7623e57 100644
--- a/Geo/Gps/GpsData.cs
+++ b/Geo/Gps/GpsData.cs
@@ -34,13 +34,13 @@ namespace Geo.Gps
             Metadata = new GpsMetadata();
             Routes = new List<Route>();
             Tracks = new List<Track>();
-            Waypoints = new List<Point>();
+            Waypoints = new List<Waypoint>();
         }

         public GpsMetadata Metadata { get; private set; }
         public List<Route> Routes { get; set; }
         public List<Track> Tracks { get; set; }
-        public List<Point> Waypoints { get; set; }
+        public List<Waypoint> Waypoints { get; set; }

         public string ToGpx()
         {
diff --git a/Geo/Gps/Serialization/Gpx10Serializer.cs b/Geo/Gps/Serialization/Gpx10Serializer.cs
index 817aa92..a8ecb67 100644
--- a/Geo/Gps/Serialization/Gpx10Serializer.cs
+++ b/Geo/Gps/Serialization/Gpx10Serializer.cs
@@ -186,7 +186,8 @@ namespace Geo.Gps.Serialization
                 foreach (var wptType in xml.wpt)
                 {
                     var fix = new Point((double)wptType.lat, (double)wptType.lon, (double)wptType.ele);
-                    data.Waypoints.Add(fix);
+                    string name = wptType.name;
+                    data.Waypoints.Add(new Waypoint(name, fix));
                 }
         }
     }
diff --git a/Geo/Gps/Serialization/Gpx11Serializer.cs b/Geo/Gps/Serialization/Gpx11Serializer.cs
index 68db591..c89bbe8 100644
--- a/Geo/Gps/Serialization/Gpx11Serializer.cs
+++ b/Geo/Gps/Serialization/Gpx11Serializer.cs
@@ -283,7 +283,8 @@ namespace Geo.Gps.Serialization
                 foreach (var wptType in xml.wpt)
                 {
                     var fix = new Point((double)wptType.lat, (double)wptType.lon, (double)wptType.ele);
-                    data.Waypoints.Add(fix);
+                    string name = wptType.name;
+                    data.Waypoints.Add(new Waypoint(name, fix));
                 }
         }
     }
diff --git a/Geo/Gps/Serialization/NmeaDeSerializer.cs b/Geo/Gps/Serialization/NmeaDeSerializer.cs
index b3b7f77..01cfa3e 100644
--- a/Geo/Gps/Serialization/NmeaDeSerializer.cs
+++ b/Geo/Gps/Serialization/NmeaDeSerializer.cs
@@ -95,7 +95,9 @@ namespace Geo.Gps.Serialization
                 double lat = ConvertOrd(match.Groups["lat"].Value, match.Groups["latd"].Value);
                 double lon = ConvertOrd(match.Groups["lon"].Value, match.Groups["lond"].Value);
                 var fix = new Point(lat, lon);
-                data.Waypoints.Add(fix);
+
+                string name = String.Empty;
+                data.Waypoints.Add(new Waypoint(name, fix));

                 return true;
             }

Failed to load geometry objects using GeoJsonReader

Hi,

I'm having problems with the new API version (v0.12.0).

The geometry type objects (like Polygon, MultiPolygon, Point and many others) do not implement the interface 'IGeoJsonObject'. Now, they implement only the interface 'IGeometry'.

I can not load a GeoJSON object ('IGeoJsonObject') from a GeoJSON (in string format) with only the geometry data.

Using the latest API version (v0.12.0) the reading sample using GeoJsonReader class does not work: https://github.com/sibartlett/Geo/wiki/GeoJSON

This code does not work:

'
const string geojson = @"{""type"":""Point"",""coordinates"":[0,0]}";
var reader = new GeoJsonReader();
var point = reader.Read(geojson);
'

Can you help me?

Thanks.

Error Reading WKT

Trying to read a WKT that is in a SRID (2927) and it keeps telling me:

Specified argument was out of the range of valid values.

Does this reader only work with regular lat/longs?

WKT:
POINT (1231668.2539279764 968951.39716555178)

Code:

var reader = new WktReader();
var geometry = reader.Read(roadsideFeature.FeatureGeometryString); // reading a string

Cannot read GPX files with missing namespace

I am using Gpx10Serializer and Gpx11Serializer in my app and want to deserialize GPX files from a stream.
I have come across GPX files that do not have the correct namespace set:

<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="Runtastic: Life is short - live long, http://www.runtastic.com" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"><metadata><name>runtastic_20220225_0813</name>
<copyright author="www.runtastic.com"><year>2022</year>
<license>http://www.runtastic.com</license>
</copyright>
<link href="http://www.runtastic.com"><text>runtastic</text>
</link>
...
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.0" creator="GeoSetter - http://www.geosetter.de">
<trk>
<name></name>
<trkseg>
...

This causes the deserialization to fail with an InvalidOperationException (<gpx xmlns=''> was not expected) because of this attribute (I think):

[XmlRoot("gpx", Namespace="http://www.topografix.com/GPX/1/1", IsNullable=false)]

[XmlRoot("gpx", Namespace="http://www.topografix.com/GPX/1/0", IsNullable=false)]

It would be great if it was possible to ignore that namespace so that the library can also import those GPX files

Support GML and KML

it would be supper if this library would also support GML and KML formats.

.Contains(Coordinate ) in a Polygon?

I see you support .Contains(Coordinate ) in a Envelope which is not so hard to do but do you support .Contains(Coordinate ) for a complex Polygon?
If no - how hard is it to implement? Can you point to some reference where I can see the logic and maybe implement it as a pull request?

Parsers

It would be nice if this library supported parsing/validating formats

Like I have a geo string and I need to know what it is. So I'd try passing in geojson 12.0, 12.0 and it would return an enum with the type or I pass it 50ยฐ03'46.461"S 125ยฐ48'26.533"E 978.90m etc,,

NTS

Hi there! Just a question. NTS is an alternative geometry library. It seems to be quite similar to this one. What could be a reason to choose one over the other?

Also Geo is LGPL just like NTS. Is there a specific reason for this (like historcally). Did you consider alternative licenses?

Chicago WKT throws "Invalid WKT String"

var oWktReader = new WktReader();
string wktString = @"POLYGON ((-87.93939 41.98667, -87.93933 41.98729, -87.93906 41.98911, -87.93904 41.99125, -87.939 41.99286, -87.93892 41.99358, -87.93872 41.99456, -87.93848 41.9954, -87.93824 41.99608, -87.93802 41.99657, -87.93761 41.99741, -87.93717 41.99813, -87.93697 41.99844, -87.93649 41.9991, -87.93571 42.00005, -87.93535 42.00043, -87.93492 42.00086, -87.9346 42.00116, -87.93409 42.0016, -87.93354 42.00209, -87.93287 42.00254, -87.93201 42.00318, -87.93012 42.00454, -87.92949 42.00501, -87.92938 42.00473, -87.93017 42.00417, -87.93125 42.00341, -87.93153 42.00316, -87.93168 42.00286, -87.93169 42.00272, -87.93166 42.00237, -87.93156 42.00215, -87.93139 42.00197, -87.93001 42.00308, -87.92806 42.00466, -87.92634 42.00542, -87.92549 42.00606, -87.92452 42.00644, -87.92295 42.00678, -87.92106 42.00567, -87.91867 42.00531, -87.91549 42.00518, -87.91373 42.00488, -87.91371 42.00869, -87.91347 42.0087, -87.91342 42.0062, -87.91321 42.0062, -87.91319 42.00507, -87.90887 42.00525, -87.90771 42.00528, -87.90768 42.00892, -87.90686 42.00896, -87.90657 42.00897, -87.90482 42.00901, -87.90418 42.00904, -87.90187 42.00841, -87.90043 42.00803, -87.89895 42.00763, -87.89832 42.00745, -87.89772 42.00724, -87.89715 42.00703, -87.89657 42.00675, -87.89415 42.00562, -87.89415 42.00544, -87.89415 42.00496, -87.89414 42.00427, -87.89413 42.00318, -87.89413 42.00287, -87.89413 42.00259, -87.89413 42.00228, -87.89413 42.00218, -87.89413 42.00209, -87.89415 42.00167, -87.89414 42.00132, -87.89411 42.00112, -87.89406 42.00095, -87.89392 42.00067, -87.89377 42.00047, -87.89363 42.00032, -87.89345 42.00016, -87.89321 42.00001, -87.89281 41.99983, -87.89247 41.99973, -87.89223 41.99968, -87.8911 41.99953, -87.89086 41.99949, -87.89043 41.99943, -87.88996 41.99936, -87.88991 41.99935, -87.88917 41.99923, -87.88867 41.99915, -87.88803 41.99903, -87.88784 41.99899, -87.88773 41.99897, -87.88751 41.99892, -87.88723 41.99886, -87.88692 41.99879, -87.88682 41.99877, -87.8865 41.9987, -87.88595 41.99857, -87.88558 41.99849, -87.88525 41.99842, -87.88454 41.99826, -87.88452 41.99768, -87.88452 41.99727, -87.88452 41.99711, -87.88452 41.9969, -87.88451 41.99631, -87.88451 41.99613, -87.88451 41.99606, -87.88451 41.9958, -87.8845 41.99532, -87.88275 41.99536, -87.88068 41.99541, -87.88045 41.99543, -87.8798 41.99346, -87.87905 41.99122, -87.87831 41.98926, -87.87782 41.98781, -87.87736 41.98647, -87.87611 41.98269, -87.876 41.9823, -87.87591 41.98207, -87.87584 41.97667, -87.87582 41.97617, -87.87582 41.97614, -87.87582 41.97608, -87.87582 41.97602, -87.87582 41.97594, -87.87582 41.97563, -87.87582 41.97547, -87.87582 41.97525, -87.87582 41.97496, -87.87579 41.97462, -87.87578 41.97446, -87.87578 41.97435, -87.87578 41.97397, -87.87508 41.97395, -87.87328 41.97397, -87.87307 41.97396, -87.87289 41.97395, -87.87282 41.97395, -87.87236 41.97396, -87.87103 41.97398, -87.86973 41.974, -87.86954 41.974, -87.86943 41.974, -87.86893 41.97399, -87.86878 41.97399, -87.8686 41.97386, -87.86785 41.97375, -87.86729 41.9737, -87.86679 41.97372, -87.86541 41.9738, -87.86408 41.97385, -87.86369 41.97387, -87.86313 41.97389, -87.86306 41.97389, -87.86302 41.97389, -87.86242 41.97391, -87.86212 41.97395, -87.86214 41.97406, -87.86211 41.97478, -87.86195 41.97542, -87.86165 41.976, -87.86143 41.97626, -87.86009 41.97736, -87.85855 41.97879, -87.8573 41.97984, -87.85666 41.98032, -87.85635 41.98065, -87.85603 41.98105, -87.85596 41.98141, -87.85597 41.98187, -87.85637 41.98277, -87.85654 41.98341, -87.85611 41.98342, -87.85643 41.98421, -87.85652 41.98434, -87.85657 41.98465, -87.85655 41.98478, -87.85643 41.985, -87.85634 41.98516, -87.8564 41.98544, -87.85628 41.98575, -87.85606 41.98645, -87.85605 41.98651, -87.85564 41.98737, -87.85535 41.98804, -87.85536 41.98822, -87.8555 41.9884, -87.85556 41.98859, -87.85553 41.98878, -87.85563 41.98899, -87.85547 41.98894, -87.85504 41.98882, -87.85464 41.98873, -87.85416 41.98866, -87.85342 41.9886, -87.85305 41.98858, -87.85278 41.98857, -87.85233 41.98855, -87.85184 41.98854, -87.85121 41.98849, -87.85009 41.98838, -87.84953 41.98831, -87.8492 41.98826, -87.84897 41.98822, -87.84831 41.98811, -87.84796 41.98805, -87.84746 41.98798, -87.84731 41.98796, -87.84647 41.98784, -87.84536 41.98767, -87.84488 41.98761, -87.84418 41.98751, -87.84332 41.98738, -87.84302 41.98733, -87.84149 41.98709, -87.84068 41.98698, -87.83937 41.9868, -87.83903 41.98675, -87.83846 41.98666, -87.83761 41.98653, -87.83728 41.98648, -87.8366 41.98638, -87.83611 41.98631, -87.83593 41.98628, -87.83527 41.98619, -87.83482 41.98612, -87.83401 41.98603, -87.8328 41.98587, -87.83159 41.98568, -87.83037 41.9855, -87.82917 41.98534, -87.82794 41.98515, -87.82744 41.98507, -87.82671 41.98495, -87.82547 41.98477, -87.82471 41.98466, -87.82428 41.9846, -87.82368 41.98452, -87.82333 41.98447, -87.8233 41.98464, -87.82324 41.98498, -87.82322 41.98512, -87.82316 41.98579, -87.8231 41.98622, -87.82303 41.98666, -87.82301 41.98681, -87.82297 41.98711, -87.82292 41.98โ€ฆ58 41.95371, -87.8073 41.95384, -87.80702 41.95398, -87.80637 41.9543, -87.80602 41.95447, -87.8057 41.95463, -87.80529 41.95483, -87.80499 41.95498, -87.8042 41.95538, -87.80373 41.95561, -87.80322 41.95586, -87.80269 41.9561, -87.80236 41.95625, -87.80185 41.95648, -87.80136 41.9567, -87.80063 41.95705, -87.80016 41.95727, -87.7994 41.95765, -87.79894 41.95788, -87.79827 41.95819, -87.79766 41.95848, -87.79719 41.9587, -87.79697 41.9588, -87.79651 41.95902, -87.79608 41.95923, -87.79513 41.95969, -87.79481 41.95984, -87.79453 41.95997, -87.79417 41.96013, -87.79361 41.96008, -87.79346 41.96008, -87.79261 41.9601, -87.79186 41.96012, -87.79167 41.96012, -87.79045 41.96014, -87.78991 41.96015, -87.78958 41.96015, -87.78924 41.96016, -87.78828 41.96018, -87.78801 41.96019, -87.78732 41.9602, -87.78681 41.9602, -87.78682 41.96052, -87.78682 41.96067, -87.78683 41.96096, -87.78687 41.96204, -87.78687 41.96221, -87.78688 41.96254, -87.78692 41.96293, -87.78685 41.96337, -87.78677 41.96346, -87.78673 41.96356, -87.78675 41.96371, -87.78674 41.96464, -87.78673 41.96517, -87.78673 41.96651, -87.78675 41.96703, -87.78676 41.96747, -87.78675 41.96843, -87.78801 41.96841, -87.788 41.96892, -87.7892 41.96893, -87.79044 41.96891, -87.79104 41.96892, -87.79165 41.96892, -87.79284 41.96889, -87.79406 41.96887, -87.79529 41.96887, -87.79649 41.96886, -87.79771 41.96885, -87.79891 41.96885, -87.80012 41.96883, -87.80132 41.96883, -87.80252 41.96883, -87.80253 41.96831, -87.80368 41.9683, -87.80388 41.9683, -87.80486 41.9683, -87.80546 41.96829, -87.80549 41.96829, -87.80602 41.96829, -87.80627 41.96828, -87.80648 41.96828, -87.80718 41.96827, -87.80718 41.96834, -87.80718 41.96886, -87.80718 41.96908, -87.80713 41.97008, -87.80711 41.9709, -87.80709 41.97187, -87.80707 41.97273, -87.80705 41.97368, -87.80705 41.97393, -87.80705 41.97425, -87.80704 41.97454, -87.80789 41.97455, -87.80829 41.97455, -87.8095 41.97447, -87.8105 41.97445, -87.81076 41.97444, -87.81137 41.97443, -87.81144 41.97443, -87.812 41.97441, -87.81258 41.9744, -87.81321 41.97438, -87.81443 41.97435, -87.81567 41.97432, -87.81646 41.97431, -87.8169 41.9743, -87.81691 41.97384, -87.81691 41.97353, -87.81691 41.97338, -87.81691 41.97249, -87.81692 41.97157, -87.81692 41.971, -87.81693 41.97066, -87.81842 41.97066, -87.81939 41.97069, -87.81943 41.97081, -87.81943 41.97094, -87.81943 41.97192, -87.81942 41.97346, -87.8194 41.97421, -87.82183 41.97415, -87.82222 41.97414, -87.82383 41.9741, -87.82472 41.97409, -87.82535 41.97407, -87.82575 41.97406, -87.82609 41.97405, -87.82674 41.97403, -87.82674 41.97352, -87.82673 41.97313, -87.83171 41.97307, -87.83173 41.97377, -87.83236 41.9738, -87.83236 41.97393, -87.83287 41.97393, -87.83354 41.97392, -87.83359 41.975, -87.83359 41.97531, -87.83357 41.97536, -87.83355 41.9754, -87.83662 41.97536, -87.83662 41.97524, -87.83663 41.97496, -87.83662 41.9748, -87.84137 41.97478, -87.84137 41.9738, -87.841 41.9738, -87.83947 41.97383, -87.83904 41.97384, -87.83837 41.97386, -87.83781 41.97386, -87.83783 41.97118, -87.83664 41.97116, -87.83671 41.971, -87.83673 41.97086, -87.83673 41.97069, -87.83674 41.97022, -87.8373 41.97022, -87.83787 41.97021, -87.83841 41.9702, -87.83853 41.97019, -87.8391 41.97017, -87.84035 41.97014, -87.84102 41.97014, -87.84156 41.97013, -87.84149 41.97197, -87.84651 41.972, -87.84652 41.97128, -87.84654 41.97005, -87.84657 41.96823, -87.84657 41.96695, -87.84657 41.96643), (-87.83493 41.98116, -87.83434 41.98115, -87.83433 41.98082, -87.8349 41.9808, -87.83492 41.98056, -87.83313 41.98061, -87.82928 41.98074, -87.82901 41.98074, -87.82907 41.98024, -87.8291 41.97989, -87.82869 41.97989, -87.82866 41.97951, -87.82825 41.97949, -87.82826 41.97934, -87.82864 41.97937, -87.82867 41.97883, -87.82866 41.97844, -87.8293 41.97841, -87.83032 41.97835, -87.83031 41.97804, -87.83029 41.97754, -87.82953 41.97757, -87.82949 41.97733, -87.82941 41.97693, -87.83173 41.9769, -87.83339 41.97688, -87.83345 41.9764, -87.8335 41.97589, -87.83173 41.97591, -87.82676 41.97594, -87.82445 41.97591, -87.82436 41.97655, -87.82432 41.97683, -87.82425 41.97744, -87.82422 41.97771, -87.82415 41.97816, -87.82409 41.97862, -87.82407 41.97889, -87.82399 41.97952, -87.82386 41.98045, -87.82379 41.98096, -87.82374 41.98136, -87.82365 41.98201, -87.82362 41.98227, -87.82359 41.98252, -87.82353 41.9831, -87.82505 41.98307, -87.82521 41.98306, -87.82515 41.98192, -87.82678 41.98189, -87.82678 41.9817, -87.82813 41.98174, -87.82814 41.98378, -87.8291 41.98375, -87.82961 41.98374, -87.83009 41.98374, -87.8311 41.98373, -87.83209 41.98371, -87.83298 41.98369, -87.83306 41.98366, -87.83308 41.9836, -87.83308 41.98324, -87.83307 41.98276, -87.83431 41.98276, -87.83493 41.98276, -87.83493 41.98116), (-87.69615 41.69896, -87.69589 41.69161, -87.69574 41.69162, -87.69531 41.69163, -87.69349 41.69165, -87.69331 41.69165, -87.69094 41.69168, -87.69099 41.69351, -87.69106 41.69533, -87.69112 41.69716, -87.69118 41.69899, -87.69615 41.69896))";

// throws "Invalid WKT String"
IGeometry oGeometry = oWktReader.Read(wktString);

Chicago GeoJSON Throws "Invalid GeoJSON String"

var oGeoJsonReader = new GeoJsonReader();
string geojsonString = @"{
        'type': 'Polygon',
        'coordinates':[[[-87.93939,41.98667],[-87.93933,41.98729],[-87.93906,41.98911],[-87.93904,41.99125],[-87.939,41.99286],[-87.93892,41.99358],[-87.93872,41.99456],[-87.93848,41.9954],[-87.93824,41.99608],[-87.93802,41.99657],[-87.93761,41.99741],[-87.93717,41.99813],[-87.93697,41.99844],[-87.93649,41.9991],[-87.93571,42.00005],[-87.93535,42.00043],[-87.93492,42.00086],[-87.9346,42.00116],[-87.93409,42.0016],[-87.93354,42.00209],[-87.93287,42.00254],[-87.93201,42.00318],[-87.93012,42.00454],[-87.92949,42.00501],[-87.92938,42.00473],[-87.93017,42.00417],[-87.93125,42.00341],[-87.93153,42.00316],[-87.93168,42.00286],[-87.93169,42.00272],[-87.93166,42.00237],[-87.93156,42.00215],[-87.93139,42.00197],[-87.93001,42.00308],[-87.92806,42.00466],[-87.92634,42.00542],[-87.92549,42.00606],[-87.92452,42.00644],[-87.92295,42.00678],[-87.92106,42.00567],[-87.91867,42.00531],[-87.91549,42.00518],[-87.91373,42.00488],[-87.91371,42.00869],[-87.91347,42.0087],[-87.91342,42.0062],[-87.91321,42.0062],[-87.91319,42.00507],[-87.90887,42.00525],[-87.90771,42.00528],[-87.90768,42.00892],[-87.90686,42.00896],[-87.90657,42.00897],[-87.90482,42.00901],[-87.90418,42.00904],[-87.90187,42.00841],[-87.90043,42.00803],[-87.89895,42.00763],[-87.89832,42.00745],[-87.89772,42.00724],[-87.89715,42.00703],[-87.89657,42.00675],[-87.89415,42.00562],[-87.89415,42.00544],[-87.89415,42.00496],[-87.89414,42.00427],[-87.89413,42.00318],[-87.89413,42.00287],[-87.89413,42.00259],[-87.89413,42.00228],[-87.89413,42.00218],[-87.89413,42.00209],[-87.89415,42.00167],[-87.89414,42.00132],[-87.89411,42.00112],[-87.89406,42.00095],[-87.89392,42.00067],[-87.89377,42.00047],[-87.89363,42.00032],[-87.89345,42.00016],[-87.89321,42.00001],[-87.89281,41.99983],[-87.89247,41.99973],[-87.89223,41.99968],[-87.8911,41.99953],[-87.89086,41.99949],[-87.89043,41.99943],[-87.88996,41.99936],[-87.88991,41.99935],[-87.88917,41.99923],[-87.88867,41.99915],[-87.88803,41.99903],[-87.88784,41.99899],[-87.88773,41.99897],[-87.88751,41.99892],[-87.88723,41.99886],[-87.88692,41.99879],[-87.88682,41.99877],[-87.8865,41.9987],[-87.88595,41.99857],[-87.88558,41.99849],[-87.88525,41.99842],[-87.88454,41.99826],[-87.88452,41.99768],[-87.88452,41.99727],[-87.88452,41.99711],[-87.88452,41.9969],[-87.88451,41.99631],[-87.88451,41.99613],[-87.88451,41.99606],[-87.88451,41.9958],[-87.8845,41.99532],[-87.88275,41.99536],[-87.88068,41.99541],[-87.88045,41.99543],[-87.8798,41.99346],[-87.87905,41.99122],[-87.87831,41.98926],[-87.87782,41.98781],[-87.87736,41.98647],[-87.87611,41.98269],[-87.876,41.9823],[-87.87591,41.98207],[-87.87584,41.97667],[-87.87582,41.97617],[-87.87582,41.97614],[-87.87582,41.97608],[-87.87582,41.97602],[-87.87582,41.97594],[-87.87582,41.97563],[-87.87582,41.97547],[-87.87582,41.97525],[-87.87582,41.97496],[-87.87579,41.97462],[-87.87578,41.97446],[-87.87578,41.97435],[-87.87578,41.97397],[-87.87508,41.97395],[-87.87328,41.97397],[-87.87307,41.97396],[-87.87289,41.97395],[-87.87282,41.97395],[-87.87236,41.97396],[-87.87103,41.97398],[-87.86973,41.974],[-87.86954,41.974],[-87.86943,41.974],[-87.86893,41.97399],[-87.86878,41.97399],[-87.8686,41.97386],[-87.86785,41.97375],[-87.86729,41.9737],[-87.86679,41.97372],[-87.86541,41.9738],[-87.86408,41.97385],[-87.86369,41.97387],[-87.86313,41.97389],[-87.86306,41.97389],[-87.86302,41.97389],[-87.86242,41.97391],[-87.86212,41.97395],[-87.86214,41.97406],[-87.86211,41.97478],[-87.86195,41.97542],[-87.86165,41.976],[-87.86143,41.97626],[-87.86009,41.97736],[-87.85855,41.97879],[-87.8573,41.97984],[-87.85666,41.98032],[-87.85635,41.98065],[-87.85603,41.98105],[-87.85596,41.98141],[-87.85597,41.98187],[-87.85637,41.98277],[-87.85654,41.98341],[-87.85611,41.98342],[-87.85643,41.98421],[-87.85652,41.98434],[-87.85657,41.98465],[-87.85655,41.98478],[-87.85643,41.985],[-87.85634,41.98516],[-87.8564,41.98544],[-87.85628,41.98575],[-87.85606,41.98645],[-87.85605,41.98651],[-87.85564,41.98737],[-87.85535,41.98804],[-87.85536,41.98822],[-87.8555,41.9884],[-87.85556,41.98859],[-87.85553,41.98878],[-87.85563,41.98899],[-87.85547,41.98894],[-87.85504,41.98882],[-87.85464,41.98873],[-87.85416,41.98866],[-87.85342,41.9886],[-87.85305,41.98858],[-87.85278,41.98857],[-87.85233,41.98855],[-87.85184,41.98854],[-87.85121,41.98849],[-87.85009,41.98838],[-87.84953,41.98831],[-87.8492,41.98826],[-87.84897,41.98822],[-87.84831,41.98811],[-87.84796,41.98805],[-87.84746,41.98798],[-87.84731,41.98796],[-87.84647,41.98784],[-87.84536,41.98767],[-87.84488,41.98761],[-87.84418,41.98751],[-87.84332,41.98738],[-87.84302,41.98733],[-87.84149,41.98709],[-87.84068,41.98698],[-87.83937,41.9868],[-87.83903,41.98675],[-87.83846,41.98666],[-87.83761,41.98653],[-87.83728,41.98648],[-87.8366,41.98638],[-87.83611,41.98631],[-87.83593,41.98628],[-87.83527,41.98619],[-87.83482,41.98612],[-87.83401,41.98603],[-87.8328,41.98587],[-87.83159,41.98568],[-87.83037,41.9855],[-87.82917,41.98534],[-87.82794,41.98515],[-87.82744,41.98507],[-87.82671,41.98495],[-87.82547,41.98477],[-87.82471,41.98466],[-87.82428,41.9846],[-87.82368,41.98452],[-87.82333,41.98447],[-87.8233,41.98464],[-87.82324,41.98498],[-87.82322,41.98512],[-87.82316,41.98579],[-87.8231,41.98622],[-87.82303,41.98666],[-87.82301,41.98681],[-87.82297,41.98711],[-87.82292,41.98755],[-87.82271,41.98908],[-87.82256,41.99021],[-87.82244,41.99096],[-87.82234,41.99177],[-87.82223,41.99268],[-87.82212,41.99332],[-87.82184,41.99502],[-87.82169,41.99589],[-87.82164,41.99611],[-87.82155,41.99641],[-87.82148,41.99665],[-87.8214,41.99685],[-87.8214,41.99727],[-87.82139,41.99758],[-87.82141,41.99865],[-87.82139,41.9991],[-87.82137,42.00048],[-87.82137,42.00062],[-87.82136,42.00104],[-87.82136,42.0014],[-87.82137,42.00187],[-87.82136,42.00232],[-87.82135,42.00279],[-87.82134,42.00313],[-87.82134,42.00325],[-87.82135,42.00366],[-87.82135,42.00374],[-87.82135,42.00385],[-87.82134,42.00395],[-87.82132,42.00403],[-87.82132,42.00426],[-87.82132,42.00457],[-87.8213,42.00605],[-87.82132,42.00673],[-87.82136,42.00742],[-87.82129,42.0078],[-87.82127,42.00935],[-87.82123,42.01135],[-87.81996,42.01137],[-87.81964,42.01138],[-87.81967,42.01175],[-87.81998,42.01172],[-87.81995,42.0132],[-87.8199,42.01411],[-87.81993,42.0154],[-87.82062,42.01539],[-87.82103,42.01538],[-87.82103,42.01721],[-87.82104,42.01865],[-87.82061,42.01866],[-87.81875,42.0187],[-87.81753,42.01874],[-87.81631,42.01876],[-87.81509,42.01878],[-87.81388,42.01881],[-87.81264,42.01884],[-87.81141,42.01887],[-87.81017,42.01889],[-87.80898,42.01892],[-87.80776,42.01895],[-87.80758,42.01895],[-87.8069,42.01896],[-87.80656,42.01897],[-87.80656,42.01853],[-87.80657,42.01784],[-87.80658,42.01762],[-87.80659,42.01714],[-87.80659,42.01689],[-87.80658,42.01644],[-87.80659,42.0162],[-87.80661,42.01533],[-87.80662,42.01481],[-87.80662,42.01452],[-87.80662,42.01386],[-87.80662,42.01352],[-87.80663,42.01338],[-87.80663,42.01247],[-87.80664,42.01204],[-87.80665,42.0117],[-87.80666,42.01124],[-87.80666,42.01079],[-87.80666,42.01062],[-87.80666,42.01035],[-87.80666,42.00997],[-87.80667,42.00956],[-87.80667,42.00946],[-87.80668,42.009],[-87.8067,42.00807],[-87.80671,42.00719],[-87.80671,42.00676],[-87.80672,42.00632],[-87.80673,42.0054],[-87.80674,42.00448],[-87.80676,42.00316],[-87.80675,42.00265],[-87.80675,42.00194],[-87.80676,42.00081],[-87.80594,42.0008],[-87.80536,42.00079],[-87.80537,42.00149],[-87.80476,42.00148],[-87.80414,42.0015],[-87.80354,42.0015],[-87.80289,42.00151],[-87.80233,42.00152],[-87.80172,42.00153],[-87.8011,42.00153],[-87.80107,42.00023],[-87.79951,42.00022],[-87.79946,41.99998],[-87.79878,41.99999],[-87.7982,41.99999],[-87.79771,41.99999],[-87.7971,41.99998],[-87.79711,42.0005],[-87.79711,42.00091],[-87.79555,42.00094],[-87.79393,42.00095],[-87.79314,42.00095],[-87.79228,42.00095],[-87.79174,42.00097],[-87.79117,42.00098],[-87.79099,42.00078],[-87.79065,42.00039],[-87.79025,42.00058],[-87.79007,42.00069],[-87.78617,42.00255],[-87.78568,42.00278],[-87.78202,42.00452],[-87.78241,42.00479],[-87.78264,42.00497],[-87.78286,42.00518],[-87.78319,42.00555],[-87.78468,42.00726],[-87.78518,42.00786],[-87.78576,42.00855],[-87.78614,42.00899],[-87.78708,42.01009],[-87.78739,42.01045],[-87.78825,42.01147],[-87.7887,42.01199],[-87.78795,42.01199],[-87.78766,42.01199],[-87.78673,42.01199],[-87.78628,42.01199],[-87.78571,42.01199],[-87.78488,42.01198],[-87.78436,42.01198],[-87.78379,42.01198],[-87.78309,42.01198],[-87.78271,42.01198],[-87.78187,42.01198],[-87.78113,42.01197],[-87.78056,42.01197],[-87.77997,42.01197],[-87.77926,42.01196],[-87.77869,42.01196],[-87.77891,42.01504],[-87.7789,42.01569],[-87.77684,42.01569],[-87.77685,42.01483],[-87.77696,42.01196],[-87.77656,42.01196],[-87.77529,42.01195],[-87.77415,42.01194],[-87.77334,42.01193],[-87.77304,42.01193],[-87.77185,42.00961],[-87.76952,42.00513],[-87.76875,42.00467],[-87.76787,42.00425],[-87.76574,42.00331],[-87.76555,42.0038],[-87.76738,42.00473],[-87.76753,42.00843],[-87.76391,42.00841],[-87.76291,42.0084],[-87.76207,42.00839],[-87.76186,42.00839],[-87.76167,42.00839],[-87.76168,42.00786],[-87.76172,42.00638],[-87.76174,42.00601],[-87.76175,42.00576],[-87.76176,42.00556],[-87.7618,42.00492],[-87.76181,42.00465],[-87.76183,42.00428],[-87.76184,42.00401],[-87.76185,42.00369],[-87.76186,42.00342],[-87.76187,42.0032],[-87.76189,42.00295],[-87.76191,42.00278],[-87.76194,42.0026],[-87.76199,42.00241],[-87.76206,42.00221],[-87.76214,42.002],[-87.76227,42.0017],[-87.76059,42.00093],[-87.75956,42.00045],[-87.75854,41.99998],[-87.75797,41.9997],[-87.75751,41.99947],[-87.75642,41.999],[-87.75543,41.9985],[-87.7544,41.99803],[-87.75283,41.99737],[-87.7524,41.99737],[-87.75214,41.99732],[-87.75088,41.99731],[-87.7502,41.99731],[-87.74998,41.99731],[-87.7496,41.99731],[-87.74904,41.99731],[-87.74868,41.99731],[-87.74833,41.99731],[-87.7477,41.99731],[-87.74728,41.99731],[-87.7471,41.99731],[-87.7459,41.9973],[-87.74558,41.9973],[-87.7447,41.99729],[-87.74426,41.99729],[-87.74418,41.99729],[-87.74374,41.99728],[-87.74347,41.99728],[-87.74288,41.99728],[-87.74226,41.99727],[-87.74104,41.99727],[-87.74065,41.99727],[-87.74013,41.99726],[-87.73983,41.99726],[-87.73903,41.99725],[-87.7387,41.99725],[-87.73857,41.99725],[-87.73767,41.99724],[-87.73741,41.99724],[-87.73619,41.99724],[-87.73497,41.99725],[-87.73375,41.99726],[-87.73254,41.99725],[-87.73131,41.99726],[-87.73012,41.99725],[-87.72966,41.99725],[-87.7289,41.99724],[-87.72844,41.99725],[-87.72815,41.99725],[-87.72763,41.99725],[-87.72735,41.99726],[-87.72729,41.99726],[-87.72725,41.99726],[-87.7264,41.99727],[-87.72607,41.99727],[-87.72523,41.99727],[-87.72453,41.99727],[-87.72401,41.99727],[-87.72279,41.99729],[-87.72149,41.99729],[-87.72074,41.99729],[-87.72028,41.99729],[-87.71985,41.99729],[-87.7192,41.9973],[-87.71903,41.9973],[-87.71863,41.9973],[-87.71794,41.99729],[-87.71728,41.9973],[-87.71673,41.9973],[-87.71592,41.99731],[-87.7155,41.99731],[-87.71427,41.99732],[-87.71409,41.99732],[-87.71305,41.99734],[-87.71269,41.99735],[-87.71255,41.99735],[-87.71221,41.99736],[-87.71169,41.99737],[-87.71112,41.99738],[-87.71082,41.99738],[-87.71059,41.99738],[-87.70984,41.99739],[-87.70932,41.99739],[-87.70931,41.99766],[-87.70931,41.99787],[-87.70935,41.9992],[-87.70934,42.001],[-87.70934,42.00153],[-87.70934,42.00272],[-87.70934,42.00302],[-87.70934,42.00326],[-87.70933,42.0041],[-87.70932,42.00466],[-87.70931,42.00496],[-87.7093,42.00522],[-87.70926,42.00662],[-87.70917,42.00999],[-87.70915,42.01059],[-87.70908,42.01125],[-87.70906,42.01148],[-87.70902,42.01187],[-87.70902,42.01215],[-87.70902,42.01235],[-87.70902,42.01301],[-87.70899,42.0134],[-87.70875,42.01442],[-87.70872,42.01552],[-87.70871,42.01645],[-87.7087,42.0169],[-87.70868,42.01729],[-87.70866,42.01822],[-87.70865,42.01868],[-87.70863,42.01915],[-87.70808,42.01916],[-87.70771,42.01917],[-87.7073,42.01918],[-87.70667,42.0192],[-87.70593,42.01921],[-87.70502,42.01923],[-87.70429,42.01924],[-87.70195,42.01928],[-87.70059,42.01931],[-87.70023,42.01932],[-87.70017,42.01932],[-87.69958,42.01933],[-87.69896,42.01934],[-87.69724,42.01937],[-87.69646,42.01939],[-87.69487,42.01943],[-87.69457,42.01944],[-87.69434,42.01944],[-87.69412,42.01945],[-87.6939,42.01945],[-87.69368,42.01946],[-87.69332,42.01947],[-87.69302,42.01948],[-87.69272,42.01948],[-87.69201,42.0195],[-87.69135,42.01951],[-87.69081,42.01952],[-87.69017,42.01953],[-87.68988,42.01953],[-87.68961,42.01953],[-87.68924,42.01954],[-87.68896,42.01954],[-87.68862,42.01954],[-87.68841,42.01954],[-87.68817,42.01953],[-87.68775,42.01952],[-87.68651,42.01951],[-87.68545,42.01949],[-87.68506,42.01949],[-87.68464,42.01949],[-87.68415,42.01948],[-87.68389,42.01948],[-87.68344,42.01947],[-87.68293,42.01946],[-87.6828,42.01946],[-87.68233,42.01946],[-87.68164,42.01945],[-87.68099,42.01945],[-87.68081,42.01945],[-87.68043,42.01945],[-87.68005,42.01944],[-87.67979,42.01944],[-87.67922,42.01943],[-87.67904,42.01943],[-87.67872,42.01943],[-87.67799,42.01942],[-87.67762,42.01942],[-87.67712,42.01942],[-87.67702,42.01942],[-87.67685,42.01942],[-87.67668,42.01942],[-87.6763,42.01941],[-87.67582,42.0194],[-87.6751,42.01939],[-87.67462,42.01939],[-87.67377,42.01938],[-87.67352,42.01938],[-87.67415,42.01997],[-87.6743,42.0201],[-87.67452,42.0203],[-87.67563,42.02125],[-87.67598,42.02148],[-87.6767,42.02208],[-87.67679,42.02215],[-87.67704,42.02236],[-87.67731,42.0228],[-87.67732,42.02296],[-87.67718,42.02295],[-87.67599,42.02295],[-87.6744,42.02295],[-87.66539,42.02294],[-87.66523,42.02294],[-87.66505,42.02295],[-87.66467,42.02225],[-87.6646,42.02207],[-87.66438,42.02153],[-87.66399,42.02136],[-87.66373,42.02039],[-87.66394,42.02016],[-87.66369,42.01928],[-87.66339,42.01825],[-87.66313,42.01738],[-87.66315,42.01717],[-87.66273,42.01654],[-87.6627,42.01625],[-87.6627,42.01606],[-87.66235,42.01569],[-87.6619,42.01494],[-87.66206,42.0146],[-87.66175,42.01408],[-87.66122,42.01299],[-87.66118,42.01288],[-87.66112,42.01279],[-87.66092,42.01278],[-87.66092,42.01273],[-87.66117,42.01273],[-87.66095,42.01224],[-87.66078,42.01229],[-87.66075,42.01223],[-87.66093,42.01218],[-87.66014,42.01139],[-87.65895,42.01042],[-87.65833,42.01007],[-87.65872,42.00981],[-87.65869,42.00972],[-87.65819,42.00935],[-87.6564,42.00708],[-87.65575,42.0065],[-87.65516,42.00694],[-87.65509,42.00691],[-87.65503,42.00689],[-87.65582,42.00627],[-87.65701,42.00624],[-87.65706,42.00603],[-87.65717,42.0056],[-87.65718,42.00501],[-87.65718,42.00447],[-87.65675,42.00275],[-87.65659,42.00223],[-87.65654,42.00211],[-87.65621,42.00161],[-87.65594,42.00103],[-87.65598,42.00077],[-87.65579,42.00003],[-87.65575,41.99991],[-87.65542,41.99927],[-87.65532,41.99907],[-87.65524,41.99898],[-87.65493,41.99856],[-87.65498,41.99828],[-87.65509,41.99823],[-87.6548,41.9982],[-87.65464,41.99814],[-87.65461,41.99758],[-87.65466,41.99726],[-87.65448,41.99709],[-87.65436,41.9965],[-87.65439,41.99628],[-87.65466,41.99603],[-87.65469,41.9959],[-87.65474,41.99571],[-87.6548,41.99542],[-87.65475,41.99536],[-87.65465,41.99536],[-87.65463,41.99529],[-87.65471,41.99516],[-87.65469,41.99471],[-87.65468,41.99466],[-87.65466,41.99457],[-87.65445,41.99454],[-87.65437,41.99405],[-87.65438,41.99391],[-87.65446,41.99363],[-87.65455,41.99325],[-87.65453,41.99303],[-87.65412,41.99303],[-87.65413,41.99279],[-87.65414,41.99266],[-87.65413,41.9925],[-87.6542,41.99232],[-87.65431,41.99199],[-87.65435,41.99152],[-87.65443,41.991],[-87.65424,41.99021],[-87.65482,41.99022],[-87.65491,41.99005],[-87.65485,41.98959],[-87.65463,41.98953],[-87.65419,41.9895],[-87.65423,41.98888],[-87.65405,41.98888],[-87.6533,41.98882],[-87.65214,41.9876],[-87.65124,41.9867],[-87.65054,41.98609],[-87.64995,41.98587],[-87.64934,41.98649],[-87.64927,41.9864],[-87.64979,41.98531],[-87.64994,41.98498],[-87.65022,41.9844],[-87.65052,41.98341],[-87.65058,41.98243],[-87.65058,41.98158],[-87.65054,41.981],[-87.65038,41.98064],[-87.65002,41.98025],[-87.6497,41.97978],[-87.64864,41.97867],[-87.64803,41.97809],[-87.64781,41.97786],[-87.64706,41.97771],[-87.64697,41.97766],[-87.6469,41.97761],[-87.64674,41.97751],[-87.64612,41.97791],[-87.64603,41.97783],[-87.64663,41.97742],[-87.64645,41.97711],[-87.64638,41.97676],[-87.64633,41.97437],[-87.64618,41.97307],[-87.64578,41.97215],[-87.64529,41.9713],[-87.6443,41.96997],[-87.64329,41.96897],[-87.64302,41.96869],[-87.64202,41.96798],[-87.64157,41.96766],[-87.64023,41.9668],[-87.63896,41.96619],[-87.63821,41.96598],[-87.6367,41.96563],[-87.63536,41.9654],[-87.63411,41.96529],[-87.63277,41.96529],[-87.63209,41.96523],[-87.632,41.96646],[-87.63153,41.96784],[-87.63185,41.96801],[-87.63208,41.96887],[-87.63116,41.96893],[-87.63084,41.96864],[-87.63087,41.96822],[-87.63143,41.96728],[-87.63176,41.96635],[-87.63188,41.96471],[-87.63165,41.9641],[-87.631,41.96355],[-87.63084,41.96311],[-87.63095,41.96283],[-87.63122,41.96254],[-87.63171,41.96231],[-87.63266,41.96196],[-87.63347,41.96161],[-87.63437,41.96123],[-87.63553,41.96005],[-87.63609,41.95967],[-87.63695,41.95938],[-87.63789,41.95927],[-87.63885,41.95935],[-87.63942,41.9595],[-87.63997,41.95961],[-87.64014,41.95948],[-87.64025,41.95919],[-87.64038,41.95919],[-87.64024,41.95973],[-87.64057,41.95983],[-87.64091,41.96007],[-87.6416,41.96036],[-87.64165,41.95878],[-87.64151,41.95756],[-87.64142,41.95621],[-87.64099,41.95473],[-87.6397,41.95182],[-87.63863,41.94937],[-87.63805,41.94831],[-87.63762,41.9475],[-87.63678,41.94644],[-87.63562,41.94501],[-87.63472,41.94414],[-87.63405,41.94353],[-87.63344,41.94301],[-87.63297,41.94255],[-87.63306,41.94227],[-87.63345,41.94217],[-87.63393,41.94157],[-87.63389,41.9415],[-87.63385,41.94138],[-87.63384,41.94122],[-87.63386,41.94081],[-87.63386,41.94052],[-87.63374,41.94006],[-87.6336,41.93952],[-87.63332,41.93883],[-87.63313,41.93837],[-87.63285,41.93798],[-87.63255,41.93763],[-87.63237,41.9374],[-87.63221,41.93712],[-87.63212,41.93689],[-87.63201,41.93657],[-87.63197,41.93629],[-87.63188,41.93601],[-87.63168,41.93565],[-87.63138,41.93517],[-87.63093,41.93462],[-87.63073,41.93439],[-87.63035,41.93392],[-87.63022,41.93369],[-87.63016,41.9336],[-87.63014,41.93342],[-87.63018,41.93321],[-87.63039,41.93299],[-87.63069,41.93288],[-87.63069,41.93258],[-87.63065,41.93255],[-87.63067,41.93252],[-87.63071,41.93251],[-87.63076,41.93256],[-87.63078,41.93302],[-87.63092,41.93298],[-87.63107,41.93297],[-87.63137,41.93297],[-87.63138,41.93272],[-87.63139,41.93266],[-87.63154,41.93258],[-87.63174,41.93257],[-87.6319,41.93256],[-87.63209,41.93256],[-87.63221,41.93256],[-87.63234,41.93256],[-87.63234,41.9325],[-87.63235,41.93244],[-87.63221,41.93244],[-87.63209,41.93244],[-87.63191,41.93244],[-87.63174,41.93245],[-87.6316,41.93246],[-87.63132,41.93244],[-87.63116,41.93259],[-87.63103,41.93259],[-87.6311,41.9325],[-87.63118,41.93242],[-87.63109,41.93238],[-87.63076,41.9322],[-87.63068,41.93194],[-87.63092,41.93028],[-87.63092,41.9297],[-87.63087,41.92924],[-87.63073,41.92878],[-87.6305,41.92828],[-87.63035,41.92801],[-87.63013,41.9277],[-87.62977,41.92734],[-87.62952,41.92704],[-87.62934,41.92675],[-87.62913,41.92634],[-87.62898,41.92594],[-87.62889,41.92567],[-87.62885,41.92536],[-87.62886,41.92512],[-87.62893,41.92486],[-87.62903,41.92468],[-87.62932,41.9245],[-87.6295,41.92432],[-87.62961,41.92415],[-87.62944,41.92387],[-87.62883,41.92302],[-87.6288,41.92293],[-87.62941,41.92253],[-87.62936,41.92212],[-87.62924,41.92181],[-87.62886,41.92128],[-87.62866,41.92113],[-87.6286,41.92104],[-87.62909,41.92078],[-87.62869,41.92015],[-87.62816,41.9194],[-87.62851,41.91924],[-87.62857,41.91917],[-87.62857,41.91905],[-87.62762,41.91797],[-87.62761,41.91788],[-87.62781,41.91776],[-87.62782,41.91748],[-87.62775,41.91733],[-87.62718,41.91684],[-87.6268,41.91643],[-87.62689,41.91629],[-87.62686,41.9162],[-87.6255,41.9151],[-87.62468,41.91457],[-87.62375,41.91408],[-87.62277,41.9137],[-87.62207,41.9136],[-87.62155,41.91368],[-87.62103,41.91382],[-87.62049,41.91415],[-87.62031,41.91438],[-87.62047,41.91475],[-87.62101,41.9147],[-87.62107,41.9148],[-87.62054,41.91485],[-87.62033,41.91481],[-87.62019,41.91467],[-87.62013,41.91455],[-87.62012,41.91395],[-87.62023,41.91373],[-87.62054,41.91342],[-87.62091,41.91313],[-87.6212,41.91304],[-87.62216,41.91289],[-87.62282,41.91275],[-87.62328,41.91252],[-87.62454,41.91153],[-87.62474,41.91127],[-87.62477,41.91075],[-87.62487,41.91062],[-87.62518,41.9102],[-87.62529,41.90982],[-87.62531,41.90976],[-87.62527,41.90954],[-87.62518,41.909],[-87.62458,41.90695],[-87.6239,41.90493],[-87.62368,41.90432],[-87.62353,41.90418],[-87.62257,41.90351],[-87.62187,41.90259],[-87.62173,41.90205],[-87.62071,41.90167],[-87.61984,41.90152],[-87.61928,41.90114],[-87.61639,41.89692],[-87.61592,41.89616],[-87.61478,41.89451],[-87.61413,41.89355],[-87.61406,41.89345],[-87.61397,41.8933],[-87.61385,41.89313],[-87.61261,41.89316],[-87.61206,41.89345],[-87.61189,41.89373],[-87.61135,41.8946],[-87.61031,41.89626],[-87.60916,41.89628],[-87.60803,41.89632],[-87.608,41.89626],[-87.60695,41.89627],[-87.60684,41.89641],[-87.60591,41.89644],[-87.60576,41.8963],[-87.60529,41.8963],[-87.60521,41.89636],[-87.6024,41.89638],[-87.60234,41.89395],[-87.6024,41.89395],[-87.6024,41.89334],[-87.6051,41.89325],[-87.60988,41.89316],[-87.60982,41.89222],[-87.60061,41.89243],[-87.60059,41.89223],[-87.59862,41.89224],[-87.59862,41.89148],[-87.60055,41.89141],[-87.60056,41.89113],[-87.60952,41.89103],[-87.60947,41.88938],[-87.60778,41.88933],[-87.60775,41.88937],[-87.60771,41.88938],[-87.60766,41.88936],[-87.60762,41.88933],[-87.6076,41.88929],[-87.6076,41.88925],[-87.60762,41.88922],[-87.60763,41.8892],[-87.60767,41.88919],[-87.60766,41.88864],[-87.60758,41.88864],[-87.60754,41.88863],[-87.60674,41.88864],[-87.60543,41.88867],[-87.60541,41.8887],[-87.60519,41.8887],[-87.60514,41.88867],[-87.60499,41.88867],[-87.60487,41.88867],[-87.60475,41.88867],[-87.60469,41.88865],[-87.60469,41.88859],[-87.60471,41.88855],[-87.60475,41.88853],[-87.60492,41.88852],[-87.60784,41.88847],[-87.60786,41.88925],[-87.60956,41.88924],[-87.61136,41.88926],[-87.61153,41.89],[-87.61154,41.89061],[-87.61355,41.89057],[-87.61374,41.89055],[-87.61389,41.89054],[-87.61405,41.89053],[-87.61421,41.89053],[-87.61486,41.89048],[-87.61601,41.89047],[-87.61601,41.89041],[-87.61652,41.89041],[-87.61652,41.89049],[-87.61675,41.89049],[-87.61674,41.89044],[-87.61705,41.89044],[-87.61705,41.89051],[-87.61733,41.89051],[-87.61733,41.8902],[-87.61421,41.89025],[-87.61406,41.89025],[-87.61392,41.89025],[-87.61376,41.89027],[-87.61366,41.89027],[-87.61267,41.89023],[-87.61255,41.88907],[-87.61261,41.88899],[-87.61305,41.88892],[-87.6136,41.88887],[-87.61382,41.88872],[-87.61378,41.88811],[-87.61357,41.88794],[-87.61272,41.88795],[-87.61274,41.88734],[-87.61263,41.88734],[-87.61262,41.88728],[-87.61228,41.88729],[-87.61226,41.88725],[-87.61005,41.88726],[-87.61005,41.88735],[-87.61039,41.88736],[-87.61035,41.88783],[-87.61117,41.88784],[-87.61117,41.88796],[-87.61004,41.88797],[-87.61004,41.88803],[-87.61,41.88806],[-87.60987,41.88808],[-87.6078,41.8883],[-87.60259,41.88838],[-87.60249,41.88838],[-87.60246,41.88836],[-87.60245,41.88833],[-87.60246,41.8883],[-87.60247,41.88827],[-87.6025,41.88826],[-87.60264,41.88825],[-87.60379,41.88823],[-87.60505,41.8882],[-87.60515,41.88819],[-87.60519,41.88815],[-87.60544,41.88815],[-87.60544,41.88819],[-87.60659,41.88818],[-87.60743,41.88817],[-87.60743,41.88815],[-87.60755,41.88816],[-87.60759,41.88811],[-87.60783,41.88811],[-87.60783,41.88816],[-87.6092,41.88801],[-87.60945,41.88798],[-87.60952,41.88795],[-87.60964,41.88715],[-87.60991,41.88713],[-87.60991,41.8871],[-87.60993,41.88708],[-87.60996,41.88708],[-87.61012,41.87686],[-87.61023,41.87686],[-87.61013,41.88404],[-87.61032,41.88404],[-87.61032,41.88411],[-87.61016,41.88411],[-87.61016,41.88477],[-87.61014,41.88654],[-87.61011,41.88695],[-87.6101,41.88714],[-87.61019,41.88714],[-87.61273,41.88712],[-87.61278,41.88641],[-87.61276,41.88429],[-87.61275,41.88348],[-87.6131,41.88307],[-87.61345,41.88289],[-87.61409,41.88263],[-87.61496,41.88248],[-87.6158,41.88243],[-87.61614,41.88229],[-87.61644,41.88202],[-87.61644,41.88141],[-87.61579,41.88139],[-87.61576,41.88056],[-87.61647,41.88055],[-87.61644,41.87982],[-87.61635,41.87981],[-87.61626,41.877],[-87.61615,41.87503],[-87.61618,41.86897],[-87.61554,41.86855],[-87.61531,41.8683],[-87.61474,41.86832],[-87.61439,41.86844],[-87.61413,41.86849],[-87.61358,41.86851],[-87.6133,41.86849],[-87.61297,41.86841],[-87.6126,41.8682],[-87.61239,41.86794],[-87.6123,41.8677],[-87.61232,41.86744],[-87.61238,41.86723],[-87.61271,41.86694],[-87.61267,41.86673],[-87.60786,41.86679],[-87.60756,41.86702],[-87.60692,41.86722],[-87.6064,41.8672],[-87.60584,41.867],[-87.60555,41.8665],[-87.60564,41.86604],[-87.60606,41.86562],[-87.60602,41.86476],[-87.60622,41.86478],[-87.60634,41.86499],[-87.60669,41.86507],[-87.60724,41.86464],[-87.60728,41.86452],[-87.60739,41.86423],[-87.60735,41.86373],[-87.60706,41.86278],[-87.60687,41.8624],[-87.60652,41.86203],[-87.60611,41.86195],[-87.606,41.86009],[-87.60709,41.85997],[-87.60654,41.85333],[-87.60899,41.85316],[-87.60957,41.85328],[-87.60982,41.8535],[-87.60997,41.85382],[-87.61,41.85417],[-87.60956,41.85619],[-87.60938,41.85673],[-87.60946,41.85702],[-87.60982,41.85736],[-87.61003,41.85768],[-87.61003,41.85811],[-87.60994,41.85851],[-87.60999,41.85875],[-87.61043,41.85915],[-87.61054,41.85933],[-87.61052,41.86002],[-87.6107,41.8602],[-87.61071,41.86067],[-87.61049,41.86095],[-87.61043,41.86139],[-87.61002,41.86209],[-87.60976,41.86304],[-87.60983,41.86403],[-87.61006,41.86461],[-87.61014,41.86479],[-87.61044,41.86525],[-87.61051,41.86585],[-87.61266,41.86583],[-87.61269,41.86541],[-87.61287,41.86516],[-87.61308,41.86441],[-87.61339,41.86354],[-87.6134,41.86287],[-87.6131,41.86206],[-87.61255,41.86131],[-87.61249,41.86075],[-87.61218,41.86063],[-87.61218,41.86034],[-87.61223,41.86008],[-87.6124,41.85992],[-87.61221,41.85945],[-87.61218,41.85873],[-87.61217,41.85848],[-87.61252,41.85846],[-87.61278,41.85809],[-87.6131,41.8575],[-87.61297,41.85689],[-87.61285,41.85645],[-87.61244,41.85588],[-87.61118,41.85492],[-87.61095,41.85443],[-87.61064,41.85306],[-87.6104,41.8526],[-87.6094,41.85136],[-87.6091,41.85089],[-87.60904,41.85051],[-87.60936,41.849],[-87.60939,41.84822],[-87.60931,41.84752],[-87.60856,41.84668],[-87.6083,41.84636],[-87.60852,41.84563],[-87.60902,41.8443],[-87.60876,41.84371],[-87.60851,41.84293],[-87.60812,41.8426],[-87.60792,41.84232],[-87.60792,41.84136],[-87.60751,41.84061],[-87.60739,41.84059],[-87.60714,41.84064],[-87.60704,41.84069],[-87.60669,41.84063],[-87.6067,41.84046],[-87.60724,41.84051],[-87.60709,41.8401],[-87.60661,41.8397],[-87.60561,41.83926],[-87.60503,41.83904],[-87.60485,41.83897],[-87.60452,41.83934],[-87.60433,41.83987],[-87.60411,41.83984],[-87.60405,41.83955],[-87.60459,41.83881],[-87.60599,41.83853],[-87.60609,41.83798],[-87.60605,41.83684],[-87.60561,41.83619],[-87.6052,41.83558],[-87.60456,41.83503],[-87.60454,41.83478],[-87.60483,41.83461],[-87.60489,41.83431],[-87.60481,41.83376],[-87.60446,41.83324],[-87.60408,41.833],[-87.60323,41.8329],[-87.60283,41.83234],[-87.60259,41.8313],[-87.60251,41.83095],[-87.60227,41.8306],[-87.60102,41.82927],[-87.60036,41.82848],[-87.5998,41.82778],[-87.59812,41.82693],[-87.59766,41.8263],[-87.59743,41.82595],[-87.59762,41.82426],[-87.59748,41.82375],[-87.59713,41.8232],[-87.59686,41.82244],[-87.59619,41.82213],[-87.59507,41.82159],[-87.59467,41.82142],[-87.59397,41.82163],[-87.59474,41.82],[-87.59416,41.81934],[-87.59371,41.8191],[-87.59301,41.81852],[-87.59255,41.81835],[-87.59208,41.81759],[-87.59222,41.81727],[-87.59232,41.81696],[-87.592,41.81648],[-87.59171,41.81622],[-87.59119,41.81555],[-87.59087,41.8148],[-87.59055,41.81456],[-87.59026,41.81363],[-87.58977,41.81322],[-87.58945,41.81305],[-87.58907,41.81268],[-87.58868,41.81219],[-87.58829,41.81207],[-87.58766,41.81203],[-87.58714,41.81153],[-87.58697,41.81118],[-87.58697,41.81034],[-87.58682,41.80991],[-87.58652,41.80951],[-87.58615,41.8089],[-87.58521,41.80725],[-87.5845,41.80664],[-87.58412,41.8065],[-87.58299,41.8056],[-87.58204,41.80494],[-87.5815,41.80465],[-87.58108,41.8042],[-87.58051,41.80417],[-87.58002,41.80388],[-87.57993,41.80359],[-87.58015,41.80324],[-87.58045,41.80257],[-87.58047,41.80172],[-87.58046,41.80067],[-87.58035,41.80013],[-87.58003,41.79899],[-87.5797,41.79831],[-87.57919,41.79768],[-87.57848,41.79715],[-87.57808,41.79697],[-87.57761,41.79683],[-87.57661,41.79698],[-87.57603,41.79698],[-87.57524,41.79654],[-87.57516,41.79613],[-87.57536,41.79573],[-87.57542,41.79544],[-87.57587,41.79527],[-87.5761,41.79509],[-87.57684,41.79507],[-87.57759,41.79489],[-87.57845,41.7946],[-87.57898,41.79413],[-87.57928,41.79361],[-87.57951,41.79344],[-87.57952,41.79294],[-87.57944,41.79249],[-87.57939,41.79224],[-87.57895,41.79129],[-87.57841,41.79033],[-87.5779,41.78966],[-87.57657,41.78862],[-87.57668,41.78854],[-87.57715,41.78842],[-87.57715,41.78839],[-87.57769,41.78837],[-87.57782,41.78836],[-87.57794,41.78835],[-87.57791,41.78818],[-87.57779,41.78818],[-87.57774,41.78818],[-87.57767,41.78818],[-87.57739,41.78819],[-87.57732,41.78825],[-87.57726,41.78822],[-87.57716,41.78816],[-87.57724,41.78812],[-87.57733,41.78729],[-87.57727,41.78664],[-87.57711,41.78616],[-87.57693,41.78572],[-87.57629,41.78421],[-87.576,41.7838],[-87.57539,41.78334],[-87.57434,41.78273],[-87.5732,41.78221],[-87.57162,41.78166],[-87.56956,41.7814],[-87.56952,41.78123],[-87.57146,41.78069],[-87.57221,41.78048],[-87.57307,41.78024],[-87.57301,41.77989],[-87.57298,41.77924],[-87.5723,41.77928],[-87.57196,41.77896],[-87.57144,41.77835],[-87.57068,41.7778],[-87.57011,41.77734],[-87.56943,41.77707],[-87.56863,41.77644],[-87.56802,41.77583],[-87.56677,41.77409],[-87.56628,41.77388],[-87.56606,41.77362],[-87.56612,41.77345],[-87.56494,41.77271],[-87.56435,41.77222],[-87.56407,41.77208],[-87.56349,41.77211],[-87.56329,41.77196],[-87.56335,41.77132],[-87.56335,41.77086],[-87.56271,41.76968],[-87.5623,41.76917],[-87.56172,41.76891],[-87.56071,41.76854],[-87.56004,41.76855],[-87.55959,41.76932],[-87.5594,41.76927],[-87.55942,41.7673],[-87.55934,41.76663],[-87.56052,41.76611],[-87.5603,41.76527],[-87.55995,41.76495],[-87.55971,41.76498],[-87.55949,41.76472],[-87.55943,41.76437],[-87.55879,41.76399],[-87.55853,41.76401],[-87.55829,41.76396],[-87.55763,41.76323],[-87.55736,41.76289],[-87.55704,41.76263],[-87.55673,41.7625],[-87.55644,41.76212],[-87.55504,41.76178],[-87.55453,41.76195],[-87.55431,41.76137],[-87.55374,41.76096],[-87.55032,41.75949],[-87.54932,41.75912],[-87.54832,41.7589],[-87.54707,41.75894],[-87.54634,41.75911],[-87.54501,41.7597],[-87.5446,41.75966],[-87.54408,41.75983],[-87.54366,41.7601],[-87.54254,41.75906],[-87.54259,41.75882],[-87.5415,41.75783],[-87.54114,41.75781],[-87.54047,41.75719],[-87.54382,41.75516],[-87.54408,41.75468],[-87.54414,41.75444],[-87.54413,41.75372],[-87.54398,41.7536],[-87.54385,41.7531],[-87.54324,41.7523],[-87.54301,41.75218],[-87.54276,41.75198],[-87.54173,41.75192],[-87.54034,41.75185],[-87.54016,41.7518],[-87.54002,41.75169],[-87.5394,41.75146],[-87.53909,41.75143],[-87.53346,41.74931],[-87.53227,41.74879],[-87.53075,41.74806],[-87.52998,41.74213],[-87.52992,41.7419],[-87.52982,41.74168],[-87.52965,41.74147],[-87.52936,41.74139],[-87.52956,41.7413],[-87.53004,41.74129],[-87.53027,41.74126],[-87.5305,41.7411],[-87.53955,41.74097],[-87.53955,41.74048],[-87.52979,41.74057],[-87.5289,41.73471],[-87.52876,41.73386],[-87.52946,41.73238],[-87.52838,41.73055],[-87.52768,41.72928],[-87.52693,41.72794],[-87.52626,41.72685],[-87.52455,41.7238],[-87.5246,41.72289],[-87.52458,41.72145],[-87.52455,41.71849],[-87.52455,41.71742],[-87.52496,41.71738],[-87.52574,41.71736],[-87.52748,41.71674],[-87.52806,41.71635],[-87.52829,41.71602],[-87.52834,41.71567],[-87.52812,41.71497],[-87.52788,41.71432],[-87.52748,41.71359],[-87.52678,41.71294],[-87.52631,41.71266],[-87.52536,41.71336],[-87.52513,41.71332],[-87.52601,41.71261],[-87.52647,41.71226],[-87.52659,41.71217],[-87.52719,41.71173],[-87.52777,41.71127],[-87.52815,41.71098],[-87.52632,41.70979],[-87.52611,41.70982],[-87.52586,41.71048],[-87.5258,41.71045],[-87.52557,41.71039],[-87.52534,41.71015],[-87.52509,41.71002],[-87.5249,41.70991],[-87.52449,41.70961],[-87.52449,41.70927],[-87.52468,41.70934],[-87.52487,41.70941],[-87.52487,41.70947],[-87.52509,41.70975],[-87.52524,41.70973],[-87.52554,41.70996],[-87.5262,41.70955],[-87.52577,41.70916],[-87.52532,41.70953],[-87.52516,41.70943],[-87.52567,41.70909],[-87.5254,41.70883],[-87.52481,41.70921],[-87.52475,41.7091],[-87.52492,41.70892],[-87.52479,41.70867],[-87.52449,41.70851],[-87.52451,41.70789],[-87.5245,41.70757],[-87.5245,41.70742],[-87.52451,41.70674],[-87.52454,41.70417],[-87.52452,41.70398],[-87.5245,41.70318],[-87.5245,41.70307],[-87.5245,41.70302],[-87.52444,41.70267],[-87.5245,41.7026],[-87.52451,41.70224],[-87.52451,41.70207],[-87.52452,41.70088],[-87.52453,41.69904],[-87.52459,41.69725],[-87.52461,41.69541],[-87.52462,41.69362],[-87.52464,41.6918],[-87.52473,41.67892],[-87.52471,41.67683],[-87.52469,41.67351],[-87.52472,41.6712],[-87.52484,41.66176],[-87.52486,41.65672],[-87.5251,41.65229],[-87.52526,41.65091],[-87.52526,41.65042],[-87.52532,41.64661],[-87.52532,41.64595],[-87.52527,41.64464],[-87.52536,41.64464],[-87.52554,41.64464],[-87.52578,41.64464],[-87.52695,41.64465],[-87.52963,41.64465],[-87.53797,41.64467],[-87.53874,41.64467],[-87.53997,41.64467],[-87.54081,41.64468],[-87.54104,41.64468],[-87.54164,41.64468],[-87.54207,41.64468],[-87.54235,41.64468],[-87.54285,41.64468],[-87.55232,41.64468],[-87.55284,41.64468],[-87.55869,41.64473],[-87.55935,41.64465],[-87.55995,41.64465],[-87.56056,41.64465],[-87.56241,41.64465],[-87.56425,41.64465],[-87.57839,41.64462],[-87.57857,41.64462],[-87.57967,41.64461],[-87.58398,41.64461],[-87.58656,41.64461],[-87.58667,41.64461],[-87.59782,41.64459],[-87.60805,41.64461],[-87.60864,41.64461],[-87.60922,41.64461],[-87.60985,41.6446],[-87.61061,41.64459],[-87.61106,41.64459],[-87.61122,41.64459],[-87.61194,41.64459],[-87.61219,41.64459],[-87.61228,41.64459],[-87.61277,41.6446],[-87.61363,41.64461],[-87.61383,41.64461],[-87.61442,41.64462],[-87.61463,41.64462],[-87.61474,41.64462],[-87.61492,41.64462],[-87.61517,41.64461],[-87.61584,41.64461],[-87.61662,41.6446],[-87.61682,41.6446],[-87.61709,41.6446],[-87.61718,41.6446],[-87.61724,41.6446],[-87.61724,41.64466],[-87.61726,41.64563],[-87.61726,41.64575],[-87.61722,41.64672],[-87.61722,41.64682],[-87.61722,41.64703],[-87.61723,41.64748],[-87.61723,41.64791],[-87.61723,41.64894],[-87.61723,41.64904],[-87.61723,41.64945],[-87.61723,41.64983],[-87.61723,41.65],[-87.61723,41.65033],[-87.62032,41.65039],[-87.62,41.65099],[-87.61958,41.65181],[-87.61916,41.653],[-87.61891,41.65324],[-87.61867,41.65373],[-87.61755,41.6591],[-87.61778,41.65909],[-87.61794,41.65909],[-87.61809,41.65909],[-87.61826,41.65908],[-87.6184,41.65909],[-87.61848,41.65912],[-87.61877,41.65924],[-87.61964,41.65924],[-87.61938,41.65985],[-87.61949,41.66043],[-87.61977,41.66095],[-87.62018,41.66148],[-87.62086,41.66191],[-87.6219,41.66197],[-87.62206,41.662],[-87.62289,41.66188],[-87.62399,41.66165],[-87.62502,41.66116],[-87.6264,41.66043],[-87.62978,41.65823],[-87.63055,41.65782],[-87.63118,41.65759],[-87.63214,41.65723],[-87.63403,41.65695],[-87.63644,41.65701],[-87.63899,41.65729],[-87.64073,41.65744],[-87.64121,41.65742],[-87.64529,41.6573],[-87.64691,41.65712],[-87.64693,41.65779],[-87.64691,41.65833],[-87.64692,41.65878],[-87.64695,41.66072],[-87.64697,41.66122],[-87.64703,41.66317],[-87.64629,41.66318],[-87.64568,41.66318],[-87.64507,41.66319],[-87.64384,41.66321],[-87.64263,41.66323],[-87.6415,41.66324],[-87.64152,41.66383],[-87.64153,41.66407],[-87.64155,41.66506],[-87.64157,41.66553],[-87.64158,41.66573],[-87.64162,41.6669],[-87.64163,41.6672],[-87.64168,41.6687],[-87.64169,41.66901],[-87.64174,41.67052],[-87.64227,41.67052],[-87.64286,41.67052],[-87.64348,41.67052],[-87.6441,41.67051],[-87.64531,41.67049],[-87.64653,41.67048],[-87.64774,41.67045],[-87.64836,41.67044],[-87.64897,41.67043],[-87.65019,41.67041],[-87.6508,41.67039],[-87.65141,41.67037],[-87.65199,41.67036],[-87.65263,41.67035],[-87.65324,41.67034],[-87.65384,41.67034],[-87.65438,41.67032],[-87.65506,41.67033],[-87.65626,41.67031],[-87.65748,41.6703],[-87.6587,41.67032],[-87.6594,41.67031],[-87.6598,41.67008],[-87.66115,41.67013],[-87.66117,41.67032],[-87.66119,41.6709],[-87.6612,41.67144],[-87.66121,41.67175],[-87.66122,41.67207],[-87.66129,41.67387],[-87.66133,41.67531],[-87.66134,41.67571],[-87.66135,41.6765],[-87.66136,41.67705],[-87.66136,41.67718],[-87.66137,41.67754],[-87.66174,41.67753],[-87.66213,41.67752],[-87.66247,41.67752],[-87.66328,41.6775],[-87.66381,41.67749],[-87.66438,41.67748],[-87.66501,41.67747],[-87.66563,41.67746],[-87.6662,41.67745],[-87.66651,41.67744],[-87.66666,41.67744],[-87.66785,41.67741],[-87.66848,41.6774],[-87.67053,41.67737],[-87.67097,41.67736],[-87.67141,41.67736],[-87.67189,41.67735],[-87.67237,41.67734],[-87.67323,41.67732],[-87.67356,41.67731],[-87.67397,41.6773],[-87.67506,41.67729],[-87.67519,41.67729],[-87.67689,41.67725],[-87.67875,41.67722],[-87.67891,41.67722],[-87.6798,41.67723],[-87.67999,41.67723],[-87.6807,41.67725],[-87.68127,41.67729],[-87.68133,41.67729],[-87.68195,41.6773],[-87.68228,41.67729],[-87.68315,41.67725],[-87.68329,41.67725],[-87.68336,41.67725],[-87.68379,41.67724],[-87.68436,41.67724],[-87.68497,41.67723],[-87.68559,41.67721],[-87.68626,41.67721],[-87.68612,41.67749],[-87.68573,41.67849],[-87.68561,41.67917],[-87.68577,41.68448],[-87.68582,41.68448],[-87.68601,41.68448],[-87.6871,41.68447],[-87.68765,41.68446],[-87.68833,41.68445],[-87.68891,41.68444],[-87.68949,41.68443],[-87.69072,41.68442],[-87.69308,41.68439],[-87.69362,41.68438],[-87.69429,41.68437],[-87.6954,41.68436],[-87.69562,41.68436],[-87.6957,41.68611],[-87.69577,41.6881],[-87.69621,41.68797],[-87.69659,41.68796],[-87.69707,41.68796],[-87.69825,41.68794],[-87.69946,41.68791],[-87.69943,41.6874],[-87.69941,41.68654],[-87.6994,41.68615],[-87.70062,41.68614],[-87.7006,41.68561],[-87.70057,41.68487],[-87.70056,41.68465],[-87.70055,41.68427],[-87.70107,41.68427],[-87.70167,41.68426],[-87.70191,41.68426],[-87.70294,41.68424],[-87.70321,41.68424],[-87.70445,41.68422],[-87.70542,41.6842],[-87.70538,41.68349],[-87.70537,41.68328],[-87.70534,41.68259],[-87.70533,41.68235],[-87.7053,41.68204],[-87.70529,41.68144],[-87.70528,41.68081],[-87.70528,41.68059],[-87.70771,41.68057],[-87.70831,41.68056],[-87.70986,41.68052],[-87.71012,41.68046],[-87.71135,41.68043],[-87.71135,41.68098],[-87.71132,41.68135],[-87.71158,41.68134],[-87.71159,41.68182],[-87.71138,41.68185],[-87.71141,41.68228],[-87.71149,41.68317],[-87.71149,41.68411],[-87.71269,41.68409],[-87.71509,41.68405],[-87.71756,41.68401],[-87.72006,41.68398],[-87.72043,41.68397],[-87.72123,41.68396],[-87.72244,41.68394],[-87.72262,41.68394],[-87.72309,41.68393],[-87.72366,41.68391],[-87.72403,41.6839],[-87.72434,41.6839],[-87.72487,41.68389],[-87.72523,41.68388],[-87.72557,41.68388],[-87.72636,41.68387],[-87.72683,41.68386],[-87.72781,41.68385],[-87.72829,41.68384],[-87.72971,41.68381],[-87.73096,41.68379],[-87.73503,41.68374],[-87.73721,41.68369],[-87.73738,41.68369],[-87.73856,41.68366],[-87.73946,41.68364],[-87.73949,41.68459],[-87.73951,41.68516],[-87.73954,41.68604],[-87.73957,41.68668],[-87.73959,41.68719],[-87.7396,41.68737],[-87.73963,41.68802],[-87.73963,41.68814],[-87.73964,41.68836],[-87.73966,41.68879],[-87.73967,41.68914],[-87.73968,41.68935],[-87.73968,41.68945],[-87.73969,41.68963],[-87.7397,41.68987],[-87.73972,41.69029],[-87.73975,41.69092],[-87.73903,41.69094],[-87.73852,41.69096],[-87.73786,41.69097],[-87.73732,41.69097],[-87.73546,41.691],[-87.73489,41.69101],[-87.73429,41.69102],[-87.73306,41.69105],[-87.73244,41.69106],[-87.73181,41.69107],[-87.73121,41.69108],[-87.73062,41.69109],[-87.73003,41.69109],[-87.7293,41.69111],[-87.72701,41.69118],[-87.72645,41.6912],[-87.72579,41.6912],[-87.72513,41.69122],[-87.72459,41.69123],[-87.72359,41.69124],[-87.72119,41.69127],[-87.72084,41.69128],[-87.72032,41.69129],[-87.72034,41.69171],[-87.72041,41.69305],[-87.72047,41.69485],[-87.72052,41.69597],[-87.72053,41.69636],[-87.72054,41.69653],[-87.72061,41.69776],[-87.72062,41.69798],[-87.72064,41.69856],[-87.72066,41.69916],[-87.72067,41.69949],[-87.72069,41.70039],[-87.72072,41.70131],[-87.72076,41.70223],[-87.72079,41.7031],[-87.72082,41.70405],[-87.72082,41.7041],[-87.72086,41.70453],[-87.72088,41.70479],[-87.7209,41.70509],[-87.72091,41.70534],[-87.72093,41.70589],[-87.72093,41.70636],[-87.72093,41.70647],[-87.72096,41.70729],[-87.72097,41.70753],[-87.72097,41.70765],[-87.72099,41.70839],[-87.72103,41.70921],[-87.72104,41.70946],[-87.72104,41.70952],[-87.72105,41.70995],[-87.72107,41.71062],[-87.72108,41.71091],[-87.72108,41.71104],[-87.72109,41.71133],[-87.7211,41.71197],[-87.72111,41.71224],[-87.72111,41.71249],[-87.72112,41.7128],[-87.72112,41.71318],[-87.72019,41.71319],[-87.71989,41.71319],[-87.71978,41.71319],[-87.71864,41.71322],[-87.71808,41.71323],[-87.7179,41.71323],[-87.71741,41.71324],[-87.71722,41.71324],[-87.71655,41.71325],[-87.71634,41.71325],[-87.71623,41.71325],[-87.71532,41.71327],[-87.71513,41.71327],[-87.71502,41.71327],[-87.71441,41.71328],[-87.71379,41.71329],[-87.71337,41.71329],[-87.71256,41.7133],[-87.71135,41.71331],[-87.71133,41.71287],[-87.7113,41.71232],[-87.71126,41.7115],[-87.71126,41.71132],[-87.71125,41.71058],[-87.71123,41.70967],[-87.71123,41.70962],[-87.71122,41.7093],[-87.71121,41.70894],[-87.71118,41.70801],[-87.71117,41.70784],[-87.71112,41.70661],[-87.7111,41.70608],[-87.71063,41.70608],[-87.71035,41.70608],[-87.70992,41.70608],[-87.70968,41.70608],[-87.70924,41.70609],[-87.70875,41.7061],[-87.70866,41.7061],[-87.70823,41.7061],[-87.7078,41.70611],[-87.70745,41.70612],[-87.70653,41.70613],[-87.70622,41.70614],[-87.70502,41.70616],[-87.70446,41.70616],[-87.70377,41.70617],[-87.70341,41.70618],[-87.70313,41.70617],[-87.70252,41.70616],[-87.70187,41.70617],[-87.70132,41.70618],[-87.70134,41.70655],[-87.70138,41.70709],[-87.69843,41.70717],[-87.69728,41.70717],[-87.69646,41.70715],[-87.69613,41.70715],[-87.69397,41.70718],[-87.69207,41.70719],[-87.69151,41.7072],[-87.69155,41.7081],[-87.69158,41.70901],[-87.6916,41.70992],[-87.69164,41.71081],[-87.69168,41.71173],[-87.6917,41.71265],[-87.69173,41.71357],[-87.6911,41.71357],[-87.69045,41.71358],[-87.68923,41.71358],[-87.68801,41.7136],[-87.68677,41.71361],[-87.68662,41.71361],[-87.68599,41.71364],[-87.68586,41.71365],[-87.68433,41.71366],[-87.68312,41.71367],[-87.68254,41.71367],[-87.68233,41.71367],[-87.68184,41.71366],[-87.68185,41.71426],[-87.68186,41.71453],[-87.68186,41.71477],[-87.68187,41.71498],[-87.68187,41.71504],[-87.68188,41.71534],[-87.68189,41.71551],[-87.68193,41.71672],[-87.68195,41.71726],[-87.68196,41.71776],[-87.68196,41.71797],[-87.68196,41.71814],[-87.68197,41.71833],[-87.68199,41.7191],[-87.682,41.71955],[-87.68201,41.71987],[-87.68202,41.72005],[-87.68205,41.72089],[-87.68205,41.72094],[-87.68205,41.72099],[-87.68207,41.72147],[-87.68208,41.72181],[-87.68209,41.72199],[-87.6821,41.7222],[-87.68211,41.72247],[-87.68212,41.72276],[-87.68219,41.72291],[-87.68219,41.72305],[-87.6822,41.72323],[-87.6822,41.72331],[-87.68221,41.7236],[-87.68225,41.72422],[-87.68227,41.72527],[-87.6823,41.7259],[-87.68232,41.72641],[-87.68233,41.72674],[-87.68234,41.72706],[-87.68235,41.72732],[-87.68237,41.72825],[-87.68239,41.72875],[-87.68244,41.73005],[-87.68245,41.73035],[-87.68249,41.73144],[-87.6825,41.7319],[-87.6825,41.732],[-87.68251,41.73239],[-87.68254,41.73353],[-87.68254,41.73371],[-87.68256,41.73451],[-87.68257,41.73493],[-87.68257,41.73518],[-87.68258,41.73535],[-87.68258,41.73544],[-87.68253,41.73554],[-87.68333,41.73553],[-87.68391,41.73552],[-87.68444,41.7355],[-87.68568,41.73548],[-87.68671,41.73546],[-87.68719,41.73545],[-87.68736,41.73545],[-87.68739,41.73545],[-87.68748,41.73545],[-87.6877,41.73545],[-87.68824,41.73544],[-87.6889,41.73543],[-87.68965,41.73542],[-87.68992,41.73541],[-87.69111,41.73539],[-87.69174,41.73538],[-87.69225,41.73537],[-87.69235,41.73537],[-87.6929,41.73536],[-87.69315,41.73535],[-87.69359,41.73534],[-87.69463,41.73533],[-87.69482,41.73533],[-87.69604,41.7353],[-87.69713,41.73528],[-87.6973,41.73528],[-87.69854,41.73526],[-87.69981,41.73524],[-87.70076,41.73522],[-87.70104,41.73522],[-87.7013,41.73522],[-87.70153,41.73521],[-87.70177,41.73521],[-87.70214,41.7352],[-87.7027,41.73517],[-87.70343,41.73516],[-87.70408,41.73515],[-87.70417,41.73515],[-87.70456,41.73514],[-87.70527,41.73513],[-87.70655,41.7351],[-87.70723,41.73509],[-87.7078,41.73509],[-87.70834,41.73509],[-87.70944,41.73507],[-87.71167,41.73503],[-87.71183,41.73503],[-87.71197,41.73503],[-87.71226,41.73502],[-87.71317,41.73499],[-87.71381,41.73498],[-87.71413,41.73497],[-87.71456,41.73496],[-87.71556,41.73494],[-87.71604,41.73493],[-87.71647,41.73493],[-87.71656,41.73493],[-87.71665,41.73493],[-87.71696,41.73492],[-87.7178,41.73491],[-87.71898,41.73489],[-87.71941,41.73488],[-87.71961,41.73488],[-87.72,41.73487],[-87.72034,41.73486],[-87.72071,41.73486],[-87.72142,41.73483],[-87.72248,41.73483],[-87.72263,41.73483],[-87.72316,41.73482],[-87.72371,41.73481],[-87.72383,41.73481],[-87.72507,41.73478],[-87.72596,41.73477],[-87.72626,41.73477],[-87.72677,41.73476],[-87.7275,41.73475],[-87.72872,41.73473],[-87.72992,41.73471],[-87.73113,41.73469],[-87.73165,41.73468],[-87.73235,41.73467],[-87.73356,41.73465],[-87.73478,41.73463],[-87.73598,41.73461],[-87.73652,41.73459],[-87.7372,41.73459],[-87.7384,41.73457],[-87.73883,41.73456],[-87.7394,41.73456],[-87.73963,41.73456],[-87.73983,41.73456],[-87.73996,41.73456],[-87.74024,41.73455],[-87.74029,41.73455],[-87.74108,41.73453],[-87.74102,41.73484],[-87.74099,41.73509],[-87.74099,41.73515],[-87.74097,41.73552],[-87.74096,41.73571],[-87.74096,41.73586],[-87.74095,41.73605],[-87.74094,41.73634],[-87.74093,41.73668],[-87.74093,41.7368],[-87.74093,41.73694],[-87.74094,41.73724],[-87.74095,41.73778],[-87.74096,41.73818],[-87.74098,41.73864],[-87.741,41.73911],[-87.74101,41.73967],[-87.74102,41.73996],[-87.74104,41.74025],[-87.74104,41.74036],[-87.74106,41.74091],[-87.74107,41.74125],[-87.74109,41.74185],[-87.74112,41.74265],[-87.74115,41.74337],[-87.74115,41.74346],[-87.74115,41.74348],[-87.74116,41.74364],[-87.74118,41.7441],[-87.7412,41.74452],[-87.74121,41.74485],[-87.74124,41.7456],[-87.74125,41.74587],[-87.74127,41.74631],[-87.7413,41.7473],[-87.74131,41.74752],[-87.74131,41.74768],[-87.74131,41.74776],[-87.74133,41.74813],[-87.74133,41.74819],[-87.74134,41.74863],[-87.74135,41.74883],[-87.74136,41.74915],[-87.7414,41.75014],[-87.74141,41.75051],[-87.74143,41.75099],[-87.74144,41.75151],[-87.74145,41.75176],[-87.74147,41.75249],[-87.74148,41.75288],[-87.74149,41.75313],[-87.7415,41.75327],[-87.7415,41.75334],[-87.74151,41.75378],[-87.74151,41.75388],[-87.74151,41.75404],[-87.74152,41.75434],[-87.74154,41.7549],[-87.74157,41.75568],[-87.74159,41.75629],[-87.7416,41.75647],[-87.74161,41.75673],[-87.74163,41.7573],[-87.74167,41.75822],[-87.74168,41.75852],[-87.74169,41.75875],[-87.74171,41.7594],[-87.74172,41.75956],[-87.74174,41.76016],[-87.74177,41.76074],[-87.74178,41.76099],[-87.74179,41.76118],[-87.7418,41.76137],[-87.74182,41.76192],[-87.74182,41.76232],[-87.74183,41.76276],[-87.74183,41.7628],[-87.74187,41.76331],[-87.74188,41.76347],[-87.74189,41.76378],[-87.7419,41.7641],[-87.74191,41.76433],[-87.74197,41.7645],[-87.74198,41.76465],[-87.742,41.76485],[-87.742,41.76498],[-87.74201,41.76528],[-87.74202,41.76586],[-87.74203,41.76626],[-87.74208,41.76738],[-87.74209,41.76753],[-87.7421,41.76774],[-87.74211,41.76806],[-87.74211,41.76823],[-87.74211,41.76858],[-87.74213,41.76962],[-87.74213,41.77055],[-87.74213,41.77092],[-87.74206,41.77112],[-87.74207,41.77137],[-87.74208,41.77168],[-87.74208,41.77171],[-87.74208,41.77189],[-87.74209,41.77208],[-87.7421,41.77264],[-87.74211,41.77295],[-87.74212,41.7734],[-87.74213,41.77374],[-87.74216,41.77476],[-87.74273,41.77475],[-87.74339,41.77473],[-87.7446,41.7747],[-87.74582,41.77466],[-87.74702,41.77463],[-87.74753,41.77462],[-87.74891,41.7746],[-87.75009,41.77458],[-87.75123,41.77454],[-87.75188,41.77452],[-87.75225,41.77453],[-87.75439,41.77451],[-87.75552,41.77448],[-87.7567,41.77448],[-87.75913,41.77444],[-87.76022,41.77441],[-87.76099,41.77439],[-87.76126,41.77439],[-87.76156,41.77438],[-87.7622,41.77437],[-87.76363,41.77434],[-87.76398,41.77434],[-87.76548,41.77433],[-87.76614,41.77432],[-87.76644,41.77431],[-87.76889,41.77426],[-87.77073,41.77422],[-87.77132,41.77419],[-87.77181,41.77418],[-87.77217,41.77417],[-87.77376,41.77414],[-87.77578,41.7741],[-87.77622,41.77409],[-87.77864,41.77403],[-87.77941,41.77402],[-87.77984,41.77401],[-87.78072,41.77399],[-87.7811,41.77398],[-87.78155,41.77398],[-87.78205,41.77398],[-87.78352,41.77397],[-87.78392,41.77396],[-87.78568,41.77392],[-87.786,41.77391],[-87.78841,41.77388],[-87.79034,41.77384],[-87.79086,41.77383],[-87.7917,41.77383],[-87.79333,41.77383],[-87.79539,41.7738],[-87.79581,41.77379],[-87.79827,41.77373],[-87.80015,41.77372],[-87.80075,41.77371],[-87.80075,41.77382],[-87.80076,41.77404],[-87.80076,41.77441],[-87.80076,41.77467],[-87.8008,41.77548],[-87.80086,41.77581],[-87.80096,41.77638],[-87.80094,41.77646],[-87.80091,41.77657],[-87.8009,41.77668],[-87.80089,41.77678],[-87.80089,41.77688],[-87.80089,41.77698],[-87.8009,41.77707],[-87.8009,41.77716],[-87.80092,41.77729],[-87.80092,41.77761],[-87.80098,41.77911],[-87.801,41.77951],[-87.80101,41.7797],[-87.80103,41.78003],[-87.80104,41.78048],[-87.80107,41.78093],[-87.80108,41.78136],[-87.8011,41.78188],[-87.80112,41.78231],[-87.80114,41.78281],[-87.80116,41.78317],[-87.80118,41.78374],[-87.80118,41.78382],[-87.8012,41.78424],[-87.80121,41.78449],[-87.80122,41.78465],[-87.80124,41.78499],[-87.80125,41.78528],[-87.80126,41.78553],[-87.8013,41.78641],[-87.8013,41.78654],[-87.80131,41.78682],[-87.80132,41.78707],[-87.80134,41.78734],[-87.80136,41.78783],[-87.80138,41.78822],[-87.80138,41.78834],[-87.80139,41.78859],[-87.8014,41.78891],[-87.80144,41.78972],[-87.80146,41.79008],[-87.80146,41.79024],[-87.80148,41.79061],[-87.8015,41.79089],[-87.80151,41.79105],[-87.80153,41.79145],[-87.80156,41.79194],[-87.80157,41.79233],[-87.80159,41.79291],[-87.80159,41.793],[-87.8016,41.7934],[-87.8016,41.79345],[-87.80161,41.79396],[-87.80162,41.79435],[-87.80153,41.7949],[-87.80161,41.79577],[-87.80164,41.79607],[-87.80166,41.79621],[-87.80169,41.79652],[-87.80171,41.79695],[-87.80171,41.79709],[-87.8017,41.79723],[-87.80169,41.79755],[-87.80171,41.79809],[-87.79745,41.79943],[-87.79662,41.79942],[-87.79594,41.79943],[-87.79569,41.79944],[-87.79543,41.79945],[-87.79476,41.79946],[-87.79451,41.79946],[-87.79417,41.79946],[-87.7936,41.79946],[-87.79335,41.79946],[-87.79296,41.79947],[-87.79238,41.79948],[-87.79214,41.79949],[-87.79174,41.7995],[-87.79053,41.79953],[-87.78997,41.79956],[-87.78932,41.79958],[-87.78873,41.79959],[-87.7881,41.79961],[-87.78752,41.7996],[-87.7869,41.79958],[-87.78568,41.79961],[-87.78445,41.79964],[-87.78323,41.79965],[-87.78293,41.79965],[-87.782,41.79965],[-87.78079,41.79967],[-87.77957,41.79971],[-87.77835,41.79973],[-87.77712,41.79977],[-87.7759,41.79979],[-87.77533,41.79981],[-87.77467,41.79982],[-87.77345,41.79985],[-87.7729,41.79987],[-87.77225,41.79989],[-87.77103,41.79991],[-87.77058,41.79993],[-87.76979,41.79994],[-87.76924,41.79995],[-87.76897,41.79996],[-87.76859,41.79997],[-87.76739,41.79998],[-87.76617,41.80003],[-87.76509,41.80005],[-87.76491,41.80006],[-87.76433,41.80006],[-87.76371,41.80006],[-87.7625,41.80006],[-87.76189,41.80006],[-87.76166,41.80006],[-87.76127,41.80007],[-87.76005,41.80009],[-87.75883,41.80009],[-87.75763,41.80011],[-87.75639,41.80013],[-87.75517,41.80015],[-87.75396,41.80016],[-87.75274,41.80018],[-87.75275,41.80065],[-87.75277,41.80199],[-87.75278,41.8024],[-87.75283,41.80384],[-87.75288,41.80565],[-87.75293,41.80704],[-87.75293,41.80708],[-87.75293,41.80741],[-87.75291,41.80748],[-87.75291,41.80795],[-87.75294,41.80931],[-87.75299,41.81115],[-87.75299,41.81297],[-87.75301,41.81346],[-87.74821,41.81496],[-87.74511,41.81594],[-87.74513,41.81617],[-87.74519,41.81645],[-87.74514,41.8168],[-87.74516,41.81705],[-87.74519,41.81751],[-87.7452,41.81773],[-87.74522,41.81851],[-87.74524,41.81926],[-87.74526,41.82008],[-87.74524,41.82019],[-87.74442,41.82077],[-87.74446,41.82172],[-87.74531,41.822],[-87.74454,41.82199],[-87.74437,41.82199],[-87.74352,41.82199],[-87.74138,41.82201],[-87.7386,41.82206],[-87.73873,41.82857],[-87.73874,41.8305],[-87.73883,41.83292],[-87.7388,41.83458],[-87.73882,41.83508],[-87.73894,41.83672],[-87.73911,41.84407],[-87.73916,41.84542],[-87.73916,41.84556],[-87.73916,41.84598],[-87.73918,41.84628],[-87.73941,41.85073],[-87.73951,41.85129],[-87.7395,41.85143],[-87.73951,41.85183],[-87.73951,41.85202],[-87.73959,41.85578],[-87.73967,41.85864],[-87.7397,41.85978],[-87.73971,41.86136],[-87.73986,41.86571],[-87.73981,41.86595],[-87.73987,41.86595],[-87.74009,41.86595],[-87.74017,41.86595],[-87.74227,41.86593],[-87.74322,41.86592],[-87.74418,41.8659],[-87.74476,41.86589],[-87.74555,41.86588],[-87.7459,41.86587],[-87.74713,41.86586],[-87.74841,41.86583],[-87.74962,41.86582],[-87.75085,41.8658],[-87.75204,41.86578],[-87.75328,41.86577],[-87.75365,41.86576],[-87.75397,41.86575],[-87.75455,41.86573],[-87.7552,41.86572],[-87.75708,41.8657],[-87.75936,41.86568],[-87.76181,41.86565],[-87.76367,41.86562],[-87.76431,41.86561],[-87.76485,41.86559],[-87.76551,41.86557],[-87.76676,41.86557],[-87.76796,41.86554],[-87.76918,41.86553],[-87.77042,41.86551],[-87.77164,41.86548],[-87.77284,41.86547],[-87.77365,41.86546],[-87.77412,41.86546],[-87.77413,41.86573],[-87.77414,41.86597],[-87.77415,41.86641],[-87.77418,41.86728],[-87.77425,41.86911],[-87.77425,41.86965],[-87.77426,41.8704],[-87.77426,41.87059],[-87.77428,41.87073],[-87.77429,41.87092],[-87.77429,41.87105],[-87.77429,41.87112],[-87.77429,41.87123],[-87.77432,41.87168],[-87.77434,41.87189],[-87.77436,41.87221],[-87.77441,41.87282],[-87.77444,41.87338],[-87.77446,41.87459],[-87.77448,41.87561],[-87.77449,41.87591],[-87.7745,41.87639],[-87.77451,41.87664],[-87.77455,41.87725],[-87.77457,41.87757],[-87.77465,41.87973],[-87.77466,41.88006],[-87.77467,41.88042],[-87.77468,41.88071],[-87.7747,41.88155],[-87.77471,41.88187],[-87.77472,41.88212],[-87.77473,41.88245],[-87.77474,41.88266],[-87.77474,41.88277],[-87.77476,41.88399],[-87.77476,41.88415],[-87.77481,41.8856],[-87.77485,41.88709],[-87.77486,41.88725],[-87.77486,41.88735],[-87.77486,41.88745],[-87.77487,41.88758],[-87.77487,41.88767],[-87.77487,41.88774],[-87.77487,41.88779],[-87.77488,41.88801],[-87.7749,41.88832],[-87.7749,41.88837],[-87.77491,41.88852],[-87.77493,41.88891],[-87.77496,41.88948],[-87.77496,41.88952],[-87.77498,41.89001],[-87.77499,41.89051],[-87.775,41.891],[-87.77502,41.89153],[-87.77503,41.89181],[-87.77504,41.89213],[-87.77505,41.89235],[-87.77506,41.89268],[-87.77507,41.89283],[-87.77508,41.89325],[-87.77508,41.89333],[-87.7751,41.89381],[-87.77512,41.8941],[-87.77513,41.89431],[-87.77515,41.89471],[-87.77515,41.89508],[-87.77516,41.89561],[-87.77519,41.89651],[-87.77523,41.89744],[-87.77526,41.89833],[-87.77529,41.90017],[-87.77533,41.90144],[-87.77534,41.90177],[-87.77535,41.902],[-87.77536,41.90222],[-87.77537,41.90255],[-87.77541,41.90381],[-87.77541,41.9039],[-87.77546,41.90562],[-87.77547,41.9059],[-87.77554,41.90743],[-87.77556,41.90796],[-87.77557,41.90841],[-87.77558,41.90877],[-87.77558,41.90882],[-87.77558,41.90893],[-87.77557,41.90906],[-87.77554,41.90924],[-87.77602,41.90923],[-87.77641,41.90923],[-87.77687,41.90923],[-87.77762,41.90923],[-87.77816,41.90923],[-87.77884,41.90921],[-87.77947,41.9092],[-87.78009,41.90919],[-87.7808,41.90918],[-87.78172,41.90917],[-87.7821,41.90917],[-87.7827,41.90916],[-87.78338,41.90915],[-87.78396,41.90915],[-87.78434,41.90914],[-87.78472,41.90914],[-87.78501,41.90914],[-87.78558,41.90913],[-87.78601,41.90913],[-87.78662,41.90912],[-87.78732,41.90912],[-87.78824,41.90911],[-87.78874,41.9091],[-87.78989,41.90909],[-87.7902,41.90908],[-87.79051,41.90908],[-87.79111,41.90907],[-87.79142,41.90907],[-87.79232,41.90906],[-87.79261,41.90905],[-87.79354,41.90904],[-87.79384,41.90904],[-87.79438,41.90903],[-87.79479,41.90903],[-87.79504,41.90902],[-87.79563,41.90901],[-87.79593,41.90901],[-87.7965,41.90899],[-87.79717,41.90899],[-87.79797,41.90897],[-87.79822,41.90897],[-87.79846,41.90897],[-87.7988,41.90897],[-87.79925,41.90897],[-87.79954,41.90897],[-87.80023,41.90897],[-87.80115,41.90896],[-87.80211,41.90894],[-87.80234,41.90894],[-87.80266,41.90893],[-87.80308,41.90892],[-87.80395,41.90889],[-87.80421,41.90889],[-87.80452,41.90888],[-87.80469,41.90887],[-87.8051,41.90886],[-87.80533,41.90885],[-87.80578,41.90883],[-87.80578,41.90896],[-87.80579,41.90927],[-87.80579,41.90946],[-87.80579,41.9095],[-87.80579,41.90967],[-87.8058,41.90994],[-87.8058,41.91001],[-87.80583,41.9107],[-87.80584,41.91116],[-87.80586,41.91168],[-87.80588,41.91222],[-87.80589,41.91254],[-87.80591,41.91302],[-87.80592,41.91339],[-87.80593,41.91356],[-87.80594,41.9138],[-87.80595,41.91437],[-87.80598,41.91573],[-87.80599,41.91619],[-87.80605,41.91802],[-87.80611,41.91946],[-87.80612,41.91983],[-87.80614,41.92105],[-87.80617,41.92167],[-87.80619,41.92227],[-87.8062,41.92249],[-87.80621,41.92272],[-87.80623,41.9231],[-87.80624,41.92333],[-87.80626,41.92361],[-87.80629,41.92403],[-87.80628,41.92458],[-87.80628,41.92469],[-87.80629,41.92488],[-87.80631,41.92528],[-87.80633,41.92595],[-87.80634,41.92622],[-87.80636,41.92678],[-87.80637,41.92713],[-87.80638,41.92738],[-87.80639,41.92778],[-87.8064,41.92808],[-87.80641,41.92838],[-87.80642,41.92894],[-87.80644,41.92934],[-87.80646,41.92978],[-87.80646,41.92991],[-87.80647,41.93012],[-87.80647,41.93033],[-87.80648,41.93043],[-87.80648,41.93049],[-87.80648,41.93062],[-87.80649,41.93082],[-87.80651,41.93127],[-87.80652,41.93152],[-87.80652,41.93169],[-87.80652,41.9318],[-87.80654,41.93213],[-87.80656,41.93256],[-87.80656,41.93271],[-87.80661,41.93398],[-87.80662,41.93434],[-87.80663,41.93451],[-87.80724,41.93451],[-87.80784,41.9345],[-87.80906,41.93448],[-87.80955,41.93446],[-87.81027,41.93445],[-87.81079,41.93444],[-87.81149,41.93442],[-87.81213,41.93441],[-87.81272,41.93441],[-87.81333,41.93439],[-87.81395,41.93438],[-87.81456,41.93437],[-87.81515,41.93436],[-87.8154,41.93435],[-87.81572,41.93435],[-87.81637,41.93434],[-87.81644,41.93614],[-87.81649,41.93751],[-87.81651,41.93795],[-87.81726,41.93794],[-87.81773,41.93793],[-87.81895,41.93791],[-87.82015,41.93788],[-87.82138,41.93785],[-87.82261,41.93783],[-87.82383,41.93781],[-87.82504,41.93778],[-87.8256,41.93777],[-87.82628,41.93775],[-87.82649,41.93775],[-87.82656,41.93775],[-87.82669,41.93775],[-87.82682,41.93775],[-87.8271,41.93775],[-87.82751,41.93775],[-87.82811,41.93774],[-87.82874,41.93772],[-87.82926,41.9377],[-87.82999,41.93768],[-87.83078,41.93767],[-87.83124,41.93766],[-87.83212,41.93765],[-87.83245,41.93764],[-87.83272,41.93763],[-87.83281,41.93763],[-87.83306,41.93762],[-87.83361,41.93761],[-87.83367,41.93761],[-87.83377,41.93761],[-87.83428,41.93761],[-87.8346,41.93761],[-87.83479,41.93761],[-87.83539,41.9376],[-87.83575,41.93759],[-87.83605,41.93758],[-87.83651,41.93757],[-87.83697,41.93756],[-87.83722,41.93755],[-87.83759,41.93754],[-87.83987,41.9375],[-87.84162,41.93746],[-87.84269,41.93744],[-87.84322,41.93743],[-87.84491,41.9374],[-87.84603,41.93736],[-87.84693,41.93733],[-87.84739,41.93732],[-87.84767,41.93731],[-87.84851,41.93728],[-87.84882,41.93728],[-87.84933,41.93727],[-87.8497,41.93725],[-87.84982,41.93755],[-87.85059,41.93808],[-87.85112,41.93842],[-87.85155,41.9388],[-87.85184,41.9391],[-87.85202,41.93938],[-87.85213,41.93979],[-87.85225,41.94081],[-87.85242,41.9413],[-87.853,41.94266],[-87.85397,41.94508],[-87.85439,41.94582],[-87.8554,41.94608],[-87.85546,41.94624],[-87.85554,41.94647],[-87.85571,41.94697],[-87.85578,41.94731],[-87.85584,41.94769],[-87.85591,41.94836],[-87.85622,41.95105],[-87.8563,41.95158],[-87.85411,41.95164],[-87.85382,41.95166],[-87.84764,41.9518],[-87.84766,41.9527],[-87.84775,41.95576],[-87.84815,41.95575],[-87.85797,41.95551],[-87.8586,41.95639],[-87.85872,41.95677],[-87.85869,41.95712],[-87.85834,41.95782],[-87.85762,41.95898],[-87.85698,41.96016],[-87.85646,41.96103],[-87.85634,41.9614],[-87.8562,41.96156],[-87.85573,41.96236],[-87.85551,41.96281],[-87.85553,41.96321],[-87.85565,41.96378],[-87.85565,41.96436],[-87.85553,41.96469],[-87.85515,41.96515],[-87.8548,41.96579],[-87.85468,41.96618],[-87.85463,41.96637],[-87.85463,41.96687],[-87.85489,41.96796],[-87.85492,41.96857],[-87.85463,41.96938],[-87.8542,41.97035],[-87.85399,41.97101],[-87.85399,41.97134],[-87.85422,41.97186],[-87.8546,41.97226],[-87.85503,41.97255],[-87.85544,41.97269],[-87.85605,41.97267],[-87.85655,41.97252],[-87.85715,41.97217],[-87.85767,41.97189],[-87.85811,41.97171],[-87.85873,41.97162],[-87.85948,41.97168],[-87.8602,41.97202],[-87.8609,41.9725],[-87.86148,41.97301],[-87.86162,41.97321],[-87.86171,41.97345],[-87.86198,41.97342],[-87.86201,41.97329],[-87.86227,41.97329],[-87.86407,41.97326],[-87.86542,41.97324],[-87.86679,41.97318],[-87.86732,41.97318],[-87.86869,41.97316],[-87.86885,41.97316],[-87.86907,41.97314],[-87.86915,41.97313],[-87.86963,41.97312],[-87.86988,41.9731],[-87.87104,41.9731],[-87.87256,41.97306],[-87.87262,41.97308],[-87.87282,41.97313],[-87.87301,41.97316],[-87.87578,41.9731],[-87.87594,41.9731],[-87.87722,41.97307],[-87.87755,41.97308],[-87.87762,41.97308],[-87.87784,41.97308],[-87.87792,41.97308],[-87.87823,41.97307],[-87.88098,41.97305],[-87.88099,41.97249],[-87.88099,41.97232],[-87.88099,41.97216],[-87.88098,41.97191],[-87.88097,41.97066],[-87.88097,41.97021],[-87.88097,41.96942],[-87.88094,41.96849],[-87.88092,41.96305],[-87.88092,41.96257],[-87.88091,41.96045],[-87.88091,41.9602],[-87.88089,41.95737],[-87.88252,41.95737],[-87.88376,41.95754],[-87.8842,41.9576],[-87.88504,41.95767],[-87.88849,41.9581],[-87.88904,41.95816],[-87.89059,41.95837],[-87.89059,41.95813],[-87.89305,41.9581],[-87.89308,41.95499],[-87.89306,41.95465],[-87.8945,41.95322],[-87.89548,41.95233],[-87.89573,41.95212],[-87.896,41.95193],[-87.89647,41.95164],[-87.89652,41.95161],[-87.89674,41.95151],[-87.89702,41.95139],[-87.8968,41.95112],[-87.8966,41.95094],[-87.89634,41.95081],[-87.89597,41.95068],[-87.89699,41.95067],[-87.8988,41.95074],[-87.90359,41.95065],[-87.90653,41.95111],[-87.91212,41.95228],[-87.91206,41.95124],[-87.91394,41.95167],[-87.91594,41.95217],[-87.9173,41.95248],[-87.91983,41.95311],[-87.92228,41.95375],[-87.92349,41.95405],[-87.92537,41.95448],[-87.92701,41.95478],[-87.9294,41.95513],[-87.93101,41.95539],[-87.93185,41.95551],[-87.93421,41.95585],[-87.93524,41.95602],[-87.93634,41.95629],[-87.93663,41.9564],[-87.9369,41.95651],[-87.93725,41.95667],[-87.93758,41.95686],[-87.93795,41.95713],[-87.93822,41.95737],[-87.93851,41.95769],[-87.93871,41.95796],[-87.93881,41.9582],[-87.93886,41.95842],[-87.93888,41.95871],[-87.9389,41.95915],[-87.93891,41.95934],[-87.93892,41.95962],[-87.93892,41.96031],[-87.93892,41.96086],[-87.93908,41.96241],[-87.93925,41.96474],[-87.93926,41.9677],[-87.9393,41.96945],[-87.93931,41.97091],[-87.93933,41.97273],[-87.93931,41.97535],[-87.93933,41.9778],[-87.93935,41.98142],[-87.93936,41.98246],[-87.93938,41.98535],[-87.93938,41.98617],[-87.93939,41.98667]],[[-87.84657,41.96643],[-87.84596,41.96643],[-87.84523,41.96644],[-87.84402,41.96646],[-87.84378,41.96646],[-87.84326,41.96647],[-87.8428,41.96648],[-87.84196,41.9665],[-87.84171,41.9665],[-87.8416,41.9665],[-87.8411,41.96651],[-87.84067,41.96651],[-87.84037,41.96652],[-87.84003,41.96653],[-87.83977,41.96653],[-87.83955,41.96654],[-87.8391,41.96655],[-87.83839,41.96657],[-87.8379,41.96658],[-87.83751,41.96659],[-87.83734,41.9666],[-87.83678,41.96661],[-87.83678,41.96634],[-87.83678,41.96617],[-87.83678,41.96609],[-87.83679,41.9653],[-87.83679,41.96516],[-87.83679,41.96448],[-87.83678,41.96351],[-87.83667,41.96334],[-87.83667,41.96303],[-87.83667,41.96163],[-87.83668,41.96102],[-87.83668,41.96075],[-87.83668,41.96029],[-87.83667,41.95991],[-87.83667,41.95962],[-87.83664,41.95935],[-87.83584,41.95936],[-87.83538,41.95937],[-87.83516,41.95937],[-87.83478,41.95938],[-87.83457,41.95938],[-87.83408,41.95939],[-87.83376,41.9594],[-87.83334,41.95941],[-87.83266,41.95942],[-87.83195,41.95658],[-87.83175,41.95584],[-87.83181,41.95397],[-87.83179,41.95269],[-87.83178,41.95217],[-87.83123,41.95218],[-87.83055,41.95219],[-87.82969,41.95221],[-87.82932,41.95222],[-87.82921,41.95223],[-87.8281,41.95226],[-87.82695,41.95228],[-87.82362,41.95237],[-87.82356,41.95237],[-87.82266,41.95239],[-87.82245,41.95239],[-87.82215,41.9524],[-87.82196,41.95242],[-87.82188,41.95242],[-87.82123,41.95243],[-87.82072,41.95244],[-87.82004,41.95246],[-87.81948,41.95248],[-87.81882,41.9525],[-87.81831,41.95251],[-87.81827,41.95251],[-87.81784,41.95252],[-87.81762,41.95253],[-87.81703,41.95254],[-87.81644,41.95255],[-87.81581,41.95257],[-87.81536,41.95258],[-87.81457,41.95259],[-87.8134,41.95262],[-87.8122,41.95265],[-87.8116,41.95267],[-87.81126,41.95268],[-87.81095,41.95269],[-87.81063,41.95269],[-87.81042,41.95269],[-87.80976,41.95271],[-87.80949,41.95283],[-87.80884,41.95313],[-87.80832,41.95337],[-87.80824,41.95341],[-87.80795,41.95354],[-87.80758,41.95371],[-87.8073,41.95384],[-87.80702,41.95398],[-87.80637,41.9543],[-87.80602,41.95447],[-87.8057,41.95463],[-87.80529,41.95483],[-87.80499,41.95498],[-87.8042,41.95538],[-87.80373,41.95561],[-87.80322,41.95586],[-87.80269,41.9561],[-87.80236,41.95625],[-87.80185,41.95648],[-87.80136,41.9567],[-87.80063,41.95705],[-87.80016,41.95727],[-87.7994,41.95765],[-87.79894,41.95788],[-87.79827,41.95819],[-87.79766,41.95848],[-87.79719,41.9587],[-87.79697,41.9588],[-87.79651,41.95902],[-87.79608,41.95923],[-87.79513,41.95969],[-87.79481,41.95984],[-87.79453,41.95997],[-87.79417,41.96013],[-87.79361,41.96008],[-87.79346,41.96008],[-87.79261,41.9601],[-87.79186,41.96012],[-87.79167,41.96012],[-87.79045,41.96014],[-87.78991,41.96015],[-87.78958,41.96015],[-87.78924,41.96016],[-87.78828,41.96018],[-87.78801,41.96019],[-87.78732,41.9602],[-87.78681,41.9602],[-87.78682,41.96052],[-87.78682,41.96067],[-87.78683,41.96096],[-87.78687,41.96204],[-87.78687,41.96221],[-87.78688,41.96254],[-87.78692,41.96293],[-87.78685,41.96337],[-87.78677,41.96346],[-87.78673,41.96356],[-87.78675,41.96371],[-87.78674,41.96464],[-87.78673,41.96517],[-87.78673,41.96651],[-87.78675,41.96703],[-87.78676,41.96747],[-87.78675,41.96843],[-87.78801,41.96841],[-87.788,41.96892],[-87.7892,41.96893],[-87.79044,41.96891],[-87.79104,41.96892],[-87.79165,41.96892],[-87.79284,41.96889],[-87.79406,41.96887],[-87.79529,41.96887],[-87.79649,41.96886],[-87.79771,41.96885],[-87.79891,41.96885],[-87.80012,41.96883],[-87.80132,41.96883],[-87.80252,41.96883],[-87.80253,41.96831],[-87.80368,41.9683],[-87.80388,41.9683],[-87.80486,41.9683],[-87.80546,41.96829],[-87.80549,41.96829],[-87.80602,41.96829],[-87.80627,41.96828],[-87.80648,41.96828],[-87.80718,41.96827],[-87.80718,41.96834],[-87.80718,41.96886],[-87.80718,41.96908],[-87.80713,41.97008],[-87.80711,41.9709],[-87.80709,41.97187],[-87.80707,41.97273],[-87.80705,41.97368],[-87.80705,41.97393],[-87.80705,41.97425],[-87.80704,41.97454],[-87.80789,41.97455],[-87.80829,41.97455],[-87.8095,41.97447],[-87.8105,41.97445],[-87.81076,41.97444],[-87.81137,41.97443],[-87.81144,41.97443],[-87.812,41.97441],[-87.81258,41.9744],[-87.81321,41.97438],[-87.81443,41.97435],[-87.81567,41.97432],[-87.81646,41.97431],[-87.8169,41.9743],[-87.81691,41.97384],[-87.81691,41.97353],[-87.81691,41.97338],[-87.81691,41.97249],[-87.81692,41.97157],[-87.81692,41.971],[-87.81693,41.97066],[-87.81842,41.97066],[-87.81939,41.97069],[-87.81943,41.97081],[-87.81943,41.97094],[-87.81943,41.97192],[-87.81942,41.97346],[-87.8194,41.97421],[-87.82183,41.97415],[-87.82222,41.97414],[-87.82383,41.9741],[-87.82472,41.97409],[-87.82535,41.97407],[-87.82575,41.97406],[-87.82609,41.97405],[-87.82674,41.97403],[-87.82674,41.97352],[-87.82673,41.97313],[-87.83171,41.97307],[-87.83173,41.97377],[-87.83236,41.9738],[-87.83236,41.97393],[-87.83287,41.97393],[-87.83354,41.97392],[-87.83359,41.975],[-87.83359,41.97531],[-87.83357,41.97536],[-87.83355,41.9754],[-87.83662,41.97536],[-87.83662,41.97524],[-87.83663,41.97496],[-87.83662,41.9748],[-87.84137,41.97478],[-87.84137,41.9738],[-87.841,41.9738],[-87.83947,41.97383],[-87.83904,41.97384],[-87.83837,41.97386],[-87.83781,41.97386],[-87.83783,41.97118],[-87.83664,41.97116],[-87.83671,41.971],[-87.83673,41.97086],[-87.83673,41.97069],[-87.83674,41.97022],[-87.8373,41.97022],[-87.83787,41.97021],[-87.83841,41.9702],[-87.83853,41.97019],[-87.8391,41.97017],[-87.84035,41.97014],[-87.84102,41.97014],[-87.84156,41.97013],[-87.84149,41.97197],[-87.84651,41.972],[-87.84652,41.97128],[-87.84654,41.97005],[-87.84657,41.96823],[-87.84657,41.96695],[-87.84657,41.96643]],[[-87.83493,41.98116],[-87.83434,41.98115],[-87.83433,41.98082],[-87.8349,41.9808],[-87.83492,41.98056],[-87.83313,41.98061],[-87.82928,41.98074],[-87.82901,41.98074],[-87.82907,41.98024],[-87.8291,41.97989],[-87.82869,41.97989],[-87.82866,41.97951],[-87.82825,41.97949],[-87.82826,41.97934],[-87.82864,41.97937],[-87.82867,41.97883],[-87.82866,41.97844],[-87.8293,41.97841],[-87.83032,41.97835],[-87.83031,41.97804],[-87.83029,41.97754],[-87.82953,41.97757],[-87.82949,41.97733],[-87.82941,41.97693],[-87.83173,41.9769],[-87.83339,41.97688],[-87.83345,41.9764],[-87.8335,41.97589],[-87.83173,41.97591],[-87.82676,41.97594],[-87.82445,41.97591],[-87.82436,41.97655],[-87.82432,41.97683],[-87.82425,41.97744],[-87.82422,41.97771],[-87.82415,41.97816],[-87.82409,41.97862],[-87.82407,41.97889],[-87.82399,41.97952],[-87.82386,41.98045],[-87.82379,41.98096],[-87.82374,41.98136],[-87.82365,41.98201],[-87.82362,41.98227],[-87.82359,41.98252],[-87.82353,41.9831],[-87.82505,41.98307],[-87.82521,41.98306],[-87.82515,41.98192],[-87.82678,41.98189],[-87.82678,41.9817],[-87.82813,41.98174],[-87.82814,41.98378],[-87.8291,41.98375],[-87.82961,41.98374],[-87.83009,41.98374],[-87.8311,41.98373],[-87.83209,41.98371],[-87.83298,41.98369],[-87.83306,41.98366],[-87.83308,41.9836],[-87.83308,41.98324],[-87.83307,41.98276],[-87.83431,41.98276],[-87.83493,41.98276],[-87.83493,41.98116]],[[-87.69615,41.69896],[-87.69589,41.69161],[-87.69574,41.69162],[-87.69531,41.69163],[-87.69349,41.69165],[-87.69331,41.69165],[-87.69094,41.69168],[-87.69099,41.69351],[-87.69106,41.69533],[-87.69112,41.69716],[-87.69118,41.69899],[-87.69615,41.69896]]]
    }";

// throws "Invalid GeoJSON String"
IGeoJsonObject oGeoJsonObject = oGeoJsonReader.Read(geojsonString);

Support KML and CSV

it would be supper if this library would also support KML and CSV formats.

Async APIs

Please, can you add async APIs for serialization/deserialization?

For now I have solved it myself inheriting from the class for my specific case:

public class Gpx11SerializerAsync : Gpx11Serializer {

        public async Task<GpsData> DeserializeAsync(Stream stream) {
            using (var streamReader = new StreamReader(stream)) {
                var data = await streamReader.ReadToEndAsync();
                var xmlSerializer = new XmlSerializer(typeof(GpxFile));

                using (var stringReader = new StringReader(data)) {
                    var doc = (GpxFile)xmlSerializer.Deserialize(stringReader);
                    return DeSerialize(doc);
                }
            }
        }

    }

It would be nice if it worked in all cases through GpsData:

https://github.com/sibartlett/Geo/blob/master/Geo/Gps/GpsData.cs#L73

Something like:

public static async Task<GpsData> ParseAsync(Stream stream);

.net core support (or net standard)

Does this library support .net core or .net standard?
Considering this library for an open source project but docs do not reflect one way or the other the support for core / standard.

thanks.

Sign (strong name) the assembly in the nuget package

Hello,
As my application has to be strong named and signed, I cannot use the nuget package from Geo in my project. Now I have to clone and build myself, which is obviously not ideal (as I prefer to leverage the nuget version support & upgrade).
Any plan to have this added? (and maybe keep two versions, to maintain backwards compatibility?)

Cheers

Nuget install doesn't work for Visual Studio 2012 MVC 4 Project

This is the error using package manager.

Successfully installed 'Geo 0.11.3'.
Successfully uninstalled 'Geo 0.11.3'.
Install failed. Rolling back...
Could not install package 'Geo 0.11.3'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.0', but the package does not contain any assembly references that are compatible with that framework. For more information, contact the package author.

It doesn't work for Web API projects either. I tried changing the framework target to 4.5 and 4.5.1 and those don't work.

World magnetic model components coordinate system

Hello and thanks for this api

I am wondering about the world magnetic model components X, Y, Z. What is the coordinate system they are given in? I think I need to convert them ENU since it it is the standard in Android and iOS sensors that I am working with.

Missing Date Modified on dll causing issues with Nuget

When attempting to include Geo.dll in a nuget package the packaging fails with error 'The DateTimeOffset specified cannot be converted into a Zip file timestamp' because Geo.dll's Modified date is empty.

I believe nuget pack calls the CreateEntryFromFile method documented below, which sets the file's date in the nuget package to the file's Modified date:
https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.zipfileextensions.createentryfromfile?view=netframework-4.7.2

As a workaround our CI process performs this step to set the Modified date before packaging:
gci -path "geo.dll" -rec -file *.dll | Where-Object {$_.LastWriteTime -lt (Get-Date).AddYears(-20)} | % { try { $_.LastWriteTime = '01/01/2020 00:00:00' } catch {} }

Note this was not an issue with Nuget 4.5, but is an issue with Nuget 5.4. From the link above it appears that it would be an issue with Nuget > 4.6
Proposed solution:
Update Geo.dll build process to set the file's Modified date (same as Created date?)

image

Class Library(Portable for Universal Apps) project

I'm trying to install Geo in Class Library(Portable for Universal Apps) project and getting an error:

Could not install package 'Geo 0.11.3'. You are trying to install this package into a project that targets 'portable-win81+wpa81', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

WKT to GeoJSON

Hello ,

Is there any API exist to convert WKT to geoJSON ?

Regards

Handling null geometries

The GeoJSON draft spec (http://wiki.geojson.org/GeoJSON_draft_version_5) suggests that the geometry property can be null:

"A GeoJSON object with the type "Feature" represents a geometry with additional properties (referred to as a feature object below).
A feature object must have a member with the name "geometry". The value of the geometry member is a geometry object as defined above or a JSON null value (as in {"type":"Feature", "properties": {"title":"empty"}, "geometry":null})."

I think the fix to support this is quite simple. Check for the null geometry in TryParseFeature as shown below:

    private bool TryParseFeature(JsonObject obj, out object result)
    {
        string typeString;
        if(TryParseTypeString(obj, out typeString) && typeString.ToLowerInvariant()== "feature")
        {
            object geometry;
            object geo = null;
            if (obj.TryGetValue("geometry", out geometry) && (geometry == null || TryParseGeometry((JsonObject)geometry, out geo)))

..etc

Regards
Bruce

Support .NET Standard

I tried compiling the GEO library for a .NET Standard 1.4 library, and it just had a few small issues with some reflection code. Should be pretty straightforward to ship a nuget package supporting .NET Standard.

Thanks!

geo spaitial encoder

help need do you have any c sharp file for this project?

i want to generate the unit test file.

WkbReader does not read multipolygons properly

According to specification WKB format, each polygon in multipolygon has its endiannes and object type (polygon), but the implementation of WkbReader seems to ignore this fact. It assumes these two fields does not exist and reads number of rings straight away, so actual polygon data is garbage (ring count, coordinates...)

http://edndoc.esri.com/arcsde/9.0/general_topics/wkb_representation.htm

WKBPolygon {
byte byteOrder;
uint32 wkbType; // 3
uint32 numRings;
LinearRing rings[numRings];
}

wkbMultiPolygon {
byte byteOrder;
uint32 wkbType; // 6
uint32 num_wkbPolygons;
WKBPolygon wkbPolygons[num_wkbPolygons];
}

I'm using data from here http://www.naturalearthdata.com/downloads/ (SQLite database)

This quick test seems to fix the issue (and I guess there could also be a problem with other multi* objects):

private MultiPolygon ReadMultiPolygon(WkbBinaryReader reader, WkbDimensions dimensions)
{
var pointsCount = (int)reader.ReadUInt32();
var polygons = new List();
for (var i = 0; i < pointsCount; i++)
{
reader.ReadBytes(1); // dump byteOrder from stream
reader.ReadUInt32(); // dump wkbType from stream
polygons.Add(ReadPolygon(reader, dimensions));
}
return new MultiPolygon(polygons);
}

Thanks!

Regards,
Mladen

TrkSeg can be empty on GPX 1.1

With a GPX 1.1 you have this error parsing a GPX file:
NullReferenceException
if the file contains an empty trkseg element ()

trkseg can be an empty element: http://www.topografix.com/GPX/1/1/#type_trksegType
(it is a complex element and contains a sequence of [0..*] trkpt elements)

The problem is in Gps\Serialization\Gpx11Serializer.cs

private static void ParseTracks(GpxFile xml, GpsData data)
[...]
foreach (var wptType in trksegType.trkpt)

trksegType.trkpt is null if trkseg element doesn't contain any point.

(problem exists in version 0.13 and 0.14)

Alessandro

GPX: route points, track points and way points should have the same data

I've noticed that GPX tracks whose route points have names or descriptions don't see that data materialize at the GpsData level. The reason is Route just has a list of Coordinate instances and the serializer doesn't transfer name/desc/comment fields to the public surface area when deserializing.

Technically, Route points, TrackSegment points and GpsData waypoints should probably all be the same type, as they are in the GPX spec, where everything is a wptType.

However, that will change a lot of public signatures, and be a fairly breaking change in the library. A more conservative alternative would be to attach new properties to Coordinate, Fix, and Waypoint respectively.

@sibartlett, thoughts? I'm happy to PR a fix, but I'm not sure which direction to take here.

Thanks.

Envelope.Combine maybe faulty

Hi there,

Geo looks like a very convenient lightweight implementation for geo data handling.

I tried to integrate the geo library into my windows store app for simple geographic calculations. However, the following behaviour seems strange to me:

        Point p1 = new Point(49, 49);
        Point p2 = new Point(50, 50);
        MultiPoint mp = new MultiPoint(p1, p2);
        Envelope e = mp.GetBounds();

This code produces an envelope with 49 in all properties of the envelope "e". Though, I expected the envelope to describe an area covering p1 and p2.

Having a look at the source code it seems strange to me, that combine uses Math.Min an all properties to combine two envelopes. Shouldn't it be Math.Max on the Max-properties?

Cheers
Volker

    public Envelope Combine(Envelope other)
    {
        if (other == null)
            return this;

        return new Envelope(
            Math.Min(MinLat, other.MinLat),
            Math.Min(MinLon, other.MinLon),
            Math.Min(MaxLat, other.MaxLat),
            Math.Min(MaxLon, other.MaxLon)
        );
    }

Calculating orthodromic line fails for certain points.

Hi,

using a SpheroidCalculator with Spheroid.Wgs84, calculating the orthodromic line for

lat1, lon1 = 30, 176,
lat2, lon2 = -30, -3.5

fails with an ArithmeticException, while calculating it for

lat1, lon1 = 30, 175,
lat2, lon2 = -30, -3.5

runs just fine. I have some unit tests for my app that use random data and fail occasionally. It seems that lat1 = -lat2 seems to be a neccessary but not sufficient condition for failure.

Latest model Wmm2015 does not show exact results for same input into Online Calculator

Hi,
I am using version 0.14.1, and doing the following calls to get the Magnetic Field result:

DateTime dt = new DateTime(2019, 7, 19);
var a = new WmmGeomagnetismCalculator();
var b = a.TryCalculate(new Coordinate(32.9, -96.1), dt);

then I enter the same latitude, longitude , and date into the online calculator at https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml#igrfwmm
but the values I get differ, for example:

Geo Code: Online Calculator:
D=2.68693443863361 D=2.733333
X=23172.5881478553 X=23207.2
Z=42798.7003809326 Z=42767.2

I tried to compare the Geo code with the C code used by the online calculator, and as far as I get, the values for a,b,f are identical on both; in C code they are hard-coded, in your code they are calculated as:
var a = _spheroid.EquatorialAxis / 1000;
var f = _spheroid.Flattening;
var b = a * (1.0 - f);

I need to understand why I cannot get the same values for X, Z since they are used for D. Can you help me understand why this is the case?

I am working on an application in c# that requires the values for D,X,Z to be identical to the online calculator.

Thanks,

GPX to GeoJson

I'm not sure I'm not missing something here but Assuming I have a GPX file and I want to convert it to geojson, how should I be doing it? I see a separation between GPSData and IO but I'm not sure how to bridge the gap...

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.