Jakie są największe wyzwania podczas tworzenia oprogramowania GIS?
Czy to koduje? Czy rozumie pojęcia kartografii / geografii / itp. (Np. Projekcje)? Lub inne trudności?
Jakie są największe wyzwania podczas tworzenia oprogramowania GIS?
Czy to koduje? Czy rozumie pojęcia kartografii / geografii / itp. (Np. Projekcje)? Lub inne trudności?
Odpowiedzi:
Mówiąc z mojego doświadczenia jako programisty, który wpadł na scenę rozwoju ESRI / GIS prawie 5 lat temu:
Jak możesz powiedzieć, mam dość negatywne spojrzenie na scenę rozwoju ESRI. Dla tych, którzy pochodzą z geografii, jestem pewien, że możliwości są bardzo ekscytujące. Ale dla kogoś takiego jak ja, który uwielbia relacyjne bazy danych, programowanie obiektowe i szeroko otwarte możliwości tworzenia kreatywnych rozwiązań, tworzenie GIS za pomocą ESRI jest bardzo ograniczające i niespełniające wymagań. Szkoda, bo stary szkolny tłum mówi mi, że przed przystosowaniem się do Microsoftu było to lepsze środowisko. Mam szczerą nadzieję, że społeczność Open Source będzie nadal wprowadzać innowacje.
Duże ilości danych. Wybranie właściwego sposobu wydobywania dużych ilości danych za pomocą technologii internetowej było wyzwaniem. Możemy albo mieć dużo danych i słabą wydajność, albo wyświetlać o wiele mniej danych, ale potencjalnie przekazywać nieprawidłowe informacje.
Nie jestem programistą GIS; jednak jestem modelarzem GIS:
Wyzwania:
Gromadzenie danych, agregacja, dezagregacja, scalanie i dzielenie: Otrzymuję dane z różnych źródeł dla różnych projektów; największym problemem jest zwykle uzyskanie wszystkich danych dla tej samej działki / obszaru geograficznego. Zwykle muszę użyć kilku wyżej wymienionych technik na każdym zestawie danych, aby uzyskać spójną próbkę dla projektu. Zwiększa to prawdopodobieństwo błędu i osłabia naszą precyzję.
Nie jestem programistą; Powtarzam, że nie jestem programistą: kiedy wy, cudowni ludzie, rozmawiacie o Indeksach SOAP, SHAMPOO, REST, GIS-T itp., To wiele dla was znaczy. Dla mnie przeważnie jest to żargon. Zazwyczaj mam dużą krzywą uczenia się lub stromą wspinaczkę, aby wykonać proste czynności.
Różnica między FOSS a oprogramowaniem prawnie zastrzeżonym: uwielbiam QGIS i postgis na śmierć; dosłownie mam je zainstalowane na każdym komputerze; jednak gdy chcę przeprowadzić analizę opartą na transporcie, muszę skorzystać z TransCAD lub EMME2 / 3. Każda kosztuje około 15 000 $ z wszystkimi dzwonkami i gwizdkami. Szczerze mówiąc, wszystkie te problemy można by rozwiązać, gdyby istniał pakiet Networkx dla plików shp.
Problem wielu dyscyplin: Jestem dobrze zaznajomiony z technikami modelowania transportu; jakkolwiek jestem do bani modelowania demograficznego i, o ile mogę powiedzieć, muszę korzystać z wyrafinowanych narzędzi R, aby uzyskać dane. Problem GIS polega na tym, że GIS to dziedzina multidyscyplinarna, której przetrwanie na własną rękę jest trudne.
Brak dobrze ugruntowanych narzędzi i oprogramowania umożliwiającego przejście od użytkowania gruntów ze zdjęciami do użytkowania gruntów wektorowych: Przewiduję przyszłość, w której narzędzie przeanalizuje zdjęcie satelitarne GEOEYE i porówna wykorzystanie terenu w nim z bazą danych wektorów (w stanie zbudowanym)
Czasami robienie rzeczy w Excelu jest szybsze / „Twój ulubiony program do tworzenia arkuszy kalkulacyjnych idzie tutaj: Czasami chcę przeprowadzić analizę tranzytu, dużo szybciej jest pobrać dane umieścić je w programie Excel, wykonać formuły, a następnie zrzucić dane z powrotem do postgis jako pliku csv i zregeneruj mapę. Taki podział, szczególnie w świecie OpenSource, powinien być lepiej obsłużony.
W każdym razie mogłem nie odpowiedzieć ci poprawnie; Chciałbym tylko być dobrze zorientowanym w programowaniu GIS, aby móc przodować w modelowaniu GIS
Najważniejsze i zwykle najtrudniejsze z mojego doświadczenia są:
Myślę, że punkt 1 będzie łatwiejszy w krajach rozwiniętych, ale to nie jest moje doświadczenie.
Dla mnie największym wyzwaniem jest decyzja, jakich narzędzi użyć dla danego projektu. Open source czy zastrzeżone? Python lub .NET? Internetowy czy stacjonarny? Odpowiadam na te pytania inaczej dla różnych projektów i jestem pewien, że ludzie zadadzą wszystkie z nich na tej stronie. Wiele z nich sprowadza się do osobistych preferencji i próby ustalenia, co ESRI i Microsoft będą obsługiwać w przyszłości.
Mój problem dotyczy konia i wody. W wielu przypadkach opracowujemy i / lub prezentujemy naprawdę dobre rozwiązania dla naszych klientów, ale bez względu na to, jak eleganckie jest to rozwiązanie, jest absolutnie bezużyteczne, jeśli nikt nie poświęci czasu na jego użycie. W niektórych przypadkach udało nam się to złagodzić, dostosowując naszą pracę do potrzeb użytkownika (ankieta dotycząca problemów, rozmowy o rozwiązaniach przed opracowaniem), ale w niektórych przypadkach to wciąż za mało.
Myślę, że najtrudniejszym wyzwaniem jest przekonanie kierownictwa do zrozumienia GIS, a niektórzy użytkownicy też go nie rozumieją. Uważa się, że GIS polega na tworzeniu mapy; że mapa jest jedynym wynikiem działania GIS. Nie potrafię powiedzieć, jak frustrujące jest to dla mnie - poziom niewiedzy jest ogromny i jest w posiadaniu kluczowych decydentów.
Jednak w końcu - będąc jednym z pionierskich ekspertów i programistów GIS - w końcu staniemy się zarządem, a następnie możemy w końcu wykonać przyzwoite projekty GIS!
Inną trudną rzeczą jako programista GIS - musisz zrozumieć tak wiele różnych technologii, Java, .Net, baz danych, oprogramowania ESRI lub innych dostawców, np. MapInfo, sieci, bezpieczeństwa, techniki internetowej itp. Czasami jest to prawie niemożliwe!
Radzenie sobie z ludźmi z ankiet, którzy nie rozumieją profesjonalnych technik i metod tworzenia oprogramowania, ale ponieważ nauczyli się kodować aleję / VB, myślę, że to wszystko.
# 3 z odpowiedzi Vinko :
zaprojektować użyteczną aplikację. Łatwo i kusząco jest umieścić wiele dzwonków i gwizdków, które tylko dezorientują użytkowników.
Głosowałbym za całą odpowiedzią, ale za to, że użyteczność jest tylko trzecim punktem na jego liście i nie sądzę, by pierwsze dwa były tak trudne.
Użyteczność jest tam, gdzie jest większość moich problemów i gdzie spędzam większość czasu na projektowaniu / programowaniu, zastanawiając się, jak zaprojektować inteligentny i skuteczny interfejs użytkownika, ale zachowaj go intuicyjnie, aby użytkownicy nie byli przez to pomyleni, na przykład:
Jak dostroić styl (i wybrać warstwy) interaktywnej mapy, aby wyświetlać odpowiednie informacje i unikać bałaganu, który często towarzyszy wyświetlaniu zbyt dużej ilości danych (np. Poprzez automatyczne agregowanie obiektów punktowych); wiem, że to właśnie kartografia próbowała rozwiązać od wieków, ale problem pogarsza się tylko w przypadku map cyfrowych / interaktywnych
Jak wykonać automatyczne pozycjonowanie widoku mapy na podstawie wyboru zapytania / funkcji użytkownika
Podświetlanie „wybranych” funkcji - czy wyświetlasz skrót krótko, czy jest podświetlony przez cały czas, gdy wybrana jest funkcja, czy odznaczasz, gdy tabela wyboru (lub lista) traci koncentrację ... Jak wyróżnić oba zapytania wyniki z tabeli i wybranego wiersza w tej tabeli (bez zbyt wielu przycisków przełączania)
Wyświetlanie dodatkowych informacji na listach warstw lub elementów, np. Widoczność / zastosowany styl / typ geometrii, status / klasa elementu ... To staje się jeszcze bardziej skomplikowane w przypadku, gdy na tej samej liście wyświetlane są różne typy elementów (chyba dlatego Google i Bing Maps używają dość intensywnego filtrowania wyników wyszukiwania)
Wydajna edycja: przyciąganie, zamykanie wielokątów, dodawanie / przenoszenie / usuwanie punktów, bez konieczności posiadania wielu przycisków paska narzędzi.
Jak zaprojektować (i wdrożyć) przyjazny dla użytkownika interfejs zapytań dla zapytań dotyczących geometrii, a jeszcze trudniejszy, interfejs zapytań obejmujący zarówno atrybuty, jak i geometrię; bez wprowadzania użytkownika w coś przypominającego SQL.
Jak zaprojektować coś w stylu schowka dla elementów / geometrii, aby uniknąć konieczności ciągłego „wybierania” elementu z mapy w celu użycia go w zapytaniach, edycjach ...
Mam wrażenie, że GIS jest szczególnie wymagającą dziedziną pod względem użyteczności, ponieważ:
Lokalizacja jest uniwersalnym i zazwyczaj najbardziej naturalnym kontekstem dla każdej informacji, więc zawsze jest zbyt wiele informacji do wyświetlenia
Po wyświetleniu informacji na mapie łatwo pokusić się o niedocenianie znaczenia części interfejsu użytkownika innych niż GIS
Przemysł tradycyjnie zaniedbywał aspekt użyteczności oprogramowania GIS i uciekł od niego, ponieważ mapowanie cyfrowe było postrzegane jako handel techniczny z powolną krzywą uczenia się i istniały o wiele trudniejsze koncepcje do nauki niż korzystanie z interfejsu. Oznacza to, że każdy, kto próbuje zaprojektować interfejs GIS dla nie-eksperta, musi wymyślić własne zasady, które skazane są na mylące (dobrym przykładem mogą być „Moje mapy” Google lub „Moje miejsca” Bing Maps)
Jednym z największych wyzwań dla rozwoju GIS opartego na sieci Web jest sposób dostarczania danych i wydajność, jaką mogę uzyskać dzięki dostarczeniu danych w określony sposób. Największą przeszkodą jest to, że bardzo trudno jest napisać kod do czegoś, co wymaga drobnej poprawki. Bardzo rzadko widzisz techniki uogólnienia danych wektorowych stosowane w dużych skalach. W większości przypadków musisz dostosować zakresy skali, aby włączyć lub wyłączyć warstwy.
To pytanie pojawiło się przy wyszukiwaniu przez Google wyzwań w GIS i mam ochotę wnieść tutaj swój wkład.
Innym linkiem, który uznałem za istotny, był ten artykuł.
Podsumowując to, co tam powiedziane i moje własne poglądy, myślę, że największe wyzwania (w żadnej kolejności nie są):
Jeśli chodzi o kodowanie, wydaje mi się, że tracę zbyt wiele czasu na obejścia. W przypadku projekcji zrozumienie procesów i matematyki zajęło mi kilka miesięcy, ponieważ moim zdaniem niewiele jest pomocnych opublikowanych materiałów na ten temat. Dokumenty EPSG i OGC na ten temat pomogły mi po omacku po kilku przeczytaniach, chociaż czasem wydają się być kopiami siebie. Największym problemem, jaki mam jako niezależny programista, jest to, że nie mogę się powstrzymać od potknięcia się o ludzi potrzebujących specjalistycznej pracy do celów medycznych, przemysłowych lub nawet prostych aplikacji internetowych, nawet teraz. W branży GIS wydaje się prawie niemożliwe znalezienie sposobu na wejście na rynek.
Jestem kompletnym początkującym w technologiach GIS, zastanawiam się nad tym, co robię. A ponieważ mam ograniczone fundusze, staram się unikać używania jakichkolwiek produktów ESRI i robię rzeczy całkowicie z narzędziami typu open source.
To powiedziawszy, najtrudniejsze dla mnie jak dotąd wszystkie były związane z gromadzeniem danych. Jest mnóstwo artykułów na temat manipulowania i wyświetlania danych oraz mnóstwo narzędzi ułatwiających życie. Ale wciąż chodzę po ciemku, jeśli chodzi o zbieranie danych.
Nie mam pojęcia, co robią specjaliści, aby znaleźć i zebrać dane. Coś mi mówi, że istnieje łatwiejszy sposób na uzyskanie danych niż data.gov i google.
Być może niefortunnie jest być zmuszonym do pracy z analitykami GIS, które zostały przekształcone w programistów.
Łatwo jest oczekiwać, że kompetentny programista przejmie koncepcje GIS i pozwoli im przejść przez interfejs API i ogólnie rozwiązać problem bez dużej pomocy. To samo nie dotyczy wzięcia analityka GIS i oczekiwania od niego rozpoczęcia rozwoju oprogramowania.
W najlepszym razie wyniki są krępujące . Jeśli masz doświadczenie w pracy ze złymi programistami , wyobraź sobie, że jest to gorszy kod niż cokolwiek, co opracował najgorszy programista.
Istnieje kilka firm, dla których możesz pracować, ale nie rozumiem.
świat GIS jest rozwijany w kierunku zwykłego użytkownika, chyba że we wczesnych latach, gdy GIS traktowali tylko inżynierowie, architekci lub środowisko naukowe. W przypadku, gdy aplikacja GIS jest wykonywana dla zwykłego użytkownika, wyzwaniem jest odpowiednie połączenie technologii, w których GIS jest traktowany bardziej jako technologia (w tym przypadku wystarczy programista z niewielką znajomością technologii GIS). Jednak w przypadku, gdy aplikacja jest wykonana dla wyspecjalizowanej społeczności, wyzwanie jest bardziej złożone, ponieważ oprócz łączenia technologii konieczne jest przeszukiwanie istniejących algorytmów w celu spełnienia wymagań, w przeciwnym razie jeszcze bardziej musielibyśmy opracować te algorytmy. W takim przypadku połączenie inżyniera i programisty jest odpowiednie dla pracownika.