<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mateusz Loskot &#187; postgis</title>
	<atom:link href="http://mateusz.loskot.net/tag/postgis/feed/" rel="self" type="application/rss+xml" />
	<link>http://mateusz.loskot.net</link>
	<description>mloskot&#039;s life, programming, c++, geo and adventures</description>
	<lastBuildDate>Tue, 10 Jan 2012 22:03:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Update on SqlGeometry and POINT EMPTY in WKB</title>
		<link>http://mateusz.loskot.net/2011/10/22/update-on-sqlgeometry-and-point-empty-in-wkb/</link>
		<comments>http://mateusz.loskot.net/2011/10/22/update-on-sqlgeometry-and-point-empty-in-wkb/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 22:41:46 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[wkb]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2221</guid>
		<description><![CDATA[Long time ago I discussed about how SqlGeometry handles POINT EMPTY in WKB format. The SqlGeometry states the definition of OGC GEOMETRY type for Microsoft SQL Server. Shortly, the message was that SqlGeometry implicitly casts POINT EMPTY to MULTIPOINT EMPTY &#8230; <a href="http://mateusz.loskot.net/2011/10/22/update-on-sqlgeometry-and-point-empty-in-wkb/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Long time ago I discussed about how <a href="http://mateusz.loskot.net/?p=1914">SqlGeometry handles POINT EMPTY in </a><a href="http://en.wikipedia.org/wiki/Well-known_text">WKB</a> format. The <a href="http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlgeometry%28SQL.105%29.aspx">SqlGeometry</a> states the definition of OGC <code>GEOMETRY</code> type for Microsoft SQL Server. Shortly, the message was that SqlGeometry implicitly casts <code>POINT EMPTY</code> to <code>MULTIPOINT EMPTY</code> geometry when generating WKB output. <a href="http://www.postgis.org">PostGIS</a> casts as well, but does it in a consistent way, in my opinion, outputting <code>GEOMETRYCOLLECTION</code>.</p>
<p>Following those findings, I assumed it is not quite correct, or I didn&#8217;t like the inconsistency, and I had reported it to <a href="http://connect.microsoft.com/">Microsoft Connect</a> as a bug: <a href="http://connect.microsoft.com/SQLServer/feedback/details/537018/sqlgeometry-reports-invalid-type-of-wkb-of-point-empty">SqlGeometry reports invalid type of WKB of POINT EMPTY</a>.</p>
<p>Recently, I have received a couple of comments from Microsoft to my report. The comments are attached to the report linked above, but I paste them below for completeness and archive:</p>
<blockquote><p>Our development team for the spatial data types tells me that it is not possible to use a single value for the WKB format of any spatial data type. For the POINT EMPTY, the WKB format does not allow empty points, so we are outputting a MULTIPOINT with zero elements.<br />
In a MULTIPOINT EMPTY, we are stripping out empty points.</p></blockquote>
<p>The reasoning is technically correct. It&#8217;s just Microsoft <em>does it differently</em>. However, as second comment suggests, the current behaviour may change in future:</p>
<blockquote><p>But we might consider changing it to get consistent behavior.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2011/10/22/update-on-sqlgeometry-and-point-empty-in-wkb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SqlGeometry and POINT EMPTY in WKB</title>
		<link>http://mateusz.loskot.net/2010/02/26/sqlgeometry-and-point-empty-in-wkb/</link>
		<comments>http://mateusz.loskot.net/2010/02/26/sqlgeometry-and-point-empty-in-wkb/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:53:29 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[visual c++]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1914</guid>
		<description><![CDATA[Inspired by question Paul Ramsey asked today morning on IRC, I&#8217;ve inspected what kind of Well-Known-Binary output gives SqlGeometry for EMPTY geometries of all the seven geometry types as specified in OGC SFS. The SqlGeometry class is available from SQL &#8230; <a href="http://mateusz.loskot.net/2010/02/26/sqlgeometry-and-point-empty-in-wkb/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Inspired by question <a href="http://www.cleverelephant.ca/index.html">Paul Ramsey</a> asked today morning on IRC, I&#8217;ve inspected what kind of Well-Known-Binary output gives <a href="http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlgeometry%28SQL.105%29.aspx">SqlGeometry</a> for <code>EMPTY</code> geometries of all the seven geometry types as specified in OGC SFS. The <code>SqlGeometry</code> class is available from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1">SQL Server System CLR Types</a> for .NET Framework. Here we go.</p>
<p>I checked Well-Known-Binary output as returned by the SqlGeometry method <a href="http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.types.sqlgeometry.stasbinary%28SQL.105%29.aspx">STAsBinary()</a>. Here is a small test program written in C#:</p>
<pre><code>using System;
using System.Linq;
using Microsoft.SqlServer.Types;
namespace SqlGeometryEmpty
{
  class Test
  {
    static void Main(string[] args)
    {
      foreach (string type in
         Enum.GetNames(typeof(OpenGisGeometryType)))
      {
        string wkt = type.ToUpper() + " EMPTY";
        SqlGeometry geom = SqlGeometry.Parse(wkt);
        byte[] wkb = geom.STAsBinary().Buffer;
        string wkbhex = string.Join("",
          wkb.Select(
            b => b.ToString("X2")).ToArray());

        Console.WriteLine("{0}\n{1} ({2} bytes)\n",
          wkt, wkbhex, wkb.Length);
      }
    }
  }
}</code></pre>
<p>The first observation is that WKB of <code>EMPTY</code> geometry for all types is returned as a a slightly different binary. All the binary forms are truncated to <strong>nine bytes</strong>. The <strong>first byte</strong> indicates endianness as expected. The <strong>second</strong> chunk of <strong>four bytes</strong> indicate geometry type. It is exactly as defined in OGC specifications. The <strong>third</strong> chunk of remaining <strong>four bytes</strong> are set to Zero and seem to play a role of size specifier: number of points in <code>LINESTRING</code> or number of rings in <code>POLYGON</code>, number of points in <code>MULTIPOINT</code>, and so on. This makes another observation that WKB for EMPTY is reported as a collection of primitive components.</p>
<p>The difference in binary of WKB of EMPTY geometry I mentioned is in that the actual type of input geometry is preserved, so there seems to be no implicit translation to geometry of some other type.</p>
<p>So far so good but not for too long. In fact, <code>SqlGeometry</code> implicitly <em>casts</em> <code>POINT EMPTY</code> to <code>MULTIPOINT EMPTY</code> geometry with the WKB of the following form (in hex):</p>
<pre>010400000000000000</pre>
<p>Here is complete output of the test program above:</p>
<pre>POINT EMPTY
010400000000000000 (9 bytes)

LINESTRING EMPTY
010200000000000000 (9 bytes)

POLYGON EMPTY
010300000000000000 (9 bytes)

MULTIPOINT EMPTY
010400000000000000 (9 bytes)

MULTILINESTRING EMPTY
010500000000000000 (9 bytes)

MULTIPOLYGON EMPTY
010600000000000000 (9 bytes)

GEOMETRYCOLLECTION EMPTY
010700000000000000 (9 bytes)</pre>
<p>A word about how <a href="http://www.postgis.org/">PostGIS</a> behaves. PostGIS reports <code>GEOMETRYCOLLECTION EMPTY</code>, regardless of actual type of input <code>EMPTY</code> geometry. It is in hex form:</p>
<pre>010700000000000000</pre>
<p>Generally, there is not many choices of how to report EMPTY geometry in clear and usable way and a form of collection with size equal to Zero seems to be the most appropriate choice. <code>POINT EMPTY</code> reported with type set to <code>POINT</code> (010100000000000000) would be ambiguous as <em>feels</em> like truncated or invalid form of <code>POINT(0 0)</code>, especially in programming languages like C where native dynamic allocated arrays do not carry information about their size. IOW, geometry type is not enough information to process binary form of <code>POINT EMPTY</code> properly.</p>
<p>Reporting <code>EMPTY</code> geometries as a collection is a useful convention that seems to work well. PostGIS behaves about it in the very consistent manner reporting one type for all <em>empties</em>. SqlGeometry, so SQL Server, forces programmers to write a few more lines of code to handle all the possible cases. Yet another <del datetime="2010-02-26T22:41:25+00:00">original</del> exotic solution from Microsoft.</p>
<p>Consistent API is a bless!</p>
<p>Update: consistent specification of interface is even better.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/02/26/sqlgeometry-and-point-empty-in-wkb/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>postgis dot us</title>
		<link>http://mateusz.loskot.net/2010/02/07/postgis-dot-us/</link>
		<comments>http://mateusz.loskot.net/2010/02/07/postgis-dot-us/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 00:12:05 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[geography]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[postgis in action]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Regina Obe]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1852</guid>
		<description><![CDATA[Regina Obe has just announced that PostGIS in Action book website launched. It is http://postgis.us]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bostongis.com/blog/index.php?/authors/1-Regina-Obe">Regina Obe</a> has just <a href="http://www.bostongis.com/blog/index.php?/archives/155-PostGIS-1.5.0-out,-PLR-on-Windows,-and-PostGIS-In-Action-book-site-launched.html">announced</a> that <a href="http://www.manning.com/obe/">PostGIS in Action</a> book website launched. It is <a href="http://postgis.us">http://postgis.us</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/02/07/postgis-dot-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How PostGIS can help SQL Server users?</title>
		<link>http://mateusz.loskot.net/2010/02/03/how-postgis-can-help-sql-server-users/</link>
		<comments>http://mateusz.loskot.net/2010/02/03/how-postgis-can-help-sql-server-users/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 20:21:24 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[gml]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[opengis]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[rdbms]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[sptial]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[stackoverflow]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1829</guid>
		<description><![CDATA[I may be a gonzo or it&#8217;s just that today I didn&#8217;t have my notorious 4th coffee in my favourite Winnie The Pooh cup I got from Pantera on our 14th (or 15th?) anniversary we celebrated a month ago, so&#8230; &#8230; <a href="http://mateusz.loskot.net/2010/02/03/how-postgis-can-help-sql-server-users/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I may be a gonzo or it&#8217;s just that today I didn&#8217;t have my notorious <em>4th coffee</em> in my favourite <a href="http://www.whittard.co.uk/store/catalogue/China-P7000/Mugs-SC7002/Winnie-The-Pooh-Mug-208959.raa">Winnie The Pooh</a> cup I got from <a href="http://www.flickr.com/photos/mloskot/tags/pantera">Pantera</a> on our <strong>14th</strong> (or 15th?) anniversary we celebrated a month ago, so&#8230;</p>
<p>Apparently, there are situations in which <a href="http://www.postgis.org">PostGIS</a> could be an affordable anti-<a href="http://en.wikipedia.org/wiki/Geography_Markup_Language">GML</a> vaccine jab. It seems there is <a href="http://blog.cleverelephant.ca/2008/10/sponsor-geos-make-postgis-faster.html">a potential market for PostGIS</a> to conquer. Perhaps it wouldn&#8217;t be estimated as profitable as the <a href="http://marketsandmarkets.wordpress.com/2009/10/23/h1n1-swine-flu-influenza-vaccine-market-worth-us-7028-million-by-2011/">H1N1</a> but who knows what will happen if no one takes a brave stand and <a href="http://www.geoplace.com/me2/dirmod.asp?sid=119CFE3ACE2A48319AA7DE6A39B80D66&#038;nm=News&#038;type=Publishing&#038;mod=Publications%3A%3AArticle&#038;mid=8F3A7027421841978F18BE895F87F791&#038;tier=4&#038;id=A6331F2C001C4DBA81A350F0BA07980E">stop GML designers</a>! Here I&#8217;d eagerly conclude with one of the famous <a href="http://en.wikipedia.org/wiki/A_History_of_Scotland_%28TV_series%29">Scottish</a> <a href="http://www.firstfoot.com/dictionary/full.html">sentences</a> :-)</p>
<p>Back to the subject matter. Today, I spotted an interesting question on the <a href="http://stackoverflow.com/">StackOverflow</a> archives: <a href="http://stackoverflow.com/questions/352814/is-it-possible-to-export-spatial-data-from-sql-server-2008-in-gml2-format/">Is it possible to export spatial data from Sql Server 2008 in gml2 format?</a>. Natively? No, there is no such solution. Presumably, Microsoft thinks forward and thinks <a href="http://www.opengeospatial.org/standards/gml">GML 2</a> is a legacy standard. Fair enough, someone has to draw a line between prehistoric and modern, somewhere. Why Microsoft? <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">Again</a>?</p>
<p>Facing such a tremendous suffer Microsoft exposed SQL Server users to, I suggested to visit the &#8220;underworld&#8221; for a while and <a href="http://stackoverflow.com/questions/352814/is-it-possible-to-export-spatial-data-from-sql-server-2008-in-gml2-format/2194841#2194841">hire PostGIS to do the dirty job</a>.</p>
<p>Paraphrasing <a href="http://en.wikipedia.org/wiki/Andrei_Alexandrescu">Andrei Alexan­dres­cu</a>&#8216;s, hysterically <a href="http://www.reddit.com/r/programming/comments/8isiw/author_of_modern_c_design_stl_iterators_must_die/">famous</a> recently, <a href="http://lambda-the-ultimate.org/node/3520">sentence</a>: <em>SQL Server should go!</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/02/03/how-postgis-can-help-sql-server-users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GDAL/OGR 1.7.0 Released</title>
		<link>http://mateusz.loskot.net/2010/01/30/gdalogr-1-7-0-released/</link>
		<comments>http://mateusz.loskot.net/2010/01/30/gdalogr-1-7-0-released/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 19:28:45 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[frank warmerdam]]></category>
		<category><![CDATA[gdal]]></category>
		<category><![CDATA[ogr]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[raster]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[version]]></category>
		<category><![CDATA[wktraster]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1814</guid>
		<description><![CDATA[Frank has just posted announcement about freshly released GDAL/OGR 1.7.0: This is the first major new release since the 1.6.0 release approximately one year ago This new version brings quite a nice collection of new drivers for raster and vector &#8230; <a href="http://mateusz.loskot.net/2010/01/30/gdalogr-1-7-0-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gdal.org"><img src="/images/logos/gdal-logo.png" width="80" height="80" border="0" hspace="5" vspace="5" alt="GDAL logo" style="float: left;" /></a><a href="http://fwarmerdam.blogspot.com/">Frank</a> has just posted <a href="http://lists.osgeo.org/pipermail/gdal-announce/2010-January/000035.html">announcement</a> about freshly released <a href="http://trac.osgeo.org/gdal/wiki/Release/1.7.0-News">GDAL/OGR 1.7.0</a>:</p>
<blockquote><p>This is the first major new release since the 1.6.0 release approximately one year ago</p></blockquote>
<p>This new version brings quite a nice collection of new drivers for raster and vector data formats:</p>
<ul>
<li>New Raster Drivers: BAG, EPSILON, Northwood/VerticalMapper, R, Rasterlite, SAGA GIS Binary, SRP (USRP/ASRP), EarthWatch .TIL, <a href="http://trac.osgeo.org/postgis/wiki/WKTRaster">WKT Raster</a></li>
<li>GDAL PCIDSK driver using the new PCIDSK SDK by default</li>
<li>New Vector drivers : DXF, GeoRSS, GTM, PCIDSK and VFK</li>
<li>New utilities: gdaldem, gdalbuildvrt now compiled by default</li>
<li>Add support for Python 3.X. Compatibility with Python 2.X preserved</li>
<li>Remove old-generation Python bindings</li>
<li>Significantly improved raster drivers: GeoRaster, GeoTIFF, HFA, JPEG2000 JasPer, JPEG2000 Kakadu, NITF</li>
<li>Significantly improved vector drivers: CSV, KML, SQLite/SpataiLite, VRT</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/01/30/gdalogr-1-7-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PostGIS 1.5.0 will require GEOS 3.1.0+</title>
		<link>http://mateusz.loskot.net/2010/01/15/postgis-1-5-0-will-require-geos-3-1-0/</link>
		<comments>http://mateusz.loskot.net/2010/01/15/postgis-1-5-0-will-require-geos-3-1-0/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 18:06:58 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[geos]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[jts]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[requirement]]></category>
		<category><![CDATA[spatial]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1711</guid>
		<description><![CDATA[PostGirls and PostBoys, be prepared! The upcoming release of PostGIS 1.5.0 (available as beta1 beta2) will require GEOS in version 3.1.0 or later. The beta1 testing results suggested to bump the minimum GEOS version to 3.1.0. The GEOS requirement issue &#8230; <a href="http://mateusz.loskot.net/2010/01/15/postgis-1-5-0-will-require-geos-3-1-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="/images/logos/postgis-globe-logo.gif" width="82" height="85" alt="PostGIS spatial database extension for PostgreSQL" align="left" border="0" style="margin: 5px" /><strong>PostGirls and PostBoys, be prepared!</strong></p>
<p>The upcoming release of <a href="http://trac.osgeo.org/postgis/">PostGIS</a> 1.5.0 (available as <a href="http://postgis.refractions.net/pipermail/postgis-devel/2010-January/008192.html"><del datetime="2010-01-15T18:31:35+00:00">beta1</del></a> <a href="http://postgis.refractions.net/pipermail/postgis-devel/2010-January/008290.html">beta2</a>) will require <a href="http://trac.osgeo.org/geos/">GEOS</a> in version 3.1.0 or later.</p>
<p>The <a href="http://postgis.refractions.net/pipermail/postgis-devel/2010-January/008192.html">beta1</a> testing results suggested to <a href="http://postgis.refractions.net/pipermail/postgis-devel/2010-January/008272.html"><em>bump the minimum GEOS version to 3.1.0</em></a>. The <a href="http://download.osgeo.org/geos/">GEOS</a> requirement issue was one of the heavily discussed topics on the <a href="http://postgis.refractions.net/pipermail/postgis-devel/2010-January/">postgis-devel this month.</a></p>
<p>The PostGIS team is going to give GEOS a nice present for its <a href="http://blog.cleverelephant.ca/2009/03/geos-310.html">10th round month birthday</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/01/15/postgis-1-5-0-will-require-geos-3-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PostGIS explains DE-9IM</title>
		<link>http://mateusz.loskot.net/2009/12/06/postgis-explains-de-9im/</link>
		<comments>http://mateusz.loskot.net/2009/12/06/postgis-explains-de-9im/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 02:08:21 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[de-9im]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[geography]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[intersection]]></category>
		<category><![CDATA[Kevin Neufeld]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[matrix]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Regina Obe]]></category>
		<category><![CDATA[spatial]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1614</guid>
		<description><![CDATA[I am happy I belong to the hordes of PostGIS users. Recently I asked for a very small addition to the PostGIS manual that will explain the three basic terms of the geospatial geometry: interior, boundary and exterior. Kevin Neufeld &#8230; <a href="http://mateusz.loskot.net/2009/12/06/postgis-explains-de-9im/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="/images/logos/postgis-globe-logo.gif" width="82" height="85" alt="PostGIS spatial database extension for PostgreSQL" align="left" border="0" style="margin: 5px" />I am happy I belong to the hordes of <a href="http://postgis.org/">PostGIS</a> users. Recently I <a href="http://trac.osgeo.org/postgis/ticket/274">asked for a very small addition</a> to the PostGIS <a href="http://postgis.org/documentation/manual-svn/">manual</a> that will explain the three basic terms of the <a href="http://www.opengeospatial.org/standards/sfs/">geospatial geometry</a>: <em>interior</em>, <em>boundary</em> and <em>exterior</em>.</p>
<p>Kevin Neufeld delivered a very well written chapter about <a href="http://postgis.org/documentation/manual-svn/ch04.html#DE-9IM">Dimensionally Extended 9 Intersection Model (DE-9IM)</a> with series of excellent visualisations of the non-trivial mathematics.</p>
<p><a href="http://www.flickr.com/photos/mloskot/4161103255/" title="PostGIS - Dimensionally Extended 9 Intersection Model (DE-9IM), on Flickr"><img src="http://farm3.static.flickr.com/2568/4161103255_42353a284f_o.png" width="445" height="410" alt="PostGIS - Dimensionally Extended 9 Intersection Model (DE-9IM)" style="margin: 5px" /></a></p>
<p>Moreover, Kevin started completing the PostGIS <a href="http://postgis.org/documentation/manual-svn/reference.html">Functions Reference</a> with visual presentation of geometric problems together with SQL commands using various PostGIS functions that can be applied to solve particular situations. For example, what does the <a href="http://postgis.org/documentation/manual-svn/ST_Buffer.html ">ST_Buffer</a> function, how boolean predicates like <a href="http://postgis.org/documentation/manual-svn/ST_Contains.html">ST_Contains</a> check spatial relation of two geometries or what&#8217;s the difference between <a href="http://postgis.org/documentation/manual-svn/ST_Difference.html">ST_Difference</a> and <a href="http://postgis.org/documentation/manual-svn/ST_SymDifference.html">ST_SymDifference</a>.</p>
<p>Clearly, I&#8217;ve got <em>way way more</em> than I asked for or I expected. On behalf of myself and users who are about to start their adventure with PostGIS, I&#8217;d like to give big kudos to Kevin for this fantastic work!</p>
<p>Together with the recently documented <a href="http://www.postgis.org/documentation/manual-svn/reference.html#PostGIS_Types">PostgreSQL PostGIS Types</a> and <a href="/?p=1588">Function Support Matrix</a>, <a href="http://en.wikipedia.org/wiki/PostGIS">PostGIS team</a> is making abrupt manual a pleasant reading book.</p>
<p>By the way, here is a bunch of references about DE-9IM I found very useful myself:</p>
<ul>
<li><a href="http://gis.hsr.ch/wiki/images/3/3d/9dem_springer.pdf">Dimensionally Extended Nine-Intersection Model (DE-9IM)</a> by Christian Strobl</li>
<li><a href="http://www.springer.com/book/978-0-387-30858-6">Encyclopedia of GIS</a> by Hui Xiong, page 242</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2009/12/06/postgis-explains-de-9im/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PostGIS Function Support Matrix</title>
		<link>http://mateusz.loskot.net/2009/12/03/postgis-function-support-matrix/</link>
		<comments>http://mateusz.loskot.net/2009/12/03/postgis-function-support-matrix/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 09:05:48 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[matrix]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Regina Obe]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1588</guid>
		<description><![CDATA[Regina crafted matrix of functions available in upcoming PostGIS 1.5. Currently, PostGIS 1.5 is available from trunk in the Subversion repository. The PostGIS 1.5 documentation is available under the manual-svn node and here is the PostGIS Function Support Matrix. Regina, &#8230; <a href="http://mateusz.loskot.net/2009/12/03/postgis-function-support-matrix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="/images/logos/postgis-globe-logo.gif" width="82" height="85" alt="PostGIS spatial database extension for PostgreSQL" align="left" border="0" style="margin: 5px" /><a href="http://www.bostongis.com/blog/">Regina</a> <a href="http://trac.osgeo.org/postgis/ticket/331">crafted</a> matrix of functions available in upcoming PostGIS 1.5. Currently, PostGIS 1.5 is available from <a href="http://svn.osgeo.org/postgis/trunk/">trunk</a> in the Subversion repository.</p>
<p>The PostGIS 1.5 <a href="http://www.postgis.org/documentation/">documentation</a> is available under the <a href="http://www.postgis.org/documentation/manual-svn/">manual-svn</a> node and here is the <a href=" http://www.postgis.org/documentation/manual-svn/ch08.html#PostGIS_TypeFunctionMatrix">PostGIS Function Support Matrix</a>.</p>
<p>Regina, great job!</p>
<p>By the way, there is an interesting <a href="http://trac.osgeo.org/postgis/ticket/331#comment:8">problem with check marks</a>. does anyone know how to define <a href="http://www.w3.org/TR/MathML2/isopub.html">check marks based on Unicode</a> and make them visible in <a href="http://en.wikipedia.org/wiki/Internet_Explorer_8">IE8</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2009/12/03/postgis-function-support-matrix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ST_PostGIS(EMPTY)  =&gt; ?</title>
		<link>http://mateusz.loskot.net/2009/10/06/postgis-empty/</link>
		<comments>http://mateusz.loskot.net/2009/10/06/postgis-empty/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:30:50 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[boost]]></category>
		<category><![CDATA[boost.geometry]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[empty]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[geospatial]]></category>
		<category><![CDATA[ogc]]></category>
		<category><![CDATA[paul ramsey]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[ramsey]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[wkt]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1127</guid>
		<description><![CDATA[Having problems with understanding semantic of EMPTY geometry? Paul Ramsey has started wrapping up a proper article on PostGIS Wiki explaining most of the issues related to understanding of emptiness of geometries bothering the community of PostGIS users, and OGC &#8230; <a href="http://mateusz.loskot.net/2009/10/06/postgis-empty/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="/images/logos/postgis-globe-logo.gif" width="82" height="85" alt="PostGIS spatial database extension for PostgreSQL" align="left" border="0" style="margin: 5px" /> Having problems with understanding semantic of <a href="http://postgis.org/documentation/manual-1.4/ST_IsEmpty.html">EMPTY</a> geometry?</p>
<p><a href="http://blog.cleverelephant.ca/">Paul Ramsey</a> has started wrapping up a proper article on <a href="http://trac.osgeo.org/postgis/wiki/">PostGIS Wiki</a> explaining most of the issues related to understanding of emptiness of geometries <a href="http://lists.osgeo.org/pipermail/ggl/2009-June/000255.html">bothering</a> <a href="http://postgis.refractions.net/pipermail/postgis-devel/2009-October/006946.html">the community</a> of PostGIS users, and OGC <a href="http://www.opengeospatial.org/standards/sfs">standards</a> <a href="http://www.sqlskills.com/BLOGS/BOBB/post/SQL-Server-Spatial-EMPTY-vs-NULL.aspx">users in general</a>.</p>
<p><em>Check it like it&#8217;s hot</em> <a href="http://trac.osgeo.org/postgis/wiki/DevWikiEmptyGeometry">DevWikiEmptyGeometry</a>. Thanks Paul!</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2009/10/06/postgis-empty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talking about data races</title>
		<link>http://mateusz.loskot.net/2009/09/29/talking-about-data-races/</link>
		<comments>http://mateusz.loskot.net/2009/09/29/talking-about-data-races/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 21:11:42 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[Bartosz Milewski]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data race]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbms]]></category>
		<category><![CDATA[geography]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[Milewski]]></category>
		<category><![CDATA[mutability]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[postgis]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[sharing]]></category>
		<category><![CDATA[spatial]]></category>
		<category><![CDATA[synchronisation]]></category>
		<category><![CDATA[thread]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1066</guid>
		<description><![CDATA[My countryman Bartosz Milewski &#8211; the author of one of the best C++ introductory books &#8211; the C++ In Action posted video with very interesting talk about Ownership Systems against Data Races (video is here). Interestingly, Bartosz proposes to understand &#8230; <a href="http://mateusz.loskot.net/2009/09/29/talking-about-data-races/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My countryman <a href="http://bartoszmilewski.wordpress.com/">Bartosz Milewski</a> &#8211; the author of one of the best C++ introductory books &#8211; the <a href="http://www.relisoft.com/book/">C++ In Action</a> posted video with very interesting talk about <a href="http://bartoszmilewski.wordpress.com/2009/09/22/ownership-systems-against-data-races/trackback/">Ownership Systems against Data Races</a> (video is <a href="http://www.vimeo.com/6689999">here</a>).</p>
<p><object width="380" height="285"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=6689999&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=6689999&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="380" height="285"></embed></object></p>
<p>Interestingly, Bartosz proposes to understand the battle with <strong>data races</strong> as a discipline-driven programming that helps, mostly C+ programmers, to <em>avoid all this horrible pitfalls</em>. Moreover, Bartosz presents programmers with a well-designed methodology <em>based on types system</em> as a tool that may guard programs against injury from data races problem and with success.</p>
<p>Basically (and not surprisingly) Bartosz recommends <em>think first, act later</em> kind of approach based on detailed analysis of <em>what might be causing data races in your program</em>, on identification of potential sources of data race problems. This approach is a contrary to spending hours searching for data races conditions using debugger.</p>
<p>The data race problem is a complex subject, but &#8211; in my opinion &#8211; Bartosz explains it in a very accessible step-by-step form. Three words summary of Bartosz&#8217; lecture and the presented methodology is: <strong>sharing</strong> + <strong>mutability</strong> + <strong>no synchronisation</strong> = <strong>data race</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2009/09/29/talking-about-data-races/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

