OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

Announcement

A fix has been applied to the login system for the forums - if you have trouble logging in please contact support@openstreetmap.org with both your forum username and your OpenStreetMap username so we can make sure your accounts are properly linked.

#1 2017-04-14 10:21:12

alex_m069
Member
Registered: 2016-11-07
Posts: 24

Полигоны и пустоты в них

Здравствуйте!
Никак не могу понять, каким образом в базе лежат объекты - полигоны, имеющие отверстия.
Например полигон, обозначающий лес, а внутри него - вырубка. Речь идет именно о исключении определенной зоны из полигона.
Отношения? Каким образом формировать sql запрос на добавление такого объекта?

Offline

#2 2017-04-14 10:41:35

freeExec
Moderator
From: Ульяновск
Registered: 2012-07-31
Posts: 6,654

Re: Полигоны и пустоты в них

ST_MakePolygon(geometry outerlinestring, geometry[] interiorlinestrings);

Offline

#3 2017-04-14 10:56:12

chnav
Member
From: Moscow, Russia
Registered: 2010-03-18
Posts: 2,648

Re: Полигоны и пустоты в них

alex_m069 wrote:

Здравствуйте!
Никак не могу понять, каким образом в базе лежат объекты - полигоны, имеющие отверстия.
Например полигон, обозначающий лес, а внутри него - вырубка. Речь идет именно о исключении определенной зоны из полигона.
Отношения?

В базе ОСМ они хранятся как мультиполиноы (relation).

Во время импорта программа-конвертер, например osm2pgsql, делает из них полигоны "с дырками" и хранит в едином поле way. Если лезть совсем внутрь, обычно внешний контур хранится по часовой стрелке, а внутренние дырки - против часовой стрелки. Так рендер понимает где делать заливку.

Last edited by chnav (2017-04-14 10:57:12)

Offline

Board footer

Powered by FluxBB