<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5176900881057973693</id><updated>2012-02-01T06:56:26.871-08:00</updated><category term='Gliders'/><category term='GIS'/><category term='Enteprise Services'/><category term='GeoNetwork'/><category term='Giannecchini'/><category term='openlayers'/><category term='WPS'/><category term='BlueMarble'/><category term='SDI'/><category term='imageio'/><category term='Hibernate'/><category term='Tuna Atlas'/><category term='gwt'/><category term='tomcat'/><category term='geotoos'/><category term='GDAL'/><category term='Oracle'/><category term='demo'/><category term='Aggregate'/><category term='asita'/><category term='IDRIS'/><category term='geoSDI-ERA'/><category term='OGC'/><category term='GeoServer'/><category term='geowebcache'/><category term='tiff'/><category term='auditing'/><category term='job'/><category term='GeoBatch'/><category term='warp'/><category term='GetMap'/><category term='WFS'/><category term='wms'/><category term='Formazione'/><category term='contouring'/><category term='portal'/><category term='FOSS4G-IT'/><category term='FIGIS'/><category term='reprojection'/><category term='spatial database'/><category term='polygon extract'/><category term='JEE'/><category term='WMS TIME'/><category term='IST'/><category term='share'/><category term='Enterprise Support'/><category term='standingcloud'/><category term='g8'/><category term='OSGEO'/><category term='ImageServer'/><category term='gvSIG'/><category term='workshop'/><category term='SpatioTemporal'/><category term='google maps'/><category term='enterprise services'/><category term='JPEG2000'/><category term='GeoTools'/><category term='Dateline'/><category term='FAO'/><category term='geotiff'/><category term='GeoSolutions'/><category term='Consulenza'/><category term='osgis'/><category term='cloud'/><category term='FOSS4G'/><category term='Java'/><category term='DataStore'/><category term='Raster'/><category term='sql server'/><category term='Spatial Data Infrastructure'/><category term='TIME'/><category term='grass'/><category term='gfoss'/><category term='geospatial'/><category term='JAI'/><category term='GeoRepository'/><category term='JP2K'/><category term='imageio-ext'/><category term='MetOc'/><category term='Professional Services'/><category term='imageMosaic'/><category term='Fishery'/><category term='GEO'/><category term='geosolut'/><category term='Professional Support'/><category term='geoprocessing'/><category term='JBOSS'/><category term='OpenSDI'/><category term='Training'/><category term='Commercial Support'/><category term='SUPSI'/><category term='Meteo'/><category term='Education'/><category term='DBMS'/><title type='text'>GeoSolutions' Blog</title><subtitle type='html'>Building GeoSpatial ICT solutions</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default?start-index=101&amp;max-results=100'/><author><name>afabiani</name><uri>http://www.blogger.com/profile/14092074304386635527</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>121</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6341035769944309795</id><published>2012-01-30T07:51:00.000-08:00</published><updated>2012-01-30T07:51:23.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='Spatial Data Infrastructure'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><category scheme='http://www.blogger.com/atom/ns#' term='DBMS'/><title type='text'>Developer's Corner: Introducing Database Level Security in GeoServer</title><content type='html'>&lt;div&gt;&lt;span style="text-align: left;"&gt;During our work we support manu GeoServer Enterprise installations which pull data from a spatial database of some sort, normally via a connection pool, a tool that keeps database connections around so that we don't have to open and close them at every request (something that could be very expensive).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The pool accesses the database via a shared user, that all GeoServer requests end up using. Some requests only require data reading (WMS GetMap), others modify data (WFS Transaction), some even create new tables (RESTConfig data uploading for example). &lt;/div&gt;&lt;div&gt;The pool user must be able to perform all and any of the operations that GeoServer needs, meaning that more often than not it has very wide powers of what it can do on the database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;GeoServer built in security, as well as extensions such as GeoRepository, allow to control what specific users can do and shield the database from security issues.&lt;/div&gt;&lt;div&gt;However in some enviroment the preferred security management policy is to have security restrictions operate at the database level instead, with the pool user being given minimal rights (normally, to list and describe the tables, but without any actual access to them). This has some advantages:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;the security is setup just once for the variety of applications that might access the database&lt;/li&gt;&lt;li&gt;each user can actually perform only the operations that he/she was allowed to, regardless of eventual bugs/security holes in the application level software &lt;/li&gt;&lt;li&gt;leverages the DBA expertise&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; recently implemented the ability to use DBMS session startup and teardown scripts that can be used to alter the user accessing the database for the duration of the current request, turning back to the pool user when the request is complete.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;These commands can be specified in the configuration User Interface while setting up the data store. For example, if we wanted to have each and every PostgreSQL session use the credentials of the current GeoServer user we'd use the following setup:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://docs.geoserver.org/latest/en/user/_images/postgresqlSession.png"&gt;&lt;img alt="" border="0" src="http://docs.geoserver.org/latest/en/user/_images/postgresqlSession.png" style="cursor: pointer; display: block; height: 265px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 437px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Different databases will of course use different commands, or custom, in house package calls, to setup the current session user. See the GeoServer documentation for more details on how this new functionality can be used.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We'd like to thank &lt;span class="Apple-style-span" style="background-color: rgba(255, 255, 255, 0.917969); color: #1f497d; font-family: Calibri, sans-serif; font-size: 15px;"&gt;&lt;a href="http://www.astrium-geo.com/"&gt;Astrium GEO-Information Services&lt;/a&gt; &lt;/span&gt;for sponsoring this improvement and sharing it with the GeoServer and GeoTools communities.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Application security is certainly one of the topics we like to deal with. There is of course a lot more to explore and improve, this topic is both rich and interesting. Want for example CAS or Shibboleth security in your GeoServer intallation? Maybe integration with Active Directory? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Talk to us first!&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6341035769944309795?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6341035769944309795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6341035769944309795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6341035769944309795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6341035769944309795'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2012/01/developers-corner-introducing-database.html' title='Developer&apos;s Corner: Introducing Database Level Security in GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio LU, Italia</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1510431721944013868</id><published>2012-01-26T02:42:00.000-08:00</published><updated>2012-01-26T02:42:26.684-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enterprise services'/><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='sql server'/><category scheme='http://www.blogger.com/atom/ns#' term='spatial database'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='DBMS'/><title type='text'>Improving GeoServer SQL Server support</title><content type='html'>Dear All,&lt;br /&gt;&lt;div&gt;in recent times we &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;were hired&lt;/a&gt; to improve &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; SQL Server support story.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The SQL Server store was created and maintained during spare time by Justin DeOliveira, however due to lack of production usage, and work time to pour on it, it failed to reach to the same level of robustness and speed as the best supported stores, such as Oracle and PostGIS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Our work this week tried to close this gap with a number of little and big improvements that make the code run faster and in a more reliable way:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;add support for connection validation (very important for SQL Azure, which is very keen on closing pooled connections in your face)&lt;/li&gt;&lt;li&gt;use binary encoding, instead of text, to transfer geometries from the database&lt;/li&gt;&lt;li&gt;support for data paging at the database level&lt;/li&gt;&lt;li&gt;make sure the rich database test suite we have in &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt; is fully implented for SQL server, ensuring good support for use cases such as dynamic SQL views, proper date/time encoding in filters, and the like, both on the development series and on the stable series&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Our develoment focused on testing the code against both SQL Server 2008 and SQL Azure. SQL Azure is the SQL database one can use in the Microsoft Azure cloud system: while it does look a lot like SQL Server 2008, it does not quite behave the same way in all cases, and requires a specific JDBC driver to work properly.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are still some improvements missing on the table, such as geography columns support, but we're sure you'll be able to get more out of a production usage of GeoServer and SQL Server now.&lt;br /&gt;&lt;br /&gt;Interested in sponsoring further improvements? Looking for professional support service that deliver for your group?&amp;nbsp;&lt;a href="http://www.geo-solutions.it/contact/"&gt;&lt;b&gt;Let us know!&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img height="66" src="http://4.bp.blogspot.com/-bWDz2tNFFAw/TyEtShEXfXI/AAAAAAAABIU/Ntsii6WwYgw/s400/1600x500_ita.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1510431721944013868?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1510431721944013868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1510431721944013868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1510431721944013868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1510431721944013868'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2012/01/improving-geoserver-sql-server-support.html' title='Improving GeoServer SQL Server support'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-bWDz2tNFFAw/TyEtShEXfXI/AAAAAAAABIU/Ntsii6WwYgw/s72-c/1600x500_ita.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio LU, Italia</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1053737250526669839</id><published>2012-01-23T07:53:00.000-08:00</published><updated>2012-01-23T09:53:30.358-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>GWT-OpenLayers release 0.7</title><content type='html'>&lt;div&gt;Dear All,&lt;br /&gt;we would like to inform you that the new&amp;nbsp;release 0.7 for the&amp;nbsp;&lt;a href="https://bitbucket.org/gwtopenlayers/gwt-openlayers"&gt;GWT-OpenLayers&lt;/a&gt;&amp;nbsp;project is available.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The releases is ready for the download and can be found &lt;a href="https://bitbucket.org/gwtopenlayers/gwt-openlayers/downloads"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Notable improvements with this release are as follows:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Upgrade to GWT 2.4.0&lt;/li&gt;&lt;li&gt;Support to Google Maps V3&lt;/li&gt;&lt;li&gt;Improved source code formatting&lt;/li&gt;&lt;li&gt;Added and fixed several base methods and bindings such WMS Params, Layer methods&lt;/li&gt;&lt;/ul&gt;Alessio Fabiani has taken care of the 0.7 release as an active committer and administrator of the project.&lt;br /&gt;We would like to thank all the other committers for their dedication and hard work!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; Team.&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1053737250526669839?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1053737250526669839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1053737250526669839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1053737250526669839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1053737250526669839'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2012/01/gwt-openlayers-release-07.html' title='GWT-OpenLayers release 0.7'/><author><name>afabiani</name><uri>http://www.blogger.com/profile/14092074304386635527</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio LU, Italia</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5634731448309402286</id><published>2012-01-17T03:10:00.000-08:00</published><updated>2012-01-17T03:10:11.311-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>BRISEIDE Project, Geoserver, GeoNetwork and GeoBatch for the management of dynamic MetOc data</title><content type='html'>Dear All,&lt;br /&gt;In this post I wanted to talk about the work we are doing for the &lt;a href="http://www.briseide.eu/"&gt;BRISEIDE&lt;/a&gt; european project.&lt;br /&gt;&lt;br /&gt;The ambitious aim of the project, as stated on its &lt;a href="http://www.briseide.eu/"&gt;website&lt;/a&gt;, is the delivery of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;time-aware extension of &lt;b&gt;MetOc &lt;/b&gt;data models developed in the context of previous/ongoing EU INSPIRE related projects (e.g. in the context of GMES, eContentPlus)&lt;/li&gt;&lt;li&gt;application (e.g. Civil Protection) based on the integration of existing, user operational information&lt;/li&gt;&lt;li&gt;value added services for spatio-temporal data management, authoring, processing, analysis and interactive visualisation&lt;/li&gt;&lt;/ul&gt;Within the context of the project, &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; will work under the leadership of &lt;a href="http://www.sinergis.it/"&gt;SinerGIS&lt;/a&gt; in order to provide near-real time ingestion, cataloging and publishing of meteorological data provided by the stakeholders to be used as inputs for running processes to perform, as an instance, fire propagation models in emergency situations.&lt;br /&gt;&lt;br /&gt;The infrastructure we are setting up is depicted in the deployment diagram here below. Basic building blocks are as follow:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; for providing WMS, WCS and WFS services with support for the TIME dimension. It is worth to point out that it will also provide WPS capabilities.&lt;/li&gt;&lt;li&gt;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;, for publishing metadata for all data with specific customizations for managing the TIME dimensions in the dataset (we are going to biriefly describe them later on)&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.codehaus.org/display/GEOBATCH/Geospatial+Batch+Engine"&gt;GeoBatch&lt;/a&gt;, for performing preprocessing and ingestion in near real time of data and related metadata with minimal human intervention.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-ZomnxUH9w_w/TchTyUXbBEI/AAAAAAAAAXw/ACQL1Sw7Z9w/s1600/Briseide_DG.jpg"&gt;&lt;img alt="** PLEASE DESCRIBE THIS IMAGE **" border="0" height="169" src="http://3.bp.blogspot.com/-ZomnxUH9w_w/TchTyUXbBEI/AAAAAAAAAXw/ACQL1Sw7Z9w/s320/Briseide_DG.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;For this project we have customized the metadata indexing (thanks &lt;a href="http://lucene.apache.org/java/docs/index.html"&gt;Lucene&lt;/a&gt;!) in &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; in order to be able to index meteorological model runs in terms of their run time as well as in term of their forecast times. Generally speaking the data we are dealing with is driven by a meterological model which produces daily a certain number of geophysical parameters with forecast valid for around 5 days, moreover some additional fire risk indexes are produced by processing these results in near real time. As days go by forecasts from different runs of the model are available as indicated in the picture below.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-cx25UHugHko/TcpaoyJdt2I/AAAAAAAAAYE/6oXXWxQxF8I/s1600/MetOcmodelterminology.jpg"&gt;&lt;img alt="** PLEASE DESCRIBE THIS IMAGE **" border="0" height="220" src="http://4.bp.blogspot.com/-cx25UHugHko/TcpaoyJdt2I/AAAAAAAAAYE/6oXXWxQxF8I/s320/MetOcmodelterminology.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;To achieve our gaols we have slightly customized the indexing configuration as well as the user interface in order to be able to make searches on run times and forecast times fast. If you are interested in having a look at one of the ISO metadata XML documents that we are publishing, here you can find an example &lt;a href="http://demo.geo-solutions.it/share/blog_material/template_out.xml"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Here below you can find a diagram depicting the automatic ingestion flow we have created for the BRISEIDE project (actually, one of the few we have created) using the &lt;a href="http://docs.codehaus.org/display/GEOBATCH/Geospatial+Batch+Engine"&gt;GeoBatch&lt;/a&gt; framework (we will soon release version 1.0 on which we are working in our own repository).&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-bYZyRzl8BNw/TcqGhL9vAII/AAAAAAAABFc/n3VVT4IzgrY/s1600/Briseide_Flow2.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5605440590921531522" name="BLOGGER_PHOTO_ID_5605440590921531522" src="http://4.bp.blogspot.com/-bYZyRzl8BNw/TcqGhL9vAII/AAAAAAAABFc/n3VVT4IzgrY/s320/Briseide_Flow2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;This flow makes extensive use of an orchestration Groovy script that implements specific business logic for the use case. Internally it also make use of various other atomic action for performing tasks like, publishing an ImageMosaic in &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; or its metadata in &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Incoming files are composed by a compressed set of &lt;i&gt;.asc&lt;/i&gt; (ascii images) files which are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Converted into re-tiled GeoTiff images&lt;/li&gt;&lt;li&gt;Embedded overviews are added to each image&lt;/li&gt;&lt;/ol&gt;The groovy script produces an &lt;b&gt;ImageMosaicCommand &lt;/b&gt;which is essentially an xml command which is sent to the &lt;b&gt;ImageMosaicAction &lt;/b&gt;which:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Check for the layer existence on the target&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;If success copy all the files to the target directory&lt;/li&gt;&lt;li&gt;Create the Store and the layer to contain the ImageMosaic&lt;/li&gt;&lt;li&gt;Configure the layer on the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;using desired parameters&lt;/li&gt;&lt;li&gt;Produce an XML file with the &lt;b&gt;ImageMosaic &lt;/b&gt;properties&lt;/li&gt;&lt;/ol&gt;The groovy script read the produced ImageMosaic output, enrich it with some other useful information then pass that object to the FreeMarkerAction which using a template and the passed data model will produce the xml metadata file (as described above).&lt;br /&gt;&lt;br /&gt;The GroovyScriptAction ends sending this file to the next action which is the &lt;b&gt;GeoNetworkAction &lt;/b&gt;which will send the metadata to the target&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&amp;nbsp;server using the desired (specified by configuration) options.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If you have questions about the work described in this post or if you want to know more about &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;our services&lt;/a&gt; could help your organization to reach its goals, do not hesitate to &lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5634731448309402286?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5634731448309402286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5634731448309402286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5634731448309402286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5634731448309402286'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/05/briseide-project-geoserver-geonetwork.html' title='BRISEIDE Project, Geoserver, GeoNetwork and GeoBatch for the management of dynamic MetOc data'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ZomnxUH9w_w/TchTyUXbBEI/AAAAAAAAAXw/ACQL1Sw7Z9w/s72-c/Briseide_DG.jpg' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio LU, Italia</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6066309710932794248</id><published>2012-01-10T00:38:00.000-08:00</published><updated>2012-01-10T00:38:51.540-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Commercial Support'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><title type='text'>GeoNetwork 2.6.4 con traduzione italiana disponibile!</title><content type='html'>Salve a tutti,&lt;br /&gt;dopo il ticket di rilascio di una versione di preview della localizzazione italiana per la versione di sviluppo 2.6.5 di &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; (si veda &lt;a href="http://bit.ly/wH1YCK"&gt;qui&lt;/a&gt; per maggiori informazioni), abbiamo effettuato il backport alla versione 2.6.4 stabile. Da &lt;a href="http://bit.ly/wv3qVy"&gt;questo indirizzo&lt;/a&gt; è possibile scaricarne il war. Questo war installerà &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; versione 2.6.4 con in più la localizzazione in italiano; la &lt;a href="http://geonetwork-opensource.org/"&gt;pagina principale&lt;/a&gt; porterà automaticamente alla versione italiana.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://bit.ly/wv3qVy"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-24OnrT4VZts/TwRJ80jyrjI/AAAAAAAABGU/9orSdjs8CBY/s200/Nulled-Scripts.png" width="200" /&gt;&lt;/a&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=5176900881057973693"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;La migrazione di installazioni esistenti sarà effettuata correttamente solo se la versione di partenza è una di quelle attualmente supportate da &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; standard, ossia 2.4.3, 2.6.0 o 2.6.1. Per le nuove installazioni i dati in italiano saranno normalmente caricati durante il setup del database di &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6066309710932794248?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6066309710932794248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6066309710932794248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6066309710932794248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6066309710932794248'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2012/01/geonetwork-264-con-traduzione-italiana.html' title='GeoNetwork 2.6.4 con traduzione italiana disponibile!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-24OnrT4VZts/TwRJ80jyrjI/AAAAAAAABGU/9orSdjs8CBY/s72-c/Nulled-Scripts.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio Viti in Piano Conca, 12, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.87829121188805 10.276604890823364</georss:point><georss:box>43.87793371188805 10.275987890823364 43.87864871188805 10.277221890823364</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5360609302520289327</id><published>2012-01-03T01:50:00.000-08:00</published><updated>2012-01-04T04:24:09.101-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='WFS'/><category scheme='http://www.blogger.com/atom/ns#' term='OGC'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>WFS for the masses: adding support for paging and sorting in GeoServer</title><content type='html'>&lt;div&gt;Today we are going to introduce you our latest contribution to &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;, WFS paging and sorting for retrieving features.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First off, let's take a step back and see what sorting and paging support is available in the official OGC protocols:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Neither WMS 1.1 nor WMS 1.3 (or SLD/SE for that matter), have any ability to order the results so that features are painted in a certain order. If features can be organized in categories filters and FeatureTypeStyle elements can do the trick, but that won't work over continous fields&lt;/li&gt;&lt;li&gt;Same goes for WPS 1.0, which can return significant amounts of vector data that might be useful to page over&lt;/li&gt;&lt;li&gt;WFS 1.0 does not support either, WFS 1.1 supports sorting, WFS 2.0 supports sorting and paging via the sortBy and startIndex/maxFeature parameters&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The last stable GeoServer release does not support WFS 2.0, and allows for sorting only on DBMS based stores. In our latest contribution to the stable series we removed all limitations concerning WFS paging and sorting support:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;WFS 1.0 and 1.1 can now support sorting on top of each and every store kind, using the sortBy parameter as a vendor extension&lt;/li&gt;&lt;li&gt;WFS 1.0 and 1.1 support paging on top of each and every store, using the startIndex/maxFeatures parameters&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Protocol and paging wise we back-ported the work added on trunk along with WFS 2.0 support, and then we merged in some previous work on generic sorting we did for the &lt;a href="http://geo-solutions.blogspot.com/2011/09/aggregate-and-republish-from-several.html"&gt;aggregating store&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Technically speaking, in case the store does not support sorting natively (e.g., shapefile) we gather the features into an optimized merge/sort algorithm that never keeps more than 1000 features in memory, and uses secondary storage to scale up to larger result sets.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But, enough talking, let's see some examples against the states demo layer, using the CSV as the output format for brevity.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;First ten features:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;http://localhost:8080/geoserver/topp/owsservice=WFS&amp;amp;version=1.0.0&amp;amp;request=GetFeature&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&amp;amp;typeName=topp:states&amp;amp;outputFormat=csv&amp;amp;propertyName=STATE_NAME,PERSONS&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&amp;amp;maxFeatures=10&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;FID,STATE_NAME,PERSONS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.1,Illinois,11430602&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.2,District of Columbia,606900&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.3,Delaware,666168&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.4,West Virginia,1793477&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.5,Maryland,4781468&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.6,Colorado,3294394&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.7,Kentucky,4551524&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.8,Kansas,2477574&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.9,Virginia,6180651&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.10,Missouri,5117073&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The next 10 features:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;http://localhost:8080/geoserver/topp/ows?service=WFS&amp;amp;version=1.0.0&amp;amp;request=GetFeature&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&amp;amp;typeName=topp:states&amp;amp;outputFormat=csv&amp;amp;propertyName=STATE_NAME,PERSONS&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&amp;amp;maxFeatures=10&amp;amp;startIndex=10&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;FID,STATE_NAME,PERSONS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.11,Arizona,3665228&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.12,Oklahoma,3145585&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.13,North Carolina,6628629&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.14,Tennessee,4829958&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.15,Texas,17122020&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.16,New Mexico,1379559&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.17,Alabama,4040587&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.18,Mississippi,2573216&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.19,Georgia,6457339&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.20,South Carolina,3486703&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The first ten states with most people (sort on PERSONS, descending):&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;http://localhost:8080/geoserver/topp/ows?service=WFS&amp;amp;version=1.0.0&amp;amp;request=GetFeature&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&amp;amp;typeName=topp:states&amp;amp;outputFormat=csv&amp;amp;propertyName=STATE_NAME,PERSONS&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&amp;amp;maxFeatures=10&amp;amp;sortBy=PERSONS%20D&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;FID,STATE_NAME,PERSONS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.47,California,29760021&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.39,New York,18235907&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.15,Texas,17122020&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.23,Florida,12937926&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.40,Pennsylvania,11881643&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.1,Illinois,11430602&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.48,Ohio,9980887&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.24,Michigan,9295297&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.43,New Jersey,7484736&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.13,North Carolina,6628629&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The second page of the above result set:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;http://localhost:8080/geoserver/topp/ows?service=WFS&amp;amp;version=1.0.0&amp;amp;request=GetFeature&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&amp;amp;typeName=topp:states&amp;amp;outputFormat=csv&amp;amp;propertyName=STATE_NAME,PERSONS&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;i&gt;&amp;amp;maxFeatures=10&amp;amp;startIndex=10&amp;amp;sortBy=PERSONS%20D&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;FID,STATE_NAME,PERSONS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.19,Georgia,6457339&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.9,Virginia,6180651&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.37,Massachusetts,6016425&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.44,Indiana,5544159&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.10,Missouri,5117073&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.49,Washington,4866692&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.14,Tennessee,4829958&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.30,Wisconsin,4796441&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.5,Maryland,4781468&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new'; font-size: x-small;"&gt;states.7,Kentucky,4551524&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These modifications are already available in the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.1.3 release.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is more work to be done in this area, ordering features before paiting them in WMS, and paging WPS results would both be nice additions. Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5360609302520289327?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5360609302520289327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5360609302520289327' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5360609302520289327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5360609302520289327'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/12/wfs-for-masses-adding-support-for.html' title='WFS for the masses: adding support for paging and sorting in GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3066746068487363914</id><published>2011-12-29T11:26:00.000-08:00</published><updated>2011-12-29T11:26:02.548-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Robust Clustering Solution for GeoServer</title><content type='html'>Dear All,&lt;br /&gt;in this post we'd like to introduce some work that we have performed in order to provide robust support support for clustered &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; deployments with an emphasis on publishing new layers in real-time.&lt;br /&gt;&lt;br /&gt;As you might know there are various approaches with &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; that can be used to implement a clustered deployment, based on different mixes of &lt;a href="http://docs.geoserver.org/latest/en/user/datadirectory/index.html"&gt;data directory&lt;/a&gt; sharing plus configuration reload. However, these techniques have intrinsic limitations therefore we decided to create a specific&lt;b&gt; &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&lt;/b&gt; &lt;b&gt;Clustering Extension&lt;/b&gt;  in order to overcome them. &lt;b&gt;It is worth to point out that what we are going to describe is designed to work with &lt;/b&gt;&lt;b&gt; &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; &lt;/b&gt;&lt;b&gt;2.1 stable series.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the picture below our approach is shown.  We propose a robust &lt;b&gt;Master/Slave&lt;/b&gt; approach which leverages on a Message Oriented Middleware (MOM) where:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Masters (yes, we can have more than one, read on...) receive changes to the internal configuration, persiste them on their own data directory but also forward them to the Slaves via the MOM&lt;/li&gt;&lt;li&gt;The Slaves do not accept changes to their configuration from eithe REST or the User Interface, but are configured to inject configuration changes disseminated by the Master(s) via the MOM&lt;/li&gt;&lt;li&gt;The MOM is used to make the Master and the Slave exhange messages in a durable fashion &lt;/li&gt;&lt;li&gt;Each Slave has its own data directory which it is responsible for keeping it aligned with the Master's one. In case a Slave goes down when it goes up again he might receive a bunch of messages to align its configuration to the Master's one.&lt;/li&gt;&lt;li&gt;A Node can be both Master and Slave at the same time, this means that &lt;b&gt;we don't have a single poinf of failure&lt;/b&gt;, the &lt;b&gt;Master &lt;/b&gt;itself&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-CzggNFCxEio/Tu9qgmnoLaI/AAAAAAAABEo/R6ap_ubn8Fs/s1600/JMSGeoServerClustermasterslave-GeoSmart.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="386" src="http://3.bp.blogspot.com/-CzggNFCxEio/Tu9qgmnoLaI/AAAAAAAABEo/R6ap_ubn8Fs/s400/JMSGeoServerClustermasterslave-GeoSmart.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt; &lt;/h1&gt;&lt;h2 dir="ltr"&gt; Improved Clustering in Action&lt;/h2&gt;In the following we provide a few additional technical details on our solution, describing a deployment which we use for our tests (as such, it is designed to show every possible combination as opposed to be a best practice for deploy). We will refer to the following picture.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-20h3Vd6SS2c/Tu9qhkxDBpI/AAAAAAAABEw/rybGnc2SvYE/s1600/JMSGeoServerGeoSmart.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="326" src="http://2.bp.blogspot.com/-20h3Vd6SS2c/Tu9qhkxDBpI/AAAAAAAABEw/rybGnc2SvYE/s400/JMSGeoServerGeoSmart.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This deployment is composed by:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A pure Master GeoServer(s), this instance can only send events to the topic.It cannot act as a slave&lt;/li&gt;&lt;li&gt;A set of Geoserver which can work as both Master and Slave. These instances can send and receive messages to/from the topic. They can work as Masters (sending message to other  subscribers) as well as Slaves (these instances are also subscribers of the  topic).&lt;/li&gt;&lt;li&gt;A set of pure Slaves GeoServer instances whic can only receive messages from the topic.&lt;/li&gt;&lt;li&gt;A set of MOM brokers so that each GeoServerinstance is configured with a set of available brokers  (failover). Each broker use the shared DB as persistence. Doing so if a  broker fails for some reason, messages can still be written and read  from the shared database.&lt;/li&gt;&lt;/ul&gt;We are now going to illustrate, step by step, how to publish a layer from a GeoTiff file using the GeoServer User Interface of the Pure Master instance. The resulting layer will be published on all the active GeoServers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Manually create the GeoTiff store using the User Interface:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="303px;" src="https://lh3.googleusercontent.com/SuajcCDLtuZQqcdUrYwYq2j1b04FiuOtmJa2c5I8hVzaQm_RC8iboFgIFsUfX_2Hr9LnnlmVH7SM2e_hvHIjl-eqwxzjjvako8g6ruX-uUZONQxrXNw" width="374px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Publish the layer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="150" src="https://lh4.googleusercontent.com/_trOMUCFEqZgeAH-FJFbm8NKH44LCogX3PBNxQMOXDuJL-q1xEIZn89XKHvIA8rtCNVzr2xTw1JybTQteWVD8BVnWShm2Emc1DsLe9CDIsNi196Bu78" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Click save and check results on the clients&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="375" src="https://lh3.googleusercontent.com/WV09J5aPfvKk_pWa6Vuazs98qN0WTgPANN83MLOuO4bCIaQuabnzZ5R7TS8IVsi-1-e7evkRHnSE1hTTUGFti05DTSrO-zpW3MoAgU5AcsaTQouisYw" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Now check the result using the LayerPreview:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img height="146" src="https://lh6.googleusercontent.com/rAX4Z09XjFzeXE7k8rwIhSCM_ve8MMbaH1iJySyNlM6ItYasgA2RNISxZKbBkTMcnrbxLoI3gigXwWUlJiSP0cjQeLXn1nJLaTwAyHW6KKas0luFvHM" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;As expected using the pure Master to publish the GeoTiff file, the resulting layer will be published automatically on the salve instances with no intervention. There is one thing to notice, we are not moving data around but only their configuration (styles included) since we are assuming that all instances sees the same resources with the same absolute paths, which is common in distributed and cluestered set ups where resources are shared among multiple servers, like for example network storage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Conclusions&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;If you are responsible for administering a a series of GeoServer instances and/or you are publishing lots of data in real-time then this extension is a perfect fit for your organization.&lt;br /&gt;&lt;br /&gt;In case you are interested in test-driving this extension in your own set-up, you might want to know that we are going to provide this extension free of charge to clients who will subscribe to our&amp;nbsp; GeoServer Professional Services for the 2012 as well as to our partners. &lt;a href="http://www.geo-solutions.it/"&gt;Contact us&lt;/a&gt; if you are interested!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin: 0px;"&gt;Regards,&lt;/div&gt;&lt;div style="margin: 0px;"&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3066746068487363914?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3066746068487363914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3066746068487363914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3066746068487363914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3066746068487363914'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/12/robust-clustering-solution-for.html' title='Robust Clustering Solution for GeoServer'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-CzggNFCxEio/Tu9qgmnoLaI/AAAAAAAABEo/R6ap_ubn8Fs/s72-c/JMSGeoServerClustermasterslave-GeoSmart.jpg' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio Viti (Piano Conca), 12, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.87829894538044 10.276529788970947</georss:point><georss:box>43.876868445380445 10.274062288970947 43.87972944538044 10.278997288970947</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-2175927450122017781</id><published>2011-12-23T09:33:00.000-08:00</published><updated>2011-12-26T08:43:56.168-08:00</updated><title type='text'>Merry Christmas and Happy 2012</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-SE6N3rYBRV0/TvS7JLSeN-I/AAAAAAAABFU/85ojsdGdKL0/s1600/geosolutions.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://4.bp.blogspot.com/-SE6N3rYBRV0/TvS7JLSeN-I/AAAAAAAABFU/85ojsdGdKL0/s400/geosolutions.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Regards,&lt;/div&gt;&lt;div&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-2175927450122017781?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/2175927450122017781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=2175927450122017781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2175927450122017781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2175927450122017781'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/12/merry-christmas-and-happy-2012.html' title='Merry Christmas and Happy 2012'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-SE6N3rYBRV0/TvS7JLSeN-I/AAAAAAAABFU/85ojsdGdKL0/s72-c/geosolutions.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-2590664301343313586</id><published>2011-12-05T14:01:00.000-08:00</published><updated>2011-12-05T14:01:14.710-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Job offer @ GeoSolutions</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img src="http://danieleparlante.files.wordpress.com/2007/09/i-want-you.jpg?w=600" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&lt;/b&gt; is looking for talented&amp;nbsp;software engineers to fill a couple of positions which would mainly involve designing and implementing web-based geospatial applications. Qualifications are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Working&amp;nbsp;knowledge of web 2.0 UI &amp;nbsp;frameworks like GWT, Ext-GWT, JQuery,&amp;nbsp;&amp;nbsp;Ext-JS&lt;/li&gt;&lt;li&gt;Working&amp;nbsp;knowledge of Java (JEE and JSE)&lt;/li&gt;&lt;li&gt;Working knowledge of&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;&lt;b&gt;GeoServer&lt;/b&gt;&lt;/a&gt; &amp;nbsp;and OpenLayers is a plus&lt;/li&gt;&lt;li&gt;Knowledge of web development with Python is a plus&lt;/li&gt;&lt;li&gt;At least 1 year of experience&amp;nbsp;&lt;/li&gt;&lt;li&gt;Being fluent in English, both written and spoken&lt;/li&gt;&lt;/ul&gt;We offer a variety of contracts but, please, notice that our intention is to establish a long term relationship, therefore &lt;b&gt;this is not a position for freelance consultants&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Working remotely is an option, although we will give priority to candidate closer to our office. &lt;br /&gt;&lt;br /&gt;Please send a detailed resume together with a letter of presentation at jobs_at_geo-solutions.it.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-2590664301343313586?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/2590664301343313586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=2590664301343313586' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2590664301343313586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2590664301343313586'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/job-offer-geosolutions.html' title='Job offer @ GeoSolutions'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>5</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio Lucca, Italy</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7533869067575790696</id><published>2011-12-04T16:35:00.000-08:00</published><updated>2011-12-05T01:18:19.717-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Enteprise Services'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Training'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='geospatial'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G-IT'/><category scheme='http://www.blogger.com/atom/ns#' term='Education'/><title type='text'>GeoSolutions porta il GeoServer a Valenzia</title><content type='html'>Si è svolto con successo il workshop su &lt;a href="http://geoserver.org/"&gt;GeoServer &lt;/a&gt;organizzato da&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;durante le settime giornate internazionali gvSIG a Valenzia. Sono stati molti i partecipanti alle giornate che hanno deciso di dedicare 2 ore alla scoperta di&amp;nbsp;&lt;a href="http://geoserver.org/"&gt;GeoServer&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Zab-1gK4K48/TtwOn5E-Y_I/AAAAAAAAACE/AozbBMnvuE4/s1600/Immagine.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="164" src="http://3.bp.blogspot.com/-Zab-1gK4K48/TtwOn5E-Y_I/AAAAAAAAACE/AozbBMnvuE4/s320/Immagine.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Il workshop si è svolto in inglese durante una manifestazione spagnola dove la&amp;nbsp;maggior parte&amp;nbsp;degli interventi avveniva nella lingua nazionale, ma questo non ha fatto desistere i partecipanti che hanno mostrato al contrario un grande interesse. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-8h2Qk_SYgBU/TtwOeo97G8I/AAAAAAAAAB8/scyEHdYUzjI/s1600/DSCN3263.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="http://3.bp.blogspot.com/-8h2Qk_SYgBU/TtwOeo97G8I/AAAAAAAAAB8/scyEHdYUzjI/s320/DSCN3263.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Un ringraziamento alla gvSIG association per il sostegno al software open source manifestato attraverso l'organizzazione di un evento con lo scopo di condividere esperienze a livello internazionale e per il supporto dato a &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; nell'organizzazione del workshop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;strike&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" height="30" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s200/geosolutions-logo.gif" width="200" /&gt;&lt;/a&gt;&lt;/strike&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7533869067575790696?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7533869067575790696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7533869067575790696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7533869067575790696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7533869067575790696'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/12/geosolutions-porta-il-geoserver.html' title='GeoSolutions porta il GeoServer a Valenzia'/><author><name>Eleonora</name><uri>http://www.blogger.com/profile/06685135620650891336</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Zab-1gK4K48/TtwOn5E-Y_I/AAAAAAAAACE/AozbBMnvuE4/s72-c/Immagine.jpg' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Valencia, Spain</georss:featurename><georss:point>37.996162679728116 -1.40625</georss:point><georss:box>14.688071679728115 -41.8359375 61.30425367972812 39.0234375</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6112639211570164206</id><published>2011-11-30T01:32:00.000-08:00</published><updated>2011-11-30T01:32:11.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gvSIG'/><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='geotiff'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='geospatial'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Support'/><title type='text'>GeoServer and GeoSolutions @ gvSIG Days 2011</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;will attend the 5th edition of the&amp;nbsp;&lt;a href="http://jornadas.gvsig.org/home/view?set_language=en"&gt;gvSIG Conference&lt;/a&gt;, organized by the Regional  Ministry of Infrastructure and Transport (CIT) from  December 2nd until December 4th at the Feria Valencia Convention and  Exhibition Center. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://jornadas.gvsig.org/home/"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-N3mOmoK-Nz4/Tre-7kHi8TI/AAAAAAAABBs/Kx8ABF6mDeI/s320/home_en.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="https://twitter.com/simogeo"&gt;Ing. Simone Giannecchini&lt;/a&gt; will provide an introductive workshop on&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;, therefore make sure you take note of the exact time on the conference program and you make room in your schedule for attending the event.&lt;br /&gt;Check &lt;a href="http://bit.ly/rOvXfX"&gt;this link&lt;/a&gt; for more details.&lt;br /&gt;&lt;br /&gt;See you in Valencia!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;strike&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" height="30" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s200/geosolutions-logo.gif" width="200" /&gt;&lt;/a&gt;&lt;/strike&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6112639211570164206?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6112639211570164206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6112639211570164206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6112639211570164206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6112639211570164206'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/11/geoserver-and-geosolutions-gvsig-days.html' title='GeoServer and GeoSolutions @ gvSIG Days 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-N3mOmoK-Nz4/Tre-7kHi8TI/AAAAAAAABBs/Kx8ABF6mDeI/s72-c/home_en.jpg' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio Viti (Piano Conca), 1187, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.878289278514785 10.276618301868439</georss:point><georss:box>43.87811027851478 10.27630980186844 43.87846827851479 10.276926801868438</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1031506538384639242</id><published>2011-11-28T02:00:00.000-08:00</published><updated>2011-11-28T02:21:02.185-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Raster'/><category scheme='http://www.blogger.com/atom/ns#' term='geoprocessing'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='Spatial Data Infrastructure'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><category scheme='http://www.blogger.com/atom/ns#' term='WPS'/><category scheme='http://www.blogger.com/atom/ns#' term='geotoos'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>Serving Meteo data with GeoServer, GeoBatch and GeoNetwork: the LaMMA use case</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Dear All,&lt;br /&gt;in this post I'd like to talk about the work we have done for the &lt;a href="http://www.lamma.rete.toscana.it/"&gt;LaMMA&lt;/a&gt; &lt;span class="short_text" id="result_box" lang="en"&gt;&lt;span class="hps"&gt;consortium&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;The Problem&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;The purpose of this project is to build a complete &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;Spatial Data Infrastructure (SDI)&lt;/a&gt;&amp;nbsp;to provide a spatio-temporal raster data processing, publishing, and interactive visualisation facility. This platform is candidate to substitute the &lt;a href="http://www.lamma.rete.toscana.it/meteo/modelli"&gt;current one&lt;/a&gt;&amp;nbsp;which was already built leveraging on Open Source software but which was rather static and contained no OGC services.&lt;br /&gt;&lt;br /&gt;The data that will be ingested into the system is generated by an existing processing infrastructure which produces a set of different MetOc models. Our goal is to manage the geophysical parameter (or variables) produced by the following models:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ARW ECM&lt;/li&gt;&lt;ul&gt;&lt;li&gt;3 Km&amp;nbsp;resolution&lt;/li&gt;&lt;li&gt;9 Km resolution&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;GFS&lt;/li&gt;&lt;ul&gt;&lt;li&gt;50 Km resolution&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;The ingestion is started every day at noon and midnight, hence there are 2 run-times a day for each model at a certain resolution and the produced data contains different forecast times.&lt;br /&gt;- ARW ECM (3 days with interval of 1h)&lt;br /&gt;- GFS (8 days with interval of 6h)&lt;br /&gt;&amp;nbsp;The data is produced in GriB format (version 1).&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Our Solution&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Leveraging on the &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;OpenSDI&lt;/a&gt; suite and specifically on the following components:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;as well as some other well known Open Source project such as (Apache &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;, Apache &lt;a href="http://httpd.apache.org/"&gt;Http server&lt;/a&gt;, &lt;a href="http://www.postgresql.org/"&gt;Postgres&lt;/a&gt;) we provided an extensible and standard based platform to automatically ingest and publish data.&lt;br /&gt;&lt;br /&gt;The infrastructure we have put together is depicted in the deployment diagram below.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-g-mwmFyZBBg/Tqp6xr1ZjyI/AAAAAAAAB5Q/wY5WND3otl0/s1600/LaMMaDeploymentDiagram.png" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="310" src="http://3.bp.blogspot.com/-g-mwmFyZBBg/Tqp6xr1ZjyI/AAAAAAAAB5Q/wY5WND3otl0/s400/LaMMaDeploymentDiagram.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Deploy diagram&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;This infrastructure has been designed from the beginning with the goal of being scalable in terms of supporting large number of external users since it is based on a &lt;b&gt;&lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/b&gt;Master/Slave infrastructure where multiple slaves can be installed for higher throughput. Caching will be tackled in a successive phase.&lt;br /&gt;&lt;br /&gt;As you can see we provided three access level for different type of users:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: red;"&gt;Admin&lt;/span&gt;&lt;/b&gt; can locally access to the entire infrastructure and add instances of GeoServer to the cluster to improve performances&lt;/li&gt;&lt;li&gt;&lt;b style="color: #b45f06;"&gt;Poweruser&lt;/b&gt; can remotely add files to ingestion and administer&amp;nbsp;&lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt; via Basic Autentication&lt;/li&gt;&lt;li&gt;&lt;b style="color: #ffd966;"&gt;User&lt;/b&gt; can look at ingested data accessing one of the &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt; slave machines via Apache httpd proxy server. The load of these accesses is distributed between all available slaves.&lt;/li&gt;&lt;/ul&gt;As mentioned above, the main building blocks are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; for providing WMS, WCS and WFS services &lt;b&gt;with support for the TIME and Elevation dimensions&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;, for publishing metadata for all data with specific customizations for managing the TIME dimensions in the dataset&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt;, to perform preprocessing and ingestion in near real time of data and related metadata with minimal human intervention&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Using&amp;nbsp;&lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt;&amp;nbsp;for ingestion and data preprocessing&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;In the LaMMA project the&amp;nbsp;&lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt;&amp;nbsp;framework is used to preprocess and ingest the incoming GriB files as well as to handle data removal based on a sliding temporal window (currently set to 7 days) since it was a design decision to keep around for live serving on the last 7 days of forecasts.&lt;br /&gt;&lt;br /&gt;Below you can find a diagram depicting one of the automatic ingestion flow we created for the &lt;a href="http://www.lamma.rete.toscana.it/"&gt;LaMMA&lt;/a&gt; project using the &lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt; framework.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-T9G_2SQm-ys/Tqp70UtBa9I/AAAAAAAAB5g/nqe7P9LgSjQ/s1600/LaMMa_arw_3km_Flow.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="249" src="http://1.bp.blogspot.com/-T9G_2SQm-ys/Tqp70UtBa9I/AAAAAAAAB5g/nqe7P9LgSjQ/s320/LaMMa_arw_3km_Flow.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;GeoBatch ingestion flow example&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;The various building blocks comprising this flow are explained here below:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b style="color: #6aa84f;"&gt;NetCDF2GeotiffAction&lt;/b&gt;&amp;nbsp;reads the &lt;b&gt;incoming&lt;/b&gt; &lt;b&gt;GRIB&lt;/b&gt; file and produces a proper set of Geotiff perfoming on-the- fly tiling, pyramiding and unit conversions.Each GeoTiff represent a 2D slice out of one of the original 4D cubes contained in the source GriB file&lt;/li&gt;&lt;li&gt;&lt;b style="color: #6aa84f;"&gt;ImageMosaicAction&lt;/b&gt;&amp;nbsp;uses the &lt;a href="http://code.google.com/p/geoserver-manager/"&gt;GeoServer Manager library&lt;/a&gt; to create the&amp;nbsp;ImageMosaic&amp;nbsp;store and layer&amp;nbsp;&amp;nbsp;in the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;Master. The created ImageMosaic contains proper configuration to parse Time and Elevation dimensions' values from the GeoTiff in order to create 4D layers in&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;b style="color: #6aa84f;"&gt;XstreamAction&lt;/b&gt; takes an XML file and deserializes it to a Java object this is passed to the next action.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b style="color: #6aa84f;"&gt;FreeMarkerAction&lt;/b&gt;&amp;nbsp;produces a proper xml metadata file for publishing in&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;,&amp;nbsp;using a pre-cooked template and the passed data model.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: #6aa84f;"&gt;GeoNetworkAction&lt;/span&gt; &lt;/b&gt;published the metadata on the target&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: #6aa84f;"&gt;ReloadAction&lt;/span&gt;&lt;/b&gt;&amp;nbsp;forces a reload on all the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;slaves in order to pick up the changes done by the master instance&lt;/li&gt;&lt;/ol&gt;This type of flow, (with a slight different set up) is used to convert and publish the 3 different incoming models.&lt;br /&gt;&lt;br /&gt;The other type of flow is the &lt;b&gt;remove flow&lt;/b&gt; which is a composed by the following building blocks:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: #6aa84f;"&gt;ScriptingAction&lt;/span&gt;&lt;/b&gt;&amp;nbsp;executes&amp;nbsp;a &lt;b&gt;remove.groovy&lt;/b&gt; script which will:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;calculate the oldest time to retain&lt;/li&gt;&lt;li&gt; select older files to be removes&lt;/li&gt;&lt;li&gt;search and remove matching metadata from the &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&lt;/li&gt;&lt;li&gt;remove collected layers and stores &amp;nbsp;from the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;Master catalog&lt;/li&gt;&lt;li&gt;delete permanently succesfully removed files&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: #6aa84f;"&gt;ReloadAction&lt;/span&gt;&lt;/b&gt;&amp;nbsp;forces a reload on all the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;Slave.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Using GeoNetwork for metadata management&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;We have customized the metadata indexing (thanks &lt;a href="http://lucene.apache.org/java/docs/index.html"&gt;Lucene&lt;/a&gt;!) in &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; in order to be able to index meteorological model execution in terms of their run time as well as in term of their forecast times.&lt;br /&gt;Generally speaking the data we are dealing with is driven by a meterological model which produces daily a certain number of geophysical parameters with temporal validity that spans for certain number of time instants (forecast times) in the future. In&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&amp;nbsp;we are currently creating a new metadata object for each geophysical parameter (e.g. Temperature) of a new model run; this metadata object contains multiple links to WMS requests for each forecast time, leveraging the TIME dimension in&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;(see picture below).&amp;nbsp;Moreover the forecast times themselves are indexed so that advanced searches can be done on them.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-tJBb2TiGdnw/Tqq-Fu8iMdI/AAAAAAAABA4/j8CUCSQOshQ/s1600/GeoNetworkMetadata.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-tJBb2TiGdnw/Tqq-Fu8iMdI/AAAAAAAABA4/j8CUCSQOshQ/s320/GeoNetworkMetadata.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If you have questions about the work described in this post or if you want to know more about &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;our services&lt;/a&gt; could help your organization to reach its goals, do not hesitate to &lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt;&amp;nbsp;team,&lt;br /&gt;&lt;div&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1031506538384639242?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1031506538384639242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1031506538384639242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1031506538384639242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1031506538384639242'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/10/serving-meteo-data-with-geoserver.html' title='Serving Meteo data with GeoServer, GeoBatch and GeoNetwork: the LaMMA use case'/><author><name>ccancellieri</name><uri>http://www.blogger.com/profile/14153451707018688251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-g-mwmFyZBBg/Tqp6xr1ZjyI/AAAAAAAAB5Q/wY5WND3otl0/s72-c/LaMMaDeploymentDiagram.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Florence, Italy</georss:featurename><georss:point>43.7687324 11.2569013</georss:point><georss:box>43.6768534 11.0989728 43.860611399999996 11.414829800000001</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7465199920807769738</id><published>2011-11-22T06:29:00.001-08:00</published><updated>2011-11-23T01:56:26.603-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gvSIG'/><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='geotiff'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='geospatial'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Support'/><title type='text'>GeoServer e GeoSolutions al GFOSS Day 2011</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; sarà presente alla conferenza &lt;a href="http://www.gfoss.it/drupal/gfossday2011"&gt;GFOSS DAY 2011&lt;/a&gt; che si terrà a Foggia il 24 e 25 Novembre presso la Università degli Studi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gfoss.it/drupal/gfossday2011"&gt;&lt;img alt="" src="data:image/png;base64,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" /&gt;&lt;/a&gt;&lt;br /&gt;Oltre ad essere sponsor Silver della manifestazione, &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; sarà presente con un workshop gratuito introduttivo ed una presentazione su &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; che si terranno entrambi nella giornata del 25 (si veda per dettagli il &lt;a href="http://www.gfoss.it/drupal/gfossday2011/programma"&gt;programma&lt;/a&gt; della manifestazione).&lt;br /&gt;&lt;br /&gt;Quindi, se volete essere aggiornati sugli sviluppi del &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; o se volete essere introdotti al suo utilizzo da uno dei suoi creatori non vi resta che farci visita a Foggia!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;strike&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" height="30" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s200/geosolutions-logo.gif" width="200" /&gt;&lt;/a&gt;&lt;/strike&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7465199920807769738?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7465199920807769738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7465199920807769738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7465199920807769738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7465199920807769738'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/11/geoserver-e-geosolutions-al-gfoss-day.html' title='GeoServer e GeoSolutions al GFOSS Day 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio Viti (Piano Conca), 12, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.87827110480309 10.276615619659424</georss:point><georss:box>43.87684060480309 10.274148119659424 43.87970160480309 10.279083119659424</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3975046362517835333</id><published>2011-11-10T07:15:00.000-08:00</published><updated>2011-11-14T07:25:37.940-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='wms'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='WMS TIME'/><title type='text'>Animate your maps with GeoServer Animator Tool</title><content type='html'>In this blog post we'd like to introduce you to a new &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; feature, the &lt;b style="text-align: left;"&gt;WMS&lt;/b&gt;&lt;span class="Apple-style-span" style="text-align: left;"&gt; &lt;/span&gt;&lt;b style="text-align: left;"&gt;animator&lt;/b&gt;&lt;span class="Apple-style-span" style="text-align: left;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;The animator follows in the footsteps of the &lt;a href="http://docs.geoserver.org/stable/en/user/tutorials/wmsreflector.html"&gt;WMS reflector&lt;/a&gt;, allowing a client to build an animated map with a relatively compact syntax.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;An animation is built as a set of frames, and each frame is a separate WMS GetMap call, similar to the others in the set, but with a different value in one of the parameters.&lt;/div&gt;&lt;div&gt;The animator allows you to specify the parameter that will vary and its value via the &lt;b&gt;aparam&lt;/b&gt; and &lt;b&gt;avalues &lt;/b&gt;request parameter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, let's say we have a dataset with time support enabled, in particular a small set of blumarble images for the different months in the year. A call to get a continuously animated progression would look like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://localhost:8080/geoserver/wms/animate?LAYERS=topp%3Aworld&amp;amp;aparam=time&amp;amp;avalues=2004-01-01T00:00:00.000Z,2004-02-01T00:00:00.000Z,2004-03-01T00:00:00.000Z,2004-04-01T00:00:00.000Z,2004-05-01T00:00:00.000Z,2004-06-01T00:00:00.000Z,2004-07-01T00:00:00.000Z&amp;amp;format=image/gif;subtype=animated&amp;amp;format_options=gif_loop_continuosly:true"&gt;http://localhost:8080/geoserver/wms/animate?LAYERS=topp%3Aworld&amp;amp;aparam=time&amp;amp;avalues=2004-01-01T00:00:00.000Z,2004-02-01T00:00:00.000Z,2004-03-01T00:00:00.000Z,2004-04-01T00:00:00.000Z,2004-05-01T00:00:00.000Z,2004-06-01T00:00:00.000Z,2004-07-01T00:00:00.000Z&amp;amp;format=image/gif;subtype=animated&amp;amp;format_options=gif_loop_continuosly:true&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;i&gt;aparam &lt;/i&gt;in this request is the WMS &lt;i&gt;time&lt;/i&gt; parameter, while the &lt;i&gt;avalues&lt;/i&gt; list a number of possible times, in particular a few months of the year. Also notice the output format, asking for an animated GIF that loops continously. The result is as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://demo.geo-solutions.it/share/bluemarble-animate.gif" style="text-align: left;"&gt;&lt;img alt="" border="0" src="http://demo.geo-solutions.it/share/bluemarble-animate.gif" style="cursor: pointer; display: block; height: 256px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 512px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Time and elevation are obviously prime candidates to drive an animation, but in fact every WMS request parameter can be used to drive the animation. &lt;/div&gt;&lt;div&gt;For example, we could change the bounding box and have the map move:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://localhost:8080/geoserver/wms/animate?LAYERS=topp%3Aworld&amp;amp;aparam=bbox&amp;amp;avalues=-10%5C,30%5C,30%5C,60,-9.9%5C,30%5C,30.1%5C,60,-9.8%5C,30%5C,30.2%5C,60,-9.7%5C,30%5C,30.3%5C,60,-9.8%5C,30%5C,30.2%5C,60,-9.9%5C,30%5C,30.1%5C,60&amp;amp;format=image/gif;subtype=animated&amp;amp;format_options=gif_loop_continuosly:true"&gt;http://localhost:8080/geoserver/wms/animate?LAYERS=topp%3Aworld&amp;amp;aparam=bbox&amp;amp;avalues=-10\,30\,30\,60,-9.9\,30\,30.1\,60,-9.8\,30\,30.2\,60,-9.7\,30\,30.3\,60,-9.8\,30\,30.2\,60,-9.9\,30\,30.1\,60&amp;amp;format=image/gif;subtype=animated&amp;amp;format_options=gif_loop_continuosly:true&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://demo.geo-solutions.it/share/bbox-animated.gif"&gt;&lt;img alt="" border="0" src="http://demo.geo-solutions.it/share/bbox-animated.gif" style="cursor: pointer; display: block; height: 384px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 512px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The actual reason the animator was developed was to allow building animation of tuna catches by ocean area over different types of aggregation factors, that are passed down to a parametrized SQL view building all the little squares you see in the map.&lt;/div&gt;&lt;div&gt;Here is an example showing the evolution of catches of a particular tuna spieces over the years:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;http://localhost:8080/geoserver/wms/animate?layers=UN_CONTINENT,GRID_G5,TUNA_YEARLY_CATCHES,FAO_MAJOR,UN_CONTINENT&amp;amp;&lt;/div&gt;&lt;div&gt;format=image/gif;subtype=animated&amp;amp;aparam=viewparams:YR_TA&amp;amp;avalues=1990,1991,1992,1993,1994,1995&amp;amp;&lt;/div&gt;&lt;div&gt;width=512&amp;amp;format_options=layout:message;gif_loop_continuosly:true&amp;amp;viewparams=CD_GEAR:801\,802\,803;FIC_ITEM:2496\,3296\,3305\,2498;QTR_TA:1\,2\,3\,4;OP:sum&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://demo.geo-solutions.it/share/tuna-animated.gif" style="text-align: left;"&gt;&lt;img alt="" border="0" src="http://demo.geo-solutions.it/share/tuna-animated.gif" style="cursor: pointer; display: block; height: 255px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 512px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see some of the maps include the indication of the year in the lower left. This is a recent addition to the animator framework, it uses a &lt;a href="http://docs.geoserver.org/stable/en/user/advanced/wmsdecoration.html"&gt;text WMS decoration&lt;/a&gt; to embed in the image the current &lt;b&gt;avalue&lt;/b&gt;.  See the &lt;a href="http://docs.geoserver.org/stable/en/user/tutorials/animreflector.html#adding-current-frame-values-as-text-overlays"&gt;animator documentation&lt;/a&gt; for details on how this can be achieved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At the time of writing the only possible output format is animated GIF, but other formats could be written and plugged in, for example AVI or Flash, and transition effects could be added too.&lt;/div&gt;&lt;div&gt;Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3975046362517835333?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3975046362517835333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3975046362517835333' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3975046362517835333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3975046362517835333'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/11/animate-your-maps-with-geoserver.html' title='Animate your maps with GeoServer Animator Tool'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>11</thr:total><georss:featurename>Via Poggio Viti (Piano Conca), 12, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.87828154502111 10.276618301868439</georss:point><georss:box>43.87810254502111 10.27630980186844 43.87846054502111 10.276926801868438</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-135979399360015525</id><published>2011-11-10T00:09:00.000-08:00</published><updated>2011-11-10T00:09:43.847-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GDAL'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='demo'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>GeoBatch Public Demo Available!</title><content type='html'>Dear All,&lt;br /&gt;in this post we'd like to show the first very simple demo of the &lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt;&amp;nbsp;framework. We have set up a demo instance on our demo server side by side with a &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; instance so that user can perform:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Upload via FTP, preprocessing and ingestion in&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;in real-time of GeoTiff files&lt;/li&gt;&lt;li&gt;Upload via FTP, preprocessing and ingestion in&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;in real-time of Shapefiles&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;Additional details on how to play with the demo can be found in the slides here below:&lt;/b&gt;&lt;br /&gt;&lt;div id="__ss_9146362" style="width: 425px;"&gt;&lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9146362" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;We are going to update this demo frequently with new features. Just to mention some of them, in next version we will also add automatic metadata indexing in &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;. So, if you are interested, please check the &lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch site&lt;/a&gt; regularly and subscribe to the&amp;nbsp;&lt;a href="http://geobatch.geo-solutions.it/"&gt;GeoBatch&lt;/a&gt;&amp;nbsp;users' mailing list &lt;a href="http://groups.google.com/group/geobatch-user"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have questions about the work described in this post or if you want to know more about&amp;nbsp;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;our services&lt;/a&gt;&amp;nbsp;could help your organization to reach its goals, do not hesitate to&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt;&amp;nbsp;team,&lt;br /&gt;&lt;div&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-135979399360015525?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/135979399360015525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=135979399360015525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/135979399360015525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/135979399360015525'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/10/geobatch-public-demo-available.html' title='GeoBatch Public Demo Available!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio Lucca, Italy</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-612429085618334630</id><published>2011-11-07T02:30:00.000-08:00</published><updated>2011-11-17T07:40:14.598-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='gfoss'/><category scheme='http://www.blogger.com/atom/ns#' term='asita'/><title type='text'>GeoServer e GeoSolutions ad ASITA 2011</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;sarà presente alla 15esima conferenza nazionale &lt;a href="http://www.asita.it/cms/"&gt;ASITA 2011&lt;/a&gt; che si terrà alla Reggia di Colorno, Parma nei giorni dal 15 al 18 Novembre 2011.&lt;br /&gt;In particolare il giorno 18 Novembre l'Ing. Simone Giannecchini, uno dei fondatori di&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;e membro permanente del comitato di controllo di vari progetti Open Source,&amp;nbsp;&amp;nbsp;discuterà delle potenzialità del prodotto &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;durante la Sessione 31, "Cartografia: gestione, aggiornamento, visualizzazione".&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-6a-9qbDnalk/TrO4uDuxRDI/AAAAAAAABBY/fvc2HH9qsOE/s1600/asita_2011_locandina.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-6a-9qbDnalk/TrO4uDuxRDI/AAAAAAAABBY/fvc2HH9qsOE/s320/asita_2011_locandina.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Ci vediamo ad &lt;a href="http://www.asita.it/cms/"&gt;ASITA&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;strike&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" height="30" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s200/geosolutions-logo.gif" width="200" /&gt;&lt;/a&gt;&lt;/strike&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-612429085618334630?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/612429085618334630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=612429085618334630' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/612429085618334630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/612429085618334630'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/11/geoserver-e-geosolutions-ad-asita-2011.html' title='GeoServer e GeoSolutions ad ASITA 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-6a-9qbDnalk/TrO4uDuxRDI/AAAAAAAABBY/fvc2HH9qsOE/s72-c/asita_2011_locandina.jpg' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio Viti (Piano Conca), 12, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.87831441236224 10.276765823364258</georss:point><georss:box>43.876883912362246 10.274298323364258 43.87974491236224 10.279233323364258</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7039838743848322785</id><published>2011-11-04T01:06:00.000-07:00</published><updated>2011-11-04T01:06:05.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='gfoss'/><title type='text'>GeoSolutions è sponsor della conferenza GFOSS DAY 2011</title><content type='html'>&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;è orgogliosa di annunciare il suo supporto come silver sponsor al &lt;b&gt;&lt;a href="http://www.gfoss.it/drupal/gfossday2011"&gt;GFOSS DAY 2011&lt;/a&gt; &lt;/b&gt;che si terrà&amp;nbsp;a Foggia nei giorni di 24 e 25 Novembre 2011.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.gfoss.it/drupal/gfossday2011"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-x9V9u_q7Yso/TrOcXCPRe2I/AAAAAAAABBQ/inFtBupbTWs/s1600/logo_gfoss.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;strike&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" height="30" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s200/geosolutions-logo.gif" width="200" /&gt;&lt;/a&gt;&lt;/strike&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7039838743848322785?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7039838743848322785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7039838743848322785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7039838743848322785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7039838743848322785'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/11/geosolutions-e-sponsor-della-conferenza.html' title='GeoSolutions è sponsor della conferenza GFOSS DAY 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-x9V9u_q7Yso/TrOcXCPRe2I/AAAAAAAABBQ/inFtBupbTWs/s72-c/logo_gfoss.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4417593512007344187</id><published>2011-11-03T01:26:00.000-07:00</published><updated>2011-11-03T01:38:13.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geosolut'/><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='tiff'/><category scheme='http://www.blogger.com/atom/ns#' term='geotiff'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio-ext'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>ImageI/O-Ext 1.1.2 Released</title><content type='html'>&lt;a href="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dear all,&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce the &lt;a href="http://java.net/projects/imageio-ext/"&gt;ImageI/O-Ext&lt;/a&gt; &lt;a href="http://java.net/projects/imageio-ext/downloads/directory/Releases/ImageIO-Ext/1.1.x/1.1.2"&gt;1.1.2&lt;/a&gt; release. With respect to 1.1.1, it adds a few bug fixes as well as improvements for the Tiff reader as well as on how we manage file memory mapping to provide a nice performance boost on remotely mounted file systems, e.g. NFS.&lt;br /&gt;Release artifacts have been deployed on the &lt;a href="http://maven.geo-solutions.it/it/geosolutions/imageio-ext/"&gt;GeoSolutions maven repository&lt;/a&gt;, as well as on the &lt;a href="http://download.osgeo.org/webdav/geotools/it/geosolutions/imageio-ext/"&gt;OSGEO&lt;/a&gt; one.&lt;br /&gt;&lt;br /&gt;It is worth to notice that we are right now discussing with the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; community for switching the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.1.x branch to this new ImageI/O-Ext release&amp;nbsp;(the unstable trunk version already leverages on this newest ImageI/O-Ext)&amp;nbsp;.&lt;br /&gt;&lt;br /&gt;If you have questions about&amp;nbsp;&lt;a href="http://java.net/projects/imageio-ext/"&gt;ImageI/O-Ext&lt;/a&gt;&amp;nbsp;or if you want to know more about&amp;nbsp;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;our services&lt;/a&gt;&amp;nbsp;could help your organization to reach its goals, do not hesitate to&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4417593512007344187?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4417593512007344187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4417593512007344187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4417593512007344187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4417593512007344187'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/11/dear-all-geosolutions-is-pleased-to.html' title='ImageI/O-Ext 1.1.2 Released'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7900482713861851549</id><published>2011-10-27T08:30:00.000-07:00</published><updated>2011-10-27T08:30:16.807-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>Time and elevation support in GeoServer</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Busy times in &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; and in &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; land! We just finished adding support for WMS time and elevation in &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; WMS on trunk, with plans to backport it to the stable 2.1.x series after the 2.1.1 release.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Configuring and using dimensions is performed, as tradition, by means an easy to use GUI. Just take a layer that has time information (or elevation), like this "storm tracks" layer:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-RzqdoHTkBqY/TfDMIN2TElI/AAAAAAAAAGY/Ni1IBPeDotY/s1600/featuretype.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616213176859431506" src="http://2.bp.blogspot.com/-RzqdoHTkBqY/TfDMIN2TElI/AAAAAAAAAGY/Ni1IBPeDotY/s400/featuretype.png" style="cursor: pointer; display: block; height: 168px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then switch to the new &lt;b&gt;Dimensions&lt;/b&gt; tab and configure time support as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-n5s6pSWi9P0/TfDMoM4HJ0I/AAAAAAAAAGo/QQuCEB7UZZA/s1600/configTime.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616213726354417474" src="http://2.bp.blogspot.com/-n5s6pSWi9P0/TfDMoM4HJ0I/AAAAAAAAAGo/QQuCEB7UZZA/s400/configTime.png" style="cursor: pointer; display: block; height: 298px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Submit and voilà, you have your time enabled layer. Looking at the capabilities you can see &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; is automatically extracting the list of values for you (but you could also ask it to return just an interval, for brevity):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-MzB5cyQyiJc/TfDMZ88CO4I/AAAAAAAAAGg/Bi3AQXQ-XE4/s1600/1geTgqOKWg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616213481557736322" src="http://4.bp.blogspot.com/-MzB5cyQyiJc/TfDMZ88CO4I/AAAAAAAAAGg/Bi3AQXQ-XE4/s400/1geTgqOKWg" style="cursor: pointer; display: block; height: 346px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you now ask &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; for the WMS layer you'll get only one track, the last one, also known as the &lt;b&gt;current &lt;/b&gt;data:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-iuvHS7KrI-c/TfDNWiWzMYI/AAAAAAAAAGw/hOq81YGWEAw/s1600/lastTrack.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616214522394259842" src="http://4.bp.blogspot.com/-iuvHS7KrI-c/TfDNWiWzMYI/AAAAAAAAAGw/hOq81YGWEAw/s400/lastTrack.png" style="cursor: pointer; display: block; height: 264px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;But then again, you can ask for a month worth of data adding &lt;i&gt;&amp;amp;TIME=2004-08-03/2004-09-03&lt;/i&gt; to your request:&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-fkFQCyOyaZQ/TfDNx6uz61I/AAAAAAAAAG4/E1_VUodiZ6Y/s1600/interval.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616214992793889618" src="http://1.bp.blogspot.com/-fkFQCyOyaZQ/TfDNx6uz61I/AAAAAAAAAG4/E1_VUodiZ6Y/s400/interval.png" style="cursor: pointer; display: block; height: 264px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;If you really want you also cherry pick the times you want to see, for example with &lt;i&gt;&amp;amp;TIME=2000-08-03T16:00:00.000Z,2000-08-13T16:00:00.000Z,2000-08-17T10:00:00.000Z,2000-08-19T16:00:00.000Z&lt;/i&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-Ms5QXMENpM4/TfDOEwosD7I/AAAAAAAAAHA/TSpjVkX3CD4/s1600/cherrypick.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5616215316501368754" src="http://2.bp.blogspot.com/-Ms5QXMENpM4/TfDOEwosD7I/AAAAAAAAAHA/TSpjVkX3CD4/s400/cherrypick.png" style="cursor: pointer; display: block; height: 264px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;For now we're added time and elevation support, but we're getting started with raster data and we should be landing that support soon too.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interested in multidimensional data management advances? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know! &lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7900482713861851549?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7900482713861851549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7900482713861851549' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7900482713861851549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7900482713861851549'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/time-and-elevation-support-in-geoserver.html' title='Time and elevation support in GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-RzqdoHTkBqY/TfDMIN2TElI/AAAAAAAAAGY/Ni1IBPeDotY/s72-c/featuretype.png' height='72' width='72'/><thr:total>8</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio Lucca, Italy</georss:featurename><georss:point>43.8731336 10.2795303</georss:point><georss:box>43.871702600000006 10.2770628 43.8745646 10.2819978</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5586557983461234036</id><published>2011-10-12T04:21:00.000-07:00</published><updated>2011-10-12T08:00:50.216-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='wms'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>GeoServer News: Hiding layers from the capabilities document</title><content type='html'>&lt;div style="text-align: left;"&gt;Hi all,&lt;/div&gt;&lt;div&gt;in this blog post we would like to talk about a new functionality that &lt;a href="http://htt.//www.geo-solutions.it"&gt;we&lt;/a&gt; has just introduced in &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt;, the layer "advertised" flag.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you know, ignoring security settings for the moment, all enabled layers configured in &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt; are made available though all the OGC services for which they make sense: vector layers are published automatically to WMS and WFS, raster layers to WMS and WCS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is a fine default behavior, but in some cases one would like that the layer was there, but without making the layer known to the general public. Tipical use cases:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;you want to expose a set of layers as a layer group, but you don't want to publish the layers separately&lt;/li&gt;&lt;li&gt;some application needs to setup a temporary layer, maybe the result of some computation, without having the whole world know about it&lt;/li&gt;&lt;li&gt;the administrator wants a layer to be available for testing, but not have the whole world hit it yet (maybe because the layer configuration/styling is not done)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Up until &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt; 2.1.1 the above was only partially possible by making the layer available only to certain users via the security setup, but in 2.1.2 it got just a lot easier, there is a new publishing flag, "advertised", that you can uncheck to hide the layer:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-wpq5fCLGkrs/TpV0qm1KYrI/AAAAAAAAAJo/G4xSUdSIAjo/s1600/advertise.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5662560381815120562" src="http://4.bp.blogspot.com/-wpq5fCLGkrs/TpV0qm1KYrI/AAAAAAAAAJo/G4xSUdSIAjo/s400/advertise.png" style="cursor: pointer; display: block; height: 228px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Once un-ckecked the layer won't appear anymore into the capabilities documents, nor in the layer preview table, but will still be available for all other service requests.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are other things that could be done to improve layer management, such as attribute renaming, easier association with styles, publishing of a layer only towards certain OGC services and the like. Interested in getting any of that happen today? Let &lt;a href="http://www.geo-solutions.it/contact/"&gt;us know&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 11px; line-height: 16px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 11px; line-height: 16px;"&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; Team.&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5586557983461234036?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5586557983461234036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5586557983461234036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5586557983461234036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5586557983461234036'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/10/geoserver-news-hiding-layers-from.html' title='GeoServer News: Hiding layers from the capabilities document'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-wpq5fCLGkrs/TpV0qm1KYrI/AAAAAAAAAJo/G4xSUdSIAjo/s72-c/advertise.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Massarosa LU, Italia</georss:featurename><georss:point>43.87823792849538 10.276740802624545</georss:point><georss:box>43.74623092849538 10.193354802624544 44.01024492849538 10.360126802624546</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1084092775065594132</id><published>2011-09-26T03:26:00.000-07:00</published><updated>2011-09-26T04:45:46.238-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Aggregate'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='geospatial'/><category scheme='http://www.blogger.com/atom/ns#' term='geotoos'/><title type='text'>GeoServer Aggregating DataStore: Aggregate and republish from several data sources</title><content type='html'>&lt;div style="text-align: left;"&gt;When it comes to publishing data with &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; the most common case is to publish layers that one owns and that can store and serve fully from the local premises.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are however cases in which a dataset with a uniform structure is handled by several different entities, each one making it available to others, but with no unified view of the data itself.&lt;/div&gt;&lt;div&gt;This might be due to geographical distribution of the stakeholders,  separate ownerships, administrative subdivisions: a typical case is a set of local public administrations, all publishing the same, or similar, data set in a independent way.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For this use case we have developed the &lt;b&gt;aggregating data store&lt;/b&gt;, a &lt;a href="http://geotools.org/"&gt;GeoTools&lt;/a&gt; store in which features pertaining to the same layer/feature type are coming from several different other stores: the store unifies all of them in a centralized view that can be accessed as a seamless whole.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-yxC9LAYreqM/ToBVy18cTKI/AAAAAAAAAJY/22XmL_ESLv4/s1600/aggregating.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5656615463939755170" src="http://2.bp.blogspot.com/-yxC9LAYreqM/ToBVy18cTKI/AAAAAAAAAJY/22XmL_ESLv4/s400/aggregating.png" style="cursor: pointer; display: block; height: 180px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;The store requires the source types to be very similar, but not necessarily identical: &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;they can have a different layer names&lt;/li&gt;&lt;li&gt;may lack some attributes, or have some that are not shared with others&lt;/li&gt;&lt;li&gt;may  not have a perfect type match (e.g., the same attribute can be an integer in one store and a string in another, a conversion to unify the two will be attempted).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;A "default" store is appointed that defines the structure of the whole, and every other feature is remapped onto that structure.&lt;/div&gt;&lt;div&gt;Each data access is performed in &lt;b&gt;parallel&lt;/b&gt; in order to minimize data loading time, and the store can be configured to tolerate the occasional disappearance of one of the data sources.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-bELJiviajF8/ToBWjHbMdaI/AAAAAAAAAJg/tg6xpBvsUdY/s1600/type.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5656616293265864098" src="http://3.bp.blogspot.com/-bELJiviajF8/ToBWjHbMdaI/AAAAAAAAAJg/tg6xpBvsUdY/s400/type.png" style="cursor: pointer; display: block; height: 191px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;This new store is now made available as a &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; community plugin for the trunk series, and can be downloaded from the &lt;a href="http://gridlock.opengeo.org/geoserver/trunk/"&gt;nightly builds repository&lt;/a&gt; along with a &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; trunk build that allows to use it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We are still not managing attribute renaming, though it would be quite a nice feature to add. If you are interested in the topic contact us and let's see how we can &lt;a href="http://www.geo-solutions.it/"&gt;work together&lt;/a&gt; to improve the store.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; Team.&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1084092775065594132?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1084092775065594132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1084092775065594132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1084092775065594132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1084092775065594132'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/09/aggregate-and-republish-from-several.html' title='GeoServer Aggregating DataStore: Aggregate and republish from several data sources'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-yxC9LAYreqM/ToBVy18cTKI/AAAAAAAAAJY/22XmL_ESLv4/s72-c/aggregating.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8834187979648627739</id><published>2011-09-19T13:59:00.000-07:00</published><updated>2011-09-26T04:13:27.207-07:00</updated><title type='text'>GWT-OpenLayers release 0.6</title><content type='html'>A lot of improvements and some initial alignment with OpenLayers 2.11 have been made on the fresh release of &lt;a href="https://bitbucket.org/gwtopenlayers/gwt-openlayers"&gt;GWT-OpenLayers&lt;/a&gt; library.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actually the developers are also evaluating a brand new refactored showcase and a full alignment with OpenLayers 2.11.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The releases are available for the download here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://bitbucket.org/gwtopenlayers/gwt-openlayers/downloads"&gt;https://bitbucket.org/gwtopenlayers/gwt-openlayers/downloads&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On release 0.6 the major improvements are:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Implementation of OL client Icon&lt;/li&gt;&lt;li&gt;The possibility of removing layers from the map and changing the z-level&lt;/li&gt;&lt;li&gt;New zoom and pan controls for the map&lt;/li&gt;&lt;li&gt;Implementation of OL Dot Per Inch&lt;/li&gt;&lt;li&gt;Implementation of OL Styling&lt;/li&gt;&lt;li&gt;Implementation of OL Graticule&lt;/li&gt;&lt;li&gt;Improvements to OL Controls&lt;/li&gt;&lt;li&gt;Some nice Vectorial features stuff, along with measurements and geometric operations&lt;/li&gt;&lt;li&gt;Navigation History&lt;/li&gt;&lt;li&gt;Snapping&lt;/li&gt;&lt;li&gt;GML improvements&lt;/li&gt;&lt;li&gt;WMS Operations improvements&lt;/li&gt;&lt;li&gt;Markers&lt;/li&gt;&lt;li&gt;Google, VirtualEarth, Bing and OSM Layers improvements&lt;/li&gt;&lt;li&gt;TileManagerService Layers&lt;/li&gt;&lt;li&gt;PopUps improvements&lt;/li&gt;&lt;li&gt;Protocols improvements&lt;/li&gt;&lt;li&gt;A new showcase and a lot of examples&lt;/li&gt;&lt;/ul&gt;Alessio Fabiani has taken care of the 0.6 release as an active committer and administrator of the project.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; Team.&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8834187979648627739?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8834187979648627739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8834187979648627739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8834187979648627739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8834187979648627739'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/09/gwt-openlayers-release-06.html' title='GWT-OpenLayers release 0.6'/><author><name>afabiani</name><uri>http://www.blogger.com/profile/14092074304386635527</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-2984790522774167456</id><published>2011-09-14T08:35:00.001-07:00</published><updated>2011-09-16T06:47:55.814-07:00</updated><title type='text'>GeoSolutions Talks @ FOSS4G2011: the slides</title><content type='html'>&lt;meta equiv="content-type" content="text/html; charset=utf-8"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;Dear All, here we go with the slides of our presentations at &lt;/span&gt;&lt;/span&gt;&lt;a href="http://2011.foss4g.org/" style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; text-decoration: none; background: inherit; color: rgb(251, 146, 51); "&gt;FOSS4G&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;, for those that could not attend, and for everybody else that wants to get all the details of the presentations as soon as possible on their computer.  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;GeoServer&lt;/b&gt; &lt;ul style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 5px; margin-right: 15px; margin-bottom: 5px; margin-left: 15px; padding-top: 0px; padding-right: 25px; padding-bottom: 0px; padding-left: 25px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="outline-style: initial; outline-color: initial; background: inherit;"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/The_State_of_GeoServer.pdf"&gt;The State of GeoServer&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="outline-style: initial; outline-color: initial; background: inherit;"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/gs_steroids_sgiannec_foss4g2011.pdf"&gt;&lt;b&gt;GeoServer on steroids&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="outline-style: initial; outline-color: initial; background: inherit;"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/gs_styling_aaime_foss4g2011.pdf"&gt;Advanced cartographic map rendering in GeoServer&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="outline-style: initial; outline-color: initial; background: inherit;"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/gt_raster_simone_foss4g2011.pdf"&gt;Raster data in GeoServer and GeoTools: Achievements, issues and future developments&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="outline-style: initial; outline-color: initial; background: inherit;"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/wps_aaime_foss4g2011.pdf"&gt;The status of GeoServer WPS&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;/li&gt;&lt;/ul&gt;&lt;b style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;GeoTools&lt;/b&gt; &lt;ul style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 5px; margin-right: 15px; margin-bottom: 5px; margin-left: 15px; padding-top: 0px; padding-right: 25px; padding-bottom: 0px; padding-left: 25px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="outline-style: initial; outline-color: initial; background: inherit;"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/gt_raster_simone_foss4g2011.pdf"&gt;Raster data in GeoServer and GeoTools: Achievements, issues and future developments&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;The slides pack an incredible amount of ready to use information for all GeoServer and GeoTools users, do not miss them :-)&lt;/div&gt;&lt;div style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;If you liked the styling SLD presentation we also setup a GeoServer publishing the example data set:&lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; "&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 16px; "&gt;&lt;a href="http://demo1.geo-solutions.it/playground/wms?service=WMS&amp;amp;version=1.1.0&amp;amp;request=GetMap&amp;amp;layers=boulder&amp;amp;styles=&amp;amp;bbox=2912832.50660,1177276.70710,3169911.17912,%201359186.17713&amp;amp;width=512&amp;amp;height=369&amp;amp;srs=EPSG:2876&amp;amp;format=application/openlayers"&gt;SLD styling of vector and raster data &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://demo1.geo-solutions.it/playground/wms?service=WMS&amp;amp;version=1.1.0&amp;amp;request=GetMap&amp;amp;layers=boulder_dem_tx&amp;amp;styles=&amp;amp;bbox=-106.0,39.0,-104.0,41.0&amp;amp;width=512&amp;amp;height=512&amp;amp;srs=EPSG:4326&amp;amp;format=application/openlayers"&gt;Geometry transformations&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://demo.geo-solutions.it/share/foss4g2011/foss4g_data_dir.tar.gz"&gt;The data directory, ready to use&lt;/a&gt;, with data and styles (mind, geometry transformations will work only in GeoServer 2.2.x)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, sans-serif; line-height: 16px; "&gt;Any topic that you want to explore in more details? The presentations wet your appetite and you crave for more content? &lt;a href="http://www.geo-solutions.it/contact/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; text-decoration: none; background: inherit; color: rgb(251, 146, 51); "&gt;Let us know!&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-2984790522774167456?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/2984790522774167456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=2984790522774167456' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2984790522774167456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2984790522774167456'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/09/geosolutions-talks-foss4g2011-slides.html' title='GeoSolutions Talks @ FOSS4G2011: the slides'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8174753214041661721</id><published>2011-09-12T03:00:00.000-07:00</published><updated>2011-09-12T06:31:04.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='geospatial'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>GeoSolutions Talks @ FOSS4G 2011</title><content type='html'>&lt;div&gt;&lt;a href="http://2011.foss4g.org/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2011.foss4g.org/sites/2011-test.foss4g.org/files/acquia_prosper_logo.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Dear All,&lt;br /&gt;it looks like we will have some busy times at &lt;a href="http://2011.foss4g.org/"&gt;FOSS4G&lt;/a&gt; this week.&lt;br /&gt;If you check this &lt;a href="http://2011.foss4g.org/program/sessions/accepted?keys=giannecchini+OR+aime&amp;amp;field_sessiontype_value_many_to_one=All"&gt;search&lt;/a&gt;&amp;nbsp;you can see a few interesting talks that we will give, let's group them by topic:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GeoServer&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/state-geoserver"&gt;The State of GeoServer&lt;/a&gt; &lt;/b&gt;Wed, 09/14/2011 - 1:00pm - 1:30pm&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/geoserver-steroids"&gt;GeoServer on steroids&lt;/a&gt;&lt;/b&gt; Wed, 09/14/2011 - 1:30pm - 2:00pm&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/advanced-cartographic-map-rendering-geoserver"&gt;Advanced cartographic map rendering in GeoServer&lt;/a&gt;&lt;/b&gt; Wed, 09/14/2011 - 2:00pm - 2:30pm&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/raster-data-geoserver-and-geotools-achievements-issues-and-future-developments"&gt;Raster data in GeoServer and GeoTools: Achievements, issues and future developments&lt;/a&gt;&lt;/b&gt; Wed, 09/14/2011 - 3:00pm - 3:30pm&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/status-geoserver-wps"&gt;The status of GeoServer WPS&lt;/a&gt;&lt;/b&gt; Thu, 09/15/2011 - 2:00pm - 2:30pm&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;GeoTools&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/raster-data-geoserver-and-geotools-achievements-issues-and-future-developments"&gt;Raster data in GeoServer and GeoTools: Achievements, issues and future developments&lt;/a&gt;&lt;/b&gt; Wed, 09/14/2011 - 3:00pm - 3:30pm&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/status-geotools-project"&gt;Status of the GeoTools project&lt;/a&gt;&lt;/b&gt; Thu, 09/15/2011 - 10:30am - 11:00am&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;It is worth to point out that Wednesday there will be a full immersion on GeoServer with 3 talks in a row that will go from a general overview of the project to an in-depth analysis of rendering and production set up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Are you curious to know more about the latest developments we have done? Interested in knowing how we can help your organization reach your goals? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Contact us! &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8174753214041661721?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8174753214041661721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8174753214041661721' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8174753214041661721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8174753214041661721'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/09/geosolutions-talks-foss4g-2011.html' title='GeoSolutions Talks @ FOSS4G 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>4</thr:total><georss:featurename>Via Poggio Viti (Piano Conca), 12, 55054 Massarosa Lucca, Italy</georss:featurename><georss:point>43.87825254441097 10.2767014503479</georss:point><georss:box>43.87682204441097 10.2742339503479 43.87968304441097 10.2791689503479</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1481978110460789844</id><published>2011-08-16T06:37:00.000-07:00</published><updated>2011-08-16T06:37:07.748-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='auditing'/><title type='text'>Developer's Corner: Audit your GeoServer installation with the new monitoring extensions</title><content type='html'>&lt;div style="text-align: left;"&gt;When running one or more &lt;a href="http://www.geoserver.org/"&gt;&lt;b&gt;GeoServer&lt;/b&gt;&lt;/a&gt; in production it is often important to keep tabs on the server and its workload.&lt;/div&gt;&lt;br /&gt;The monitoring community module, available among the nightly builds, allows to track requests flowing into the server and expose basic statistics about the traffic in terms of OGC services being used.&lt;br /&gt;Configured in "history" mode it also stores all relevant request details into a database, allowing other tools to perform detailed usage analysis in post processing.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;This is great, but has some limitations. In particular, but storing all request details into a single database table the speed at which the new request details are inserted decreases over time in most relational databases, adding overhead to&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.geoserver.org/"&gt;&lt;b&gt;GeoServer&lt;/b&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;&amp;nbsp;as well, especially during peak loads.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We recently developed an alternative storage that uses plain text files instead, with file rolling when the file reaches a configurable record count as well as every time midnight is reached.&lt;br /&gt;&lt;div&gt;All the request details are first collected and fed into a queue that is then read by a separate thread doing the actual logging: this ensures there is no significant overhead and that the logging happens without slowing down the main thread.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-q3fT3WiSlyw/Tkpuu-6CXsI/AAAAAAAAAJM/IcMLpXkmUo0/s1600/logging.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5641443236674428610" src="http://2.bp.blogspot.com/-q3fT3WiSlyw/Tkpuu-6CXsI/AAAAAAAAAJM/IcMLpXkmUo0/s400/logging.png" style="cursor: pointer; display: block; height: 157px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Separate applications, running offline periodically, can then grab the files generated and compute whatever statistics are deemed necessary without impacting on GeoSe&lt;b&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&lt;/b&gt;rver's activity.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;The logging by default builds XML files with all the details of a request, including the body of posts requests, as shown in this &lt;a href="http://demo.geo-solutions.it/share/geoserver_audit_20110816_0.log"&gt;example file&lt;/a&gt;. However the Freemarker templates driving the logging allow the administrator to perform a completely different kind of logging, maybe duplicating the Apache log format or generate JSON documents instead.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;See the &lt;a href="http://docs.geoserver.org/stable/en/user/community/monitoring/audit.html"&gt;online documentation&lt;/a&gt; for details on how it's possible to configure the logging module.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interested in hearing more about GeoServer performance monitoring and auditing? &lt;a href="http://www.geo-solutions.it/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; Team.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1481978110460789844?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1481978110460789844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1481978110460789844' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1481978110460789844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1481978110460789844'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/08/developers-corner-audit-your-geoserver.html' title='Developer&apos;s Corner: Audit your GeoServer installation with the new monitoring extensions'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-q3fT3WiSlyw/Tkpuu-6CXsI/AAAAAAAAAJM/IcMLpXkmUo0/s72-c/logging.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7734877379876925983</id><published>2011-08-03T03:03:00.000-07:00</published><updated>2011-08-03T03:03:01.061-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Developer corner: Compact choropleth map styles with the Categorize function</title><content type='html'>One common task in cartography making is setting up a &lt;a href="http://en.wikipedia.org/wiki/Choropleth_map"&gt;choropleth map,&lt;/a&gt; that is, a map showing different shades of colors or patters for different categories of a statistical attribute, such as population.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GeoServer &lt;/b&gt;example data directory ships with two such examples using an old USA states map having, among others, population count per state. The two following maps should be familar, the first is using the population style, the other the pophatch style:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-qEotBDQ1z2s/TjkXP2z6DyI/AAAAAAAAAI0/lXTddG-SXTk/s1600/states-color.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5636561969809592098" src="http://1.bp.blogspot.com/-qEotBDQ1z2s/TjkXP2z6DyI/AAAAAAAAAI0/lXTddG-SXTk/s400/states-color.png" style="cursor: pointer; display: block; height: 182px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-bGzC4GQhhqA/TjkXVPvRaII/AAAAAAAAAI8/LgKKFP1OlLc/s1600/states-hatch.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5636562062400383106" src="http://1.bp.blogspot.com/-bGzC4GQhhqA/TjkXVPvRaII/AAAAAAAAAI8/LgKKFP1OlLc/s400/states-hatch.png" style="cursor: pointer; display: block; height: 182px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;The original styles use a typical SLD 1.0 setup to build choropleth maps, that is, use rule filters to tell apart the categories.&lt;br /&gt;This is fine, but also quite verbose, especially since the only thing that changes between one rule and then next is a color or a graphic size.&lt;br /&gt;&lt;br /&gt;SE 1.1 introduces the Categorize function, mainly as a way to categorize raster data, but in such a way that it can be used against vector data as well.&lt;br /&gt;&lt;b&gt;GeoServer &lt;/b&gt;and &lt;b&gt;GeoTools &lt;/b&gt;offer the possibility to use the categorize function in SLD 1.0 as well, calling it like any other filter function.&lt;br /&gt;&lt;br /&gt;This is the polygon symbolizer using the categorize function to select different colors based on the number of people in the state:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-Lay_CcBD2qk/TjkYai2eEWI/AAAAAAAAAJE/X7P-pGpIV9M/s1600/symbolizer.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5636563252941820258" src="http://4.bp.blogspot.com/-Lay_CcBD2qk/TjkYai2eEWI/AAAAAAAAAJE/X7P-pGpIV9M/s400/symbolizer.png" style="cursor: pointer; display: block; height: 210px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;The function call should be read as "categorize based on the PERSONS attribute, use color red if we have less than 20M people, green between 20M and 40M, and blue above 40M".&lt;br /&gt;&lt;br /&gt;As you can see the expression is quite more compact. Indeed the color based SLD goes down from &lt;a href="http://demo.geo-solutions.it/share/popshade.sld"&gt;96 lines&lt;/a&gt; to &lt;a href="http://demo.geo-solutions.it/share/popcat.sld"&gt;56 lines&lt;/a&gt;, whilst the hatch based SLD goes down from &lt;a href="http://demo.geo-solutions.it/share/pophatch.sld"&gt;124 lines&lt;/a&gt; to &lt;a href="http://demo.geo-solutions.it/share/popcathatch.sld"&gt;69 lines&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What about performance, you might wonder? If you have few rules, say, less than 10, it should be more or less the same, whilst if you have a very large style, with hundreds of these rules, you should expect to see an improvement, the more visible the more rules you have.&lt;br /&gt;&lt;br /&gt;In the next installment I'll show you how to have a compact style in case you want continuous changes of color based on the attribute value using the interpolate function instead.&lt;br /&gt;&lt;br /&gt;Do you also have an interest in filter functions and their abilities? Or do you have a style that is growing beyond control and with a less than desirable performance?  &lt;a href="http://www.geo-solutions.it/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7734877379876925983?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7734877379876925983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7734877379876925983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7734877379876925983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7734877379876925983'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/08/developer-corner-compact-choropleth-map.html' title='Developer corner: Compact choropleth map styles with the Categorize function'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qEotBDQ1z2s/TjkXP2z6DyI/AAAAAAAAAI0/lXTddG-SXTk/s72-c/states-color.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4933509183214389168</id><published>2011-07-25T02:38:00.000-07:00</published><updated>2011-07-25T02:38:31.749-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='MetOc'/><category scheme='http://www.blogger.com/atom/ns#' term='Gliders'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>Oceanographic Database, managing oceanographic data with GeoServer and GeoBatch</title><content type='html'>&lt;div&gt;&lt;img border="0" src="http://2011.foss4g.org/sites/2011.foss4g.org/files/geosolutions.png?1306374507" /&gt;&lt;/div&gt;&lt;br /&gt;Dear All,&lt;br /&gt;in this post &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt;'d like to introduce some work we have done recently at &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;towards an applications that is able to ingest in real-time, manage, visualize, retrieve and chart data acquired by oceanographic and meteorological sensors (like sensors mounted onboard &lt;a href="http://en.wikipedia.org/wiki/Underwater_glider"&gt;underwater gliders&lt;/a&gt;&amp;nbsp;as an instance) over time. We called this application, &lt;b&gt;Oceanographic Database&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The infrastructure we have put together is shown in the picture below.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-dFK7mH0uwJ8/TixrdjVkNKI/AAAAAAAAA2k/p_PqVlaq-68/s1600/nurc2010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://4.bp.blogspot.com/-dFK7mH0uwJ8/TixrdjVkNKI/AAAAAAAAA2k/p_PqVlaq-68/s400/nurc2010.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;Summarising, we can identify the various components and their roles as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Data is ingested via &lt;a href="http://geobatch.geo-solutions.it/" style="font-weight: bold;"&gt;GeoBatch&lt;/a&gt;&amp;nbsp;in near real-time with proper prepocessing&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoServer&lt;/b&gt;&amp;nbsp;&lt;/a&gt;is used in conjunction with some custom &lt;b&gt;REST &lt;/b&gt;extensions for performinng visualization, dissemination and export to &lt;b&gt;Google Earth&lt;/b&gt;&lt;/li&gt;&lt;li&gt;A &lt;b&gt;REST &lt;/b&gt;framework wrapping on an open source charting library is used to generate charts on the fly from the ingested data.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In the following videos we are going to describe the main functionalities of the infrastructure.&lt;br /&gt;&lt;br /&gt;The first video below shows the basics of the front-ed as well as the following functionalities:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;basic and advanced filtering for&amp;nbsp;&lt;/b&gt;&lt;b&gt;visualization&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;creation of charts from ingested data&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;search and download of data&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;export in Google Earth with support for temporal animation and underwater visualization&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/Epcg1JP4Ig4" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The second video below covers the extensive charting functionalities.The O&amp;amp;M Database is capable of plotting 2D charts &amp;nbsp;of the acquired geophysical parameters like:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Temporal evolutions of a certain parameter&lt;/li&gt;&lt;li&gt;Evolution of&amp;nbsp;of a certain parameter over a depth range&lt;/li&gt;&lt;li&gt;Correlation of two parameters in a certain spatiotemporal range&lt;/li&gt;&lt;li&gt;Scatter diagram of a parameter with JET colormap&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Going into details, the O&amp;amp;M Database allows users to filter data and then move onto the &lt;b&gt;Diagrams Panel&lt;/b&gt; for selecting&amp;nbsp;the parameters to plot as well as the type of diagram, Notice that charts are plotted in real time using the live data as the are stored in the sytem. This makes the tool a perfect mean to monitor the acquisition of data since very refined query can be used to plot chats of specific subsets of the data.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/pmATrSvfqsI" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The third video below shows&amp;nbsp;the O&amp;amp;M Database Data Download capability, which allows users to search for &amp;nbsp;the original data and then to download them in the original format. As an instance we can search for Glider's data acquisitions and download them as netCDF files.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/k5ZKbGawa9E" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The forth video below shows the experimental Temporal Animation Capability of the O&amp;amp;M Database that allows users to perform simple temporal animations to visualize the temporal evolution of the acquisitions on the map.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/jPjjEGxlCF8" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;The application is entirely built exploiting Open Source frameworks and libraries. Our intent is to make it availabe to our customers as part of our &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;Enterprise Support Plans&lt;/a&gt; as Open Source under the GPL license (the proper license is still under evaluation).&lt;br /&gt;&lt;br /&gt;Are you curious to know more about the features of the Oceanographic Database? Interested in knowing how we can help your organization reach your goal?&amp;nbsp;&lt;a href="http://www.geo-solutions.it/contact/"&gt;Contact us!&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt;&amp;nbsp;team,&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4933509183214389168?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4933509183214389168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4933509183214389168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4933509183214389168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4933509183214389168'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/07/oceanographic-database-managing.html' title='Oceanographic Database, managing oceanographic data with GeoServer and GeoBatch'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-dFK7mH0uwJ8/TixrdjVkNKI/AAAAAAAAA2k/p_PqVlaq-68/s72-c/nurc2010.png' height='72' width='72'/><thr:total>0</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio LU, Italia</georss:featurename><georss:point>43.8731336 10.279530300000033</georss:point><georss:box>43.8723911 10.279171300000034 43.873876100000004 10.279889300000033</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3250788066347708218</id><published>2011-07-25T01:10:00.000-07:00</published><updated>2011-07-25T01:10:22.852-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoRepository'/><title type='text'>Preview: GeoRepository, advanced authorization manager for GeoServer</title><content type='html'>Dear All,&lt;br /&gt;in this post we would like to introduce an application which we have been working lately here at &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; in order to cope with the requirements coming from enterprise deployments in terms of Authentication and Authorization for &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;, which we have called &lt;strong&gt;GeoRepository&lt;/strong&gt; since we want to make it grow even further in the near future.&lt;br /&gt;&lt;div id="__ss_8664708" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/geosolutions/georepository-short-introduction" target="_blank" title="Georepository short introduction"&gt;Georepository short introduction&lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8664708" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/geosolutions" target="_blank"&gt;GeoSolutions&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Whoever has been facing the technical problems involved with deploying &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; inside an enterprise infrastructure following the &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;SOA&lt;/a&gt; knows in such context Authorization and Authentication capabilities are usually provided by external services in order to centralize A&amp;amp;A services, fostering reuse of existing capabilities, minimize risk of duplication of functionalities and as well as to avoid duplication of users' credentials. Moreover in such context &lt;strong&gt;Single Sign On (SSO)&lt;/strong&gt; services are usually a must-have.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; comes with an &lt;a href="http://docs.geoserver.org/latest/en/user/security/index.html"&gt;integrated security subsystem&lt;/a&gt; that is able to handle both Authentication and Authorization which is quite powerful and customizable, however we needed even to extend it further in order to be able to provide fine grained control over users' authorizations as well as in order to better integrate with existing A&amp;amp;A services.&lt;br /&gt;&lt;br /&gt;A typical and yet simple usage scenario for &lt;strong&gt;GeoRepository&lt;/strong&gt; is depicted here below.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://4.bp.blogspot.com/-FcluVMREQsQ/TcEWRgR-ipI/AAAAAAAAAVU/iFOl_y6VKOU/s1600/GeoRepo-SINpeersarchENG.jpg"&gt;&lt;img alt="" border="0" height="289" src="http://4.bp.blogspot.com/-FcluVMREQsQ/TcEWRgR-ipI/AAAAAAAAAVU/iFOl_y6VKOU/s320/GeoRepo-SINpeersarchENG.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In these setups GeoServer is normally not exposed directly, there is normally a load balancer as well as an Apache configured to perform duties such as single sign on authentication, SSL encryption and connection with external monitoring tools such as Nagios or Hyperic.&lt;br /&gt;As suggested the authentication is performed by Apache HTTPD via &lt;strong&gt;LDAP&lt;/strong&gt;; &lt;a href="http://www.geoserver.org/"&gt;GeoServe&lt;/a&gt;r will therefore be responsible only for the authorization based on the current user. In order to do this, &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; communicates with &lt;strong&gt;GeoRepository&lt;/strong&gt; in order to retrieve users' authorizations query limits (we will get to this later) and then applies them accordingly to the incoming requests (thus avoiding post-encoding filtering, see also this &lt;a href="http://demo.geo-solutions.it/share/securing_geoserver.pdf"&gt;white paper comparing internal vs external security systems&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In order to make this approach possible &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; was &lt;a href="http://geoserver.org/display/GEOS/GSIP+57+-+Improving+GeoServer+authorization+framework"&gt;modified&lt;/a&gt; by Andrea Aime, the author of the existing Security Subsytem as described in the picture below. &lt;strong&gt;GeoRepository&lt;/strong&gt; obtains users' credentials from &lt;strong&gt;LDAP&lt;/strong&gt; and allows administrator to decorate them with additional parameters which are specific for restricting &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; access to services and data (we will describe them shortly).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://4.bp.blogspot.com/-OLyl8tJEvko/TcEYAYu0W5I/AAAAAAAAAVY/30kZeGZlwLk/s1600/GeoServerGeoRepositoryintegration.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://4.bp.blogspot.com/-OLyl8tJEvko/TcEYAYu0W5I/AAAAAAAAAVY/30kZeGZlwLk/s320/GeoServerGeoRepositoryintegration.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Now that we have seen the 10000 feet view let's delve into details of how us know provide additional details on how &lt;strong&gt;GeoRepository&lt;/strong&gt; seamlessly applies specific geospatial access policies to one or more &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; instances&lt;/div&gt;&lt;div&gt;The possible types of authorizations that can be applied using GeoRepository are controlled via generic rules with priorities , are shown below.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://3.bp.blogspot.com/-Kf2DUkMBPM0/TcFEZakVmHI/AAAAAAAAAVs/f_b4aiAl3hk/s1600/users.jpg"&gt;&lt;img alt="" border="0" height="196" src="http://3.bp.blogspot.com/-Kf2DUkMBPM0/TcFEZakVmHI/AAAAAAAAAVs/f_b4aiAl3hk/s400/users.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Each rule comprises of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;User&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Profile&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Instance&lt;/strong&gt; (since GeoRepository can control more than one instance of GeoServer, the typical enterprise scenario having a cluster of machines serving geospatial requests)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Service and Request&lt;/strong&gt; which can be used to control grants on OGC services&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Workspace&lt;/strong&gt; which can be used to control grants on GeoServer workspaces&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Layer&lt;/strong&gt; which can be used to control grants on GeoServer layers&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Grant&lt;/strong&gt;&lt;/li&gt;&lt;li class="c2"&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;ALLOW&lt;/strong&gt; grants access if the rule is satisfied, DENY denies access if the rule is satisfied&lt;/li&gt;&lt;li&gt;&lt;strong&gt;LIMIT&lt;/strong&gt; applies only when we have spatial restrictions available, in this case if the ruse is satisfied we basically perform an allow with spatial restrictions.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;For ALLOW and LIMIT grants we can, under some conditions, set also additional limits which are called &lt;strong&gt;details&lt;/strong&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://3.bp.blogspot.com/-8uECvIvsOrA/TcFEwxnlNlI/AAAAAAAAAVw/1QGtpr8leJA/s1600/rule_edit.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://3.bp.blogspot.com/-8uECvIvsOrA/TcFEwxnlNlI/AAAAAAAAAVw/1QGtpr8leJA/s400/rule_edit.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Available detail levels are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Layer Details&lt;/strong&gt; allows us to specify refined rules for a specific GeoServer layer. As an instance it is possible to override the default style or to filter the available styles' list. It is also possible to specify CQL filters for reading and/or writing (when possible) GeoServer layers' attributes.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Layer Attributes Details&lt;/strong&gt; allows us to limit access to vector layer attributes. By default all attributes are readable/writable, but with this capability we can hide some of them or make them read only.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;a class="c3" href="http://3.bp.blogspot.com/-caueqloTEK4/TcFFHiIJd9I/AAAAAAAAAV0/Zw069mlr-_s/s1600/rule_limits_2.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://3.bp.blogspot.com/-caueqloTEK4/TcFFHiIJd9I/AAAAAAAAAV0/Zw069mlr-_s/s400/rule_limits_2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;It is worth to point out that &lt;strong&gt;GeoRepository&lt;/strong&gt; interprets rule by priority: higher priority rules (represented by a smaller integer number) are applied before rules at lower priority. Like in &lt;strong&gt;IPTABLE&lt;/strong&gt;S, the first match is considered valid and then executed.&lt;/div&gt;&lt;div&gt;The possibilities introduced by having GeoRepository work right next to GeoServer are quite a lot, let us list some of them:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Fine grain control over which services, layers, workspaces, operations (of a service) a user can access&lt;/li&gt;&lt;li&gt;Fine grain control over which geospatial area for a layer (being it raster or vector) a user can access &lt;/li&gt;&lt;li&gt;Fine grain control over the WMS style that a use can apply for a layer with the possibility to perform style substitution on a per request basis depending on the credentials received&lt;/li&gt;&lt;li&gt;Fine grain control over which attribute (for vector layers) or bands (for raster layers) a user can access (this way it is possible to hide/show sensible attributes depending on credentials)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c3" href="http://4.bp.blogspot.com/-SoAuMzTwhq4/TcFFTte4lsI/AAAAAAAAAV4/XVm-EfN74rU/s1600/rule_limits.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://4.bp.blogspot.com/-SoAuMzTwhq4/TcFFTte4lsI/AAAAAAAAAV4/XVm-EfN74rU/s400/rule_limits.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As an example of full versus limited access to resources, check the difference in the following two layers previews. First one show administrator's preview, second one shows unprivileged user's preview, where some the attributes are hidden, the default style is forced by the access control and the geometries outside the restriction area have been .&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c3" href="http://1.bp.blogspot.com/-M4m9Q-pb47w/TcFGAsqybCI/AAAAAAAAAV8/wcbgHGZ-z7o/s1600/preview_admin.jpg"&gt;&lt;img alt="" border="0" height="320" src="http://1.bp.blogspot.com/-M4m9Q-pb47w/TcFGAsqybCI/AAAAAAAAAV8/wcbgHGZ-z7o/s320/preview_admin.jpg" width="211" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a class="c1" href="http://2.bp.blogspot.com/-blbi54v9Y8Y/TcFGGwjmhlI/AAAAAAAAAWA/Jtd5_XIUP-M/s1600/local_user_filtered_layer.jpg"&gt;&lt;img alt="" border="0" height="320" src="http://2.bp.blogspot.com/-blbi54v9Y8Y/TcFGGwjmhlI/AAAAAAAAAWA/Jtd5_XIUP-M/s320/local_user_filtered_layer.jpg" width="216" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;We should set up an inline demo soon, meanwhile, if you want to know more about the features we currently support or about our roadmap, please, do not hesitate to &lt;a href="http://www.geo-solutions.it/contact/"&gt;contact us&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;/div&gt;&lt;div&gt;&lt;a class="c1" href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3250788066347708218?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3250788066347708218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3250788066347708218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3250788066347708218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3250788066347708218'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/07/preview-georepository-advanced.html' title='Preview: GeoRepository, advanced authorization manager for GeoServer'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-FcluVMREQsQ/TcEWRgR-ipI/AAAAAAAAAVU/iFOl_y6VKOU/s72-c/GeoRepo-SINpeersarchENG.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-816242670024533990</id><published>2011-07-21T03:35:00.000-07:00</published><updated>2011-11-03T01:22:23.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='IDRIS'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio-ext'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio'/><title type='text'>ImageI/O-Ext 1.1.1 Released</title><content type='html'>&lt;a href="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dear all,&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce the &lt;a href="http://java.net/projects/imageio-ext/"&gt;ImageI/O-Ext&lt;/a&gt; &lt;a href="http://java.net/projects/imageio-ext/downloads/directory/Releases/ImageIO-Ext/1.1.x/1.1.1"&gt;1.1.1&lt;/a&gt; release. With respect to 1.1.0, it adds support for the IDRISI Raster Format. This format should be soon be available in GeoTools and &lt;a href="http://www.geoserver.org/"&gt;GeoServer &lt;/a&gt;trunk.&lt;br /&gt;Release artifacts have been deployed on the &lt;a href="http://maven.geo-solutions.it/it/geosolutions/imageio-ext/"&gt;GeoSolutions maven repository&lt;/a&gt;, as well as on the &lt;a href="http://download.osgeo.org/webdav/geotools/it/geosolutions/imageio-ext/"&gt;OSGEO&lt;/a&gt; one.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-816242670024533990?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/816242670024533990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=816242670024533990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/816242670024533990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/816242670024533990'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/07/imageio-ext-111-released.html' title='ImageI/O-Ext 1.1.1 Released'/><author><name>Daniele Romagnoli</name><uri>http://www.blogger.com/profile/02482652185618374893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-748915195135900831</id><published>2011-07-13T05:27:00.000-07:00</published><updated>2011-07-13T05:59:29.142-07:00</updated><title type='text'>Developer corner: taming a massive style and get a performance speedup in the process</title><content type='html'>Hi all,&lt;br /&gt;recently a customer contacted us with an interesting problem: how do I display a large dataset fast, with the requirement that we want every feature with a different color (unique color approach)?&lt;br /&gt;&lt;br /&gt;I cannot show you the original dataset, but let's consider &lt;a href="http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/10m-admin-1-states-provinces-shp.zip"&gt;Natural Earth level 1 administrative subdivision&lt;/a&gt;: all provinces in the world. And let's say we want to give each of them a unique color, considering the are 3791 of them.&lt;br /&gt;&lt;br /&gt;The common SLD approach would make for a Rule with filter, and symbolizer, for every single one of them. Assuming 15 lines of SLD per rule, that would make for a SLD with roughly 57000 lines of XML. Ugh! So large that nothing will allow the upload of it... double ugh!&lt;br /&gt;As icing on the cake, for each feature on average 1900 rules would have to be evaluated in order to find the right color. Are you ready to way minutes for you map to be drawn?&lt;br /&gt;&lt;br /&gt;Enter SE 1.1 and the recode function. Recode allows a compact representation of a style in which one attribute value is to be associated to a particular color, or width, in a very compact form.&lt;br /&gt;Here is a portion of the SLD for the example at hand:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-ckQQXc9Qj4Q/Th2S18IIzdI/AAAAAAAAAIs/djUWFPLiM3M/s1600/style.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 280px;" src="http://3.bp.blogspot.com/-ckQQXc9Qj4Q/Th2S18IIzdI/AAAAAAAAAIs/djUWFPLiM3M/s400/style.png" alt="" id="BLOGGER_PHOTO_ID_5628816564653968850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The full SLD can be &lt;a href="http://demo.geo-solutions.it/share/provinces.sld"&gt;downloaded here&lt;/a&gt;. It's around 7600 lines, still quite big, but remember it condenses in a compact form over 3700 rules.&lt;br /&gt;&lt;br /&gt;Now, the function surely makes the SLD smaller, but was still quite slow. So we spent some time optimizing it for the common case where all the values and colors are static values, getting a tremendous speedup.&lt;br /&gt;&lt;br /&gt;How fast is it now? Brace yourself: by the naked eye, it's as fast as the plain style that assigns the same color to all the polygons, the style that has just a single rule.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-culimiY6bWw/Th2R7ToXsXI/AAAAAAAAAIk/BtjShsS2m98/s1600/provinces.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 267px;" src="http://4.bp.blogspot.com/-culimiY6bWw/Th2R7ToXsXI/AAAAAAAAAIk/BtjShsS2m98/s400/provinces.png" alt="" id="BLOGGER_PHOTO_ID_5628815557350895986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A larger version of the same map is &lt;a href="http://demo.geo-solutions.it/share/provinces-big.png"&gt;available here&lt;/a&gt;. This large version took half a second to generate.&lt;br /&gt;&lt;br /&gt;We hope that similar optimizations can be applied, in the future, to other SE useful functions, such as Categorize and Interpolate. Interested in the topic? &lt;a href="http://www.geo-solutions.it/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" style="cursor: move;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-748915195135900831?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/748915195135900831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=748915195135900831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/748915195135900831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/748915195135900831'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/07/developer-corner-taming-massive-style.html' title='Developer corner: taming a massive style and get a performance speedup in the process'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ckQQXc9Qj4Q/Th2S18IIzdI/AAAAAAAAAIs/djUWFPLiM3M/s72-c/style.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4938995896278670126</id><published>2011-07-12T08:35:00.000-07:00</published><updated>2011-07-20T02:09:19.778-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><title type='text'>Developer's Corner: GeoNetwork-Manager, super-simple Java client library for GeoNetwork</title><content type='html'>Dear All,&lt;br /&gt;we just wanted to spend a few words about a Java library we have just released under the &lt;a href="http://en.wikipedia.org/wiki/MIT_License"&gt;MIT license&lt;/a&gt; for talking to the &lt;b&gt;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; &lt;/b&gt;Open Source Project. We have named this library&lt;b&gt; &lt;a href="http://code.google.com/p/geonetwork-manager/"&gt;GeoNetwork-Manager&lt;/a&gt;&lt;/b&gt;&amp;nbsp;(once again, a lot of brainstorming behind that name, really...).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Basically the goal of this library is to provide a simple yet usable way to interface a Java application with the&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;&lt;b&gt;GeoNetwork&lt;/b&gt;&lt;/a&gt;&amp;nbsp;that would actually ease the work of the developers hiding away from them the relative complexity of theCSW protocol&amp;nbsp;without introducing a complex communication layer.&lt;/div&gt;&lt;div&gt;Here you have some basic facts about the library:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;minimum set of external dependencies, namely &lt;a href="http://hc.apache.org/"&gt;apache-http-common&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.jdom.org/"&gt;jdom&lt;/a&gt;&lt;/li&gt;&lt;li&gt;dead-easy API, see examples &lt;a href="http://code.google.com/p/geonetwork-manager/wiki/Examples"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;works with&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;&lt;b&gt;GeoNetwork&lt;/b&gt;&lt;/a&gt;&amp;nbsp;2.1 and 2.0.X&lt;/li&gt;&lt;li&gt;allows to performa basic operations:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Insert&lt;/li&gt;&lt;li&gt;Reset Privileges&lt;/li&gt;&lt;li&gt;Delete&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href="http://code.google.com/p/geonetwork-manager/"&gt;GeoNetwork-Manager&lt;/a&gt;&amp;nbsp;&lt;/b&gt;is open source and licenced under the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/MIT_License"&gt;MIT License&lt;/a&gt;.&amp;nbsp;This library draws its essence from the efforts endured inside&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt;&amp;nbsp;in various projects. Partial funding has been provided by&amp;nbsp;the &lt;a href="http://geo-solutions.blogspot.com/2011/05/briseide-project-geoserver-geonetwork.html"&gt;&lt;b&gt;BRISEIDE&lt;/b&gt;&lt;/a&gt; project..&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Our intent is to keep this library &lt;b&gt;lean and mean&lt;/b&gt;, therefore we do not intend to add complex stuff like a de/deserializable entity model into it, since we want to use it as a simple yet powerful communication layer with the&amp;nbsp;&lt;a href="http://geonetwork-opensource.org/"&gt;&lt;b&gt;GeoNetwork&lt;/b&gt;&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you have questions or if you just want to talk to us about the using the library in your project, please, subscribe to the mailing list &lt;a href="https://groups.google.com/group/geoserver-manager-users"&gt;here&lt;/a&gt;. In any case, do not hesitate to &lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4938995896278670126?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4938995896278670126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4938995896278670126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4938995896278670126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4938995896278670126'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/07/developers-corner-geonetwork-manager.html' title='Developer&apos;s Corner: GeoNetwork-Manager, super-simple Java client library for GeoNetwork'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4856331366280018585</id><published>2011-07-04T11:58:00.000-07:00</published><updated>2011-07-04T08:32:47.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>GeoSolutions @ FOSS4G 2011</title><content type='html'>&lt;div&gt;&lt;a href="http://2011.foss4g.org/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2011.foss4g.org/sites/2011-test.foss4g.org/files/acquia_prosper_logo.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Dear All,&lt;br /&gt;it looks like we will have some busy times at &lt;a href="http://2011.foss4g.org/"&gt;FOSS4G&lt;/a&gt; this year.&lt;br /&gt;If you check the schedule &lt;a href="http://bit.ly/jsqFzt"&gt;here&lt;/a&gt; you can see a few interesting talks that we will give, let's group them by topic:&lt;br /&gt;&lt;br /&gt;GeoServer&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/state-geoserver"&gt;The State of GeoServer&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/geoserver-steroids"&gt;GeoServer on steroids&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/advanced-cartographic-map-rendering-geoserver"&gt;Advanced cartographic map rendering in GeoServer&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/raster-data-geoserver-and-geotools-achievements-issues-and-future-developments"&gt;Raster data in GeoServer and GeoTools: Achievements, issues and future developments&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/status-geoserver-wps"&gt;The status of GeoServer WPS&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;GeoTools&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/raster-data-geoserver-and-geotools-achievements-issues-and-future-developments"&gt;Raster data in GeoServer and GeoTools: Achievements, issues and future developments&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://2011.foss4g.org/sessions/status-geotools-project"&gt;Status of the GeoTools project&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;JAITools&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strike&gt;&lt;a href="http://2011.foss4g.org/sessions/jai-tools-advances-java-image-processing" style="font-weight: bold; text-decoration: underline;"&gt;jai-tools: advances in Java image processing&lt;/a&gt;&lt;/strike&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, it is encouraging to see that people are interested in what we are doing, all the effort we put into doing Open Source software is producing value for the larger community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Are you curious to know more about the latest developments we have done? Interested in knowing how we can help your organization reach your goals? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Contact us! &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4856331366280018585?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4856331366280018585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4856331366280018585' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4856331366280018585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4856331366280018585'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/07/geosolutions-foss4g-2011.html' title='GeoSolutions @ FOSS4G 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>2</thr:total><georss:featurename>Via Poggio alle Viti, 55049 Viareggio LU, Italia</georss:featurename><georss:point>43.8731336 10.279530300000033</georss:point><georss:box>43.8723911 10.279171300000034 43.873876100000004 10.279889300000033</georss:box></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-9124692019717983946</id><published>2011-06-26T23:56:00.000-07:00</published><updated>2011-06-30T10:28:54.007-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><title type='text'>GeoServer 2.1 workshop available for free!</title><content type='html'>&lt;div&gt;&lt;a href="http://demo.geo-solutions.it/share/osgis2011/OSGIS2011-LiveDVD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://demo.geo-solutions.it/share/osgis2011/OSGIS2011-LiveDVD.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Dear All,&lt;br /&gt;a quick post to just let you know that &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;is sharing an introductory workshop on &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.1.&lt;br /&gt;&lt;br /&gt;The material comprises of:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;a lightweight Ubuntu-based ISO&lt;/li&gt;&lt;li&gt;a preconfigured&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;data directory&lt;/li&gt;&lt;li&gt;the workshop itself, as a set of html files&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;The ISO file can be run either using Virtual Box or the VMWare Player. As an alternative you can burn it on a CD and you can use it as a Live Ubuntu or install it on your system.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once you get it up and running, the installation contains:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;An instance of the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;2.1.x stable nightly .&lt;/li&gt;&lt;li&gt;PostgreSQL with Postgis&lt;/li&gt;&lt;li&gt;&lt;a href="http://udig.refractions.net/"&gt;UDIG&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;The topics covered in this workshop are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Installing and running &lt;/b&gt;GeoServer&lt;b&gt;: &lt;/b&gt;describes how to install and run GeoServer&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Adding Data to&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;: &lt;/b&gt;explains how to manage the GeoServer Data Directory as well as how to add the base data types into GeoServer, like ShapeFile, GeoTIFF as well as PostGIS data. &lt;b&gt;Examples and informations about SQL Parametric Views and WMS cascading support are also provided.&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Pretty maps with GeoServer:&amp;nbsp;&lt;/b&gt;describes how to manage the GeoServer maps visualizzation. All aspects related to styles, layer groups and other interesting GeoServer features affecting the WMS protocol will be introduced&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;GeoWebCache Integration:&lt;/b&gt;&amp;nbsp;provides additional information about the tighter integration between GeoWebCache and&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Google Earth and Maps support:&amp;nbsp;&lt;/b&gt;introduces&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;support for KML and Google Earth. The reader will learn how to view GeoServer data in Google Earth, and will be exposed to some of the more advanced features of KML output.&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;You can download the workshop from here:&lt;br /&gt;&lt;div&gt;&lt;a href="http://demo.geo-solutions.it/share/osgis2011/"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TOk8j_CgHlI/AAAAAAAAAM8/bOQ98-ZfoM0/s1600/download_button.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In case you find errors or issues, or in case you want to know more about &lt;a href="http://www.geo-solutions.it/services/"&gt;our services&lt;/a&gt; with regards to training, please &lt;a href="http://www.geo-solutions.it/contact/"&gt;contact us&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team,&lt;br /&gt;&lt;a href="http://dwww.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-9124692019717983946?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/9124692019717983946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=9124692019717983946' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/9124692019717983946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/9124692019717983946'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/geoserver-21-workshop-available-for.html' title='GeoServer 2.1 workshop available for free!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0_xIiXP5xuY/TOk8j_CgHlI/AAAAAAAAAM8/bOQ98-ZfoM0/s72-c/download_button.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6021612504373094460</id><published>2011-06-21T02:53:00.000-07:00</published><updated>2011-06-22T02:49:46.969-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GDAL'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio-ext'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio'/><title type='text'>ImageI/O-Ext 1.1.0 Released</title><content type='html'>&lt;a href="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" border="0" height="176" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dear all,&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce the &lt;a href="http://java.net/projects/imageio-ext/"&gt;ImageI/O-Ext&lt;/a&gt; &lt;a href="http://java.net/projects/imageio-ext/downloads/directory/Releases/ImageIO-Ext/1.1.x/1.1.0"&gt;1.1.0&lt;/a&gt; release. It replaces the 1.1-RC1 release (by also adding BSB and CADRG RPFTOC plugins through GDAL).&lt;br /&gt;Changes with respect to &lt;span class="il"&gt;1.0.x&lt;/span&gt; series can be summarised as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Out-of-the-box&lt;/b&gt; Support for &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt; &lt;a href="http://java.net/projects/imageio-ext/downloads/directory/Releases/Dependencies/GDAL/NativeLibraries/1.7.3"&gt;1.7.3&lt;/a&gt;, which means no more patches are needed for GDAL Java bindings in order to access it from ImageI/O-Ext.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.awaresystems.be/imaging/tiff/bigtiff.html"&gt;&lt;b&gt;BigTiff&lt;/b&gt;&lt;/a&gt; support, breaking the 4GB TIFF limit.&lt;/li&gt;&lt;li&gt;&lt;b&gt;EnhancedImageReadParam &lt;/b&gt;support. It extends the standard &lt;a href="http://download.oracle.com/javase/6/docs/api/javax/imageio/ImageReadParam.html"&gt;ImageReadParam&lt;/a&gt; by implementing Cloneable (used when supporting &lt;b&gt;MultiThreading &lt;/b&gt;read operation) and a new &lt;b&gt;DestinationRegion&lt;/b&gt; param to support oversampling/subsampling without specifying &lt;a href="http://download.oracle.com/javase/6/docs/api/javax/imageio/IIOParam.html#setSourceSubsampling%28int,%20int,%20int,%20int%29"&gt;sourceSubSampling&lt;/a&gt; parameters. This may be used when dealing with readers which internally take care of performing subSampling/overSampling, such as the &lt;b&gt;GDALImageReader&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Experimental multidimension plugin for reading spatiotemporal sources like:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;netCDF raster files following the Climate and Forecast (&lt;a href="http://bit.ly/RugiU"&gt;CF&lt;/a&gt;) convention&lt;/li&gt;&lt;li&gt;GriB &lt;a href="http://bit.ly/ik1f2e"&gt;edition 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;HDF version 4&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Release artifacts have been deployed on the &lt;a href="http://maven.geo-solutions.it/it/geosolutions/imageio-ext/"&gt;GeoSolutions maven repository&lt;/a&gt;, as well as on the &lt;a href="http://download.osgeo.org/webdav/geotools/it/geosolutions/imageio-ext/"&gt;OSGEO&lt;/a&gt; one.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6021612504373094460?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6021612504373094460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6021612504373094460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6021612504373094460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6021612504373094460'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/imageio-ext-110-released.html' title='ImageI/O-Ext 1.1.0 Released'/><author><name>Daniele Romagnoli</name><uri>http://www.blogger.com/profile/02482652185618374893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4857379513648685866</id><published>2011-06-20T00:21:00.000-07:00</published><updated>2011-06-20T00:21:57.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>GeoSolutions @ OSGIS 2011</title><content type='html'>&lt;div&gt;&lt;a href="https://confluence.prodevelop.es/download/attachments/11666880/osgis.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://confluence.prodevelop.es/download/attachments/11666880/osgis.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Dear All,&lt;br /&gt;just a quick note to inform our followers that &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;' founders &lt;a href="http://www.linkedin.com/in/simonegiannecchini"&gt;Simone Giannecchini&lt;/a&gt; and &lt;a href="http://www.linkedin.com/in/alessiofabiani"&gt;Alessio Fabiani&lt;/a&gt; will be present at &lt;a href="http://www.opensourcegis.org.uk/"&gt;OSGIS 2011&lt;/a&gt; on Tuesday and Wednesday (21st and 22nd).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/products/geoserver-box-1__.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.geo-solutions.it/products/geoserver-box-1__.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As per the agenda, &lt;a href="http://www.linkedin.com/in/alessiofabiani"&gt;Alessio Fabiani&lt;/a&gt; and &lt;a href="http://www.linkedin.com/in/simonegiannecchini"&gt;Simone Giannecchini&lt;/a&gt;, will be giving an introductory workshop on &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.1 on the 21st, moreover on the 22nd&amp;nbsp;&lt;a href="http://www.linkedin.com/in/simonegiannecchini"&gt;Simone Giannecchini&lt;/a&gt;&amp;nbsp;will be talking about &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;2.1 (&lt;a href="http://bit.ly/iWUayC"&gt;here&lt;/a&gt; you can find the slides for the talk).&lt;br /&gt;As usual, we will make the workshop available for download for free from our website shortly after the conference. This time we should also make the material available for download separately.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If you are around and you are interested in knowing more about the latest advances for &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;or if you are interested in knowing more about &lt;a href="http://www.geo-solutions.it/"&gt;who we are&lt;/a&gt; and &amp;nbsp;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;what we do&lt;/a&gt;, just look for us!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4857379513648685866?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4857379513648685866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4857379513648685866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4857379513648685866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4857379513648685866'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/geosolutions-osgis-2011.html' title='GeoSolutions @ OSGIS 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8448039625376895866</id><published>2011-06-13T00:27:00.000-07:00</published><updated>2011-06-13T00:27:17.481-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='osgis'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><title type='text'>GeoServer 2.1 presentation for OSGIS 2011</title><content type='html'>&lt;div id="__ss_8287264" style="width: 510px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/geosolutions/geoserver-osgis-2011" title="GeoServer @ Osgis 2011 "&gt;GeoServer @ Osgis 2011 &lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder="0" height="426" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/8287264" width="510"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/geosolutions"&gt;GeoSolutions&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;Interested in knowing more about the latest advances for &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Contact us! &lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8448039625376895866?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8448039625376895866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8448039625376895866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8448039625376895866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8448039625376895866'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/geoserver-21-presentation-for-osgis.html' title='GeoServer 2.1 presentation for OSGIS 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5636119953457122810</id><published>2011-06-02T01:30:00.000-07:00</published><updated>2011-06-05T08:27:50.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Job Offer @ GeoSolutions</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img src="http://danieleparlante.files.wordpress.com/2007/09/i-want-you.jpg?w=600" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&lt;/b&gt; is looking for talented&amp;nbsp;software engineers to fill a Junior GeoServer Developer position which would involve:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; designing and implementing new GeoServer features&lt;/li&gt;&lt;li&gt;performing day-by-day bug fixing&lt;/li&gt;&lt;li&gt;mantainance of existing installations.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;The candidate will be&amp;nbsp; based in Rome (at least for the first 6 to 12 months), working on-site at the HQ of one of our largest clients.&lt;br /&gt;Required qualifications are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Working&amp;nbsp;knowledge of Java (JEE and JSE)&lt;/li&gt;&lt;li&gt;Working knowledge of&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;&lt;b&gt;GeoServer&lt;/b&gt;&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Working knowledge of OpenLayers is a plus&lt;/li&gt;&lt;li&gt;At least 1 year of experience&amp;nbsp;&lt;/li&gt;&lt;li&gt;Being fluent in English, both written and spoken&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;We offer a variety of contracts but, please, notice that our intention is to establish a long term relationship, therefore &lt;b&gt;this is not a position for freelance consultants&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Working remotely is an option, although we will give priority to candidate closer to our office and/or close to Rome where the candidate will be initially based.&lt;br /&gt;&lt;br /&gt;Please send a detailed resume together with a letter of presentation at jobs_at_geo-solutions.it.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5636119953457122810?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5636119953457122810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5636119953457122810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5636119953457122810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5636119953457122810'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/job-offer-geosolutions_02.html' title='Job Offer @ GeoSolutions'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1821791563976924270</id><published>2011-06-01T02:24:00.000-07:00</published><updated>2011-06-05T08:28:53.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Job Offer @ GeoSolutions</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img src="http://danieleparlante.files.wordpress.com/2007/09/i-want-you.jpg?w=600" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;&lt;/b&gt;è alla ricerca di&amp;nbsp;&amp;nbsp;software engineer di talento per coprire una posizione come&lt;b&gt; Junior GeoServer Developer&lt;/b&gt;. Le mansioni sono le seguenti&lt;br /&gt;&lt;ul&gt;&lt;li&gt; designing and implementing new GeoServer features&lt;/li&gt;&lt;li&gt;performing day-by-day bug fixing&lt;/li&gt;&lt;li&gt;mantainance of existing installations.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Il candidato lavorerà a Roma (almeno per i primi 6 - 12 mesi) presso la sede di uno dei nostri clienti principali. E' comunque previsto un eventuale periodo di formazione iniziale, qualora fosse ritenuto necessario.&lt;br /&gt;&lt;br /&gt;Le qualifiche richieste sono le seguenti:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Working&amp;nbsp;knowledge of Java (JEE and JSE)&lt;/li&gt;&lt;li&gt;Working knowledge of&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;&lt;b&gt;GeoServer&lt;/b&gt;&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Working knowledge of OpenLayers is a plus&lt;/li&gt;&lt;li&gt;Almeno un anno di esperienza nel settore specifico e con le tecnologie indicate&lt;/li&gt;&lt;li&gt;Ottimo inglese scritto e parlato. La lingua ufficiale parlata nella sede del cliente è l'inglese&lt;/li&gt;&lt;/ul&gt;L'offerta contrattuale è legata alla esperienza del candidato ed alla eventuale necessità di trasloco. Riteniamo comunque&amp;nbsp;opportuno&amp;nbsp;sottolineare come il nostro intento sia quello di creare un rapporto duraturo di collaborazione che si estenda oltre la opportunità specifica presso il cliente in questione.&lt;br /&gt;&lt;br /&gt;Sara' data priorità a candidati che risiedono vicino alla sede del cliente o vicino alla nostra sede. Comunque sia chiediamo sin da subito disponibilità a brevi trasferte anche all'estero e comunque a trasferirsi vicino alla nostra sede in caso sia ritenuto necessario.&lt;br /&gt;&lt;br /&gt;Chiunque fosse interessato è pregato di inviare un CV aggiornato, accompagnato se possibile da lettera di presentazione, a&amp;nbsp;jobs_at_geo-solutions.it.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;&lt;b&gt;GeoSolutions&lt;/b&gt;&lt;/a&gt; team,&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1821791563976924270?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1821791563976924270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1821791563976924270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1821791563976924270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1821791563976924270'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/06/job-offer-geosolutions.html' title='Job Offer @ GeoSolutions'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5261662211262727299</id><published>2011-05-30T01:49:00.000-07:00</published><updated>2011-05-30T14:36:08.551-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><title type='text'>GeoNetwork in da cloud!</title><content type='html'>&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://geonetwork-opensource.org/_static/chrome/geonetwork-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" src="http://geonetwork-opensource.org/_static/chrome/geonetwork-logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce that &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; is now available on the &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; infrastructure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; provides services that make it quick and easy to run open source applications in the cloud allowing users to focus on putting applications rather than worrying about the servers that run them. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; provides point-and-click application deployment and management on your cloud of choice with instant access to hosted applications. Focus on portability ensures no providers lock-in, so moving applications to a different cloud provider is a matter of a single click, at any time, for any reason.&lt;br /&gt;&lt;br /&gt;Between available &lt;a href="http://www.standingcloud.com/cloudpartners"&gt;cloud partners&lt;/a&gt;, we have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Amazon Web Services&lt;/li&gt;&lt;li&gt;GoGrid&lt;/li&gt;&lt;li&gt;Linode&lt;/li&gt;&lt;li&gt;Slicehost&lt;/li&gt;&lt;li&gt;Rackspace Cloud&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; has joined the Partner Program of &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; and it is now listed as &lt;a href="http://www.standingcloud.com/network/partner/geosolutions"&gt;Solution Partner&lt;/a&gt; for &lt;a href="http://www.standingcloud.com/app_network/all/geoserver"&gt;GeoServer&lt;/a&gt; and will soon be listed for &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;  as well. We have worked with the &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; team to integrate &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; 2.6.3 in their application network, &lt;b&gt;so that now people can install and deploy a &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;instance in less than 15 minutes with no system administration skills!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Just look at the screenshots below, in 10 minutes with a few clicks I have gone from nothing to having &lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt; running.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-gzVNXFBMhdc/TdI6jIVAYMI/AAAAAAAAAZw/pkiHl7Ugrzk/s1600/Clipboard01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://3.bp.blogspot.com/-gzVNXFBMhdc/TdI6jIVAYMI/AAAAAAAAAZw/pkiHl7Ugrzk/s320/Clipboard01.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-VQ6DBvkLC2I/TdI6m_1RLwI/AAAAAAAAAZ0/mVy933xbpXs/s1600/Clipboard02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://2.bp.blogspot.com/-VQ6DBvkLC2I/TdI6m_1RLwI/AAAAAAAAAZ0/mVy933xbpXs/s320/Clipboard02.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-K37iyZXxh9s/TdI6rmdTZeI/AAAAAAAAAZ4/2hUHwYokbcM/s1600/Clipboard03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://2.bp.blogspot.com/-K37iyZXxh9s/TdI6rmdTZeI/AAAAAAAAAZ4/2hUHwYokbcM/s320/Clipboard03.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-yROkqEgPoX0/TdI6uTE0AWI/AAAAAAAAAZ8/ZKZP3ojjaWg/s1600/Clipboard05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://1.bp.blogspot.com/-yROkqEgPoX0/TdI6uTE0AWI/AAAAAAAAAZ8/ZKZP3ojjaWg/s320/Clipboard05.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;So &lt;a href="http://www.standingcloud.com/console/configurator/trial/singleInstall?applicationName=geoserver"&gt;log in&lt;/a&gt; and have fun with &lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;a href="http://geonetwork-opensource.org/"&gt;GeoNetwork&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &lt;/span&gt;in da cloud&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If you have questions about the work described in this post, or if you want to know more about how &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;our services&lt;/a&gt; could help your organization reaching its goals, do not hesitate to &lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/" imageanchor="1"&gt;&lt;img border="0" src="https://lh3.googleusercontent.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5261662211262727299?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5261662211262727299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5261662211262727299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5261662211262727299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5261662211262727299'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/05/geonetwork-in-da-cloud.html' title='GeoNetwork in da cloud!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-gzVNXFBMhdc/TdI6jIVAYMI/AAAAAAAAAZw/pkiHl7Ugrzk/s72-c/Clipboard01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6822939532055610003</id><published>2011-05-23T00:13:00.000-07:00</published><updated>2011-05-23T03:45:53.248-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='ImageServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='openlayers'/><title type='text'>Developer's Corner: Turning GeoServer into an ImageServer</title><content type='html'>&lt;div&gt;Dear All,&lt;br /&gt;we would like to briefly talk about some of the lastest developments we have performed at &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; in order to turn &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; into an &lt;a href="http://en.wikipedia.org/wiki/Image_server"&gt;ImageServer&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;So far &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; has not been able to publish single non georeferenced images as WMS layers, it always required a valid &lt;a href="http://en.wikipedia.org/wiki/International_Association_of_Oil_and_Gas_Producers"&gt;EPSG&lt;/a&gt; for specifying a well-known geospatial &lt;a href="http://en.wikibooks.org/wiki/Coordinate_Reference_Systems_and_Positioning"&gt;coordinate reference system&lt;/a&gt;. Lately, we have been working with OpenGeo on an application whose goal was to allow users to view non-georeferenced images through a WebGis based on &lt;a href="http://openlayers.org/"&gt;OpenLayers&lt;/a&gt;. We decided to take the risk to modify the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; and allow it to serve pure imagery via the WMS protocol. First thing we did was to define an EPSG code with a valid identifier that could convey enough information to have clients understand we were serving a pure image. The debate on the GeoTools mailing list was long but helpful, see the following links for reference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://bit.ly/mbRnG6"&gt;http://bit.ly/mbRnG6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://bit.ly/mbRnG6"&gt;http://bit.ly/mbRnG6&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://bit.ly/mSpujc"&gt;http://bit.ly/mSpujc&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Long story short, we followed  &lt;a href="http://how2map.blogspot.com/"&gt;Jody Garnett&lt;/a&gt;'s suggestion to define an EPSG identifier using the code &lt;strong&gt;404000&lt;/strong&gt; for a 2D wildcard coordinate reference system in meter as shown &lt;a href="http://demo.geo-solutions.it:8088/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.web.demo.SRSDescriptionPage&amp;amp;code=EPSG:404000"&gt;here&lt;/a&gt;. For those who know what a &lt;a href="http://en.wikipedia.org/wiki/Well-known_text"&gt;WKT&lt;/a&gt; is, we are showing it here below&lt;/div&gt;&lt;br /&gt;&lt;div&gt;LOCAL_CS["Wildcard 2D cartesian plane in metric unit",&lt;br /&gt;LOCAL_DATUM["Unknown", 0],&lt;br /&gt;UNIT["m", 1.0],&lt;br /&gt;AXIS["x", EAST],&lt;br /&gt;AXIS["y", NORTH],&lt;br /&gt;AUTHORITY["EPSG","404000"]]&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you are curios, here below you can see an simple non-georeferenced Jpeg shown in &lt;a href="http://openlayers.org/"&gt;OpenLayers&lt;/a&gt;:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://demo.geo-solutions.it:8088/geoserver/wms?service=WMS&amp;amp;version=1.1.0&amp;amp;request=GetMap&amp;amp;layers=it.geosolutions:GeoSolutionsImages&amp;amp;styles=&amp;amp;bbox=0.0,-1055.0,755.0,0.0&amp;amp;width=500&amp;amp;height=750&amp;amp;srs=EPSG:404000&amp;amp;format=application/openlayers&amp;amp;CQL_FILTER=PATH='img0001.jpg'"&gt;&lt;img alt="" border="0" height="223" src="http://3.bp.blogspot.com/-qKkjKKIB0aQ/TdAC_jHjymI/AAAAAAAAAZU/IFIfQPoHiHY/s400/geosolutions.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you want to play with a live demo (we do not guarantee it will be up forever though...) you can follow &lt;a href="http://demo.geo-solutions.it:8088/geoserver/wms?service=WMS&amp;amp;version=1.1.0&amp;amp;request=GetMap&amp;amp;layers=it.geosolutions:GeoSolutionsImages&amp;amp;styles=&amp;amp;bbox=0.0,-1055.0,755.0,0.0&amp;amp;width=500&amp;amp;height=750&amp;amp;srs=EPSG:404000&amp;amp;format=application/openlayers&amp;amp;CQL_FILTER=PATH='img0001.jpg'"&gt;this link&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you want to know more about this development or if you are interested in knowing how &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; can help your organization to reach its goals, feel free to &lt;a href="http://www.geo-solutions.it/contact/"&gt;contact us&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" class="c1" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6822939532055610003?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6822939532055610003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6822939532055610003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6822939532055610003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6822939532055610003'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/05/developers-corner-turning-geoserver.html' title='Developer&apos;s Corner: Turning GeoServer into an ImageServer'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qKkjKKIB0aQ/TdAC_jHjymI/AAAAAAAAAZU/IFIfQPoHiHY/s72-c/geosolutions.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6978701853345266972</id><published>2011-05-17T06:18:00.000-07:00</published><updated>2011-05-18T08:31:58.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>GeoServer upgraded to 2.0.3 release on Standing Cloud!</title><content type='html'>&lt;div&gt;&lt;a href="http://www.standingcloud.com/taxonomy/term/509"&gt;&lt;img border="0" height="140" src="https://lh6.googleusercontent.com/-JSnuJ2BjrQ4/TYroUzWYU7I/AAAAAAAAAQU/jF6YUhWH2sM/s400/v4_c_300.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce that &lt;a href="http://www.geo-solutions.it/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;has been upgraded from 2.0.2 to 2.0.3 (check the announcement for &amp;nbsp;&lt;a href="http://blog.geoserver.org/2011/03/24/geoserver-2-0-3-and-2-1-rc3-released/"&gt;2.0.3&lt;/a&gt;) on the&amp;nbsp;&lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; infrastructure. Notice that we have&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;2.1 series on the radar for the next round of upgrades.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; provides simple, powerful, services that make it fast and easy to run open source applications in the cloud allowingusers to focus on putting applications at work in the cloud rather than worrying about the servers that run them.&amp;nbsp; &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; makes it point-and-click easy to deploy and manage applications on your cloud of choice since it&amp;nbsp; provides instant access to host applications on many cloud providers. Focus on portability ensures no providers lock-in which means that moving applications to a different cloud provider with a single click, at any time, for any reason, is feasible.&lt;br /&gt;&lt;br /&gt;Between available cloud partners, we have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Amazon Web Services&lt;/li&gt;&lt;li&gt;GoGrid&lt;/li&gt;&lt;li&gt;Linode&lt;/li&gt;&lt;li&gt;Slicehost&lt;/li&gt;&lt;li&gt;Rackspace Cloud&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; has joined the Partner Program of &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; and it is now listed as &lt;a href="http://www.standingcloud.com/network/partner/geosolutions"&gt;Solution Partner&lt;/a&gt; for &lt;a href="http://www.standingcloud.com/app_network/all/geoserver"&gt;GeoServer&lt;/a&gt;. We have worked with the &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; team to integrate GeoServer 2.0.3 in their application network, &lt;b&gt;so that now people can install and deploy a GeoServer instance in less than 15 minutes with no system administration skills!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Just look at the screenshots below, in 10 minutes with a few clicks I have gone from nothing to having &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt; running:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="https://lh6.googleusercontent.com/-NJ18NZ7A78g/TYou23_kGoI/AAAAAAAAAP8/2I6Py3HY198/s1600/cloud1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="99" src="https://lh6.googleusercontent.com/-NJ18NZ7A78g/TYou23_kGoI/AAAAAAAAAP8/2I6Py3HY198/s320/cloud1.jpg" width="320" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://lh3.googleusercontent.com/-VhKItTlQw3c/TYou-TU_h3I/AAAAAAAAAQA/IvVHc6if0xo/s1600/cloud2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="https://lh3.googleusercontent.com/-VhKItTlQw3c/TYou-TU_h3I/AAAAAAAAAQA/IvVHc6if0xo/s320/cloud2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="https://lh3.googleusercontent.com/-F-SevT_bmbU/TYovIOdsc7I/AAAAAAAAAQE/XM2yAiCpxBE/s1600/cloud3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="https://lh3.googleusercontent.com/-F-SevT_bmbU/TYovIOdsc7I/AAAAAAAAAQE/XM2yAiCpxBE/s320/cloud3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="https://lh6.googleusercontent.com/-Qvrlyk5rwIk/TYowIEJf9zI/AAAAAAAAAQI/XA24InKK4Bg/s1600/cloud4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="https://lh6.googleusercontent.com/-Qvrlyk5rwIk/TYowIEJf9zI/AAAAAAAAAQI/XA24InKK4Bg/s320/cloud4.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="https://lh5.googleusercontent.com/-_yjCCV085N4/TYowx76LANI/AAAAAAAAAQM/lmof1JpeVYw/s1600/cloud5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="https://lh5.googleusercontent.com/-_yjCCV085N4/TYowx76LANI/AAAAAAAAAQM/lmof1JpeVYw/s320/cloud5.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;So &lt;a href="http://www.standingcloud.com/console/configurator/trial/singleInstall?applicationName=geoserver"&gt;log in&lt;/a&gt; and have fun with  &lt;b&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoServer&lt;/a&gt; in da cloud&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.standingcloud.com/taxonomy/term/509"&gt;&lt;img border="0" height="75" src="https://lh4.googleusercontent.com/-LEDZ_PEOGjg/TYrowXPUXxI/AAAAAAAAAQY/hRMuWOwkeUA/s400/GeoServer-in-da-Cloud_s.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="https://lh3.googleusercontent.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6978701853345266972?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6978701853345266972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6978701853345266972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6978701853345266972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6978701853345266972'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/05/geoserver-upgraded-to-203-release-on.html' title='GeoServer upgraded to 2.0.3 release on Standing Cloud!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-JSnuJ2BjrQ4/TYroUzWYU7I/AAAAAAAAAQU/jF6YUhWH2sM/s72-c/v4_c_300.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8473790574771599137</id><published>2011-05-11T00:25:00.000-07:00</published><updated>2011-05-11T01:40:45.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Developer's Corner: GeoServer-Manager, super-simple Java client library for GeoServer</title><content type='html'>Dear All,&lt;br /&gt;we just wanted to spend a few words about a Java library we have just released under the &lt;a href="http://en.wikipedia.org/wiki/MIT_License"&gt;MIT license&lt;/a&gt; for talking to the &lt;b&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&lt;/b&gt; &lt;a href="http://docs.geoserver.org/stable/en/user/restconfig/index.html"&gt;&lt;b&gt;REST interface&lt;/b&gt;&lt;/a&gt;. We have named this library &lt;a href="http://code.google.com/p/geoserver-manager/"&gt;GeoServer-Manager&lt;/a&gt;&amp;nbsp;(yeah, a lot of brainstorming behind that name, really...).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Basically the goal of this library is to provide a simple yet usable way to interface a Java application with the&amp;nbsp;&lt;b&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/b&gt;that would actually ease the work of the developers hiding away from them the relative complexity of the&amp;nbsp;&lt;b&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;a href="http://docs.geoserver.org/stable/en/user/restconfig/index.html" style="font-weight: bold;"&gt;REST interface&lt;/a&gt;&amp;nbsp;without introducing a complex communication layer.&lt;/div&gt;&lt;div&gt;Here you have some basic facts about the library:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;minimum set of external dependencies, namely &lt;a href="http://hc.apache.org/"&gt;apache-http-common&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.jdom.org/"&gt;jdom&lt;/a&gt;&lt;/li&gt;&lt;li&gt;dead-easy API, see examples &lt;a href="http://code.google.com/p/geoserver-manager/wiki/Documentation"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;works with&amp;nbsp;&lt;b&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/b&gt;2.1 and 2.0.X&lt;/li&gt;&lt;li&gt;allows to interact with most common formats:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;geotiff&lt;/li&gt;&lt;li&gt;shapefile&lt;/li&gt;&lt;li&gt;postgis&lt;/li&gt;&lt;li&gt;mosaic&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/geoserver-manager/"&gt;GeoServer-Manager&lt;/a&gt;&amp;nbsp;is open source and licenced under the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/MIT_License"&gt;MIT License&lt;/a&gt;.&amp;nbsp;This library draws its essence from the efforts endured inside&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;in various projects. Partial funding has been provided by&amp;nbsp;&lt;a href="http://www.fao.org/"&gt;FAO&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Our intent is to keep this library &lt;b&gt;lean and mean&lt;/b&gt;, therefore we do not intend to add complex stuff like a de/deserializable entity model into it, since we want to use it as a simple yet powerful communication layer with the &lt;b&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;a href="http://docs.geoserver.org/stable/en/user/restconfig/index.html" style="font-weight: bold;"&gt;REST interface&lt;/a&gt;. However, we have on the radar the possibility to reuse this library in order to build a web service to provide means to interact with the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; internal configuration via other protocols like SOAP or Spring Remoting.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;If you have questions or if you just want to talk to us about the using the library in your project, please, subscribe to the mailing list &lt;a href="https://groups.google.com/group/geoserver-manager-users"&gt;here&lt;/a&gt;. In any case, do not hesitate to &lt;a href="http://www.geo-solutions.it/"&gt;contact us&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8473790574771599137?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8473790574771599137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8473790574771599137' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8473790574771599137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8473790574771599137'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/05/developers-corner-geoserver-manager.html' title='Developer&apos;s Corner: GeoServer-Manager, super-simple Java client library for GeoServer'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-756188338138957536</id><published>2011-05-04T08:44:00.000-07:00</published><updated>2011-10-20T05:58:46.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoRepository'/><title type='text'>Preview: GeoRepository, advanced authorization manager for GeoServer</title><content type='html'>Dear All,&lt;br /&gt;in this post we would like to introduce an application we have developer here at &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; in order to cope with the requirements coming from enterprise deployments in terms of Authentication and Authorization for &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;; its name is&amp;nbsp;&lt;strong&gt;GeoRepository&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Whoever has been facing the technical problems involved with deploying &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; inside an enterprise infrastructure following the &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;SOA&lt;/a&gt;&amp;nbsp;paradigm knows that in such context Authorization and Authentication capabilities are usually provided by external services in order to centralize such feature, fostering reuse of existing capabilities, minimize risk of duplication of functionalities as well as to avoid duplication of users' credentials. Moreover in such context &lt;strong&gt;Single Sign On (SSO)&lt;/strong&gt; services are usually a must-have.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; comes with an &lt;a href="http://docs.geoserver.org/latest/en/user/security/index.html"&gt;integrated security subsystem&lt;/a&gt; that is able to handle both Authentication and Authorization which is quite powerful and customizable, however we had the need to extend it further in order to be able to provide fine grained control over users' authorizations as well as in order to better integrate with existing A&amp;amp;A services.&lt;br /&gt;&lt;br /&gt;A typical and yet simple usage scenario for &lt;strong&gt;GeoRepository&lt;/strong&gt; is depicted here below.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://4.bp.blogspot.com/-FcluVMREQsQ/TcEWRgR-ipI/AAAAAAAAAVU/iFOl_y6VKOU/s1600/GeoRepo-SINpeersarchENG.jpg"&gt;&lt;img alt="" border="0" height="289" src="http://4.bp.blogspot.com/-FcluVMREQsQ/TcEWRgR-ipI/AAAAAAAAAVU/iFOl_y6VKOU/s320/GeoRepo-SINpeersarchENG.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In these setups GeoServer is normally not exposed directly, there is normally a load balancer as well as an Apache configured to perform duties such as single sign on authentication, SSL encryption and connection with external monitoring tools such as Nagios or Hyperic.&lt;br /&gt;As suggested the authentication is performed by Apache HTTPD via &lt;strong&gt;LDAP&lt;/strong&gt;; &lt;a href="http://www.geoserver.org/"&gt;GeoServe&lt;/a&gt;r will therefore be responsible only for the authorization based on the current user. In order to do this, &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp; communicates with &lt;strong&gt;GeoRepository&lt;/strong&gt; in order to retrieve users' authorizations query limits (we will get to this later) and then applies them accordingly to the incoming requests (thus avoiding post-encoding filtering, see also this &lt;a href="http://demo.geo-solutions.it/share/securing_geoserver.pdf"&gt;white paper comparing internal vs external security systems&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In order to make this approach possible &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; was &lt;a href="http://geoserver.org/display/GEOS/GSIP+57+-+Improving+GeoServer+authorization+framework"&gt;modified&lt;/a&gt; by Andrea Aime, the author of the existing Security Subsytem as described in the picture below. &lt;strong&gt;GeoRepository&lt;/strong&gt; obtains users' credentials from &lt;strong&gt;LDAP&lt;/strong&gt; and allows administrator to decorate them with additional parameters which are specific for restricting &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; access to services and data (we will describe them shortly).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://4.bp.blogspot.com/-OLyl8tJEvko/TcEYAYu0W5I/AAAAAAAAAVY/30kZeGZlwLk/s1600/GeoServerGeoRepositoryintegration.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://4.bp.blogspot.com/-OLyl8tJEvko/TcEYAYu0W5I/AAAAAAAAAVY/30kZeGZlwLk/s320/GeoServerGeoRepositoryintegration.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Now that we have seen the 10000 feet view let's delve into details of how us know provide additional details on how &lt;strong&gt;GeoRepository&lt;/strong&gt; seamlessly applies specific geospatial access policies to one or more &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; instances&lt;/div&gt;&lt;div&gt;The possible types of authorizations that can be applied using GeoRepository are controlled via generic rules with priorities , are shown below.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://3.bp.blogspot.com/-Kf2DUkMBPM0/TcFEZakVmHI/AAAAAAAAAVs/f_b4aiAl3hk/s1600/users.jpg"&gt;&lt;img alt="" border="0" height="196" src="http://3.bp.blogspot.com/-Kf2DUkMBPM0/TcFEZakVmHI/AAAAAAAAAVs/f_b4aiAl3hk/s400/users.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Each rule comprises of:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;User&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Profile&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Instance&lt;/strong&gt; (since GeoRepository can control more than one instance of GeoServer, the typical enterprise scenario having a cluster of machines serving geospatial requests)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Service and Request&lt;/strong&gt; which can be used to control grants on OGC services&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Workspace&lt;/strong&gt; which can be used to control grants on GeoServer workspaces&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Layer&lt;/strong&gt; which can be used to control grants on GeoServer layers&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Grant&lt;/strong&gt;&lt;/li&gt;&lt;li class="c2"&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;ALLOW&lt;/strong&gt; grants access if the rule is satisfied, DENY denies access if the rule is satisfied&lt;/li&gt;&lt;li&gt;&lt;strong&gt;LIMIT&lt;/strong&gt; applies only when we have spatial restrictions available, in this case if the ruse is satisfied we basically perform an allow with spatial restrictions.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;For ALLOW and LIMIT grants we can, under some conditions, set also additional limits which are called &lt;strong&gt;details&lt;/strong&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c1" href="http://3.bp.blogspot.com/-8uECvIvsOrA/TcFEwxnlNlI/AAAAAAAAAVw/1QGtpr8leJA/s1600/rule_edit.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://3.bp.blogspot.com/-8uECvIvsOrA/TcFEwxnlNlI/AAAAAAAAAVw/1QGtpr8leJA/s400/rule_edit.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Available detail levels are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Layer Details&lt;/strong&gt; allows us to specify refined rules for a specific GeoServer layer. As an instance it is possible to override the default style or to filter the available styles' list. It is also possible to specify CQL filters for reading and/or writing (when possible) GeoServer layers' attributes.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Layer Attributes Details&lt;/strong&gt; allows us to limit access to vector layer attributes. By default all attributes are readable/writable, but with this capability we can hide some of them or make them read only.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;a class="c3" href="http://3.bp.blogspot.com/-caueqloTEK4/TcFFHiIJd9I/AAAAAAAAAV0/Zw069mlr-_s/s1600/rule_limits_2.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://3.bp.blogspot.com/-caueqloTEK4/TcFFHiIJd9I/AAAAAAAAAV0/Zw069mlr-_s/s400/rule_limits_2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;It is worth to point out that &lt;strong&gt;GeoRepository&lt;/strong&gt; interprets rule by priority: higher priority rules (represented by a smaller integer number) are applied before rules at lower priority. Like in &lt;strong&gt;IPTABLE&lt;/strong&gt;S, the first match is considered valid and then executed.&lt;/div&gt;&lt;div&gt;The possibilities introduced by having GeoRepository work right next to GeoServer are quite a lot, let us list some of them:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Fine grain control over which services, layers, workspaces, operations (of a service) a user can access&lt;/li&gt;&lt;li&gt;Fine grain control over which geospatial area for a layer (being it raster or vector) a user can access &lt;/li&gt;&lt;li&gt;Fine grain control over the WMS style that a use can apply for a layer with the possibility to perform style substitution on a per request basis depending on the credentials received&lt;/li&gt;&lt;li&gt;Fine grain control over which attribute (for vector layers) or bands (for raster layers) a user can access (this way it is possible to hide/show sensible attributes depending on credentials)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c3" href="http://4.bp.blogspot.com/-SoAuMzTwhq4/TcFFTte4lsI/AAAAAAAAAV4/XVm-EfN74rU/s1600/rule_limits.jpg"&gt;&lt;img alt="" border="0" height="198" src="http://4.bp.blogspot.com/-SoAuMzTwhq4/TcFFTte4lsI/AAAAAAAAAV4/XVm-EfN74rU/s400/rule_limits.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As an example of full versus limited access to resources, check the difference in the following two layers previews. First one show administrator's preview, second one shows unprivileged user's preview, where some the attributes are hidden, the default style is forced by the access control and the geometries outside the restriction area have been .&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a class="c3" href="http://1.bp.blogspot.com/-M4m9Q-pb47w/TcFGAsqybCI/AAAAAAAAAV8/wcbgHGZ-z7o/s1600/preview_admin.jpg"&gt;&lt;img alt="" border="0" height="320" src="http://1.bp.blogspot.com/-M4m9Q-pb47w/TcFGAsqybCI/AAAAAAAAAV8/wcbgHGZ-z7o/s320/preview_admin.jpg" width="211" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a class="c1" href="http://2.bp.blogspot.com/-blbi54v9Y8Y/TcFGGwjmhlI/AAAAAAAAAWA/Jtd5_XIUP-M/s1600/local_user_filtered_layer.jpg"&gt;&lt;img alt="" border="0" height="320" src="http://2.bp.blogspot.com/-blbi54v9Y8Y/TcFGGwjmhlI/AAAAAAAAAWA/Jtd5_XIUP-M/s320/local_user_filtered_layer.jpg" width="216" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;We should set up an inline demo soon, meanwhile, if you want to know more about the features we currently support or about our roadmap, please, do not hesitate to &lt;a href="http://www.geo-solutions.it/contact/"&gt;contact us&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;/div&gt;&lt;div&gt;&lt;a class="c1" href="http://www.geo-solutions.it/"&gt;&lt;img alt="" border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-756188338138957536?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/756188338138957536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=756188338138957536' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/756188338138957536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/756188338138957536'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/05/preview-georepository-advanced.html' title='Preview: GeoRepository, advanced authorization manager for GeoServer'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-FcluVMREQsQ/TcEWRgR-ipI/AAAAAAAAAVU/iFOl_y6VKOU/s72-c/GeoRepo-SINpeersarchENG.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4595899387243722740</id><published>2011-04-19T02:26:00.000-07:00</published><updated>2011-04-19T02:26:15.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geotiff'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio-ext'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>ImageI/O-Ext 1.1-RC1 Released</title><content type='html'>&lt;a href="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://www.geo-solutions.it/portfolio/imageio_jpg_580x320_crop_q85.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dear all,&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce the &lt;a href="http://java.net/projects/imageio-ext/"&gt;ImageI/O-Ext&lt;/a&gt; &lt;a href="http://java.net/projects/imageio-ext/downloads/directory/Releases/ImageIO-Ext/1.1.x/1.1-RC1"&gt;1.1-RC1&lt;/a&gt; release which has been incubating for a long time.&lt;br /&gt;Changes with respect to &lt;span class="il"&gt;1.0.x&lt;/span&gt; series can be summarised as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Out-of-the-box&lt;/b&gt; Support for &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt; &lt;a href="http://java.net/projects/imageio-ext/downloads/directory/Releases/Dependencies/GDAL/NativeLibraries/1.7.3"&gt;1.7.3&lt;/a&gt;, which means no more patches are needed for GDAL Java bindings in order to access it from ImageI/O-Ext.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.awaresystems.be/imaging/tiff/bigtiff.html"&gt;&lt;b&gt;BigTiff&lt;/b&gt;&lt;/a&gt; support, breaking the 4GB TIFF limit.&lt;/li&gt;&lt;li&gt;&lt;b&gt;EnhancedImageReadParam &lt;/b&gt;support. It extends the standard&amp;nbsp;&lt;a href="http://download.oracle.com/javase/6/docs/api/javax/imageio/ImageReadParam.html"&gt;ImageReadParam&lt;/a&gt; by implementing Cloneable (used when supporting &lt;b&gt;MultiThreading &lt;/b&gt;read operation) and a new &lt;b&gt;DestinationRegion&lt;/b&gt; param to support oversampling/subsampling without specifying &lt;a href="http://download.oracle.com/javase/6/docs/api/javax/imageio/IIOParam.html#setSourceSubsampling%28int,%20int,%20int,%20int%29"&gt;sourceSubSampling&lt;/a&gt; parameters. This may be used when dealing with readers which internally take care of performing subSampling/overSampling, such as the &lt;b&gt;GDALImageReader&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Experimental multidimension plugin for reading spatiotemporal sources like:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;netCDF raster files following the Climate and Forecast (&lt;a href="http://bit.ly/RugiU"&gt;CF&lt;/a&gt;) convention&lt;/li&gt;&lt;li&gt;GriB &lt;a href="http://bit.ly/ik1f2e"&gt;edition 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;HDF version 4&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Release artifacts have been deployed on the &lt;a href="http://maven.geo-solutions.it/it/geosolutions/imageio-ext/"&gt;GeoSolutions maven repository&lt;/a&gt;, as well as on the &lt;a href="http://download.osgeo.org/webdav/geotools/it/geosolutions/imageio-ext/"&gt;OSGEO&lt;/a&gt; one.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4595899387243722740?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4595899387243722740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4595899387243722740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4595899387243722740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4595899387243722740'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/04/imageio-ext-11-rc1-released.html' title='ImageI/O-Ext 1.1-RC1 Released'/><author><name>Daniele Romagnoli</name><uri>http://www.blogger.com/profile/02482652185618374893</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3273774485769004378</id><published>2011-03-27T22:56:00.000-07:00</published><updated>2011-03-28T00:49:23.745-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='standingcloud'/><title type='text'>GeoServer in da cloud!</title><content type='html'>&lt;div&gt;&lt;a href="http://www.standingcloud.com/taxonomy/term/509"&gt;&lt;img border="0" height="140" src="https://lh6.googleusercontent.com/-JSnuJ2BjrQ4/TYroUzWYU7I/AAAAAAAAAQU/jF6YUhWH2sM/s400/v4_c_300.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is pleased to announce that &lt;a href="http://www.geo-solutions.it/"&gt;GeoServer&lt;/a&gt; is now available on the&amp;nbsp;&lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; infrastructure.&lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; provides simple, powerful, services that make it fast and easy to run open source applications in the cloud allowingusers to focus on putting applications at work in the cloud rather than worrying about the servers that run them.&amp;nbsp; &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; makes it point-and-click easy to deploy and manage applications on your cloud of choice since it&amp;nbsp; provides instant access to host applications on many cloud providers. Focus on portability ensures no providers lock-in which means that moving applications to a different cloud provider with a single click, at any time, for any reason, is feasible.&lt;br/&gt;&lt;br/&gt;Between available cloud partners, we have:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Amazon Web Services&lt;/li&gt;&lt;li&gt;GoGrid&lt;/li&gt;&lt;li&gt;Linode&lt;/li&gt;&lt;li&gt;Slicehost&lt;/li&gt;&lt;li&gt;Rackspace Cloud&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; has joined the Partner Program of &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; and it is now listed as &lt;a href="http://www.standingcloud.com/network/partner/geosolutions"&gt;Solution Partner&lt;/a&gt; for &lt;a href="http://www.standingcloud.com/app_network/all/geoserver"&gt;GeoServer&lt;/a&gt;. We have worked with the &lt;a href="http://www.standingcloud.com/"&gt;Standing Cloud&lt;/a&gt; team to integrate GeoServer 2.0.2 in their application network, &lt;b&gt;so that now people can install and deploy a GeoServer instance in less than 15 minutes with no system administration skills!&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Just look at the screenshots below, in 10 minutes with a few clicks I have gone from nothing to having &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt; running:&lt;br /&gt;&lt;br/&gt;&lt;div&gt;&lt;a href="https://lh6.googleusercontent.com/-NJ18NZ7A78g/TYou23_kGoI/AAAAAAAAAP8/2I6Py3HY198/s1600/cloud1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="99" src="https://lh6.googleusercontent.com/-NJ18NZ7A78g/TYou23_kGoI/AAAAAAAAAP8/2I6Py3HY198/s320/cloud1.jpg" width="320" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div &gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://lh3.googleusercontent.com/-VhKItTlQw3c/TYou-TU_h3I/AAAAAAAAAQA/IvVHc6if0xo/s1600/cloud2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="https://lh3.googleusercontent.com/-VhKItTlQw3c/TYou-TU_h3I/AAAAAAAAAQA/IvVHc6if0xo/s320/cloud2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href="https://lh3.googleusercontent.com/-F-SevT_bmbU/TYovIOdsc7I/AAAAAAAAAQE/XM2yAiCpxBE/s1600/cloud3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" src="https://lh3.googleusercontent.com/-F-SevT_bmbU/TYovIOdsc7I/AAAAAAAAAQE/XM2yAiCpxBE/s320/cloud3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href="https://lh6.googleusercontent.com/-Qvrlyk5rwIk/TYowIEJf9zI/AAAAAAAAAQI/XA24InKK4Bg/s1600/cloud4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="https://lh6.googleusercontent.com/-Qvrlyk5rwIk/TYowIEJf9zI/AAAAAAAAAQI/XA24InKK4Bg/s320/cloud4.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;a href="https://lh5.googleusercontent.com/-_yjCCV085N4/TYowx76LANI/AAAAAAAAAQM/lmof1JpeVYw/s1600/cloud5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="https://lh5.googleusercontent.com/-_yjCCV085N4/TYowx76LANI/AAAAAAAAAQM/lmof1JpeVYw/s320/cloud5.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;So &lt;a href="http://www.standingcloud.com/console/configurator/trial/singleInstall?applicationName=geoserver"&gt;log in&lt;/a&gt; and have fun with  &lt;b&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoServer&lt;/a&gt; in da cloud&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div &gt;&lt;a href="http://www.standingcloud.com/taxonomy/term/509"&gt;&lt;img border="0" height="75" src="https://lh4.googleusercontent.com/-LEDZ_PEOGjg/TYrowXPUXxI/AAAAAAAAAQY/hRMuWOwkeUA/s400/GeoServer-in-da-Cloud_s.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div &gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/" imageanchor="1"&gt;&lt;img border="0" src="https://lh3.googleusercontent.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3273774485769004378?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3273774485769004378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3273774485769004378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3273774485769004378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3273774485769004378'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/03/geoserver-in-da-cloud.html' title='GeoServer in da cloud!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-JSnuJ2BjrQ4/TYroUzWYU7I/AAAAAAAAAQU/jF6YUhWH2sM/s72-c/v4_c_300.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6013263692991229078</id><published>2011-03-07T09:40:00.000-08:00</published><updated>2011-03-07T09:41:50.032-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>Developer's corner: adding two global equal area projections to GeoTools/GeoServer</title><content type='html'>Recently we had the pleasure to implement two new map projections for GeoTools/Geoserver: the &lt;a href="http://www.equal-area-maps.com/info_eckert.php"&gt;Eckert IV&lt;/a&gt; projection, and the &lt;a href="http://www.equal-area-maps.com/info_mollweide.php"&gt;Mollweide&lt;/a&gt; projection.&lt;br /&gt;&lt;br /&gt;Both projections happen to be &lt;a href="http://www.equal-area-maps.com/"&gt;equal area&lt;/a&gt; projections.&lt;br /&gt;These projections are commonly used in atlases to represent the whole world, as they don't alter the relative proportions of countries and continents.&lt;br /&gt;&lt;br /&gt;This is actually an important feature missing from the common Google/Bing/Yahoo maps. They are all using a close relative of the Mercator projection, which greatly exaggerates the size of all countries at high latitude (for example, Greenland and Antarctica look a lot bigger than they actually are).&lt;br /&gt;&lt;br /&gt;Compare &lt;a href="http://maps.google.com/?ie=UTF8&amp;amp;ll=-17.308688,-101.25&amp;amp;spn=177.19768,193.359375&amp;amp;t=h&amp;amp;z=1"&gt;that&lt;/a&gt; with Eckert IV, obtained calling GeoServer with the map reflector:&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: 'courier new';"&gt;http://localhost:8080/geoserver/wms/reflect?layers=countries&amp;amp;srs=EPSG:54012&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-svTYzclrWfk/TXCqGJCUaVI/AAAAAAAAAFw/r_CsAf6dE7Y/s1600/eckertiv.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5580146960793626962" src="http://3.bp.blogspot.com/-svTYzclrWfk/TXCqGJCUaVI/AAAAAAAAAFw/r_CsAf6dE7Y/s400/eckertiv.png" style="cursor: pointer; display: block; height: 199px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;And here is Mollweide, obtained calling &lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: 'courier new';"&gt;http://localhost:8080/geoserver/wms/reflect?layers=countries&amp;amp;srs=EPSG:54009&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-WvpJfP1z6YU/TXCqSoOvdCI/AAAAAAAAAF4/ehebvQs6ZXs/s1600/mollweide.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5580147175325660194" src="http://4.bp.blogspot.com/-WvpJfP1z6YU/TXCqSoOvdCI/AAAAAAAAAF4/ehebvQs6ZXs/s400/mollweide.png" style="cursor: pointer; display: block; height: 197px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;One final observation: unfortunately neither Ecker IV nor Molleweide have an official entry in the EPSG database.&lt;br /&gt;In order to use them in &lt;a href="http://geoserver.org/"&gt;GeoServer&lt;/a&gt; you'll have to edit your &lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: 'courier new';"&gt;$GEOSERVER_DATA_DIR/user_projections/epgs.properties&lt;/span&gt;&lt;/span&gt;  file and add the following two entries (mind, each definition has to be  added as a single line, here we split them among multiple lines for  readability sake):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family: 'courier new'; font-size: x-small;"&gt;54009=PROJCS["World_Mollweide",\&lt;br /&gt;GEOGCS["WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],&lt;br /&gt;PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mollweide"],&lt;br /&gt;PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0]]&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new'; font-size: x-small;"&gt;54012=PROJCS["World_Eckert_IV",   &lt;br /&gt;GEOGCS["WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],&lt;br /&gt;PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_IV"],&lt;br /&gt;PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0]]&lt;/span&gt; &lt;/blockquote&gt;After that you can take your favorite world wide map and use the WMS reflector to get a quick map using the above projections.&lt;br /&gt;&lt;br /&gt;These projections will be available in GeoServer 2.1 and GeoTools 2.7.&lt;br /&gt;Interested in more map projections and datum shift improvements?  &lt;a href="http://www.geo-solutions.it/contact/"&gt;Drop us a line&lt;/a&gt;!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/" imageanchor="1"&gt;&lt;img border="0" src="https://lh3.googleusercontent.com/-ReUs6odFoFM/TWfecZ5Wl7I/AAAAAAAAAPE/MeqQ2XYs73I/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6013263692991229078?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6013263692991229078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6013263692991229078' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6013263692991229078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6013263692991229078'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/03/developers-corner-adding-two-global.html' title='Developer&apos;s corner: adding two global equal area projections to GeoTools/GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-svTYzclrWfk/TXCqGJCUaVI/AAAAAAAAAFw/r_CsAf6dE7Y/s72-c/eckertiv.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-2296441744247644996</id><published>2011-02-18T07:05:00.000-08:00</published><updated>2011-02-21T17:05:05.297-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='wms'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Developers Corner: Support for TIME in GeoServer WMS</title><content type='html'>Dear All,&lt;br /&gt;at &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions &lt;/a&gt;lately we are working on improving support for the TIME dimension in &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While the work is still ongoing &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt; wanted to share with you a preview of what we are doing, therefore we created the video below.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" src="http://www.youtube.com/embed/Jh_3_GVMSLQ?fs=1" width="480" frameborder="0" height="295"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Like this feature? Interested in funding this development? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Drop us a line&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-2296441744247644996?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/2296441744247644996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=2296441744247644996' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2296441744247644996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2296441744247644996'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/developers-corner-support-for-time-in.html' title='Developers Corner: Support for TIME in GeoServer WMS'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Jh_3_GVMSLQ/default.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7490826791040925173</id><published>2011-02-17T16:39:00.000-08:00</published><updated>2011-02-18T10:26:19.000-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Presentazione su GeoServer da GeoSolutions al FOSS4G-IT 2011</title><content type='html'>&lt;div id="__ss_6930566" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/geosolutions/foss4g-it2011-it" title="Foss4g it-2011 (italian)"&gt;Foss4g it-2011 (italian)&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" id="__sse6930566" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=foss4g-it-2011it-110215040358-phpapp01&amp;stripped_title=foss4g-it2011-it&amp;userName=geosolutions" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse6930566" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=foss4g-it-2011it-110215040358-phpapp01&amp;stripped_title=foss4g-it2011-it&amp;userName=geosolutions" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/geosolutions"&gt;GeoSolutions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;team&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img "="" border="0" src="http://4.bp.blogspot.com/-cKdFIXPOWE0/TV65ZRWirEI/AAAAAAAAAPA/DUqDxCXfn_k/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7490826791040925173?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7490826791040925173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7490826791040925173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7490826791040925173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7490826791040925173'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/presentazione-su-geoserver-da.html' title='Presentazione su GeoServer da GeoSolutions al FOSS4G-IT 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-cKdFIXPOWE0/TV65ZRWirEI/AAAAAAAAAPA/DUqDxCXfn_k/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1052203516338181710</id><published>2011-02-17T08:30:00.000-08:00</published><updated>2011-02-17T08:30:38.614-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>GeoSolutions Presentation on GeoServer at FOSS4G-IT 2011</title><content type='html'>&lt;div id="__ss_6931636" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/geosolutions/foss4g-it2011-english" title="Foss4g it-2011 (english)"&gt;Foss4g it-2011 (english)&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" id="__sse6931636" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=foss4g-it-2011en-110215051657-phpapp01&amp;stripped_title=foss4g-it2011-english&amp;userName=geosolutions" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse6931636" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=foss4g-it-2011en-110215051657-phpapp01&amp;stripped_title=foss4g-it2011-english&amp;userName=geosolutions" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/geosolutions"&gt;GeoSolutions&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img "="" border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1052203516338181710?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1052203516338181710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1052203516338181710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1052203516338181710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1052203516338181710'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/geosolutions-presentation-on-geoserver.html' title='GeoSolutions Presentation on GeoServer at FOSS4G-IT 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5307228076744479950</id><published>2011-02-14T10:23:00.000-08:00</published><updated>2011-02-20T09:54:33.531-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='Professional Services'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Enteprise Services'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><category scheme='http://www.blogger.com/atom/ns#' term='JAI'/><category scheme='http://www.blogger.com/atom/ns#' term='Commercial Support'/><category scheme='http://www.blogger.com/atom/ns#' term='Professional Support'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Support'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>A new year with GeoSolutions Enterprise Services</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is proud to offer four levels of enterprise support services centered on the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; platform to help organizations building enterprise-class Spatial Data Infrastructure (SDI), integrating and tuning best-of-breed &lt;b&gt;Open Source&lt;/b&gt; geospatial frameworks into what we call the &lt;b&gt;OpenSDI suite&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;&lt;img border="0" height="216" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TDpB-O3Z69I/AAAAAAAAAL0/ahfh5sLfcSg/s400/banner.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to its &lt;a href="http://www.geo-solutions.it/portfolio/"&gt;extensive experience&lt;/a&gt; in building and supporting enterprise class geospatial infrastructures, &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; will provide your organization with an outstanding level of support through the full project lifecycle for a successful and stress-free deployment.&lt;br /&gt;&lt;br /&gt;If your organization was refraining from adopting Open Source software in the enterprise due to lack of professional support, we are here to help. Therefore it is now time to&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;b&gt;invest on features and support rather than on software licenses.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;i&gt;Our Support, Your Success!&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_0_xIiXP5xuY/TDpCbE4wAMI/AAAAAAAAAL8/_LdtWR3obRo/s320/opensdi-1+%281%29.png" /&gt;&lt;/a&gt;&lt;br /&gt;More information can be found &lt;a href="http://www.geo-solutions.it/services/plans/"&gt;here&lt;/a&gt;.&lt;b&gt; You can contact us &lt;a href="http://www.geo-solutions.it/contact/"&gt;here&lt;/a&gt;. &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5307228076744479950?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5307228076744479950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5307228076744479950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5307228076744479950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5307228076744479950'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/new-year-with-geosolutions-enterprise.html' title='A new year with GeoSolutions Enterprise Services'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0_xIiXP5xuY/TDpB-O3Z69I/AAAAAAAAAL0/ahfh5sLfcSg/s72-c/banner.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4076610370570701937</id><published>2011-02-14T01:19:00.000-08:00</published><updated>2011-02-20T09:56:40.806-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio'/><category scheme='http://www.blogger.com/atom/ns#' term='JAI'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoNetwork'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoBatch'/><title type='text'>Un nuovo anno con i Servizi di Supporto Enterprise di GeoSolutions</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; è orgogliosa di offrire anche per il 2011 quattro piani di servizi enterprise incentrati sulla piattaforma&amp;nbsp;&lt;a href="http://www.geoserver.org/" style="color: #3366cc; font-weight: bold;"&gt;GeoServer&lt;/a&gt; per aiutare i propri clienti a costruire una SDI (Spatial Data Infrastructure) di classe enterprise, attraverso l'integrazione e l'armonizzazione dei migliori framework geospaziali offerti dal mondo Open Source, la &lt;b&gt;OpenSDI suite&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;&lt;img border="0" height="216" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TDpD6mTTNYI/AAAAAAAAAME/HW4RHefV1ME/s400/banner.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; grazie alla sua &lt;a href="http://www.geo-solutions.it/portfolio/"&gt;vasta esperienza&lt;/a&gt; nella costruzione e nel supporto di infrastrutture geospaziali di classe enterprise, fornirà alla vostra azienda uno straordinario livello di supporto durante tutto il ciclo di vita del progetto per ottenere con facilità un deployment ben riuscito!&lt;br /&gt;&lt;br /&gt;Se la tua organizzazione era restia ad adottare soluzioni Open Source software per via della mancanza di supporto professionale, noi siamo qui per aiutarvi. &lt;b&gt;E' arrivato il momento di investire in supporto e feature piuttosto che in licenze software.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;i&gt;&lt;b&gt;Our support, Your Success!&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;&lt;img border="0" src="http://www.geo-solutions.it/static/img/opensdi-1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Maggiori informazioni possono essere reperite&amp;nbsp;&lt;a href="http://www.geo-solutions.it/services/plans/"&gt;qui&lt;/a&gt;.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;Ci potete contattare&amp;nbsp;&lt;/b&gt;&lt;a href="http://www.geo-solutions.it/contact/"&gt;&lt;b&gt;qui&lt;/b&gt;&lt;/a&gt;&lt;b&gt;.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img "="" border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4076610370570701937?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4076610370570701937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4076610370570701937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4076610370570701937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4076610370570701937'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/un-nuovo-anno-con-i-servizi-di-supporto.html' title='Un nuovo anno con i Servizi di Supporto Enterprise di GeoSolutions'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0_xIiXP5xuY/TDpD6mTTNYI/AAAAAAAAAME/HW4RHefV1ME/s72-c/banner.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8435182449470312750</id><published>2011-02-10T04:00:00.000-08:00</published><updated>2011-02-10T05:58:51.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Presentazione su GeoServer al meeting italiano degli utenti GRASS e GFOSS</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; sarà presente domani al&amp;nbsp; &lt;a href="http://events.unitn.it/en/foss4g2011"&gt;XII Italian GRASS and GFOSS users&lt;/a&gt; meeting con una presentazione su&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;. Ecco di seguito l'abstract:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/span&gt;è un server GeoSpaziale Open Source scritto in Java, seguendo le comuni pratiche Java 2 Enterprise, per la gestione, disseminazione e analisi di dati geospaziali.&amp;nbsp;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/span&gt;permette di distribuire, manipolare e analizzare i dati usando i più diffusi standard OGC (WMS, WFS, WCS, WPS), senza però dimenticare estensioni specifiche per una interazione trasparente con client come Google Earth e software commerciale in genere, ne gli ormai diffusi approcci basati su protocolli REST e GeoJSON per la distribuzione semplificata di semplici dati vettoriali.Obiettivo della presentazione è fornire allo spettatore una un’esaustiva panoramica dellefunzionalità offerte da&amp;nbsp;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/span&gt;per la creazione di Spatial Data Infrastructure interoperabili, con particolare attenzione alle nuove funzionalità introdotte in&amp;nbsp;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;&lt;/span&gt;2.1 e all’analisi di dati spaziali con il protocollo WPS 1.0.In chiusura verrano forniti esempi d’uso in casi reali di recente implementazione con analisi statistiche su dati raster e vettoriali con considerazioni relative a scalabilità e prestazioni delle stesse.&lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;La presentazione sara' tenuta da Andrea Aime, lead developer del&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;.&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;Nel caso voleste seguire la presentazione in streaming video, trovate il link sulla &lt;a href="http://events.unitn.it/foss4g2011"&gt;home&lt;/a&gt; della conferenza. Attenzione, la presentazione si terrà alle ore 9:00.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8435182449470312750?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8435182449470312750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8435182449470312750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8435182449470312750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8435182449470312750'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/presentazione-su-geoserver-al-meeting.html' title='Presentazione su GeoServer al meeting italiano degli utenti GRASS e GFOSS'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-780557359898758195</id><published>2011-02-04T03:45:00.000-08:00</published><updated>2011-03-04T01:13:24.230-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Developer corner: cross layer filtering coming down to GeoServer</title><content type='html'>Ever needed to find the answer to a question involving the spatial relationship between two layers? Something like "get me all the coffe shops withing 100 meters of the subway M exits?" Or "show me all the industrial buildings in counties X, Y and Z"?&lt;br /&gt;&lt;br /&gt;Both of those queries require finding features in one layer, possibly with an attribute filter, and then locate all the locate all the features in another layer that have some kind of spatial relationship with the first result set.&lt;br /&gt;This is known as a spatial join and it's used to find object that do relate with each other by proximity.&lt;br /&gt;&lt;br /&gt;Now, GeoServer does not natively support layer joining. Up to today doing a WFS request like the above would have entailed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;make a first WFS GetFeature request to get the locations of subway M&lt;/li&gt;&lt;li&gt;parse the result, build a MultiPoint geometry&lt;/li&gt;&lt;li&gt;use it in a second WFS GetFeature against the commercial activities layer using a DWithin filter against the above constructed geometries&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TVJgDmQNmZI/AAAAAAAAAFo/FqretnRpcss/s1600/GeoSmartprevioussituation.png"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5571621303935146386" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TVJgDmQNmZI/AAAAAAAAAFo/FqretnRpcss/s400/GeoSmartprevioussituation.png" style="cursor: pointer; display: block; height: 309px; margin: 0px auto 10px; text-align: center; width: 400px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you are playing with a web based client that is troublesome, first there are two round trips to the server, second the web based client cannot normally deal with many points meaning it may well start consuming too much memory for practically dealing with requests that pull up large geometries (state boundaries, rivers and the like).&lt;br /&gt;&lt;br /&gt;Having to do the same with WMS comes with the aggravation that the filtering is likely done with CQL, but a large geometry won't simply fit within the maximum length allowed for GET requests (can be worked around with dynamic SLD o POST requests, but that adds other complications).&lt;br /&gt;&lt;br /&gt;Enter the new "querylayer" GeoServer module.&lt;br /&gt;The module provides filter functions that query and summarize GeoServer layers data so that the whole process can be done in a WFS single request or a single, compact CQL filter.&lt;br /&gt;&lt;br /&gt;Let's make a simple example using the GeoServer sample data: we want to find all bugsites inside the restricted area whose "cat" attribute values 3.&lt;br /&gt;The wfs request would be:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TUwKOEGp4JI/AAAAAAAAAFA/AKxqH26-qAU/s1600/requestSingle.png"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5569838075886559378" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TUwKOEGp4JI/AAAAAAAAAFA/AKxqH26-qAU/s400/requestSingle.png" style="cursor: pointer; height: 250px; width: 400px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Whilst a WMS request doing the same would use a CQL filter as simple as:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:'courier new';"&gt;INTERSECTS(the_geom, querySingle('restricted', 'the_geom','cat = 3'))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following map shows the result with some context:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TUwK0K6--aI/AAAAAAAAAFI/s2I240pOuZA/s1600/bugrestricted.png"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5569838730551687586" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TUwK0K6--aI/AAAAAAAAAFI/s2I240pOuZA/s400/bugrestricted.png" style="cursor: pointer; display: block; height: 280px; margin: 0px auto 10px; text-align: center; width: 400px;" border="0" /&gt;&lt;/a&gt;Want to find all the bug sites within 200 meters from any road. Here we go:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0t7-v7X-jYc/TUwMixNxJVI/AAAAAAAAAFQ/b6WhpXVxx1k/s1600/near.png"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5569840630616630610" src="http://3.bp.blogspot.com/_0t7-v7X-jYc/TUwMixNxJVI/AAAAAAAAAFQ/b6WhpXVxx1k/s400/near.png" style="cursor: pointer; display: block; height: 283px; margin: 0px auto 10px; text-align: center; width: 400px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;and the CQL equivalent would be:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;DWITHIN(the_geom, collectGeometries(queryCollection('roads','the_geom','INCLUDE')), 200, meters)&lt;/div&gt;&lt;br /&gt;which results in the following map:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TUwM2IUSpsI/AAAAAAAAAFY/OXuXkx9GB64/s1600/bugnearroad.png"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5569840963235522242" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TUwM2IUSpsI/AAAAAAAAAFY/OXuXkx9GB64/s400/bugnearroad.png" style="cursor: pointer; display: block; height: 280px; margin: 0px auto 10px; text-align: center; width: 400px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pretty cool eh? Naturally all roses have their thorns and this is no exception:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The requests, while valid, are going to work only with GeoServer, they are not portable towards other servers&lt;/li&gt;&lt;li&gt;The machinery is not actually able to do an in database join, it just loads the data in memory first and replaces the function call with the result so that intersects/dwithin can hit the database directly. It means the intermediate data is memory bound, and we actually have some admin configurable limits to make sure the requests are not loading in memory too much data (when the threshold is crossed an exception will the thrown)&lt;/li&gt;&lt;/ul&gt;The "querylayers" module is now a GeoServer community module that can be downloaded as part of the trunk nightly builds (starting tomorrow). It is available for both GeoServer trunk and GeoServer 2.1.x, though in the latter case you'll want to add the&lt;span class="Apple-style-span"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:'courier new';"&gt;-Dorg.geotools.filter.function.simplify=true&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;JVM option to get the best performance out of the module (it enables a specific querying optimization that is available by default on trunk).&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We'd like to thank &lt;a href="http://www.geosmart.co.nz/"&gt;GeoSmart&lt;/a&gt; for sponsoring the development of this module, it's a pretty useful addition to the GeoServer data access arsenal.&lt;br /&gt;&lt;br /&gt;As said, joining support could be improved even further. Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin: 0px;"&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-780557359898758195?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/780557359898758195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=780557359898758195' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/780557359898758195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/780557359898758195'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/developer-corner-cross-layer-filtering.html' title='Developer corner: cross layer filtering coming down to GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0t7-v7X-jYc/TVJgDmQNmZI/AAAAAAAAAFo/FqretnRpcss/s72-c/GeoSmartprevioussituation.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1306280388466136112</id><published>2011-02-04T03:26:00.000-08:00</published><updated>2011-02-04T03:26:48.636-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>Developers Corner: Improvements to the rendering engine on upcoming GeoServer 2.1/GeoTools 2.7</title><content type='html'>In this installment we are going to look into the rendering speed improvements featured in the the upcoming GeoServer 2.1/GeoTools 2.7.0 release.&lt;br /&gt;&lt;br /&gt;We recently talked about a very significant one already: &lt;a href="http://geo-solutions.blogspot.com/2011/01/developers-corner-improving.html"&gt;raster reprojection&lt;/a&gt; performance has skyrocketed, providing an overall speedup factor of four to six on the overall reprojected WMS request chain (if you want to know about the pure GeoTools reprojection operation speedup, it's more alike a hundred times faster).&lt;br /&gt;&lt;br /&gt;What you might not know is that the above is coupled by another speedup that we made for the WMS shootout 2010: the "direct rendering path", which makes GeoServer into a proper image server.&lt;br /&gt;What's the difference between a generic WMS server and a image server you might wonder? Well, a generic image server takes all the data sources and paints them on top of a rendering surface, applying styling as it goes. The rendering surface is commonly a blank RBG(A) image in memory on which features and rasters and combined.&lt;br /&gt;Now, the thing is, if you are starting with a raster, you already have an image: there is no need to go through the generic rendering machinery, JAI can do all the required transformations directly and more efficiently than Java2D.&lt;br /&gt;GeoServer 2.1 calls the above the "direct rendering path", and it's activated every time a WMS request contains a single raster layer: this gives another four-fold speedup at high load, and 20/50% speedup at the single user level.&lt;br /&gt;&lt;br /&gt;The goodies embedded in GeoServer 2.1 do not stop here, significant improvements have been done in vector data rendering as well:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The renderer fetches vector data and renders it in two separate threads, allowing to distribute the request load among two cores&lt;/li&gt;&lt;li&gt;Large polygons are isolines are now clipped to the rendering area before being passed down to the Java2D rasterizer, greatly improving the performance on larger isoline layers and avoiding issues with one of the oldest unresolved java2D bugs which might bring a server to his knees when a large isoline or polygon is painted with a dash array and the user starts zooming in a lot (so that only a small part of the geometry is in the viewing area)&lt;/li&gt;&lt;li&gt;A special map is setup to track of very small geometries, this helps when rendering a very large amount of small objects at a low zoom level as it avoids painting over and over in the same pixel (this trick was available on 2.0.x as well, but only on shapefiles)&lt;/li&gt;&lt;li&gt;Shapefile indexing of very large data sets has improved significantly, making for smaller, but at the same time more selective, spatial index files. If you are upgrading from 2.0.x you should remove all your .qix files and let GeoServer rebuild them to take advantage of the improvements&lt;/li&gt;&lt;/ul&gt;We hope to setup a benchmarking session allowing us to get fresh comparisons between 2.0.2 and 2.1.0 once the release is done, possibly using the WMS 2010 shootout workload: stay tuned for more details on this one.&lt;br /&gt;&lt;br /&gt;Of course there is still a lot that can be done to improve rendering performance. Do you have a specific case that you want to be improved? Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin: 0px;"&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/contact/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1306280388466136112?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1306280388466136112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1306280388466136112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1306280388466136112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1306280388466136112'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/developers-corner-improvements-to.html' title='Developers Corner: Improvements to the rendering engine on upcoming GeoServer 2.1/GeoTools 2.7'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7109842766306628398</id><published>2011-02-02T23:37:00.000-08:00</published><updated>2011-02-02T23:37:00.507-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio-ext'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>GeoSolutions YouTube channel</title><content type='html'>&lt;br /&gt;&lt;div&gt;&lt;a href="http://t0.gstatic.com/images?q=tbn:ANd9GcTNZOH6K_EdVq-C0PvGhlxgUYlzUIVI028pquBVXXu6O2ecyeOb" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://t0.gstatic.com/images?q=tbn:ANd9GcTNZOH6K_EdVq-C0PvGhlxgUYlzUIVI028pquBVXXu6O2ecyeOb" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Hi all,&lt;br /&gt;at &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; we decided to create a YouTube channel in order to have common repository for the videos that we make sometimes to demonstrate and/or explain new functionalities for the software we develop.&lt;br /&gt;&lt;br /&gt;You can reach the channel &lt;a href="http://www.youtube.com/user/GeoSolutionsIT"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7109842766306628398?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7109842766306628398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7109842766306628398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7109842766306628398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7109842766306628398'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/02/geosolutions-youtube-channel.html' title='GeoSolutions YouTube channel'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4072071813582457329</id><published>2011-02-01T23:37:00.000-08:00</published><updated>2011-02-01T23:37:12.599-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='wms'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Developers Corner: Improving GeoServer WMS Cascading Support</title><content type='html'>Hi all,&lt;br /&gt;The ability to server WMS layers from a remote WMS server through a &lt;a href="http://www.geoserver.org/"&gt;Geoserver &lt;/a&gt;installation (a.k.a. Cascading WMS) has been one of the latest improvements in Geoserver world in last couple of months. You can read about it more in one of &lt;a href="http://geo-solutions.blogspot.com/2010/10/wms-cascading-in-latest-geoserver.html"&gt;our previous blog&lt;/a&gt;, where the basics have been explained already.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions &lt;/a&gt;team has since been improving the existing state and introduced some new features. A few patches have been created to fix some important issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Enabling cascading layer to be included in layer groups (&lt;a href="http://jira.codehaus.org/browse/GEOS-4273"&gt;GEOS-4273&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Make GetFeatureInfo requests work again on cascading servers (&lt;a href="http://jira.codehaus.org/browse/GEOS-4301"&gt;GEOS-4301&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Make GetFeatureInfo requests work on older version of geoservers (&lt;a href="http://jira.codehaus.org/browse/GEOT-3383"&gt;GEOT-3383&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Include "image/png; mode=24bit" to the tentative transparent formats used in WMSLayer (Mapserver transparent png support - &lt;a href="http://jira.codehaus.org/browse/GEOT-3393"&gt;GEOT-3393&lt;/a&gt;)&lt;/li&gt;&lt;li&gt; Other smaller bug fixes (&lt;a href="http://jira.codehaus.org/browse/GEOS-3361"&gt;GEOT-3361&lt;/a&gt;, &lt;a href="http://jira.codehaus.org/browse/GEOS-4295"&gt;GEOS-4295&lt;/a&gt;, &lt;a href="http://jira.codehaus.org/browse/GEOS-4286"&gt;GEOS-4286&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Batch import&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;The main improvement GeoSolutions has been working on, it's been the possibility to perform batch import of layers from a remote WMS (&lt;a href="http://jira.codehaus.org/browse/GEOS-4296"&gt;GEOS-4296&lt;/a&gt;) through the user interface. This development allow users to try and publish all layer, or only a certain subset, all at once. After the WMS store has been &lt;a href="http://geo-solutions.blogspot.com/2010/10/wms-cascading-in-latest-geoserver.html"&gt;configured&lt;/a&gt;, new link providing batch import is shown.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_KZG72EJOczI/TUbaLB0SFeI/AAAAAAAAEMY/yFn1QtGFz0E/s1600/import.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5568377872291337698" src="http://3.bp.blogspot.com/_KZG72EJOczI/TUbaLB0SFeI/AAAAAAAAEMY/yFn1QtGFz0E/s400/import.png" style="cursor: pointer; display: block; height: 158px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;Selecting batch import takes us to a new page where multiple layers can be selected and configured with a single mouse click.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KZG72EJOczI/TUbPHLah8KI/AAAAAAAAEMA/YmUQZQuBKxE/s1600/import1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5568365711520297122" src="http://2.bp.blogspot.com/_KZG72EJOczI/TUbPHLah8KI/AAAAAAAAEMA/YmUQZQuBKxE/s400/import1.png" style="cursor: pointer; display: inline; height: 400px; margin: 0px auto 10px; width: 394px;" /&gt;&lt;/a&gt;&lt;/div&gt;Clicking on “Import selected” button imports selected layers and prints out simple status report on imported layer. Notice that the Published Icon is update accordingly.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_KZG72EJOczI/TUbTJt_PO9I/AAAAAAAAEMQ/SxjTmCMVSAk/s1600/import2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5568370153207315410" src="http://2.bp.blogspot.com/_KZG72EJOczI/TUbTJt_PO9I/AAAAAAAAEMQ/SxjTmCMVSAk/s400/import2.png" style="cursor: pointer; display: inline; height: 201px; margin: 0px auto 10px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: 130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;We have made a video showing how to use the batch import of WMS servers into &lt;a href="http://www.geoserver.org/"&gt;Geoserver&lt;/a&gt;. You can download it from &lt;a href="http://demo.geo-solutions.it/share/video/wms-cascading.ogv"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Do not hesitate to try it out and stay tuned for more WMS Cascading improvements!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4072071813582457329?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4072071813582457329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4072071813582457329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4072071813582457329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4072071813582457329'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/developers-corner-improving-geoserver.html' title='Developers Corner: Improving GeoServer WMS Cascading Support'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KZG72EJOczI/TUbaLB0SFeI/AAAAAAAAEMY/yFn1QtGFz0E/s72-c/import.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8882580781910531542</id><published>2011-01-30T15:30:00.000-08:00</published><updated>2011-01-31T01:33:03.593-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='imageio-ext'/><title type='text'>A new home for the ImageIO-Ext project</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TUGnIbDpcgI/AAAAAAAAAOY/gKhkBdKZcfs/s1600/imageio_jpg_580x320_crop_q85.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TUGnIbDpcgI/AAAAAAAAAOY/gKhkBdKZcfs/s320/imageio_jpg_580x320_crop_q85.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dear All,&lt;br /&gt;after a long wait a new home has been finally created by Oracle for the ImageIO-Ext project on the new Java.net infrastructure. You can reach it &lt;a href="http://java.net/projects/imageio-ext"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For the records the Image I/O-Ext project extends the Java's ImageI/O framework capabilities by providing access to new raster formats directly or through the integration of other frameworks and libraries, like &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt;, JMagick (experimental) and Kakadu for JPEG2000.&lt;br /&gt;The project is Open Source but commercial-friendly, part of the code is released under an LGPL license, some other parts (namely, derivative work from Oracle's imageio source code) are licensed under BSD license.&lt;br /&gt;&lt;br /&gt;This work has been started with the Google Summer of Code in 2006 by Ing. Daniele Romagnoli mentored by Ing. Simone Giannecchini (&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8882580781910531542?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8882580781910531542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8882580781910531542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8882580781910531542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8882580781910531542'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/new-home-for-imageio-ext-project.html' title='A new home for the ImageIO-Ext project'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TUGnIbDpcgI/AAAAAAAAAOY/gKhkBdKZcfs/s72-c/imageio_jpg_580x320_crop_q85.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7499681048875747816</id><published>2011-01-27T06:34:00.000-08:00</published><updated>2011-01-27T09:19:07.977-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grass'/><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Workshop  su GeoServer al meeting degli utenti GRASS e GFOSS</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; sarà presente al&amp;nbsp; &lt;a href="http://events.unitn.it/en/foss4g2011"&gt;XII Italian GRASS and GFOSS users&lt;/a&gt; meeting con un workshop&amp;nbsp; su&amp;nbsp; &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;.&lt;a href="http://www.gfoss.it/drupal/gfossday2010"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://events.unitn.it/sites/events.unitn.it/files/config/2011/foss4g2011/img_hp_it.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://events.unitn.it/sites/events.unitn.it/files/config/2011/foss4g2011/img_hp_it.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Il workshop fornirà agli utenti una veloce introduzione al framework  &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;, concentrandosi essenzialmente sui seguenti aspetti:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;basic installation&lt;/li&gt;&lt;li&gt;basic data configuration and publishing&lt;/li&gt;&lt;li&gt;basic data exploitation&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;Nel case voleste partecipare al workshop, non dimenticate di &lt;a href="http://events.unitn.it/foss4g2011"&gt;registrarvi &lt;/a&gt;in quanto i posti disponibili per la conferenza sono limitati!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7499681048875747816?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7499681048875747816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7499681048875747816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7499681048875747816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7499681048875747816'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/workshop-su-geoserver-al-meeting-degli.html' title='Workshop  su GeoServer al meeting degli utenti GRASS e GFOSS'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-598709852095174830</id><published>2011-01-26T10:37:00.000-08:00</published><updated>2011-01-26T14:18:09.118-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grass'/><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='gfoss'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G-IT'/><title type='text'>GeoServer Workshop at Italian GRASS and GFOSS Users' Meeting</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; will hold a &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; workshop at the &lt;a href="http://events.unitn.it/en/foss4g2011"&gt;XII Italian GRASS and GFOSS users&lt;/a&gt; meeting, the annual gathering of the Italian FOSS4G crowd.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://events.unitn.it/sites/events.unitn.it/files/config/2011/foss4g2011/img_hp_it.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://events.unitn.it/sites/events.unitn.it/files/config/2011/foss4g2011/img_hp_it.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The workshop will provide a quick introduction to the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; framework and will mainly focus on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;basic installation&lt;/li&gt;&lt;li&gt;basic data configuration and publishing&lt;/li&gt;&lt;li&gt;basic data exploitation&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In case you are around and you want to attend the workshop, make sure to&lt;a href="http://events.unitn.it/foss4g2011"&gt; register&lt;/a&gt; for the conference since seats are limited!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" s=""&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-598709852095174830?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/598709852095174830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=598709852095174830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/598709852095174830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/598709852095174830'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/geoserver-workshop-at-italian-grass-and.html' title='GeoServer Workshop at Italian GRASS and GFOSS Users&apos; Meeting'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3926098722642504274</id><published>2011-01-23T23:43:00.000-08:00</published><updated>2011-01-24T00:48:44.561-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='contouring'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='WPS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><category scheme='http://www.blogger.com/atom/ns#' term='polygon extract'/><title type='text'>Developers Corner: have your SLD transform raster data into vectors on the fly</title><content type='html'>Hi all,&lt;br /&gt;&lt;div&gt;in this post &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt;'d like to share our most recent endeavor in dynamic data rendering within the &lt;a href="http://geoserver.org/display/GEOS/Welcome"&gt;GeoServer&lt;/a&gt; and &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt; open source projects.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The problem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Suppose you have a set of scientific raster data sets, maybe they represent some sort of concentration, elevation, or maybe they represent wind, currents, or some other vector phenomena via two bands (one for magnitude, one for direction).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, you have lots of them and people want to display them in various ways. Raster with color scales are nice, but often you need to render them in other ways, such as contour lines, polygons catching all the pixels within certain ranges, or vector fields (think wind barbs).&lt;/div&gt;&lt;div&gt;Those are all raster to vector conversion processes that a WPS can take care of. However, suppose you also have a ton of those raster data, and that the raster classification parameters need to be dynamic, with a user providing, for example, the contour levels to extract.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now you're facing a somewhat hard problem, in theory you would have to:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;call the WPS with the given data&lt;/li&gt;&lt;li&gt;store the results somewhere&lt;/li&gt;&lt;li&gt;register that new layer as a published WMS layer, along with the proper style&lt;/li&gt;&lt;li&gt;update the viewer to add that layer&lt;/li&gt;&lt;li&gt;purge that temporary layer once the user is done or wants a different set of parameters to be applied in the transformations&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;To add icing on the cake, suppose your datasets are massive, so doing the WPS extraction at full resolution can take its dear time.... does not really sound like a situation one would like your server and client infrastructure to deal with.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small; font-weight: bold;"&gt;The solution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Instead of doing all of the above work, wouldn't it be nice to just specify the transformation needed in the style sheet? That's exactly the road we decided to follow.&lt;br /&gt;We've created and SLD extension allowing to pipe a process (yes, a WPS one) inside the SLD so that it can be dinamically updated. It looks like the following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TTiEO3W0clI/AAAAAAAAAOQ/Nv85Y7YosPY/s1600/a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TTiEO3W0clI/AAAAAAAAAOQ/Nv85Y7YosPY/s320/a.jpg" width="306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;The above would call on the fly the contouring process and then render its result: no need to create and manage a new vector layer, the data is generated on the fly only when needed.&lt;br /&gt;Here is how the result looks (using a style sheet just a bit more complex than the above one):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TTh63t3PJuI/AAAAAAAAAEE/3bVDqBTPe-c/s1600/contours.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5564332437238916834" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TTh63t3PJuI/AAAAAAAAAEE/3bVDqBTPe-c/s320/contours.png" style="height: 192px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Chaining transformations we can also extract and display the value of the single pixels and show it as a label, as in the following example:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TTh-bpM8ZfI/AAAAAAAAAEU/KwqzZfbbBqE/s1600/contours-pixelvalue.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5564336352997959154" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TTh-bpM8ZfI/AAAAAAAAAEU/KwqzZfbbBqE/s320/contours-pixelvalue.png" style="cursor: pointer; height: 123px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alternatively you may want to extract the polygons containing all the cells in a certain data range, like in the following transformation:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TTiDOqn8FxI/AAAAAAAAAOE/UzkT1cOwNPE/s1600/b.jpg" imageanchor="1" style="clear: left;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TTiDOqn8FxI/AAAAAAAAAOE/UzkT1cOwNPE/s640/b.jpg" width="440" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The result, coloring each range in a different way, is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_0t7-v7X-jYc/TTh-4l1WmZI/AAAAAAAAAEc/aRIUQ3168aI/s1600/dem-ranges.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5564336850309912978" src="http://3.bp.blogspot.com/_0t7-v7X-jYc/TTh-4l1WmZI/AAAAAAAAAEc/aRIUQ3168aI/s320/dem-ranges.png" style="cursor: pointer; height: 214px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally, we may want to extract as set of wind arrows starting from a raster having the horizontal and vertical components of a vector (u and v):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TTh7lh6rHiI/AAAAAAAAAEM/b0eQhPjXdNw/s1600/wind-noconflict-zoomin.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5564333224306089506" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TTh7lh6rHiI/AAAAAAAAAEM/b0eQhPjXdNw/s320/wind-noconflict-zoomin.png" style="cursor: pointer; height: 192px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We're &lt;a href="http://demo.geo-solutions.it/share/garrows2.sld"&gt;linking to the full SLD&lt;/a&gt; of this last one because it's quite the testament of SLD flexibility: the magnitude and direction of the arrow are computed on the fly by using filter functions (functions that are part of &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt;/&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;, you may not find them in just any implementation).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One important bit here is that the raster to vector conversion are happening at the visualization resolution: this means you can have the transformation work against large datasets without heavy slowdowns, because it is going to happen only in the area you're looking at, and at the resolution that would have been used to draw the raster.&lt;br /&gt;This makes it possible to get fast, on the fly operations that do not excessively slow down rendering.&lt;br /&gt;&lt;br /&gt;This is yet another example of how processing capabilities can be integrated into GeoServer, and it's by no means the last. Also, there is still plenty that can be done to improve this kind of transformations, as well as new transformations to support mapping tools such as heatmaps. Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin: 0px;"&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3926098722642504274?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3926098722642504274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3926098722642504274' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3926098722642504274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3926098722642504274'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/developers-corner-have-your-sld.html' title='Developers Corner: have your SLD transform raster data into vectors on the fly'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0_xIiXP5xuY/TTiEO3W0clI/AAAAAAAAAOQ/Nv85Y7YosPY/s72-c/a.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-4973428352401443289</id><published>2011-01-21T01:55:00.000-08:00</published><updated>2011-01-21T01:55:53.947-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='FOSS4G'/><title type='text'>GeoSolutions is sponsoring FOSS4G 2011</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is proud to announce its participation has a bronze sponsor to the &lt;b&gt;Free and Open Source Software for Geospatial (&lt;a href="http://2011.foss4g.org/"&gt;FOSS4G&lt;/a&gt;)&lt;/b&gt;&amp;nbsp;2011 conference, being held September 12 - 16, 2011, in Denver, CO, USA.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2011.foss4g.org/"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_0_xIiXP5xuY/TTlWzd2u_XI/AAAAAAAAAOU/V-9yIzNmonA/s1600/foss4g_color_250x.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-4973428352401443289?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/4973428352401443289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=4973428352401443289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4973428352401443289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/4973428352401443289'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/geosolutions-is-sponsoring-foss4g-2011.html' title='GeoSolutions is sponsoring FOSS4G 2011'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0_xIiXP5xuY/TTlWzd2u_XI/AAAAAAAAAOU/V-9yIzNmonA/s72-c/foss4g_color_250x.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-446679043940552675</id><published>2011-01-10T01:15:00.000-08:00</published><updated>2011-01-10T01:57:11.093-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='warp'/><category scheme='http://www.blogger.com/atom/ns#' term='reprojection'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>Developers Corner: Improving GeoTools/GeoServer raster reprojection performance</title><content type='html'>Ciao a tutti,&lt;br /&gt;we hope everybody had nice seasonal holidays and is back fresh and ready to move on with another year of activity.&lt;br /&gt;&lt;br /&gt;In this blog we'd like to present some of the work we have been doing in recent time to improve &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt; and &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; raster reprojection abilities.&lt;br /&gt;&lt;br /&gt;Raster reprojection is a quite heavy process in which every single pixel of the original image has to be mapped into a new position in the target raster. Here is a visual representation of a small set of pixels, before and after the reprojection (in this case, from WGS84 to polar stereographic):&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0t7-v7X-jYc/TSrBVXjBmMI/AAAAAAAAADs/5uN-7lh5ykk/s1600/stereo-overlapped.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5560469262784633026" src="http://3.bp.blogspot.com/_0t7-v7X-jYc/TSrBVXjBmMI/AAAAAAAAADs/5uN-7lh5ykk/s320/stereo-overlapped.png" style="height: 320px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;A point by point reprojection is obviously taking quite a toll, a screen sized image has easily well over one million pixels to reproject, much more than the number of vertices one can find in the common vector map. To make things worse, the transformation to be used often involves trigonometric functions and other complex mathematical tools that visibly slow down the calculation.&lt;br /&gt;&lt;br /&gt;The reprojection algorithm used by &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; and &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt; until now worked exactly like that, it used a very accurate but also very slow approach.&lt;br /&gt;&lt;br /&gt;Now, if you think about it, the transformation applied to one pixel and the one applied to the next one are basically the same, the difference is going to be minimal.If we only had a small bunch of pixels we could compute a simple &lt;a href="http://en.wikipedia.org/wiki/Translation_(geometry)"&gt;translation&lt;/a&gt; and apply it to them all.&lt;br/&gt;Having more pixels we could try to approximate the overall transformation with a simple linear one, which in two dimensional space is known as an &lt;a href="http://en.wikipedia.org/wiki/Affine_transformation"&gt;affine transformation&lt;/a&gt;.&lt;br/&gt;&lt;br /&gt;If the area gets larger a single affine transformation would not be good enough anymore, but we could use many of them to fit different areas of the raster. &lt;br/&gt;&lt;br /&gt;Have a look at the following one dimensional representation to get the gist of the idea (this is known as &lt;a href="http://en.wikipedia.org/wiki/Piecewise_linear_function"&gt;piecewise linear function&lt;/a&gt;):&lt;br/&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TSrAbv_SRfI/AAAAAAAAADk/qNLJM1ELAqg/s1600/approximatepiecewise.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5560468272913204722" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TSrAbv_SRfI/AAAAAAAAADk/qNLJM1ELAqg/s320/approximatepiecewise.png" style="cursor: pointer; height: 207px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;br /&gt;The trick to apply this approach if finding out where and how much to subdivide the original area into discrete pieces that can use a single affine transform: to do so we devised a simple error estimation method that proved to work well with all common map projections.&lt;br/&gt;&lt;br/&gt;So we start by evaluating the linear transformation error over the entire raster area, if it's larger than a certain target we split the area and evaluate again, and recurse this way until the approximation error has been put under control.&lt;br/&gt;&lt;br/&gt;The optimized method proved to be quite effective, drastically reducing the time it takes to reproject a raster. We made some tests with &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; using the same data and the same reprojection test used in the &lt;a href="http://2010.foss4g.org/presentations_show.php?id=3374"&gt;FOSS4G 2010 WMS shootout &lt;/a&gt;measuring a six times speedup:&lt;br/&gt;&lt;br/&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TSrKAs0VEYI/AAAAAAAAAD8/29Den-yMxGI/s1600/wms-shootout.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5560478803321753986" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TSrKAs0VEYI/AAAAAAAAAD8/29Den-yMxGI/s320/wms-shootout.png" style="cursor: pointer; height: 198px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;We also compared the images generated by the original and optimized method finding there was hardly any human noticeable difference, and very little difference that could be machine detected at all.&lt;br/&gt;&lt;br/&gt;For all of you that want to dig into the nitty-gritty details, we have a full &lt;a href="http://demo.geo-solutions.it/share/OptimizingRasterReprojection.pdf"&gt;tech report&lt;/a&gt; that you can inspect.&lt;br/&gt;&lt;br/&gt;There is still plenty that can be done to optimize further raster data reading and in memory transformations to reach even higher performance and scalability. Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know&lt;/a&gt;!&lt;br/&gt;&lt;br/&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;a href="http://www.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-446679043940552675?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/446679043940552675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=446679043940552675' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/446679043940552675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/446679043940552675'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2011/01/developers-corner-improving.html' title='Developers Corner: Improving GeoTools/GeoServer raster reprojection performance'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0t7-v7X-jYc/TSrBVXjBmMI/AAAAAAAAADs/5uN-7lh5ykk/s72-c/stereo-overlapped.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-2668883553927197342</id><published>2010-12-23T02:56:00.000-08:00</published><updated>2010-12-23T04:13:57.647-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><title type='text'>Greetings from GeoSolutions' CEO</title><content type='html'>&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TRMpgFDSwkI/AAAAAAAAAN8/H0QdIhHtxlc/s1600/greetings.jpg" imageanchor="1"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TRMpgFDSwkI/AAAAAAAAAN8/H0QdIhHtxlc/s640/greetings.jpg" width="483" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-2668883553927197342?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/2668883553927197342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=2668883553927197342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2668883553927197342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2668883553927197342'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/12/greetings-from-geosolutions-ceo.html' title='Greetings from GeoSolutions&apos; CEO'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0_xIiXP5xuY/TRMpgFDSwkI/AAAAAAAAAN8/H0QdIhHtxlc/s72-c/greetings.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-882918803792330750</id><published>2010-12-20T04:01:00.000-08:00</published><updated>2010-12-20T07:50:21.983-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Developers Corner: Improving GeoServer security</title><content type='html'>Hi,&lt;br /&gt;&lt;div&gt;during the last few weeks &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt; have been thinking a lot about improving the &lt;a href="http://geosever.org/"&gt;GeoServer&lt;/a&gt; security, making it at the same time easier to integrate with external authorization systems and making it more expressive in terms of what kind of security rules can be expressed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As part of the work &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt; have been re-evaluating how the security can be applied in an ever growing software like GeoServer without having to cripple the available service abilities or to have to run after the developers constantly adding new features to the system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The evaluation resulted in a (long-ish) comparison of the possible models, including the all popular security proxy as well as the&lt;a href="http://docs.geoserver.org/stable/en/user/security/index.html"&gt; existing GeoServer implementation,&lt;/a&gt; and coming up with an approach that extends what &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt; already have for improved overall security and improved pluggability with existing systems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read the full comparison and the proposed solution in this&lt;a href="http://demo.geo-solutions.it/share/securing_geoserver.pdf"&gt; GeoSolutions tech report&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interested in advancing &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; security subsystem? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://dwww.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-882918803792330750?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/882918803792330750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=882918803792330750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/882918803792330750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/882918803792330750'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/12/developers-corner-improving-geoserver.html' title='Developers Corner: Improving GeoServer security'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-385728617392516693</id><published>2010-12-01T03:19:00.000-08:00</published><updated>2010-12-23T23:07:01.543-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geowebcache'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>Estimating time and space required to build a GeoWebCache on disk cache</title><content type='html'>An outstanding issue when using &lt;a href="http://geowebcache.sourceforge.net/"&gt;GeoWebCache&lt;/a&gt; is finding out how much disk space a certain layer will use, on disk, once fully cached, and also how much time it will take to pre-seed the cache up until a certain layer.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;a href="http://geowebcache.sourceforge.net/"&gt;GeoWebCache&lt;/a&gt; site used to link to a Google Documents spreadsheet providing such an estimate, but the link is gone from the current documentation and, regardless, we found the spreadsheet to be less than accurate, basically ending up computing at the very least the seeding size of 1/4 of the entire world no matter how small the given area was.&lt;/div&gt;&lt;div&gt;Therefore we set out to create a better replacement that would actually count the tiles needed to seed a specific area. The result works for a cache in WGS:84 and is available for everybody to look at and use on Google Documents: &lt;a href="https://spreadsheets4.google.com/ccc?key=tyCIm7rz8753DUGC9FyOXaw"&gt;GWC estimation - actual tile counting&lt;/a&gt;.  The current setup compute the actual cache size for the entire Italy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The document could probably use some more improvements, we're actually looking forward to hear from you about the results you're getting and possible improvements to the spreadsheet.&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://dwww.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-385728617392516693?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/385728617392516693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=385728617392516693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/385728617392516693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/385728617392516693'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/12/estimating-time-and-space-required-to.html' title='Estimating time and space required to build a GeoWebCache on disk cache'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3668147733052279119</id><published>2010-11-29T01:19:00.000-08:00</published><updated>2010-11-29T01:19:51.151-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>GeoServer Tips &amp; Tricks: Auto alignement of labels within polygons</title><content type='html'>&lt;br /&gt;Labeling polygons can sometimes be tricky. &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; ormally places the labels horizontally within the polygon, accepting only labels that "sit" inside the polygon for at least half of their length.&lt;br /&gt;However sometimes the polygons just don't collaborate with that setup, they can be thin and long, but rotated on an non horizontal angle: in this case &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; would not label them until the user zoomed in quite a bit in the map.&lt;br /&gt;&lt;br /&gt;Some time ago Björn Hartell and Andrea Aime started &lt;a href="http://jira.codehaus.org/browse/GEOT-3306"&gt;working on a patch&lt;/a&gt; to add a vendor option auto-rotate the labels for those polygons. After a few iterations and work on both sides we ended up with some pleasing results.&lt;br /&gt;Here is a couple of examples from the well known countries map from &lt;a href="http://www.naturalearthdata.com/"&gt;Natural Earth&lt;/a&gt; labelled with the "minimum bounding rectangle" auto rotation option:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNsOisCpyI/AAAAAAAAANc/2Z7PHDxQU2c/s1600/ne_auto_1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="154" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNsOisCpyI/AAAAAAAAANc/2Z7PHDxQU2c/s320/ne_auto_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNsfGLRBnI/AAAAAAAAANg/cxhjCmu12JI/s1600/ne_auto_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="154" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNsfGLRBnI/AAAAAAAAANg/cxhjCmu12JI/s320/ne_auto_2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Labelling buildings or parcels is another common usage for this option:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNswVzuHeI/AAAAAAAAANk/-KL_QUTbQRQ/s1600/buildings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="170" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNswVzuHeI/AAAAAAAAANk/-KL_QUTbQRQ/s320/buildings.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The map was obtained using the following vendor&amp;nbsp;options in the TextSymbolizer section of the SLD:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&amp;lt;VendorOption name="polygonAlign"&amp;gt;mbr&amp;lt;/VendorOption&amp;gt;&lt;br /&gt;&amp;lt;VendorOption name="maxDisplacement"&amp;gt;20&amp;lt;/VendorOption&amp;gt;&lt;br /&gt;&amp;lt;VendorOption name="goodnessOfFit"&amp;gt;1.0&amp;lt;/VendorOption&amp;gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;The patch just landed in &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt;, meaning it will be available in the next &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.1 beta release.Notice that &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt; have more cartographic rendering improvements in the pipe.&lt;br /&gt;&lt;br /&gt;Interested in getting better maps on screen, having some hard rendering problem to tackle? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;team&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;a href="http://dwww.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" style="cursor: move;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3668147733052279119?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3668147733052279119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3668147733052279119' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3668147733052279119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3668147733052279119'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/geoserver-tips-tricks-auto-alignement.html' title='GeoServer Tips &amp; Tricks: Auto alignement of labels within polygons'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0_xIiXP5xuY/TPNsOisCpyI/AAAAAAAAANc/2Z7PHDxQU2c/s72-c/ne_auto_1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6635083969116324361</id><published>2010-11-24T09:48:00.000-08:00</published><updated>2010-11-24T09:48:46.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='geoprocessing'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='WPS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>Fun Stuff: Computing circular buffers in geographic coordinates</title><content type='html'>Finding all the objects within a certain distance from a point is surely a common GIS problem. The problem is normally solved using OGC "dwithin" filters or by computing a buffer and then finding all the intersecting objects.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Very often both of the approaches fail miserably in case the coordinate system is a geographic one, as common libraries, such as &lt;a href="http://tsusiatsoftware.net/jts/main.html"&gt;JTS&lt;/a&gt; and &lt;a href="http://trac.osgeo.org/geos/"&gt;GEOS&lt;/a&gt;, are not able to handle the non planar nature of it. As far as "dwithin" is concerned rencent &lt;a href="http://www.oracle.com/technetwork/database/options/spatial/index.html"&gt;Oracle&lt;/a&gt; and &lt;a href="http://postgis.refractions.net/"&gt;PostGIS&lt;/a&gt; versions can manage the problem properly, but what to do if they cannot be used?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We had to solve this problem when computing data distribution statistics over raster data cells that are within a certain distance from a given point, and making for an accurate calculation regardless of how long the distance was.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To do that we created a new &lt;a href="http://geoserver.org/"&gt;GeoServer&lt;/a&gt; WPS process, "gs:PointBuffers", that can create a set of buffers given a point, a target SRS  and a set of distances in meters.&lt;/div&gt;&lt;div&gt;In case the SRS denotes a geographic spatial reference system the &lt;a href="http://www.geotools.org/"&gt;GeoTools&lt;/a&gt; &lt;a href="http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/GeodeticCalculator.java"&gt;GeodeticCalculator&lt;/a&gt; is used to sample the set of points that are at the given distance, looping over a closed sets of azimuths to cover the entire shape.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Interested in seeing the results? I certainly was. &lt;/div&gt;&lt;div&gt;Let's start with a set of small buffers at a medium latitude: 10, 30, 50 and 100 km buffers around a point located in northern Italy. Here is there result:&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_0_xIiXP5xuY/TO0_70DyW5I/AAAAAAAAANQ/RCExS_r3wog/s1600/Slide2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="171" src="http://1.bp.blogspot.com/_0_xIiXP5xuY/TO0_70DyW5I/AAAAAAAAANQ/RCExS_r3wog/s320/Slide2.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see, drawing the result in plain WGS84 (plate carré for the conoisseurs) we get elliptical shapes. This should not come as a surprise if you consider that at 45° one degree of latitude spans 111km, whilst a degree of longitude spans only 78km (see the &lt;a href="http://en.wikipedia.org/wiki/Longitude#Degree_length"&gt;"Degree length" table&lt;/a&gt; at Wikipedia).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What if we pump up the distance significantly? Let's try with 100, 500, 1000, 2000 and 3000km instead. Here is the result:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/_0_xIiXP5xuY/TO1ApWJrLII/AAAAAAAAANY/Q_AqPCobRZk/s1600/Slide3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="274" src="http://1.bp.blogspot.com/_0_xIiXP5xuY/TO1ApWJrLII/AAAAAAAAANY/Q_AqPCobRZk/s320/Slide3.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See the funny shape we get? This is the effect of the size of one degree of longitude shrinking as we move towards north.&lt;/div&gt;&lt;div&gt;It is also a good indicator of how deformed the now common WGS84 maps, often published on the web, are. &lt;/div&gt;&lt;div&gt;If you want to see the same data in a  common projection, let's have a look at the same map in EPSG:3857 (aka the Google projection):&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TO1AnZnFxbI/AAAAAAAAANU/G7eeT0g48M0/s1600/Slide1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TO1AnZnFxbI/AAAAAAAAANU/G7eeT0g48M0/s320/Slide1.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Somewhat better, even if the Mercator tendency to inflate areas at high latitudes is well evident.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, this is it. The gs:PointBuffers is soon going to land in GeoServer for your testing pleasure.&lt;/div&gt;&lt;div&gt;We'd very much like to tackle the same problem against lines and polygons as well. Interested? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know&lt;/a&gt;!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team&lt;/div&gt;&lt;div&gt;&lt;a href="http://dwww.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6635083969116324361?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6635083969116324361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6635083969116324361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6635083969116324361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6635083969116324361'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/fun-stuff-computing-circular-buffers-in.html' title='Fun Stuff: Computing circular buffers in geographic coordinates'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0_xIiXP5xuY/TO0_70DyW5I/AAAAAAAAANQ/RCExS_r3wog/s72-c/Slide2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3049413581154946312</id><published>2010-11-23T02:36:00.000-08:00</published><updated>2010-12-20T07:03:51.090-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><title type='text'>(CAS + LDAP + FTP + LifeRay) ^ GeoSolutions  = Enteprise Portal</title><content type='html'>&lt;div&gt;Recently &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; has developed for one our biggest clients their&amp;nbsp;new web portal . The long term goal was to rationalize and concentrate all users and applications management in a single entry point, providing them with all the functionalities of a classic web portal.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Use Case and Requirements&lt;/b&gt;&lt;br /&gt;The development and deployment of the whole architecture was challenging due to the strict functional and non-functional requirements they put forward.&lt;br /&gt;The use case is quite complex since our client periodically conducts experiments at sea, collaborating with other agencies and research centres, where large amounts of data are collected and stored. Moreover, security is a crucial concern for it and therefore sophisticated and fine grained access control and  authorization enforcements mechanisms are required.&lt;br /&gt;&lt;br /&gt;Main requirements were as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;introduction of a &lt;b&gt;Single Sign On (SSO)&lt;/b&gt; mechanism in order to allow users to share their credentials across all the applications exposed through the web portal&lt;/li&gt;&lt;li&gt;the system had to be able to distinguish external users from internal users and therefore present a different set of security checks as well as richer or poorer content according to their provenance.&lt;/li&gt;&lt;li&gt;usage of a single interoperable and open credentials respository for storing users credentials accounting also for the possibility to use them also for FTP A&amp;amp;A as well as for legacy applications. &lt;/li&gt;&lt;li&gt;fine grained RBAC control capabilities in order to group users according to their needs as well as their provenance&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Let us briefly explain the concept and the work done in order to implement such a system.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Single Sign On&lt;/b&gt;&lt;br /&gt;We decided to implement the &lt;b&gt;SSO &lt;/b&gt;system trough a &lt;b&gt;Central Authentication Service&lt;/b&gt; (&lt;a href="http://www.jasig.org/cas"&gt;CAS&lt;/a&gt;).&lt;br /&gt;The &lt;b&gt;CAS &lt;/b&gt;Service assigns authentication tickets to the users after a successful logon throught HTTP cookies so that an application or a service (like &lt;a href="http://httpd.apache.org/"&gt;Apache HTTPD&lt;/a&gt; for instance) able to communicate with CAS is able to automatically recognize the user and its authentication status.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Authorization&lt;/b&gt;&lt;br /&gt;Notice that with &lt;b&gt;CAS &lt;/b&gt;we can provide only &lt;b&gt;Authentication&lt;/b&gt;, not &lt;b&gt;Authorization&lt;/b&gt;. That means that we need some other mechanism able to manage user's authorizations, the choice we made was to use &lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/LDAP"&gt;LDAP&lt;/a&gt;&lt;/b&gt; to implement &lt;a href="http://en.wikipedia.org/wiki/Role-based_access_control"&gt;&lt;b&gt;Role Based Access Control&lt;/b&gt;&lt;/a&gt; &lt;b&gt;(RBAC)&lt;/b&gt;.&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;RBAC&lt;/b&gt; was accomplished by creating a specific &lt;b&gt;LDAP &lt;/b&gt;users repository and enabling both HTTP and FTP daemons to draw users privileges from it. The &lt;b&gt;LDAP&lt;/b&gt; service was provided by an &lt;a href="http://www.openldap.org/"&gt;OpenLDAP&lt;/a&gt; server with a custom schema for groups and peoples.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Web Portal&lt;/b&gt;&lt;br /&gt;The web portal was implemented through &lt;a href="http://www.liferay.com/"&gt;&lt;b&gt;LifeRay&lt;/b&gt;&lt;/a&gt;.  &lt;b&gt;LifeRay&lt;/b&gt; was configured to provide authentication through &lt;b&gt;CAS&lt;/b&gt; and authorization through &lt;b&gt;LDAP&lt;/b&gt;. In other words it imports/exports users and groups from/to the &lt;b&gt;LDAP&lt;/b&gt; server. All the others A&amp;amp;A &lt;b&gt;LifeRay&lt;/b&gt; mechanisms have been configured accordingly.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: normal; margin: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TPkfXXhK2CI/AAAAAAAAANw/f4WEfCMP9-4/s1600/Clipboard04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TPkfXXhK2CI/AAAAAAAAANw/f4WEfCMP9-4/s320/Clipboard04.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Putting it all together&lt;/b&gt;&lt;br /&gt;Here below a schema of the entire system and its components.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TPkfYq7w2MI/AAAAAAAAAN0/mAkf8kmU3E4/s1600/Portal-deployment-diagram.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TPkfYq7w2MI/AAAAAAAAAN0/mAkf8kmU3E4/s320/Portal-deployment-diagram.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Let us now explain in more details the architecture above.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Apache HTTP Server&lt;/b&gt; sits in front of every direct HTTP access to data configured  with “mod_cas” and “mod_ldap” in order to provide A&amp;amp;A. The “mod_rewrite” and “mod_proxy” modules have been also configured in order to both recognize internal/external accesses and forward requests to internal web apps.&lt;br /&gt;&lt;br /&gt;Both CAS and FTP services have been configured to get users credentials from LDAP.&lt;br /&gt;&lt;br /&gt;In order to provide the customer with a fully functional system allowing him to manage credentials and web applications areas, we also developed a specific portlet for allowing administrators to manage users' credentials in &lt;b&gt;LDAP &lt;/b&gt;as well as to provide users with the capability to reset their password.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TPkfXXhK2CI/AAAAAAAAANw/f4WEfCMP9-4/s1600/Clipboard04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TPkfXXhK2CI/AAAAAAAAANw/f4WEfCMP9-4/s320/Clipboard04.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Final Notes and next steps&lt;/b&gt;&lt;br /&gt;We had to customized &lt;b&gt;LifeRay &lt;/b&gt;deeply  in order to integrate all the above components, but thanks to its flexibility as well as to its extension frameworks we have been able to accomplished what we needed to without touching the source code nor recompiling the standard distribution.&lt;br /&gt;Next steps includes integrating also the GeoServer into this infrastructure and letting it play nice with &lt;b&gt;LDAP &lt;/b&gt;and &lt;b&gt;SSO&lt;/b&gt;. Stay tuned for more info on the topic.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3049413581154946312?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3049413581154946312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3049413581154946312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3049413581154946312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3049413581154946312'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/cas-ldap-ftp-liferay-geosolutions-new.html' title='(CAS + LDAP + FTP + LifeRay) ^ GeoSolutions  = Enteprise Portal'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TPkfXXhK2CI/AAAAAAAAANw/f4WEfCMP9-4/s72-c/Clipboard04.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-8449646882716070486</id><published>2010-11-22T13:16:00.000-08:00</published><updated>2010-11-22T13:16:50.254-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>GeoServer workshop available for free!</title><content type='html'>Dear All,&lt;br /&gt;a quick post to just let you know that &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;is sharing an introductory workshop on &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.0.&lt;br /&gt;&lt;br /&gt;The material comprises of:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;a light Ubuntu-based ISO&lt;/li&gt;&lt;li&gt;a preconfigured&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;data directory containing data kindly donated by the &lt;a href="http://www.comune.prato.it/"&gt;Municipality of Prato&lt;/a&gt; in Italy&lt;/li&gt;&lt;li&gt;the workshop itself, as a set of html files&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;The ISO file can be run either using Virtual Box or the VMWare Player. As an alternative you can burn it on a CD and you can use it as a Live Ubuntu or install it on your system.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once you get it up and running, the installation contains:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;An instance of the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;2.0.x stable nightly with a subset of the Prato's layers with proper styling.&lt;/li&gt;&lt;li&gt;PostgreSQL with Postgis&lt;/li&gt;&lt;li&gt;&lt;a href="http://udig.refractions.net/"&gt;UDIG&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.qgis.org/"&gt;QGis&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;The topics covered in this workshop are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Installing and running GeoServer: &lt;/b&gt;describes how to install and run GeoServer&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Adding Data to GeoServer: &lt;/b&gt;explains how to manage the GeoServer Data Directory as well as how to add the base data types into GeoServer, like ShapeFile, GeoTIFF as well as PostGIS data&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Pretty maps with GeoServer:&amp;nbsp;&lt;/b&gt;describes how to manage the GeoServer maps visualizzation. All aspects related to styles, layer groups and other interesting GeoServer features affecting the WMS protocol will be introduced&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Google Earth and Maps support:&amp;nbsp;&lt;/b&gt;introduces GeoServer support for KML and Google Earth. The reader will learn how to view GeoServer data in Google Earth, and will be exposed to some of the more advanced features of KML output.&lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;You can download the workshop from here:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://demo.geo-solutions.it/share/gfoss2010/gfoss2010.iso"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_0_xIiXP5xuY/TOk8j_CgHlI/AAAAAAAAAM8/bOQ98-ZfoM0/s1600/download_button.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In case you find errors or issues, or in case you want to know more about &lt;a href="http://www.geo-solutions.it/services/"&gt;our services&lt;/a&gt; with regards to training, please &lt;a href="http://www.geo-solutions.it/contact/"&gt;contact us&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team,&lt;br /&gt;&lt;a href="http://dwww.geo-solutions.it//"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-8449646882716070486?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/8449646882716070486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=8449646882716070486' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8449646882716070486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/8449646882716070486'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/geoserver-workshop-available-for-free.html' title='GeoServer workshop available for free!'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_0_xIiXP5xuY/TOk8j_CgHlI/AAAAAAAAAM8/bOQ98-ZfoM0/s72-c/download_button.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-223452446464779116</id><published>2010-11-16T04:09:00.001-08:00</published><updated>2010-11-18T14:09:18.499-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='gfoss'/><title type='text'>Presentation on GeoServer @ Gfoss Day 2010</title><content type='html'>Dear All,&lt;br /&gt;a quick blog post to share the presentation &lt;a href="http://it.linkedin.com/in/simonegiannecchini"&gt;Simone Giannecchini&lt;/a&gt; is going to give at the &lt;a href="http://www.gfoss.it/drupal/gfossday2010"&gt;Italian GFOSS Day 2010&lt;/a&gt; tomorrow morning about &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;.&lt;br /&gt;&lt;div id="__ss_5795367" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/geosolutions/gfoss-2010" title="Gfoss 2010"&gt;Gfoss 2010&lt;/a&gt;&lt;/strong&gt;&lt;object height="355" id="__sse5795367" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gfoss-2010-101116054245-phpapp02&amp;stripped_title=gfoss-2010&amp;userName=geosolutions" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse5795367" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gfoss-2010-101116054245-phpapp02&amp;stripped_title=gfoss-2010&amp;userName=geosolutions" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/geosolutions"&gt;GeoSolutions&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team,&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-223452446464779116?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/223452446464779116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=223452446464779116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/223452446464779116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/223452446464779116'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/gfoss-2010.html' title='Presentation on GeoServer @ Gfoss Day 2010'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-2463593406944392795</id><published>2010-11-15T01:23:00.000-08:00</published><updated>2010-11-15T01:23:51.876-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='OGC'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='WPS'/><title type='text'>GeoSolutions helps GeoServer WPS going mainstream</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; is funding Andrea Aime's time to bring the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; Web Processing Service (&lt;a href="http://www.opengeospatial.org/standards/wps"&gt;WPS&lt;/a&gt;) module to become an officially supported extension. A &lt;a href="http://geoserver.org/display/GEOS/GSIP+55+-+Promote+WPS+to+extension"&gt;proposal&lt;/a&gt; has been submitted and is being voted on by the Project Steering Committe; you can track the progress &lt;a href="http://geoserver.org/display/GEOS/GSIP+55+-+Promote+WPS+to+extension"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For those who have no idea of what WPS means I can cite part of the description I have found in &lt;a href="http://en.wikipedia.org/wiki/Web_Processing_Service"&gt;wikipedia&lt;/a&gt;, which is very informative:&lt;br /&gt;&lt;i&gt;"The  (&lt;b&gt;WPS&lt;/b&gt;) is designed to standardize the way that GIS calculations are made available to the Internet. WPS can describe any calculation (i.e. process) including all of its inputs and outputs, and trigger its execution as a Web Service. WPS supports simultaneous exposure of processes via HTTP GET, HTTP POST, and SOAP, thus allowing the client to choose the most appropriate interface mechanism. The specific processes served up by a WPS implementation are defined by the owner of that implementation. Although WPS was designed to work with spatially referenced data, it can be used with any kind of data.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;WPS makes it possible to publish, find, and bind to processes in a standardized and thus interoperable fashion. Theoretically it is transport/platform neutral (like SOAP), but in practice it has only been specified for HTTP.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;WPS defines three operations:&lt;/i&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;GetCapabilities returns service-level metadata&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;DescribeProcess returns a description of a process including its inputs and outputs&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Execute returns the output(s) of a process"&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; plans for the &lt;b&gt;WPS &lt;/b&gt;module in &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; extend beyond simply making it an official extension; in the&lt;b&gt; short term&lt;/b&gt; we intend to publish a set of processes that we have developed for &lt;a href="http://www.fao.org/"&gt;FAO&lt;/a&gt; which will add support for sophisticated statistics on both raster and vector data as well as other more specific processes (raster crop by polygon to name one).&lt;/div&gt;&lt;div&gt;In the&lt;b&gt; longer term &lt;/b&gt;our goals include the following items:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Exposing &lt;a href="http://www.gdal.org/"&gt;GDAL &lt;/a&gt;utilities (e.g. &lt;a href="http://www.gdal.org/gdalinfo.html"&gt;gdalinfo&lt;/a&gt;) as WPS processes&lt;/li&gt;&lt;li&gt;Exposing &lt;a href="http://www.gnu.org/software/octave/"&gt;Octave&lt;/a&gt; functions as WPS processes&lt;/li&gt;&lt;li&gt;Exposing &lt;a href="http://www.ittvis.com/ProductServices/IDL.aspx"&gt;IDL &lt;/a&gt;routines as WPS processes&lt;/li&gt;&lt;li&gt;Raster Algebra support via&lt;a href="http://code.google.com/p/jai-tools/wiki/Jiffle"&gt; JAI-Tools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Improving support for grid processing &lt;/li&gt;&lt;li&gt;Improving support for clustered processing for superior scalability&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a href="http://twitter.com/simogeo"&gt;&lt;b&gt;Stay tuned&lt;/b&gt;&lt;/a&gt; for more information and, if you want to know more, you can always &lt;a href="http://www.geo-solutions.it/contact/"&gt;contact us directly&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;The GeoSolutions team.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-2463593406944392795?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/2463593406944392795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=2463593406944392795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2463593406944392795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/2463593406944392795'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/geosolutions-helps-geoserver-wps-going.html' title='GeoSolutions helps GeoServer WPS going mainstream'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-5284042370750874762</id><published>2010-11-11T04:21:00.000-08:00</published><updated>2010-11-12T01:23:41.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>SimpleFeatureService: yet another attempt to simplify vector data dissemination - Part I</title><content type='html'>In the current web gis world the most common standard protocol to disseminate vector data is the OGC Web Feature Service (&lt;a href="http://www.opengeospatial.org/standards/wfs"&gt;WFS&lt;/a&gt;). While the protocol is fine, it has a number of shortcomings if we focus on the simple features dissemination case:&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;the protocol is complex, writing a client is often hard and error prone, same goes for implementing a new WFS server&lt;/li&gt;&lt;li&gt;the axis order issue makes it difficult, even today, to know what the axis order of the data returned by a WFS is&lt;/li&gt;&lt;li&gt;usage of &lt;a href="http://www.opengeospatial.org/standards/gml"&gt;GML&lt;/a&gt; implies there are many ways to present the same information or the same geometry (think polygon vs surfaces, or the issue that sometime arise with the feature built in attributes, such as name and location, with the ones that the application wants to publish)&lt;/li&gt;&lt;/ul&gt;In SOA architectures it is common to have different pieces of the overall system written in different languages, and sometimes there is a need for some part to exchange simple vector data information: we were looking for a quick to implement protocol that would get the job done without the extra complications of WFS (btw, we're not throwing away standards, in fact &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; WFS would be used to cascade the simpler protocol into the more complex, but standard compliant, WFS 1.1).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A quick research showed that &lt;a href="http://geojson.org/"&gt;GeoJSON&lt;/a&gt; would have been a very good candidate for data transport, since there are ready made parsers and encoders for the most common languages. The existing &lt;a href="http://trac.mapfish.org/trac/mapfish/wiki/MapFishProtocol"&gt;Mapfish data query protocol&lt;/a&gt; also seemed to fit the bill quite nicely, however we found some limitations that make it hard to use the protocol as a source of data to be cascaded via WFS:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;there is no entry point that lists all the available layers&lt;/li&gt;&lt;li&gt;there is no way to know in advance what attributes will be returned and what is the spatial reference system of the geometries, nor is the axis order known (we want that to be explicit, just to make sure we avoid the same issues we're seeing in WFS)&lt;/li&gt;&lt;li&gt;there is no way to quickly get just the bounds and count of the features satisfying a certain filter&lt;/li&gt;&lt;li&gt;there is no recognized way to eventually transport vendor specific parameters (in our case, a multidimensional query for OLAP systems)&lt;/li&gt;&lt;li&gt;the pure restful-ness of the protocol does not allow to pass over many parameters&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;What we did was to extend the protocol a bit to support the above requirements, making it into a very simple OGC like service, and making concessions to the usage of POST requests to gather data.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, we can already hear the restful purists yelling about the usage of POST requests to get data. We're aware that it would have been possible to handle that, but each solution would have had drawbacks:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt; storing the query as a resource would have required to add urls to handle such resources, and some way to expire them (can't trust the client to orderly go and remove them manually)&lt;/li&gt;&lt;li&gt;providing a link back to the full query would have implied the client can publish resource and that the server can link back to them, both cases are not always met in practice&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;The focus of this protocol is &lt;i&gt;implementation simplicity&lt;/i&gt;, so that a diversity of implementors in different languages can &lt;i&gt;quickly&lt;/i&gt; get a simple feature service up and running, so we believe that in this case pragmatism needs to have the upper hand over religion. If it's possible to implement the service quickly and without ambiguities we basically reached our goal, any other improvement can be of interest provided it does not hamper this primary objective.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A PDF document describing the current layout of the &lt;a href="http://demo.geo-solutions.it/share/SimpleFeatureService.pdf"&gt;simple feature service procotol&lt;/a&gt; is available. There are a few questions that we feel are still open:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;the layout of the urls could probably follow a more hierarchical structure&lt;/li&gt;&lt;li&gt;the data type conventions could be fleshed out in more detail (thinking about date/time/timestamp for example)&lt;/li&gt;&lt;li&gt;the feature attributes is an unordered set, however cascading by WFS will result in some order being chosen. Wondering if the order should be established at the simple feature service protocol directly (by using an array of attributes in the describe layer output)&lt;/li&gt;&lt;li&gt;the documents may be linking each other (this would be make the service crawlable by search engines, assuming that is even a goal and not, on the contrary, an undesirable feature)&lt;/li&gt;&lt;li&gt;the capabilities could be turned into a simple list of names and we could have the describe resource provide also the spatial reference system and bounds informations&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Let us know what you think!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-5284042370750874762?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/5284042370750874762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=5284042370750874762' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5284042370750874762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/5284042370750874762'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/simplefeatureservice-yet-another.html' title='SimpleFeatureService: yet another attempt to simplify vector data dissemination - Part I'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7950745939492039338</id><published>2010-11-08T07:46:00.000-08:00</published><updated>2010-11-08T07:46:30.990-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='tiff'/><category scheme='http://www.blogger.com/atom/ns#' term='Raster'/><category scheme='http://www.blogger.com/atom/ns#' term='geotiff'/><category scheme='http://www.blogger.com/atom/ns#' term='OGC'/><category scheme='http://www.blogger.com/atom/ns#' term='geospatial'/><title type='text'>WorldFile explained (or at least we tried!)</title><content type='html'>There is a lot of confusion around about what world file represents therefore &lt;a href="http://www.geo-solutions.it/"&gt;we&lt;/a&gt; thought it would have been nice to put together a couple of clarifications.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;The World File&lt;/b&gt;&lt;br /&gt;World File is a de-facto standard from early days of ESRI desktop GIS applications. Originally it was composed by at least two files, a raster file, let' say a file.tiff, &amp;nbsp;and another file (most part of the times called file.wld) &amp;nbsp;that contains numbers that define the affine transformation between the image and the target spatial reference system. This implicitly means that we are talking about georectified raster data.&amp;nbsp;This &lt;b&gt;wld&lt;/b&gt; file is what should be properly called the &lt;b&gt;world file&lt;/b&gt;. Other extensions that could be used on behalf of tfw are wld tifw, etc... Moreover some other formats beside tif can be used, like gif, png, jpeg, jpeg2000, etc..and the extensions for the world file become pretty fancy (gifw, pgw, etc..).&lt;br /&gt;&lt;br /&gt;The concept behind this couple is as follows. An image (e.g. a tif) plus its world file represent a geospatial georectified raster in some spatial coordinate reference system (CRS). The mapping between the raster space (the intrinsic Image space&amp;nbsp;of rows and cols) and the associated model space is represented by an affine transformation whose coeffficients are contained inside the accompanying world file (see&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/World_file"&gt;here&lt;/a&gt;&amp;nbsp;). This way, practically any image format can be made spatial-aware just adding a world file containing an affine transform that maps image points onto a crs. &lt;a href="http://en.wikipedia.org/wiki/World_file"&gt;Here&lt;/a&gt; is a good explanation of what a world file contains.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Projection File&lt;/b&gt;&lt;br /&gt;One would now ask, ok, but what coordinate reference system I am supposed to use. The best answer would be "the one the person who produces the image + the world file was using"! Seriously many people make assumptions on the CRS used for the georeferencing affine transform contained in the world file, but in fact this can lead to all sort of problems. The best way to transmit the information about the spatial coordinate reference system is providing a third file with extension &lt;b&gt;prj&lt;/b&gt; which contains the well known text (&lt;a href="http://en.wikipedia.org/wiki/Well-known_text"&gt;WKT&lt;/a&gt;&amp;nbsp;more info can be found &lt;a href="http://en.wikipedia.org/wiki/SRID"&gt;here&lt;/a&gt;) representation of the user spatial CRS. The &lt;a href="http://spatialreference.org/"&gt;Spatial Reference&lt;/a&gt;&amp;nbsp;website can be extremely useful for associating the proper WKT to a certain CRS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Recommendation&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Notice that usually the raster space has &lt;/span&gt;&lt;span class="Apple-style-span"&gt;x&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; going right and &lt;/span&gt;&lt;span class="Apple-style-span"&gt;y&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; going down while in model space things DEPEND on the spatial CRS, specifically, axes order and axes directions!&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;ALWAYS ASK YOUR DATA PROVIDER TO DESCRIBE EXACTLY THE SPATIAL COORDINATE REFERENCE SYSTEM THAT WAS USED TO GEOREFERENCE YOUR DATA.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team,&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7950745939492039338?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7950745939492039338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7950745939492039338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7950745939492039338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7950745939492039338'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/worldfile-explained-or-at-least-we.html' title='WorldFile explained (or at least we tried!)'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7910674409609029591</id><published>2010-11-08T00:30:00.000-08:00</published><updated>2010-11-08T00:30:52.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Giannecchini'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>GeoSolutions ad ASITA 2010</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;sara' presente nella giornata di mercoledi 10 Novembre 2010 alla 14esima conferenza nazionale &lt;a href="http://www.asita.it/cms/index.php?option=com_content&amp;amp;task=view&amp;amp;id=35&amp;amp;Itemid=48"&gt;ASITA&lt;/a&gt; &amp;nbsp;che si terrà a Brescia dal 9 al 12 Novembre 2010. &lt;a href="http://it.linkedin.com/in/simonegiannecchini"&gt;Simone Giannecchini&lt;/a&gt;, fondatore di&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;, sarà presente per visitare alcuni dei nostri clienti e sarà disponibile per tutto il giorno per eventuali approfondimenti sulle nostre attività. Chi volesse, puo' contattarci per esprimere il suo interesse &lt;a href="http://www.geo-solutions.it/contact/"&gt;qui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.asita.it/cms/index.php?option=com_content&amp;amp;task=view&amp;amp;id=35&amp;amp;Itemid=48" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://t1.gstatic.com/images?q=tbn:ANd9GcRWBgcSwkRyN5P0RjoDFHVqjQN4P-FVzV5G0lCXdJiRBEstKzE&amp;amp;t=1&amp;amp;usg=__ZECj34Hl_fVsb8JxvmrSJ5etuXM=" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Il team di &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7910674409609029591?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7910674409609029591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7910674409609029591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7910674409609029591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7910674409609029591'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/geosolutions-ad-asita-2010.html' title='GeoSolutions ad ASITA 2010'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-6882488292266673553</id><published>2010-11-05T00:40:00.000-07:00</published><updated>2010-11-05T00:40:19.146-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='gfoss'/><title type='text'>GeoSolutions sponsorizza il GFOSS Day 2010</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; è orgogliosa di annunciare la sua partecipazione come sponsorSILVER alla&amp;nbsp;terza conferenza italiana sul software geografico libero, &lt;a href="http://www.gfoss.it/drupal/gfossday2010"&gt;GFOSS DAY 2010&lt;/a&gt; che si terrà a Foligno (PG) il 18 e 19 Novembre 2010.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;proporrrà inoltre un &lt;a href="http://www.gfoss.it/drupal/gfossday2010/workshops"&gt;workshop&lt;/a&gt;&amp;nbsp;di due ore sul &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;. &lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Per iscriversi al workshop è necessario &lt;a href="http://www.gfoss.it/drupal/gfossday2010/registrazione"&gt;registrarsi&lt;/a&gt; alla conferenza in quanto la partecipazione al workshop &amp;nbsp;è limitata dalla disponibilità di computer.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.gfoss.it/drupal/files/abac_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://www.gfoss.it/drupal/files/abac_logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Il team di &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.geo-solutions.it/"&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-6882488292266673553?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/6882488292266673553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=6882488292266673553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6882488292266673553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/6882488292266673553'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/geosolutions-sponsorizza-il-gfoss-day.html' title='GeoSolutions sponsorizza il GFOSS Day 2010'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-7546693796678747581</id><published>2010-11-04T01:12:00.000-07:00</published><updated>2010-11-04T01:12:56.321-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>Workshop su GeoServer al GFOSS DAY 2010</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;will hold a 2 hours&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;workshop at&amp;nbsp;&lt;a href="http://www.gfoss.it/drupal/gfossday2010"&gt;GFOSS DAY 2010&lt;/a&gt;,&amp;nbsp;&amp;nbsp;the annual gathering of the Italian FOSS4G crowd.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img border="0" height="71" src="http://1.bp.blogspot.com/_0_xIiXP5xuY/TMaznjRjIrI/AAAAAAAAAM0/c6FsmiuC-Q0/s320/abac_logo.png" width="320" /&gt;&lt;/div&gt;&lt;br /&gt;The workshop will provide a quick introduction to the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;framework and will mainly focus on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;basic installation&lt;/li&gt;&lt;li&gt;basic data configuration and publishing&lt;/li&gt;&lt;li&gt;basic data exploitation&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.geoserver.org/"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;In case you are around and you want to attend the workshop, make sure to &lt;a href="http://www.gfoss.it/drupal/gfossday2010/registrazione"&gt;register&lt;/a&gt; for the conference since seats are limited!&lt;/div&gt;&lt;div&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;team.&lt;/div&gt;&lt;div&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-7546693796678747581?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/7546693796678747581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=7546693796678747581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7546693796678747581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/7546693796678747581'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/workshop-su-geoserver-al-gfoss-day-2010.html' title='Workshop su GeoServer al GFOSS DAY 2010'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0_xIiXP5xuY/TMaznjRjIrI/AAAAAAAAAM0/c6FsmiuC-Q0/s72-c/abac_logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1512404352200641226</id><published>2010-11-03T03:42:00.001-07:00</published><updated>2010-11-03T04:23:17.499-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>A new file chooser for GeoServer</title><content type='html'>Creating a new shapefile or directory store in &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; is nowadays quite easy, you basically just have to specify the path to the file or the directory and &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; figures out the rest. However, that still requires you to hand type the path to the file.&lt;br /&gt;&lt;br /&gt;I normally don't mind when running &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; locally, but it sure gets annoying when &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; is deployed on a remote host and a ssh session is needed to pick up the exact paths.&lt;br /&gt;However it's really doing &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; workshops that one sees poeople used to desktop software getting out of their comfort zone with this "type a path" thing.&lt;br /&gt;&lt;br /&gt;So lately we've been developing a patch adding an interactive file chooser that allows you to pick a file or a directly but simple point and click. Let's have a look:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The new shapefile store dialog provides with the "browse" button that will open the file chooser:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0t7-v7X-jYc/TNE-dZMaAHI/AAAAAAAAABk/-rOJxPd29vA/s1600/fc_shapefile-nq8.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5535274091715100786" src="http://3.bp.blogspot.com/_0t7-v7X-jYc/TNE-dZMaAHI/AAAAAAAAABk/-rOJxPd29vA/s320/fc_shapefile-nq8.png" style="cursor: pointer; height: 320px; width: 246px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;The file chooser in action, picking up a shapefile:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TNFAztEnosI/AAAAAAAAACE/w484NNgxmco/s1600/fc_shapefilec-nq8.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5535276674031526594" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TNFAztEnosI/AAAAAAAAACE/w484NNgxmco/s320/fc_shapefilec-nq8.png" style="cursor: pointer; height: 259px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TNE-d4u-OEI/AAAAAAAAAB0/OSgW2hvCtRA/s1600/fc_directory-nq8.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;Choosing a directory of shapefiles instead:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_0t7-v7X-jYc/TNE-dvKAEVI/AAAAAAAAABs/KqZYmMTGkZg/s1600/fc_shapefilec-nq8.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5535274097610592594" src="http://2.bp.blogspot.com/_0t7-v7X-jYc/TNE-dvKAEVI/AAAAAAAAABs/KqZYmMTGkZg/s320/fc_shapefilec-nq8.png" style="cursor: pointer; height: 236px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: -webkit-auto;"&gt;The result of picking up the directory. As you can see we've choosen a directory inside of the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; data directory and a relative path has been created (ensuring the data directory configuration remains portable among machines)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0t7-v7X-jYc/TNE-eFp7VDI/AAAAAAAAAB8/HW3mdLi6ew0/s1600/fc_relativedir-nq8.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5535274103650079794" src="http://3.bp.blogspot.com/_0t7-v7X-jYc/TNE-eFp7VDI/AAAAAAAAAB8/HW3mdLi6ew0/s320/fc_relativedir-nq8.png" style="cursor: pointer; height: 178px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;If you want a more dynamic display ve've also made a quick screencast (apologies for the low quality of it) that you can download from the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; &lt;a href="http://demo.geo-solutions.it/share/chooser.ogv"&gt;demo server&lt;/a&gt;. If you are on Linux you should be able to display the OGG Vorbis format directly, on other platforms you can install &lt;a href="http://www.videolan.org/"&gt;VideoLan&lt;/a&gt; to play it.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;This new functionality will soon land into a GeoServer 2.1.0 near to you :-) .&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team,&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1512404352200641226?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1512404352200641226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1512404352200641226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1512404352200641226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1512404352200641226'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/new-file-chooser-for-geoserver.html' title='A new file chooser for GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0t7-v7X-jYc/TNE-dZMaAHI/AAAAAAAAABk/-rOJxPd29vA/s72-c/fc_shapefile-nq8.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-3808830804070110796</id><published>2010-11-01T09:41:00.000-07:00</published><updated>2010-11-01T09:41:47.635-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><title type='text'>"Geoserver for the masses" from the Tanzanian GIS User Group</title><content type='html'>Dear All,&lt;br /&gt;just spreading the word on this nice article that evaluates/introduces &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; as a tools to easily disseminate geosaptial data. We are actually very proud to hear the following:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Although&amp;nbsp;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&lt;/span&gt;&amp;nbsp;will not find the same audience as Google Earth it helps by leveling the field when it comes to providing spatial data by the use of servers. Where one earlier would need detailed knowledge (and funding) to set up ESRI products, one may now do the same investing only a couple of hours of work. Within hours you could be able to present spatial data within your own organization, or even externally using a web server.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;If you are interested in reading the full article, which also contains a small intro on how to publish and style data with&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;, you can find it &lt;a href="http://bit.ly/9LL92V"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; Team.&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-3808830804070110796?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/3808830804070110796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=3808830804070110796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3808830804070110796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/3808830804070110796'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/11/geoserver-for-masses-from-tanzanian-gis.html' title='&quot;Geoserver for the masses&quot; from the Tanzanian GIS User Group'/><author><name>Simone Giannecchini</name><uri>https://profiles.google.com/100272321481446580202</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s72-c/geosolutions-logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1982216125675183230</id><published>2010-10-28T02:04:00.000-07:00</published><updated>2010-10-28T02:04:37.613-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSDI'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoTools'/><title type='text'>WMS cascading in latest GeoServer</title><content type='html'>One of the new exciting features in the &lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt; 2.1 series is WMS cascading.&lt;br /&gt;&lt;div&gt;For those that are not familiar with it, cascading allows to expose layers coming from other WMS servers as if they were local layers. This provides for some interesting advantages:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Clients connecting to your SDI need to care about less points of origin, which might be important for high security networks&lt;/li&gt;&lt;li&gt;It is now possible to ask for maps in formats not supported by the original server, or to reproject the maps in projections not supported by the original server (&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;supports out of the box almost 5000 different coordinate reference systems)&lt;/li&gt;&lt;li&gt;It is now possible to mix the layers with local ones to generate print oriented formats such as PDF&lt;/li&gt;&lt;li&gt;It is now possible to provide more informations about the layer, such as a better description, more keywords, which will benefit all clients, in particular catalogs harvesting informations from your capabilites document&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Configuration&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The configuration as usage of the cascaded layers follows&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;traditional ease of use.&lt;/div&gt;&lt;div&gt;The first step is to configure a new WMS server to be cascaded. In&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;terms that means configuring a new store, a WMS store in particular.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWMVZJnuAI/AAAAAAAAAA0/vyjd3Tw372o/s1600/wms_cascading_store.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5531982016450902018" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWMVZJnuAI/AAAAAAAAAA0/vyjd3Tw372o/s320/wms_cascading_store.png" style="height: 320px; width: 248px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;The only parameter needed is the capabilities document of the cascaded server, in this case, the DEMIS one (&lt;a href="http://www2.demis.nl/wms/wms.asp?wms=WorldMap&amp;amp;request=getcapabilities&amp;amp;version=1.0.7"&gt;http://www2.demis.nl/wms/wms.asp?wms=WorldMap&amp;amp;request=getcapabilities&amp;amp;version=1.0.7&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_0t7-v7X-jYc/TMWMVsgVb8I/AAAAAAAAAA8/x5gLjnLCeLg/s1600/wms_cascading_configure.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5531982021646446530" src="http://3.bp.blogspot.com/_0t7-v7X-jYc/TMWMVsgVb8I/AAAAAAAAAA8/x5gLjnLCeLg/s320/wms_cascading_configure.png" style="height: 320px; width: 313px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Past this point it's business as usual, one just need to choose which layers to cascade using the normal layer configuration workflow:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWNugNS8sI/AAAAAAAAABc/g_Tg2JqpbYE/s1600/wms_cascading_choose.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5531983547353723586" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWNugNS8sI/AAAAAAAAABc/g_Tg2JqpbYE/s320/wms_cascading_choose.png" style="cursor: pointer; height: 216px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Result&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Here is&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;map preview showing two layers, Topography and Borders:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TMWMVnwjGvI/AAAAAAAAABE/zKthjXCsh3k/s1600/wms_cascading_preview.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5531982020372273906" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TMWMVnwjGvI/AAAAAAAAABE/zKthjXCsh3k/s320/wms_cascading_preview.png" style="cursor: pointer; height: 174px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course it is also possible to mix in some local vector layers, such as, for example, the Tasmania layer group:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0t7-v7X-jYc/TMWMV-laiAI/AAAAAAAAABM/eLVFdluQTdg/s1600/wms_cascading_mix.png"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5531982026499590146" src="http://1.bp.blogspot.com/_0t7-v7X-jYc/TMWMV-laiAI/AAAAAAAAABM/eLVFdluQTdg/s320/wms_cascading_mix.png" style="cursor: pointer; height: 178px; width: 320px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As said, one of the nice things about cascading is that one can add a few features, such as reprojection, transparently. The original modis server does not advertise reprojection abilities, yet&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;can reproject the data into EPSG:3785 on the fly for us:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWMWTHLjxI/AAAAAAAAABU/jEapoEG5Yd0/s1600/wms_cascading_reproject.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5531982032009924370" src="http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWMWTHLjxI/AAAAAAAAABU/jEapoEG5Yd0/s320/wms_cascading_reproject.png" style="cursor: hand; cursor: pointer; height: 320px; width: 275px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Missing Features&lt;/b&gt;&lt;br /&gt;There is still a number of things that can be done vs cascading:&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Support for secured remote servers&lt;/li&gt;&lt;li&gt;Support for vendor parameters in cascading, including custom styling&lt;/li&gt;&lt;li&gt;Better networking support, with HTTP 1.1 persistent connections, limitations on the number of parallel requests to the cascaded server, and configurable timeouts&lt;/li&gt;&lt;li&gt;Support for choosing the cascading format (right now PNG is used)&lt;/li&gt;&lt;li&gt;Support for GetFeatureInfo cascading on servers that do not provide GML output (if the GML GetFeatureInfo output is there full cascading is already in place and working!)&lt;/li&gt;&lt;li&gt;Cascading WMS 1.3 servers&lt;/li&gt;&lt;li&gt;Auto configuration of the layers exposed by a remote server, so that new layers are automatically exposed by&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;without any manual intervention&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Are you interested in any of the above features? &lt;a href="http://www.geo-solutions.it/contact/"&gt;Let us know&lt;/a&gt;!&lt;/div&gt;&lt;br /&gt;Regards,&lt;br /&gt;the &lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt; team.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.geo-solutions.it/static/img/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1982216125675183230?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1982216125675183230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1982216125675183230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1982216125675183230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5176900881057973693/posts/default/1982216125675183230'/><link rel='alternate' type='text/html' href='http://geo-solutions.blogspot.com/2010/10/wms-cascading-in-latest-geoserver.html' title='WMS cascading in latest GeoServer'/><author><name>Andrea Aime</name><uri>http://www.blogger.com/profile/04056107353824320977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_0t7-v7X-jYc/TMWMVZJnuAI/AAAAAAAAAA0/vyjd3Tw372o/s72-c/wms_cascading_store.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5176900881057973693.post-1593147776423399264</id><published>2010-10-26T04:01:00.000-07:00</published><updated>2010-10-26T04:05:40.826-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GEO'/><category scheme='http://www.blogger.com/atom/ns#' term='GIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Training'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoSolutions'/><category scheme='http://www.blogger.com/atom/ns#' term='GeoServer'/><category scheme='http://www.blogger.com/atom/ns#' term='workshop'/><title type='text'>GeoServer Workshop at GFOSS DAY 2010</title><content type='html'>&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;will hold a 2 hours&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;workshop at&amp;nbsp;&lt;a href="http://www.gfoss.it/drupal/gfossday2010"&gt;GFOSS DAY 2010&lt;/a&gt;,&amp;nbsp;&amp;nbsp;the annual gathering of the Italian FOSS4G crowd.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_0_xIiXP5xuY/TMaznjRjIrI/AAAAAAAAAM0/c6FsmiuC-Q0/s1600/abac_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="71" src="http://1.bp.blogspot.com/_0_xIiXP5xuY/TMaznjRjIrI/AAAAAAAAAM0/c6FsmiuC-Q0/s320/abac_logo.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The workshop will provide a quick introduction to the&amp;nbsp;&lt;a href="http://www.geoserver.org/"&gt;GeoServer&lt;/a&gt;&amp;nbsp;framework and will mainly focus on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;basic installation&lt;/li&gt;&lt;li&gt;basic data configuration and publishing&lt;/li&gt;&lt;li&gt;basic data exploitation&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_0_xIiXP5xuY/TMaz36iM_OI/AAAAAAAAAM4/S0TRza74Qqs/s1600/images.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;In case you are around and you want to attend the workshop, make sure to &lt;a href="http://www.gfoss.it/drupal/gfossday2010/registrazione"&gt;register&lt;/a&gt; for the conference since seats are limited!&lt;/div&gt;&lt;div&gt;The&amp;nbsp;&lt;a href="http://www.geo-solutions.it/"&gt;GeoSolutions&lt;/a&gt;&amp;nbsp;team.&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" imageanchor="1" s=""&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_0_xIiXP5xuY/TMaw0Oy3ruI/AAAAAAAAAMw/xhBsq8tMGUg/s1600/geosolutions-logo.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5176900881057973693-1593147776423399264?l=geo-solutions.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geo-solutions.blogspot.com/feeds/1593147776423399264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5176900881057973693&amp;postID=1593147776423399264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger
