2009-06-28 4 views
17

Я должен создать приложение для ГИС для своего MSc, и мне было интересно, какие лучшие бесплатные и (желательно) технологии с открытым исходным кодом для разработки? Какой язык программирования используется для разработки такого приложения?Руководящие принципы разработки приложений ГИС

Известные варианты: База данных: PostgreSQL (PostGIS) (предложить другие)

Язык программирования: PHP, Python, Java, ... (предложить другие)

рамочные: GeoDjango (если Python или Jython используется), (предложить другие)

Client UI: JavaScript (OpenLayers), Flex, (предложить другие)

серверов: Mapserver, Geoserver, Mapfish (предложить другие)

Другие соображения: Hibernate Spatial, поддержка мобильных ГИС, (указать другой)

+0

для полноты также см. Http://stackoverflow.com/questions/3180793/gis-for-the-web/3202994#3202994;) – Redlab

+1

Вы можете разместить этот вопрос здесь: http://gis.stackexchange.com/ – Beachwalker

ответ

2

Возможно ли установить Google Maps в веб-приложение? Это было бы самым простым решением ...

Для GIS с открытым кодом см. Wikipedia's list of open source 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.

ДЖАМП GIS/OpenJUMP - (Open) Java Unified Mapping Platform (рабочий стол ГИС OpenJUMP, SkyJump, deeJUMP и Космо вышли из СКАЧКООБРАЗНЫХ, см [3])

другое:

Capaware код1 0,1

САГА-ГИС v. 2.0.3

Kalypso (программное обеспечение) - Kalypso - это GIS с открытым исходным кодом (Java, GML3) и в основном ориентирована на численное моделирование управления водными ресурсами.

TerraView - Рабочий стол ГИС, который обрабатывает векторные и растровые данные, хранящиеся в реляционной или геореляционной базе данных, то есть интерфейс для TerraLib.

Capaware - Capaware также представляет собой GIS с открытым исходным кодом, невероятную быструю C++ 3D GIS Framework с многоплановой архитектурой для географического графического анализа и визуализации.

+1

Даже если вопрос не указал это явно, я думаю, что дорогая неизвестная здесь хочет создать веб-приложение ГИС, которое альтернативы, которые вы упомянули, не охватывают. –

2

Я, несколько лет назад (6 или около того), работал почти исключительно с MapServer (в частности, PHP MapScript) и PostGIS, получая довольно хорошие результаты, особенно в отделе гибкости. Я сделал приложения для производства (геолокация с анализом), и я даже сделал свою магистерскую диссертацию на основе этой работы. Я бы ожидал, что эти двое, учитывая их зрелость, по-прежнему остаются хорошим выбором.

В то время было мало альтернатив для создания богатых интернет-ГИС-приложений на базе Интернета, в настоящее время их довольно много (особенно, поскольку Google Maps отправился вживую).

С тех пор я получил несколько концертов, связанных с ГИС, где для отображения был использован Cartoweb, который представляет собой веб-фреймворк на основе PHP-Mapscript, который является расширяемым и в основном работает.

Лучший выбор в конечном счете зависит от того, что вы собираетесь строить. Если вам нужна полная гибкость при анализе отображения, отображения карт, маршрутизации и географического редактирования, тогда вам нужно получить программируемый сервер карт. Я знаю, что Mapserver работает, но очень вероятно, что GeoServer и MapBuilder и даже Mapnik могут работать, в зависимости от специфики.

BTW, об альтернативах, MySQL также имеет Spatial Extensions.

9

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, но упрощает разработку.

+1

еще один приятный подход для разработки .net (но выглядит так, что он не является обязательным для вас), заключается в использовании sharpmap (http://www.codeplex.com/SharpMap) для создания gps-приложений asp.net и публикации ваших данных с MsSqlServerSpatial (http://www.codeplex.com/MsSllSpatial) –

+1

+1 для MapServer + WMS + OpenLayers. Если вы хотите, чтобы это было быстро, то также используйте TileCache. Кроме того, почти все базы данных теперь могут поддерживать пространственные типы, а MapServer поддерживает большинство баз данных, поэтому лучше всего ищите (или хотите знать). – geographika

2

Для чего-то, что больше похоже на «приложение», чем на веб-страницу с картой в нем, посмотрите http://geoext.org/, в котором сочетаются OpenLayers с ExtJS.

0

Трудно ответить на ваш вопрос по поводу «лучших» инструментов, поскольку это зависит от ваших требований. Укажите свои потребности, и мы найдем более точный ответ (как я вижу, вы спросили некоторое время назад, и я надеюсь, что вы уже получили свой MSc) ...тем не менее, другие могут по-прежнему интересоваться этим вопросом.

База данных:

Для малого размера настольных приложений Sqlite с SpatiaLite может быть вариант вместо полной PostgreSQL/PostGIS сервер в качестве внутреннего интерфейса. PostgreSQL является хорошим выбором для больших приложений или использует его вместе с WFS (-T) -Server, например GeoServer или UMN MapServer.

Возможно, простой старый формат Shapefile соответствует вашим требованиям, и вам не нужна база данных базы данных.

Язык программирования:

Я предлагаю использовать язык вы уже познакомились с. Есть много привязок к нескольким доступным языкам, и я бы поспорил, что ваш язык тоже поддерживается. Если вы начнете с нуля до героя, я бы предложил Java, потому что его легко освоить, и есть много хорошо поддерживаемых проектов с открытым исходным кодом.

рамочные:

Я не могу предложить единую структуру, потому что у них есть все специальное capabilties и преимущество в конкретных областях ... почему я должен предложить вам визуализацию инструментарий, если вам нужно только то, чтобы преобразовать форматы файлов или координаты, не отображая их. Я уже упоминал, что в верхней части моего ответа. MapWindow6 и DotSpatial могут быть интересны при использовании C#.

ClientUI:

Desktop или/и браузер? ОПЕРАЦИОННЫЕ СИСТЕМЫ? Возможные технологии зависят от ваших требований и окружающей среды. Если вы застряли в использовании браузера (который может отображать WebGL), и вы хотите показать некоторое состояние, то fx Cesium может быть интересным.

Серверы:

Вы уже упоминали о наиболее известных серверов с открытым исходным кодом, мой любимый GeoServer.

Другие намеки

Если вы ищете специальную технологию стек OGC Website является первой точкой для посещения. Они определили многие (не сказать все) известные стандарты в области ГИС и предоставили список implementations для каждого стандарта.

0

Я просто хотел упомянуть CartoDB. Я использовал его в течение некоторого времени, и я думаю, что это здорово. У них есть онлайн-сайт с ограничениями для бесплатных учетных записей, но он с открытым исходным кодом, и вы можете установить свой собственный экземпляр. Это действительно гибко. Вы можете хранить свои данные в своем облачном PostGIS DB или локально размещенном, а затем использовать JS-библиотеки, такие как CartoJS или Leaflet, для подключения к БД и построения ваших данных. Вы можете создавать визуализацию и просто вставлять их в код HTML.

This - их интернет-сайт. И this is their repo со ссылками на инструкции по настройке собственного экземпляра CartoDB, если хотите.

Смежные вопросы