To pytanie zostało przekonwertowane na Wiki Wiki i wiki zablokowane, ponieważ jest to przykład pytania, które szuka listy odpowiedzi i wydaje się być wystarczająco popularne, aby chronić je przed zamknięciem. Powinno to być traktowane jako szczególny przypadek i nie powinno być postrzegane jako rodzaj pytania, które jest zachęcane w tej lub dowolnej witrynie Stack Exchange, ale jeśli chcesz wnieść do niego więcej treści, możesz to zrobić, edytując tę odpowiedź .
Możesz wybierać między rozwiązaniami z komponentem serwera map lub bez. Rozwiązania serwerowe obsługują oczywiście więcej danych i bardziej wyrafinowane aplikacje.
Jeśli wiesz, że QGIS chce tworzyć jednorazowe wizualizacje danych, polecam QGIS2Leaf lub Eksportuj do OpenLayers 3, które są wtyczkami do QGIS, które pozwalają eksportować warstwy do mapy sieci. Aktualizacja (na podstawie komentarza Toma Chadwina): qgis2leaf i qgis-ol3 zostały teraz połączone w qgis2web .
Środkowa droga opcja jest QGIS Chmura , gospodarzem opcja QGIS Server: Wystarczy przygotować projekt lokalnie, a następnie opublikować je w internecie, gdzie można go znaleźć w gotowych widza. Mają darmowe konta do pewnego rozmiaru danych. Więc nie potrzebujesz własnego serwera, jeśli jest to dla ciebie problem.
Jeśli chcesz uruchomić własny serwer typu open source , możesz zacząć od wprowadzenia do Geoserver z zeszłorocznego FOSS4G: http://workshops.opengeo.org/geoserver-intro/ . Do zaangażowanych narzędzi należą zazwyczaj Geoserver, PostGIS i OpenLayers. Koszty uruchomienia to Twój czas pracy plus hosting.
Trudno oszacować czas wdrożenia bez znajomości przypadków użycia.
GeoGATE
link , GeoGATE jest niesamowity dzięki PostGIS i Geoserver i zawiera setki gotowych narzędzi, które możesz skonfigurować za pomocą przyjaznego dla użytkownika panelu kontrolnego z danymiPenn State ma klasę Open Web Mapping . Powinno wystarczyć, aby nauczyć Cię, jak działa mapowanie sieci, a także związanych z tym technologii. Większość, jeśli nie wszystkie, narzędzia używane w klasie są bezpłatne, więc nie powinno stanowić problemu. Oto spis treści:
Baw się dobrze :)
źródło
Google Fusion Tables wygląda obiecująco, jeśli chodzi o mapowanie i zapytania przestrzenne
zalety: łatwe w konfiguracji
Wady: wszystkie twoje dane są na serwerach Google (dobre czy złe?)
http://sites.google.com/site/fusiontablestalks/stories
Uwaga: korzysta z niego wiele mediów / firm informacyjnych - przykład Guardian UK Newspaper http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
Teraz jest fajny Kreator Fusion, który przyspiesza konfigurację http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
Przykłady: http://www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.htmlstory
Jeden z najlepszych: http://tinyurl.com/England-Deprivation-Mapped
źródło
Jest tak wiele opcji i wiele świetnych odpowiedzi. Dwie z moich ulubionych opcji, których jeszcze tu nie wymieniono, to CartoDB i MapBox . Oba zapewniają hosting i wizualizację danych oraz niektóre bardzo wymyślne narzędzia, których ceny zaczynają się za DARMO.
Będziesz korzystać z oprogramowania komputerowego, aby uzyskać konfigurację danych. ArcMap i Quantum GIS to świetny wybór dla części pulpitu.
Powiedziałbym, że siłą MapBox jest tworzenie pięknych map internetowych z naprawdę świetnymi, łatwymi w użyciu szablonami i gotowymi elementami interfejsu użytkownika . MapBox wymaga programu komputerowego o nazwie TileMill (również darmowy), który korzysta z interfejsu stylizacji bardzo podobnego do CSS.
Siłą CartoDB jest to, że ujawnia swoje korzenie PostGIS za pośrednictwem SQL API.
Oba mogą być używane samodzielnie lub w połączeniu z innymi bibliotekami mapowania javascript (np. Leaflet , Google Maps , OpenLayers ).
Bez względu na to, z których platform zaczniesz korzystać, aby uzyskać dostęp do mapowania sieci, z pewnością skorzystasz z nauki języka JavaScript. Codecademy to świetne miejsce na rozpoczęcie (również ZA DARMO !!).
źródło
Właśnie uczestniczyłem w konferencji, na której zaprezentowali pakiet OpenGeo , który jest stosem OpenLayers, GeoServer, GeoExt i PostGIS. Oferują zarówno wersje „Enterprise Edition” (płatna za wersję z obsługą), jak i „ Community Edition ” (bezpłatne). (Aktualizacja) OpenGeo Suite jest teraz pakietem Boundless.
Kolejnym pakietem zademonstrowanym podczas konferencji był GeoMoose , który jest stosem MapServer i OpenLayers.
Możesz rozważyć pobranie płyty DVD OSGEO Live DVD , którą możesz uruchomić w środowisku maszyny wirtualnej, na wypadek gdybyś nie chciał instalować na swoim komputerze wielu rzeczy podczas testowania. Jest dostarczany z pakietem różnych pakietów oprogramowania GIS typu open source, w tym narzędzi do mapowania stron internetowych.
źródło
Edytować
Ze względu na popularność tego pytania i odpowiedzi dodałem edycję niektórych treści tego postu ze względu na zmiany u dostawców i interfejsów API w ciągu ostatnich kilku miesięcy.
Wybór interfejsu API jest związany z zakresem i celem projektu, nie wspominając o budżecie, jeśli w rzeczywistości chcesz skorzystać z określonych funkcji. Innym ważnym zastrzeżeniem jest doświadczenie w tworzeniu stron internetowych oraz preferowany lub interesujący język.
Myślę, że najlepszym sposobem na udzielenie odpowiedzi na twoje pytanie jest zapewnienie miłej listy dostępnych API. Oto trzy, które przychodzą na myśl. Nie są to w żadnym wypadku wszystkie!
ArcGIS
Pszczoła:
Plusy:
Cons:
Podsumowanie:
ArcGIS ma wiele do zaoferowania dla internetowych produktów GIS i ma wiele zasobów, które mogą ci pomóc. Pamiętaj tylko o potencjalnych kosztach, jakie możesz ponieść, gdy chcesz opublikować własne dane.
Google
Pszczoła:
Plusy:
Cons:
Podsumowanie:
Google ma silną nazwę na rynku i dość niezawodne usługi online. Pamiętaj tylko, aby zrozumieć tajniki ich używania, abyś nie stawiał żadnych legalnych stóp. Nowa strona Ceny i plany jest w tym względzie bardzo pomocna.
Otwarte źródło
Interfejsy API (wszystkie oparte na JavaScript):
Plusy:
Cons:
Podsumowanie:
Open Source jest naprawdę świetną opcją dla każdego, kto chce przetestować wody Web GIS. Dzięki zmianom i udoskonaleniom wprowadzanym codziennie w społeczności, open source może być niedrogim sposobem zaspokojenia twoich potrzeb geoprzestrzennych.
Jak powiedziałem, to nie wszystkie opcje, które masz, ale przynajmniej teraz jest post z linkami dla ciebie i innych, aby zapoznać się z niektórymi głównymi graczami w świecie Web GIS.
źródło
Wygląda na to, że otrzymałeś odpowiedzi Open Source w powyższym pytaniu. Jeśli Twoja firma ma budżet, ESRI może być bardzo dobrą opcją. Aby to wyjaśnić, interfejsy API tworzenia map są same w sobie bezpłatne, jednak backend ArcGIS Server i SDE będą cię kosztować. Dodatkowo do stworzenia usług mapowych potrzebnych w aplikacji do tworzenia map internetowych potrzebne będzie oprogramowanie komputerowe. Jeśli masz już dostęp do tych zasobów lub możesz je kupić, zdecydowanie poleciłbym przyjrzenie się rozwiązaniom ESRI.
Jedną z korzyści jest to, że możesz pisać w różnych językach. Istnieją interfejsy API specyficzne dla ESRI dla Flex i Silverlight:
Flex: http://help.arcgis.com/en/webapi/flex/index.html Silverlight: http://help.arcgis.com/en/webapi/silverlight/index.html
Obecnie wydaje się, że trend w programowaniu internetowym odchodzi od rozwiązań, które wymagają wtyczek i są specyficzne dla producenta (powyżej), w kierunku bardziej otwartych ram i standardów opartych na standardach. ESRI ma to pokryte z JavaScript API:
JavaScript: http://help.arcgis.com/en/webapi/javascript/arcgis/
Jeśli spojrzysz na te strony API, dokumentacja jest bardzo dobra. Ponadto dostępne są fora pomocy społeczności dotyczące określonych problemów. Wsparcie techniczne za pośrednictwem ESRI jest również bardzo dobre. Sprowadza się to więc do ceny i zasobów, jeśli masz już te aplikacje lub budżet, jest to doskonała ścieżka, jeśli nie, warto przyjrzeć się powyższym rozwiązaniom open source.
źródło
Jeśli chcesz po prostu prototypować coś do badania rentowności, aby pokazać swojemu szefowi, co musiałem zrobić rok temu, to dla zaplecza polecam Geoserver ze względu na przyjazny interfejs użytkownika, wspierany przez niektórych proste pliki kształtów. W przypadku nakładki OpenLayers to fantastyczny wybór z dużą ilością próbek na stronie. W żadnym wypadku nie jestem programistą, ale kopiowanie / wklejanie / modyfikowanie próbek javascript było bardzo proste. Umieszczam to wszystko w maszynie wirtualnej VirtualBox, aby zachować wszystko w jednym miejscu i nie przerywać mojego regularnego środowiska programistycznego, używając pakietów z repozytorium UbuntuGIS.
Do produkcji jest mnóstwo rzeczy, które zależą od twojego przypadku użycia. Dla mnie ostatecznie zdecydowałem się na Mapserver, ponieważ nie jest tak rozdęty jak Geoserver, działający jak szybki proces cgi na serwerze internetowym lighttpd. Potrzebowaliśmy WFS-T (który Geoserver obsługuje od razu po wyjęciu z pudełka), ale Mapserver nie, więc użyliśmy malutkich. Obsługujemy również relacje (WCS), które obsługuje Mapserver, i zamierzamy zintegrować Rasdaman z obsługą WCS-T. Wszystko to jest wspierane przez bazę danych PostGIS.
Polecam rozbicie aplikacji na back-, middle- i front-end oraz przeczytanie zalet i wad każdego oprogramowania. Może istnieć tylko kilka rozwiązań dla każdej warstwy, ale zwiększa się to kombinatorycznie.
Wierzę, że ESRI produkuje produkty zdolne do tego wszystkiego, ale będzie to kosztować. Jeśli twój czas jest na wagę złota, może to być droga komercyjna, ale trasa typu open source zmierza w bardzo ekscytujących kierunkach i podejrzewam, że ostatecznie przewyższy wszystko, co może wymyślić ESRI. Ale potem jestem stronniczym fanboi FOSS :)
źródło
Można spojrzeć na MangoMap www.mangomap.com .
Powinieneś być w stanie stworzyć pożądaną mapę za pomocą dostępnych narzędzi.
Jest hostowany i bezpłatny, więc wdrożenie go zajmuje niewiele czasu i wysiłku.
źródło
Dla funkcji, które sugerujesz, przyjrzałbym się najbardziej prostemu i łatwemu w instalacji stosowi, który spełnia twoje potrzeby. Oprogramowanie mówi: „Możesz mieć szybki, wydajny lub tani. Wybierz dwa”. zdecydowanie obowiązuje tutaj.
Jeśli planujesz tylko proste zapytania, takie jak identyfikacja funkcji, potęga PostGIS jest prawdopodobnie nadmierna. O wiele łatwiej jest po prostu przesłać pliki kształtów jako magazyn danych bezpośrednio do GeoServer.
OpenLayers po raz kolejny jest świetny i ma wiele funkcji, takich jak obsługa układów współrzędnych innych niż WGS84 i Web Mercator, ale jeśli nie zamierzasz korzystać z tej funkcji, spojrzałbym na Ulotkę , z mojego doświadczenia wynika, że ma znacznie mniej stroma krzywa uczenia się dla nowych użytkowników.
Ponadto, jeśli nie masz wymogu, który mówi, że musisz hostować aplikację na własnym serwerze, możesz spojrzeć na niektóre z hostowanych opcji, ponieważ otrzymasz znacznie więcej od momentu zainwestowania. Korzystając z MangoMap lub GeoCommons , prawdopodobnie uzyskasz lepszą mapę dla swoich użytkowników bez konieczności pisania ani jednego wiersza kodu.
Jeśli jest to projekt, w którym chcesz napisać kod, możesz także spojrzeć na CartoDB i MapBox . Jeśli chcesz dowiedzieć się więcej na temat wszystkich tych hostowanych platform , napisałem darmowy ebook na ten temat, który zawiera wszystkie szczegóły, które musisz wybrać.
Ujawnienie : Jestem założycielem MangoMap
źródło
Przy tworzeniu mapy internetowej można zacząć od wielu miejsc.
Jeśli masz doświadczenie jako programista stron internetowych, powinieneś zacząć od zbadania różnych dostępnych usług, które pozwalają Ci opublikować mapę w Internecie. Na tej stronie znajdują się odpowiedzi na inne pytania , które dają cenny wgląd w różnice między dostępnymi platformami.
Jeśli zaczynasz od nowa i nie chcesz przypisywać się do konkretnej platformy, odpowiedz na wymagania biznesowe. Jak narysujesz swoje dane na mapie? Jak dane będą aktualizowane? Kto będzie korzystał z tej strony? Co oni z tym zrobią? Wczesne podejmowanie tych decyzji pomoże ci zebrać elementy lub dokonać wyborów, które będą wspierać rozwój w kierunku celu.
Jeśli chodzi o koszty ... Wolę pożyczyć nowoczesne przysłowie: „Dobry, szybki, tani. Wybierz dwa”. Jest formalnie zdefiniowany jako Trójkąt zarządzania projektami , który opisuje równowagę między kosztami, harmonogramem i zakresem zapewniania jakości.
źródło
Ja także niedawno rozpocząłem mapę internetową po wielu latach po stronie bazy danych.
To, co naprawdę pomogło mi, to nauka podstawowych zasad programowania za pomocą MapBasic dla MapInfo (lub zakładam, że Python dla tłumu esri) naprawdę pomógł mi zrozumieć, w jaki sposób komputery „myślą”.
Stamtąd CodeAcademy była darem niebios. To naprawdę zabawny i intuicyjny sposób nauki programowania. Może zabrać Cię od przykładów „Hello World” aż do w pełni funkcjonalnych i interaktywnych programów. Krzywa uczenia się jest stopniowa i rozumie, że niektórzy ludzie są obdarowani tymi rzeczami, a inni (jak ja) nie.
Drugą radą byłoby zainstalowanie GeoServera i sprawdzenie żądań demo, aby zobaczyć, jak strukturyzowane są usługi sieciowe i jak działają. Zobacz podgląd warstw, aby zobaczyć, jak JavaScript i HTML działają razem. Możesz dosłownie skopiować ten kod podglądu warstwy (wyświetlić źródło strony), zapisać go gdzieś i zacząć majstrować.
Szkoły W3 - zawiera interaktywne przykłady, z którymi możesz bawić się i dostosowywać do swojego nowo powstałego kodu. Jeśli zdecydujesz się na JavaScript, JS Fiddle jest również bardzo dobry.
źródło
Jeśli jesteś programistą Java, spójrz na Geomajas .
Istnieje archetyp typu raj, który pozwala rozpocząć grę w kilka minut ( patrz tutaj ). Następnie możesz dodać dodatkowe warstwy itp.
źródło
Możesz użyć OpenLayers po stronie klienta. Jest stabilny, łatwy i miał mnóstwo przykładów użycia WFS (w twoim przypadku, aby połączyć się z PostgreSQL) itp. Geoserver, OSM używa go do celów renderowania.
Możesz także zajrzeć na GeoExt, który zapewnia widget extJS do budowania map. Geoext ponownie wykorzystuje OpenLayers do renderowania map.
Istnieją również frameworki oparte na PHP, które wykorzystują MapServer (już obsługuje OpenLayers), takie jak GeoMoose , CartoWeb itp.
Głosuję na OpenLayers, ponieważ możesz zdecydować o całym projekcie strony internetowej, w przeciwieństwie do struktury php działającej z powiązaniami MapScript, które mają domyślny szablon i nie było łatwo zarządzać tak dużą bazą kodu.
źródło
Trzy umiejętności niezbędne do większości tworzenia stron internetowych, w tym mapowania stron internetowych, to HTML, CSS i JavaScript. Materiały do nauki tych języków są bogate. Temat, od którego zacząć naukę tworzenia aplikacji do mapowania sieci, jest dość dobrze omówiony w pytaniu dotyczącym wymiany stosu GIS Jak rozpocząć tworzenie map WWW?
Jednym z zasobów do opracowania aplikacji do tworzenia map internetowych, jeśli masz ograniczone doświadczenie w programowaniu, jest mapbox . Możesz tworzyć mapy internetowe bez żadnego kodowania, chociaż myślę, że trudno byłoby stworzyć mapę internetową tak skomplikowaną i interaktywną jak ta, której używasz w swoim przykładzie bez użycia języka skryptowego, takiego jak javascript lub python.
źródło
Używam ulotek i myślę, że to bardzo proste. Jest oparty na javascript i może rysować funkcje przy użyciu różnych źródeł danych. Zasadniczo wstawiasz kod mapy do pliku .html, a następnie przeglądasz ten plik. Nie mogę komentować innych API, ale myślę, że Google jest dość prosty, podobnie jak Openlayers.
Ponadto istnieją usługi, takie jak MapBox, które nie wymagają hostowania pliku HTML, a jedynie przesłania do nich danych.
źródło
Myślę, że najłatwiejszym sposobem jest użycie wtyczki qgis + qgis2leaflet. Możesz edytować, co chcesz w qgis, niż eksportować do ulotki i przesyłać na serwer. Lub jeśli wybierzesz bardziej interesujący sposób niż:
Zamiast geoeksploratora użyłbym javascript do ulotki, ponieważ wygląda ładniej i działa płynniej ... ale poświęć trochę czasu na skopiowanie / wklejenie części kodu. oto przykład: http://gis.xyz
źródło
Należy zauważyć, że Web-Gis jest rozległą dziedziną i wiele pracy zostało już wykonanych w kilku projektach i bibliotekach, aby pomóc w tym przedsięwzięciu. Musimy więc sprawdzić, czy jest coś, co można ponownie wykorzystać, zamiast zaczynać od zera.
Zła wiadomość jest taka, że w php nie ma popularnej biblioteki / aplikacji do mapowania stron internetowych. Dobrą wiadomością jest to, że możesz jej nie potrzebować.
Radziłbym najpierw spróbować zrozumieć WebMapping oraz zrozumieć projekty i biblioteki, które są już obecne. W tym celu możesz odnieść się do następujących pytań:
Po zrozumieniu dostępnych opcji należy wyjaśnić swoje wymagania. Patrząc na twoje pytanie, masz bardzo podstawowe wymagania: Pokaż paczki na mapie Zezwalaj na zapytania, zdobywaj atrybuty paczek i pokazuj je użytkownikowi, albo w wyniku zapytania, albo gdy użytkownik go kliknie.
Tego rodzaju praca jest możliwa przy użyciu Google Maps, ale nie poleciłbym jej, ponieważ interfejs API Google Maps jest trudny w pracy, gdy masz dużą ilość danych.
Zamiast tego sugerowałbym skorzystanie z rozwiązania Geoserver / OpenLayers, pod warunkiem, że możesz pracować z JavaScript. Możesz nawet nie potrzebować żadnego kodu php, jeśli twoje dane są w atrybutach funkcji.
źródło
Dobrą lekką alternatywą dla OpenLayers, która jest dużą popularną biblioteką javascript do mapowania stron internetowych, jest Leaflet .
Używam Ulotki z GeoServer, aby tworzyć fajne mapy, w tym interaktywne. Wymaga niestandardowego kodowania, ale nie wiele i jest o wiele łatwiejszy w użyciu niż OpenLayers.
źródło
Zanim zdecydujesz się na Leaflet i OpenLayers, warto przyjrzeć się nadchodzącej wersji, która obiecuje wyczyszczone API i lepszą dokumentację:
http://openlayers.org/
źródło
Zacznę od interfejsu API Map Google . Jest darmowy i łatwy w obsłudze. Korzysta z Javascript, którego można się nauczyć poprzez szereg dobrych zasobów. Polecam Codecademy, jeśli jesteś nowy w JS.
Istnieje wiele bezpłatnych źródeł danych, które można włączyć do Google Maps na wiele sposobów (KML, baza danych, GeoRSS itp.). Większość stanów i wiele uniwersytetów ma bezpłatne magazyny danych, które można włączyć do mapy.
Jedną z moich ulubionych stron z przykładami Map Google jest Google Maps Mania . Istnieją świetne przykłady map, które pokazują, co jest możliwe w tym interfejsie API.
źródło
GeoPHP może być warte obejrzenia.
Możesz to zrobić na wyższym poziomie dzięki rozszerzeniu GEOS (zakładając, że masz uprawnienia administratora do instalowania GEOS).
źródło
Cóż, niestandardowy skrypt PHP może być bardziej niezawodnym (i prostym) rozwiązaniem. W końcu dane przestrzenne są tylko wierszami w bazie danych i można je przeszukiwać jak zwykle. Nie potrzebujesz ciężkiego oprogramowania GIS dla serwera i / lub okropnej składni filtra OGC. Gdybym był w twoich butach, zapisałbym dane w bazie danych PostgreSQL z rozszerzeniem PostGIS, napisałem back-end PHP, aby wysłać zapytanie do bazy danych i odzyskałem dane w formacie GeoJSON (spójrz na tę treść ) oraz aplikację webową opartą na OpenLayers - jest bardziej elastyczny niż Google Maps API, ale nadal możesz bazowe mapy Google, jeśli chcesz.
źródło
Aby uzyskać pomoc w wyborze, pytanie Alternatywy dla ArcGIS Online oraz Jakie książki, czasopisma i zasoby elektroniczne są najbardziej cenne dla poszerzenia wiedzy z zakresu informacji geograficznej? pytanie o zasoby edukacyjne.
Koszty mapowania w sieci obejmują hosting (płacenie za stronę internetową) i miejsce na serwerze (jeśli korzystasz z usług mapowania, sprawdź ceny MapBox i ceny CartoDB miesięcznie). Ostatecznie wiedza na temat tworzenia stron internetowych będzie bardzo ważna przy tworzeniu mapy.
źródło
Istnieje kilka bibliotek mapowania, których możesz użyć.
Pierwszym (i prawdopodobnie najbardziej znanym) byłby Google Maps API , jednak myślę, że może to być dość skomplikowane, jeśli jesteś stosunkowo nowy w mapowaniu internetowym.
Proponuję rzucić okiem na Leaflet.js lub Mapbox.js . Mapbox.js został zbudowany z myślą o Ulotce, a Mapbox zawiera kilka świetnych samouczków na temat różnych zadań, które można wykonać za pomocą Mapbox.js. Ulotka zawiera również przykłady i zasoby .
Oto konkretne linki do przykładów, które powinny poprowadzić Cię we właściwym kierunku.
źródło
Jeśli potrzebujesz mapy, w której klikniesz kraj i wyskakującego obrazu, możesz spojrzeć na przykład Mapbox dla łączenia z danymi zewnętrznymi
Możesz dowiedzieć się, jak kod współdziała w JSFiddle dla projektu
Jeśli potrzebujesz więcej dokumentacji na temat Mapbox, możesz przeczytać ich Przewodniki Mapbox lub zanurzyć się w kodzie nieco więcej, korzystając z sekcji Przykłady
źródło
Jestem nowym webmaperem i zostałem odesłany do wizualizacji danych Scotta Murraya dla Internetu . Jego ebook można przeczytać tutaj: http://chimera.labs.oreilly.com/books/1230000000345/ za darmo. Jest przeznaczony dla „niekodujących”, niezwykle pouczających i ma wiele praktycznych przykładów.
źródło
Możesz użyć serwera map UMN. Tam możesz używać skryptów PHP (nazywa się to skryptami map). Jest to oparte na serwerze Apache. Jeśli potrzebujesz bazy danych, możesz użyć MySQL z rozszerzeniami przestrzennymi lub PostgreSQL z postGIS ...
źródło