kartoza / geonode

GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.
http://geonode.org/
GNU General Public License v3.0
8 stars 17 forks source link

Maps model / view should use a standard API #145

Open gubuntu opened 7 years ago

gubuntu commented 7 years ago

This will be a research and development (R&D) exercise to see if we can standardise the maps models and views so that we can use an abstracted interface for all backend maps providers.

lucernae commented 7 years ago

Taken from the comment from #146:

All maps related code is in geonode.maps package. So, my proposed approach would be to review all the urlpattern for that package. @ismailsunni and @Gustry had already made switching code in the past, however, we don't have any reiliable way of testing which works at the moment.

Here's the list of urlpattern as of now:

Some of the urls were already implemented. We need to refactor (make it tidy) and make the tests switch for corresponding backend.

ismailsunni commented 7 years ago

List of API for map:

lucernae commented 7 years ago

Update on this issue:

From the Map models, we can see that GeoNode doesn't actually saves connection for layer used in GeoNode maps with GeoNode Layer models, so there is no way to know the associated layer objects from the API directly. However it is still possible to query the relation by taking the layer name and local flag (local means saved by GeoNode). The map presentation/UI itself were served by directly passing the OWS url to the frontend map library. This is not currently abstracted, so it is difficult if we switch frontend map library, because we had to implement or check that the view works with the target frontend map library.