Jakiego systemu mapowania sieci Python użyć? [Zamknięte]


19

Jestem zainteresowany opracowaniem aplikacji do mapowania stron internetowych. Stosunkowo dobrze znam Python, dlatego szukam frameworka Python. Jakie są moje opcje? jakie są zalety i wady każdej opcji?

Szukam prostej opcji, która wyświetla informacje geograficzne na mapie i pozwala użytkownikowi użyć „informacji”, aby uzyskać więcej szczegółów. W tym momencie nie potrzebuję żadnych zapytań ani dynamicznej funkcjonalności. Wolałbym dobrze udokumentowaną opcję.


4
Musisz podać więcej informacji. Na jakie funkcje patrzysz? Jakiego rodzaju mapowanie internetowe chcesz zrobić?
Devdatta Tengshe,

Odpowiedzi:


15

Wypróbuj Folium , naprawdę łatwo jest zacząć: tworzysz projekt za pomocą Pythona i po prostu otwierasz wynikową mapę.

Jeśli chcesz zejść głębiej, możesz sortować według malejącej prostoty:

  • GeoDjango z dodatkami takimi jak Django-Leaflet . Naprawdę najlepszy dokument tutaj
  • FeatureServer Bardziej zorientowany na serwer, ale demo OpenLayers ( ostatnia aktualizacja 2015 )
  • Sam MapFish . Na podstawie obecnie nieaktualnych pylonów ( ostatnia aktualizacja 2011 r. )
  • Papyrus , integracja Mapfish w Pyramid, dobrze znanym frameworku Python ( ostatnia aktualizacja 2017 )

Jak Folium wypada w porównaniu z GeoDjango pod względem posiadanych możliwości?
multigoodverse

2
Folium = głównie do podglądu danych na mapie internetowej i generowania statycznej mapy internetowej. Brak możliwości edycji tutaj. Z drugiej strony GeoDjango = do zarządzania danymi w dynamicznej witrynie internetowej. Będziesz musiał napisać więcej kodu, ale możesz zrobić pełną stronę internetową, ponieważ GeoDjango jest tylko rozszerzeniem frameworka Django (aby utworzyć pełną stronę internetową). Możliwa jest również edycja dostępnych umiejętności, zarządzanie użytkownikami i grupami.
ThomasG77,

8

Możesz spróbować GeoDjango .

To może być przesada w tym, co chcesz zrobić, ale wydaje się, że spełnia kryteria, których szukasz. Jest to platforma internetowa oparta na języku Python, która zawiera wiele świetnych projektów GIS, takich jak gdal / ogr, OpenLayers, i obsługuje użycie geobaz, w tym postgis / postgres.

Eksperymentowałem z tym z przerwami od kilku miesięcy i do tej pory mi się podobało. Na pewno jest krzywa uczenia się, ale dokumentacja jest dość dobra i istnieje silna społeczność użytkowników.

Uważam, że jest to naprawdę elastyczna platforma i bardziej dojrzała niż się spodziewałem. Spójrz, jeśli jeszcze tego nie zrobiłeś.


8

Jeśli chcesz mieć podstawową usługę internetową w Pythonie, istnieją dwa sposoby:

  • geodjango, jest to oficjalne rozszerzenie zintegrowane z django. Działa świetnie, ale jest skoncentrowany na Django. Jeśli lubisz django, jest idealny
  • flask (lub inny webframework) + geoalchemy2 (rozszerzenie sqlalchemy) + foremna (lirairy do manipulowania Geo-obiektem), może to trudniejsze niż geodjango, ale to moje ulubione rozwiązanie. Wolę jinja2 i sqlalchemy niż szablon i orm django.

Następnie podłącz go do openlayers lub ulotki.

Ale spójrz na standardowe rozwiązania serwera WMS lub WFS, może to być pomocne.


0

Co powiesz na MapFish, który sam w sobie jest

elastyczny i kompletny framework do tworzenia bogatych aplikacji do mapowania sieci ... oparty na frameworku WWW Pylons Python.

Nie mogę twierdzić, że go użyłem, ale jest on wstępnie zainstalowany na mojej maszynie OSGeo Live - OpenLayers i TileMill były moimi „frameworkami” mapowania sieci (cokolwiek to znaczy), ale żadne z nich nie używa dużo Pythona. W oparciu o ich stronę internetową i ich powiązanie z OSGeo nie zawaham się polecić przetestowania ich technologii, chociaż, jak mówi powyższy komentarz, twój wybór powinien zależeć od aplikacji, a nie tylko języka, w którym jest napisany.

Ich demo online wydaje się działać wydajnie i wygląda na projekt z rozmachem: dlaczego nie spróbować ich samouczka „Szybki start” i zobaczyć, jak dobrze pasuje do twoich potrzeb?


2
Mapfish nie jest już aktywny.
raphael
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.