Шукаєте поради щодо загальної дорожньої карти з відкритим кодом? [зачинено]


17

Я просто хотів попросити поради у гуру GIS з відкритим кодом щодо рекомендованого стека, який слід використовувати для мого передбаченого проекту, оскільки я не повністю розумію межі можливих для більшості пакетів. Я знаю, що можу робити все, що хочу, використовуючи різні пакети ESRI, але я хочу дешевше і відкрито для того, щоб побачити світ. Я впевнений, що я можу взяти на себе будь-який виклик і навчитися деталям достатньо добре, щоб здійснити проект, я просто хочу, щоб у першу чергу не спускатися неправильним шляхом.

Моє бачення сайту: З точки зору користувальницького інтерфейсу, це не-ГІС-сайт! Щось більше по лінії whereis.com, де все (або майже все) робиться на коробках, що нависають над базовою картою. Особливості зараз не важливі, лише підкреслюючи відсутність GIS-шарів із галочками на окремій панелі тощо. Що стосується взаємодії з користувачем, зареєстровані користувачі можуть створювати функції (наприклад, місце розташування фонтанів, пішохідні доріжки тощо) вгорі основи. картографувати та редагувати власні функції. Якщо можливо, редагуйте ТІЛЬКИ власні функції, які вони створили. Карта спільної роботи, дійсно.

Я все ще в основному в дослідницькому режимі, граю з різними пакунками, але лише заради загального ознайомлення, а не реального тестування (для чого потрібно було б спочатку їх детально вивчити!). PostGIS, безумовно, здається, що це правильний шлях як базові БД, з Geoserver / Mapserver як найімовірнішим середнім програмним забезпеченням. Openlayers майже напевно буде ковзкою картою, так як мені це вже зручно і знаю її силу.

Отже, це підводить мене до двох основних питань, які потребують основної частини порад:

1) Який найкращий інтерфейс верхнього шару для такого веб-сайту?

Це пристосований екземпляр Django (або навіть Django-CMS) або просто з’єднаний екземпляр GeoExt або іншої бібліотеки (не впевнений, чи можна зробити вхід / реєстрацію / повний інтерфейс користувача), інший CMS / фреймворк ( ні, не друпал чи щось таке, що обмежує!), чи щось зовсім інше?

2) Чи можливо навіть зареєстровані користувачі сайту редагувати лише власні функції?

Я хочу уникати масових «графіті», таких як OSM та інші спільні проекти. Наразі з моїх читання та порад, як видається, геосервер не може мати автентифікацію користувача на рівні функцій.

Чи може Mapserver?

Я навіть не знаю, чи популяція користувачів сайту (з CMS або фреймворку) може навіть безпосередньо посилатися на геосервер / карту.

Якщо така концепція неможлива з рішеннями з відкритим кодом, чи є інший спосіб досягти цієї мети?

Чи автентифіковані користувачі редагували неопубліковану версію основного шару функцій (щоб не зіпсувати оригінал) та автоматично з’єднувати її з опублікованою версією кожні 24 години, зберігаючи щоденну резервну копію оригіналу?

Сорт втраченого, як досягти цього наміру.

Так, я також подивився на GeoNode, але я хочу лише одну загальну карту (нехай це буде просто), і її інтерфейс або недостатньо інтерактивний (перед тим, як перейти в GeoExplorer), або занадто ГІС-подібний у GeoExplorer. Здається, занадто консервоване рішення для цього проекту.

Вибачте, що так відкрито закінчилося тут і невиразно, але я сподіваюся, що зможу почати шлях, в якому вищезгадане можливо, і не забігти в стіну через кілька місяців, просто треба почати все спочатку, тому що шлях # 1 ніколи не мав такої функціональності з самого початку!

Один з найкращих прикладів, які я можу знайти, - це http://www.gpsies.com Я знаю, що для цього використовується буклет, але не впевнений, що лежать в основі та базі даних. Користувачі можуть створювати / завантажувати власні функції, але не редагувати інші.


5
Трохи про графіті OpenStreetMap, мабуть, трохи неправильно; OSM має випадковий вандалізм, але це виняток, а не норма. У дозволів на кожного користувача є очевидний недолік, що більшість користувачів є тимчасовим, і, таким чином, у вас є недобудовані або непотрібні дані, а інші не можуть заповнити або видалити їх.
tmcw

Це дуже справедливий момент, і я буду мати на увазі. При правильних резервних процесах широко відкрита модель може бути найбільш корисною. Я поки що навіть не розвиваюся на даний момент, у мене є багато місця для навчання та вирощування ідей. Спасибі!
Джеремі

Відповіді:


8

Оскільки я будую щось подібне зараз, я збираюся розповісти вам, як я це роблю, і ви можете змінити все, що завгодно, на інший твір.

Django (разом з GeoDjango ) досить добре для цього є базовою основою для python (знову ж таки, якщо це ваша справа, ви могли б зробити це на іншій мові).

Мій підхід до редагування на рівні користувача схожий на описаний в CaptDragon. Я використовую рамку аутентифікації django . Для цього проекту мої API створюються за допомогою смачного пирога Django, який вже має рамку, яка дозволяє створювати належні RESTful API з автентифікацією, що враховується досить легко.

Мій Mapserver (або Geoserver або все, що ви вирішили використовувати) ніколи не піддаються впливу навколишнього світу (лише локальний сервер має доступ до них) ... всі плитки надходять на сервер плитки ( geowebcache , tilecache , tilestache будь-що ).

Мені не потрібно згадувати Openlayers, оскільки ви це вже вибрали. Гарний вибір.

PostgreSQL / PostGIS був ще одним непродуманим. :)

Як бібліотека javascript, ви ніколи не можете помилитися з jQuery. Якщо ви збираєтеся дозволити кілька редагувань, ви можете отримати користь від того, щоб мати якусь структуру ваших об’єктів JavaScript, використовуючи щось на зразок backbone.js . Візьміть це з зерном солі. Деякі люди його люблять - інші ненавидять.

Якщо ви не хочете, щоб ваш сайт виглядав так некрасиво, зробіть собі прихильність і використовуйте css-фреймворк, наприклад, Bootstrap або Compass або альтернативу, за 20 доларів, просто купіть його у topicforest або wrapstrap (якщо ви збираєтесь відкрити його, ви можете хочете подивитися ліцензію, якщо ви збираєтесь її придбати). Підключення однієї з них займає близько дня, і дуже зміниться, як виглядає ваш сайт!

Особисто я кілька разів переглянув Django-cms (і Pinax ), і ніколи не можу переконати себе, що варто турбуватися. Я ніколи ще не пошкодував про це рішення.

Оскільки ви вибираєте проект, для якого знадобляться різні версії вашої схеми (чим більше ви розробляєте, тим більше буде змінюватися), просто використовуйте південь . Навіть не вагайтеся з цього приводу! Серйозно.

Це те, що я хотів би використати, але чудова річ про Open Source - це те, що ви можете змінити деталі відповідно до власних потреб.


Дякуємо за чудову інформацію разом з усіма іншими. Це безумовно допомагає звузити мою увагу, коли я рухаюся вперед.
Джеремі

Bootstrap виглядає відмінно. Чи можете ви вказати нам на який-небудь приклад відображення сайтів, які ним користуються?
Стівен Ведучий

6

Я використовую стек, схожий на Ragi's, я поруч з альфа-версією своєї програми, і в цей момент здається, що вибір там, де правильно. Ось моє рішення:

На сервері:

  • Сервер Ubuntu + веб-сервер apache + apache tomcat.
  • Postgresql + postgis як база даних.
  • Геосервер, (у моєму випадку я використовую його лише для растерів).
  • Django Framework + Tastypie. Tastypie обслуговує всі вектори через API, і користувачі мають дозвіл "на об'єкт".
  • python-gsconfig для керування геосервером від python.
  • Jasper звітів для створення pdfs.
  • pyjasper для контролю яшмових звітів з python.
  • Високопродуктивна геостатистична бібліотека для інтерполяції.

У клієнта:

  • ExtJs 4 -> Це фантастично, extjs дуже добре працює з tastypie, і у вас є багато речей, які працюють поза коробкою, як вікна та столи. Я почав використовувати його в чистому коді, але я використовую Sencha Architect 2, який дуже допомагає.
  • OpenLayers -> За допомогою двох методів, вставлених один у сховищі extjs та один у шарі openlayers, ви оновлюєте один одного щодо зміни даних.

Я обов'язково буду досліджувати варіант смаколика, виглядає перспективно. Дуже корисний!
Джеремі

4

Чи можливо навіть зареєстровані користувачі сайту редагувати лише власні функції?

Здається, що це можливо за допомогою Cartaro. Він заснований на Drupal (я знаю, ви нічого не обмежували, як Drupal, але почуйте мене!), І він дозволяє користувачам редагувати лише власні функції, серед інших варіантів. Ось знімок екрана, зроблений зі сторінки "Люди" під час входу в систему як адміністратор, який показує типи дозволів, які можна встановити для користувачів:

Дозволи на Картаро

Також Cartaro працює на PostGIS, GeoServer та OpenLayers, тому потенційно може мати все, що ви шукаєте.

Який найкращий інтерфейс верхнього шару для такого веб-сайту?

Я не знаю, що таке "найкращий" верхній шар, але, схоже, Cartaro міг би забезпечити те, що ви шукаєте, оскільки Drupal має багато варіантів інтерфейсу. Схоже, Картаро рано в розвитку (я особисто не знаю нікого, хто ним користується), але він має потенціал.


1
Я ціную інформацію, я не знав, що Картаро має таку можливість. Поки що я буду дотримуватися базової моделі інших згаданих (принаймні, з точки зору дослідження / навчання), але я можу зазирнути трохи глибше в цю CMS. Я приділяв це приблизно годині часу на кілька місяців тому, і спочатку був менше, ніж вражений, але, якщо чесно, я не давав багато шансів на той час.
Джеремі

3

Я збираюся вирішити питання №2. Ось як я вирішу питання щодо дозволу користувачам редагувати власні записи.

Я створюю власні веб-сервіси RESTFUL або SOAP (на ваш вибір), UpdateUserRecord(string WKTLocation, string otherArg)які пов'язані з механізмом аутентифікації вашого веб-сайту.

OpenLayers і PostGIS читають і записують добре відомий текст (WKT), а також GML та інші стандартні формати, але я особисто використовую WKT для передачі інформації про геометрію назад і форми з моєї програми через веб-сервіс і в БД PostGIS.

Також мої веб-методи, як-от, UpdateUserRecordможе викликати тільки користувач, який підтверджує автентифікацію. A 401 Unauthorizedповертається, якщо хтось інший намагається зателефонувати на цю веб-службу. У моєму випадку я використовую .NET і FormsAuthentication з можливістю автентифікації за допомогою OpenAuth2 (Google, Facebook, Twitter тощо). Це також можна зробити в PHP, Java тощо.

Таким чином, ви можете створювати веб-методи, які безпосередньо викликають базу даних PostGIS, та оновлювати або вставляти записи, як тільки ви хочете. І ось так я це зробив.

Тоді я використав GeoServer для WFS, WMS-запитів і легкості відображення інформації на карті, куди я б надав UserID, якщо запит вимагатиме цього.

Сподіваюсь, це допомагає.


Це дуже допомогло, поряд із багаторазовим прийняттям одних і тих же основних принципів. У мене є трохи більше впевненості, що я можу зробити це з правильним фокусом на навчанні. Дякую також!
Джеремі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.