Import from spreadsheet/csv
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 598
- Forks
- 113
- PR merge metrics
- No merged PRs in 30d
Description
Hey guys, for being new his addon looks very nice, thanks!
I have a real-world use case and a feature request for importing "favorites" as you call them.
I was a co-founder of a disaster relief non-profit that moves emergency supplies to hurricane victims in the United States + Caribbean via volunteer aircraft. We filled up private jets and private helicopters and used them to deliver medical supplies, non-perishable food, clothes, and basic cleaning/hygiene products to people who were landlocked due to flooded or otherwise obscured roads (felled trees and power poles, for instance). The name of the org is Operation Airdrop if you care to google them and take a look.
One of the core features of Google maps and its ability to integrate with Google cloud apps that we used for non-developer staff was the ability to plot their spreadsheet entries on a custom map. We accomplished this by having every shared spreadsheet they created get a LAT column and a LONG column, and we would use the Google Places API via a webhook service at a certain interval (Zapier or Integromat) to scan fields that might contain location data (addresses or home airports for aircraft volunteers typically) and automatically update the sheet LAT/LONG columns with the coordinates.
Here's the result of the rather simple above workflow...

In the above map we can visualize all of our volunteers and see by location which ones live near an event we are working on and which ones live farther away. We color code them blue (purple) by default and would manually color yellow the "high value" ones with bigger aircraft that we should contact individually to ensure that we had proper staff, space, and equipment to handle their airplane. From this map we can contact those within a certain radius of an event very easily and find out which ones are likely to show up versus which ones are too far and not likely to show up. This doesn't require a lot of complex shape drawing functionality to extract datasets from the map layer, it can be done by zoom level.
Here's the detail view of a location on the above map...

Google allows direct import of sheets as map points with custom context data by simply turning columns and cells into key/value pairs. This process is not automatic, mind you, if a user wishes to change the columns in the sheet, they must manually delete the map layer and re-import the sheet data to modify the map. This is one of those cases in which flexibility overrides automation.
Lots of third party libraries are able to turn CSV info leaflet JSON data or KML, so this seems like a natural way to go for this Nextcloud integration as well, seeing as Nextcloud has spreadsheet collaboration built in already.
I don't know of anyone else that provides this sort of functionality to non-developer end users. There are projects and examples which accomplish similar things, though (such as this one and this simple example). This seems like a potential "killer feature" for Nextcloud that no one else does for a non-developer audience (outside of Google, anyway).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no repository files, tests, or entry points. Start by defining how spreadsheet/CSV rows should become map points, including latitude/longitude and column key/value metadata; done should include a documented import flow that displays the imported locations and their custom data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- data, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100