Більше

Як створити рівень PostGIS за допомогою QGIS API?

Як створити рівень PostGIS за допомогою QGIS API?


Я хочу створити новий рівень PostGIS і зберегти внесені до нього зміни.

В даний час я підключаю Python до PostGIS за допомогою psycopg2, але я хочу знати, чи є якась функція QGIS API.

Примітка. Я можу відкрити існуючий рівень PostGIS, але не знаю, як створити новий.


"Як створити постгіс-шар PostGIS у qgis"> Ви могли бути більш зрозумілими раніше! Мені знадобився час, щоб написати свою першу відповідь (видалено з).

Ви можете ознайомитися з цим онлайн-семінаром, а особливо з цим розділом.

Думаю, ви вже знаєте QGIS api doc!


Як створити рівень PostGIS за допомогою QGIS API? - Геоінформаційні системи

sderle / Geo-Coder-US / Geo :: Coder :: US] Відмінна бібліотека '' Perl '' для геокодування, яка забезпечує [http://www.geocoder.us/ Geocoder.us]. Користувачі можуть створювати власні бази географічних даних, використовуючи дані TIGER / Line бюро перепису населення (див. Нижче). * [https://svn.greenpeace.org/projects/custard/browser/doc/geodata GeoRosetta], ліцензія CC-BY-SA, з контролем якості, збір даних геокодування. Ще не оприлюднено (?). * [http://mapserver.gis.umn.edu/ MapServer]: Університет Міннесоти (UMN) "Середовище розробки з відкритим кодом для створення просторових інтернет-додатків". * [http://www.mapnik.org/ Mapnik]: C ++ та Python інструментарій для розробки прикладних програм. Заявлені переваги перед MapServer: "Він використовує бібліотеку AGG і пропонує згладжування рендеринга світового класу з точністю до пікселів для географічних даних. Це написано з нуля в сучасній C ++ і не страждає від дизайнерських рішень, прийнятих десять років тому". '' Див. '' [Http://www.mapnik.org/faq/ MapNik FAQ]. * [http://code.google.com/p/pyproj/ pyproj]: Pyrex створив інтерфейс python до бібліотеки PROJ.4. * Ruby on Rails * [http://rubyforge.org/projects/georuby/ GeoRuby]: Інтерфейс для просторових розширень PostGIS та MySQL, але не впевнений у просторовому запиті. * [http://www.ivygis.org/ IvyGIS]: дисплеї типу Google-Maps із RoR і UMN MapServer * [http://thepochisuperstarmegashow.com/ProjectsDoc/spatialadapter-doc/index.html Просторовий адаптер для рейок]: Плагін для Rails, який прозоро керує геометричними стовпцями MySql Spatial та PostGIS (як і інші стовпці базового типу даних). Це може мати деякі корисні методи, коли ми намагаємось підтримувати інші просторові розширення, крім PostGIS. * [http://cartographer.rubyforge.org/ Cartographer] Плагін GMaps == Корисні дані == * [http://www.census.gov/geo/www/tiger/tiger2006se/tgr2006se.html TIGER / Line]: "Файли TIGER / Line - це витяги вибраної географічної та картографічної інформації із бази даних [http://www.census.gov/ Бюро перепису населення] TIGER® (топологічно інтегровані географічні кодування та посилання)." Ці дані корисні для створення власної служби баз даних геокодування. На даний момент друге видання 2006 року є останнім. Примітка: Бюро перепису населення буде [http://www.census.gov/geo/www/tiger/tgrshp.html надавати файли SHP] восени 2007 р. = FAQ = * Розмістіть свої запитання '' 'тут' '' . * '' 'Q:' '' При роботі з точками (скажімо, градусами) від, чи потрібно їх перетворити, щоб вони були корисними для внутрішніх даних, припускаючи, що -значені дані знаходяться в градусах? Чи достатньо мати однакові дані та походження? (Читання вступу вище, швидше за все, дасть відповідь на запитання.) * Моє (JDunck) читання означає, що так. Враховуючи однакову систему координат (тобто точку відліку, початок координат та осі), градуси корисні без перетворення. * '' 'Q:' '' Чи може ця реалізація працювати з [http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html просторовими розширеннями MySQL]. Якщо ні, то це планується? * Ні. Це (зараз) заплановано, '' див. '' Фаза 3 нижче. З останнього разу, коли я (jbronn) перевіряв, просторові можливості MySQL покращились. Однак ми зосередимо свої зусилля на PostGIS, поки все не буде трохи розроблено. Як просторова база даних PostGIS вона більш відповідає стандартам (консорціум OpenGIS), більш широко використовується і має більше можливостей (наприклад, перетворення координат, <<>> та <<>> таблиці). Це, безумовно, щось, що я хотів би впровадити в майбутньому, оскільки я роблю "як" MySQL. * '' 'Q:' '' Це буде сервер WMS / клієнт WMS / обидва? OWSLib - це лише клієнт WMS з того, що я бачив (з ruckc) * По-перше, сервер WMS, можливість клієнта в певних ситуаціях (тобто ви хочете кешувати дані з іншого сервера WMS). Так, OWSLib є клієнтом, але він містить код для перевірки правильних параметрів для надсилання на сервер WMS, отже, його можна адаптувати у поданні Django, яке перевіряє, чи були вказані правильні параметри WMS. Mapnik має <<>> модуль, який може аналізувати правильні параметри для WMS 1.1.1 та 1.3.0, однак, оскільки він ліцензований згідно LGPL, його неможливо легко включити в цю гілку (на відміну від OWSLib). = Впровадження = == Етап 1 == * Створення полів та менеджера з підтримкою геометрії. Статус: закінчений станом на r4788. * Дозволити запити з підтримкою геометрії. Статус: закінчений станом на r4788. == Фаза 2 == * '' 'Очікує' '' * Додайте якомога більше з API PostGIS. * Підтримка фреймворку картографування (наприклад, Google Maps / Earth, Yahoo Maps, MS Live та ін.) * Адміністрування полів і форм (поле WKT на даний момент станом на r4884, але ми хочемо, щоб віджети переглядали географічні об'єкти та маніпулювали ними) * Службові програми для імпорту растрових даних (спочатку файли SHP) безпосередньо в моделі Django. * '' 'Повна' '' * Можливість індексування PostGIS. * Починаючи з r5008, додав об'єкт-обгортку GEOS для полів із підтримкою геометрії, які викликають безпосередньо підпрограми GEOS ('' наприклад '' <<>>). '' Див. '' [GeoDjango # ExtraInstanceMethods Extra Instance Methods] нижче) == Фаза 3 == * Підтримка баз даних MySQL. * Рамка геокодування. == Проблеми з дизайном == * Клієнт JS / Flash framework, '' тобто '', чи хочемо ми підтримувати OpenLayers, API Google Maps, Yahoo API? * Поки що Карти Google виглядають найбільш перспективними для першої підтримки (люди знайомі з ними, і вони стабільніші, ніж відкриті шари). * [http://developer.yahoo.com/maps/ Yahoo!] має дуже витончений інтерфейс Flash, я хотів би підтримати це в кінцевому підсумку. * [http://www.openlayers.org/ OpenLayers] підтримує WMS / WFS / плитки, а також рівні Google, MSVE та Yahoo. Він дуже гнучкий і відкритий (!!). '' (Rob Coup) '' * Картографування (створення спеціальних плиток, шарів, міток тощо) * [http://www.mapnik.org/ Mapnik] є сучасним, але дуже рано у розробці та '' повністю '' не вистачає документації. Однак код елегантний і чистий, і він був розроблений для інтеграції з Python - ми схиляємось до цього прямо зараз. * [http://mapserver.gis.umn.edu/ Mapserver] існує вже деякий час, маючи сильну підтримку в спільноті (наприклад, підтримка на місцевому рівні в [http://qgis.org/ QGIS]). Навіть з документацією, код виглядає менш привабливим, ніж Mapnik (все на мові C), також має архаїчні текстові конфігураційні файли (мови розмітки до дати). * GEOS * '' 'Оновлення:' '' Починаючи з r5008, GeoDjango має власний інтерфейс GEOS (через <<>>) * Шон Гілліс більше не підтримує GEOS. '' Див. '' Шон Гілліс, '' [http://zcologia.com/news/150/geometries-for-python/ Geometries for Python] '' (пост у блозі, що пояснює обґрунтування відмови від підтримки GEOS) '' див. Також ' 'Повідомлення Шона у [http://geos.refractions.net/pipermail/geos-devel/2007-March/002851.html GEOS-Devel Mailing List] (5 березня 2007 р.). * Можна розглянути будь-який

або реалізуйте <<>> обгортка для тих процедур, які нам потрібні - тут не вдається портувати код PCL, оскільки це GPL (Django ліцензований під BSD). * Сервер WMS * Я не задоволений жодною з поточних реалізацій WMS / WFS. Буде бажаним такий, який реалізований в Django, наприклад, <<>>. Думає хто? (OWSLib виглядає добре, див. Нижче) == Співпраця == * PCL (картографічна бібліотека Python), яка зараз є частиною [http://www.gispython.org/ GIS Python], вже зробила багато хорошої роботи. Давайте застосуємо принцип СУХОГО. Потужні можливості для співпраці щодо: * Картографування * Структури WMS / WMF - '' '[http://trac.gispython.org/projects/PCL/browser/OWSLib/trunk OWSLib]' '' для цього виглядає чудово (BSD ліцензований і має модульні тести!) * Службові програми * Ідеї представлення баз даних * Підтримка GEOS, Шон Жиль (провідний розробник PCL), який шукає допомогу в підтримці інтерфейсу Python / SWIG до GEOS. Якщо інтерфейс SWIG більше не підтримується, можливо, доведеться перейти до PCL для оновленої підтримки бібліотеки GEOS. * [http://code.google.com/p/django-coordinatesfield/ CoordinatesField]. * Jannis Leidel вже придумав спосіб маніпулювання точками в адміністративному інтерфейсі, ліцензований BSD. * [http://exogen.case.edu/projects/geopy/ geopy] * Брайан Бек написав добру основу для геокодування та розрахунків відстані, має ліцензію BSD. = Приклад = == Географічні моделі == Ось приклад того, як на даний момент працює API моделі (припустимо, цей приклад знаходиться в geo_app / models.py): <<< #! Python з класу моделей імпорту django.contrib.gis.db Район (models.Model, models.GeoMixin): name = models.CharField (maxlength = 35) num = models.IntegerField () poly = models.PolygonField () objects = models.GeoManager () class School (models.Model, models .GeoMixin): name = models.CharField (maxlength = 35) point = models.PointField (index = True) objects = models.GeoManager () >>> '' 'Примітки' '': The <<>> клас дозволяє [GeoDjango # ExtraInstanceMethods додаткові методи екземпляра]. <<>> ключове слово використовується, щоб вказати, що для школи буде створено індекс GiST <<>> s поля. == Використання syncdb == Використовуйте <<>> викликати <<>> як зазвичай: <<< #! sql $ python manage.py sqlall geo_app ПОЧАТИ СТВОРИТИ ТАБЛИЦЮ "geo_app_school" ("id" serial NOT NULL PRIMARY KEY, "name" varchar (35) NOT NULL) CREATE TABLE "geo_app_district "(" id "serial NOT NULL PRIMARY KEY," name "varchar (35) NOT NULL," num "integer NOT NULL) SELECT AddGeometryColumn ('geo_app_school', 'point', 4326, 'POINT', 2) CREATE Index" geo_app_school_point_id "ON" geo_app_school "ВИКОРИСТАННЯ GIST (" точка "GIST_GEOMETRY_OPS) SELECT AddGeometryColumn ('geo_app_district', 'poly', 4326, 'MULTIPOLYGON', 2) COMMIT $ python manage.py syncdb 'sy_dn' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'synbdd' geo_ap 'syncdb geo_ap' syncdb geo_ap 'syncdb geo_app_school_point_id '' Стовпці геометрії створюються поза межами <<>> твердження <<>>. Це робиться відповідно до специфікації OpenGIS. '' Див. '' Open GIS Consortium, Inc., '' [http://www.opengis.org/docs/99-049.pdf Проста специфікація функцій OpenGIS для SQL] '', документ 99-049 (5 травня, 1999), на гл. 2.3.8 (Значення геометрії та просторові системи відліку, стор. 39). == Просторові запити == Після створення географічної моделі можуть використовуватися доповнення PostGIS до API. Географічні запити виконуються, як правило, за допомогою <<>> та <<>> на моделях із підтримкою геометрії, що використовують типи географічного пошуку ('' див. нижче '[GeoDjango # DatabaseAPI Database API] щодо типів пошуку). У наступному прикладі <<>> використовується тип пошуку, який збігається з оператором PostGIS <<< && >>>. Виглядає, чи містить `` обмежувальне поле '' багатокутника конкретну точку. У наступному прикладі використовується PostGIS <<>>, яка викликає бібліотеку GEOS для перевірки, чи насправді `` багатокутник '' містить конкретну точку, а не лише обмежувальне поле. <<< #! python >>> з geo_app.models import District, School >>> qs1 = District.objects.filter (poly__bbcontains = 'POINT (-95.362293 29.756539)') >>> qs2 = District.objects.filter ( poly__contains = 'POINT (-95.362293 29.756539)') >>> Як просторові запити, так і звичайні запити з використанням <<>> може використовуватися в тому самому запиті. Наприклад, наступний набір запитів буде показувати лише шкільні округи, в назві яких є "Х'юстон" і містять задану точку в межах їх багатокутника: <<< #! Python >>> qs = District.objects.filter (name__contains = ' Х'юстон '). Filter (poly__contains =' POINT (-95.362293 29.756539) ') >>> Або комбінуйте обидві рутинні рамки (менш точні, швидкі) з процедурами GEOS (найточніші, повільніші), щоб отримати обидва запити швидко і точно: <<< #! python >>> qs = District.objects.filter (poly__bbcontains = 'POINT (-95.362293 29.756539)'). filter (poly__contains = 'POINT (-95.362293 29.756539)') >>> = Встановлення = Встановлення модуля GeoDjango також вимагатиме встановлення існуючих географічних бібліотек з відкритим кодом та просторової бази даних (наразі лише PostGIS). У цьому розділі буде описано процес встановлення цих бібліотек. Спочатку ці інструкції стосуватимуться лише платформи Linux (зокрема, Debian або Ubuntu). Підтримка Mac і Windows буде розглянута пізніше, однак ці інструкції, швидше за все, працюватимуть через оболонку Mac.

Не затамуйте дух для підтримки Windows.

Спільна підтримка передумов краща, ніж вважалося раніше, підтримка Windows з’явиться набагато раніше, ніж очікувалося. == Django == * GeoDjango існує в <<>> гілка з SVN: <<< $ svn co http://code.djangoproject.com/svn/django/branches/gis django_gis $ ln -s django_gis / path / to / site-пакети / django >>> == GEOS == * Остання [http://geos.refractions.net/ GEOS] версія 3.0.0RC4 * '' 'Оновлення:' '' Станом на r5008, вам '' не '' потрібно активувати прив'язки Python, оскільки GeoDjango має власний GEOS <<>> обгортка. * <<>> стандартно поставляється з Python 2.5. Якщо ви запускаєте Python 2.4, <<>> може бути [http://sourceforge.net/project/showfiles.php?group_id=71702&package_id=71318 завантажений тут] * Налаштування, виготовлення та встановлення. <<< $ ./configure $ make # make install >>> == PROJ.4 == * Остання [http://proj.maptools.org/ PROJ.4] версія 4.5.0 * Спочатку завантажте PROJ [ftp://ftp.remotesensing.org/proj/proj-datumgrid-1.3.tar.gz файли переміщення даних]. Вони стануть в нагоді для перетворень координат, коли інші програми (наприклад, Mapserver або Mapnik) не можуть впоратися з перетвореннями EPSG (я навчився важким способом). Зніміть / розпакуйте їх у <<>> підкаталог джерела PROJ. Наприклад, якщо PROJ було розпаковано в каталог з іменем <<>>, а потім зніміть ці файли в <<>>. Зробіть це '' 'перед тим, як' 'ви налаштуєте / зробите / встановите танець. * '' Див. '' [Http://remotesensing.org/proj/faq.html FAQ про PROJ] '' див. Також '' [http://mapserver.gis.umn.edu/data2/wilma/mapserver-users/ 0301 / msg00541.html Відповідь Френка Вармердама на запитання про Mapserver]. * Далі налаштуйте, зробіть та встановіть. <<< $ ./configure $ make # make install >>> == PostGIS == * Остання [http://postgis.refractions.net/download/ PostGIS] версія 1.2.1 * Перша збірка та встановлення PostGIS. На даний момент ми використовуємо v8.1 PostgreSQL. <<< $ ./configure --with-geos --with-proj $ make # make install >>> * Далі створіть роль і базу даних для своєї програми та надайте їй доступ до функціональних можливостей PostGIS: <<< # su - postgres $ psql postgres = # СТВОРИТИ РОЛЬ ВХОДУ postgres = # q $ createdb -O $ createlang plpgsql $ psql -d -f /usr/local/share/lwpostgis.sql $ psql -d -f / usr / local / share /spatial_ref_sys.sql $ psql = # GRANT SELECT, UPDATE, INSERT, DELETE ON geometry_columns TO = # GRANT SELECT ON spatial_ref_sys TO >>> * Нарешті, оновіть ваш <<>> відображати ім'я та користувача просторово включеної бази даних. Поки що ми плануємо підтримувати лише серверну частину psycopg2, таким чином: <<>>. == GDAL == * Необов’язковий, але дуже корисний для перетворення координат та читання / запис векторних географічних даних (наприклад, SHP) та растрових (наприклад, TIFF). * Наприклад, наступна команда перетворить ваш файл SHP у [http://en.wikipedia.org/wiki/WGS84 WGS84] (стандартна ширина / довжина). Потім ви можете імпортувати безпосередньо у вашу базу даних за допомогою <<>> (утиліта від PostGIS): <<< ogr2ogr -t_srs WGS84 output.shp input.shp >>> * Остання [http://www.gdal.org/download.html GDAL] версія 1.4.1. Налаштуйте за допомогою підтримки GEOS та Python, а потім зробіть та встановіть: <<< $ ./configure --with-geos --with-ngpython $ make # make install >>> * '' Примітка '': Це робиться за допомогою ' наступне покоління 'SWIG Python прив'язки. Прапор компіляції для активації старих прив'язок (більше не підтримується) - << <--with-python> >>. = API API = == поля == Доступні такі поля з підтримкою геометрії: * <<>> * <<>> * <<>> * <<>> * <<>> * <<>> * <<>> == Ключові слова поля == * Ключові слова поля використовуються під час створення моделі, наприклад: <<< #! Python з django.contrib.gis.db клас імпорту моделей Zip (models.Model, models.GeoMixin): code = models.IntegerField () poly = models.PolygonField (srid = -1, index = True) об'єкт = models.GeoManager () >>> * <<>> * Встановлює SRID (Ідентичність просторової системи відліку) геометрії на задане значення. За замовчуванням 4326 (WGS84). '' Див. '' Open GIS Consortium, Inc., '' [http://www.opengis.org/docs/99-049.pdf Проста специфікація функцій OpenGIS для SQL] '', документ 99-049 (5 травня, 1999), на гл. 2.3.8 (Значення геометрії та просторові системи відліку, стор. 39). * <<>> * Якщо встановлено значення True, буде створено індекс GiST для даної геометрії. Оновіть індекс за допомогою команди PostgreSQL <<>> (виконання може зайняти деякий час, залежно від того, наскільки великі ваші географічно активовані таблиці). == Створення та збереження моделей із полями геометрії == Ось приклад створення об'єкта геометрії (при умові, що <<>> приклад моделі вище): <<< #! python >>> із zipcode.models import Zip >>> z = Zip (code = 77096, poly = 'POLYGON ((10 10, 10 20, 20 20, 20 15 , 10 10)) ') >>> z.save () >>> Геометрії представлені як' '' рядки '' 'в будь-якому з форматів WKT (Добре відомий текст) або HEXEWKB (специфічний для PostGIS, по суті геометрія WKB у шістнадцятковій). Наприклад: * WKT Polygon: <<< 'POLYGON ((10 10, 10 20, 20 20, 20 15, 10 10))' >>> * '' Див. '' Open GIS Consortium, Inc., '' [ http://www.opengis.org/docs/99-049.pdf Проста специфікація функцій OpenGIS для SQL] '', документ 99-049 (5 травня 1999 р.), гл. 3.2.5 (Текстове представлення геометрії SQL, стор. 53). * HEXEWKB Багатокутник: '<<< 0103000000010000000. 00000000000002440 '>>> *' 'Див.' '[Http://postgis.refractions.net/docs/ch04.html#id2904792 "PostGIS EWKB, EWKT та канонічні форми"], документація PostGIS на Ch. 4.1.2. = Database API = '' 'Примітка:' '' Наступні типи пошуку в базі даних можна використовувати лише в географічних полях з <<>>. Фільтри в "звичайних" полях (наприклад, <<>>) може бути прикутий до тих, що на географічних полях. Таким чином, географічні запити приймають наступну форму (припускаючи <<>> модель, використана у розділі [GeoDjango # ModelAPI Model API] вище): <<< #! python >>> qs = Zip.objects.filter (__ =) >>> qs = Zip.objects.exclude (.) >>> == Типи пошуку полів оператора PostGIS == * '' Див. Загалом '', [http://postgis.refractions.net/docs/ch06.html#id2854381 "Оператори", Документація PostGIS на гл. 6.2.2] * '' 'Примітка:' '' Цей API може зазнати певних змін - ми відкриті для пропозицій. * <<>> * Повертає true, якщо обмежувальне поле A перекривається або знаходиться ліворуч від обмежувального поля B. * PostGIS еквівалент "<<< & >>>" * <<>> * Повертає true, якщо обмежувальна рамка A знаходиться строго ліворуч від обмежувальної рамки B. * PostGIS еквівалент "<<< >>>>" * <<>> * Повертає true, якщо обмежувальне поле A перекривається або знаходиться нижче обмежувального поля B. * PostGIS еквівалент "<<< & >>>" * <<>> * Повертає true, якщо обмежувальне поле A знаходиться строго нижче обмежувального поля B. * PostGIS еквівалент "<<< >>>>" * <<>> * Оператор "те саме, що". Він перевіряє фактичну геометричну рівність двох ознак. Отже, якщо A і B - одна і та ж ознака, покроково за вершиною, оператор повертає true. * PostGIS еквівалент "<<<

=>>>" * <<>> * Повертає true, якщо обмежувальне поле A повністю міститься обмежувальним полем B. * PostGIS еквівалент "<<< @ >>>" * <<>> * Повертає true, якщо обмежувальне поле A повністю містить обмежувальне поле B. * PostGIS еквівалент "<<<

>>>" * <<>> * Повертає true, якщо обмежувальне поле A перекриває обмежувальне поле B. * Еквівалент PostGIS "<<< && >>>" == Типи пошуку полів функцій PostGIS GEOS == * '' Див. Загалом '' [http://postgis.refractions.net/docs/ch06.html#id2615853 "Взаємозв'язок геометрії Функції ", Документація PostGIS на гл. 6.1.2]. * Ця документація буде повністю оновлена ​​разом із вмістом із вищезазначених документів PostGIS. *

* '' 'Попередження:' '' Цей тип пошуку функції не працює, і він буде переміщений до процедури як частина <<>>. * Поверніть декартову відстань між двома геометріями в проектованих одиницях. * PostGIS еквівалент <<>> * <<>> * Потрібен GEOS * Повертає 1 (TRUE), якщо задані Геометрії "просторово рівні". * Використовуйте це для "кращої" відповіді, ніж "=". equals ('LINESTRING (0 0, 10 10)', 'LINESTRING (0 0, 5 5, 10 10)') відповідає дійсності. * PostGIS еквівалент <<>>, OGC SPEC s2.1.1.2 * <<>> * Потрібен GEOS * Повертає 1 (TRUE), якщо Геометрії "просторово не пов'язані". * PostGIS еквівалент <<>> * <<>> * Еквівалент PostGIS <<>> * <<>> * Еквівалент PostGIS <<>> * <<>> * Еквівалент PostGIS <<>> * <<>> * Еквівалент PostGIS <<>> * <<>> * Еквівалент PostGIS <<>> * <<>> * Еквівалент PostGIS <<>> * <<>> * Еквівалент PostGIS <<>> == Методи додаткових екземплярів == Модель із полями геометрії отримає такі методи, підставляючи <<>> з назвою поля геометрії: == get_GEOM_geos == Повертає <<>> приклад для геометрії. Наприклад (за допомогою <<>> модель зверху): <<< #! python >>> з django.contrib.gis.geos import GEOSGeometry >>> dist = District.objects.get (name = 'Houston ISD') >>> geom = dist .get_poly_geos () >>> print geom.centroid.wkt POINT (-95.231713 29.723235) >>> print geom.area 0.08332 >>> print geom.geom_type Polygon >>> print geom.centroid.geom_type Point >>> print geom .intersects (GEOSGeometry ('POINT (-95.395223 29.798088)')) False >>> == get_GEOM_wkt == Повертає OGC WKT (Добре відомий текст) для геометрії. Наприклад (за допомогою <<>> модель зверху): <<< #! python >>> skool = School.objects.get (name = 'PSAS') >>> print skool.get_point_wkt () POINT (-95.460822 29.745463) >>> == get_GEOM_centroid == Ця процедура повертає центроїд геометрії. Наприклад (за допомогою <<>> модель зверху): <<< #! python >>> dist = District.objects.get (name = 'Houston ISD') >>> print dist.get_poly_centroid () POINT (-95.231713 29.723235) >>> = = get_GEOM_area == Ця процедура поверне площу поля геометрії. <<< #! python >>> dist = District.objects.get (name = 'Houston ISD') >>> print dist.get_poly_area () 0.08332 >>> '' 'Примітка' '': Одиниці в прогнозованому одиниць системи координат. У наведеному вище прикладі одиниці вимірюються в градусах, оскільки ми використовуємо WGS84.

Тут потрібно з’ясувати систему одиниць, оскільки я не знаю, що ці одиниці представляють


Перегляньте відео: QGIS User0015 - PostGIS Setup