Який найшвидший (ефективний) спосіб обслуговування функцій PostGIS?


12

Мене цікавить найшвидший спосіб обслуговування функцій PostGIS. Я можу знайти декілька вдосконалень та альтернатив WMS (MapProxy, TileCache, Mapnik ...), але не так багато вдосконалень та альтернатив для відкритого коду WFS. Мене цікавлять не плитки, а багатокутники над моїм базовим шаром. Подається швидко.

Не могли б ви мені вказати в правильному напрямку?


Оновлення:

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

Зараз я використовую суміш WMS + Django, що генерує об’єкти GeoJSON, коли користувач натискає на частину карти, щоб уникнути таких ситуацій, як тисячі полігонів одночасно у клієнті (OpenLayers).

Я не знаю, чи правильно я (якщо слід уникати потенційно важких ситуацій, таких як тисячі поль в кліенті, надаючи їх через WMS або будь-яке інше рішення? Чи варто вдосконалювати спосіб обслуговування полігонів?)


1
Яке обладнання ви маєте?
Mapperz

Ubuntu 10.04 32bit 512 Мб оперативної пам’яті, працює під сервером VMWare. Це машина для розробки, але я ще не маю доступу до іншої. Тут має працювати досить добре (реквізит)
Хорхе Аревало

Відповіді:


6

Що щодо спрощення геометрії?

http://www.bostongis.com/postgis_simplify.snippet

/programming/1849928/how-to-intelligently-degrade-or-smooth-gis-data-simplifying-polygons

Чи, можливо, поєднання WFS, WFS зі спрощеними функціями та WMS?


Звучить добре. Прямо зараз я роздаю поли та обслуговую їх через WMS. Я думаю, що клієнт не буде обробляти мільйони багатокутників одночасно, але я можу помилятися ...
Jorge Arévalo

6

GeoServer надає користувачеві налаштування для контролю кількості десяткових знаків у геометріях, які були введені туди, щоб пришвидшити показ WFS.

Також переконайтеся, що сервер стискає вихід, лише якщо ваш клієнт може ефективно його віджати.

Нарешті я почув хороші речі про крихітні OWS з точки зору швидкості.


Я чув про крихітні OWS, але ніколи не користувався ним. Дякуємо за пропозицію!
Хорхе Аревало

6

Кешування WFS може відповідати вашим потребам. Наскільки мені відомо, є два рішення з відкритим кодом, що забезпечують кешування WFS : TileStache та GeoWebCache .

На домашній сторінці TileStache, в розділі функцій, сказано: "Генерує векторні плитки з джерел даних OGR в GeoJSON, які можна використовувати в Polymaps"

GeoWebCache має деякі можливості кешування WFS з версії 1.1.0 (поточна - 1.2.6):

Випущено GeoWebCache 1.1.0 (нарешті)

...

1.c Основне кешування WFS GeoWebCache 1.1.0 підтримує дуже базове кешування WFS. Результати запитів зберігаються на диску, наразі немає функцій їх перевірки або програмного видалення. Алгоритм покладається на обчислені хеші та не перевіряє на унікальність, тому є хвилинна можливість для зіткнень. Мотивацією цього розвитку став вихідний формат SHP-ZIP (zipped shapefile) у GeoServer. Ці файли можуть бути величезними і надзвичайно дорогими для обчислення. Ця послуга WFS в поточному стані не призначена для використання у складніших випадках.

http://old.nabble.com/GeoWebCache-1.1.0-(finally)-released-td22870524.html

На жаль, я ніколи не працював з TileStache, ні з GeoWebCache, тому не можу поділитися досвідом кешування WFS.


Дякую. Я розглядаю 2 варіанти: візуалізувати свої багатокутники та обслуговувати їх через кеш WMS + (їх мільйони, можливо, занадто багато для клієнта ...) або спробувати обслуговувати мої багатокутники через кеш WFS +. Я зараз працюю з першим варіантом.
Jorge Arévalo

1
Я рекомендую перший варіант (WMS-рендерінг на стороні сервера + кеш). Варіант WFS передбачає, що рендерінг буде здійснюватися на стороні клієнта. На мій досвід, це проблема для користувачів, які мають старі веб-браузери чи комп’ютери, змінну, яку ви не можете керувати.
dariapra

3

Я розробляю великий веб-gis, я працюю з великою кількістю даних (близько 700 000 функцій на шар). Єдиним рішенням є те, що ви робите, WMS для надання функцій та WFS для отримання інформації про функцію. Що я роблю (з хорошими показниками):

  • Геосервер (з рідною бібліотекою JAI )
  • Коли користувач натискає на карту, wms getfeatureinfo використовується для отримання інформації (як форми, так і даних) про вибрану функцію (тут ви повинні реалізувати деякі функції фільтрації, якщо у вас перекриті функції)
  • Результат getFeatureInfo додається як особливість на інший шар для імітації "виділення виділення"

Дякую! Проект нарешті було скасовано, але я думаю, що ваше рішення вдале.
Хорхе Аревало

1

Твердотільний сервер DRAM

http://en.wikipedia.org/wiki/Solid-state_drive#DRAM-based

"Бітовий попит DRAM, що надходить із серверного сектору, у другій половині 2011 року збільшиться на 93,7%"

джерело: http://www.digitimes.com/Reports/Report.asp?datePublish=2011/08/16&pages=PD&seq=206


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