Хотя я использовал Leaflet в своем приложении webGIS, OpenLayers имеет гораздо больше преимуществ по сравнению с Leaflet. Например, если вы хотите использовать свое приложение на мобильных устройствах, OpenLayers на данный момент является обязательным условием.
Есть много ресурсов, связанных с OpenLayers, однако я думаю, что разработка приложений с помощью Leaflet проще, чем OpenLayers (легче читать код и понимать структуру). Если у вас есть ограничение по времени и небольшой опыт работы с Javascript, использование Leaflet может быть лучшим решением, чтобы сделать это быстрее. Или, если вы хотите разработать очень простое приложение, Leaflet может быть намного легче адаптировать вначале.
Но после того, как я разработал приложение с помощью Leaflet, теперь я говорю, что хотел бы использовать OpenLayers в начале. Потому что, когда ваше приложение становится сложным (например, вызывает сложные слои из базы данных, разрабатывает надежное мобильное приложение и т. Д.), Leaflet начинает ограничивать ваши возможности. Таким образом, я думаю, что потратить немного больше времени, чтобы понять и изучить структуру OpenLayers на этапе обучения, в конечном итоге это того стоит.
Как подробно рассмотрены детали проекта;
Используйте интерфейс карты для получения информации о функции:
И Leaflet, и OpenLayers могут отлично это сделать. Суть в том, чтобы получить координаты события клика и отправить запрос на сервер. Ссылка на запрос будет одинаковой для обоих приложений.
Создайте настраиваемый инструмент, который получает данные от пользователя о том, где он / она нажимает на карту, а затем получает климатические данные из растра (который обрабатывается сценарием py на сервере):
Я сам добился этого в Leaflet (кстати, я также называл данные о климате). Я не получал растровые данные с сервера, но смысл в том, чтобы создать ссылку на запрос, что легко для обоих приложений. Однако, если вы хотите выбрать многоугольник на этом этапе, это немного сложно для Leaflet.
Позволяет пользователю загружать Excel, который отправляется в скрипт py, который возвращает GeoJSON, который создает векторные объекты на карте:
Примерно одинаковые направления работы как для Leaflet, так и для OpenLayers. Я не могу сказать, какой из них лучше.
Разрешить пользователю создавать векторные многоугольники, которые будут выбирать объекты, которые он пересекает из слоя WFS:
Я понятия не имею о способностях редактирования OpenLayers, но у Leaflet есть плагин под названием Leaflet Draw, который прост в использовании и манипулировании чертежами (на стороне javascript) после завершения рисования. Также Leaflet имеет поддержку WFS-T, если вы хотите манипулировать пространственными данными на сервере WFS. OpenLayers может быть лучше, я не знаю.
Извлекает слой из хранилища данных PostGIS на GeoServer и отображает слои на карте:
Определенно OpenLayers лучше для этой работы, так как легче подключить сервер PostGIS.
Кстати, есть пакет приложений под названием OpenGeo Suite, который включает в себя OpenLayers, GeoServer и PostGIS; которая решит все проблемы веб-разработчика ГИС-приложений.