Thank you all for a thorough explanation!<br><br>This should unblock us on incorporating holes in in-n-out. :)<br><br>David<br><br><div class="gmail_quote">On Tue, Nov 12, 2013 at 11:34 AM, Tim Schaub <span dir="ltr"><<a href="mailto:tschaub@boundlessgeo.com" target="_blank">tschaub@boundlessgeo.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">One thing to note.  The GeoJSON specification intentionally does not<br>
enforce that geometries are "valid" or "clean."  This allows GeoJSON<br>
to be used as a transfer format between a client that might allow<br>
drawing of "invalid" geometries and a server that might be in charge<br>
of cleaning or validating (for example).<br>
<br>
My opinions below:<br>
<div class="im"><br>
On Tue, Nov 12, 2013 at 10:54 AM, David Ellis <<a href="mailto:ellis@uber.com">ellis@uber.com</a>> wrote:<br>
><br>
> Some questions on the spec:<br>
><br>
> Is there a reference implementation for generation and/or consumption of<br>
> GeoJSON objects. Alternatively, is there a test suite of some sort involving<br>
> GeoJSON objects?<br>
<br>
</div>Tom already mentioned the MapBox hinter.  There is also <a href="http://geojsonlint.com/" target="_blank">http://geojsonlint.com/</a>.<br>
<br>
We should do a better job on the site listing implementations.  I<br>
don't think any should be endorsed as "reference" - but it would be<br>
nice to point to some reusable utilities for testing & parsing.<br>
<div class="im"><br>
> What are "Interior Rings" and what are "Holes"? Are they synonyms?<br>
<br>
</div>They should be considered synonyms.  If you are modeling a 2d donut,<br>
you can do so in GeoJSON by using a polygon with two rings.  As<br>
mentioned above, GeoJSON doesn't say that all points on an interior<br>
ring must be inside the exterior ring.  So GeoJSON can be used to<br>
serialize geometries that might not pass common topology validation<br>
rules.<br>
<div class="im"><br>
> What happens if interior rings overlap? If holes overlap? If an interior<br>
> ring overlaps a hole? What happens if they partially intersect? (See image<br>
> in the link above.)<br>
<br>
</div>See above.  GeoJSON doesn't enforce that you have a geometry that<br>
passes common topology validation rules (you can still serialize<br>
"invalid" geometries).<br>
<div class="im"><br>
> Finally, the specification does not define what a GeoJSON interpreter should<br>
> do with malformed and/or extended GeoJSON objects. Is this truly<br>
> implementation specific? (This would seem to limit the ability for interop<br>
> between GeoJSON producers and consumers written by different software<br>
> teams.)<br>
<br>
</div>The spec is about a serialization format.  It does not describe a<br>
service or any protocol used to communicate between consumers of<br>
GeoJSON.  Consumers of GeoJSON can decide for themselves how<br>
strict/lenient they want to be in parsing.  This is akin to the HTML<br>
spec not describing what consumers should do with invalid HTML.<br>
<br>
Quoting from the HTML 4 spec:<br>
<br>
"This specification does not define how conforming user agents handle<br>
general error conditions, including how user agents behave when they<br>
encounter elements, attributes, attribute values, or entities not<br>
specified in this document."<br>
<br>
This has worked out well for HTML in terms of interoperability.<br>
<br>
Tim<br>
<div class="im HOEnZb"><br>
<br>
><br>
> Regards,<br>
><br>
> David Ellis<br>
><br>
> Uber Technologies, Inc<br>
><br>
><br>
</div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> GeoJSON mailing list<br>
> <a href="mailto:GeoJSON@lists.geojson.org">GeoJSON@lists.geojson.org</a><br>
> <a href="http://lists.geojson.org/listinfo.cgi/geojson-geojson.org" target="_blank">http://lists.geojson.org/listinfo.cgi/geojson-geojson.org</a><br>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Tim Schaub<br>
Vice President, Engineering | Boundless<br>
<a href="mailto:tschaub@boundlessgeo.com">tschaub@boundlessgeo.com</a><br>
@tschaub<br>
</font></span></blockquote></div><br>