OSGeo Planet

GeoTools Team: GeoTools 12-beta Released

OSGeo Planet - Fri, 2014-07-25 22:38
divdivThe GeoTools community is delighted to announce availability of GeoTools 12-beta for testing:/div/divdiv class=post-body entry-content id=post-body-2992135552493375359 style=background-color: white;div dir=ltrullia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12-beta/geotools-12-beta-bin.zip/download style=color: #ca7900; target=_blankspan style=font-family: inherit;geotools-12-beta.zip/span/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12-beta/geotools-12-beta-doc.zip/download style=color: #ca7900; target=_blankspan style=font-family: inherit;geotools-12-beta-doc.zip/span/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12-beta/geotools-12-beta-userguide.zip/download rel=nofollow style=color: #ca7900;span style=font-family: inherit;geotools-12-beta-userguide.zip/span/a/lilispan style=color: #ca7900; font-family: inherit;a href=http://sourceforge.net/projects/geotools/files/GeoTools%2012%20Releases/12-beta/geotools-12-beta-project.zip/download style=color: #ca7900; target=_blankgeotools-12-beta-project.zip/a/span/lilia href=http://download.osgeo.org/webdav/geotools/span style=font-family: inherit;maven repository/span/a/li/ulspan style=font-family: inherit;spanThis release is made in conjunction with /spana href=http://blog.geoserver.org/2014/07/24/geoserver-2-6-beta-released/GeoServer 2.6-beta/aspan./span/spanbr /divspan style=font-family: inherit;br //span/divdivdivspan style=font-family: inherit;We will provide a more detailed feature list for the final 12.0 release, for now check out the a href=https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10270amp;version=20170 style=color: #ca7900; target=_blankGeoTools 12-beta Release Notes/a./span/divdivspan style=font-family: inherit;br //span/divdivspan style=font-family: inherit;This beta release is provided for integration testing. Earlier this year we a href=http://geotoolsnews.blogspot.ca/2014/02/changing-tracks-on-geotools-release.htmlslowed down our release cycle/a for better collaboration. At this time we ask downstream projects to perform a smoke test and highlight any issues found./span/divdivspan style=font-family: inherit;br //span/divdivspan style=font-family: inherit;Priority should be given to testing the following functionality:/span/divdivspan style=font-family: inherit;br //span/divdivbspan style=font-family: inherit;Java 7/span/b/divdivspan style=font-family: inherit;We have changed our source compile options to 1.7, you will need to use OpenJDK 7 or Oracle JDK 7 to this release of GeoTools. While upgrading to Java 7 take advantage of the try-with-resource syntax which is compatible many GeoTools constructs. /span/divdivspan style=font-family: inherit;br //span/divspan style=font-family: Courier New, Courier, monospace; font-size: xx-small; line-height: 21px;try (SimpleFeatureIterator iterator = featureCollection.features()){/spanbr /span style=font-family: 'Courier New', Courier, monospace; font-size: xx-small; line-height: 21px;   while( iterator.hasNext() ){/spanbr /span style=font-family: Courier New, Courier, monospace; font-size: xx-small; line-height: 21px;     SimpleFeature feature = iterator.next();/spanbr /span style=font-family: Courier New, Courier, monospace; font-size: xx-small; line-height: 21px;     .../spanbr /span style=font-family: Courier New, Courier, monospace; font-size: xx-small; line-height: 21px;   }/spanbr /span style=font-family: Courier New, Courier, monospace; font-size: xx-small; line-height: 21px;}/spanbr /spanbr //spanspanYou can see the original /spana href=http://docs.codehaus.org/display/GEOTOOLS/Upgrade+master+to+Java+7proposal/aspan for details./spanbr /divspanspan style=font-family: inherit;br //span/span/divdivspanspan style=font-family: inherit;Thanks for CSIRO, Boundless and GeoSolutions for updating the build servers so we could make this transition in a responsible fashion./span/span/divdivspan style=font-family: inherit;br //span/divdivbspan style=font-family: inherit;gt-wfs-ng/span/b/divdivspan style=font-family: inherit;The wfs-ng client is now ready for widespread use, acting as a drop-in replacement (making use of the same connection parameters). A great deal of attention has been paid to support axis-order corrections allowing the wfs-ng client to work with all manner of ill-behaved WFS implementations. /span/divdivspan style=font-family: inherit;br //span/divspan style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;String getCapabilities = http://localhost:8080/geoserver/wfs?REQUEST=GetCapabilities;/span/spanbr /span style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;Map connectionParameters = new HashMap();/span/spanbr /span style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;connectionParameters.put(WFSDataStoreFactory:GET_CAPABILITIES_URL, getCapabilities );/span/spanbr /span style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;DataStore dataStore = DataStoreFinder.getDataStore( connectionParameters );/span/spanbr /divspan style=font-family: inherit;br //span/divdivspan style=font-family: inherit;In order to make wfs-ng a drop-in replacement (and respond to the same connection parameters) you are limited to only using one of the gt-wfs and gt-wfs-ng plugins in your application at a time./span/divdivspan style=font-family: inherit;br //span/divspan style=font-family: inherit;span style=line-height: 21px;badvanced/b/spanb raster reprojection/b/spanbr /span style=line-height: 21px;span style=font-family: inherit;A lot of work has been put into improving the raster reprojection story for glitches around the date line and polar regions. To enable these options use the following rendering hints:/span/spanbr /span style=line-height: 21px;span style=font-family: inherit;br //span/spanspan style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;rendererParams.put(StreamingRenderer.ADVANCED_PROJECTION_HANDLING_KEY, true);/span/spanbr /span style=font-family: Courier New, Courier, monospace; font-size: xx-small;br //spanspan style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;rendererParams.put(StreamingRenderer.CONTINUOUS_MAP_WRAPPING, true);/span/spanbr /span style=line-height: 21px;span style=font-family: inherit;br //span/spanspan style=line-height: 21px;span style=font-family: inherit;We have set these parameters by default for GeoServer 2.6-beta so you are in good company for this test./span/spanbr /divbspan style=font-family: inherit;br //span/b/divspan style=font-family: inherit;span style=line-height: 21px;bcircular/b/spanb string/b/spanbr /divspan style=font-family: inherit;This release of GeoTools include new abilities for the WKTReader2 allowing it to read CIRCULAR string. This is especially exciting as it makes use of series of subclass of JTS LineString. These subclasses will use a tolerance to produce appropriate  coordinates for integration with JTS Geometry operations. As far as JTS is concerned they walk and talk like a LineString, while you can control the implementation by defining control points and a tolerance./span/divdivspan style=font-family: inherit;br //span/divspan style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();/span/spanbr /span style=font-family: Courier New, Courier, monospace; font-size: xx-small;span style=line-height: 21px;CurvedGeometryFactory curvedfactory = new CurvedGeometryFactory(Double.MAX_VALUE);/spanspan style=line-height: 21px;    /span/spanbr /span style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;WKTReader2 reader = new WKTReader2(curvedfactory);/span/spanbr /span style=line-height: 21px;span style=font-family: Courier New, Courier, monospace; font-size: xx-small;CircularString arc = (CircularString) reader.read(CIRCULARSTRING(10 14,6 10,14 10));/span/spanbr /span style=line-height: 21px;span style=font-family: inherit;br //span/spanbr /divspan style=font-family: inherit;For more details check out the a href=http://docs.geotools.org/latest/userguide/library/jts/geometry.htmlgeometry/a documentation.  The original a href=http://docs.codehaus.org/display/GEOTOOLS/Add+partial+support+for+geometries+with+circular+segmentsproposal/a is also online. /span/divtable align=center cellpadding=0 cellspacing=0 class=tr-caption-container style=margin-left: auto; margin-right: auto; text-align: center;tbodytrtd style=text-align: center;a href=http://1.bp.blogspot.com/-8_PjJUcXN-Q/U9LSgi47WnI/AAAAAAAACek/RwbKr0nV4O8/s1600/geometry2.png style=margin-left: auto; margin-right: auto;span style=font-family: inherit;img border=0 height=220 src=http://1.bp.blogspot.com/-8_PjJUcXN-Q/U9LSgi47WnI/AAAAAAAACek/RwbKr0nV4O8/s1600/geometry2.png width=400 //span/a/td/trtrtd class=tr-caption style=text-align: center;span style=font-family: inherit; font-size: small;LineString subclasses supporting Arcs/span/td/tr/tbody/tabledivspanspan style=font-family: inherit;This implementation has been integrated with OracleDataStore (for all those data sets that include circular arcs). We are also interested in feedback on CurvedGeometryFactory as the API is only a few weeks old./span/span/divdivspan style=font-family: inherit;br //span/divdivbspan style=font-family: inherit;General/span/b/divdivspan style=font-family: inherit;We are waiting on documentation for a couple of changes, stay tuned for details on:/span/divullispan style=line-height: 21px;span style=font-family: inherit;image mosaic vector foot prints/span/span/lilispan style=line-height: 21px;span style=font-family: inherit;coverage views/span/span/li/ul/divh2span style=font-family: inherit; font-size: small;About GeoTools 12/span/h2divspan style=font-family: inherit;spanGeoTools 12 is /spanspan style=line-height: 21px;scheduled/spanspan for /spanspan style=line-height: 21px;release/spanspan in Q2 highlighting the following features:/span/spanbr /ullispan style=line-height: 21px;span style=font-family: inherit;Java 7 is now required/span/span/lilispan style=line-height: 21px;span style=font-family: inherit;wfs-ng client with new GML parsing engine/span/span/lilispan style=line-height: 21px;span style=font-family: inherit;Support for curved strings via CurvedGeometryFactory, WKTReader2 and Oracle/span/span/li/ul/div/div/div
Categories: OSGeo Planet

GeoServer Team: GeoServer Sunday Sprint (FOSS4G)

OSGeo Planet - Fri, 2014-07-25 20:27
pBack in March we had a stronga href=http://blog.geoserver.org/2014/03/05/foss4g-2014-save-the-date/ title=FOSS4G 2014 Save the DateSave the Date/a/strong post for FOSS4G 2014 in Portland. Check your travel plans include participating in the a href=https://2014.foss4g.org/schedule/code-sprint/Code Sprint/a at the end of the conference./p pThe code sprint is an opportunity for the team to get together and work on “tough problems without funding”. For GeoServer we have two candidates:/p ol liUpdate to a recent version of Wicket to improve browser compatibility/li liUpdate CITE Conformance Tests/li /ol pGeoServer is extending the code sprint to include:/p ul liSaturday, September 13th: FOSS4G is providing facilities at a href=http://wherecamppdx.org/WhereCampPDX/a./li liSunday, September 14th: Boundless is arranging facilities at a href=http://nedspace.com/nedspace/a from 10am-4pm./li /ul pTo attend add your name to OSGeo a href=http://wiki.osgeo.org/wiki/FOSS4G_2014_Code_Sprintwiki/a page and we will look forward to seeing you in Portland!/p div class=wp-caption aligncenter id=attachment_1930 style=width: 310px;a href=http://blog.geoserver.org/2014/07/25/geoserver-sunday-sprint-foss4g/p1240259/ rel=attachment wp-att-1930img alt=NedSpace class=size-medium wp-image-1930 height=225 src=http://blog.geoserver.org/wp-content/uploads/P1240259-300x225.jpg title=NedSpace width=300 //ap class=wp-caption-textNedSpace/p/div p style=text-align: center; /p div class=wp-caption aligncenter id=attachment_1931 style=width: 310px;a href=http://blog.geoserver.org/2014/07/25/geoserver-sunday-sprint-foss4g/p1240253/ rel=attachment wp-att-1931img alt=Suite 250 class=size-medium wp-image-1931 height=225 src=http://blog.geoserver.org/wp-content/uploads/P1240253-300x225.jpg title=Suite 250 width=300 //ap class=wp-caption-textSuite 250, SW 11th Avenue, Portland/p/div pThanks to Mike Pumphrey for arranging the venue for the Sunday Sprint./p p /p p /p p /p
Categories: OSGeo Planet

A GeoSpatial World: Plugin PgAdmin III : PostGISViewer suite

OSGeo Planet - Fri, 2014-07-25 14:48
span style=color: #3d85c6; font-size: large;bPlugin PgAdmin III : PostGISViewer  suite/b/spanbr /br /span style=color: #3d85c6; font-size: large;bNouvelle version/b/spanbr /div style=color: black;br //divdiv style=color: black;span style=font-size: small; a href=https://dl.dropboxusercontent.com/u/13543015/PostGISViewer/PostGISViewer.zipPostGISViewer/a/span/divdiv style=color: black;br //divdiv style=color: #3d85c6;span style=font-size: large;bMulti-géométrie/b/span/divbr /div style=color: black;span style=font-size: x-large;span style=font-size: small;J'ai mis en place la prise en compte des multi-géométries  :/span/span/divul style=color: black;lispan style=font-size: x-large;span style=font-size: small;MULTIPOLYGON/span/span/lilispan style=font-size: x-large;span style=font-size: small;MULTILINESTRING/span/span/lilispan style=font-size: x-large;span style=font-size: small;MULTIPOINT/span/span/li/ulspan style=color: #3d85c6;span style=font-size: x-large;span style=color: black;span style=font-size: small;br //span/span/span/spanspan style=color: #3d85c6;span style=font-size: x-large;span style=color: black;span style=font-size: small;span style=color: #3d85c6;span style=font-size: large;bRequêtes/b/span/span/span/span/span/spanbr /span style=color: #3d85c6;span style=font-size: x-large;span style=color: black;span style=font-size: small;span style=color: #3d85c6;span style=font-size: large;b /b/span/span /span/spanb /b/span/spanbr /span style=color: #3d85c6;span style=font-size: small;J'ai rajouté la possibilité d'exécuter les requêtes présente dans l'éditeur SQL de PgAdmin III, mais pour que cela soit possible, il faut respecter certaines règles:/span/spanbr /ullispan style=color: #3d85c6;span style=font-size: small;Un seul éditeur SQL de PgAdmin III doit être ouvert. /span/span/li/ulullispan style=color: #3d85c6;span style=font-size: small;Pour que la ou les requête(s) soient exécutées, il ne faut pas être positionné sur un nom de table dans le navigateur d'objets de PgAdmin III , ou alors que la table soit déjà chargée dans le visualiseur.  Une table sélectionnée prendra toujours le pas sur une ou des requêtes./span/span/li/ulullispan style=color: #3d85c6;span style=font-size: small;Le premier champ doit être  géométrique ou une géométrie issue d'une fonction de traitement géométrique (ST_Buffer, ST_Intersection....) par requête sera utilisé pour l'affichage. Ce champ ou cette géométrie sera encapsulé par la fonction span style=color: black;bAsBinary/b/spanspan style=color: black; /spanet aura pour alias bgeom /b:/span/span/liul style=font-family: Verdana,sans-serif;lispan style=color: #3d85c6; font-size: x-small;span style=color: blue;SELECT /spanspan style=color: purple;AsBinary/span(wkb_geometry) span style=color: blue;as /spanbgeom /b..../span/lilispan style=color: #3d85c6; font-size: x-small;span style=color: blue;SELECT /spanspan style=color: purple;AsBinary/span(span style=color: purple;ST_Buffer/span(wkb_geometry, 1.0)) span style=color: blue;as /spanbgeom/b.../span/lilispan style=color: #3d85c6; font-size: x-small;span style=color: blue;SELECT /spanspan style=color: purple;AsBinary/span(span style=color: purple;ST_Intersection/span(a.wkb_geometry,b.wkb_geoemetry)) span style=color: blue;as /spanbgeom/b... /span/lilispan style=color: #3d85c6; font-size: x-small;.... /span/li/ul/ulullispan style=color: #3d85c6;span style=font-size: small; Le second champ doit permettre de déterminer le type de géométrie, il doit donc être encapsulé par la fonction GeometryType, un alias n'est pas nécessaire :/span/span/liulli style=font-family: Verdana,sans-serif;span style=color: #3d85c6; font-size: x-small;span style=color: blue;SELECT /spanspan style=color: purple;/span/spanspan style=color: #3d85c6; font-size: x-small;..., span style=color: purple;GeometryType/span(wkb_geometry).../span/lili style=font-family: Verdana,sans-serif;span style=color: #3d85c6; font-size: x-small;span style=color: blue;SELECT /spanspan style=color: purple;/span/spanspan style=color: #3d85c6; font-size: x-small;..., span style=color: purple;GeometryType/span(span style=color: purple;ST_Buffe/spanr(wkb_geometry,1.0)).../span/lili style=font-family: Verdana,sans-serif;span style=color: #3d85c6; font-size: x-small;span style=color: blue;SELECT /spanspan style=color: purple;/span/spanspan style=color: #3d85c6; font-size: x-small;..., span style=color: purple;GeometryType/span(span style=color: purple;ST_Intersection/span(a.wkb_geometry,b.wkb_geometry)).../span/lilispan style=color: #3d85c6;span style=font-size: small;span style=font-family: Verdana,sans-serif; font-size: x-small;..../span/span/span/li/ul/ulspan style=color: #3d85c6;span style=font-size: small;/span/spanbr /ulliChaque requête devra se terminer par un point virgule, ce qui permettra de pouvoir exécuter plusieurs requêtes a la suite./li/uldiv style=color: #3d85c6;span style=font-size: large;b Exemple/b/span/divbr /Ci-dessous deux requêtes se terminant par des points virgules :br /ulliLa première requête va charger la commune qui a pour nom 'Sainte-Croix-de-Quintillargues'/liliLa seconde requête va charger tous les bâtiments de cette commune./li/ul  br /div class=separator style=clear: both; text-align: center;a href=http://4.bp.blogspot.com/_xHnTOBfj_HY/TAjOmMW5dzI/AAAAAAAAADk/8nAH6_FqHqE/s1600/image_010.jpg style=clear: left; float: left; margin-bottom: 1em; margin-right: 1em;img border=0 height=640 src=http://4.bp.blogspot.com/_xHnTOBfj_HY/TAjOmMW5dzI/AAAAAAAAADk/8nAH6_FqHqE/s640/image_010.jpg width=507 //a/divbr /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /Après avoir lancé le plugin PostGISViewer, les deux requêtes sont exécutées et donne le résultat suivant  :br /br /div class=separator style=clear: both; text-align: center;a href=http://3.bp.blogspot.com/_xHnTOBfj_HY/TAjyKjAGz-I/AAAAAAAAADs/LyRTcNnctsc/s1600/image_011.jpg style=clear: left; float: left; margin-bottom: 1em; margin-right: 1em;img border=0 height=640 src=http://3.bp.blogspot.com/_xHnTOBfj_HY/TAjyKjAGz-I/AAAAAAAAADs/LyRTcNnctsc/s640/image_011.jpg width=513 //a/divbr /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /br /Les couches créées portent comme nom query avec un identifiant qui s'incrémente pour toute la cession du visualiseur.br /br /Toutes suggestions, remarques pour l'amélioration de cet outil seront les bienvenues.br /br /span style=font-size: large;b style=color: #3d85c6;A suivre.../b/span
Categories: OSGeo Planet

FOSS4G 2014: Are you excited yet? Program details, Call for Maps, and more

OSGeo Planet - Fri, 2014-07-25 05:07
p/p table border=0 cellpadding=0 cellspacing=0 id=templateBody tbody tr td class=bodyContainer valign=top table border=0 cellpadding=0 cellspacing=0 class=mcnTextBlock width=100% tbody class=mcnTextBlockOuter tr td class=mcnTextBlockInner valign=top table align=left border=0 cellpadding=0 cellspacing=0 class=mcnTextContentContainer tbody tr td class=mcnTextContent valign=topa href=https://2014.foss4g.org/ target=_blankimg align=right alt= height=250 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/FOSS4G_220x250.jpg width=220 //ap/p pJuly 22, 2014/p pPortland, Oregon, USA/p pExcitement builds as FOSS4G 2014 approaches! Join us in Portland, Oregon this September 8th – 13th.  Attending FOSS4G in Portland is a once in a lifetime opportunity.  FOSS4G is an incredible conference; 2013 was in Nottingham (UK) and 2015 will be in Seoul (South Korea), but this year, FOSS4G is right in your backyard in Portland, Oregon September 8th -13th!  Workshops are filling up — a href=http://www.eventbrite.com/e/foss4g-2014-registration-9776591047 target=_blank title=Registrationregister/a [1] now to secure your seat in pre-conference workshops and your place at the conference./p h2 class=nullCall for Maps!/h2 pRepresent the beauty of the Pacific Northwest in map form in the Map Gallery.  We invite contributions to the FOSS4G Map Gallery to build an exciting and vibrant exhibit of the very best in mapping. This map gallery will not only demonstrate the work of delegates but also act as a reference point for the current state of mapping.  We encourage all delegates to share one example of their work and help us create a cartographic record of the FOSS4G 2014 conference.  Read the full a href=https://2014.foss4g.org/foss4g-call-for-maps/ target=_blank title=Call for mapscall for maps/a [2] and a href=https://2014.foss4g.org/gallery-submissions/ target=_blank title=Enter map galleryenter your map/a [3]./p h2 class=nullWorkshops and general sessions program/h2 pThis year FOSS4G features more than 40 a href=https://2014.foss4g.org/schedule/workshops/ target=_blank title=Workshopsworkshops/a [4], providing excellent training opportunities on relevant, leading technologies — and that’s all before the conference even begins.  With a href=http://(https://2014.foss4g.org/schedule/sessions/ target=_blank title=General sessionseight tracks/a [5] of sessions, plus invited talks and a great selection of Keynote Speakers, it will be a FOSS4G packed week to remember./p h2 class=nullKeynote biographies/h2 pSee exciting keyntoes by Mike Bostock of D3.js fame and the New York Times, Sarah Novotny of NGINX and a program chair for O’Reilly Media’s OSCON, and Al Shaw whose work at ProPublica has been honored with several awards./p h4 class=null style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;About FOSS4G/h4 pThe annual FOSS4G conference is the largest global gathering focused on open source geospatial software. FOSS4G brings together developers, users, decision-makers and observers from a broad spectrum of organizations and fields of operation. Through six days of workshops, presentations, discussions, and cooperation, FOSS4G participants create effective and relevant geospatial products, standards, and protocols./p pFOSS4G has been held all over the world and draws attendees from over 40 countries. Nottingham, England hosted the conference in 2013. In 2014, Portland, Oregon, USA will host FOSS4G’s tenth year./p h4 class=null style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;Important Conference Dates/h4 pSee the full a href=https://2014.foss4g.org/about/calendar/ target=_blank title=Calendarcalendar/a [6] for more details./p ul liSep 8th-9th: Workshops/li liSep 10th-12th: Main Conference/li liSep 13th: Code Sprint/li /ul h4 style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;Links/h4 ul li[1] strongRegistration:/strong http://foss4g2014.eventbrite.com//li li[2] strongCall for Maps:/strong https://2014.foss4g.org/foss4g-call-for-maps//li li[3] strongMap Submissions:/strong https://2014.foss4g.org/gallery-submissions//li li[4] strongWorkshops:/strong https://2014.foss4g.org/schedule/workshops//li li[5] strongSessions:/strong http://2014.foss4g.org/schedule/sessions//li li[6]strong Calendar:/stronghttps://2014.foss4g.org/about/calendar//li /ul /td /tr /tbody /table /td /tr /tbody /table table border=0 cellpadding=0 cellspacing=0 class=mcnTextBlock width=100% tbody class=mcnTextBlockOuter tr td class=mcnTextBlockInner valign=top table align=left border=0 cellpadding=0 cellspacing=0 class=mcnTextContentContainer tbody tr td class=mcnTextContent valign=top hr / h2Sponsors/h2 h4 style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;Gold Level Sponsors/h4 pa href=https://developers.google.com/open-source/ target=_blankimg align=none alt=Google height=53 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/1fdaa9bc-6ee9-437d-afc5-3bdbef08c28d.png width=160 //a/p h4 style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;Silver Level Sponsors/h4 pa href=http://boundlessgeo.com/ target=_blankimg align=none alt=Boundless height=51 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/boundless_logo.png width=270 //a          a href=http://www.esri.com/ target=_blankimg align=none alt=esri height=77 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/esri_logo.png width=200 //a/p pa href=http://cartodb.com/ target=_blankimg align=none alt= height=53 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/cartodb_150x53.png width=150 //a/p h4 style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;Bronze Level Sponsors/h4 pa href=http://azavea.com/ target=_blankimg align=none alt=azavea height=52 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/azavea.png width=215 //a   a href=http://www.sourcepole.ch/ target=_blankimg align=none alt=Sourcepole height=54 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/Logo_web_sourcepole11.png width=215 //a/p pa href=https://www.openshift.com/ target=_blankimg align=none alt=OpenShift height=60 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/4ac15cdf-bc35-45cd-859f-df48e1f6f0ce.png width=150 //a a href=https://cloudant.com/ target=_blankimg align=none alt=Cloudant height=51 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/465c1a50-d97f-4c9a-b4ae-956b56534f0c.png width=160 //a a href=http://www.worldcampus.psu.edu/gep target=_blankimg align=none alt=Penn State height=53 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/1f51a595-387b-45a4-9dde-4170bd4384fa.png width=150 //a/p pa href=http://www.safe.com/ target=_blankimg align=none alt=Safe Software height=50 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/d0101349-a48f-4700-9c56-0500a6f94567.png width=160 //a          a href=http://www.mousebirdconsulting.com/home target=_blankimg align=none alt= height=60 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/74494675-4302-49f6-8435-a0d51489835a.png width=135 //aa href=https://www.geocat.net/ target=_blankimg align=none alt= height=44 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/08930e37-f831-45c2-b09c-e67832ef557d.png width=160 //a/p h4 style=margin: 0; padding: 0; display: block; font-family: Helvetica; font-size: 16px; font-style: normal; font-weight: bold; line-height: 125%; letter-spacing: normal; text-align: left; color: #808080 !important;Supporters/h4 pa href=http://www.appgeo.com/ target=_blankimg align=none alt=AppGeo height=49 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/AppGeoFOSS4G2014.png width=135 //a         a href=http://www.camptocamp.com/en target=_blankimg align=none alt=camptocamp height=44 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/camptocamp_logo.png width=220 //a       a href=http://locatepress.com/ target=_blankimg align=none alt=Locate Press height=59 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/locate_press_150.png width=110 //a/p pa href=http://www.mapgears.com/ target=_blankimg align=none alt=Mapgears height=62 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/mapgears.png width=115 //a                    a href=http://www.nbtsolutions.com/ target=_blankimg align=none alt= height=60 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/NBT_logo_150x60.png width=150 //aa href=http://www.terrestris.de/en/ target=_blankimg align=none alt= height=66 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/logo_terrestris.png width=120 //a/p pa href=http://www.metaspatial.net/en/ target=_blankimg align=none alt= height=59 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/3d3c5c59-ed55-4616-82ce-2e13dea834c2.png width=160 //abr / /phr / h2Media Partners/h2 pThese leading geospatial media organizations have partnered with FOSS4G to keep their readers informed./p pa href=http://www.directionsmag.com/ target=_blankimg align=none alt= height=43 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/directionsmagazine_logo1.png width=105 //a             a href=http://www.geoconnexion.com/ target=_blankimg align=none alt= height=40 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/geoconnexion_logo.png width=120 //a         a href=http://www.geoinformatics.com/ target=_blankimg align=none alt= height=27 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/geoinformatics_logo.png width=130 //a/p pa href=http://geospatialworld.net/?utm_source=FOSS4G2014amp;utm_medium=webamp;utm_campaign=Geospatial-World-FOSS4G2014-Media-Partner target=_blankimg align=none alt= height=42 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/Geospatial_World.png width=105 //a         a href=http://www.gim-international.com/ target=_blankimg align=none alt=-NEW- Logo GIM-voor drukkerkopie 150 height=49 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/GIM_voor_drukkerkopie_150.png width=100 //a           a href=http://gis-news.de/ target=_blankimg align=none alt=bciiajfc.gif height=48 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/gis_news.png width=130 //a/p pa href=http://gisuser.com/ target=_blankimg align=none alt= height=46 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/GISusrNews.png width=115 //a               a href=http://www.lbxjournal.com/ target=_blankimg align=none alt= height=43 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/LBxJournal_cleaner.png width=60 //a                a href=http://www.sensorsandsystems.com/ target=_blankimg align=none alt= height=41 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/systems_and_sensors_logo1.png width=100 //a/p pa href=http://www.slashgeo.org/ target=_blankimg align=none alt= height=39 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/slashgeo_logo.png width=130 //a             a href=http://www.veryspatial.com/ target=_blankimg align=none alt= height=55 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/VSLogo_Large_150x150.png width=55 //a          a href=http://www.3dvisworld.com/ target=_blankimg align=none alt= height=30 src=https://gallery.mailchimp.com/92023a5676f520b1414335d36/images/3dvisworld2800_square_trans_small2_300x75.png width=120 //aa href=http://www.digital-geography.com/ target=_blankimg align=none alt= height=60 src=http://gallery.mailchimp.com/92023a5676f520b1414335d36/images/b678b4d2-9827-4927-afaf-1f8194794d9b.png width=150 //a/p hr / pFor more information or to keep informed from the FOSS4G Organizing Committee, followa href=https://twitter.com/foss4g @foss4g/a on Twitter, subscribe to our a href=http://eepurl.com/N5Q6Xannouncements list/a, or contact: a href=mailto:foss4g2014-info@osgeo.org?subject=Question%20about%20FOSS4G%202014 target=_blankfoss4g2014-info@osgeo.org/a/p /td /tr /tbody /table /td /tr /tbody /table /td /tr /tbody /table pThe post a href=https://2014.foss4g.org/excited-yet-program-details-call-maps/ rel=nofollowAre you excited yet? Program details, Call for Maps, and more/a appeared first on a href=https://2014.foss4g.org rel=nofollowFOSS4G 2014/a./p
Categories: OSGeo Planet

GeoServer Team: GeoServer 2.6-beta Released

OSGeo Planet - Thu, 2014-07-24 22:47
pThe GeoServer team is overjoyed to announce the release of GeoServer a href=http://geoserver.org/release/2.6-beta/ target=_blank title=2.6-beta Download2.6-beta/a./p pI hope you are enjoying the new website – the download page for a href=http://geoserver.org/release/2.6-beta/ target=_blank title=2.6-beta Download2.6-beta/a provides links to the expected a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.6-beta/geoserver-2.6-beta-bin.zip target=_blank title=geoserver-2.6-beta-bin.zipzip/a, a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.6-beta/geoserver-2.6-beta-war.zip target=_blank title=geoserver-2.6-beta-war.zipwar/a, a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.6-beta/geoserver-2.6-beta.dmg title=geoserver-2.6-beta.dmgdmg/a and a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.6-beta/geoserver-2.6-beta.exe target=_blank title=geoserver-2.6-beta.exeexe/a bundles. For this release we are experimenting with providing source downloads directly from the GitHub a href=https://github.com/geoserver/geoserver/releases/tag/2.6-beta target=_blank title=GitHub 2.6-beta Tag2.6-beta tag/a./p blockquotepemAs a development release, 2.6-beta is considered experimental and is provided for testing purposes. This release is not recommended for production (even if you are excited by the new features)./em/p/blockquote pThis release is made in conjunction with GeoTools 12-beta. Thanks to Kevin for making a beta release of GeoWebCache a href=http://sourceforge.net/projects/geowebcache/files/geowebcache/1.6.0-beta/ target=_blank1.6.0-beta/a with relatively little notice./p h3What to expect … and what we expect from you/h3 pA complete a href=http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10311amp;version=20172change log/a is available from the issue tracker. We will ask you to wait for 2.6.0 before we let Andrea write a a href=http://blog.geoserver.org/2014/01/21/geoserver-2-5-beta-released/pretty/a blog with pictures illustrating what features have been added. Instead 2.6-beta is my chance to ask you to emstrongdownload GeoServer 2.6-beta for testing/strong/em./p blockquotepemTesting is a key part of the open source a href=http://www.how2map.com/2013/09/opensource-and-social-contract.html title=Open Source and the Social Contractsocial contract/a. The GeoServer team have identified a few areas where we would like to ask for help. This is your best chance to identify issues early while we still have time to do something about it. For those making use of a href=http://geoserver.org/support/commercial support/a ask your vendor about their plans for 2.6-beta testing. We would like to ensure the functionality you depend on is ready to go for a Q2 release./em/p/blockquote pWhen testing Geoserver 2.6-beta please let us know on the a href=http://geoserver.org/comm/ target=_blank title=Communicationuser list/a (or a href=https://twitter.com/search?q=%23geoserver target=_blank title=#GeoServer#GeoServer/a) how it works for you. We will be sure to thank you in the final release announcement and product presentations./p pstrongJava 7 Testing/strong/p pWith Oracle a href=http://www.oracle.com/technetwork/java/eol-135779.html target=_blank title=Oracle Java SE Support Roadmapretiring Java 6/a security updates the time has come to raise the minimum bar to Java 7./p blockquotepemWe know a lot of downstream projects (such as a href=http://live.osgeo.org/en/index.html target=_blank title=OSGeo LiveOSGeo Live/a) have been waiting for GeoServer to support Java 7. Thanks to CSIRO, Boundless, GeoSolutions for providing Java 7 build environments allowing us to make this transition in a responsible fashion./em/p/blockquote pTesting:/p ul liThis is a major testing priority on all platforms./li liWindows 7: The start.bat used by the run manually install has trouble running as an administrator. We recommend installing as a service of this release (a href=https://jira.codehaus.org/browse/GEOS-6587GEOS-5687/a)/li liMac: You will need to install Oracle Java 7 (as OpenJDK 7 is not yet available for OSX). We have not yet figured out how to run GeoServer.App with Java 7 (a href=https://jira.codehaus.org/browse/GEOS-6588GEOS-6588/a) and are open to suggestions./li /ul pReferences:/p ul liDocumentation: a href=http://docs.geoserver.org/latest/en/user/production/java.htmlJava Considerations/a and a href=http://docs.geoserver.org/latest/en/user/installation/index.htmlInstallation/a/li liChange Control: a href=https://github.com/geoserver/geoserver/wiki/GSIP-112---Upgrade-master-to-Java-7GSIP 112 Update master to Java 7/a/li /ul pstrongWFS Cascade/strong/p pThis is a really exciting change, swapping out our gt-wfs client code for a new gt-wfs-ng implementation with a new GML parser / encoder.  After comparing quality of the two implementations we decided to go all in with this transition .. and thus would really like your help testing./p pWe would like to hear back on cascading the following configurations:/p ul lia href=http://geoserver.orgGeoServer/a/li lia href=http://www.deegree.orgdeegree/a/li lia href=http://mapserver.orgMapServer/a/li lia href=http://mapserver.org/tinyows/tinyows/a - there is a critical fix about axis order in tinyows trunc. It corrects (finally!) the output … but perhaps not yet the filters?/li lia href=http://resources.arcgis.com/en/help/main/10.1/index.html#//0154000004mm000000ArcGIS/a/li lia href=http://www.opengeospatial.org/resource/productsOther/a – any other WFS you are working with!/li /ul pTesting:/p ul liPay special attention to the flags used for axis order. There are different flags to account for each way a WFS implementation can get confused. You will find some implementations expect the wrong axis order on request, but are capable of producing the correct axis order output./li liWe especially ask our friends in Europe to test WFS services published for INSPIRE compliance/li /ul pThis was an epic amount of work by Niels and we have a couple of new features waiting in the wings based on the success of this transition./p pstrongCurves support for GML and WMS/strong/p pA large amount of work has been put into extending the Geometry implementation used by GeoServer./p blockquotepemWe have experimented with several approaches over the years (including ISO 19107 and a code sprint with the deegree project) and it is great to finally have a solution. As a long time user of the JTS Topology Suite we have been limited to a Point, Line and Polygon model of Geometry. Andrea has very carefully extended these base classes in to allow for both GML output and rendering. The trick is using a tolerance to convert the the arcs and circles into line work for geometry processing./em/p/blockquote pTesting for the 2.6-beta release is limited to those with Oracle Spatial. If you are interested in funding/volunteering support for PostGIS please contact the geoserver-devel email list./p pTesting:/p ul liLook for “emLinearization tolerance”/em when configuring your layer./li /ul pstrongAdvanced projection handling for raster/strong/p pWe would like to hear feedback on how maps that cross the date line (or are in a polar projection) have improved for you./p pTesting:/p ul liNo special settings needed/li /ul pReference:/p ul lia href=http://www.geo-solutions.it/blog/developers-corner-advanced-raster-projection-geoserver/ target=_blankAdvanced Raster Projection in GeoServer/a (GeoSolutions)/li /ul pstrongCoverage Views/strong/p pWe struggled a bit with how to name this great new feature, however if you work with raster data this is your chance to recombine bands from different sources into a multi-band coverage./p pTesting:/p ul liUse “emConfigure new Coverage view/em” when creating a new layer/li /ul pReferences:/p ul lia href=http://docs.geoserver.org/latest/en/user/data/raster/coverageview.htmlCoverage Views/a (GeoServer User Manual)/li lia href=http://www.geo-solutions.it/blog/overageview-concept-for-geoserver/Raster Views in GeoServer via the CoverageView concept/a (GeoSolutions)/li /ul pstrongStartup Testing/strong/p pYes this is an ominous item to ask you to test./p blockquotepemGeoServer 2.6 simplifies where configuration files are stored on disk. Previous versions were willing to spread configuration files between the webapps folder, the data directory and any additional directories on request. For GeoServer 2.6 configuration files are limited to the data directory as a step towards improving clustering support and growing our JDBC Config story./em/p/blockquote pTesting:/p ul liNo special settings needed/li liSpecial request to check files that are edited by hand on disk (such security settings and free marker templates)/li /ul pReferences:/p ul liChange Control: a href=https://github.com/geoserver/geoserver/wiki/GSIP%20106 target=_blankGSIP 106 ResourceStore API/a/li /ul pstrongPluggable Styles/strong/p pFor everyone happy with the CSS Style Extension we would like to ask you to test a change to the style edit page (allowing you to create a CSS or SLD style from the start)./p pTesting:/p ul liInstall CSS Extension and look for a new option when creating a style/li /ul pReference:/p ul liChange Control: a href=https://github.com/geoserver/geoserver/wiki/GSIP-117 target=_blankGSIP 117 Pluggable Styles/a/li /ul pstrongWind barbs and WKT Graphics/strong/p pI am really happy to see this popular extension folded into the main GeoServer application./p pTesting:/p ul liCheck GeoTools a href=http://docs.geotools.org/latest/userguide/library/render/wkt.htmlWKT Marks/a for examples you can use in your SLD file/li /ul pReferences:/p ul lia href=http://www.geo-solutions.it/blog/developers-corner-supporting-wind-barbs-geoserver-geotools/ target=_blankSupporting Wind Barbs In GeoServer and GeoTools/a (GeoSolutions)/li /ul pstrongNew Formats and Functionality/strong/p pWe have new implementations of a couple of modules:/p ul liPrinting – new implementation from our friends at MapFish/li liScripting – includes a UI for editing scripts from the Web Administration Application/li /ul pA final shout out to ask for help testing new formats:/p ul liNetCDF/li liRib/li liOGR/li /ul h2About GeoServer 2.6/h2 pArticles and resources for GeoServer 2.6 series:/p ul lia href=http://www.geo-solutions.it/blog/overageview-concept-for-geoserver/Raster Views in GeoServer via the CoverageView concept/a (GeoSolutions)/li lia href=http://www.geo-solutions.it/blog/developers-corner-advanced-raster-projection-geoserver/ target=_blankAdvanced Raster Projection in GeoServer/a (GeoSolutions)/li lia href=http://www.geo-solutions.it/blog/developers-corner-supporting-wind-barbs-geoserver-geotools/ target=_blankSupporting Wind Barbs In GeoServer and GeoTools/a (GeoSolutions)/li lia href=http://www.geo-solutions.it/blog/geoserver-supports-footprints-imagemosaic/ target=_blankGeoServer now supports Vector Footprints for ImageMosaic/a (GeoSolutions)/li /ul
Categories: OSGeo Planet

Ivan Minčík: FOSS4G Europe - hope we ALL meet together again

OSGeo Planet - Thu, 2014-07-24 22:01
For me, it was very memorable week in Bremen. I came very excited and happy to home, to my family.br /br /But, there is also one thing which makes me feel very bad.br /At the same time, when all of us where enjoying this event, there was at least one person, speaking nearly the same language as me, who was probably little bit scared of how the return to home would look like. The home destroyed by madness and war.br /divbr /Somehow I feel, that without a peace, nothing makes a sense. I hope, next year, we ALL meet together again and everybody will be returning to home with a smile on the face./divTatiana, Ukraine, all peaceful people under the sun, god bless You !
Categories: OSGeo Planet

GeoSolutions: GeoServer Workshop and Presentations at the FOSS4G Europe 2014

OSGeo Planet - Thu, 2014-07-24 14:12
pimg alt=FOSS4G Europe 2014 class=attachment-post-thumbnail wp-post-image height=391 src=http://www.geo-solutions.it/wp-content/uploads/2014/07/Logo-Foss4G-_final_web_Stadtmusikanten-e1404378436171.jpg?d879e9 width=450 //pDear Reader, a href=http://www.geo-solutions.it target=_blankwe/a are proud to announce that Andrea Aime, our technical lead on a href=http://www.geo-solutions.it/technologies/geoserver/ target=_blank title=GeoServerGeoServer/a, will attend this year FOSS4G Europe to give a workshop as well as a few presentations. The conference will be hosted by the Jacobs University in a href=http://osm.org/go/0G01Ty?m=amp;relation=62559 target=_blankBremen/a between 15th of July and 17th of July (a href=http://foss4g-e.org/conference-program target=_blankhere/a is the conference program), while the 14th of July will be dedicated to workshops (a href=http://foss4g-e.org/workshops-0 target=_blankhere/a is the workshop schedule). The schedule for our talks will be as follows: ul lia href=http://foss4g-e.org/content/web-mapping-ogc-services-and-geoserver-introduction target=_blankWeb mapping with OGC services and GeoServer: an introduction/a (Workshop) 14th of July between 9 A.M. and 12 A.M./li lia href=http://foss4g-e.org/content/geoserver-steroids target=_blankGeoServer on steroids/a (Presentation) 15th of July at 2 P.M./li lia href=http://foss4g-e.org/content/processing-data-geoserver-rendering-transformations-wps-processes-and-sql-viewsProcessing Data In GeoServer With Rendering Transformations, WPS Processes And SQL Views/a (Presentation) 15th of July at 5 P.M./li lia href=http://foss4g-e.org/content/geoserver-introduction-beginnersGeoServer, An Introduction For Beginners/a (Presentation) 16th of July at 3:30 P.M./li /ul The workshop will provide the attendees with an in-depth introduction to the a href=http://www.geo-solutions.it/technologies/geoserver/ target=_blank title=GeoServerGeoServer/a Open Source server useful for those who are (still??) not familiar with it but also for those who already using it as they will have the chance to ask questions directly to one of the main developers behind the software. The presentations, although the order is a bit unfortunate :), are meant to delight all the palates from the uninitiated (a href=http://foss4g-e.org/content/geoserver-introduction-beginnersGeoServer, An Introduction For Beginners/a) to the advanced users looking for fine tuning tips and tricks (a href=http://foss4g-e.org/content/geoserver-steroids target=_blankGeoServer on steroids/a) or more ways to exploit the power of a href=http://www.geo-solutions.it/technologies/geoserver/ target=_blank title=GeoServerGeoServer/a a href=http://www.geo-solutions.it/technologies/geoserver/ target=_blank title=GeoServer(/aa href=http://foss4g-e.org/content/processing-data-geoserver-rendering-transformations-wps-processes-and-sql-viewsProcessing Data In GeoServer With Rendering Transformations, WPS Processes And SQL Views/aa href=http://www.geo-solutions.it/technologies/geoserver/ target=_blank title=GeoServer)/a. Looking forward to seeing you in a href=http://osm.org/go/0G01Ty?m=amp;relation=62559 target=_blankBremen/a!   h2Update/h2 You can find the presentations here below, enjoy! [slideshare id=37177209amp;doc=gsbeginnersfoss4ge2014-140720170321-phpapp01] [slideshare id=37177324amp;doc=gswpsfoss4ge2014-140720171046-phpapp01] [slideshare id=37177138amp;doc=gssteroidsfoss4ge2014-140720165834-phpapp02]   The ba href=http://www.geo-solutions.it/GeoSolutions/a /bteam, a href=http://www.geo-solutions.it target=_blankimg alt=320x100_eng class=alignleft wp-image-1196 size-medium height=57 src=http://www.geo-solutions.it/wp-content/uploads/2014/03/320x100_eng-300x57.png?d879e9 width=300 //a
Categories: OSGeo Planet

gvSIG Team: Validar las geometrías de una capa

OSGeo Planet - Thu, 2014-07-24 13:21
pHola a todos de nuevo,/p pHacia ya un tiempo que no escribía por aquí…cosas de ir bastante liado con nuevos desarrollos que estamos abordando en gvSIG…pero el otro día me comentaron que necesitarían una herramienta en gvSIG que les permitiera localizar problemas en las geometrías de una tabla antes de cargar dicha tabla en una BBDD de postgreSQL./p pMe dijeron…/p blockquotep“Estaría bien disponer de una herramienta que procese las geometrías de una capa y me saque un listado con los problemas y me permita pinchar e ir a la geometría conflictiva y mejor aun a donde este el conflicto”/p/blockquote pEfectivamente, gvSIG no tiene nada que se le parezca, pero enseguida pensé que igual con un poco de scripting podía sacar algo parecido a lo que me pedían./p pEl script no es simple, para que vamos a engañarnos, toca muchos palos, pero no es muy grande y puede servir de inicio para abordar cosas mas complejas./p pEl principio es simple… nos recorremos las features de la capa, cogemos la geometría, e invocamos al método em“getValidationStatus”/em de esta. Este método realiza una serie de validaciones sobre la geometría y nos devuelve que ha pasado con esas validaciones… si todo fue bien o mal, y en caso de ir mal nos da información sobre que problema se encontró y si puede donde lo encontró. Con esta información, vamos a ir construyendo un pequeño informe en HTML./p pPor cada incidencia que encontremos generaremos una entrada con:/p ul class=simple liEl número de línea en el que se produjo la incidencia/li liUn volcado de los datos de la feature asociada a esa línea/li liUna descripción textual del problema/li liUn enlace al punto en donde se produjo la incidencia. En el hiperenlace, en lugar de poner una URL meteremos el punto en WKT asociado a la incidencia./li /ul div class=nostx div class=highlight style=background: #f8f8f8; pre style=line-height: 125%;wktgeom span style=color: #666666;=/span vsspan style=color: #666666;./spangetProblemLocation()span style=color: #666666;./spanconvertToWKT() outputspan style=color: #666666;./spanwrite(span style=color: #ba2121;'lt;a href=/spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;gt;/spanspan style=color: #bb6688; font-weight: bold;%5.5d/spanspan style=color: #ba2121;lt;/agt; /spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;lt;brgt;/spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;'/span span style=color: #666666;%/span (wktgeom,i, featurespan style=color: #666666;./spantoString(),vsspan style=color: #666666;./spangetMessage())) /pre /div pCuando ya nos hemos recorrido todas las features de la capa, tendremos que presentar el informe. Para ello utilizaremos la función em“showTextDialog”/em delem“ApplicationManager”/em, que nos permite mostrar una venta con un texto HTML./p pre style=line-height: 125%;application span style=color: #666666;=/span ApplicationLocatorspan style=color: #666666;./spangetManager() applicationspan style=color: #666666;./spanshowTextDialog( WindowManagerspan style=color: #666666;./spanMODEspan style=color: #666666;./spanTOOL, span style=color: #ba2121;Problems in layer /spanspan style=color: #666666;+/spanlayerspan style=color: #666666;./spangetName(), informespan style=color: #666666;./spangetvalue() ) /pre pSi solo quisiésemos mostrar el informe con esto nos bastaría. Pero estaría muy bien que al pinchar sobre la incidencia en el informe nos centrase la vista en el área donde se ha producido la incidencia. Para esto tendremos que hacer un poco mas de faena. La función em“showTextDialog”/em permite que le pasemos un ultimo parámetro opcional que sea un “listener” que recibirá los eventos relacionados con los hiperenlaces de nuestro informe en HTML. Para eso tendremos que crear una clase que herede de em“HyperlinkListener”/em./p pre style=line-height: 125%;span style=color: #008000; font-weight: bold;class/span span style=color: #0000ff; font-weight: bold;MyHyperlinkListener/span(HyperlinkListener): span style=color: #008000; font-weight: bold;def/span span style=color: #0000ff;__init__/span(span style=color: #008000;self/span,vista): span style=color: #008000;self/spanspan style=color: #666666;./spanvista span style=color: #666666;=/span vista span style=color: #008000; font-weight: bold;def/span span style=color: #0000ff;hyperlinkUpdate/span(span style=color: #008000;self/span, h): span style=color: #008000; font-weight: bold;if/span span style=color: #008000;str/span(hspan style=color: #666666;./spangetEventType()) span style=color: #666666;==/span span style=color: #ba2121;ACTIVATED/span: wktgeom span style=color: #666666;=/span hspan style=color: #666666;./spangetDescription() span style=color: #008000; font-weight: bold;print/span wktgeom manager span style=color: #666666;=/span GeometryLocatorspan style=color: #666666;./spangetGeometryManager() point span style=color: #666666;=/span managerspan style=color: #666666;./spancreateFrom(wktgeom) centerViewinPoint(span style=color: #008000;self/spanspan style=color: #666666;./spanvista,point) /pre pNuestra clase recibirá en el constructor la vista sobre la que ha de trabajar, y en el método em“hyperlinkUpdate”/em pondremos el código que se ejecutara cada vez que se interactúe con un enlace de nuestro informe, bien por que se pasa el ratón sobre el enlace, o por que se hace click sobre el. Así que nuestro código lo meteremos en este método cercionándonos que filtramos las acción de hacer click en el enlace que sera cuando recibamos un evento de tipo “ACTIVATED”. Lo que haremos será recoger el punto asociado del hiperenlace. Este lo habíamos metido en WKT, así que lo primero será reconstruir nuestro punto a partir de él./p pre style=line-height: 125%;manager span style=color: #666666;=/span GeometryLocatorspan style=color: #666666;./spangetGeometryManager() point span style=color: #666666;=/span managerspan style=color: #666666;./spancreateFrom(wktgeom) /pre pY luego ya centrar la vista en ese punto./p pre style=line-height: 125%;centerViewinPoint(span style=color: #008000;self/spanspan style=color: #666666;./spanvista,point) /pre pMas cositas que comentar…/p pA veces lo ejecutaremos sobre capas grandes y estaría bien que fuese informando del progreso. Para ello utilizaremos la variable em“taskStatus”/em. Todos los scripts tienen una asociada y sirve precisamente para eso, para ir informado del progreso de nuestro proceso. Lo primero que tendremos que hacer será asociarla a la barra de estado de la aplicación para que se vaya mostrando ahí el proceso. Tan simple como invocar al método em“add”/em de ella./p pLuego le indicaremos las iteraciones que va a tener nuestro proceso, para lo que utilizaremos el método em“setRangeOfValues”/em indicando que las iteraciones irán desde 0 al número de registros que tiene la capa que vamos a procesar. En cada iteración invocaremos al método em“setCurValue”/em para informar de por donde vamos, y al terminar de recorrer nuestras features nos desharemos de nuestro emtaskStatus/em invocando al método em“terminate”/em para indicarle que ya termino nuestro proceso y al métodoem“remove”/em para eliminarla de la barra de estado de gvSIG./p pre style=line-height: 125%;span style=color: #008000; font-weight: bold;try/span: span style=color: #408080; font-style: italic;# Añadimos la barra de progreso a la barra de estado de gvSIG/span taskStatusspan style=color: #666666;./spanadd() span style=color: #408080; font-style: italic;# Le indicamos cuantas iteraciones vamos a realizar/span taskStatusspan style=color: #666666;./spansetRangeOfValues(span style=color: #666666;0/span,layerspan style=color: #666666;./spanfeatures()span style=color: #666666;./spangetCount()) span style=color: #008000; font-weight: bold;for/span feature span style=color: #aa22ff; font-weight: bold;in/span layerspan style=color: #666666;./spanfeatures(): span style=color: #408080; font-style: italic;# En cada iteración informamos a la barra de progreso de por donde vamos/span taskStatusspan style=color: #666666;./spansetCurValue(i) span style=color: #666666;.../span ispan style=color: #666666;+=1/span span style=color: #008000; font-weight: bold;finally/span: span style=color: #408080; font-style: italic;# Al terminar/span span style=color: #408080; font-style: italic;# Le indicamos a la barra de progreso que ya hemos terminado/span taskStatusspan style=color: #666666;./spanterminate() span style=color: #408080; font-style: italic;# Y la eliminamos de la barra de estado de gvSIG./span taskStatusspan style=color: #666666;./spanremove() /pre pBueno, hay un montón de detallitos, como atrapar errores aquí y allí, el manejo del emStringIO/em para generar nuestro informe o la generación del código HTML, pero creo que los que han estado ya viendo algunas cosillas del scripting en gvSIG y tienen algo de conocimiento de programación en python pueden seguirlo. Al final os dejo el código completo./p pTambién tengo un problema en el metodo em“centerViewinPoint”/em, algun cálculo no es correcto y no se centra bien la vista, pero creo que es un detalle menor que ya podréis pulir si os es de utilidad el script./p pEspero que os sirva… como herramienta para gvSIG y como ejemplo de como hacer cosas nuevas en scripting./p pEso si, para probarlo precisareis de una capa con geometrías dañadas o no validas. Alguna tengo por ahi… a ver si puedo colgarla en algun sitio y la enzalo para que podais probar./p pPara ejecutar el script precisareis un gvSIG desktop 2.1.0 build 2231 o superior span class=wp-smiley emoji emoji-wink title=;);)/span/p pUn saludo a todos/p pJoaquin/p pre style=line-height: 125%;span style=color: #008000; font-weight: bold;from/span span style=color: #0000ff; font-weight: bold;gvsig/span span style=color: #008000; font-weight: bold;import/span span style=color: #666666;*/span span style=color: #008000; font-weight: bold;from/span span style=color: #0000ff; font-weight: bold;org.gvsig.tools.swing.api.windowmanager/span span style=color: #008000; font-weight: bold;import/span WindowManager span style=color: #008000; font-weight: bold;import/span span style=color: #0000ff; font-weight: bold;StringIO/span span style=color: #008000; font-weight: bold;from/span span style=color: #0000ff; font-weight: bold;commonsdialog/span span style=color: #008000; font-weight: bold;import/span span style=color: #666666;*/span span style=color: #008000; font-weight: bold;from/span span style=color: #0000ff; font-weight: bold;javax.swing.event/span span style=color: #008000; font-weight: bold;import/span HyperlinkListener span style=color: #008000; font-weight: bold;from/span span style=color: #0000ff; font-weight: bold;org.gvsig.fmap.geom/span span style=color: #008000; font-weight: bold;import/span GeometryLocator span style=color: #008000; font-weight: bold;from/span span style=color: #0000ff; font-weight: bold;org.gvsig.fmap.geom/span span style=color: #008000; font-weight: bold;import/span Geometry span style=color: #008000; font-weight: bold;def/span span style=color: #0000ff;centerViewinPoint/span(view,center): env span style=color: #666666;=/span viewspan style=color: #666666;./spangetMap()span style=color: #666666;./spangetViewPort()span style=color: #666666;./spangetEnvelope(); movX span style=color: #666666;=/span centerspan style=color: #666666;./spangetX()span style=color: #666666;-/spanenvspan style=color: #666666;./spangetCenter(span style=color: #666666;0/span); movY span style=color: #666666;=/span centerspan style=color: #666666;./spangetY()span style=color: #666666;-/spanenvspan style=color: #666666;./spangetCenter(span style=color: #666666;1/span); minx span style=color: #666666;=/span envspan style=color: #666666;./spangetMinimum(span style=color: #666666;0/span) span style=color: #666666;+/span movX; miny span style=color: #666666;=/span envspan style=color: #666666;./spangetMinimum(span style=color: #666666;1/span) span style=color: #666666;+/span movY; maxX span style=color: #666666;=/span envspan style=color: #666666;./spangetMaximum(span style=color: #666666;0/span) span style=color: #666666;+/span movX; maxY span style=color: #666666;=/span envspan style=color: #666666;./spangetMaximum(span style=color: #666666;1/span) span style=color: #666666;+/span movY; env span style=color: #666666;=/span GeometryLocatorspan style=color: #666666;./spangetGeometryManager()span style=color: #666666;./spancreateEnvelope( minx, miny, maxX, maxY, Geometryspan style=color: #666666;./spanSUBTYPESspan style=color: #666666;./spanGEOM2D); viewspan style=color: #666666;./spangetMap()span style=color: #666666;./spangetViewPort()span style=color: #666666;./spansetEnvelope(env); viewspan style=color: #666666;./spangetMap()span style=color: #666666;./spaninvalidate() span style=color: #008000; font-weight: bold;class/span span style=color: #0000ff; font-weight: bold;MyHyperlinkListener/span(HyperlinkListener): span style=color: #008000; font-weight: bold;def/span span style=color: #0000ff;__init__/span(span style=color: #008000;self/span,vista): span style=color: #008000;self/spanspan style=color: #666666;./spanvista span style=color: #666666;=/span vista span style=color: #008000; font-weight: bold;def/span span style=color: #0000ff;hyperlinkUpdate/span(span style=color: #008000;self/span, h): span style=color: #008000; font-weight: bold;if/span span style=color: #008000;str/span(hspan style=color: #666666;./spangetEventType()) span style=color: #666666;==/span span style=color: #ba2121;ACTIVATED/span: span style=color: #408080; font-style: italic;# Sopo procesamos los eventos ACTIVATED que son los clicks sobre los enlaces/span span style=color: #408080; font-style: italic;# Recogemos la geometría que metimos en el enlace en WKT/span wktgeom span style=color: #666666;=/span hspan style=color: #666666;./spangetDescription() span style=color: #008000; font-weight: bold;print/span wktgeom span style=color: #408080; font-style: italic;# Y reconstruimos el punto a partir de ese WKT/span manager span style=color: #666666;=/span GeometryLocatorspan style=color: #666666;./spangetGeometryManager() point span style=color: #666666;=/span managerspan style=color: #666666;./spancreateFrom(wktgeom) span style=color: #408080; font-style: italic;# Y una vez lo tenemos centramos la vista en ese punto./span centerViewinPoint(span style=color: #008000;self/spanspan style=color: #666666;./spanvista,point) span style=color: #008000; font-weight: bold;def/span span style=color: #0000ff;main/span(span style=color: #666666;*/spanargs): layer span style=color: #666666;=/span currentLayer() span style=color: #008000; font-weight: bold;if/span layer span style=color: #666666;==/span span style=color: #008000;None/span: msgbox(span style=color: #ba2121;Debera seleccionar la capa que desea validar/span) span style=color: #008000; font-weight: bold;return/span informe span style=color: #666666;=/span StringIOspan style=color: #666666;./spanStringIO() informespan style=color: #666666;./spanwrite(span style=color: #ba2121;lt;ulgt;/spanspan style=color: #bb6622; font-weight: bold;\n/spanspan style=color: #ba2121;/span) ispan style=color: #666666;=0/span hay_problemas span style=color: #666666;=/span span style=color: #008000;False/span span style=color: #008000; font-weight: bold;try/span: span style=color: #408080; font-style: italic;# Añadimos la barra de progreso a la barra de estado de gvSIG/span taskStatusspan style=color: #666666;./spanadd() span style=color: #408080; font-style: italic;# Le indicamos cuantas iteraciones vamos a realizar/span span style=color: #008000; font-weight: bold;for/span feature span style=color: #aa22ff; font-weight: bold;in/span layerspan style=color: #666666;./spanfeatures(): span style=color: #408080; font-style: italic;# En cada iteración informamos a la barra de progreso de por donde vamos/span taskStatusspan style=color: #666666;./spansetCurValue(i) vs span style=color: #666666;=/span featurespan style=color: #666666;./spangeometry()span style=color: #666666;./spangetValidationStatus(); span style=color: #008000; font-weight: bold;if/span span style=color: #aa22ff; font-weight: bold;not/span vsspan style=color: #666666;./spanisValid() : hay_problemas span style=color: #666666;=/span span style=color: #008000;True/span span style=color: #008000; font-weight: bold;if/span vsspan style=color: #666666;./spangetProblemLocation()span style=color: #666666;!=/spanspan style=color: #008000;None/span: wktgeom span style=color: #666666;=/span vsspan style=color: #666666;./spangetProblemLocation()span style=color: #666666;./spanconvertToWKT() span style=color: #008000; font-weight: bold;else/span: span style=color: #008000; font-weight: bold;try/span: span style=color: #408080; font-style: italic;# Atrapamos los errores no vaya a ser que la geometría este tan dañada que/span span style=color: #408080; font-style: italic;# nos falle el calculo de su centroide./span wktgeom span style=color: #666666;=/span featurespan style=color: #666666;./spangeometry()span style=color: #666666;./spancentroid()span style=color: #666666;./spanconvertToWKT() span style=color: #008000; font-weight: bold;except/span: wktgeom span style=color: #666666;=/span span style=color: #008000;None/span informespan style=color: #666666;./spanwrite(span style=color: #ba2121;lt;ligt;/span) span style=color: #008000; font-weight: bold;if/span wktgeom span style=color: #666666;==/span span style=color: #008000;None/span: informespan style=color: #666666;./spanwrite(span style=color: #ba2121;'/spanspan style=color: #bb6688; font-weight: bold;%5.5d/spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;lt;brgt;/spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;'/span span style=color: #666666;%/span (i, featurespan style=color: #666666;./spantoString(),vsspan style=color: #666666;./spangetMessage())) span style=color: #008000; font-weight: bold;else/span: informespan style=color: #666666;./spanwrite(span style=color: #ba2121;'lt;a href=/spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;gt;/spanspan style=color: #bb6688; font-weight: bold;%5.5d/spanspan style=color: #ba2121;lt;/agt; /spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;lt;brgt;/spanspan style=color: #bb6688; font-weight: bold;%s/spanspan style=color: #ba2121;'/span span style=color: #666666;%/span (wktgeom,i, featurespan style=color: #666666;./spantoString(),vsspan style=color: #666666;./spangetMessage())) informespan style=color: #666666;./spanwrite(span style=color: #ba2121;lt;/ligt;/span) ispan style=color: #666666;+=1/span span style=color: #008000; font-weight: bold;finally/span: span style=color: #408080; font-style: italic;# Al terminar/span span style=color: #408080; font-style: italic;# Le indicamos a la barra de progreso que ya hemos terminado/span taskStatusspan style=color: #666666;./spanterminate() span style=color: #408080; font-style: italic;# Y la eliminamos de la barra de estado de gvSIG./span taskStatusspan style=color: #666666;./spanremove() informespan style=color: #666666;./spanwrite(span style=color: #ba2121;lt;/ulgt;/spanspan style=color: #bb6622; font-weight: bold;\n/spanspan style=color: #ba2121;/span) span style=color: #008000; font-weight: bold;if/span hay_problemas : application span style=color: #666666;=/span ApplicationLocatorspan style=color: #666666;./spangetManager() applicationspan style=color: #666666;./spanshowTextDialog( WindowManagerspan style=color: #666666;./spanMODEspan style=color: #666666;./spanTOOL, span style=color: #408080; font-style: italic;# TOOL o WINDOW según nos interese./span span style=color: #ba2121;Problems in layer /spanspan style=color: #666666;+/spanlayerspan style=color: #666666;./spangetName(), informespan style=color: #666666;./spangetvalue(), MyHyperlinkListener(currentView()) ) span style=color: #008000; font-weight: bold;else/span: msgbox(span style=color: #ba2121;Layer /spanspan style=color: #666666;+/spanlayerspan style=color: #666666;./spangetName()span style=color: #666666;+/spanspan style=color: #ba2121; is valid./span) /pre /divbr /Filed under: a href=http://blog.gvsig.org/category/products/gvsig-desktop/gvSIG Desktop/a, a href=http://blog.gvsig.org/category/gvsig-development/scripting/scripting/a, a href=http://blog.gvsig.org/category/languages/spanish/spanish/a Tagged: a href=http://blog.gvsig.org/tag/gvsig-2-1/gvSIG 2.1/a, a href=http://blog.gvsig.org/tag/gvsig-lac/gvSIG LAC/a, a href=http://blog.gvsig.org/tag/python/python/a, a href=http://blog.gvsig.org/tag/scripting/scripting/a img alt= border=0 height=1 src=http://pixel.wp.com/b.gif?host=blog.gvsig.orgamp;blog=8230583amp;post=2458amp;subd=gvsigamp;ref=amp;feed=1 width=1 /
Categories: OSGeo Planet

GeoServer Team: GeoServer 2.5.2 release

OSGeo Planet - Wed, 2014-07-23 16:18
pThe GeoServer team is happy to announce the release of a href=http://geoserver.org/release/2.5.2/ target=_blank title=GeoServer 2.5.2GeoServer 2.5.2/a. Download bundles are provided (a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.5.2/geoserver-2.5.2-bin.zip/download target=_blankzip/a, a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.5.2/geoserver-2.5.2-war.zip target=_blankwar/a, a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.5.2/geoserver-2.5.2.dmg/download target=_blankdmg/a and a href=http://sourceforge.net/projects/geoserver/files/GeoServer/2.5.2/geoserver-2.5.2.exe/download target=_blankexe/a)  along with documentation and extensions./p pGeoServer 2.5.2 is the next the stable release of GeoServer and is recommended for production deployment. Thanks to everyone taking part, submitting fixes and new functionality:/p ul liSome fixes in the new GetFeatureInfo engine, for unfilled polygons and dashed lines/li liSolved a configuration issue that might have linked two styles toghether (edit one, the other changed as well)/li liDBMS connection leak in some WFS GetFeature with bounds enabled/li liHave WPS work properly as a workspace specific service, and report the current process activity during asynchronous requests (for processes that do report what they are doing in plain english, besides offering a progress percentage)/li liAdd a way to resctrict output formats supported by WMS GetMap and GetFeatureInfo/li liMore docs on how to setup JNDI connection pools in GeoServer/li liThanks to Andrea (GeoSolutions) for publishing this release/li liCheck the a href=https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10311amp;version=20399 target=_blankrelease notes/a for more details/li liThis release is made in conjunction with GeoTools 11.2/li /ul h1About GeoServer 2.5/h1 pArticles and resources for GeoServer 2.5 series:/p ul lia href=http://www.geo-solutions.it/blog/geoserver-supports-footprints-imagemosaic/ target=_blankGeoServer now supports Vector Footprints for ImageMosaic/a/li lia href=http://boundlessgeo.com/2014/04/harvesting-metadata-using-csw/ target=_blankHarvesting Metadata using CSW/a/li lia href=http://www.geo-solutions.it/blog/developers-corner-caveats-geoserver-jndi-configuration/ target=_blankCaveats in GeoServer JNDI configuration/a/li lia href=http://www.geo-solutions.it/blog/developers-corner-supporting-wind-barbs-geoserver-geotools/ target=_blankSupporting Wind Barbs In GeoServer and GeoTools/a/li lia href=http://boundlessgeo.com/2014/04/deterministic-rendering-order-in-sld/ target=_blankDeterministic rendering order in SLDs/a/li lia href=http://boundlessgeo.com/2014/02/secure-connections-heroku/ target=_blankSecure GeoServer connections to Postgres for Heroku/a/li lia href=http://boundlessgeo.com/2014/02/labelling-a-multipoint-geometry-with-wps/ target=_blankLabelling a MultiPoint geometry with WPS/a/li liGeoServer 2.5-beta announcement reviews a href=http://blog.geoserver.org/2014/01/21/geoserver-2-5-beta-released/ target=_blank title=GeoServer 2.5-beta releasedkey features of this release/a: ul liWCS 2.0 and WCS 2.0 Earth Observation have been added (thanks to DLR and Eumesat for funding this)/li liThe addition of a batch importer to making setting up GeoServer easier (thanks to a href=http://mapstory.org/ target=_blank title=MapStoryMapStory/a)./li liHigh performance PNG encoder based on a href=https://code.google.com/p/pngj/ target=_blank title=PNGJ LibraryPNGJ library/a (Andrea Aime). Improved JPEG performance using a href=http://libjpeg-turbo.virtualgl.org/ target=_blanklibjpegturbo/a available as an optional extension (Simone Giannecchini and Daniele Romagnoli)/li liUse of ST_Simplify to improve PostGIS rendering performance (a collaboration with Andrea and Jonathan Moules)./li liNew implementation of GetFeatureInfo that takes into account symbol shapes, offsets, and dynamic line widths into account (thanks to Eskilstuna municipality for funding this)./li /ul /li lia href=http://blog.geoserver.org/2014/01/07/using-geoserver-at-ign-the-french-national-mapping-agency-to-create-new-digital-maps/ target=_blank title=Using GeoServer and IGN to create new digital mapsUsing GeoServer at IGN to create new digital maps/a is an impressive look at advanced styling deployed by the french mapping agency/li lia href=http://boundlessgeo.com/2014/02/labelling-a-multipoint-geometry-with-wps/ title=http://boundlessgeo.com/2014/02/labelling-a-multipoint-geometry-with-wps/Labelling a MultiPoint geometry with WPS/a (Boundless) is a good example of integrating WPS and Styling/li lia href=http://geo-solutions.blogspot.it/2014/02/geoserver-improved-scalability.html target=_blank title=Achieving Extreme GeoServer Scalability with the new Marlin vector rasterizerAchieving extreme GeoServer Scalability with new Marlin vector rasterizer/a (GeoSolutions) shows an exciting JRE extension that can be used for improved performance. If you are using GeoServer with a large number of CPU cores you owe yourself an hour to try this out./li lia href=http://geo-solutions.blogspot.it/2014/01/geoserver-dxf.html target=_blank title=Developer's Corner: DXF output format promoted to official extension for GeoServerDXF output format promoted to official extension for GeoServer/a (GeoSolutions)/li lia href=http://geo-solutions.blogspot.it/2014/01/geoserver-activedirectory.html target=_blank title=Active Directory based security in GeoServer through LDAPActive Directory based security in GeoServer through LDAP/a (GeoSolutions)/li /ul p /p
Categories: OSGeo Planet

GeoTools Team: GeoTools 11.2 released

OSGeo Planet - Wed, 2014-07-23 14:44
divspan style=font-size: 14px;The GeoTools community is happy to announce the latest  /spana href=http://sourceforge.net/projects/geotools/files/GeoTools%2011%20Releases/11.2/ style=color: #ca7900; font-size: 14px; target=_blankGeoTools 11.2 download/aspan style=font-size: 14px;:/span/divdiv class=post-body entry-content id=post-body-2992135552493375359 style=background-color: white;div dir=ltrullia href=http://sourceforge.net/projects/geotools/files/GeoTools%2011%20Releases/11.2/geotools-11.2-bin.zip/download style=color: #ca7900; target=_blankgeotools-11.2-bin.zip/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2011%20Releases/11.2/geotools-11.2-doc.zip/download style=color: #ca7900; target=_blankgeotools-11.2-doc.zip/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2011%20Releases/11.2/geotools-11.2-userguide.zip/download rel=nofollow style=color: #ca7900;geotools-11.2-userguide.zip/a/lilia href=http://sourceforge.net/projects/geotools/files/GeoTools%2011%20Releases/11.2/geotools-11.2-project.zip/download style=color: #ca7900; target=_blankgeotools-11.2-project.zip/a/li/uldivThis release is also available from our a href=http://download.osgeo.org/webdav/geotools/ style=color: #ca7900;maven repository/a. This release is made in conjunction with GeoServer 2.5.2./divdivbr //divspanThis is a release of the GeoTools 11 Stable series recommended for production systems. The /spana href=https://github.com/geoserver/geoserver/wiki/Release-Schedulerelease schedule/aspan style=font-family: Lucida Grande, Lucida Sans Unicode, Geneva, Verdana, sans-serif;span now offers 6 months of stable releases followed by six months of maintenance releases./span/spanbr /divbr //divdivA few highlights from the a href=https://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10270amp;version=20398 style=color: #ca7900; target=_blankGeoTools 11.2-Release Notes/a:/divullispan style=font-family: Lucida Grande, Lucida Sans Unicode, Geneva, Verdana, sans-serif;span style=font-size: 14px; line-height: 21px;Some image mosaic fixes about performance, granule harvesting, and heterogeneous mosaic management/span/span/lilispan style=font-family: Lucida Grande, Lucida Sans Unicode, Geneva, Verdana, sans-serif;span style=font-size: 14px; line-height: 21px;Some fixes in XML encoding, in GML and WPS land/span/span/lilispan style=font-family: Lucida Grande, Lucida Sans Unicode, Geneva, Verdana, sans-serif;span style=font-size: 14px; line-height: 21px;Upgraded imageio-ext dependency to 1.1.10/span/span/lilispan style=font-family: Lucida Grande, Lucida Sans Unicode, Geneva, Verdana, sans-serif;span style=font-size: 14px; line-height: 21px;Some improvements in Grib and NetCDF formats /span/span/li/uldivThanks to Andrea for this release (GeoSolutions)./divh2About GeoTools 11/h2divSummary of the new features for the GeoTools 11 series:/divulliThe DataStore API has a new a href=http://docs.geotools.org/latest/userguide/library/api/datastore.html style=color: #ca7900;removeSchema/a method to drop feature types. This new optional feature is currently implemented by the JDBCDataStore family (all spatial database backed stores), other stores will likely throw an UnsupportedOperationException/liliJDBCDataStore now exposes facilities to a href=http://docs.geotools.org/latest/javadocs/org/geotools/jdbc/JDBCDataStore.html#createIndex(org.geotools.jdbc.Index) style=color: #ca7900;list, create and destroy indexes/a on database columns./liliAbility to create and drop databases from the PostgisNGFactory/liliPostGis data store will now call ST_Simplify when the GEOMETRY_SIMPLIFICATION hint is provided, a href=http://osgeo-org.1560.x6.nabble.com/Some-interesting-optmizations-from-Jonathan-s-load-test-td5095839.html#a5096070 style=color: #ca7900;significantly speeding up loading of complex geometries /a (the renderer can perform scale based simplification already, but doing it before sending the data speeds up data retrieval significantly)/liliImageMosaic can now manage vector footprints for its granules, allowing to filter out no-data or corrupted sections of the imagery/liliAll properties in a SLD style can now have a a href=http://geo-solutions.blogspot.it/2014/01/css-uom.html style=color: #ca7900;local unit of measure/a, as opposed to specifying the unit of measure per symbolizer. For example, if you need to have a line width to be 10 meters, its value can now be 10m/liliImproved handling of data with 3D coordinates in JDBC data stores/liliA number of small improvements to the rendering engine, such as improved raster icon placement resulting in cleaner, less blurry output, improved label grouping, better handling of icons at the border of the map and in general much improved estimation of the buffer area needed to include all symbols in a map (for features that sit outside the map, but whose symbols are big enough to enter it)./li/ul/div/div
Categories: OSGeo Planet

Boundless Blog: Boundless Growth

OSGeo Planet - Tue, 2014-07-22 19:46
pimg alt=Eddie Pickle class=alignright size-full wp-image-8538 height=138 src=http://boundlessgeo.com/wp-content/uploads/2013/09/edd.png style=margin-left: 10px; width=138 //p p dir=ltrBoundless is growing but our focus remains helping customers build the best web mapping applications. We’ve recruited a stronger leadership team and are enhancing our current products while also developing new products and services to help customers in new ways./p p dir=ltrWe recently added a href=http://boundlessgeo.com/2014/07/ann-johnson-ceo/Ann Johnson/a as our a href=http://boundlessgeo.com/2014/07/ann-johnson-ceo/new CEO/a to strengthen our team and leadership. Ann’s experience with enterprise software, particularly her deep knowledge of security, greatly expand our expertise in critical areas of Spatial IT./p p dir=ltrAt the same time, we have been steadilya href=http://boundlessgeo.com/2014/06/opengeo-suite-4-1-released/ adding capabilities to OpenGeo Suite/a to enable easier,a href=http://boundlessgeo.com/2014/07/automated-clustering/ more scalable/a web services deployments. To help our customers successfully build enterprise mapping applications, we’re advancing open source software like a href=http://ol3js.org/OpenLayers 3/a and providing a href=http://boundlessgeo.com/2014/07/build-apps-with-boundless-sdk/new SDK templates/a that leverage this new technology. We continue to “a href=http://boundlessgeo.com/whitepaper/value-opengeo-suite/lower the cost of free software/a” by making secure, fault tolerant, and scalable deployments of our open source stack simpler, faster, and easier./p pAdditionally, some of our key initiatives include:/p ul li dir=ltr p dir=ltrReleasing newa href=http://boundlessgeo.com/2014/06/new-geoserver-training-and-certification/ online training courses/a and a href=http://boundlessgeo.com/resources/training/#onsiteon-site classes/a that enable us to train many more users on how to deploy and administer GeoServer and PostGIS./p /li li dir=ltr p dir=ltrExpanding our a href=http://boundlessgeo.com/solutions/professional-services/professional services/a offerings to make developing, implementing, and perfecting open source solutions quicker and easier./p /li li dir=ltr p dir=ltrExpanding our a href=http://boundlessgeo.com/about/partners/partner program/a to create new capabilities (such as a href=http://boundlessgeo.com/press-release/boundless-ccri-launch-opengeo-suite-geomesa/new options/a for a href=http://boundlessgeo.com/press-release/boundless-partners-mongodb-inc/Big Data/a) and grow internationally./p /li li dir=ltr p dir=ltrIncreasing a href=http://boundlessgeo.com/2013/11/opengeo-suite-and-qgis/ways to help QGIS users/a easily work with, style, and publish data to the web./p /li /ul p dir=ltrWith Ann joining Boundless, I’m focusing my efforts on developing these and other capabilities to grow our business, with a particular emphasis on developing new partnerships to create a new geospatial ecosystem based on open source software. We believe the future is bright for open source–based solutions to address a variety of challenges, from a href=http://boundlessgeo.com/case-study/howard-county-maryland/publishing data/a to a href=http://boundlessgeo.com/case-study/san-jose-water-company/asset management/a to a href=http://boundlessgeo.com/case-study/nyc-hra/customer services/a. I look forward to working with our customers and partners to reshape this industry!/p pThe post a href=http://boundlessgeo.com/2014/07/boundless-growth/Boundless Growth/a appeared first on a href=http://boundlessgeo.comBoundless/a./p
Categories: OSGeo Planet

GeoSolutions: Esalab si unisce al programma di partnership di GeoSolutions!

OSGeo Planet - Tue, 2014-07-22 08:30
pimg alt=partnership-en class=attachment-post-thumbnail wp-post-image height=1069 src=http://www.geo-solutions.it/wp-content/uploads/2014/01/v4_partnership_v2_EN-02.jpg?d879e9 width=1900 //pp style=text-align: justify;a href=http://www.geo-solutions.it target=_blankGeoSolutions/a è lieta di annunciare l’accordo di Partnership raggiunto con l’azienda a href=http://www.esalab.it/ target=_blankEsalab/a S.r.l. grazie al quale a href=http://www.esalab.it/ target=_blankEsalab/a S.r.l. rappresenterà a href=http://www.geo-solutions.it target=_blankGeoSolutions/a  nelle regioni di Marche, Abruzzo e Basilicata./p p style=text-align: justify;L’accordo di Partnership tra GeoSolutions e a href=http://www.esalab.it/ target=_blankEsalab/a costituisce l’inizio di un percorso che ha l’obiettivo di creare una rete di imprese coinvolte nello sviluppo e nella promozione dei principali software geospaziali Open Source da sempre promossi e sviluppati da a href=http://www.geo-solutions.it target=_blankGeoSolutions/a. La costruzione di una rete di imprese dislocate sul territorio nazionale e internazionale in grado di supportare gli utenti e di promuovere professionalmente i software geospaziali Open Source a href=http://geoserver.geo-solutions.itGeoServer/a, a href=http://geonetwork.geo-solutions.it target=_blankGeoNetwork/a e a href=http://mapstore.geo-solutions.it target=_blankMapStore/a mira a raggiungere un ulteriore miglioramento dei servizi offerti./p p style=text-align: justify;I partner di a href=http://www.geo-solutions.it target=_blankGeoSolutions/a saranno formati direttamente dai technical lead di a href=http://www.geo-solutions.it target=_blankGeoSolutions/a e saranno, come nel caso dell’azienda a href=http://www.esalab.it/ target=_blankEsalab/a, partner strategici già coinvolti a vario titolo nello sviluppo e nell’utilizzo dei software geospaziali Open Source promossi e curati da a href=http://www.geo-solutions.it target=_blankGeoSolutions/a in modo da garantire ai clienti dei partner la possibilità di interagire direttamente con coloro che sviluppano i software supportati per garantire una efficacia di servizio senza pari./p p style=text-align: justify;L’integrazione tra i tecnici di a href=http://www.geo-solutions.it target=_blankGeoSolutions/a e quelli delle aziende partner dislocate sul territorio è pensata nell’ottica di fornire al cliente finale un supporto ancora più presente e professionale attraverso un parco consulenti articolato ed eterogeneo capace di affrontare qualsiasi problematica in modo efficiente ed efficace./p h2 style=text-align: justify;bChi è GeoSolutions/b/h2 p style=text-align: justify;a href=http://www.geo-solutions.it target=_blankGeoSolutions/a è un’azienda altamente specializzata  nella gestione, processamento e disseminazione  dei dati geospaziali sia raster che vettoriali tramite l’utilizzo di software Open Source secondo le specifiche dettate dall’Open  GeoSpatial Consortium  (OGC) e dell’ ISO Technical Committee 211 che a loro volta forniscono  la base delle regole di INSPIRE ed RNDT./p p style=text-align: justify;a href=http://www.geo-solutions.it target=_blankGeoSolutions/a è composta da professionisti di livello internazionale con esperienza pluriennale nella progettazione, realizzazione e supporto di infrastrutture Enterprise per la gestione di dati geospaziali. I membri dello staff di a href=http://www.geo-solutions.it target=_blankGeoSolutions/a sono a vario titolo leader di alcuni tra i principali prodotti  Open Source  per  il  mondo  geospaziale come a href=http://geoserver.geo-solutions.itGeoServer/a, a href=http://geonetwork.geo-solutions.it target=_blankGeoNetwork/a a href=http://mapstore.geo-solutions.it target=_blankMapStore/a e GeoTools e forniscono per essi supporto professionale avanzato./p p style=text-align: justify;a href=http://www.geo-solutions.it target=_blankGeoSolutions/a annovera tra  i  suoi principali  clienti  enti  pubblici nazionali ed internazionali così come aziende private di tutto il mondo. United  Nations Food  and  Agriculture Organization (FAO),  United Nations World Food Program (WFP), NATO STO CMRE, EUMETSAT, German Space Agency (DLR), Austrian MetOffice (ZAMG), CSI Piemonte, Norwegian Public Roads Administration (NPRA), Magistrat Wien e tanti altri si avvalgono della collaborazione di a href=http://www.geo-solutions.it target=_blankGeoSolutions/a così come il Comune di Firenze e la Provincia di Firenze,  il Comune di Prato e la Provincia di Prato, il Comune di Bolzano ed il Comune di Genova./p h2 style=text-align: justify;bChi è Esalab/b/h2 p style=text-align: justify;a href=http://www.esalab.it/ target=_blankEsalab/a s.r.l. è una società fondata nel 1998 che opera nell'ambito della progettazione, dello sviluppo e dell'implementazione di Sistemi Informativi, rivolgendo la propria attività agli Enti Pubblici ed alle grandi società di Ingegneria./p p style=text-align: justify;a href=http://www.esalab.it/ target=_blankEsalab/a è specializzata nella definizione di servizi specifici di web application e di soluzioni integrate Web-GIS per la gestione del territorio, per il monitoraggio ambientale, per la protezione civile e per il turismo in ambito Open Source, secondo le specifiche dell’Open GeoSpatial Consortium (OGC) e di INSPIRE./p p style=text-align: justify;a href=http://www.esalab.it/ target=_blankEsalab/a dispone di un team di lavoro dedicato alla ricerca e alla realizzazione di progetti innovativi nel campo delle tecnologie GIS e WEBGIS./p p style=text-align: justify;a href=http://www.esalab.it/ target=_blankEsalab/a annovera tra i suoi principali clienti enti pubblici nazionali e società di ingegneria: Regione Marche, Provincia di Barletta Andria Trani, Comune di Urbino, SAIPEM SpA, Proger SpA e numerosi comuni nel territorio nazionale./p h2 style=text-align: justify;strongGeoSolutions Alliance Partnership Program/strong/h2 p style=text-align: justify;Il programma a href=http://www.geo-solutions.it/partnership/ target=_blankGeoSolutions Alliance Partnership/a si rivolge alla aziende che supportano e propongono i prodotti Open Source sviluppati da a href=http://www.geo-solutions.it target=_blankGeoSolutions/a e che sono alla ricerca di un partner capace di offrire il necessario supporto tecnico, commerciale e di marketing per lo sviluppo del proprio mercato. Per maggiori informazioni si rimanda a href=http://www.geo-solutions.it/partnership/ target=_blankalla pagina dedicata/a, oppure si consiglia di contattarci direttamente menzionando il a href=http://www.geo-solutions.it/partnership/ target=_blankGeoSolutions Alliance Partnership/a Program./p
Categories: OSGeo Planet

Free and Open Source GIS Ramblings: Visualizing direction-dependent values

OSGeo Planet - Mon, 2014-07-21 18:48
pWhen mapping flows or other values which relate to a certain direction, styling these layers gets interesting. I faced the same challenge when mapping direction-dependent error values. Neighboring cell pairs were connected by two lines, one in each direction, with an associated error value. This is what I came up with:/p pa href=https://underdark.files.wordpress.com/2014/07/srtm_errors_1200px.pngimg alt=srtm_errors_1200px class=alignnone size-large wp-image-3270 src=http://underdark.files.wordpress.com/2014/07/srtm_errors_1200px.png?w=545amp;h=384 //a/p pEach line is drawn with an offset to the right. The size of the offset depends on the width of the line which in turn depends on the size of the error. You can see the data-defined style properties here:/p pa href=https://underdark.files.wordpress.com/2014/07/directed_error_style.pngimg alt=directed_error_style class=alignnone size-large wp-image-3275 height=398 src=http://underdark.files.wordpress.com/2014/07/directed_error_style.png?w=545amp;h=398 width=545 //a/p pTo indicate the direction, I added a marker line with one gt; marker at the center. This marker line also got assigned the same offset to match the colored line bellow. I’m quite happy with how these turned out and would love to hear about your approaches to this issue./p pa href=https://underdark.files.wordpress.com/2014/07/srtm_errors_detail.pngimg alt=srtm_errors_detail class=alignnone size-full wp-image-3273 height=392 src=http://underdark.files.wordpress.com/2014/07/srtm_errors_detail.png?w=545amp;h=392 width=545 //a/p pThese figures are part of a recent publication with my AIT colleagues: a href=http://hw.oeaw.ac.at/0xc1aa500d_0x0030d58f.pdfA. Graser, J. Asamer, M. Dragaschnig: “How to Reduce Range Anxiety? The Impact of Digital Elevation Model Quality on Energy Estimates for Electric Vehicles” (2014). /a/pbr / a href=http://feeds.wordpress.com/1.0/gocomments/underdark.wordpress.com/3267/ rel=nofollowimg alt= border=0 src=http://feeds.wordpress.com/1.0/comments/underdark.wordpress.com/3267/ //a img alt= border=0 height=1 src=http://pixel.wp.com/b.gif?host=anitagraser.comamp;blog=835829amp;post=3267amp;subd=underdarkamp;ref=amp;feed=1 width=1 /
Categories: OSGeo Planet

Faunalia: Training courses calendar: QGIS (Desktop, Server and Web) and PostGIS

OSGeo Planet - Mon, 2014-07-21 17:14
We just published our Training Courses calendar for the period September 2014 – January 2015. This includes training courses about QGIS (Desktop, Server and Web) and PostgreSQL/PostGIS in both Italy and Portugal. Training courses about QGIS python programming are available on demand. For details (locations, prices, discounts, etc.) about training courses in Portugal see: http://www.faunalia.eu/pt/training.html […]img alt= border=0 height=1 src=http://pixel.wp.com/b.gif?host=faunaliagis.wordpress.comamp;blog=45010254amp;post=405amp;subd=faunaliagisamp;ref=amp;feed=1 width=1 /
Categories: OSGeo Planet

GeoSolutions: Esalab joins GeoSolutions Alliance Partnership Program

OSGeo Planet - Mon, 2014-07-21 15:00
pimg alt=partnership-en class=attachment-post-thumbnail wp-post-image height=1069 src=http://www.geo-solutions.it/wp-content/uploads/2014/01/v4_partnership_v2_EN-02.jpg?d879e9 width=1900 //pp style=text-align: justify;a href=http://www.geo-solutions.it target=_blankGeoSolutions/a and a href=http://www.esalab.it/ target=_blankEsalab/a are glad to announce their Partnership./p p style=text-align: justify;a href=http://www.esalab.it/ target=_blankEsalab/a will be the exclusive representative company of the OpenSDI Suite (GeoServer, GeoWebCache, GeoNetwork and MapStore) for the following italian regions: Marche, Abruzzo and Basilicata./p p style=text-align: justify;Since more than ten years a href=http://www.esalab.it/ target=_blankEsalab/a develops products and projects relating to geospatial field based on GeoServer and integrated with GeoNetwork./p p style=text-align: justify;The Partnership program between a href=http://www.geo-solutions.it target=_blankGeoSolutions/a and a href=http://www.esalab.it/ target=_blankEsalab/a allows the two companies to offer a more and more qualified support to the end users./p h2 style=text-align: justify;GeoSolutions Alliance Program/h2 p style=text-align: justify;a href=http://www.geo-solutions.it/partnership/ target=_blankGeoSolutions Alliance Program/a is the partnership program for companies that want to extend their market reach by adding or boosting their skills on GeoSpatial Open Source Products leveraging on a collaboration with a href=http://www.geo-solutions.it target=_blankGeoSolutions/a Team./p p style=text-align: justify;The goal is to create a network of certified partners which are able to support the growth and deeper penetration of Open Source GeoSpatial Products by positively addressing the increased demand for professional support services and solutions./p p style=text-align: justify;Check a href=http://www.geo-solutions.it/partnership/ target=_blank title=Partnership Programthis/a page for additional information./p
Categories: OSGeo Planet

A GeoSpatial World: PostGIS 3D Viewer

OSGeo Planet - Sun, 2014-07-20 16:16
p /p h1 table border=0 cellpadding=2 cellspacing=0 width=777tbody tr td valign=bottom width=102a href=http://lh4.ggpht.com/-ZF0Fqc7UA7M/U8ABb1as8iI/AAAAAAAAAcU/XNXMR7xj-2o/s1600-h/image%25255B223%25255D.pngimg alt=image border=0 height=110 src=http://lh5.ggpht.com/-BFPOuD_IlPU/U8ABcYDDG0I/AAAAAAAAAcc/0_Hf5qVKuFE/image_thumb%25255B178%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=104 //a/td td valign=bottom width=673font size=7n viewer 3D pour PostGIS/font/td /tr /tbody/table /h1 h6 table border=0 cellpadding=2 cellspacing=0 width=828tbody tr td width=297a href=http://lh3.ggpht.com/-W8huIC6-kp4/U8JaNWILdcI/AAAAAAAAAeo/Pq2NXez-mG0/s1600-h/image%25255B10%25255D.pngimg alt=image border=0 height=119 src=http://lh5.ggpht.com/-lR4QmDlx8Nk/U8GwJVIiF_I/AAAAAAAAAew/-_Vw-xQUTvs/image_thumb%25255B7%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=240 //a/td td width=529a href=http://lh6.ggpht.com/-v0U1siB61VM/U8GwK8fNeeI/AAAAAAAAAeA/-EokchLtSoY/s1600-h/pg3DViewer_title%25255B6%25255D%25255B11%25255D.pngimg alt=pg3DViewer_title[6] border=0 height=530 src=http://lh3.ggpht.com/-WKqr8JT9BJo/U8GwMKcxw-I/AAAAAAAAAeI/UUBMoLj1AcQ/pg3DViewer_title%25255B6%25255D_thumb%25255B8%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=pg3DViewer_title[6] width=357 //a/td /tr /tbody/table /h6 h6 /h6 h1 table border=0 cellpadding=2 cellspacing=0 width=669tbody tr td valign=bottom width=103a href=http://lh4.ggpht.com/-UQBsZ0yCl70/U8ABdNKjXnI/AAAAAAAAAck/OtlNa55c99o/s1600-h/image%25255B218%25255D.pngimg alt=image border=0 height=110 src=http://lh3.ggpht.com/-CfF0nq0HOjY/U8ABdw7rIxI/AAAAAAAAAcs/qv1VnaI1_AE/image_thumb%25255B175%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=102 //a/td td valign=bottom width=564font size=7ntroduction/font/td /tr /tbody/table /h1 pAvec la version 2.0 PostGIS est entré dans le monde de la 3D, il est possible de stocker des géométries 3D avec l’ajout de la coordonnée Z dans toutes les géométries existantes et de stocker des géométries volumétriques avec l’introduction de deux nouveaux type  :/p table border=0 cellpadding=2 cellspacing=0 width=776tbody tr td width=476 ul liTIN(Triangulated Irregular Network, une collection de TRIANGLE) /li /ul /td td width=298a href=http://lh3.ggpht.com/-CHMAPuXbts0/U8Kj1jH--xI/AAAAAAAAAgg/wlCZcqwXhqQ/s1600-h/image%25255B20%25255D.pngimg alt=image border=0 height=172 src=http://lh4.ggpht.com/-SY2O60CETCI/U8Kj3SWAm4I/AAAAAAAAAgo/oBxPCMJfKCw/image_thumb%25255B13%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=220 //a/td /tr tr td width=476 ul liPOLYHEDRALSURFACE (une collection de POLYGON) /li /ul /td td width=298a href=http://lh4.ggpht.com/-P-BsOdoGkRk/U8Kj4C3xwvI/AAAAAAAAAgw/UzGwSzxT3fs/s1600-h/image%25255B15%25255D.pngimg alt=image border=0 height=217 src=http://lh5.ggpht.com/-HIIXU5Ik-Xw/U8Kj4_VrOPI/AAAAAAAAAg0/8P8XkbjHRco/image_thumb%25255B10%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=236 //a/td /tr /tbody/table pCela fait déjà un an que la création d’un viewer pour visualiser les géométries 3D de PostGIS me trottait dans la tête suite à un échange avec Claus Nagel et Felix Kunde de virtualcitySYSTEMS à propos de l’outil d’import du format CityGML que j’avais réalisé a href=http://ageoguy.blogspot.fr/2012/07/citygml-vers-postgis-20.html target=_blankCityGML vers PostGIS 2.0/a , ils m’avaient conseillé alors de me diriger vers le développement d’un viewer 3D. Lorsque récemment j’ai repris contact avec eux pour leur parler de mon développement en cours, ils ont accueilli la nouvelle avec enthousiasme et ont bénéficié de versions beta, ce qui m’a grandement aidé pour mes choix dans la finalisation de mon application./p pAujourd’hui la 3D est de plus en plus présente dans le monde SIG avec le format CityGML et dans le monde de l’architecture avec le format IFC, importer ces formats dans une base de données PosgtgreSQL/PostGIS est une démarche naturelle car cela apporte toute la puissance de traitement des bases de données spatiale pour la gestion de ces données. /p table border=0 cellpadding=2 cellspacing=0 width=854tbody tr td valign=top width=852Pour le format CityGML la société virtualcitySYSTEMS met à disposition un schéma de base de données Open Source et gratuit pour le stockage et la gestion de ‘em3D City Models/em’. Ce schéma de base de données est le reflet du modèle de données CityGML. Les données peuvent être importées via un outil d’import/export . br /le lien pour accéder à leur site : a href=http://virtualcitysystems.de/en/solutions.html#3dcitydb target=_blankhttp://virtualcitysystems.de/en/solutions.html#3dcitydb/a  br //td /tr tr td align=center width=852a href=http://lh3.ggpht.com/-oy_ZIjXS0tw/U8OixsHRjLI/AAAAAAAAAhI/12JGJ7dDBuU/s1600-h/image%25255B11%25255D.pngimg alt=image border=0 height=329 src=http://lh6.ggpht.com/-3vrL8oezmiw/U8Oiyo1cNZI/AAAAAAAAAhQ/6H7NIwokevo/image_thumb%25255B5%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=640 //a/td /tr /tbody/table pA ce stade du développement je n’affiche que des géométries de type POLYGON, MULTIPOLYGON, TIN et POLYHEDRALSURFACE. Ce qui permet d’afficher toutes type de géométries volumétriques répondant à cette contrainte. Je vais travailler rapidement sur les autres type de géométrie POINT, LINESTRING… , ce qui fera l’objet d’une nouvelle version de l’application dans les prochaines semaines./p pJ’ai développé cet outil en C# 2013 avec :/p table border=0 cellpadding=2 cellspacing=0 width=1109tbody tr td width=319 ul liLa librairie GDAL/OGR /li /ul /td td width=93img alt=[image66.png] border=0 height=60 src=http://lh4.ggpht.com/-PCQ8XwyZsdc/UMGu7qas37I/AAAAAAAAASU/ST9YK__WahQ/s1600/image66.png width=54 //td td width=695a href=http://www.gdal.org/GDAL - Geospatial Data Abstraction Library/a/td /tr tr td width=318 ul liActiViz .Net un wrapper pour VTK /li /ul /td td width=98 img height=60 src=http://vis.computer.org/VisWeek2008/supporters/gold/kitware.png width=228 //td td width=695a href=http://www.kitware.com/opensource/avdownload.phpActiViz .Net/aa href=http://www.kitware.com/opensource/vtk.html br //a/td /tr tr td width=316 br / br //td td width=102a href=http://lh6.ggpht.com/-mgLXl08Vi1M/U7-lHxgbtbI/AAAAAAAAAZU/FYetAxaQjPo/s1600-h/vtk-logo%25255B4%25255D.gifimg alt=vtk-logo border=0 height=60 src=http://lh6.ggpht.com/-U3GjJirEuUY/U7-lIs8MacI/AAAAAAAAAZc/sK9uZy71zLU/vtk-logo_thumb%25255B2%25255D.gif?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px; title=vtk-logo width=77 //a/td td width=695a href=http://www.vtk.org/VTK/a/td /tr tr td width=316 ul liPostgreSQL 9.2 /li /ul /td td width=102img alt=(thumbnail) height=60 src=https://wiki.postgresql.org/images/a/ac/PostgreSQL_logo.1color_white.120x120.png width=60 //td td width=695a href=http://www.postgresql.orgPostgreSQL Windows/a/td /tr tr td width=316 ul liPostGIS 2.2.0 dev /li /ul /td td width=102a href=http://lh4.ggpht.com/-WstR7s4PMPE/U7-lJmlSpkI/AAAAAAAAAZk/ZqMpmzL9dak/s1600-h/adbadge_wide_240%25255B4%25255D.gifimg alt=adbadge_wide_240 border=0 height=60 src=http://lh6.ggpht.com/-F3rmeH95qzs/U7-lKEMyKlI/AAAAAAAAAZs/KCzQGPFm9WM/adbadge_wide_240_thumb%25255B2%25255D.gif?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px; title=adbadge_wide_240 width=225 //a /td td width=695a href=http://postgis.net/Postgis/a br /a href=http://winnie.postgis.net/download/windows/pg92/buildbot/postgis-pg92-binaries-2.2.0devw32.ziphttp://winnie.postgis.net/download/windows/pg92/buildbot/postgis-pg92-binaries-2.2.0devw32.zip/a br /a href=http://winnie.postgis.net/download/windows/pg92/buildbot/postgis-pg92-binaries-2.2.0devw64.ziphttp://winnie.postgis.net/download/windows/pg92/buildbot/postgis-pg92-binaries-2.2.0devw64.zip/a/td /tr /tbody/table p /p pPour l’intégration de données 3D j’ai testé l’outil 3DCityDB-Importer-Exporter a href=http://http://www.3dcitydb.org/3dcitydb/downloads/http://http://www.3dcitydb.org/3dcitydb/downloads//a qui permet d’importer des fichiers au format CityGML dans une base de données PostgreSQL avec PostGIS (a partir de la version 2.0)./p pa href=http://lh3.ggpht.com/-fAc5SQ-x-EE/U77ruX1TmlI/AAAAAAAAAY8/Pu2faIxf9Gk/s1600-h/site_3dcitydb_02%25255B3%25255D.jpgimg alt=site_3dcitydb_02 border=0 height=706 src=http://lh5.ggpht.com/-JD8F3Pf84YQ/U77rvUgNVZI/AAAAAAAAAZE/jMhowTkb0ts/site_3dcitydb_02_thumb%25255B1%25255D.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto; title=site_3dcitydb_02 width=905 //a  /p pVoici une extraction du document a href=http://www.3dcitydb.org/3dcitydb/fileadmin/downloaddata/3DCityDB-v2_0_6-postgis-Tutorial.pdf3DCityDB-v2_0_6-postgis-Tutorial.pdf/a concernant la partie PostGIS (en anglais ) :/p p class=MsoNormal style=margin: 0cm 0cm 0pt; line-height: normal;a href=http://lh4.ggpht.com/-_rt0p5s4e0c/U7-w41gNajI/AAAAAAAAAZ8/EX-lf9g66-8/s1600-h/image%25255B26%25255D.pngimg alt=image border=0 height=882 src=http://lh5.ggpht.com/-LZd-QVcsHbE/U7-w55hqkeI/AAAAAAAAAaE/MxubGnuY4bo/image_thumb%25255B18%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=681 //a/p p class=MsoNormal style=margin: 0cm 0cm 0pt; line-height: normal; /p blockquote pa href=http://lh5.ggpht.com/-bNupXLTKfFg/U7-w7jr_ZiI/AAAAAAAAAaM/w5IDv577z1g/s1600-h/image%25255B25%25255D.pngimg alt=image border=0 height=874 src=http://lh4.ggpht.com/-JYnPrmocWyo/U7-w8mfyzyI/AAAAAAAAAaU/wZcbXj1YuvY/image_thumb%25255B17%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=679 //a/p pa href=http://lh5.ggpht.com/-oD2nwrmldWk/U7-w9zOydjI/AAAAAAAAAac/rryXGdqUBno/s1600-h/image%25255B29%25255D.pngimg alt=image border=0 height=875 src=http://lh5.ggpht.com/-dHZUvS4McWM/U7-w-5DOtOI/AAAAAAAAAak/7kVJ0OQr5gk/image_thumb%25255B19%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=679 //a/p /blockquote pa href=http://lh6.ggpht.com/-gxcc4ybYDLQ/U7-xAo6ERpI/AAAAAAAAAas/hfbBBfN_3pw/s1600-h/image%25255B32%25255D.pngimg alt=image border=0 height=874 src=http://lh5.ggpht.com/-3Ux2l81_n3o/U7-xBRjc_WI/AAAAAAAAAa0/Xm4C-QFDdWU/image_thumb%25255B20%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=678 //a/p pa href=http://lh4.ggpht.com/-2D4RWOViBcc/U7-xCa-XqxI/AAAAAAAAAa8/Dfy2RuEmrGE/s1600-h/image%25255B35%25255D.pngimg alt=image border=0 height=875 src=http://lh5.ggpht.com/-JGibWC2EMrQ/U7-xDasspmI/AAAAAAAAAbE/guP56trGgZM/image_thumb%25255B21%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=678 //a/p pa href=http://lh6.ggpht.com/-_a6a-46Z9Pc/U7-xEeyxBgI/AAAAAAAAAbM/xBWTvf7ylsY/s1600-h/image%25255B38%25255D.pngimg alt=image border=0 height=875 src=http://lh3.ggpht.com/-Igq5LkgXusY/U7-xE55IAqI/AAAAAAAAAbU/53HewubgcDU/image_thumb%25255B22%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=678 //a/p pa href=http://lh6.ggpht.com/-EDloZ6oIpX4/U7-xGBqOgUI/AAAAAAAAAbc/jm28WHtqEGk/s1600-h/image%25255B41%25255D.pngimg alt=image border=0 height=873 src=http://lh6.ggpht.com/-eF0NBxLa2Ho/U7-xG7brqsI/AAAAAAAAAbk/nfkvArTvJBE/image_thumb%25255B23%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=674 //a/p pa href=http://lh4.ggpht.com/-sAXvoHyC32Y/U7-xIqi6qvI/AAAAAAAAAbs/RzfT2oSUBaA/s1600-h/image%25255B44%25255D.pngimg alt=image border=0 height=873 src=http://lh6.ggpht.com/-XlL1f5jKEYY/U7-xJjaYKmI/AAAAAAAAAb0/daqqt3c_I8E/image_thumb%25255B24%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=678 //a/p pa href=http://lh6.ggpht.com/-E0_j0RIHblo/U7-xKXhZX0I/AAAAAAAAAb8/leN589hp_KY/s1600-h/image%25255B47%25255D.pngimg alt=image border=0 height=874 src=http://lh5.ggpht.com/-ArSHUx9knS0/U7-xLIc9-2I/AAAAAAAAAcE/X10fqQhDOZ8/image_thumb%25255B25%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=679 //a/p p /p h1 table border=0 cellpadding=2 cellspacing=0 width=697tbody tr td valign=bottom width=102a href=http://lh4.ggpht.com/-KhqqbIKILcs/U8ABeujlF6I/AAAAAAAAAc0/iCwKzRMhDbE/s1600-h/image%25255B214%25255D.pngimg alt=image border=0 height=110 src=http://lh4.ggpht.com/-EeEpcF8CPN4/U8ABfTYaUiI/AAAAAAAAAc8/NmyAn9lqZg8/image_thumb%25255B174%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=102 //a/td td valign=bottom width=593font size=7nstallation/font/td /tr /tbody/table /h1 table border=0 cellpadding=2 cellspacing=0 width=858tbody tr td valign=top width=200a href=http://lh3.ggpht.com/-alowrhgBmRQ/U8GwMiybcAI/AAAAAAAAAeM/-1KarnwovPY/s1600-h/image%25255B8%25255D.pngimg alt=image border=0 height=181 src=http://lh5.ggpht.com/-aHF-4oUv0IM/U8GwNEIzwwI/AAAAAAAAAeY/2TNM2xsIOdk/image_thumb%25255B4%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=250 //a/td td valign=top width=656 pCliquez sur le lien a href=https://dl.dropboxusercontent.com/u/13543015/pg3DViewer/pg3DViewer_setup.exe target=_blankpg3DViewer_setup.exe/a pour télécharger le programme d’installation, puis lancer l’exécution./p pCliquer sur le  bouton Suivant à chaque étape, puis sur le bouton Terminer./p /td /tr /tbody/table pa href=http://lh4.ggpht.com/-FjYUkRtJ6O0/U8JaOjWXidI/AAAAAAAAAe4/Gfu4pjmpq-A/s1600-h/pg3DViewer_install_01%25255B5%25255D.jpgimg alt=pg3DViewer_install_01 border=0 height=392 src=http://lh3.ggpht.com/-N-ciRlIwD8k/U8JaPMHwmUI/AAAAAAAAAfA/CI5b3snBAE4/pg3DViewer_install_01_thumb%25255B1%25255D.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=pg3DViewer_install_01 width=507 //a/p pa href=http://lh4.ggpht.com/-RwUR3v4fWps/U8JaP8KOcwI/AAAAAAAAAfI/Gp7XsSBSEP8/s1600-h/pg3DViewer_install_02%25255B2%25255D.jpgimg alt=pg3DViewer_install_02 border=0 height=392 src=http://lh4.ggpht.com/-Ul-PGCFBsUs/U8JaQn6DGKI/AAAAAAAAAfQ/n6X0StgCTIA/pg3DViewer_install_02_thumb.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=pg3DViewer_install_02 width=507 //a/p pa href=http://lh4.ggpht.com/-MgQsmzZl0Ls/U8JaRSF0hSI/AAAAAAAAAfY/30gxzKHXjeA/s1600-h/pg3DViewer_install_03%25255B2%25255D.jpgimg alt=pg3DViewer_install_03 border=0 height=392 src=http://lh5.ggpht.com/-ZsjlUWRFybc/U8JaR1JbYPI/AAAAAAAAAfg/uVZup7XpZ3Q/pg3DViewer_install_03_thumb.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=pg3DViewer_install_03 width=507 //a/p pa href=http://lh4.ggpht.com/-BlWjt1Ln5SI/U8JaShF7UeI/AAAAAAAAAfo/ZJOhNczcDu0/s1600-h/pg3DViewer_install_04%25255B2%25255D.jpgimg alt=pg3DViewer_install_04 border=0 height=392 src=http://lh6.ggpht.com/-bihfYBW-TF4/U8JaTTRS32I/AAAAAAAAAfw/3dnD8RVSrVI/pg3DViewer_install_04_thumb.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=pg3DViewer_install_04 width=507 //a/p pa href=http://lh4.ggpht.com/-atUdppHxzG0/U8JaUMdpGoI/AAAAAAAAAf4/uJq8UiFerMM/s1600-h/pg3DViewer_install_05%25255B2%25255D.jpgimg alt=pg3DViewer_install_05 border=0 height=392 src=http://lh3.ggpht.com/-L2sU0BTjA8c/U8JaUzw583I/AAAAAAAAAgA/nZd45Rv5vDo/pg3DViewer_install_05_thumb.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=pg3DViewer_install_05 width=507 //a/p pa href=http://lh3.ggpht.com/-P5R5ZrOyDOA/U8JaVbRzgII/AAAAAAAAAgI/UOZcrEBRW9c/s1600-h/pg3DViewer_install_06%25255B2%25255D.jpgimg alt=pg3DViewer_install_06 border=0 height=392 src=http://lh4.ggpht.com/-WlGVrgXTh3o/U8JaWB1Z1pI/AAAAAAAAAgQ/qrCIeyJvax8/pg3DViewer_install_06_thumb.jpg?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=pg3DViewer_install_06 width=507 //a/p p /p h1 table border=0 cellpadding=2 cellspacing=0 width=310tbody tr td valign=bottom width=101a href=http://lh4.ggpht.com/-8u48AL4C7hk/U8ABgExvLDI/AAAAAAAAAdE/3SioELXJnuU/s1600-h/image%25255B227%25255D.pngimg alt=image border=0 height=110 src=http://lh6.ggpht.com/-eOl65q3QsyY/U8ABg6nSKQI/AAAAAAAAAdM/5QfpjosQ2Xk/image_thumb%25255B179%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=104 //a/td td valign=bottom width=207tilisation/td /tr /tbody/table /h1 pAvant de commencer à utiliser pg3Dviewer vous devez avoir une base de données PostgreSQL avec la cartouche spatiale PostGIS version 2.0 ou supérieure. Cette base de données doit contenir des données 3D, l’idéal serait que vous ayez créé une base 3DCityDB et importé un ou plusieurs fichiers CityGML. Voici un lien ou vous pourrez télécharger des données CityGML a href=http://www.rotterdam.nl/links_rotterdam_3d target=_blankRotterdam 3D/a, demandez à notre ami Google de traduire la page cela peut aider, cela permet de découvrir un lien sur le site permettant de télécharger un fichier pdf contenant une carte avec tous les nom des quartiers téléchargeables a href=http://www.rotterdam.nl/GW/Images/Gemeentewerken%20Home/Landmeten/overzicht%20buurten.pdf target=_blankhttp://www.rotterdam.nl/GW/Images/Gemeentewerken%20Home/Landmeten/overzicht%20buurten.pdf/a , il ne vous reste plus qu’a choisir les quartiers dans la liste sous le lien./p pVous pouvez quand même faire les premiers tests sans avoir téléchargé de données./p table border=0 cellpadding=2 cellspacing=0 width=822tbody tr td width=106a href=http://lh3.ggpht.com/-mpCJL4g8wmg/U8PFRZ0qlzI/AAAAAAAAAhg/69a8ve2rsYo/s1600-h/image%25255B14%25255D.pngimg alt=image border=0 height=74 src=http://lh5.ggpht.com/-7hkfUzYVWDA/U8PFR7oW1eI/AAAAAAAAAho/f6eOYPXPP0E/image_thumb%25255B6%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=98 //a/td td width=714Double cliquez sur l’icone créé par le programme d’installation sur le bureau pour lancer l’application./td /tr /tbody/table pa href=http://lh5.ggpht.com/-LY0UUFmMRzw/U8PFTJ4VdvI/AAAAAAAAAkg/i_ml8R80iGw/s1600-h/image%25255B85%25255D.pngimg alt=image border=0 height=418 src=http://lh6.ggpht.com/-iFH2QhFq2aA/U8PFUII6fXI/AAAAAAAAAko/efIQY1VKpds/image_thumb%25255B50%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=644 //a/p pa href=http://lh5.ggpht.com/-kJeCMYu0SCY/U8V_JrY9U0I/AAAAAAAAAmQ/sMgT180Ifrk/s1600-h/image%25255B5%25255D.pngimg alt=image border=0 height=354 src=http://lh4.ggpht.com/-ijeeb0ofw14/U8V_KPIW-tI/AAAAAAAAAmY/9Hg9Eo4aE1U/image_thumb%25255B2%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=644 //a/p h3Connecter vous à votre base de données 3D/h3 p /p table border=0 cellpadding=2 cellspacing=0 width=849tbody tr td valign=top width=56a href=http://lh5.ggpht.com/-DQOsiNOOT7Q/U8PFWlBXb0I/AAAAAAAAAiM/Hf7Y9FazVm4/s1600-h/image%25255B33%25255D.pngimg alt=image border=0 height=43 src=http://lh5.ggpht.com/-x07YR9Irw_c/U8PFXB-hk9I/AAAAAAAAAiU/bhfk3f8bqro/image_thumb%25255B16%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=42 //a/td td valign=top width=791 pCommencez par cliquer sur cet icône pour vous connecter a une base de données PostgreSQL/PostGIS version 2.0 ou supérieur contenant des données 3D ou prête à en recevoir./p /td /tr tr td valign=top width=61 /td td valign=top width=787 ul liChoisissez localhost pour serveur si votre base de données est en local sur votre machine ou bien saisissez l’adresse IP de votre serveur /li lile port est par défaut 5432, changez le si nécessaire /li lisaisissez l’utilisateur /li lisaisissez le mot de passe /li lichoisissez une base de donnée dans la combobox /li licliquez sur le bout OK pour valider votre saisie. /li /ul pa href=http://lh4.ggpht.com/-gqRcapx4ofk/U8PFXgMiWuI/AAAAAAAAAig/OLILeWFlgZc/s1600-h/image%25255B36%25255D.pngimg alt=image border=0 height=348 src=http://lh3.ggpht.com/-sm5wCPqooO8/U8PFYd62AtI/AAAAAAAAAio/6LvFLMabPOg/image_thumb%25255B17%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto; title=image width=347 //a/p /td /tr /tbody/table br / h2/h2 h3Visualiser une géométrie de type POLYHEDRALSURFACE/h3 br / table border=0 cellpadding=2 cellspacing=0 width=901tbody tr td valign=top width=281 pDans le panneau Query copiez la requête suivante :/p pfont face=CalibriSELECT st_force_collection( br /    st_geomFromText br /    ( br /       /fontfont face=Calibrifont color=#0000ff'POLYHEDRALSURFACE( br /        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), br /        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), br /        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), br /        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)), br /        ((1 0 0, 1 1 0, 1 1 1, 1 0 1, 1 0 0)), br /        ((1 1 0, 0 1 0, 0 1 1, 1 1 1, 1 1 0)) br /        )' br //font    ) br /) br //font/p /td td align=center valign=top width=618a href=http://lh4.ggpht.com/-CXoB3GBm-wo/U8V_KtXMtnI/AAAAAAAAAmg/4KFLC-2vCrk/s1600-h/image%25255B10%25255D.pngimg alt=image border=0 height=354 src=http://lh5.ggpht.com/-e_gqLX-KL5Q/U8V_LV8KZcI/AAAAAAAAAmo/UxmHg5J-CSs/image_thumb%25255B5%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=645 //a/td /tr tr td valign=top width=281 pCliquez sur l’icone ‘emExecute query/em’/p /td td align=center valign=top width=618a href=http://lh5.ggpht.com/-wZ8hjA3OuXM/U8PgYwg67MI/AAAAAAAAAjI/6YC2GNEnC64/s1600-h/image%25255B48%25255D.pngimg alt=image border=0 height=244 src=http://lh4.ggpht.com/-j4IVdMN66cw/U8PgZiWm03I/AAAAAAAAAjQ/BL4vTA197C4/image_thumb%25255B23%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=291 //a/td /tr tr td valign=top width=281Vous obtenez ce résultat. br / br /Interactions de la souris avec la fenêtre de rendu: br /- Bouton gauche : Rotation br /- Roulette          : Zoom br /- Bouton droit    : Zoom dynamique br /- Bouton gauche + touche majuscule : Pan br /Testez les différentes associations entre les touches Majuscule, Ctrl et alt et  les boutons de la souris. br / br /Interactions touches claviers avec la fenêtre de rendu : br /- Touche w : passe en mode affichage fil de fer. br /- Touche s  : passe en mode affichage surfacique./td td align=center valign=top width=618a href=http://lh6.ggpht.com/-FoswMSY9ql8/U8V_L8ide2I/AAAAAAAAAmw/r3RhinqVwao/s1600-h/image%25255B13%25255D.pngimg alt=image border=0 height=354 src=http://lh3.ggpht.com/-PVW-O2IbLvk/U8V_MZLkL0I/AAAAAAAAAm4/NQ1z-JbeqV0/image_thumb%25255B6%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=645 //a/td /tr tr td valign=top width=281La fenêtre de rendu après rotation./td td align=center valign=top width=618a href=http://lh6.ggpht.com/-wSJDibhiRno/U8V_M56lXJI/AAAAAAAAAnA/o_VxNmBiDDM/s1600-h/image%25255B16%25255D.pngimg alt=image border=0 height=354 src=http://lh6.ggpht.com/-j0JcN8ngIFs/U8V_NR2T6xI/AAAAAAAAAnE/XNkMHIEanww/image_thumb%25255B7%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=645 //a/td /tr /tbody/table p br / /ptable border=0 cellpadding=2 cellspacing=0 width=899tbody tr td valign=top width=251 pAvant de continuer une petite explication sur la requête utilisé précédemment :/p pfont face=CalibriSELECT st_force_collection( br /    st_geomFromText br /    ( br /        /fontfont face=Calibrifont color=#0000ff'POLYHEDRALSURFACE( br /        ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), br /        ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), br /        ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), br /        ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)), br /        ((1 0 0, 1 1 0, 1 1 1, 1 0 1, 1 0 0)), br /        ((1 1 0, 0 1 0, 0 1 1, 1 1 1, 1 1 0)) br /        )'/font br /    ) br /)/font/p /td td valign=top width=646Comme vous avez du le remarquer la fonction ST_GeomFromText est encadré par la fonction ST_Force_Collection. Pourquoi rajouter cette fonction. Si vous exécuter cette requête sous pgAdmin III en encadrant le tout par ST_AsText vous obtenez comme résultat ceci : br /font color=#0000ffGEOMETRYCOLLECTION Z ( br /POLYGON Z ((0 0 0,0 1 0,1 1 0,1 0 0,0 0 0)), br /POLYGON Z ((0 0 0,0 0 1,0 1 1,0 1 0,0 0 0)), br /POLYGON Z ((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)), br /POLYGON Z ((0 0 1,1 0 1,1 1 1,0 1 1,0 0 1)), br /POLYGON Z ((1 0 0,1 1 0,1 1 1,1 0 1,1 0 0)), br /POLYGON Z ((1 1 0,0 1 0,0 1 1,1 1 1,1 1 0)))/font br /Nous sommes passé d’une géométrie de type POLYHEDRALSURFACE à une géométrie de type GEOMETRYCOLLECTION Z contenant des POLYGON Z, mais rappelez vous une géométrie de type POLYHEDRALSURFACE est aussi une collection de POLYGON donc jusque la tout va bien. br /Revenons à la question initiale pourquoi utiliser la fonction ST_Force_Collection, tout simplement parce la librairie GDAL que j’utilise dans mon développement ne reconnait pas encore les géométries de type POLYHDERALSURFACE. Cette astuce permet de contourner la limitation présente./td /tr /tbody/table p/p h3Visualiser une géométrie de type TIN/h3 table border=0 cellpadding=2 cellspacing=0 width=902tbody tr td valign=top width=264Dans le panneau Query copiez la requête suivante : br / pfont face=CalibriWITH res AS br /( br /SELECT st_polygon( br /    st_boundary( br /        (st_dump( br /            st_geomFromText br /            ( br /           /fontfont face=Calibrifont color=#0000ff'TIN( br /            ((0 0 0, 1 0 0, 0 1 0, 0 0 0)), br /            ((0 0 0, 1 0 0, 0 0 1, 0 0 0)), br /            ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), br /            ((0 0 1, 1 0 0, 0 1 0, 0 0 1)) br /            )'/font br /            ) br /        )).geom br /    ) br /    ,0 br /    ) as geom br /) br /SELECT st_forceCollection(st_collect(geom)) br /FROM res/font/p /td td align=center valign=top width=636a href=http://lh6.ggpht.com/-EjpGa4wmOUs/U8V_OIhcg7I/AAAAAAAAAnM/95ljl6dnjd8/s1600-h/image%25255B22%25255D.pngimg alt=image border=0 height=354 src=http://lh5.ggpht.com/-iMEbWv_1wR8/U8V_OjKR0SI/AAAAAAAAAnU/e0RoV9Pi2OM/image_thumb%25255B9%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=645 //a/td /tr tr td valign=top width=264 pCliquez sur l’icone ‘emExecute query/em’/p Vous obtenez ce résultat après rotation. br / br //td td align=center valign=top width=636a href=http://lh5.ggpht.com/-Ttgy5ueJ03Y/U8V_PYBCDRI/AAAAAAAAAng/G7q2PI0oq7g/s1600-h/image%25255B25%25255D.pngimg alt=image border=0 height=354 src=http://lh6.ggpht.com/-sBlhFHhM-Kw/U8V_P8ER9mI/AAAAAAAAAno/lyCLc5z28Tc/image_thumb%25255B10%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=645 //a/td /tr /tbody/table br /br /table border=0 cellpadding=2 cellspacing=0 width=900tbody tr td valign=top width=244La requête utilisée nécessite une explication : br / pfont face=CalibriWITH res AS br /( br /SELECT st_polygon( br /    st_boundary( br /        (st_dump( br /            st_geomFromText br /            ( br /           /fontfont face=Calibrifont color=#0000ff'TIN( br /            ((0 0 0, 1 0 0, 0 1 0, 0 0 0)), br /            ((0 0 0, 1 0 0, 0 0 1, 0 0 0)), br /            ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), br /            ((0 0 1, 1 0 0, 0 1 0, 0 0 1)) br /            )'/font br /            ) br /        )).geom br /    ) br /    ,0 br /    ) as geom br /) br /SELECT st_forceCollection(st_collect(geom)) br /FROM res/font/p /td td valign=top width=654Comme pour la requête concernant une géométrie de type POLYHEDRALSURFACE, les géométries de type TIN ne sont pas encore reconnues par la librairie GDAL. Pour rappel une géométrie de type TIN est aussi une collection de TRIANGLE que ne reconnait pas la librairie GDAL ce qui explique la requête légèrement plus complexe. br /Si vous exécutez la requête suivante sous PgAdmin III : br / pSELECT St_AsText(st_force_collection( br /    st_geomFromText br /    ( br /         font color=#0000ff'TIN( br /            ((0 0 0, 1 0 0, 0 1 0, 0 0 0)), br /            ((0 0 0, 1 0 0, 0 0 1, 0 0 0)), br /            ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), br /            ((0 0 1, 1 0 0, 0 1 0, 0 0 1)) br /            )/font' br /    )) br /) br //p pVous obtenez ceci :/p pfont color=#0000ffGEOMETRYCOLLECTION Z ( br /TRIANGLE Z ((0 0 0,1 0 0,0 1 0,0 0 0)), br /TRIANGLE Z ((0 0 0,1 0 0,0 0 1,0 0 0)), br /TRIANGLE Z ((0 0 0,0 0 1,0 1 0,0 0 0)), br /TRIANGLE Z ((0 0 1,1 0 0,0 1 0,0 0 1)))/font/p pQue ne reconnait pas la librairie GDAL, ce qui explique la première partie de la requête qui recrée des géométries de type POLYGON à partir des géométries de type TRIANGLE. La seconde partie de la requête (ou l’on retrouve la fonction ST_Force_Collection) recrée une GEOMETRYCOLLECTION Z contenant des POLYGON Z donc interprétable par la librairie GDAL./p pPour simplifier les requêtes sur des géométries de type TIN, la création d’une fonction opérant la transformation me parait indispensable./p /td /tr /tbody/table h2 /h2 h3Fonction passant d’une géométrie de type TIN à une géométrie de type GEOMETRYCOLLECTION Z/h3 table border=1 cellpadding=2 cellspacing=0 width=853tbody tr td valign=top width=851 pfont color=#009500/font/p pfont color=#009500 face=Calibri size=3-- Function: ST_TinToGeomCollection(geometry, INTEGER)/font/p pfont color=#009500 face=Calibri size=3-- DROP FUNCTION ST_TinToGeomCollection(geometry, INTEGER);/font/p pfont face=Calibrifont size=3font color=#0000ffCREATE OR REPLACE FUNCTION /fontST_TinToGeomCollection(geometry, integer) br /  font color=#0000ffRETURNS/font geometry AS br /$BODY$ br /font color=#0000ffDECLARE/font br /    sql font color=#0000fftext/font; br /    rec font color=#0000ffrecord/font; br /font color=#0000ffBEGIN/font  br /    sql:=/font/fontfont face=Calibrifont size=3font color=#9c85c0'WITH res AS br /         ( br /          SELECT st_polygon(st_boundary((st_dump(geometry('||quote_literal($1::text)||'))).geom),'||$2||') as geom br /          ) br /         SELECT st_forceCollection(st_collect(geom)) as geom FROM res/font'; br /    font color=#0000ffFOR/font rec font color=#0000ffIN EXECUTE/font sqlfont color=#0000ff LOOP/font br /       font color=#0000ffRETURN/font rec.geom; br /    /font/fontfont face=Calibrifont size=3font color=#0000ffEND LOOP; br /END/font; br /$BODY$ br /  font color=#0000ffLANGUAGE/font plpgsql font color=#0000ffVOLATILE STRICT/font br /  font color=#0000ffCOST/font 100; br /font color=#0000ffALTER FUNCTION /fontST_TinToGeomCollection(geometry,integer) br /  font color=#0000ffOWNER/font TO postgres; br /font color=#0000ffGRANT EXECUTE ON FUNCTION/font ST_TinToGeomCollection(geometry, integer) font color=#0000ffTO/font public; br /font color=#0000ffGRANT EXECUTE ON FUNCTION/font ST_TinToGeomCollection(geometry, integer) font color=#0000ffTO/font postgres; br //font/font/p /td /tr /tbody/table pVous allez créer la fonction dans votre base de données 3D :/p ul liCopier le contenu du cadre ci-dessus et collez dans la fenêtre de requêtes de PgAdmin III /li lilancez l’exécution, la fonction est créée. /li /ul pla requête pour l’affichage de géométrie de type TIN devient alors:/p pselect st_astext(ST_TinToGeomCollection( br /st_geomFromText br /            ( br /            font color=#0000ff'TIN( br /            ((0 0 0, 1 0 0, 0 1 0, 0 0 0)), br /            ((0 0 0, 1 0 0, 0 0 1, 0 0 0)), br /            ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), br /            ((0 0 1, 1 0 0, 0 1 0, 0 0 1)) br /            )'/font br /            ) ,0)) br /le second paramètre de la fonction ST_TinToGeomCollection étant le SRID de la géométrie, 4326 par exemple si vous êtes dans un système de coordonnées WGS84. Si vous ne le connaissez pas saisissez la valeur 0./p h3Affichage de données dans une base 3DCityDB contenant des données au format CityGML/h3 table border=0 cellpadding=2 cellspacing=0 width=900tbody tr td valign=top width=462Dans le panneau Query copiez la requête suivante : br / pfont face=CalibriWITH wallsurface as br /( br /SELECT a.id,c.root_id,st_collect(c.geometry) AS g,'255:128:0'::text AS rgb br /FROM building a,thematic_surface b, surface_geometry c br /WHERE b.building_id=a.id br /AND b.type='WallSurface' br /AND c.root_id=b.lod2_multi_surface_id br /GROUP BY a.id,c.root_id br /), roofsurface as br /( br /SELECT a.id,c.root_id,st_collect(c.geometry) AS g,'255:0:0'::text AS rgb br /FROM building a,thematic_surface b, surface_geometry c br /WHERE b.building_id=a.id br /AND b.type='RoofSurface' br /AND c.root_id=b.lod2_multi_surface_id br /GROUP BY a.id,c.root_id br /) br /select id,root_id,g as geom,rgb br /from wallsurface br /union all br /select id,root_id,g as geom,rgb br /FROM roofsurface br /ORDER BY id/font/p /td td valign=top width=436a href=http://lh4.ggpht.com/-AJ3ijmnifnA/U8V_Qdb9_fI/AAAAAAAAAnw/RfZezblhmhs/s1600-h/image%25255B28%25255D.pngimg alt=image border=0 height=354 src=http://lh5.ggpht.com/-4I7rdTjrOyM/U8V_Q_DQ1nI/AAAAAAAAAn4/WXI-xZAxzgY/image_thumb%25255B11%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=645 //a/td /tr tr td valign=top width=462 pCliquez sur l’icone ‘emExecute query/em’/p /td td valign=top width=436a href=http://lh3.ggpht.com/-LSTbXuyjQJM/U8V_R4cqj-I/AAAAAAAAAoA/wGclA01nzOE/s1600-h/image%25255B31%25255D.pngimg alt=image border=0 height=354 src=http://lh3.ggpht.com/--lo9Yi4TVpw/U8V_StTbywI/AAAAAAAAAoI/3eVYyQy_PHE/image_thumb%25255B12%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=627 //a/td /tr tr td valign=top width=462Dans la requête il est possible d’affecter une couleur à un type de géométrie, la syntaxe est le code R:G:B entre quotte suivi de AS rgb : br /’255:128:0’ AS rgb  (wallsurface) br /‘255:0:0’     AS rgb  (rootsurface)/td td valign=top width=436a href=http://lh3.ggpht.com/-1xReZRS7Oik/U8V_TaywzuI/AAAAAAAAAoQ/htwTMYz8-8E/s1600-h/image%25255B37%25255D.pngimg alt=image border=0 height=354 src=http://lh3.ggpht.com/-uZRA-mD50SQ/U8V_Uf6IIqI/AAAAAAAAAoY/rZzzw2iMVPE/image_thumb%25255B14%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=627 //a/td /tr /tbody/table h3 /h3 h3Interface/h3 table border=0 cellpadding=2 cellspacing=0 width=900tbody tr td valign=top width=247 /td td valign=top width=651 /td /tr tr td valign=top width=247a href=http://lh3.ggpht.com/-QkpX243OUqM/U8vlAV26jdI/AAAAAAAAAoo/LU8XRRQIE1k/s1600-h/image%25255B126%25255D.pngimg alt=image border=0 height=44 src=http://lh4.ggpht.com/-11QoPOpKJmk/U8vlBBp0fUI/AAAAAAAAAow/-CgwoySbjDI/image_thumb%25255B95%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=289 //a/td td valign=top width=651 /td /tr tr td valign=top width=247a href=http://lh4.ggpht.com/-GMmGbxTfg18/U8vlBozaWtI/AAAAAAAAAo0/U5Jtn09n90w/s1600-h/image%25255B129%25255D.pngimg alt=image border=0 height=40 src=http://lh4.ggpht.com/-9A3NYmgIRoU/U8vlCNUEliI/AAAAAAAAAo8/PUzWYexKoyQ/image_thumb%25255B96%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=40 //a/td td valign=top width=651Sortie de l’application./td /tr tr td valign=top width=247a href=http://lh4.ggpht.com/-lmHF3gKIR0A/U8vlCRNLa_I/AAAAAAAAApE/AvZYqvBPs5U/s1600-h/image%25255B132%25255D.pngimg alt=image border=0 height=40 src=http://lh5.ggpht.com/-8VUbOQM9XCI/U8vlDKoBG1I/AAAAAAAAApQ/BO0ev_nnt7I/image_thumb%25255B97%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=39 //a/td td valign=top width=651Connexion à une base de données./td /tr tr td valign=top width=247 /td td valign=top width=651 /td /tr tr td valign=top width=247a href=http://lh3.ggpht.com/-4viIC6nFvSE/U8vlDuudiJI/AAAAAAAAApY/p7STE48wOQk/s1600-h/image%25255B3%25255D.pngimg alt=image border=0 height=61 src=http://lh3.ggpht.com/-uPaJJkU4bas/U8vlEU8O0oI/AAAAAAAAApg/DTCfFzmzfIA/image_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=289 //a/td td valign=top width=651Panneau Requête/td /tr tr td valign=top width=248a href=http://lh3.ggpht.com/-RF_c9-V8VjE/U8vlExRgY9I/AAAAAAAAApk/FyCqSx8HIAU/s1600-h/image%25255B42%25255D.pngimg alt=image border=0 height=24 src=http://lh4.ggpht.com/-eNnV0rqJH0k/U8vlFRCnEoI/AAAAAAAAApw/XE7ArI7VLxg/image_thumb%25255B17%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=22 //a/td td valign=top width=650Remet à blanc la fenêtre de requêtes/td /tr tr td valign=top width=249a href=http://lh6.ggpht.com/-u1hlplDH9iY/U8vlFx8P-oI/AAAAAAAAAp4/aUr8ifu_Jg4/s1600-h/image%25255B12%25255D.pngimg alt=image border=0 height=23 src=http://lh5.ggpht.com/-9cX1GzatO_U/U8vlGmHHnbI/AAAAAAAAAqA/4KFS4D6IIV8/image_thumb%25255B3%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=649Ouvre un fichier requête, qui ne doit contenir qu’une seule requête./td /tr tr td valign=top width=250a href=http://lh5.ggpht.com/-MLdFukgxklY/U8vlHLUJn2I/AAAAAAAAAqE/5y3G_ATRzkI/s1600-h/image%25255B15%25255D.pngimg alt=image border=0 height=24 src=http://lh6.ggpht.com/-rBFVCS8JoOY/U8vlHhEQ4fI/AAAAAAAAAqQ/UvBf6sOYLJ8/image_thumb%25255B4%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=648Exécution de la requête./td /tr tr td valign=top width=251a href=http://lh6.ggpht.com/-EA7Qi5Oco0E/U8vlIMHuelI/AAAAAAAAAqU/Ouv9gCJxq0c/s1600-h/image%25255B44%25255D.pngimg alt=image border=0 height=24 src=http://lh4.ggpht.com/-zX3sPacR3V4/U8vlIn7GlzI/AAAAAAAAAqg/UVTbBy4gd7o/image_thumb%25255B19%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=23 //a/td td valign=top width=648Collapse le panneau sur la gauche./td /tr tr td valign=top width=251 /td td valign=top width=648 /td /tr tr td valign=top width=251a href=http://lh3.ggpht.com/--UPrrHfaXKU/U8vlJaeyiBI/AAAAAAAAAqo/yaZCfqnDTbE/s1600-h/image%25255B18%25255D.pngimg alt=image border=0 height=60 src=http://lh4.ggpht.com/-ncZZ4yhwNlU/U8vlJ-LtjAI/AAAAAAAAAqs/ObK1HZJZCcw/image_thumb%25255B5%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=289 //a/td td valign=top width=648Panneau affichage 3D/td /tr tr td valign=top width=251a href=http://lh4.ggpht.com/-kM8o4y5Nn3o/U8vlKrpKyAI/AAAAAAAAAq4/eV2Te0liG3Q/s1600-h/image%25255B53%25255D.pngimg alt=image border=0 height=21 src=http://lh5.ggpht.com/-oSA-vOdzIUs/U8vlLd5MJDI/AAAAAAAAArA/IMRQGwY28OU/image_thumb%25255B28%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=648Change la cuouleur du fond, Blanc ou Noir./td /tr tr td valign=top width=251a href=http://lh3.ggpht.com/-MTNBEHyzNzo/U8vlLqg1tMI/AAAAAAAAArE/X2ickXwjTmE/s1600-h/image%25255B56%25255D.pngimg alt=image border=0 height=22 src=http://lh3.ggpht.com/-vRPgvV7nQyM/U8vlMFTX4rI/AAAAAAAAArQ/CrfrslYFBgw/image_thumb%25255B31%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=648Zoom Full./td /tr tr td valign=top width=251a href=http://lh5.ggpht.com/-Vp5LBtBKUuE/U8vlM3MyfCI/AAAAAAAAArY/3jlTFY5QWN8/s1600-h/image%25255B30%25255D.pngimg alt=image border=0 height=24 src=http://lh4.ggpht.com/-Wvep31h75Sk/U8vlNT7bxqI/AAAAAAAAArc/_10MHceFawU/image_thumb%25255B9%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=25 //a/td td valign=top width=648Zoom Plus./td /tr tr td valign=top width=251a href=http://lh3.ggpht.com/-BtLPP0Z0C1Y/U8vlNo8dRlI/AAAAAAAAArk/AKfdX3XBqnY/s1600-h/image%25255B33%25255D.pngimg alt=image border=0 height=24 src=http://lh4.ggpht.com/-CSIkOzhVg78/U8vlOOYQM6I/AAAAAAAAArw/2vJh2c0ciBg/image_thumb%25255B10%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=648Zoom Moins./td /tr tr td valign=top width=251a href=http://lh5.ggpht.com/-UciVDslVs_A/U8vlOuszKTI/AAAAAAAAAr4/4U8664fKxDM/s1600-h/image%25255B57%25255D.pngimg alt=image border=0 height=25 src=http://lh4.ggpht.com/-6bRnH0rnCec/U8vlPTsX1iI/AAAAAAAAAsA/Q0m74Tkg9vA/image_thumb%25255B32%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=648Efface le contenu de la fenêtre de rendu, toutes les géométries précédemment chargées sont supprimées./td /tr tr td valign=top width=251 /td td valign=top width=648 /td /tr tr td valign=top width=251a href=http://lh5.ggpht.com/-Y1w__dsjGOU/U8vlPharctI/AAAAAAAAAsE/m7DpNZbO3Ow/s1600-h/image%25255B117%25255D.pngimg alt=image border=0 height=108 src=http://lh6.ggpht.com/-wja7avA-dAY/U8vlQOH-JCI/AAAAAAAAAsQ/x--Uza5TrbM/image_thumb%25255B90%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=287 //a/td td valign=top width=648Panneau données attributaires/td /tr tr td valign=top width=251a href=http://lh4.ggpht.com/-etCZcy9ADqo/U8vlQmZ-iKI/AAAAAAAAAsU/zNhvAnwFR0Q/s1600-h/image%25255B123%25255D.pngimg alt=image border=0 height=23 src=http://lh6.ggpht.com/-5HLQ6J-FZLY/U8vlRP2-6fI/AAAAAAAAAsc/-QvBInW7hFI/image_thumb%25255B94%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=24 //a/td td valign=top width=648Collapse le panneau sur le bas./td /tr tr td valign=top width=251 /td td valign=top width=648 /td /tr tr td valign=top width=251 /td td valign=top width=648 /td /tr /tbody/table     h1 table border=0 cellpadding=2 cellspacing=0 width=896tbody tr td valign=top width=116a href=http://lh6.ggpht.com/-x58DarPgEA8/U8vlRnqkyeI/AAAAAAAAAsk/FJlVbpMYFww/s1600-h/image%25255B137%25255D.pngimg alt=image border=0 height=105 src=http://lh4.ggpht.com/-j8sLfOxeh-U/U8vlSmvuSkI/AAAAAAAAAsw/Mw2SC3g3594/image_thumb%25255B100%25255D.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image width=102 //a/td td valign=bottom width=778onclusion./td /tr /tbody/table /h1 pCe billet met à votre disposition un outil permettant de visualiser des géométries 3D stockées dans une base de données PostGIS 2.0 ou supérieure. Il me reste à implémenter l’affichage des points et des lignes./p pToutes suggestions d’amélioration seront les bienvenues, j’attends vos retours./p
Categories: OSGeo Planet

A GeoSpatial World: PostGIS 3D Viewer introduction

OSGeo Planet - Sun, 2014-07-20 16:12
p /p h1 table border=0 cellpadding=2 cellspacing=0 width=777tbody tr td valign=bottom width=102a href=http://lh3.ggpht.com/-uf_WlDkqNLk/U8vn2mzNXAI/AAAAAAAAAs8/4B4khZo7LLc/s1600-h/image_thumb178%25255B2%25255D.pngimg alt=image_thumb178 border=0 height=110 src=http://lh5.ggpht.com/-rAmqR7Y8fR8/U8vn3HvV_yI/AAAAAAAAAtE/sy3mZ1sxcJs/image_thumb178_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image_thumb178 width=104 //a/td td valign=bottom width=673font size=7n viewer 3D pour PostGIS/font/td /tr /tbody/table /h1 h6 table border=0 cellpadding=2 cellspacing=0 width=828tbody tr td width=297a href=http://lh4.ggpht.com/-jHzcViah4nY/U8vn3_JZbOI/AAAAAAAAAtI/UqKvs0vTKrc/s1600-h/image_thumb7%25255B1%25255D%25255B2%25255D.pngimg alt=image_thumb7[1] border=0 height=119 src=http://lh4.ggpht.com/-dAh1CkASr40/U8vn4VCLP7I/AAAAAAAAAtU/vfuTGs-y4VE/image_thumb7%25255B1%25255D_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image_thumb7[1] width=240 //a/td td width=529a href=http://lh5.ggpht.com/-TmOPqB23kSo/U8vn5jjHaLI/AAAAAAAAAtc/Q-kw8CaMSKg/s1600-h/pg3DViewer_title6_thumb8%25255B2%25255D.pngimg alt=pg3DViewer_title6_thumb8 border=0 height=530 src=http://lh3.ggpht.com/-rn2diSmOCWY/U8vn74fY3II/AAAAAAAAAtk/4LKTouP_hCo/pg3DViewer_title6_thumb8_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=pg3DViewer_title6_thumb8 width=357 //a/td /tr /tbody/table /h6 h6 /h6 h1 table border=0 cellpadding=2 cellspacing=0 width=669tbody tr td valign=bottom width=103a href=http://lh4.ggpht.com/-CAUG-01y2FE/U8voehrWHhI/AAAAAAAAAts/AvalDxzrN78/s1600-h/image_thumb175%25255B2%25255D.pngimg alt=image_thumb175 border=0 height=110 src=http://lh4.ggpht.com/-qgU4fN7jBI4/U8vofXzv6rI/AAAAAAAAAt0/tyy1NDYdEbQ/image_thumb175_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image_thumb175 width=102 //a/td td valign=bottom width=564font size=7ntroduction/font/td /tr /tbody/table /h1 pAvec la version 2.0 PostGIS est entré dans le monde de la 3D, il est possible de stocker des géométries 3D avec l’ajout de la coordonnée Z dans toutes les géométries existantes et de stocker des géométries volumétriques avec l’introduction de deux nouveaux type  :/p table border=0 cellpadding=2 cellspacing=0 width=776tbody tr td width=476 ul liTIN(Triangulated Irregular Network, une collection de TRIANGLE) /li /ul /td td width=298a href=http://lh4.ggpht.com/-KPPK5o4s7YI/U8vojbu3xTI/AAAAAAAAAt4/DWAOvVSBLeE/s1600-h/image_thumb13%25255B2%25255D.pngimg alt=image_thumb13 border=0 height=172 src=http://lh5.ggpht.com/-PAlsvehcbXk/U8voj7LerXI/AAAAAAAAAuA/TBc3t_HfVkk/image_thumb13_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image_thumb13 width=220 //a/td /tr tr td width=476 ul liPOLYHEDRALSURFACE (une collection de POLYGON) /li /ul /td td width=298a href=http://lh6.ggpht.com/-YaTmoJdNr_c/U8vokogUARI/AAAAAAAAAuE/nMmGT14T3y8/s1600-h/image_thumb101%25255B2%25255D.pngimg alt=image_thumb101 border=0 height=217 src=http://lh6.ggpht.com/-NymYtlXetcI/U8volZKlv2I/AAAAAAAAAuQ/Om8jrPG2nCA/image_thumb101_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image_thumb101 width=236 //a/td /tr /tbody/table pCela fait déjà un an que la création d’un viewer pour visualiser les géométries 3D de PostGIS me trottait dans la tête suite à un échange avec Claus Nagel et Felix Kunde de virtualcitySYSTEMS à propos de l’outil d’import du format CityGML que j’avais réalisé a href=http://ageoguy.blogspot.fr/2012/07/citygml-vers-postgis-20.html target=_blankCityGML vers PostGIS 2.0/a , ils m’avaient conseillé alors de me diriger vers le développement d’un viewer 3D. Lorsque récemment j’ai repris contact avec eux pour leur parler de mon développement en cours, ils ont accueilli la nouvelle avec enthousiasme et ont bénéficié de versions beta, ce qui m’a grandement aidé pour mes choix dans la finalisation de mon application./p pAujourd’hui la 3D est de plus en plus présente dans le monde SIG avec le format CityGML et dans le monde de l’architecture avec le format IFC, importer ces formats dans une base de données PosgtgreSQL/PostGIS est une démarche naturelle car cela apporte toute la puissance de traitement des bases de données spatiale pour la gestion de ces données. /p table border=0 cellpadding=2 cellspacing=0 width=854tbody tr td valign=top width=852Pour le format CityGML la société virtualcitySYSTEMS met à disposition un schéma de base de données Open Source et gratuit pour le stockage et la gestion de ‘em3D City Models/em’. Ce schéma de base de données est le reflet du modèle de données CityGML. Les données peuvent être importées via un outil d’import/export . /td /tr /tbody/table h3Affichage de données CityGML dans le viewer 3D/h3 pa href=http://lh5.ggpht.com/-5lFeTR816vw/U8vp1khjtWI/AAAAAAAAAuk/Yu6BQ4PPqbM/s1600-h/image_thumb14%25255B6%25255D%25255B2%25255D.pngimg alt=image_thumb14[6] border=0 height=354 src=http://lh4.ggpht.com/-mH1Ws7TCZwI/U8vp28I1ErI/AAAAAAAAAus/jxpEe1hHLdU/image_thumb14%25255B6%25255D_thumb.png?imgmax=800 style=border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px; title=image_thumb14[6] width=627 //a/p p /p pa href=http://ageoguy.blogspot.fr/2014/07/postgis-3d-viewer.html target=_blankContinuer la lecture/Continue reading “PostGIS 3D Viewer”/a/p
Categories: OSGeo Planet

OSGeo News: ISPRS joins Geo for All

OSGeo Planet - Sat, 2014-07-19 12:30
Categories: OSGeo Planet
Syndicate content