GeoNode / geonode

GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.
https://geonode.org/
Other
1.45k stars 1.13k forks source link

Vote 3rd Party App Support - Django-Leaflet-Storage #2184

Closed JJediny closed 6 years ago

JJediny commented 9 years ago

We've been testing/using a geodjango application that is the code behind the uMAP project, which is comprised of the django application Django-Leaflet-Storage and its map client Leaflet-Storage. At this point I'm comfortable proposing that I contribute these as supported 3rd party applications for co-development through the geonode community as a forked repository by the Geonode community.

The application itself provides a stable/user-driven map interface to create GeoJSON geographic features (points/lines/polygons/and their attributes) from scratch. Data is deserialized and stored directly in Geonode's Postgis DB with the only modification required being Geoenabling Geonode's existing DB by adding the PostGIs extension. All things including Basemap XYZ tile services are available through Geonode's admin interface but can be controlled by map creators to include our MapWarper Site as a Custom Basemap service created by users. Users/Editors are synonymous with Geonode's users. Vector data can be added as a remote service that can stream data from Geonode based on initial BBOX request or as a dynamic layer that will refresh at every pan/pause. The leaflet based app allows users to controller all aspects of style by inheritance (map->layer->feature) fill/opacity/color and perhaps most useful of all users can control how attribute from remotely (Geonode) data displays using a markdown like language to inject attributes into a blog like format for popup/panel display.

The application has filled a niche for our project for layer creation and iteration, and has not caused errors or issues within our production environment. I would like to contribute our work back so others can do the same.

Geonode Devs please vote/comment/question on this proposal

Here are some example maps I've been able to create with it: http://nepanode.anl.gov (see draft intro map) http://nepanode.anl.gov/geojson/m/14 (MapWarper Custom Basemap) http://nepanode.anl.gov/geojson/m/20 http://nepanode.anl.gov/geojson/m/19 http://nepanode.anl.gov/geojson/m/72

I was also able to extend Geonode's Existing API (but could use help on creating the list view in Geonode) http://nepanode.anl.gov/geojson/api/geojson http://nepanode.anl.gov/geojson/api/datalayer http://nepanode.anl.gov/geojson/api/pictogram

simod commented 9 years ago

@JJediny this is an interesting functionality indeed. I imagine a pluggable app for geonode ready to be just installed and run by everyone and yes we should have a repository of plugins where people go and get it, would be cool. I'm a bit concerned about forking libraries though, we are forking some libraries but just because they had bugs not solved in mainstream (like lack of support for newest django or swappable user model) but I would see your changes to these forks in a downstream installable app instead, both templates and APIs could be overridden there. If that could be possible. @ingenieroariel, @jj0hns0n, @capooti and others thoughts?

garnertb commented 9 years ago

@JJediny, just to be clear: You are proposing that the geonode developers begin actively maintaining https://github.com/JJediny/django-leaflet-storage and https://github.com/JJediny/Leaflet.Storage and to move these forks within the GeoNode organization?

JJediny commented 9 years ago

Not to actively develop nor maintain, just to offer a geonode compatible version as an optional extension to geonode from which others in the community interested in testing/using it can all work from a common compatiable fork. Maintained by those using it and always as a separate 3rd party running on top of geonode. This is also an example of how I think we should be collaborating on 3rd parties - that once there's support/use by community members it makes sense to leverage each other's work to integrate

ingenieroariel commented 9 years ago

I am +1 on making GeoNode compatible forks under the GeoNode org. I have used some of those myself in some projects.

On Wed, Jun 10, 2015 at 8:57 AM, John Jediny notifications@github.com wrote:

Not to actively develop nor maintain, just to offer a geonode compatible version as an optional extension to geonode from which others in the community interested in testing/using it can all work from a common compatiable fork. Maintained by those using it and always as a separate 3rd party running on top of geonode. This is also an example of how I think we should be collaborating on 3rd parties - that once there's support/use by community members it makes sense to leverage each other's work to integrate

— Reply to this email directly or view it on GitHub https://github.com/GeoNode/geonode/issues/2184#issuecomment-110764180.

garnertb commented 9 years ago

I am -1 on starting GeoNode compatible forks under the organization because it seems to imply that GeoNode core developers will maintain it. I think at a certain point, plugins become popular enough that they should be incorporated under the organization but they should start off outside of the organization until they prove their usefulness and sustainability.

ingenieroariel commented 9 years ago

After talking to @simod he explained to me that we may not really need the forks anyway, just an app that can work as a plugin. With that info and taking into account @garnertb's vote I believe the best path forward for @JJediny is to create a GeoNode plugin under his own repo and publish it to PyPi. I (and others) can pull it from there and if it becomes popular enough, we revisit the decision.

simod commented 9 years ago

Having an app would be fantastic, it will be the first plugin. @JJediny do you think you want to try this with some guidance from us?

JJediny commented 9 years ago

How about a new GeoNode Plugins org that could be separate but explicitly state each app is its own sub community with its own issues management? And manage packaging and release from there? No obligation from the core to join but obv reference to/by the rest of GeoNode possibility of at most conditional settings blocks and/or commented out apps/urls

gamesbook commented 9 years ago

I would like to see the list of apps being curated as part of the main GeoNode site rather than another org. Another package I worked on once, VisTrails, has a section of the main site which shows user-contributed packages (these are typically hosted and maintained "off site", with no guarantees or support from the VisTrails core team) - http://www.vistrails.org/index.php/UserContributedPackages

garnertb commented 9 years ago

@gamesbook, thats what I was thinking as well.

jj0hns0n commented 8 years ago

@JJediny any update on this? Moving to 2.7 anyway.