Jakie technologie i zestawy umiejętności powinien ktoś, kto chce studiować / nabywać rozwój GIS?
Poproszę jedną umiejętność / technologię na odpowiedź.
Jakie technologie i zestawy umiejętności powinien ktoś, kto chce studiować / nabywać rozwój GIS?
Poproszę jedną umiejętność / technologię na odpowiedź.
Odpowiedzi:
Mogę opowiedzieć o moim doświadczeniu, które zaczęło się jako zwykły geograf, próbując używać produktów GIS do analizy przestrzennej.
Jak powiedziałem, jestem geografem i od początku w college'u zacząłem pracować z GIS jako użytkownik. Potem zacząłem badać, jak zautomatyzować żmudne zadania, które musiałem często wykonywać. To była pasja, a po 3 trzech latach jestem zatrudniony w międzynarodowym domu oprogramowania, który współpracuje z wieloma systemami GIS i opracowuje niestandardowe rozwiązania.
Moje kroki to:
Dowiedz się dobrze GIS. Nie zaczynaj nauki programowania bez posiadania podstawowego prawa. Rzuty i przekształcenia, analiza przestrzenna, różnice między modelem rastrowym i wektorowym itp.
Poznaj podstawy bazy danych: Wprowadzenie do systemów baz danych , Podstawy systemów baz danych . Dwie książki są nieco inne. Pierwszy z nich jest obfity w teorię, drugi ma bardziej praktyczne podejście.
Naucz się SQL. To właściwie druga część do pierwszej. Pomoże ci to bardzo, jeśli zaczniesz myśleć w sposób „sprytny”. Zmiany SQL od dostawcy do dostawcy. Mogę polecić Ci PostgreSQL, który jest dostawcą, który najbardziej przestrzega standardu. Jeśli chcesz nauczyć się określonych dialektów, zrób to później, kiedy naprawdę będziesz tego potrzebować.
Programowanie obiektowe. Wydaje się to wyzwaniem, ale zrozumienie podstaw jest dość łatwe. Wybierz łatwy język, aby to zrobić. Python jest zdecydowanie najłatwiejszy. Nauka języka Python jest doskonałym punktem wyjścia. Istnieją otwarte i darmowe książki w języku Python, takie jak Dive into Python . Po Pythonie interesujące opcje to: .NET, Java i C / C ++.
Programowanie studiów. Czytaj kod, pisz kod. Czytaj kod geoprzestrzenny. Napisz kod geoprzestrzenny. Poznaj klasyczne interfejsy API: GEOS, JTS, GDAL, ArcObjects (jeśli jesteś fanem ESRI - i to duży plus na rynku) itp.
- Weź problem geoprzestrzenny i napisz kod, aby go rozwiązać. Nie mogę podkreślić, jak jest to użyteczne. Doprowadzi Cię to do szaleństwa, ale jest to bardzo dobry sposób na potwierdzenie, że nauczyłeś się programowania i upewnienie się, że Twoje umiejętności geoprzestrzenne są aktualne. W moim przypadku napisałem małą aplikację PostgreSQL do geocode wypadków drogowych.
Kontynuuj naukę. Standardy OGC są tutaj dobrym wyborem.
Poznaj swoją bazę danych. Każdy programista GIS będzie z nich intensywnie korzystać.
W szczególności:
Zakładając, że znasz już stronę GIS (zasady kartograficzne itp.), Najpierw wybrałbym się na stronę http://www.w3schools.com/ - zapoznaj się z samouczkami w HTML, JavaScript, XML itp.
Następnie masz wiele różnych platform do wyboru. Jestem trochę stronniczy w stosunku do ESRI i poleciłbym zacząć od zabawy interfejsami API
http://resources.arcgis.com/content/web/web-apis
- Przejrzenie koncepcji / próbek daje prawdziwe pojęcie o tym, co możesz osiągnąć.
Uważam, że pobieranie próbek kodu i inżynieria wsteczna do pracy z własnymi usługami (zakładając, że masz instancję ArcGIS Server, w przeciwnym razie możesz użyć przykładowych serwerów ESRI) to dobry sposób na naukę.
Istnieje również wiele filmów, obejrzyj filmy z konferencji dla programistów. Polecam Omówienie interfejsów API ArcGIS dla JavaScript, najlepszych praktyk w zakresie projektowania skutecznych usług map, przeprojektowywania aplikacji komputerowych dla Internetu i korzystania z interfejsu API REST ArcGIS Server.
Którą platformę internetową wybierzesz? Nie mogę zignorować patrzenia na WebADF (Java / NET), ponieważ będzie on stopniowo wycofywany.
Kim są twoi klienci? z jakich przeglądarek będą korzystać? Czy mogą zainstalować wtyczki Silverlight lub Flash? Czy masz jakieś IDE do opracowania? np. Flex jest najlepszy we FlashBuilder ($$), ale możesz także użyć FlashDevelop, który jest alternatywą typu open source.
Czy czujesz się bardziej komfortowo z uznanymi technologiami lub nowymi technologiami? Zważyć ryzyko.
- .NET / Java istnieje od wieków - Silverlight i Flex są dość nowe i trwa debata, czy HTML 5 usunie te platformy
Zarówno Silverlight, jak i Flex mają większą interaktywność od razu po wyjęciu z pudełka, ponieważ JavaScript uzupełnia tę lukę, polegając na Dojo.Framework.
Duża różnica w funkcjonalności między ADF i Web API polega na tym, że API Web ArcGIS są całkowicie po stronie klienta.
Zostawię kogoś innego, aby udzielił odpowiedzi mniejszej niż ESRI, ale oczywistym wyborem jest rozpoczęcie zabawy z interfejsem API Map Google - Istnieje wiele zasobów / samouczków do nauczenia się tego.
JavaScript, HTML DOM, CSS, HTTP
Jeśli je opanujesz, możesz robić wszystko w Internecie. Dodanie ładnych interfejsów API, takich jak SVG, może ułatwić, a twoje aplikacje internetowe będą ładniejsze, ale IMO nigdy nie będziesz w stanie ominąć czterech wymienionych powyżej.
Zakładając, że udało Ci się uporządkować przestrzenną bazę danych i serwer map [opisany w innych odpowiedziach tutaj] i pogłębić znajomość HTML, CSS i JavaScript, możesz zacząć majstrować przy bibliotekach klienckich, które zużywają i wyświetlają komponenty mapy w przeglądarce internetowej użytkownika.
OpenLayers wydaje się być zdecydowanie najczęściej używaną biblioteką. Ma całkiem dobrą dokumentację i przykłady, i możesz znaleźć tutoriale, na przykład tutaj . Strony BostonGIS przydadzą się tutaj również dla ciebie, nie tylko dla rzeczy OpenLayers.
W zależności od twojej wiedzy / chęci do nauki Python MapFish jest również bardzo wdzięcznym rozwiązaniem. Możesz też zagłębić się w GeoDjango , jednak sam nie mogę komentować tego rozwiązania.
Alternatywnie możesz spojrzeć na rozwiązania mapowania sieci OSGeo , przejść do Flasha lub użyć czegoś komercyjnego, takiego jak interfejsy API ESRI Web .
Zgadzam się z Adamem, że przestrzenna baza danych i SQL powinny być punktem wyjścia.
Po tym warto spojrzeć na drugą warstwę przyszłego geostacka . Będziesz potrzebował czegoś, co będzie działało jako pomost „obsługujący” Twoje dane z przestrzennej bazy danych do klienta w przeglądarce użytkowników.
Upewnij się, że rozumiesz pojęcia WFS i WMS .
Zainstaluj i zacznij grać lokalnie na własnym serwerze. Dwoma dobrze znanymi projektami objętymi przez Open Source Geospatial Foundation są GeoServer i MapServer . Warto też zajrzeć na serwer map QGIS . Serwer ArcGIS byłby tutaj [kosztowny!] Komercyjnym odpowiednikiem.
Po uporządkowaniu tej części możesz zacząć bawić się bibliotekami klientów.
Mapnik lub dowolne inne narzędzie do renderowania map do tworzenia kafelków map.
Prawie każdy programista GIS musiałby użyć narzędzi do renderowania map lub przynajmniej zrozumieć podstawowe pojęcia dotyczące warstw i kafelków.
Poznaj swój system operacyjny serwera, serwer WWW (IIS, Apache, cokolwiek) i jak zabezpieczyć swoje rzeczy - nawet jeśli ktoś robi to wszystko za Ciebie.
Możesz przejść przez mój kurs (https://www.e-education.psu.edu/geog585/), który (myślę) daje dobre wprowadzenie i powinien zacząć działać.
Nie mogę wystarczająco podkreślić drugiego od ostatniego komentarza George'a. Wybierz problem geoprzestrzenny i / lub sieciowy, który Cię interesuje, i dowiedz się o wymaganych technologiach podczas jego rozwiązywania.
Jeśli poświęcisz trochę czasu na zdobycie biegłości we wszystkich wymienionych wyżej obszarach, minie wieczność, zanim zaczniesz budować projekt, który zadraży cię.
Proponuję zacząć od zbudowania aplikacji przy użyciu OpenLayers do zbudowania aplikacji mapujących dane z niektórych istniejących usług danych. Następnie możesz przejść do tworzenia własnych źródeł danych lub usług. Jeśli będziesz trzymać się technologii FLOSS, będziesz mógł budować i używać swoich aplikacji w dowolnym miejscu bez problemów z licencją.