Псевдо 3D в GeoServer

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

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

Сообщение prc »

В 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 »

Может быть у вас данные не в географической СК, если так, то параметры в функциях, определяющих трехмерность, будут другими.
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 »

Мой 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 »

Данное поведение характерно для shape - файлов.
Если геометрия хранится в Oracle - 3D отображается и в остальных форматах.
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov »

Хм, интересно, надо будет проверить. Я работал с данными, хранящимися в БД PostGIS.
Spatial is now, more than ever, just another column- The Geometry Column.
kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

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

Сообщение kosyag »

В продолжение темы. Geoserver + PostGIS + два программиста =
Изображение
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

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

Сообщение Mavka »

UMN MapServer
Q: Можно ли получить псевдо-3D в MapServer?
A: Готового решения нет. Но если посмотрите в MS RFC48, то базовая платформа готова. Нужно всего то написать свою функцию преобразования ツ
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
wmk
Активный участник
Сообщения: 102
Зарегистрирован: 11 янв 2009, 17:38
Репутация: 0
Откуда: Казань
Контактная информация:

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

Сообщение wmk »

Красиво однако :D ... я думаю что стоит написать мануал пошаговый , как например карту перегнать в PostGIS , как sld написать и т.д. Многим пригодится , многие спасибо скажут!
OurGuns.ru - пневматическое оружие России и мира
Пневматическое оружие , Страйкбольное оружие , Пейнтбольное оружие
valeria
Интересующийся
Сообщения: 38
Зарегистрирован: 19 май 2011, 16:27
Репутация: 0

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

Сообщение valeria »

помогите пожалуйста,у меня шэйпфалы здания в 3D формате,но делая псевдо 3D получается что все они одной высоты,как назначить высоту здания с шэйп-файла?
kosyag
Интересующийся
Сообщения: 30
Зарегистрирован: 22 янв 2010, 13:19
Репутация: 0

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

Сообщение kosyag »

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

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

Сообщение oxch »

Забавно. Вчера обновил Geoserver с версии 2.0.1 до версии 2.1.0 и 3D стиль домов перестал работать... пока вот ищу решение.
Чудес на свете не бывает, они просто случаются.
Знать - значит уметь использовать.
Интерактивная карта-схема Хабаровского края
oxch
Участник
Сообщения: 53
Зарегистрирован: 04 мар 2010, 11:30
Репутация: 0
Откуда: Комсомольск-на-Амуре
Контактная информация:

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

Сообщение oxch »

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

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

<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 »

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

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

<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 »

Mavka писал(а):UMN MapServer
Q: Можно ли получить псевдо-3D в MapServer?
A: Готового решения нет. Но если посмотрите в MS RFC48, то базовая платформа готова. Нужно всего то написать свою функцию преобразования ツ
Готового решения так и не появилось?
Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

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

Сообщение novia »

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

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

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

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