Руководящие принципы разработки приложений ГИС
Я должен создать приложение GIS для своего MSc, и мне было интересно, какие лучшие бесплатные и (желательно) технологии с открытым исходным кодом для разработки? Какой язык программирования следует использовать для разработки такого приложения?
Известные варианты: База данных: PostgreSQL (PostGIS) (предлагать другие)
Язык программирования: PHP, Python, Java,... (предлагать другие)
Рамки: GeoDjango (если используется Python или Jython), (предлагайте другое)
Клиентский интерфейс клиента: JavaScript (OpenLayers), Flex (другое предложение)
Серверы: Mapserver, Geoserver, Mapfish, (предлагают другие)
Другие соображения: Hibernate Spatial, поддержка мобильной ГИС, (предлагать другие)
Ответы
Ответ 1
afaik: лучший выбор для веб-приложений - подготовить свои данные с помощью gvSIG (http://www.gvsig.org), разместить свои данные в postgresql/postgis (http://www.postgresql.org, http://postgis.refractions.net), опубликуйте службы WMS/WFS с помощью MapServer (http://mapserver.org/), а затем покажите свои данные с помощью openlayers (http://openlayers.org).
Эти решения отлично подходят для моего опыта.
Хорошим подходом является использование MapFish (http://trac.mapfish.org/trac/mapfish/wiki) webgis-framework, который внутренне использует extjs и openlayers, но упрощает разработку.
Ответ 2
Возможно ли внедрить Google Maps в веб-приложение? Это было бы самым простым решением...
Для ГИС с открытым исходным кодом см. Список геоинформации с открытым исходным кодом в Википедии, это довольно полно.
Вставка из Википедии:
Разработка программного обеспечения с открытым исходным кодом GIS - с точки зрения истории программного обеспечения - давняя традиция с появлением первой системы в 1978 году. В настоящее время доступны многочисленные системы, которые охватывают все сектора обработки геопространственных данных.
В Steiniger и Bocher (2008/9) рассматриваются следующие проекты ГИС настольных компьютеров с открытым исходным кодом:
gvSIG 1.0
GRASS GIS - Первоначально разработанный Инженерным корпусом армии США, с открытым исходным кодом: полная ГИС
SAGA GIS - система для автоматизированных геофизических аналогов - гибридное программное обеспечение ГИС. SAGA имеет уникальный интерфейс прикладного программирования (API) и быстро растущий набор методов geoscientifc, поставляемых в сменных библиотеках модулей.
Квантовая ГИС - QGIS - это дружественная пользователю Open Source GIS, которая работает в Linux, Unix, Mac OS X и Windows.
MapWindow GIS - бесплатное приложение GIS для настольных ПК с открытым исходным кодом и компонент программирования.
ILWIS - ILWIS (Интегрированная информационная система по земле и воде) объединяет изображения, векторные и тематические данные.
uDig
gvSIG - ГИС с открытым исходным кодом, написанный на Java.
JUMP GIS/OpenJUMP - (Open) Java Unified Mapping Platform (рабочий стол GIS OpenJUMP, SkyJUMP, deeJUMP и Kosmo появился из JUMP, см. [3])
другие:
Capaware rc1 0,1
SAGA-GIS v. 2.0.3
Kalypso (программное обеспечение) - Kalypso - это GIS с открытым исходным кодом (Java, GML3) и фокусируется главным образом на численном моделировании управления водными ресурсами.
TerraView - рабочий стол ГИС, который обрабатывает векторные и растровые данные, хранящиеся в реляционной или геореляционной базе данных, т.е. интерфейс для TerraLib.
Capaware. Capaware также представляет собой GIS с открытым исходным кодом, невероятную быструю С++ 3D GIS Framework с многоплановой архитектурой для географического графического анализа и визуализации.
Ответ 3
Я, несколько лет назад (примерно 6 лет назад), работал почти исключительно с MapServer (в частности, PHP MapScript) и PostGIS, получая неплохие результаты, особенно в отделе гибкости. Я сделал приложения для производства (геолокация с анализом), и я даже сделал свою магистерскую диссертацию на основе этой работы. Я бы ожидал, что эти двое, учитывая их зрелость, по-прежнему остаются хорошим выбором.
В то время было мало альтернатив для создания богатых интернет-ГИС-приложений на базе Интернета, в настоящее время их довольно много (особенно с тех пор, как Google Maps отправился вживую).
С тех пор я получил несколько концертов, связанных с ГИС, где для отображения использовался Cartoweb, который основан на PHP-Mapscript веб-каркас, который является расширяемым и в основном работает.
Лучший выбор в конечном счете зависит от того, что вы собираетесь строить. Если вам нужна полная гибкость при анализе отображения, отображения карт, маршрутизации и географического редактирования, тогда вам нужно получить программируемый сервер карт. Я знаю, что Mapserver работает, но очень вероятно, что GeoServer и MapBuilder и даже Mapnik могут работать, в зависимости от специфики.
Кстати, об альтернативах, MySQL также имеет Пространственные расширения.
Ответ 4
Для чего-то, что больше похоже на "приложение", чем на веб-страницу с картой в нем, посмотрите http://geoext.org/, который объединяет OpenLayers с ExtJS.
Ответ 5
Трудно ответить на ваш вопрос на "лучшие" инструменты, потому что это зависит от ваших требований. Укажите свои потребности, и мы найдем более точный ответ (Как я вижу, вы спросили какое-то время назад, и я надеюсь, что вы уже получили свой MSc)... тем не менее, другие могут по-прежнему интересоваться этим вопросом.
База данных:
Для настольных приложений небольшого размера Sqlite с SpatiaLite может быть вариантом вместо полного PostgreSQL/PostGIS Server в качестве бэкэнд. PostgreSQL - хороший выбор для больших приложений или использования его вместе с WFS (-T) -Server, например GeoServer или UMN MapServer.
Возможно, простой старый формат Shapefile соответствует вашим требованиям, и вам не нужен бэкэнд базы данных.
Язык программирования:
Я предлагаю использовать язык, с которым вы уже знакомы. Есть много привязок к нескольким доступным языкам, и я бы поспорил, что ваш язык тоже поддерживается. Если вы начнете с нуля до героя, я бы предложил Java, потому что его легко освоить, и есть много хорошо поддерживаемых проектов с открытым исходным кодом.
Каркасы:
Я не могу предложить одну Framework, потому что у них есть все особые возможности и преимущества в определенных областях... почему я должен предлагать вам инструментарий визуализации, если вам нужно что-то для преобразования форматов файлов или координат без их отображения. Я уже упоминал, что в верхней части моего ответа. MapWindow6 и DotSpatial может быть интересно, если вы используете С#.
ClientUI:
Рабочий стол или/или браузер? ОПЕРАЦИОННЫЕ СИСТЕМЫ? Возможные технологии зависят от ваших требований и окружающей среды. Если вы застряли в использовании браузера (который может отображать WebGL), и вы хотите показать некоторое состояние искусства fx Cesium, может быть интересно.
Серверы:
Вы уже упоминали о наиболее известных серверах с открытым исходным кодом, мой любимый - GeoServer.
Другие подсказки
Если вы ищете специальный стек технологий, OGC Website является первым пунктом для посещения. Они определили многие (не сказать все) известные стандарты в области ГИС и предоставили список реализаций для каждого стандарта.
Ответ 6
Я просто хотел упомянуть CartoDB. Я использовал его в течение некоторого времени, и я думаю, что это здорово. У них есть онлайн-сайт с ограничениями для бесплатных учетных записей, но он открыт с открытым исходным кодом, и вы можете установить свой собственный экземпляр. Это очень гибко. Вы можете хранить свои данные в своем облачном PostGIS DB или локально размещенном, а затем использовать JS-библиотеки, такие как CartoJS или Leaflet, для подключения к БД и построения ваших данных. Вы можете создавать визуализацию и просто вставлять их в код HTML.
Это - их онлайн-сайт.
И это их репо со ссылками на инструкции по настройке собственного экземпляра CartoDB, если вы предпочитаете.
Ответ 7
На стороне сервера веб-карты стоит попробовать бесплатное OSGeo MapGuide Open Source или его коммерческий партнер Сервер Autodesk Infrastructure Map Server.