Archive for August, 2008

EEA / Microsoft partnership

Saturday, August 30th, 2008

It is 3 months old news, but I’ve found it very recently. In the middle of May 2008, European Environment Agency announced they signed a partnership with Microsoft. The aim of this collaboration is (or was) to create ”an environmental information platform” based on Microsoft’s Virtual Earth.

In July 2008, EEA/Microsoft launched Eye on Earth platform with Water Watch component combining scientific data and Web Mapping to present water quality in European countries:

Currently, it includes information on the water quality for more than 21.000 bathing sites throughout Europe

More on http://www.eyeonearth.eu/

FWTools 2.2.6

Saturday, August 23rd, 2008

Frank has issued an update for FWTools bundle. The latest version of Frank’s binary kit has number 2.2.6 and is dedicated to Windows users only. Available to download from primary and mirror site.

Sol Katz Award - Call for Nominations

Saturday, August 23rd, 2008

The FOSS4G 2008 is only one month away. Traditionally, the Community gathered around Free and Open Source Software for Geospatial will award an individual with prestigious Sol Katz Award:

The Sol Katz Award for Geospatial Free and Open Source Software (GFOSS) will be given to individuals who have demonstrated leadership in the GFOSS community. Recipients of the award will have contributed significantly through their activities to advance open source ideals in the geospatial realm.

Past Awardees:

Yesterday Frank posted official call for nominations:

The Open Source Geospatial Foundation would like to open nominations for the 2008 Sol Katz Award for Geospatial Free and Open Source Software.

The winner will be announced on at the FOSS4G 2008 conference closing plenary in Cape Town, South Africa.

geourl.info is down

Saturday, August 23rd, 2008

Front page of http://geourl.info has been welcoming visitors with Offline message for a few days. Anyone has an idea what’s going on with the geourl.info service?

I hope it won’t be down for 9 months as the previous services was.

C++ Concurrency in Action

Friday, August 22nd, 2008

By the beginning of the year 2009, new must-read book for C++ hackers is rolling around. Anthony Williams is writing book titled: C++ Concurrency in Action (ISBN: 1933988770):

I will be covering all aspects of multithreaded programming with the new C++0x standard, from the details of the new C++0x memory model and atomic operations to managing threads and designing parallel algorithms and thread-safe containers. The book will also feature a complete reference to the C++0x Standard Thread Library.

from Anthony’s blog

Since June, Anthony’s book is available through Manning Early Access Program. The final release is planned on February 2009.

In the meantime, Anthony has published an article Simpler Multithreading in C++0x introducing multithreading support and thread library as a new feature in the C++0x standard.

History of FOSS4G

Thursday, August 21st, 2008

Today, George Silva asked on the OSGeo Discuss mailing list for some details on history of Free and Open Source Software for GIS. Shortly, the discussion has turned into a very interesting brainstorm session resulting in detailed overview of FOSS4G roots and chronology.

More on Brief history of GIS OSS (bit off topic?)

Update: 22-08-2008:

Based on the discussion about history of FOSS4G, dedicated article on OSGeo Wiki has been started: Open Source GIS History

WKB hex decoder in C++

Thursday, August 21st, 2008

In PostGIS world, I often need to construct geometry from Well-Known-Binary (WKB) or PostGIS EWKB stream encoded as hex stream. It’s easy to do if I have access to PostgreSQL/PostGIS client which accepts SQL queries:

SELECT
   ST_AsText(
      ST_GeomFromWKB(
         decode('0101000000e5d022dbf93e2e40dbf97e6abc743540', 'hex'),
         4326))

I often need to do the same directly in C++ code - parse hex encoded binary stream to raw stream of bytes. Here is simple hex decoder I use:

#include <sstream>
#include <string>
#include <vector>
typedef std::vector<unsigned char> ewkb_t;

void hex_to_bytes(std::string const& hexstr, ewkb_t bytes)
{
    bytes.clear();
    for(std::string::size_type i = 0; i < hexstr.size() / 2; ++i)
    {
        std::istringstream iss(hexstr.substr(i * 2, 2));
        unsigned int n;
        iss >> std::hex >> n;
        bytes.push_back(static_cast<unsigned char>(n));
    }
}

For example, I use it to build FDO geometry objects using another utility CreateGeometryFromExtendedWkb defined in FDO provider for PostGIS:

// POINT (1.234 5.678)
std::string ewkbhex("01010000005839B4C876BEF33F83C0CAA145B61640");
ewkb_t ewkb;
hex_to_bytes(ewkbhex, ewkb);
if (!ewkb.empty())
{
   FdoPtr<fdoigeometry> g = CreateGeometryFromExtendedWkb(ewkb);
   // ... use geometry
}