Хоча я використовував Leaflet у своїй програмі webGIS, OpenLayers має набагато більше переваг перед Leaflet. Наприклад, якщо ви хочете використовувати свою програму на мобільних пристроях, OpenLayers на даний момент є обов'язковим.
Є багато ресурсів, пов'язаних з OpenLayers, проте я думаю, що розробляти додаток з Leaflet простіше, ніж OpenLayers (простіше читати код і розуміти структуру). Якщо у вас є обмеження в часі і ви маєте невеликий досвід роботи з Javascript, використання Leaflet може бути кращим рішенням, щоб зробити це швидше. Або якщо ви хочете розробити дуже просту програму, Leaflet спочатку може бути набагато простіше адаптувати.
Але після того, як я розробив додаток з Leaflet, тепер я кажу, що хотів би, щоб я використовував OpenLayers на початку. Тому що, коли ваш додаток стає складним (наприклад, виклик складних шарів із бази даних, розробка надійного мобільного додатку тощо), Leaflet починає обмежувати ваші здібності. Отже, я думаю, що витратити трохи більше часу на розуміння та вивчення структури OpenLayers на етапі навчання, врешті-решт, того варто.
Як врахували деталі проекту;
Використовуйте інтерфейс карти для отримання інформації про функції:
І Leaflet, і OpenLayers цілком можуть це зробити. Суть у тому, щоб отримати координати події клацання та надіслати запит на сервер. Посилання запиту буде однаковим для обох додатків.
Створіть індивідуальний інструмент, який переносить lat / lon від користувача щодо того, де він / вона натискає на карту, а потім отримує дані клімату з растру (який обробляється сценарієм 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; що вирішить усі проблеми, які має веб-розробник GIS-додатків.