Страница 1 из 3

Псевдо 3D в GeoServer

Добавлено: 22 янв 2010, 13:25
kosyag
Здравствуйте! Вопрос таков: как реализовать отображение объектов в псевдо 3D (вот так)? Для GeoTools вроде бы есть патч, который позволяет преобразовывать геометрию с помощью SLD. Работает ли это в Геосервере? И если не работает - какие варианты?

Re: Псевдо 3D в GeoServer

Добавлено: 04 мар 2010, 06:46
kosyag
Сам себе отвечу (может кому пригодится): использовал в итоге в SLD для слоя псевдо 3D объектов функции isometric и offset.

Re: Псевдо 3D в GeoServer

Добавлено: 04 мар 2010, 07:17
Максим Дубинин
Можете показать, что у вас получилось? картинкой или ссылкой.

Re: Псевдо 3D в GeoServer

Добавлено: 04 мар 2010, 09:21
kosyag
Получилось следующее:
Изображение

Прозрачность убрана специально, отрисовка рёбер - тоже (иначе видны невидимые грани).

Re: Псевдо 3D в GeoServer

Добавлено: 04 мар 2010, 10:07
Mavka
Однозначно - красиво.
SLD-файл не приложите?

Re: Псевдо 3D в GeoServer

Добавлено: 04 мар 2010, 11:07
kosyag
Mavka писал(а):Однозначно - красиво.
SLD-файл не приложите?
Я не имею права выкладывать файлы рабочего проекта, увы (как и их фрагменты). :( Но я сделал всё практически один-в-один как тут: http://n2.nabble.com/Geometry-transform ... 83419.html

P.S. Валидацию такой SLD-файл не пройдёт, но работать будет.

Re: Псевдо 3D в GeoServer

Добавлено: 04 мар 2010, 18:13
Максим Дубинин
согласен с Mavka, очень красиво, спасибо что поделились

Re: Псевдо 3D в GeoServer

Добавлено: 05 мар 2010, 07:47
Denis Rykov
А не поделитесь инструкцией как такую красоту поднять на геосервере. Как я понял, сначала нужно установить патч и далее в SLD использовать соответствующие функции. Хотел было попробовать, но не разобрался к какому файлу применять patch.

Re: Псевдо 3D в GeoServer

Добавлено: 05 мар 2010, 11:08
kosyag
В 2.0.1 всё уже встроено "из коробки", никаких патчей не надо. Просто пишем SLD.

Re: Псевдо 3D в GeoServer

Добавлено: 06 мар 2010, 11:34
dobeer
А на MapServer'е возможно реализовать псевдо 3д, может кто подскажет?

Re: Псевдо 3D в GeoServer

Добавлено: 06 мар 2010, 19:34
bim2010
А на MapServer'е возможно реализовать псевдо 3д, может кто подскажет?
В SUAS MapServer возможно. Уточните какой из MapServer-ов интересует?
Последний релиз.

Re: Псевдо 3D в GeoServer

Добавлено: 06 мар 2010, 21:23
Denis Rykov
kosyag писал(а):В 2.0.1 всё уже встроено "из коробки", никаких патчей не надо. Просто пишем SLD.
Спасибо, разобрался. Привожу пример своего SLD:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"
  xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
  <NamedLayer>
    <Name>alt-buildings</Name>
    <UserStyle>
      <FeatureTypeStyle>
        <Rule>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>0.0001</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#7B8F96</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="offset">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>0</ogc:Literal>
                <ogc:Literal>0.0001</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#BAD8E2</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
         </Rule>
      </FeatureTypeStyle>
      </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>
Как уже было отмечено выше - за трёхмерное представление объектов отвечают две функции isometric и offset, причем первая отвечает за экструдинг, а вторая за смещение основания и крыши (в примере смещение основания равно 0, а крыши 0.0001).

Re: Псевдо 3D в GeoServer

Добавлено: 07 мар 2010, 11:21
dobeer
bim2010 писал(а):
В SUAS MapServer возможно. Уточните какой из MapServer-ов интересует?
Последний релиз.
У нас установлен mapserver-5.6.1, что необходимо сделать, чтоб реализовать псевдо 3Д?

Re: Псевдо 3D в GeoServer

Добавлено: 07 мар 2010, 11:53
Denis Rykov
MapServer и SUAS MapServer это совершенно разные продукты, поддержка 3D есть в SUAS, а судя по номеру версии у вас установлен не он.

Re: Псевдо 3D в GeoServer

Добавлено: 07 мар 2010, 12:26
dobeer
Я так и понял, посмотрев ссылки)))