Page 84 - 6430
P. 84
зменшить число рядків, на яких неоходимо обчислювати
функцію distance (). Зауважимо, що геометрія BOX3D, яка
використовується з оператором & &, є прямокутником зі
стороною в 200 одиниць, центрованим в потрібній точці - це наш
"прямокутник запиту" ("query box"). Оператор & & використовує
індекс, щоб швидко зменшити число аналізованих записів,
вибираючи тільки ті геометрії, які перетинаються з
"прямокутником запиту". Якщо припустити, що наш
прямокутник запитів набагато менше, ніж всі геометрії в таблиці,
то це дозволить різко скоротити число обчислень відстаней, які
повинні бути зроблені.
Починаючи з PostGIS 1.3.0 більшість функцій
геометричних відносин (Geometry Relationship Functions), за
винятком ST_Disjoint і ST_Relate, приховано включають
оператори визначення охоплення.
7. Приклади просторового SQL
Приклади цього розділу будуть використовувати дві
таблиці: таблицю вулиць (лінії) та таблицю кордонів
муніципалітетів (полігони). Таблиця bc_roads буде визначена так:
Column | Type | Description
------------+-------------------+----------------- -
gid | integer | Унікальний ID
name | character varying | Ім'я вулиці
the_geom | geometry | Геометрія розташування (Linestring)
Таблиця bc_municipality буде визначена так:
Column | Type | Description
-----------+-------------------+------------------ -
gid | integer | Унікальний ID
code | integer | Унікальний ID
name | character varying | Назва муніципалітету / міста
the_geom | geometry | Геометрія розташування (Polygon)
1. Яка загальна довжина всіх вулиць у кілометрах?
Відповідь на це питання може дати дуже простий SQL-
запит:
84