carocad / geojson.specs Goto Github PK
View Code? Open in Web Editor NEWa Geojson utility for validating data using Clojure(script)'s spec (RFC 7946)
License: GNU Lesser General Public License v3.0
a Geojson utility for validating data using Clojure(script)'s spec (RFC 7946)
License: GNU Lesser General Public License v3.0
The rfc provides some examples that could be used to test these specs
https://tools.ietf.org/html/rfc7946#appendix-A
I think that a generative approach would not fit here since it would be like doing of "judge and jury at the same time"
after much try and error I found out that it is not possible to have such function due to the way that Clojure spec works. Unfortunately clojure doesnt report any error and just silently creates a spec that seems to work but that doesnt really
However, there is an option to create it ... macros !!
it should be possible to create a macro that will resolve the geometry required
as a keyword and build an s/keys with it.
There is another problem however. We need to register all posible geometries beforehand and decide on macro execution which one to take based on the user input probably something like this:
(defmacro foo [keyspec]
(let [names {::geojson/linestring :line/geometry
::geojson/point :point/geometry}]
(s/keys :req-un [:hiposfer.geojson.specs.feature/type
(names keyspec)])))
however since I am not using the feature at the moment I havent tried it. If you want this feature and came to this point, please submit a PR so that we can all benefit from it :)
See #4 for an overview of the approach and the problems with it
See section 7.1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.