SpatialGalaxy Planet - Open Source Welcome Here

October 06, 2008

SlashgeoGoogling Security: Mapping, Directions, and Imagery

APB links to a long and interesting article named "Googling Security: Mapping, Directions, and Imagery". From the article: "So what is the harm in using these services? Well, it turns out, a lot. You face significant risks from both your use of these services and the content they contain. This article analyzes the information you disclose when using mapping and imagery services, including how your use of these tools discloses locations of your home, employer, family and friends, travel plans, and strategic intentions, and discusses how data mining can easily link seemingly disparate groups of people based on their interest in common locations. It also covers the risks inherent in the content itself, including camera-equipped cars capturing continuous streams of high-quality street-level photographs, collaborative analysis of satellite imagery, and your inability to trust the veracity of the images themselves." Several previous related stories copied below.

Read more of this story at Slashgeo.

SlashgeoArcLogistics: ESRI Routing And Scheduling Solution

The mandown blog offers an entry on ArcLogistics, the ESRI routing and scheduling solution for fleet management. From the ESRI website: "ArcLogistics is a complete solution for creating optimized routes and solving scheduling problems. Create dynamic routes and schedules that cut fuel costs and improve customer service using ArcLogistics. From a small fleet operation to a large multiuser environment, ArcLogistics provides a quick and significant return on investment. ArcLogistics lends itself to fleet management across all industries including courier and messenger, food and beverage, furniture and business to consumer, local government, and many others." See also related stories below, including this open source fleet tracking software.

Read more of this story at Slashgeo.

SlashgeoERDAS LPS 9.3 Now Available

Ryan writes "LPS 9.3 is now available. In addition to LPS we have several other product releases as well, in addition to an update of www.erdas.com. Some further information on LPS 9.3 is available here" See also the ERDAS webpage on LPS: "LPS is an integrated suite of photogrammetry software tools for generating terrain models, producing orthophotos and extracting 3D features. Automating precision measurement, maintaining accuracy and including flexible operations such as terrain editing and feature extraction, LPS increases productivity while ensuring high accuracy. Offering a variety of functional add-on modules, LPS adapts to your specific business needs, enabling a seamless, process-driven workflow." See also some previous ERDAS related stories below.

Read more of this story at Slashgeo.

SlashgeoUS Bridge Condition Data in Google Earth

Simon Ilyushchenko writes "I'm starting a blog called "The Days Are Numbered" that will talk about plotting large environment-related datasets. The first entries show 2007 US bridge condition data as collected by Department of Transportation. There are two views: the state percentages of structurally deficient and functionally obsoleted bridges are plotted using just-released Maker application from Fortius GeoCommons. Also, 189,000 out of 716,000 bridges with the lowest rankings are plotted in Google Earth using the regionator script. Regionator scores data by a user-specified metric and arranges placemarks into KML regions so that only highest-scoring ones are shown at high zoom levels. The placemark size corresponds to the amount of daily traffic, and the color shows the bridge rating. Placemark description provides data about the bridges: names, detailed condition and appraisal ratings, year built, daily traffic and the name of the agency responsible for maintenance. Here's a sample image. This might be of interest to people who work with presenting large datasets online, as well as to those who are curious about the condition of their local bridges. Let me know if you have any suggestions on improving the visualization or on ways to make the underlying data available to other tools."

Read more of this story at Slashgeo.

October 03, 2008

Desktop GISBird Data

If you want to work through the examples in Chapter 3. Working With Vector Data, the bird observation data can be downloaded here:

http://desktopgisbook.com/files/desktop_gis_birds.zip

For the backdrop, use the world mosiac raster which is available from the Data page.

SlashgeoGlobCover Version 2 Global 300m LULC Released

An important land use land cover global dataset was released this week, the ESA's GlobCover Global LC version 2 at a spatial resolution of 300m. Amongst the highlights: "The GlobCover Land Cover product is the highest resolution (300 meters) Global Land Cover product ever produced. The GlobCover Land Cover product is based on ENVISAT MERIS data at full resolution from January 2005 to June 2006. The GlobCover Land Cover product has been developed in partnership with EEA, FAO, GOFC-GOLD, IGBP, JRC and UNEP. The GlobCover Land Cover product is labelled according to the UN Land Cover Classification System." Be careful, the product description and some webpages have not been updated yet but should be very soon. We discussed GlobCover in the past. Our Land Use topic may also be of interest.

Read more of this story at Slashgeo.

Import Cartography Beers and Python GIS in Praha

One of the highlights of this trip was the chance to meet fellow Python and GIS programmer, and blogger, Jáchym Čepický.

http://farm4.static.flickr.com/3235/2885863662_3b4aba9659_d.jpg

I'm not sure how many readers of Planet OSGeo understand Czech and know that Jáchym went through a scary episode in life this past summer. He gave me a sobering recap and then we had some less sobering toasts to his good health at Pivovarský klub. In a city served almost exclusively by single-beer pubs, Pivovarský klub is an oasis for the beer enthusiast. I had several beers from the tap that I never saw anywhere else -- beers far more fresh and flavorful than the ubiquitous Gambrinus.

SpatialGalaxyNo Java, Please Pass The Python

After a rather long lapse, I had the occasion to write some Java code recently (mainly because it didn’t look like Howard’s PySDE was functional).

I didn’t like it.

Not to start a language flame war, but after using Python almost exclusively for 6 months, I found Java to be cumbersome. I kept thinking “if it were Python I could do it this way”.

Sending an email from Java—frightening. From Python—simple.

Lest you think I’m a Java newbie, I’ve been using it for both desktop and web applications for over 10 years.

Its ease of use and rapid development time, coupled with the fact that Python is the de facto “GIS” scripting language in most arenas, makes it my new favorite language.

Of course the old axiom still stands—To each his own…

October 02, 2008

SlashgeoGeospatial Solutions Launch a Geo-Wikipedia

From the Geospatial Solutions web site: "We're excited to announce the launch of the Geospatial Solutions Wiki — an interactive resource created by the geospatial community. This dynamic encyclopedia comprises information about the people and technologies involved in mapping, remote sensing, location, and geographic information systems (GIS). Whether you're a student or a professional, a novice or an industry veteran, this is your place to learn and share — what knowledge can you contribute?" See this Geospatial Solutions Wiki home page to contribute: http://wiki.geospatial-solutions.com/

Read more of this story at Slashgeo.

Clever ElephantSol Katz Award

To my astonishment, I received the Sol Katz Award for 2008 today. For the record, here is the acceptance speech I gave via video to the FOSS4G closing plenary session:
This is a big honour for me, to be in the company of people like Frank Warmerdam, Steve Lime and Markus Neteler as a Sol Katz recipient.

Those guys built core pieces of open source software with their bare hands, from the ground up, and that alone marks them out as special, but they also helped build their communities, and that's a big part of their contribution, too.

In my case, community building is almost my only contribution.

I have added some very small amounts of code to PostGIS and uDig over the years, but until only a few months ago my main contribution was community building, by finding the funding or staff time to develop the projects, providing some design guidelines, and by working on the mailing lists to help people with problems.

So I want to start out by thanking a few of the people who did much of the actual work on the projects I have been identified with over the years, the PostGIS spatial database and the uDig desktop application.

Dave Blasby, a brilliant programmer, who wrote the first versions of PostGIS when he was at Refractions, and who taught me by osmosis many of the technical fundamentals I exercise to this day.

Sandro Santilli, who was so impressive as a volunteer contributor to PostGIS that I hired him sight-unseen to maintain PostGIS, which he did from his home in Rome, for a number of years.

Mark Cave-Ayland, who is still involved in PostGIS, and the "go to" guy when the problems get really hard.

Jody Garnett and Jesse Eichar, who took the uDig project from a sketch in a funding proposal to a working application, and have continued to nurture and improve it up to this day.

Those are just a very few of the people who have contributed to making the PostGIS and uDig projects successful, there are so many more, and I thank them all. Thank you so much!

I hope, that my receiving this award will inspire other non-technical members of the open source community. Open source is collaborative in all kinds of ways, not only do we share code, but we share effort, and money. For a manager, contributing money or staff time to open source is often a karmic investment – the return is impossible to foresee, and yet, in my experience, there always seems to be a return in the end, you are repaid for your investment many times in many ways, most of which you don't expect.

I can't accept an award honoring my investments, in time and money, to open source, without also honoring two men who are largely unknown in the open source GIS community.

Graeme Leeming and Philip Kayal were my business partners for ten years at Refractions Research, during the time we developed PostGIS and uDig, and without their willingness to invest in my crazy schemes, we would never have achieved what we did.

Their willingness to join in my enthusiasms and get off the beaten path of consulting was critical to making the projects successful, and all of us took risks together to make the projects great. So thanks Graeme and Phil, and also all the folks at Refractions.

I hope you have all had a great FOSS4G, I am sorry I could not be with you in person this year, but I'm looking forward to raising a pint with you all in Sydney, Australia next year.
 

SlashgeoOGC Spatial Data Quality Survey Released

Vector One provides a followup the OGC survey on spatial data quality, mentioned last year. The results of the survey can be found here [pdf]. From V1's entry: "- Smaller companies (less than 20 people) are most keenly interested in data quality, followed by large companies. Medium sized are last. - Spatial data quality impacts 46% of projects currently with end-user’s feeling most impacted. – People want consistent results. – 80% of people store data digitally (but 20% are still on paper)."

Read more of this story at Slashgeo.

SlashgeoIP Addresses Geolocation

APB links to a Wall Street Journal article on IP addresses geolocation. See also these two previous stories. From the article: "Still, geolocation technology won't pinpoint Web visitors' locations beyond the city level, which won't satisfy advertisers seeking to target potential customers by neighborhood or street. "That might be the next forefront people might try to push toward," says Dane Walther, director of custom engineering at Cambridge, Mass.-based Akamai Technologies Inc., which has a geolocation product. "There's certainly interest from marketers, who always want to get as detailed, as local as they can." [...] Marie Alexander, Quova's chief executive, says one manufacturer told her that it has found a transaction to be fraudulent in 73% of cases where the state in the credit-card billing address doesn't match the state associated with the IP address. "It's a huge savings to pull those [transactions] out," she says."

Read more of this story at Slashgeo.

SlashgeoReview of the Major Developments from Three Location-Based Services Conferences

DM shares an article named "Location is the Ultimate Context: A Review of the Major Developments from Three LBS Conferences in San Francisco". From the article: "There’s never been a time when I’ve heard as many tangible enterprise and consumer values expressed in solid business cases using location to create profit and better quality of life. From all three events, NAVTEQ Connections, SiRF Location 2.0 Summit and CTIA's Wireless and Entertainment Conference, came predictions that location technology, for use in both enterprise and consumer mobile applications, will be embedded and standard in every device delivered to the market. From operating systems to handsets, location as a key contextual element will be essential. As Darren Koenig, LBS director for Tele Atlas, stated: "Location is the ultimate context." Finally, all parts of the mobile technology ecosystem are realizing the same thing."

Read more of this story at Slashgeo.

SpatialGalaxyGit Book

This weekend I finished reviewing Pragmatic Version Control Using Git by Travis Swicegood. If you are a git user or interested in learning about the latest in version control for your source code, check it out. The book is available in beta now.

October 01, 2008

Slashgeo[old geonews] QGIS 0.11.0 & GeoJSON 1.0 Released and GeoTools Graduates

A short note on old summer geonews (while I was away) which were not yet featured on the site. First the release of QGIS 0.11.0, GeoJSON 1.0 and the graduation of GeoTools as full fledge OSGeo project. See also related stories. Not directly related, FOSS4G 2008 is going on this week. We'll share the best summaries we'll find.

Read more of this story at Slashgeo.

SlashgeoNew 3D Textured Cities in Google Earth

The GEB informs us Google updated several cities with 3D "photorealistic" textured buildings. From the entry: "I've discovered the following new cities have the new 3D buildings: Chicago, Nashville, Philadelphia, San Diego, St. Petersburg, Jacksonville, and Miami Beach (the last three all in Florida). Other cities already known to have the new buildings: US: San Francisco, Baltimore, Raleigh, Atlanta, Charlotte, Boston, Orlando, Austin, Oakland, Dallas, Tampa, Memphis, and Phoenix. Also, Zurich, Munich and Hamburg in Europe; and Tokyo in Japan has a smattering of 3D textured buildings. And, don't forget Disney World in 3D."

Read more of this story at Slashgeo.

SlashgeoGeoCommons Maker! Launches

The HighEarthOrbit is proud to announce the launch of GeoCommons Maker!. From the entry: "The goal of Maker is to push the boundaries of web mapping to provide easy to use and powerful cartographic design tools along with access to a huge amount of complex geospatial data. We’ve integrated Maker into Finder!, so any interesting or datasets can be immediately dropped into a map, customized and styled. [...] Another key aspect of the openness of GeoCommons is the key feature to export your maps as styled KML. This means you can build up a rich cartographic visualization, export to KML and open in something like GoogleEarth or WorldWind and retain the styling." I only played with it a few seconds but I feel the interface is better than other similar tools.

Read more of this story at Slashgeo.

SlashgeoOracle Buys Maker of 3D Retail Software

From CNet News : "Oracle is adding to its retail software lineup by acquiring Advanced Visual Technology, a maker of 3D space planning software for retailers. AVT, based in Hertfordshire, England, sells a product called Retail Focus, which lets retailers plan store floors and shelf space. An add-on product, called Retail Focus Merchandiser, gives retail planners a three-dimensional view of retail space that they can "walk" through virtually."

Read more of this story at Slashgeo.

Clever ElephantSchuyler and the World of Tomorrow

SlashgeoMetaCarta Announces Geographic Search and Referencing Platform (GSRP)

APB discuss a press release about MetaCarta's announcement of their Geographic Search and Referencing Platform (GSRP). MetaCarta are behind the open source OpenLayers, TileCache, FeatureServer and more. From APB's analysis: "In other words, you can separately license their API's but still have access to their geo-referencing engine. So, if you only want to use their geotagging or query parsings applications in conjunction with the underlying geo-referencing engine software developers will now be able to license them as they need them. In the past, the six modules (geotagging, query parsing, geosearch, location finder, save-search-notification, and document density) that comprised the MetaCarta platform were highly inter-related and did not work independently." See related stories below.

Read more of this story at Slashgeo.

SlashgeoMore Geospatial Games

Here's recent geoblogs coverage of geospatial games to complete the ~20 previous geogames stories mentioned here. First there's the GEB top 10 games for Google Earth. Mapperz links to Nokia Mapter's game. VerySpatial links to a short entry on location-based gaming. Less directly related to geospatial, there's also Google's virtual world, Lively, which stated goal is to be used as an online game platform.

Read more of this story at Slashgeo.

SlashgeoSuccessful Launch for 3 GLONASS-M Satellites and GIOVE-B Offline

Last week, the SatNav blog informed us three GLONASS-M satellites have been successfully launched by Russia. From the entry: "If recent indications from the Russian government are anything to go by this will represent the first launch of many leading to the restoration of a 30 satellite constellation by 2011. Another launch of 3 satellites is planned for 2008, most likely on Christmas Day." The same blog informs us GIOVE-B, GALILEO's second test satellite, has been knocked offline by "space radiation". From the BBC article: "This region of space is known to have a high intensity of fast moving particles that can disrupt spacecraft electronics. But the conditions are reasonably well understood, and engineers will want to know why Giove-B experienced the glitch. Giove-A is unaffected."

Read more of this story at Slashgeo.

Technical RamblingsOL Sessions at FOSS4G

Just watched Bart’s presentation on his employer’s use of OL + ExtJS: to see a map customized so thoroughly that I can no longer recognize it as OL is kinda neat.

Now watching Tim Schaub explain Vector Styling; “So new many developers don’t even know how to use it.” I’ll state that I think this is equal parts ‘new’ and ‘lack of effort into documentation’ :) Showing a *really* cool styling demo tool, which lets you put in code, run it, and executes the JS and creates a map. Totally need to get that into the website.

Showing the addUniqueStyleRules stuff; just keeps reminding me we really need graduated symbolizer convenience methods. Maybe I can convince him to do that at the code sprint this weekend.

We need to get these style rules in SVN somewhere; Tim’s clearly done a lot of work very recently on this, and getting this into the documentation and website sounds like a great thing to me.

SpatialguruSafety Net for Cloud Computing?

A friend pointed out this Guardian article about Stallman's (and others) perspective on the cloud computing direction. From an open source perspective I've felt similar concerns re: the shift to GMail, but I know that many users (like me) merely use it for mail mirroring, not a wholesale dependency.

read more

Clever ElephantGame Theory and Congress

How could the bailout fail to pass Congress, when it had been negotiated and promoted by the leadership of both parties? Easy, it's the tragedy of the commons! If I may enter the head of the Representative from South Jesusland, Phil I. Buster:
"If I vote for this, my constituents who hate Wall Street (and that's a lot of them) will hate me!"
"But if this fails, the economy could crumble, and they'll hate me more!"
"But if vote against it, and it passes, I win both ways! Hate Wall Street? I voted against it! Economy does OK? Who's going to remember or care how I voted? Economy crumbles? It was a bad plan anyways!"
Multiply by a few hundred Representatives with fingers in the wind and voila! No plan, Dow tanks 700.

No, this isn't geospatial, but I find it really interesting! Like having my liver removed while fully conscious.
 

September 30, 2008

Clever ElephantCrisis Averted, Situation Normal (Not!)

The news that the markets have roared back today, erasing many of the record losses of Monday, should make me feel better, but the stock markets are a sideshow – the real action is in the credit markets, and the news there still isn't good.

Want a quick feel for how bad the credit crisis is? Compare how much banks will accept in interest on Treasury bills (basically a risk-free investment) to what they expect to receive in interest on loans to other banks (there is a non-zero risk that the bank might default, say, declare bankruptcy). In normal times, banks don't go out of business (very often) so the difference is very small. In exceptional times (like now) nobody knows who is going to be in business tomorrow, and the difference is very large.

Right now, the difference (the "TED spread") is about 3%, or 10 times the prevailing rate before the crisis began. It is as high as it has ever been, twice as high as it was after the collapse of Bear/Stearns this spring.

Not feeling a lot of comfort right now.
 

SlashgeoRouting With Open Standards and OpenStreetMap

An innovative project, called OpenRouteService, shows how "volunteered geography" and OGC standards can be merged together. This project respond to the need for a "public-owned" routing service. From the article: "OpenRouteService.org is the first routing service that uses OpenStreetMap data and provides those through the standardized interfaces specified by the OGC within the OGC Open Location Services initiative (OpenLS)". This project has been implemented by the Research Group Cartography, Department of Geography, University of Bonn. The application works from Denmark to Italy. See this article for more information. Update: 09/30 21:17 GMT by S : Fixed gignacnic summary's source name.

Read more of this story at Slashgeo.

SlashgeoOnline Geospatial Courses

As a followup on our three previous stories about online geospatial courses, earlier this month, Spatial Sustain shared an entry on new online GIS courses. From the entry: "The Johns Hopkins University just announced five new online courses in GIS. The online certificate in GIS includes a GIS overview, remote sensing, introduction to spatial analysis, advanced GIS modeling and management of GIS projects. This latest online GIS course offering joins just a select few universities that offer online-only coursework." I was also happily surprised to learn about iTunes U ("University") offering several pertinent (and free) podcasts and videocasts, such as 20 hours of geospatial courses from Pennsylvania State University.

Read more of this story at Slashgeo.

SlashgeoLocation Summit 2.0: Swift Pitch Session

Simmi Sinha writes "Location Summit 2.0 is introducing three-minute Swift Pitch session. In this session developers will pitch their LBS applications to the industry executives in attendance at the Summit at the end of each track. The objective is to offer developers an opportunity to showcase their applications and services and to spark compelling discussions among the audience of leading global location industry executives. The presentation will demonstrate the benefits of using location to enhance the daily lives of individuals and enterprises. It will feature the innovative LBS products and technologies in beta or on the market today. The entries for presentation will be judged and evaluated on the level of innovation, features & benefits to the end-user and impact on the market. Each selected candidate will present for 3 minutes with 2 minutes Q&A from the audience. There will be 1 Grand Prize Winner. Categories For Presentation * Consumer Applications * Enterprise Applications * GenX Applications"

Read more of this story at Slashgeo.

SlashgeogvSIG Metadata Prototype is Now Available in gvSIG

Virtual News Office, gvSIG Project writes "The gvSIG metadata prototype is now available. The aim of this prototype is to make catalogation of geospatial information easier, providing gvSIG with some specific features. First of all, it allows us to extract automatically some metadata from the data source (only from shapefiles right now). Secondlly it has an editor that allows us to complete the rest of the metadata. And finally we´ll be able to publish the metadata on a catalog server (only on Geonetwork right now). It is available in the Extensions section of the web page. Advice: To install this extension you must have correctly installed gvSIG 1.1.x version." gvSIG has been mentioned regularly. See also related stories below.

Read more of this story at Slashgeo.

SlashgeoWhy Geocoding is Critical for Businesses

Directions Magazine offers a generic but examples-filled article named "Connecting the Dots: Why Geocoding is Critical for Businesses". The conclusion: "Businesses require the highest level of accurate locational information available. Using geocoding technology can help a business answer fundamental questions, such as: What is the geographic area we serve? Are our sales territories and client clusters properly aligned? What are missed or overlooked areas where potential clients might exist? By geocoding client data you can see patterns emerge and create new opportunities for businesses. Utilizing a geocoding solution can help businesses strengthen customer relationships, improve profitability and increase effectiveness - all of which are critical in expanding business in a down economy."

Read more of this story at Slashgeo.

September 29, 2008

Clever ElephantPoint-in-Polygon Shortcuts

The code for spatial predicates in PostGIS is largely dependent on the GEOS topology library, because doing predicate calculations in generality is hard, and GEOS already exists. However, moving geometry from PostGIS into GEOS format incurs a cost. And not all predicate algorithms are hard. Point-in-polygon tests, for example, are relatively easy.

So, for performance reasons, a couple years ago, Mark Leslie (at Refractions at the time) implemented a point-in-polygon test directly in the PostGIS library. Whenever ST_Contains(), ST_Intersects(), etc, are called, the geometries are first checked to see if they are points and polygons, and if they are, GEOS is avoided and the calculation is done in PostGIS.

But, why stop at one shortcut?

What if you are testing hundreds (or thousands) of points against one, or a small number, of polygons? Why iterate through all the segments of the polygon for every point, to carry out the test? By indexing the segments of the polygon, you can reduce the computational effort of doing a point-in-polygon test from O(NumberOfPolygonEdges) to O(log(NumberOfPolygonEdges)). However, for the index to be effective, you have to re-use it for each new point, not re-build it for every polygon/point pair. That means it has to be cached between function calls.

A bit over a year ago, Mark implemented a caching version of the point-in-polygon shortcut, with an indexing algorithm from Martin Davis, and that shortcut currently resides in the 1.3 release series. However, it has two drawbacks.

  • First, it only works for POLYGON/POINT combinations, and most people working with polygons actually have MULTIPOLYGON/POINT (though their multi-polygons usually only have one member).
  • Second, it leaks a lot of memory during processing, so the postgres process size can get very large while the computation is running (PostgreSQL retrieves the memory at the end, so no permanent damage is done).

Last week I took a couple days to delve deeply into what this shortcut was doing, and made the following improvements.

  • Removed all the memory leaks, so the process size remains constant throughout the run.
  • Added support for MULTIPOLYGON types.
  • Improved the caching logic slightly, so that segment indexes are only built when a polygon has been seen two times in a row, otherwise using a standard non-indexed version of the point-in-polygon algorithm.

The point-in-polygon caching shortcut is extremely effective. Using the un-cached code, a spatial join of 8000 points to 80 polygons, where there are an average of 100 points per polygons, takes about 30 seconds on my workstation. With the caching segment indexes, the same join returns in 6 seconds.

The improved code is currently on trunk only, but I will back-port it into 1.3.X next week, so it will be available in the next points release.

Update: These changes have now been back-ported to 1.3 and will be generally available in 1.3.4 when it is released.
 

SlashgeoGeeky & Green: Avego Takes Rideshare High Tech

Noe Sacoco Jr writes "With high gas prices, traffic and under-investment in public transportation, finding a solution is on the minds of most Americans. Introduced this month, Mapflow's Avego aims to turn private cars into public transit. Combining real time data location and the ubiquity of the iPhone, Avego matches wasted seat capacity—those seats which are unoccupied—to passengers, reducing commute costs for all participants. The free iPhone application, set to be launched in beta at the end of October, can also work at a feeder to public transportation authorities and corporate campuses." See also Spatial Sustain's recent coverage of Avego.

Read more of this story at Slashgeo.

SlashgeoAnalysts: Google Maps wins, rivals 'stagnate'

There is an article currently running on CNet news about a report by analysts Cowen and Co. analysts. Here is part of the report taken from the article : "Since our initial survey in July 2007, innovation at (AOL's) MapQuest and Yahoo Maps has stagnated," and although Microsoft has improved Live Search Maps, it remains the least popular of the four top services, said analysts Jim Friedland and Kevin Kopelman. "Yahoo and MapQuest do not have the resources to keep pace and are forced to aggressively monetize a declining franchise in the maps segment."

Read more of this story at Slashgeo.

SlashgeoAustralia Mulling a Nationwide Vehicle-Tracking System

Slashdot discussed over the weekend the story named Australia Mulling a Nationwide Vehicle-Tracking System. This is a topic regularly covered here, see related stories below. Australia joins the U.S and the U.K. for similar efforts. Their summary: "It seems that as political support for Australia's version of the national ID card is waning, the powers that be have found a far more effective way to catalog the populace. CrimTrac, an Australian government agency responsible for designing technical solutions to aid policing, is due to hand in a $2.2 million scoping study for the introduction of a nationwide automatic number plate recognition system (ANPR). It seems that as well as ANPR, the system will also collect images of drivers and passengers with high enough resolution for identification purposes. All ANPR data collected would be made available to participating agencies in real time, and retained for five years for future investigations."

Read more of this story at Slashgeo.

SlashgeoDebunking the Google Earth Censorship Myth

Slashdot discussed this weekend a story named Debunking the Google Earth Censorship Myth. These "51 censored places" have been greatly discussed by Ogle Earth in an informative entry (followup entry) - read the copied snippet below. The /. summary: "There's a persistent Web meme to the effect that Google obscures sensitive or top-secret locations in Google Maps and Google Earth at the insistence of national governments. A July IT Security article promoted on Digg, 'Blurred Out: 51 Things You Aren't Allowed to See on Google Maps,' revived this notion. But the article has been widely criticized, and I did some fact-checking this week on the six Boston-area locations mentioned in the IT Security list. As it turns out, not one of the allegedly blurred locations has degraded imagery in Google Maps, as my screen shots demonstrate. My post looks into the sources of the misleading IT Security piece, and of other mistaken rumors about Google Maps." From Ogle Earth: "But of the 51 items posted, in only one case did Google actively roll back imagery for security reasons at a government's behest — in Basra, Iraq in January 2007. (Street View imagery removed because it was mistakenly taken from private property is not interesting from a censorship perspective.)" This topic has been regularly covered on Slashgeo, see related stories below.

Read more of this story at Slashgeo.

Technical RamblingsFOSS4G Starts

After climbing Table Mountain yesterday, I’m somewhat beat, but was able to make it up at 0730 to give a GeoDjango workshop with Josh. After spending the first hour running around attempting to get power for everyone and get DVDs copied, we got started.

Overall, the workshop went well. We had a variety of users — including two people who were relatively successful with running GeoDjango from their own (mac) laptops. I’ve learned a few things about using VMWare — for example, I was reminded that there is no real VMWare option for PPC Macs, and that installing VMWare on Mandriva is not as trivial as it maybe should be.

I was able to get two of my machines working with the VMWare DVD we had and distributed (link later once I talk to Josh and we fix some of the missing things), and gave them out to people. With our 25 people, we had about 15 laptops running, with others sharing.

Learned a few key points: For one, our documentation on the workshop was insufficiently explanatory of how to do things like “edit files”, “open a terminal”, etc. A number of people were facing significant problems towards the start because of that. (Also, not installing vim on the VMWare image was problematic for me, and Erik had the same problem with emacs.) Due to the somewhat staggered start, we got a little bit lost in the weeds pretty quickly, and didn’t get a chance to really explain what GeoDjango was about to start, which I think was a lack in the workshop.

Overall, we got through setting up the VMWare image (though not installation from scratch), starting a project, creating a model, setting up the admin (with this being one of the more difficult parts, specifically because almost no one had internet access within the VM), generating KML, viewing the KML on an OpenLayers map, and using the GDAL tools (LayerMapping) to import polygon data from a shapefile and view/edit that. A couple people got ahead through creating a Ward view as well, which was nice.

There are a number of aspects of the workshop that need more polish, but overall, I think people who were interested got to see GeoDjango in admin, and see why it’s pretty cool. Hopefully we can clean up our workshop docs to make it smoother for the next person to walk through it, and get more people interested in GeoDjango and learning about Django in general through that.

SlashgeoMicrosoft's Mundie Sees a Future In Spatial Computing

Slashdot ran a story this weekend named Microsoft's Mundie Sees a Future In Spatial Computing. Their summary: "Speaking at the MIT Emerging Technology Conference, Microsoft Chief Research and Strategy Officer Craig Mundie explained that he sees the industry evolving into 'spatial computing,' and he envisions a 3-D virtual world populated by virtual presences, using a combination of client and cloud services. 'In a few months, the compay plans to test a new virtual reception assistant in some of its campus buildings. The assistant, which takes the form of an avatar, helps schedule shuttle reservations to get people to various locations across the 10-million-square-foot Redmond, Wash., campus. The system includes array microphones and natural language processing by which the avatar listens to the subjects and then interacts with them in real time. The system has been programmed to differentiate people by their clothing. Someone in a suit, for instance, would more likely be a visitor and not a potential shuttle rider." The GeoCLoud and Microsoft's Virtual Earth 6.2 has been discussed recently, see related stories below.

Read more of this story at Slashgeo.

Clever ElephantFlickr Tag: foss4g2008

I encourage all you lucky bastards folks heading to FOSS4G 2008 in Cape Town next week to upload your photos to Flickr using the tag foss4g2008. We got a great collection of photos from folks last year under the foss4g2007 tag.
 

September 28, 2008

Technical RamblingsArrival, FOSS4G2008

Have arrived in Cape Town in preparation for FOSS4G. And the most important part of the trip — the drinking of the beers — is already in full force.

Tim, Fountains Hotel

I’m staying in the Fountains Hotel; apparently a good choice, given the number of random FOSS4G passerby we’ve had so far.

18 hours of flying is a long time, but didn’t go poorly, though I am lacking any clothes until Monday afternoon (so I’ll be kind of stinky for my workshop with Josh on GeoDjango on Monday). Made it to the hotel, then headed out to Dinner at Cape To Cuba. Was good environment and tasty, for not a bad price. We then went back to the Fountains Hotel and had a couple drinks at the hotel bar.

I’ve uploaded pictures — they’re tagged by day and foss4g2008, so you should be able to see daily shots as I continue to upload them. (I’ve also got a FOSS4G 2008 set.) Today we’re doing a trip up Table Mountain — taking the cable car — leaving from Fountains Hotel around 10AM (breakfast at 9:15).

PSA: If you’re at all interested in GeoDjango, and have more than a passing knowledge of Python, I highly recommend coming to our GeoDjango workshop (and bringing a laptop). It’s gonna be great.

PSA2: If you’re staying at Fountains, and don’t want to go down to the desk to get an internet voucher, you can still ssh. Just join the wireless network, and ’ssh $ipaddress’. (If you don’t know your IP address, you can look it up by using ‘dig @72.232.176.58 yourdomain.example.com’.) If you need to get to the web, you can add “-D 4000″ to your ssh command — ’ssh -D 4000 crschmidt.net’ — to set up a SOCKS proxy. Then, in Firefox Preferences -> Advanced -> Network -> Connection, do manual Proxy configuration, and enter ‘localhost’, ‘4000′ as a “SOCKS Host”.

Mateusz LoskotFOSS4G 2008, I can’t make it

…school, job, trips, move, army, school, move, new job…lots of things have been happening in my life with speed of light, so I’ve had to change most of my plans, especially those about traveling. And, I can’t make it to attend the FOSS4G 2008 conference.

Nevertheless, I’m still listed next to two positions of the conference program and that’s correct. I planned to help Frank Warmerdam during the Raster Processing and Preparation with GDAL workshop and to give one presentation - Introduction to ASPRS LAS data processing with libLAS.

Apparently, I won’t be able to assist Frank during the workshop - I’m sorry Frank! and I’m crossing my fingers for you. And, the libLAS presentation will be given by…Frank - crossing my fingers harder :-) Originally, I promised Frank I will provide him with presentation slides and I’ll be a virtual assistant. Actually, I failed even with that :-(

Fortunately, Hobu took over this task and prepared PDF document with a set of fantastic slides. Frank and Howard have really saved my ass and I’d like to send them veeery big thanks!

I regret I can’t come to Cape Town, to experience the fantastic atmosphere, to see hundreds geogeeks together, to have a great time with friends and to drink a little too much beer with Tim. See you guys in Sydney, 2009!

September 27, 2008

Import Cartography Friends don't let friends use EndNote, part 2

I've just seen mention of this via Twitter, but haven't discussed with or seen any statement from the developers, on advice of lawyers, no doubt: Reuters sues GMU for no real reason other than Zotero's competition with, and besting of EndNote. Is this the kind of company you want to support, Steve? One that seems ready to sue its users for trying to free their data from its proprietary format?

More from Bruce D'Arcus, and also Hugh Cayless.

September 26, 2008

SlashgeoDigitalGlobe's New Agreement with Google

Ogle Earth informs us DigitalGlobe has extended its agreement with Google regarding the use of satellite imagery. Maybe this means there will be less bad surprises for casual users. From OE: "It's described by DigitalGlobe in their press release as a "new multi-year, non-exclusive content agreement". I wonder if that means the terms have been changed. The previous agreement gave Google exclusive web use of the imagery." Google has an exclusivity deal with GeoEye now. See also related stories below.

Read more of this story at Slashgeo.

Mateusz LoskotLinux.com about GeoServer

Linux.com published an interesting article - a tutorial - about famous components of Free and Open Source Software stack for Web Mapping. Justin Palk, the author, gives a very accessible introduction to building Web Mapping solution using GeoServer, PostGIS and OpenLayers. I think it’s a great writing for anyone who takes first steps in Web Mapping with FOSS4G.

Serving and styling maps with GeoServer by Justin Palk on September 24, 2008

SlashgeoWhat’s Coming in WWJava .60

There has been a lot of news going on with Google Earth and Virtual Earth these days, but let's not forget about World Wind. The Earth Is Square blog has a list of new features that's coming in the 0.60 version of WWJava, expected out sometime mid October to November. Here is a feature summary, but head on over to their blog for more details : Air space shapes and volumes - think extruded circles, rectangles, lines or path, terrain following or not, connected to the ground or floating in the air. OGC Catalog Service support with an example application to query and visualize resources from several servers. Compound elevation model that will allow to overlay several elevation data sets New iteration of markers and tracks A view control layer that provides a GUI to interact with the view A visual measure tool and the supporting classes for length and area Geometry based surface shapes - like terrain following polylines for surfaces. New iteration of the placename layer Terrain/Line geometry intersect test

Read more of this story at Slashgeo.

SlashgeoRecent iPhone Geonews

Here's the recent iPhone related stories found on the geoblogs. There's Ogle Earth discussing the state of 3D on the iPhone. Note that the new Microsoft Virtual Earth 6.2 also support the iPhone. APB provides a link to a map coming from a Wired's survey, tracking iPhone 3G speed and data. The GEB tells us iPhone's Earthscape has new features. Spatially Adjusted informs us how to develop interactive mapping on the iPhone without Silverlight, Java or Flash support, with SVG (read the comments too). Also interesting is the /. discussion about the software development kit shoot out between Android vs iPhone. See also related stories below.

Read more of this story at Slashgeo.

Dylan's BlogVisualizing Random Fields and Select Components of Spatial Autocorrelation

 
Premise
I have always had a hard time thinking about various parameters associated with random fields and empirical semi-variograms. The gstat package for R has an interesting interface for simulating random fields, based on a semi-variogram model. It is possible to quickly visualize the effect of altering semi-variogram parameters, by "seeding" the random number generator with the same value at each iteration. Of primary interest were visualization of principal axis of anisotropy, semi-variogram sill, and semi-variogram range. The code used to produce the images is included below. For more information on the R implementation of gstat, see the R-sig-GEO mailing list.

read more

Technical RamblingsFOSS4G 2008

About to head out to FOSS4G 2008. Leaving from Boston this morning, New York this afternoon, arriving at Cape Town around 4pm with a refuel-only stop in Dakar.

I’m staying at the Fountains Hotel, and will try to spend most of my time in the lobby. (If you see a guy with a Macbook sitting around there, there’s a fair chance he’s me.)

I’m presenting Collaborative Mapmaking with GeoDjango, which should be great for anyone who has worked with Django but not GeoDjango, and even people who haven’t used Django can probably play along.

OpenLayers users should be interested in Tim’s excellent summary of the OpenLayers-related sessions; as he mentions though, there are *36* sessions that mention OL, so it seems likely that no matter what track you follow, you’ll see *some* OpenLayers mentioned.

After the conference, a couple of OL developers are doing a trip around the Cape; on Monday morning, I fly out to Kruger National Park for a 3 day whirlwind tour. I’ve rented the car, but I’m still keeping an eye out for anyone who wants to room with me: I can take at least one more person (and if we get two more, we can rent a bigger car :)). If you’re interested and fly out Friday or later, let me know!

I’ll be trying to keep Twitter updated with my whereabouts; if you’re interested in tracking me, you can follow me, though I expect I’ll be less prolific than usual, since I won’t have cheap text messaging access.

If you’re at FOSS4G, look me up!

September 24, 2008

Hobu, Inc.Looking for an ArcGIS Extension Dev…

I have a client who needs the services of an ArcGIS Extension developer.  The extension they need is really quite straightforward, but I don’t have any chops or time to do it in a timely manner.  The extension needs to be of the typical structured data capture variety — a few buttons here, some domain values there.  It’s fairly generic and related to the utility industry.

If you have experience with ArcGIS extensions and utilities, or even if you are a ArcGIS extension whiz, and you are interested in earning a little extra, please contact me at hobu.inc@gmail.com

Clever ElephantCracking 500

It looks like the 2008 edition of FOSS4G (going on next week!) in Cape Town, South Africa is going to crack 500 attendees. This is a great showing for an event which has had to overcome substantial distance from the FOSS4G centers of gravity in North America and Europe. And, supporting the theme of "An Option for Developing Countries", a large proportion of registrants are South African. So lots of folks will be learning about open source geo-spatial next week, and taking it back to their communities.



As usual, I am suffering non-buyers-remorse as an exciting event that I won't be attending approaches. However, with the family so wee (1.5 and 4), going away for well over a week just isn't on right now.
 

September 23, 2008

Clever ElephantThe Spirit of 2010

Don't let the Winter Olympics in Vancouver steal all the thunder for 2010, make your own mark, by organizing FOSS4G, the 2010 edition!

Organizing an international conference is more fun than a barrel of spit and will mark you permanently, leaving you a quivering shell of a man it's a great learning experience, too!
 

September 22, 2008

Clever ElephantIntel IJG and Image Artefacts

I wrote previously about how using the Intel “Integrated Performance Primitives” (IPP) and the Intel compiler (ICC) helped to improve performance in a Mapserver raster rendering system by about 40%.

I was feeling pretty proud, until the client pointed out that the outputs, while fast were, um, sort of wrong:



What was going on here?!

Well, the problem looked to be in the JPEG writing, and Mapserver writes its JPEG via libgd by default, so I looked at the JPEG code in libgd for clues. There was little to find. LibJPEG is provides a very simple interface to writing out images, and the code in GD (gd_jpeg.c) was identical to the sample image compression code in the Intel IJG code base (cjpeg.c).

I only had two clues to go on: first, the artefacts would go away, if we created the JPEGs in a “progressive” (interlaced) mode; second, the Intel cjpeg utility could create correct JPEGs in non-interlaced mode.

After taking a brain-break of a couple days, I found the problem while grepping the code and watching TV. Setting up a JPEG compressor requires that you provide the compressor with a buffer-fill function of your own design, so you can provide input from all kinds of sources. The implementation of the buffer-fill routine in the Intel example code had a switch in it, that checked if the mode was progressive or not!

In the case of non-progressive JPEG, the Intel function would allow the compressor to only partially read the buffer if it wanted. Then it would move the un-read bytes to the front of the buffer, and fill in the rest with new bytes. The standard JPEG library expects the compressor to always read the full buffer.

Patching GD to use this partial buffer logic, and JPEG compression worked, I was getting what looked like good ouputs! So, I put the patch in place and told the client and, um, there were still problems:



Gah! The artefacts were smaller, but they were still there. However, having my previous solution in hand, it was easy to find this bug. The artefacts were in a nice blocky patterns, just like the internal TIFF tile structure, which pointed to the JPEG decompressor having the same buffer behavior as the compressor.

So this time I opened up the GDAL library (that Mapserver uses to read the TIFFs) and found the JPEG reading code in the TIFF driver. Sure enough, the Intel decompressor only partially read the buffer, while the standard decompressor was expected to read the whole thing every time.

A small patch to the GDAL TIFF driver, and another patch to the GDAL JPEG driver (for completeness) and now we finally had IPP-accellerated JPEG input and output without artefacts.

Moral of the story: Although the Intel IJG is API-compatible with the standard libjpeg, the slightly different expected behavior of the empty_output_buffer and fill_input_buffer functions means that most existing code will require slight modifications before it can use the Intel libraries – they cannot just be dropped into place as a binary-only update.
 

Mateusz LoskotVisual C++ Toolkit 2003 still in use

Charles Petzold's TattooIn 2004, Microsoft published Visual C++ Toolkit 2003 - full version of Visual C++ 2003 optimizing compiler (version 1310) available free of charge. It was the first free, good and almost complete implementation of C++ programming language by Microsoft. It is quite old but still used by many developers.

The Toolkit is fairly complete, but you can not avoid a few hacks if you want to use it :-) So, I’ve decided to collect them all in one place to help building projects like GEOS, libLAS or GDAL/OGR with the Visual C++ Toolkit 2003.

Installation

First, installation of the following packages is required:

  1. Microsoft .NET Framework SDK 1.1
  2. Microsoft Platform SDK for Windows Server 2003 R2
  3. Microsoft Visual C++ Toolkit 2003 (no longer available from Microsoft website, just be persistent cuiling for it)

Hacks

This is list of hacks like installation of missing components and fixing a project makefiles:

  1. The .NET Framework SDK 1.1 installation (listed above) is required in order to get C Run-Time libraries installed: msvcrt.lib and msvcrtd.lib. The .NET SDK installer will copy these files (and a few other components) to directories located in:

    C:\Program Files\Microsoft Visual Studio .NET 2003
    
  2. Surprisingly, import library for C++ Run-Time Library msvcp71.dll is not included in the Visual C++ Toolkit 2003 distribution. Missing files can be downloaded from CERN server: msvcprt.lib and msvcprt.def. Copy them into

    C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib
    
  3. The Toolkit does not include lib.exe utility - Microsoft Library Manager. Fortunately, lib.exe is just a simple wrapper on Microsoft Incremental Linker - link.exe. So, in your NMAKE makefiles replace lib.exe (or lib) command with:

    link.exe /lib
    

    Alternatively, you can build custom lib.exe wrapper using lib.c program. Recently, I’ve fixed NMAKE makefiles of GEOS (r2190) and libLAS (r876) projects using the former option.

Environment

Most of articles about Visual C++ Toolkit 2003 and Platform SDK installation procedure suggest to permanently update environment variables like INCLUDE, LIB and PATH. Personally, I don’t like this approach. Instead, I write a simple SET_MSVC71.BAT script which I execute in console window before I run NMAKE to build a software project using Visual C++ Toolkit 2003.

The script I use consists of three commands:

@echo off
CALL "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.Cmd"
CALL "C:\Program Files\Microsoft Visual C++ Toolkit 2003\vcvars32.bat"
CALL "C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat"

Copy this script to location that is available from the PATH.

Sample build - libLAS

Below, a few simple steps are presented of using Visual C++ Toolkit 2003 and environment configured as presented above to build libLAS project. The same procedure should work for projects like GEOS or GDAL/OGR.

  1. Run Command Prompt (cmd.exe)
  2. Configure environment by executing SET_MSVC71.BAT script:

    C:\> SET_MSVC71.BAT
    

    Check if basic commands are available: cl.exe, nmake.exe, link.exe.

  3. Go to libLAS source code directory:

    C:\> cd dev\liblas\trunk
    
  4. Run NMAKE command to build libLAS library and utilities:

    C:\dev\liblas\trunk> nmake /f makefile.vc
    

Good luck!

September 21, 2008

Mateusz LoskotWavelet Transform Software 2.04

GDAL logoThis post should be interesting to users of GDAL MSG driver - Meteosat Second Generation.

In July 2008, by the way of doing GDAL MSG driver cleanup, I’ve also applied a few fixes to the Public Wavelet Transform Decompression Library (aka Wavelet Transform Software) developed by EUMETSAT. I patched WT version 2.03 and sent my fixes to EUMETSAT.

Recently, I’ve got a message from EUMETSAT they approved the patch and will include it in upcoming release of the Wavelet Transform Decompression Library. Actually, new version 2.04 has been already published and is available to download (after registration) from the EUMETSAT website.

Modification of the source code to support a newer version of gcc compiler. gcc 4.2.x and previous versions are now supported. Upgrade fixes kindly provided by Mateusz Loskot.

Modified files with respect to previous version: CImage.h, CJBlock.h, CJBlock.cpp

It’s really nice to see my work wasn’t a waste of time :-)

September 19, 2008

Quantum GISNew QGIS to MapServer Conversion Tool

SpatialGalaxyQgisToMapServer - A Conversion Tool

QgisToMapServer converts a saved QGIS project file to a map file, ready to be served with MapServer. A binary preview version for both Mac and Windows is available now. For Linux/Unix users, the source code is available from the Git repository.

QgisToMapServer is different from the plugin in QGIS. It is a standalone Python application providing the following features:

  • Create MapServer map files from saved QGIS project files
  • Preview the map file (requires shp2img)
  • Customizable data path

For full details see: http://spatialserver.net/qgis2ms

Import Cartography OpenLayers and 900913

Thanks to some hand holding from Chris and Josh, Pleiades now has Spherical Mercator maps using the Google physical geography layer as a stand-in for our ideal ancient world base map. See http://pleiades.stoa.org/places/639166. Coordinate transformation is provided by the code I blogged yesterday.

September 18, 2008

Import Cartography Geojson and pyproj interop

I've just finished writing a module that supports projection of objects that provide the geometry part of the Lab's geo interface: proj.py. Maybe you'll find it useful. What it does is take a geojson geometry (or Shapely geometry) and return a new projected geojson geometry object:

>>> from pleiades.openlayers.proj import Transform, PROJ_900913
>>> transform = Transform(PROJ_900913)

>>> # Point, forward
>>> from geojson import Point
>>> point = Point(coordinates=(25.0, 25.0))
>>> fwd = transform(point)
>>> fwd
Point(coordinates=(2782987.269831839, 2875744.6243522423))

>>> # Point, inverse
>>> inv = transform(fwd, inverse=True)
>>> inv
Point(coordinates=(24.999999999999996, 24.999999999999996))

>>> # Line, forward
>>> from geojson import LineString
>>> line = LineString(coordinates=((25.0, 25.0), (30.0, 30.0)))
>>> fwd = transform(line)
>>> fwd
LineString(coordinates=((2782987.269831839, 2875744.6243522423), ...))

>>> # Line, inverse
>>> inv = transform(fwd, inverse=True)
>>> inv
LineString(coordinates=((24.999999999999996, 24.999999999999996), ...))

There's also an object hook if you'd like the transform to yield instances of your own classes.

Import Cartography Adding pyproj to a buildout

Pyproj is Jeffrey Whitaker's Python interface to PROJ.4. I'm no longer interested in other Python projection packages. Its most interesting feature is interoperability with packages (such as Shapely) that use the Numpy array interface. It depends on Cython, which makes it a bit tricky to include in a buildout: you must install Cython into your buildout's python, not as an egg, and make the pyproj egg only after this step is finished. Like this:

[buildout]
parts =
  cython-src
  cython-install
  pyproj

[cython-src]
recipe = hexagonit.recipe.download
url = http://cython.org/Cython-0.9.8.1.1.tar.gz

[cython-install]
recipe = iw.recipe.cmd
on_install = true
cmds =
  cd ${buildout:directory}/parts/cython-src/Cython-0.9.8.1.1
  ${python:executable} setup.py install

[pyproj]
recipe = zc.recipe.egg:eggs
index = http://atlantides.org/eggcarton/index
eggs = pyproj

You might be able to pull pyproj off PyPI, but here I am using my own index. Once built, you can try it out using zopepy:

>>> from pyproj import Proj
>>> defn_900913 = """
... +proj=merc +a=6378137 +b=6378137
... +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0
... +units=m +nadgrids=@null +no_defs
... """
>>> proj_900913 = Proj(defn)
>>> lonlat = (25.0, 25.0)
>>> proj_900913(*lonlat)
(2782987.269831839, 2875744.6243522423)

I like that projection definitions can be split across lines of the screen.

September 17, 2008

Import Cartography kml:description considered harmful

KML lacks two important elements. It has neither 1) a simple and universal element equivalent to Dublin Core description (such as {http://purl.org/dc/elements/1.1/}description), nor 2) an excellent element for encapsulating or linking to rich content accompanying placemarks. Instead of the first, we have kml:Snippet. Snippet! It's somewhere in between a title and a description and that's no place to be. Instead of the second, we have kml:description, which supports an under-specified subset of HTML and other media including video.

The kml:description element is not about metadata anymore, it's about adding rich content -- charts, photos, video -- to popup windows of a geographic browsers. Under-specification of the content of kml:description is a problem. Which HTML elements are valid? Why shouldn't all be valid? The choice only between escaping HTML and using CDATA blobs is another problem. XHTML in a description wouldn't break the KML document; why shouldn't we be able to use XHTML without CDATA? Lack of support for dynamic content is yet another problem. Why can't we specify rich content by a URL, to be fetched only as needed and refreshed only if modified? Limitations of KML's description element and its ties to the original implementation hold us back. We need something better.

The Atom community wrestled with the same issues and came up with the atom:content element. An atom:content element may contain text, HTML, XHTML, XML, encoded binary media, or provide a URL to another document or media resource. When prompted, Atom processors (such as a news reader) display this content to a user. All HTML or XHTML elements are valid. CDATA blobs are unnecessary and not allowed. Atom's content element comes with clear processing instructions: HTML must be escaped, and should be valid within a <div>. The immediate child element of XHTML content must be a <div>. While guided by implementations, none of this depends on unspecified behavior of a particular Atom processor.

The "src" attribute of the atom:content element provides developers with more options. It allows you to decouple semi-static data from dynamic data. The locations and identifiers of physical instruments deployed in the field (river gauges, ASOS, you name it) can be decoupled from their nearly real-time observations and measurements. Serve a representation of the deployed instruments as a static document updated only as are the physical objects. From each instrument entry, link to a specialized web resource that produces tables or graphs on demand.

Atom processors can also take advantage of the "src" attribute to improve performance perceived by a user. Fetch the feed, show users titles and summaries first, get rich content as the user asks for it -- or get the rich content in the background, or during lulls in user activity. Processors should also be able to exercise conditional GET to avoid reloading unchanged rich content.

The atom:content element appears to support all of the requirements of, and overcome all of the faults of, kml:description. It fully embraces and accommodates rich content and provides new design options via links to dynamic or massive content. KML is already open to Atom elements (version 2.2 already includes atom:author, atom:link, and atom:name) and so atom:content is a more natural replacement for kml:description than RSS 1.0's content element or RSS 2.0's enclosure element. I'm not in a position to offer any advice to Google, but -- considering its investment in Atom, to act on the commonalities between KML and Atom seems useful and even profitable.

I've heard from KML folks that nothing pushes the spec forward more than working code. I'm not interested in writing a new geographic browser, but I can start serving KML enhanced with atom:content (which meets needs of a user that just cropped up on Monday), support it in my own KML processing packages, and perhaps even exercise my withering C++ skills on a libkml patch. After that? Let's swap in atom:summary for kml:Snippet. Snippet!