Псевдо 3D в GeoServer

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
prc
Интересующийся
Сообщения: 21
Зарегистрирован: 28 апр 2010, 19:49
Репутация: 0
Откуда: Ukraine, Sumy

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

Сообщение prc » 22 май 2010, 23:38

В GeoServer 2.0.1 cоздал файл стиля как у _DR_ выше, далее определил его по умолчанию для своего слоя домов(shape)(геометрия поле : the_geom type:MultiPolygon ).
Смотрю через Layer Preview - изображение плоское.Пробовал открыть этот WMS-слой через QGIS - аналогично.
Подскажите что я делаю не так?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 23 май 2010, 12:23

Может быть у вас данные не в географической СК, если так, то параметры в функциях, определяющих трехмерность, будут другими.
Spatial is now, more than ever, just another column- The Geometry Column.

prc
Интересующийся
Сообщения: 21
Зарегистрирован: 28 апр 2010, 19:49
Репутация: 0
Откуда: Ukraine, Sumy

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

Сообщение prc » 24 май 2010, 15:27

Мой shape в WGS 84 / UTM. Поэтому задаю в параметрах величины в метрах.
3-d отображается(нашел таки) только если выбрать в Layer Preview формат SVG или PDF.В остальных случаях(png,tiff и др.) отображает 2-D. Как быть с этими форматами ?

prc
Интересующийся
Сообщения: 21
Зарегистрирован: 28 апр 2010, 19:49
Репутация: 0
Откуда: Ukraine, Sumy

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

Сообщение prc » 26 май 2010, 16:00

Данное поведение характерно для shape - файлов.
Если геометрия хранится в Oracle - 3D отображается и в остальных форматах.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 27 май 2010, 01:45

Хм, интересно, надо будет проверить. Я работал с данными, хранящимися в БД PostGIS.
Spatial is now, more than ever, just another column- The Geometry Column.

kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

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

Сообщение kosyag » 16 дек 2010, 07:38

В продолжение темы. Geoserver + PostGIS + два программиста =
Изображение

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

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

Сообщение Mavka » 16 дек 2010, 10:31

UMN MapServer
Q: Можно ли получить псевдо-3D в MapServer?
A: Готового решения нет. Но если посмотрите в MS RFC48, то базовая платформа готова. Нужно всего то написать свою функцию преобразования ツ
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

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

Сообщение wmk » 16 дек 2010, 15:01

Красиво однако :D ... я думаю что стоит написать мануал пошаговый , как например карту перегнать в PostGIS , как sld написать и т.д. Многим пригодится , многие спасибо скажут!
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие

valeria
Интересующийся
Сообщения: 38
Зарегистрирован: 19 май 2011, 16:27
Репутация: 0

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

Сообщение valeria » 19 май 2011, 16:32

помогите пожалуйста,у меня шэйпфалы здания в 3D формате,но делая псевдо 3D получается что все они одной высоты,как назначить высоту здания с шэйп-файла?

kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

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

Сообщение kosyag » 20 май 2011, 05:19

Надо в функии Offset второй параметр брать не фиксированным, а умножать на этажность.

oxch
Участник
Сообщения: 53
Зарегистрирован: 04 мар 2010, 11:30
Репутация: 0
Откуда: Комсомольск-на-Амуре
Контактная информация:

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

Сообщение oxch » 20 май 2011, 09:06

Забавно. Вчера обновил Geoserver с версии 2.0.1 до версии 2.1.0 и 3D стиль домов перестал работать... пока вот ищу решение.
Чудес на свете не бывает, они просто случаются.
Знать - значит уметь использовать.
Интерактивная карта-схема Хабаровского края

oxch
Участник
Сообщения: 53
Зарегистрирован: 04 мар 2010, 11:30
Репутация: 0
Откуда: Комсомольск-на-Амуре
Контактная информация:

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

Сообщение oxch » 30 май 2011, 05:04

Вот такая версия у меня является рабочей:

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

<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>Default Polygon</Name>
    <UserStyle>
      <FeatureTypeStyle>
        <Rule>
          <Title>Shadow</Title>
          <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">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
      </FeatureTypeStyle>
      <FeatureTypeStyle>
        <Rule>
          <Title>Polygon</Title>
          <PolygonSymbolizer>
            <Fill>
              <CssParameter name="fill">#76c3d6</CssParameter>
            </Fill>
            <Stroke>
              <CssParameter name="stroke">#4a7682</CssParameter>
              <CssParameter name="stroke-width">0.5</CssParameter>
            </Stroke>
          </PolygonSymbolizer>
        </Rule>
      </FeatureTypeStyle>

    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>
Чудес на свете не бывает, они просто случаются.
Знать - значит уметь использовать.
Интерактивная карта-схема Хабаровского края

valeria
Интересующийся
Сообщения: 38
Зарегистрирован: 19 май 2011, 16:27
Репутация: 0

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

Сообщение valeria » 01 июн 2011, 16:41

Долго пыталась создать чтоб высота выводилась динамически никак не получается ,помогите пожалуйста ,получается только через фильтр по высоте вот код

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

<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>Default Polygon</Name>
    <UserStyle>
      <FeatureTypeStyle>
        <Rule>
          <Title>3</Title>
          <ogc:Filter>
         <ogc:PropertyIsLessThan>
           <ogc:PropertyName>HEIGHT</ogc:PropertyName>
           <ogc:Literal>3</ogc:Literal>
         </ogc:PropertyIsLessThan>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.00003</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        <Rule>
          <Title>3 TO 6</Title>
         <ogc:Filter>
         <ogc:And>
           <ogc:PropertyIsGreaterThanOrEqualTo>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>3</ogc:Literal>
           </ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyIsLessThan>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>6</ogc:Literal>
           </ogc:PropertyIsLessThan>
         </ogc:And>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.00006</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        
        <Rule>
          <Title>6 TO 9</Title>
         <ogc:Filter>
         <ogc:And>
           <ogc:PropertyIsGreaterThanOrEqualTo>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>6</ogc:Literal>
           </ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyIsLessThan>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>9</ogc:Literal>
           </ogc:PropertyIsLessThan>
         </ogc:And>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.00009</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        
        <Rule>
          <Title>9 TO 12</Title>
         <ogc:Filter>
         <ogc:And>
           <ogc:PropertyIsGreaterThanOrEqualTo>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>9</ogc:Literal>
           </ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyIsLessThan>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>12</ogc:Literal>
           </ogc:PropertyIsLessThan>
         </ogc:And>
       </ogc:Filter>
          <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">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        <Rule>
          <Title>12 TO 15</Title>
         <ogc:Filter>
         <ogc:And>
           <ogc:PropertyIsGreaterThanOrEqualTo>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>12</ogc:Literal>
           </ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyIsLessThan>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>15</ogc:Literal>
           </ogc:PropertyIsLessThan>
         </ogc:And>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.00012</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        <Rule>
          <Title>15 TO 18</Title>
         <ogc:Filter>
         <ogc:And>
           <ogc:PropertyIsGreaterThanOrEqualTo>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>15</ogc:Literal>
           </ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyIsLessThan>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>18</ogc:Literal>
           </ogc:PropertyIsLessThan>
         </ogc:And>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.00015</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        
        <Rule>
          <Title>18 TO 22</Title>
         <ogc:Filter>
         <ogc:And>
           <ogc:PropertyIsGreaterThanOrEqualTo>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>18</ogc:Literal>
           </ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyIsLessThan>
             <ogc:PropertyName>HEIGHT</ogc:PropertyName>
             <ogc:Literal>22</ogc:Literal>
           </ogc:PropertyIsLessThan>
         </ogc:And>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.00018</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        
        
         <Rule>
          <Title>22</Title>
         <ogc:Filter>
         <ogc:PropertyIsGreaterThanOrEqualTo>
           <ogc:PropertyName>HEIGHT</ogc:PropertyName>
           <ogc:Literal>22</ogc:Literal>
         </ogc:PropertyIsGreaterThanOrEqualTo>
       </ogc:Filter>
          <PolygonSymbolizer>
            <Geometry>
              <ogc:Function name="isometric">
                <ogc:PropertyName>the_geom</ogc:PropertyName>
                <ogc:Literal>-0.0002</ogc:Literal>
              </ogc:Function>
            </Geometry>
            <Fill>
              <CssParameter name="fill">#5e9aab</CssParameter>
              <CssParameter name="fill-opacity">1</CssParameter>
            </Fill>
          </PolygonSymbolizer>
        </Rule>
        
        
        
      </FeatureTypeStyle>
      <FeatureTypeStyle>
        <Rule>
          <Title>Polygon</Title>
          <PolygonSymbolizer>
            <Fill>
              <CssParameter name="fill">#76c3d6</CssParameter>
            </Fill>
            <Stroke>
              <CssParameter name="stroke">#4a7682</CssParameter>
              <CssParameter name="stroke-width">0.5</CssParameter>
            </Stroke>
          </PolygonSymbolizer>
           <TextSymbolizer>
         <Label>
           <ogc:PropertyName>HEIGHT</ogc:PropertyName>
         </Label>
       </TextSymbolizer>
        </Rule>
      </FeatureTypeStyle>

    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

для каждой этажности прописывать как по мне так неверно ,хочется чтоб всё формировалась динамически

Аватара пользователя
dobeer
Активный участник
Сообщения: 199
Зарегистрирован: 25 дек 2009, 21:54
Репутация: 1
Откуда: Чита
Контактная информация:

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

Сообщение dobeer » 01 ноя 2011, 19:49

Mavka писал(а):UMN MapServer
Q: Можно ли получить псевдо-3D в MapServer?
A: Готового решения нет. Но если посмотрите в MS RFC48, то базовая платформа готова. Нужно всего то написать свою функцию преобразования ツ
Готового решения так и не появилось?

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

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

Сообщение novia » 01 ноя 2011, 20:56

ArcGIS Server нервно курит в сторонке))
понравилось? жми палец вверх :!:

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя