Відповіді:
Це запитання було перетворено на Wiki Wiki спільноти та вікі заблоковано, оскільки це приклад запитання, що шукає список відповідей і, здається, є досить популярним, щоб захистити його від закриття. Це слід розглядати як окремий випадок і не слід розглядати як тип запитання, який рекомендується в цьому або будь-якому веб-сайті Stack Exchange, але якщо ви хочете внести до нього більше контенту, тоді не соромтеся, редагуючи цю відповідь. .
Ви можете вибрати між рішеннями з компонентом сервера карт або без. Серверні рішення, звичайно, підтримують більше даних та більш досконалі програми.
Якщо ви знаєте, що QGIS хоче створити одноразові візуалізації даних, я рекомендую QGIS2Leaf або експортувати до OpenLayers 3, які є обома плагінами для QGIS, які дозволяють експортувати шари на веб-карту. Оновлення (на основі коментаря Тома Чадвіна): qgis2leaf та qgis-ol3 тепер об'єднані в qgis2web .
Середній шлях варіант QGIS Хмара , опція пройшла QGIS сервера: Ви просто підготувати проект на місцевому рівні , а потім опублікувати його в Інтернеті , де ви знайдете його в готовому глядача. У них є безкоштовні акаунти до певного розміру даних. Тож вам не потрібен власний сервер, якщо це проблема для вас.
Якщо ви хочете запустити власний сервер з відкритим кодом , ви можете почати з цього вступу до геосервера з минулорічного FOSS4G: http://workshops.opengeo.org/geoserver-intro/ . Задіяні інструменти, як правило, Geoserver, PostGIS і OpenLayers. Стартові витрати - це ваш робочий час плюс хостинг.
Важко оцінити час на розгортання, не знаючи ваших випадків використання.
GeoGATE
посилання , GeoGATE чудовий із PostGIS та Geoserver і включає сотні готових інструментів, які ви можете налаштувати через зручну панель управління зі своїми даними
У штаті Пенн є клас відкритого веб-картографування . Це повинно бути достатньо, щоб навчити вас працювати з веб-картою, а також із залученими технологіями. Більшість, якщо не всі, інструменти, які використовуються в класі, безкоштовні, тому вартість їх не повинна бути проблемою. Ось TOC:
Урок 0: Орієнтація
Урок 1: Вступ до відкритого веб-мапінгу
Урок 2: Сервери веб-карт (WMS)
Урок 3: Сервери веб-функцій (WFS)
Урок 4: Розширювана мова розмітки (XML)
Урок 5: Розширені сервери веб-карт
Урок 6: Мова географічної розмітки (GML)
Урок 7: Переглянуто WFS
Урок 8: Створення веб-додатка для картографування
Урок 9: Створення тонкого клієнтського веб-картографічного клієнта
Приємно :)
Google Fusion Tables виглядає перспективно з картографуванням та просторовими запитами
плюси: простий в налаштуванні
мінуси: всі ваші дані знаходяться на серверах google (добре? чи погано?)
http://sites.google.com/site/fusiontablestalks/stories
Примітка. Багато медіа / новинних компаній використовують це - Приклад газети Guardian UK http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
Зараз створено акуратний майстер Fusion, щоб швидше налаштувати http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
Приклади: http://www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.htmlсторінка
Один з найкращих: http://tinyurl.com/England-Deprivation-Mapped
Є так багато варіантів там і вже багато чудових відповідей. Два мої улюблені варіанти, які ще не були перераховані тут, - це CartoDB і MapBox . Обидва вони надають веб-хостинг та візуалізацію даних та деякі дуже вигадливі інструменти, ціни починаються БЕЗКОШТОВНО.
Ви зможете отримати програмне забезпечення для настільних ПК для налаштування даних. ArcMap та Quantum GIS - це чудовий вибір для настільної частини.
Я б сказав, що сила MapBox створює красиві веб-карти з дійсно чудовими, простими у використанні шаблонами та готовими до роботи елементами інтерфейсу користувача . MapBox вимагає настільної програми під назвою TileMill (також безкоштовно), яка використовує інтерфейс для стилів дуже схожий на CSS.
Сила CartoDB полягає в тому, що він відкриває свої корені PostGIS через API SQL.
І те і інше можна використовувати самостійно або в поєднанні з іншими бібліотеками відображення javascript (наприклад, Leaflet , Google Maps , OpenLayers ).
Незалежно від того, які платформи ви вирішили почати використовувати, щоб потрапити на веб-карти, ви, безумовно, отримаєте користь від вивчення деяких javascript. Codecademy - чудове місце для початку (також БЕЗКОШТОВНО !!).
Я також щойно відвідував конференцію, де вони презентували OpenGeo Suite , який є стеком OpenLayers, GeoServer, GeoExt і PostGIS. Вони пропонують як "Enterprise Edition" (платну версію з підтримкою), так і " Community Edition " (безкоштовну) версію. (Оновлення) Suite OpenGeo тепер безмежний.
Ще одним пакетом, який було продемонстровано на конференції, був GeoMoose , що є стеком MapServer та OpenLayers.
Ви можете розглянути можливість завантаження OSGEO Live DVD , який можна запустити у віртуальній машинній обстановці, якщо ви не хочете встановлювати на своєму пристрої купу речей під час тестування. Він поставляється заздалегідь упакованим з безліччю різних програмних пакетів GIS з відкритим кодом, включаючи інструменти веб-картографування.
Редагувати
Через популярність цього питання та відповідей я додаю редагування деякого вмісту в цій публікації через зміни постачальників та API протягом останніх кількох місяців.
Вибір API пов'язаний із сферою та метою вашого проекту, не кажучи вже про ваш бюджет, якщо ви насправді хочете використовувати певну функціональність. Інший головний застереження - це ваш досвід розробки веб-сторінок, і якою мовою ви надаєте перевагу чи цікавитесь.
Я думаю, що найкращий спосіб відповісти на ваше запитання - надати приємний перелік доступних вам API. Ось три, які приходять на думку. Це аж ніяк не всі!
ArcGIS
API:
Плюси:
Мінуси:
Підсумок:
ArcGIS має багато що запропонувати для веб-продуктів GIS та має багато ресурсів, які допоможуть вам на цьому шляху. Просто пам’ятайте про можливі витрати, з якими ви стикаєтесь, бажаючи опублікувати власні дані.
API:
Плюси:
Мінуси:
Підсумок:
Google має сильне ім'я на ринку та досить надійні онлайн-сервіси. Просто не забудьте зрозуміти всі сторони їх використання, тому ви не наступаєте на будь-які законні ноги. Нова сторінка з ціноутворенням та планами дуже корисна в цьому плані.
Відкрите джерело
API (усі на основі JavaScript):
Плюси:
Мінуси:
Підсумок:
Open Source - це справді чудовий варіант для тих, хто хоче перевірити води веб-ГІС. Завдяки змінам та вдосконаленням, які щодня здійснюються в громаді, відкритий код може стати недорогим способом вирішення ваших геопросторових потреб.
Як я вже говорив, це не всі варіанти вашого вибору, але принаймні зараз є публікація із посиланнями на себе та інших, щоб ознайомитись з деякими з основних гравців у світі веб-ГІС.
Схоже, ви отримали відповіді з відкритим кодом у запитанні вище. Якщо у вашої компанії є бюджет, ESRI може бути дуже хорошим варіантом. Для уточнення, API-інтерфейси веб-сторінок самі по собі вільні у використанні, однак запуск сервера ArcGIS та SDE обійдеться вам у гроші. Крім того, програмне забезпечення для настільних ПК буде потрібно для створення сервісів карт, які використовуватимуться в додатку веб-картографування. Якщо ви вже маєте доступ до цих ресурсів або можете їх придбати, я б напевно рекомендував вивчити рішення ESRI.
Одна з переваг тут полягає в тому, що ви можете кодувати різними мовами. Існують специфічні для ESRI API для Flex та Silverlight:
Flex: http://help.arcgis.com/en/webapi/flex/index.html Silverlight: http://help.arcgis.com/en/webapi/silverlight/index.html
В даний час здається, що тенденція у веб-програмуванні відходить від рішень, які потребують плагінів і мають специфіку для постачальника (вище), і до більш відкритих програм та на основі стандартів. ESRI має це покриття API Javascript:
Javascript: http://help.arcgis.com/en/webapi/javascript/arcgis/
Якщо ви подивитеся на ці веб-сайти API, документація є дуже хорошою. Крім того, форуми доступні для допомоги громаді щодо конкретних проблем. Технічна підтримка через ESRI також дуже хороша. Отже, це зводиться до ціни та ресурсів, якщо у вас вже є ці програми або є бюджет, це відмінний шлях, якщо не вищезгадані рішення з відкритим кодом, варто розглянути.
Якщо ви хочете просто прообразувати щось для дослідження життєздатності, щоб показати своєму начальнику, що я повинен був зробити рік або близько того, тоді я б рекомендував Geoserver завдяки своєму зручному веб-інтерфейсу, який підтримували деякі прості форми. Для інтернету OpenLayers - це фантастичний вибір з великою кількістю зразків на веб-сайті. Я ніяким чином не веб-програміст, але я виявив, що копіювати / вставляти / налаштовувати зразки javascript вітер. Я поміщаю все це у VirtualBox VM, щоб тримати це все в одному місці і не порушувати моє звичайне середовище розробників, використовуючи пакети з репозиторію UbuntuGIS.
Для виробництва є ціла кількість речей, які залежать від вашої потреби використання. Для мене я врешті-решт поїхав із Mapserver, оскільки він не такий роздутий, як Geoserver, який працює як швидкий cgi-процес на web-сервері lighttpd. Нам знадобився WFS-T (який Geoserver підтримує поза коробкою), але Mapserver цього не робить, тому ми використовували tinyows. Ми також обслуговуємо покриття (WCS), які підтримує Mapserver, і ми хочемо інтегрувати Rasdaman для його підтримки WCS-T. Це все підкріплено базою даних PostGIS.
Я рекомендую розбити свою програму на задній, середній та передній, а також прочитати плюси та мінуси кожної програми. Для кожного шару може бути лише кілька рішень, але це збільшується комбінаторно.
Я вважаю, що ESRI робить продукти здатними робити все це, але це коштуватиме. Якщо ваш час переважає, то комерційний маршрут може бути дорогою, але маршрут з відкритим кодом прямує в дуже захоплюючих напрямках, і я підозрюю, що врешті-решт перевершить все, що ESRI може придумати. Але тоді я є упередженим фаном FOSS :)
Ви можете подивитися на MangoMap www.mangomap.com .
Ви повинні мати можливість створити потрібну карту за допомогою доступних інструментів.
Він розміщений та безкоштовний, тому для розгортання потрібно дуже мало часу та зусиль.
Для особливостей, які ви пропонуєте, я би переглянув, що є найпростішим уперед та найпростішим для встановлення стеком, що відповідає вашим потребам. Програмне забезпечення "Ви можете швидко, потужно або дешево. Виберіть два". Виразно стосується тут.
Якщо ви лише плануєте виконувати прості запити, такі як ідентифікація функцій, то потужність PostGIS, ймовірно, надмірна. Набагато простіше просто завантажувати форми файлів у сховище даних безпосередньо в GeoServer.
OpenLayers ще раз чудовий і має безліч функціональних можливостей, таких як підтримка систем координат, крім WGS84 та Web Mercator, але якщо ви не збираєтеся використовувати цю функціональність, то я би поглянув на Leaflet , на моєму досвіді це набагато менше крута крива навчання для нових користувачів.
Крім того, якщо у вас немає вимоги, яка говорить про те, що вам потрібно розмістити додаток на власному сервері, тоді ви можете ознайомитись з деякими розміщеними варіантами, оскільки ви отримаєте набагато більше часу з часу інвестування. Використовуючи MangoMap або GeoCommons, ви, швидше за все, отримаєте чудову карту для своїх користувачів, не вписуючи жодного рядка коду.
Якщо це проект, де ви хочете написати якийсь код, то ви також можете подивитися на CartoDB та MapBox . Якщо ви хочете дізнатися більше про всі ці розміщені платформи, я написав безкоштовну електронну книгу на цю тему, яка містить усі деталі, які вам потрібно вибрати.
Розкриття інформації : Я Засновник MangoMap
Є багато місць для початку при розробці веб-карти.
Якщо у вас є досвід веб-розробника, слід почати з дослідження різних доступних вам сервісів, які дозволяють публікувати карту в Інтернеті. На цьому веб-сайті є відповіді на інші запитання, які дадуть вам корисну інформацію про відмінності між доступними платформами.
Якщо ви починаєте свіжий і не хочете брати участь у певній платформі, тоді зверніться до своїх бізнес-вимог. Як ви збираєтеся малювати свої дані на карті? Як будуть оновлюватися дані? Хто збирається використовувати цей сайт? Що вони з цим робитимуть? Прийняття цих рішень рано допоможе вам зібрати твори або зробити вибір, який підтримуватиме розширення до досягнення мети.
Щодо вартості ... Я вважаю за краще запозичити сучасне прислів’я: "Гарне, швидке, дешеве. Підберіть два". Він формально визначений як Трикутник управління проектами , який описує баланс між вартістю, плануванням та обсягом для досягнення якості.
Я теж нещодавно розпочав мандрівку веб-картою після багатьох років більше на базі даних речей.
Що мені справді допомогло - це вивчити основні принципи програмування, використовуючи MapBasic для MapInfo (або я припускаю, що Python для натовпу esri) насправді допоміг мені зрозуміти, як комп'ютери "думають".
Звідси CodeAcademy був знахідкою. Це дійсно цікавий та інтуїтивно зрозумілий спосіб навчання програмуванню. Це може перенести вас із прикладів "Hello World" аж до повністю функціональних та інтерактивних програм. Крива навчання поступова і розуміє, що деякі люди обдаровані цим предметом, а інші (як я).
Другим порадою буде встановити GeoServer і переглянути демо-запити, щоб побачити, як структуруються веб-сервіси та як вони працюють. Погляньте на попередній перегляд шарів, щоб побачити, як Javascript та HTML працюють разом. Ви можете буквально скопіювати код попереднього перегляду шару (переглянути джерело сторінки), зберегти його десь і почати майструвати.
W3 школи - є інтерактивні приклади, з якими можна грати та адаптувати до нового коду. Якщо ви вирішили вибрати JavaScript, JS Fiddle також дуже хороший.
Ви можете використовувати OpenLayers для клієнта. Він стабільний, простий і мав багато прикладів того, як використовувати WFS (у вашому випадку для підключення до PostgreSQL) тощо. Геосервер, OSM використовує його для цілей візуалізації.
Ви також можете подивитися на GeoExt, який надає віджет extJS для складання карт. Знову geoext використовує OpenLayers для візуалізації карт.
Існує також база на основі PHP, яка використовує MapServer (OpenLayers вже підтримує), такі як GeoMoose , CartoWeb тощо.
Я голосую за OpenLayers, оскільки ви можете визначитися з усім дизайном веб-сторінки на відміну від PHP-фреймворку, що працює на вкладках MapScript, які мають шаблон за замовчуванням, і мені було нелегко керувати такою великою базою коду.
Три навички, необхідні для більшості будь-якої веб-розробки, включаючи веб-картографування, - це html, css та javascript. Ресурсів для вивчення цих мов є достатньо. Тема, з чого почати вивчати, як розробляти програми для веб-картографічних досліджень, досить добре висвітлена в питанні обміну стеками GIS Як почати веб-картографування?
Один з ресурсів для розробки програм веб-картографування, якщо у вас обмежений досвід програмування, - це mapbox . Ви можете створювати веб-карти без будь-якого кодування, хоча, я думаю, було б складно створити веб-карту настільки складною та інтерактивною, як та, яку ви використовуєте у своєму прикладі, не використовуючи мову сценаріїв, наприклад, JavaScript або python.
Я використовую листовки, і я думаю, що це дуже просто. Він заснований на JavaScript і може малювати функції, використовуючи різні джерела даних. В основному, ви вставляєте код карти у файл .html, а потім переглядаєте файл. Я не можу коментувати інші API, але я вважаю, що Google досить простий, як і Openlayers.
Також є такі сервіси, як MapBox, які не вимагають розміщення html-файлу, а просто завантажують у них свої дані.
Я думаю, що найпростіший спосіб перейти з плагіном qgis + qgis2leaflet. Ви можете редагувати все, що завгодно у qgis, ніж експортувати листівку та завантажувати на свій веб-сервер. Або якщо ви виберете більш цікавий спосіб, ніж:
Замість геоексплорера я б використовував листівковий javascript, тому що він виглядає приємніше і працює більш гладко ... але потрібно скопіювати час, щоб скопіювати / вставити якийсь код. ось приклад: http://gis.xyz
Що важливо відзначити, це те, що Web-Gis - це величезна сфера, і вже було зроблено багато роботи над декількома проектами та бібліотеками, щоб допомогти в цьому. Тож нам потрібно побачити, чи є щось, що ви можете повторно використовувати, а не починати з нуля.
Погана новина полягає в тому, що в php не існує популярної бібліотеки / програми для веб-відображення. Хороша новина полягає в тому, що він вам може не знадобиться.
Я рекомендую спершу спробувати зрозуміти WebMapping та зрозуміти проекти та бібліотеки, які вже є. Для цього ви можете звернутися до цих питань:
Після того, як ви зрозумієте доступні варіанти, вам слід уточнити свої вимоги. Дивлячись на своє запитання, у вас є дуже основні вимоги: Показати посилки на карті Дозволити для запитів, Отримати атрибути для посилок та показати їх користувачеві, або за результатами Запиту, або коли Користувач натискає на нього.
Така робота можлива за допомогою Карт Google, але я б не рекомендував її, оскільки API Карт Google не дуже сильно працювати, коли у вас є велика кількість даних.
Я б замість цього запропонував би скористатися рішенням Geoserver / OpenLayers за умови, що ви можете працювати з JavaScript. Можливо, вам навіть не знадобиться жоден php-код, якщо ваші дані є в атрибутах функцій.
Приємною легкою альтернативою OpenLayers, яка є великою популярною бібліотекою javascript для веб-картування, є Leaflet .
Я використовую Leaflet з GeoServer, щоб зробити кілька приємних карт, включаючи деяку інтерактивність. Це вимагає спеціального кодування, але не багато, і це набагато простіше у використанні, ніж OpenLayers.
Перш ніж приймати рішення між Leaflet та OpenLayers, можливо, варто ознайомитись з майбутньою версією, яка обіцяє очищений API та кращу документацію:
OpenLayers 3 - це всебічне перезапис бібліотеки, націлене на новітні функції HTML5 та CSS3. Бібліотека надалі матиме широку підтримку проекцій, стандартних протоколів та функцій редагування від OpenLayers 2.x. Нова версія бібліотеки буде зосереджена на покращенні продуктивності, легшій збірці, красивіших візуальних компонентах, поліпшеному API та ін. Деякі основні моменти:
- - - - - - 8 <- - - - - -Нова база даних коду. Це дає можливість очистити деякі "незграбні" способи ведення справ у OpenLayers. Команда також створить нові дизайни API, які будуть більш доступними для всіх.
Документація високої якості: Новий випуск також міститиме документацію зі свіжими прикладами та дизайном за замовчуванням у OpenLayers 3.0. Створення набору інструментів - це більше, ніж власне код.
Я б почав з API Карт Google . З ним безкоштовно і легко працювати. Він використовує Javascript, який можна дізнатися за допомогою ряду хороших ресурсів. Я б рекомендував Codecademy, якщо ви новачок у JS.
Існує багато безкоштовних джерел даних, які можна включити в Карти Google різними способами (KML, база даних, GeoRSS тощо). У більшості штатів та багатьох університетів є безкоштовні сховища даних, які можна включити у вашу карту.
Один з моїх улюблених сайтів для прикладів Google Maps - Google Maps Mania . Є чудові приклади карт, які демонструють, що можливо в цьому API.
GeoPHP, можливо, варто подивитися.
GeoPHP - це рідна бібліотека PHP з відкритим кодом для виконання геометричних операцій. Він повністю написаний на PHP і тому може працювати на спільних хостах. Він може читати та записувати найрізноманітніші формати: WKT (включаючи EWKT), WKB (включаючи EWKB), GeoJSON, KML, GPX, GeoRSS. Він працює з усіма простими геометричними елементами (Point, LineString, Polygon, GeometryCollection тощо) і може використовуватися для отримання центроїдів, обмежувальних коробок, площі та широкої різноманітності іншої корисної інформації.
І ви можете взяти його за виїмку з розширенням GEOS (якщо у вас є права адміністратора для встановлення GEOS).
За допомогою GEOS ви отримуєте повний набір функцій openGIS в PHP, таких як Union, IsWithin, Touches і т. Д. Це означає, що програми отримують корисний «основний набір» операцій з геометрії, які працюють у будь-яких середовищах, і «розширений набір» операції для середовищ, на яких встановлений GEOS.
Ну, користувацький скрипт PHP може бути більш надійним (і простим) рішенням. Зрештою, просторові дані - це лише рядки в базі даних, і їх можна запитувати, як зазвичай. Немає необхідності у важкому серверному програмному забезпеченні GIS та / або жахливому синтаксисі фільтру OGC. Якби я був у вашому взутті, я б зберігав дані в базі даних PostgreSQL з розширенням PostGIS, писав PHP бек-енд, щоб запитувати базу даних і отримувати дані у форматі GeoJSON (дивіться цю суть ), і веб-додаток на основі інтерфейсу OpenLayers - це більш гнучко, ніж API Карт Google, але ви все одно можете базувати основні карти Google.
Допомогу щодо вибору альтернативних запитань ArcGIS Інтернет та Які книги, журнали, електронні ресурси є найціннішими для розширення знань про географічну інформацію? питання до навчальних ресурсів.
Витрати на веб-картографування включають хостинг (оплата веб-сайту) та простір для зберігання сервера (якщо ви використовуєте послуги картографування, перегляньте ціни на MapBox та ціни на CartoDB на місяць). Зрештою, знання веб-розробок буде дуже важливим для створення вашої карти.
Ну, є кілька бібліотек відображення, якими ви можете скористатися.
Перший (і, мабуть, найвідоміший) - API Google Maps , проте, я думаю, це може бути досить складно, якщо ви відносно новачок у веб-картах.
Я б запропонував переглянути Leaflet.js або Mapbox.js . Mapbox.js був створений з урахуванням Leaflet, і Mapbox має чудові підручники з різних завдань, які ви можете виконати з Mapbox.js. У листівці також є кілька прикладів та ресурсів .
Ось конкретні посилання на приклади, які повинні допомогти вести вас у правильному напрямку.
Якщо вам потрібна карта, яку ви натискаєте на країну, і зображення, що спливе, ви можете переглянути приклад Mapbox для посилання на зовнішні дані
Ви можете дізнатися, як взаємодіє код у проекті JSFiddle для проекту
Якщо вам потрібна додаткова документація про Mapbox, ви можете прочитати їх посібники Mapbox або трохи пізніше зануритися в код за допомогою розділу Приклади
Я - новий веб-розробник, і його віднесли до візуалізації даних Скотта Мюррея для Інтернету . Його електронну книгу можна прочитати тут: http://chimera.labs.oreilly.com/books/1230000000345/ безкоштовно. Це для "некодерів", надзвичайно інформативний і має безліч практичних прикладів.
Ви можете використовувати сервер UMN Map. Там ви можете використовувати скрипти PHP (називається сценаріями карти). Це засновано на сервері Apache. Якщо вам потрібна база даних, ви можете використовувати або MySQL з просторовими розширеннями, або PostgreSQL з postGIS ...