Hi All,

Sharing about a recent collaboration I did with Rajesvari Parasa to turn a
development plan PDF into an web based interactive map. Spinoffs from here
may be useful to the data community.

Here's the output:
https://draftmpd41.github.io/




Sharing what went into it:

1. Extracting from PDF
- It's one of those PDFs exported from Autocad or so where you can see
multi-layers and turn them on or off.
- Rajesvari used a command-line GIS tool called "ogr2ogr
<https://duckduckgo.com/?t=lm&q=ogr2ogr&ia=web>" to extract individual
layers from the PDF into .geojson shapefiles.
- There was a tricky bit where the output lat-longs were all like
(716882.20,3166456.28) - a different CRS and we didn't know which.
- I used http://projfinder.com/ to find it, then Rajesvari included CRS
conversion into the ogr2ogr commands to produce proper shapefiles.
- You can see all that in this repo:
https://github.com/draftmpd41/layers_draft_delhi_master_plan_2041 - see the
.bat file for the ogr2ogr commands


2. Poor person's GIS system
- I cobbled together a static website (html + vanilla javascript) that
mimics those geoserver-driven multiple-layers-groups sites like we see at
Bhuvan and various municipal corporations' GIS portals.
- Code: https://github.com/draftmpd41/draftmpd41.github.io
- Parameterised the whole thing: By editing a small JS file and CSV table,
you can repurpose this to make it yours.
- The site is static, as in: no backend. Can run it anywhere.
- Loads layers only when user clicks on them first time. So, site loads
quickly even if data is heavy.
- Disclaimer: if you don't want your site visitors grabbing all the data,
then please go the geoserver way. This one's for open sharing (F12 >
Network > XHR)


3. Developed but not deployed: Citizens inputs layer
- Here, I added in a citizens' inputs form to capture geo-located comments.
The comments go to a backend program where they're saved in a basic MySQL
DB.
- We haven't activated this because there aren't any people on board to
admin the thing (moderation, spam prevention etc - nightmare).
- But the setup is simple and can be useful for others who want to do this,
so sharing it.
- Frontend with additional section and inputs layer:
https://github.com/draftmpd41/frontend-with-inputs
- Backend code: https://github.com/draftmpd41/draftmpd41_backend (in
python3)
- It's setup such that frontend and backend can be hosted separately.
- Disclaimer. It's simple and basic. No user accounts or spam prevention.
Moderation would have to be through phpMyAdmin on the backend server.

--
Cheers,
Nikhil VJ
https://nikhilvj.co.in

-- 
Datameet is a community of Data Science enthusiasts in India. Know more about 
us by visiting http://datameet.org
--- 
You received this message because you are subscribed to the Google Groups 
"datameet" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to datameet+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/datameet/CAH7jeuO9FPhfgNCMvBgAhqaw-74CNAkKRjNpDV3Me6TXzSHsYw%40mail.gmail.com.

Reply via email to