<span class="Apple-style-span" style="border-collapse: collapse; color: rgb(136, 136, 136); ">I read through the earlier thread about this at<div><br></div><div><a href="http://lists.geojson.org/htdig.cgi/geojson-geojson.org/2008-October/000464.html" target="_blank" style="color: rgb(42, 93, 176); ">http://lists.geojson.org/htdig.cgi/geojson-geojson.org/2008-October/000464.html</a><br>
</div><div><br></div><div>and was not sure as to its conclusion - whether GeoJSON supports nested FeatureCollections or prohibits them.</div><div><br></div><div>The application-specific issue that we are working with and trying to resolve is towards sharing recent ocean observations as GeoJSON , for example we have ocean buoy platforms which contain a collection of sensors with each sensor containing a collection of associated observations.</div>
<div><br></div><div>I&#39;ve taken a shot at describing this as a GeoJSON microschema (ObsJSON) at </div><div><br></div><div><a href="http://code.google.com/p/xenia/wiki/ObsJSON#Simple_schema_version_2" target="_blank" style="color: rgb(42, 93, 176); ">http://code.google.com/p/xenia/wiki/ObsJSON#Simple_schema_version_2</a><br>
</div><div><br></div><div>where each GeoJSON file contains only one platforms recent observations and each feature models a sensor and its associated observations</div><div><pre style="font-size: 110%; margin-left: 2em; padding-top: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em; padding-left: 0.5em; border-left-width: 3px; border-left-style: solid; border-left-color: rgb(204, 204, 204); white-space: pre-wrap; word-wrap: break-word; ">
<span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>    </span><span style="color: rgb(0, 136, 0); ">&quot;type&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;FeatureCollection&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;schemaRef&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;ioos blessed schema name reference(s)&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;dictionaryRef&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;ioos blessed obstype uom dictionary reference(s)&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;dictionaryURL&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;<a href="http://nautilus.baruch.sc.edu/obsjson/secoora_dictionary.json" target="_blank" style="color: rgb(42, 93, 176); ">http://nautilus.baruch.sc.edu/obsjson/secoora_dictionary.json</a>&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;platformId&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;urn:x-noaa:def:station:noaa.nws.ndbc::41012&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;metadataURL&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;link to further operator/platform metadata/links as XML/JSON&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;operatorName&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;ndbc&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;operatorURL&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;<a href="http://www.ndbc.noaa.gov/" target="_blank" style="color: rgb(42, 93, 176); ">http://www.ndbc.noaa.gov/</a>&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;platformName&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;41012&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;platformURL&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;<a href="http://www.ndbc.noaa.gov/station_page.php?station=41012" target="_blank" style="color: rgb(42, 93, 176); ">http://www.ndbc.noaa.gov/station_page.php?station=41012</a>&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

    </span><span style="color: rgb(0, 136, 0); ">&quot;features&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[</span><span style="color: rgb(0, 0, 0); "><br>

        </span><span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>            </span><span style="color: rgb(0, 136, 0); ">&quot;type&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;Feature&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

            </span><span style="color: rgb(0, 136, 0); ">&quot;geometry&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;type&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;MultiPoint&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;coordinates&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[[-</span><span style="color: rgb(0, 102, 102); ">80.55</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">30.04</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">3</span><span style="color: rgb(102, 102, 0); ">],[-</span><span style="color: rgb(0, 102, 102); ">79.00</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">31.00</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">3</span><span style="color: rgb(102, 102, 0); ">],[-</span><span style="color: rgb(0, 102, 102); ">78.00</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">32.00</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">3</span><span style="color: rgb(102, 102, 0); ">]]</span><span style="color: rgb(0, 0, 0); "> <br>

            </span><span style="color: rgb(102, 102, 0); ">},</span><span style="color: rgb(0, 0, 0); "><br>            </span><span style="color: rgb(0, 136, 0); ">&quot;properties&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;sensorId&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;link to further sensor metadata/links as XML/JSON&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;obsType&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;air_temperature&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;uomType&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;celsius&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;time&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[</span><span style="color: rgb(0, 136, 0); ">&quot;2009-03-31T10:50:00Z&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;2009-03-31T11:50:00Z&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;2009-03-31T12:50:00Z&quot;</span><span style="color: rgb(102, 102, 0); ">],</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;value&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[</span><span style="color: rgb(0, 136, 0); ">&quot;22.0&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;23.0&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;24.0&quot;</span><span style="color: rgb(102, 102, 0); ">]</span><span style="color: rgb(0, 0, 0); "> <br>

            </span><span style="color: rgb(102, 102, 0); ">}</span><span style="color: rgb(0, 0, 0); "> <br>        </span><span style="color: rgb(102, 102, 0); ">},</span><span style="color: rgb(0, 0, 0); "><br>
        </span><span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>            </span><span style="color: rgb(0, 136, 0); ">&quot;type&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;Feature&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

            </span><span style="color: rgb(0, 136, 0); ">&quot;geometry&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;type&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;MultiPoint&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;coordinates&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[[-</span><span style="color: rgb(0, 102, 102); ">80.55</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">30.04</span><span style="color: rgb(102, 102, 0); ">,-</span><span style="color: rgb(0, 102, 102); ">1</span><span style="color: rgb(102, 102, 0); ">],[-</span><span style="color: rgb(0, 102, 102); ">79.00</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">31.00</span><span style="color: rgb(102, 102, 0); ">,-</span><span style="color: rgb(0, 102, 102); ">1</span><span style="color: rgb(102, 102, 0); ">],[-</span><span style="color: rgb(0, 102, 102); ">78.00</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 102, 102); ">32.00</span><span style="color: rgb(102, 102, 0); ">,-</span><span style="color: rgb(0, 102, 102); ">1</span><span style="color: rgb(102, 102, 0); ">]]</span><span style="color: rgb(0, 0, 0); "> <br>

            </span><span style="color: rgb(102, 102, 0); ">},</span><span style="color: rgb(0, 0, 0); "><br>            </span><span style="color: rgb(0, 136, 0); ">&quot;properties&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">{</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;sensorId&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;link to further sensor metadata/links as XML/JSON&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;obsType&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;water_temperature&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;uomType&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 136, 0); ">&quot;celsius&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;time&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[</span><span style="color: rgb(0, 136, 0); ">&quot;2009-03-31T10:50:00Z&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;2009-03-31T11:50:00Z&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;2009-03-31T12:50:00Z&quot;</span><span style="color: rgb(102, 102, 0); ">],</span><span style="color: rgb(0, 0, 0); "><br>

                </span><span style="color: rgb(0, 136, 0); ">&quot;value&quot;</span><span style="color: rgb(102, 102, 0); ">:</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(102, 102, 0); ">[</span><span style="color: rgb(0, 136, 0); ">&quot;17.0&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;18.0&quot;</span><span style="color: rgb(102, 102, 0); ">,</span><span style="color: rgb(0, 136, 0); ">&quot;19.0&quot;</span><span style="color: rgb(102, 102, 0); ">]</span><span style="color: rgb(0, 0, 0); "> <br>

            </span><span style="color: rgb(102, 102, 0); ">}</span><span style="color: rgb(0, 0, 0); "> <br>        </span><span style="color: rgb(102, 102, 0); ">}</span><span style="color: rgb(0, 0, 0); "> <br>
    </span><span style="color: rgb(102, 102, 0); ">]</span><span style="color: rgb(0, 0, 0); "> <br></span><span style="color: rgb(102, 102, 0); ">}</span></pre></div><div><br></div><div>Not sure if the above schema is kosher in regards to GeoJSON property listings containing time/value lists which might be cross-associated with location lists or potential nesting of properties(contact lists with similar contact properties) at the featurecollection metadata level.</div>
<div><br></div><div>The follow-up question that I&#39;ve had is that if someone makes a bounding-box request for several platforms, could the above type featurecollection results be further nested within a featurecollection of multiple platforms.</div>
<div><br></div><div>Thanks</div><div>Jeremy Cothran</div><font color="#888888"><div>Software Developer</div><div><a href="http://groups.google.com/group/xeniavm" target="_blank" style="color: rgb(42, 93, 176); ">http://groups.google.com/group/xeniavm</a><br>
</div><div><br></div></font></span><font color="#888888"></font>