Closed vdubya closed 8 years ago
At site level, the placement coordinates of a site match GeoJSON's format. In GeoJSON, the CRS of a GeoJSON object is determined by its CRS object. If it doesn't have a CRS object, the default CRS shall apply to the GeoJSON object, which is the WGS84 datum. That's how BIMJSON handles the site placement coordinates.
But, when specifying the coordinates of the geometry of the site and the placement of the building, BIMJSON uses a local, non-geographic coordinate system. Its origin is the placement of the site and the coordinates are displacements of points along the X-,Y-, and Z-axes relative to the site origin.
Stepping into the hierarchy of the building model, the floors and spaces use the building placement as their coordinate system's origin.
In other words, each level inherits a coordinate system with the origin at its parent's "placement". This is really the fundamental difference between a geo-referenced system with all the coordinates using the same CRS while BIM applications use localized coordinate systems.
Of course, one could translate all coordinates used in BIMJSON objects by running them through transformations to calculate the geo-referenced coordinates and then doing the reversed transformations again to calculate the local coordinates when reading the BIMJSON for a BIM application.
Despite the clear benefits regarding GeoJSON and GIS, handling the coordinates like this would probably significantly slow down the reading and writing of BIMJSON files and would make it harder for developers to adopt for their BIM applications since they would have to implement complex transformations at every level. In addition it would also in some ways even contradict the concept of "BIM"-JSON as being different from "GEO"-JSON. All BIM applications that I'm aware of work with local, non-geographical coordinate systems.
Now maybe there would be a way in GeoJSON to define non-geographical coordinate systems based on the parent's coordinates. In the GeoJSON specifications, I think one could potentially specify a different CRS for each object. If that's the case and one could "link" the CRS object to grandparent's placement, one could potentially use a local reference system. All we would have to do is to add a CRS object to the building and floor geometries. Interesting... - not sure if it works though.
@vanwoods strange: when I add a comment in Github, it appears in Trello as a comment by Van Woods... - not that I mind but it might get confusing :smile:
Ahem, that is VERY confusing. I can barely keep track of myself much less my alternate me's :)
I like the idea of gitio integration with trello but apparently will require some troubleshooting?
@thomasdalbert1 Did some looking into it, appears that everybody needs to go to http://goo.gl/qoQI3J and sign in for Github/Trello linkage to work.
@thomas-dalbert I understand what you're saying and agree that the relative placement is a core principle in BIM vs GIS. Thing is if we can get relative placement to work as a subset of GeoJSON than we can use GeoJSON viewers. We certainly don't want to add computational and complexity overhead so alternatively as you mention there could be a function to transform from one to the other.
Bottom line, I'd like to see some method to utilize the filename extension .geojson on GitHub as a way to visualize building data.
I'm looking at the GeoJSON CRS a little more to see if relative placement is possible.
I'm also reading up on WKT a little more as it appears they support curvature. KML does too from what I recall you saying. Appears that symbology of geometry is another issue that GeoJSON doesn't address (I think).
It seems at first glance that there would be significant advantages to being a literal extension to GeoJSON, given that existing parsers could read/render the simplified geometry. For example, GitHub will display files that utilize a filename extension of .geojson.
If Coordinate Reference System (CRS) is the primary roadblock, my read is that it is optional, no?
So technically, wouldn't it be legitimate to call it an extension that could use or omit CRS?
Potential Benefits:
Potential Cons:
Thoughts?