From 744fda55a8096141754690c0ad11c4638c3593f5 Mon Sep 17 00:00:00 2001 From: Mathieu Leplatre Date: Mon, 2 Apr 2012 16:10:49 +0300 Subject: [PATCH 1/2] My two cents contribution --- content/dev/carto-forms.rst | 85 +++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 23 deletions(-) diff --git a/content/dev/carto-forms.rst b/content/dev/carto-forms.rst index 68d4ddb..d4f78f0 100644 --- a/content/dev/carto-forms.rst +++ b/content/dev/carto-forms.rst @@ -18,10 +18,10 @@ This idea has been stuck in my head since then and I even think that we can come out with something a little bit more flexible and useful. I've named it *carto-forms* for now, but that's only the "codename". -To put it shortly: what if we had a way to build forms, ala google forms, but +To put it shortly: what if we had a way to build forms, ala Google forms, but with geographic information in them? -If you don't know google forms, it means having an user-friendly way to build +If you don't know Google forms, it means having an user-friendly way to build forms and to use them to gather information from different users. In my opinion, Google forms is missing two important things: first, it's not @@ -37,16 +37,13 @@ Imagine the following: 1. For a mapping party, we choose a specific topic to map and design the form (list of fields (i.e. tags) to be filled + description + type of the - information) + information) ; 2. In situ, users fill the form fields with what they see. Geo fields can be - prepopulated using device geolocation -3. At the end of the day, we can see a map with all user contributions using - this particular form. -4. A script can import the resulting dataset and publish/merge with Open Street - Map - -Example uses for this include recycling spots, accessible spots (wheelchairs, -etc.), map advertisement boards (most cities do not track them!)… + prepopulated using device geolocation ; +3. At the end of the day, we can see a map with all user contributions seized + through this particular form ; +4. If relevant, a script could eventually import the resulting dataset and + publish/merge with OpenStreetMap. Some use cases @@ -92,6 +89,17 @@ To push the cursor a bit further, if we can come with a cool description format for the forms, we could even build the forms dynamically on different platforms, with generic clients. + +As mentioned before, the idea of a simple tool to support collaborative mapping +fullfils a recurring necessity ! + +We envision a lot of example uses for this : recycling spots, accessible spots (wheelchairs, +etc.), trees identification, mushrooms picking areas, tracking of endangered species +(e.g. Bonelli's Eagle is currently tracked by sharing a spreadsheet), spotting of dangerous +species (e.g. asian predatory wasps), map advertisement boards (most cities do not track them!), +citizen reporting (e.g. graffiti, potholes, garbage, lightning like http://fixmystreet.ca), +geocaching, trajectories (e.g hiking, runners, cyclists)... + Here are some other examples of where *carto-forms* could be useful: Simple GIS storage backend @@ -101,27 +109,53 @@ Let's say you are a mobile developer, you don't want to bother with PostGIS nor write a custom and insecure code to insert and retrieve your GIS data! You need carto-forms! A simple API helps you design your models/forms and the same API allows you to CRUD and query your data. Thus, you only need to focus -on your application, not on how GIS data will be handled. Distinguish storage -from widgets. +on your application, not on how GIS data will be handled. + +We make a distinction between storage and widgets. + +Besides, if you are a django / drupal / plomino... maintainer : you +can develop a module to "plug" your models (content types) and UI to carto-forms! +Carto forms are then exposed to your backoffice users (ex: drupal admin UI, django +adminsite), and likewise you can write your own HTML widgets that consume datasets +in frontend views (facets in JSON/XML, and map data in GeoJSON). -Besides, if you are a django / plomino / drupal/... maintainer : you -can develop a module to "plug" your UI to carto-forms! That's how you will -expose carto forms to your backoffice users (ex: drupal admin UI, django -adminsite). Likewise, you can write widgets that consume datasets in frontend -views (using any webmapping js library) Visualization tool ------------------ -I can explore my dataset content using filters related to each form field. -Faceting can be an idea in order to ease filtering. A map shows the resulting -features set, and raw data can be downloaded (geojson, xml). Ideally, I would -like to obtain a filtered dataset using a Web API. +Since data submission can be done programmatically using the API, you could use Carto-forms +results page as a visualization tool. + +You can explore my dataset content using filters related to each form field. Facets filtering +is a great advantage, and a map shows the resulting features set. You feel like you're in +front of a decision support system ! + +Of course, filtered raw data can be downloaded (GeoJSON, XML) and a permalink allows to +share the page with the state of the filters and the zoom/location of the map. + + +Generic forms service +--------------------- + +If you want to generate a configuration file (or whatever, email messages, ...), +you will need a form and a template to inlay user submitted values and get the result. + +A form service would be really useful to create forms programmatically and retrieve +cleaned and validated input values. + +You could run a dedicated template service based on *carto-forms*! Parsing a template +content, this external service could create a form dynamically and bind them together. +The output of the form service (fields => values) would be bound to the input of a template +engine (variables => final result). + +Note that for this use-case, there is no specific need of GIS data nor storage of records +for further retrieval. + What's out in the wild already? =============================== -Of course, there is google forms, which allows you to do these kind of things, +Of course, there is, which allows you to do these kind of things, but it's closed and not exactly what we are describing here. We've discovered the interesting https://webform.com/ which allows one to create @@ -129,6 +163,11 @@ forms with a nice drag-n-drop flow. I would love to reproduce something similar for the user experience. However, the project doesn't handle APIs and geolocation information. +The idea of http://thoth.io is very attractive : an extremely simple web API to store +and retrieve data. In addition, *carto-forms* would do datatype validation and have +basic GIS fields (point, line, polygon). + + So… Let's get it real! ====================== From a253d6a10a0a4cb48d4de3602e4cd9ec82f47005 Mon Sep 17 00:00:00 2001 From: Mathieu Leplatre Date: Mon, 2 Apr 2012 16:13:43 +0300 Subject: [PATCH 2/2] Fix mysterious disparition --- content/dev/carto-forms.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/dev/carto-forms.rst b/content/dev/carto-forms.rst index d4f78f0..378d30f 100644 --- a/content/dev/carto-forms.rst +++ b/content/dev/carto-forms.rst @@ -155,7 +155,7 @@ for further retrieval. What's out in the wild already? =============================== -Of course, there is, which allows you to do these kind of things, +Of course, there is Google forms, which allows you to do these kind of things, but it's closed and not exactly what we are describing here. We've discovered the interesting https://webform.com/ which allows one to create