<?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>Random Nodes &#187; OSGeo</title>
	<atom:link href="http://www.jasonbirch.com/nodes/category/osgeo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonbirch.com/nodes</link>
	<description>...Jason Birch's geospatial ramblings</description>
	<lastBuildDate>Wed, 01 Sep 2010 05:14:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>OSGeo BC Meet-Up July 27 (during GeoWeb)</title>
		<link>http://www.jasonbirch.com/nodes/2010/06/21/507/osgeo-bc-meet-up-july-27-during-geoweb/</link>
		<comments>http://www.jasonbirch.com/nodes/2010/06/21/507/osgeo-bc-meet-up-july-27-during-geoweb/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 00:42:30 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[Advocacy]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[BC Local Chapter]]></category>
		<category><![CDATA[GeoWeb]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=507</guid>
		<description><![CDATA[Martin recently announced that we will be holding an OSGeo British Columbia meet-up in Vancouver on July 27. We have timed this to coincide with GeoWeb; it falls on the Tuesday evening after the workshops are over and before the conference sessions start. This session is open to all, so if you&#8217;re going to be [...]]]></description>
			<content:encoded><![CDATA[<p>Martin <a href="http://lists.osgeo.org/pipermail/osgeo-bc/2010-June/000168.html">recently announced</a> that we will be holding an OSGeo British Columbia meet-up in Vancouver on July 27.  We have timed this to coincide with <a href="http://geowebconference.org/">GeoWeb</a>; it falls on the Tuesday evening after the workshops are over and before the conference sessions start.</p>
<p>This session is open to all, so if you&#8217;re going to be at GeoWeb, or are in the area and want to hang out and eat pizza with some <strong>Cool GeoGeeks</strong> (oxymoron?) <a href="http://wiki.osgeo.org/wiki/British_Columbia_Chapter_Meeting_2010-07-27">RSVP on the wiki</a>!</p>
<p>We&#8217;re also looking for some presentation ideas; if you&#8217;ve got a burning desire, then please propose a topic on the wiki.</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2010/06/21/507/osgeo-bc-meet-up-july-27-during-geoweb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MapGuide 2.1 Beta 1</title>
		<link>http://www.jasonbirch.com/nodes/2009/05/26/291/mapguide-21-beta-1/</link>
		<comments>http://www.jasonbirch.com/nodes/2009/05/26/291/mapguide-21-beta-1/#comments</comments>
		<pubDate>Tue, 26 May 2009 17:07:32 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[MapGuide]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=291</guid>
		<description><![CDATA[Late last night, Tom <a href="http://lists.osgeo.org/pipermail/mapguide-users/2009-May/018412.html">announced</a> the release of the first <a href="http://trac.osgeo.org/mapguide/wiki/Release/2.1">MapGuide 2.1</a> Beta.  

Jackie Ng has...]]></description>
			<content:encoded><![CDATA[<p>Late last night, Tom <a href="http://lists.osgeo.org/pipermail/mapguide-users/2009-May/018412.html">announced</a> the release of the first <a href="http://trac.osgeo.org/mapguide/wiki/Release/2.1">MapGuide 2.1</a> Beta.  </p>
<p>Jackie Ng has a <a href="http://themapguyde.blogspot.com/2009/05/mapguide-open-source-21-beta-released.html">better description</a> of this than I could write.</p>
<p>Apart from the improved scalability and stability of this release, I&#8217;m most excited about the <a href="http://wix.sourceforge.net/">WiX</a>-based open source MSI <a href="http://trac.osgeo.org/mapguide/browser/trunk/Installer">installer</a> that I got to work on alongside Jackie and Kenneth.  Huge learning curve, but not having to count on Autodesk resources to build new installers should allow us to push new releases as needed.  It also means that someone who understands the installer can easily create custom deployments for internal use.</p>
<p>Anyway, please give this beta a try.  If you notice anything it&#8217;s not doing right, please <a href="http://trac.osgeo.org/mapguide/wiki/SubmitTicket">let us know</a>.</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2009/05/26/291/mapguide-21-beta-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now we&#8217;re cooking! MgCooker for MapGuide Tile Seeding</title>
		<link>http://www.jasonbirch.com/nodes/2009/02/19/284/now-were-cooking-mgcooker-for-mapguide-tile-seeding/</link>
		<comments>http://www.jasonbirch.com/nodes/2009/02/19/284/now-were-cooking-mgcooker-for-mapguide-tile-seeding/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 05:57:09 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[MapGuide]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[MapGuide Maestro]]></category>
		<category><![CDATA[MgCooker]]></category>
		<category><![CDATA[Tile]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/2009/02/19/284/now-were-cooking-mgcooker-for-mapguide-tile-seeding/</guid>
		<description><![CDATA[The latest preview release of MapGuide Maestro comes with a nice little surprise:  a tool for pre-seeding tile caches. [more...]]]></description>
			<content:encoded><![CDATA[<p>The latest preview release of <a title="MapGuide Maestro .net authoring tool" href="http://trac.osgeo.org/mapguide/wiki/maestro">MapGuide Maestro</a> (r3620 currently) comes with a nice little surprise:&#160; a tool for pre-seeding tile caches.&#160; MgCooker can be run from the command line (more on this later), or through the Maestro GUI.&#160; It couldn&#8217;t be simpler.&#160; Open up a Map Definition that has a Base Layer Group, highlight the group that you want to cook, and click on the MgCooker icon:</p>
<p><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="213" alt="image" src="https://www.jasonbirch.com/nodes/wp-content/uploads/2009/02/image2.png" width="502" border="0" /> </p>
<p>In the following dialog, either leave the default of all checked, or choose to only pre-render certain zoom levels of your data, the choice is yours (probably best to start with the smallest scale &#8211; in this case 100,000):</p>
<p><a href="https://www.jasonbirch.com/nodes/wp-content/uploads/2009/02/image3.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="https://www.jasonbirch.com/nodes/wp-content/uploads/2009/02/image-thumb.png" width="413" border="0" /></a> </p>
</p>
<p>Then click &quot;Build tiles now&quot; and sit back and watch the tiles cook:</p>
<p><a href="https://www.jasonbirch.com/nodes/wp-content/uploads/2009/02/image4.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="202" alt="image" src="https://www.jasonbirch.com/nodes/wp-content/uploads/2009/02/image-thumb1.png" width="502" border="0" /></a> </p>
<p>Of course, this isn&#8217;t practical for a production environment where you would want to batch this operation.&#160; That&#8217;s where the second option comes in; clicking on &quot;Save as script&quot; generates a Windows batch file similar to the following that you can script to your heart&#8217;s desire:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">&quot;C:Program FilesOSGeoMapGuide MaestroMgCookerCommandline.exe&quot; batch
   --mapdefinitions=&quot;Library://Samples/Sheboygan/MapsTiled/Sheboygan.MapDefinition&quot;
   --basegroups=&quot;Base Layer Group&quot;
   --scaleindex=7
   --mapagent=&quot;http://localhost:8008/mapguide/mapagent/mapagent.fcgi&quot;</pre>
</div>
<p>I have no idea if the MgCookerCommandLine.exe works under Mono, but given that the rest of Maestro seems to work fairly well there I would not be surprised.</p>
<p>Great job Kenneth; this is something we have been sorely missing since <a title="MapGuide Open Source" href="http://mapguide.osgeo.org/">MapGuide</a> 1.2, and it&#8217;s great to see it as part of Maestro!</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2009/02/19/284/now-were-cooking-mgcooker-for-mapguide-tile-seeding/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MapGuide REST Extension. Feedback wanted!</title>
		<link>http://www.jasonbirch.com/nodes/2009/01/31/269/mapguide-rest-extension-feedback-wanted/</link>
		<comments>http://www.jasonbirch.com/nodes/2009/01/31/269/mapguide-rest-extension-feedback-wanted/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 13:41:24 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[MapGuide]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Nanaimo]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SL-King]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/2009/01/31/269/mapguide-rest-extension-feedback-wanted/</guid>
		<description><![CDATA[By linking to open source components such as MapGuide, FDO, POCO, CTemplate, and libkml, Haris has built a framework that is very simple and powerful.  With absolutely no programming, a site administrator can build out customised HTML and KML representations of their data, and enable access to default GeoJSON and FDO-based XML representations.  Pair these representations with static HTML pages that expose "service metadata", and you have data that is easily crawlable by search engine spiders, and easily understood by anyone wanting to access the data for other applications. [open article to read more]]]></description>
			<content:encoded><![CDATA[<p>Traditionally, access to municipal geospatial data has been application-centric, either through a web interface with a steep learning curve, or through data downloads or services for use in desktop GIS.&#160; While these are both much better than not providing access at all, neither strategy is particularly effective in getting the data to the people most interested in it: local residents.&#160; This limitation has become painfully clear in an age when you can find almost any other information by typing a few words into a search engine.&#160; Also, in the absence of ready access to our data, citizens are spending countless hours re-creating it, when they could instead be adding value and stimulating the economy.&#160; </p>
<p>By linking to open source components such as MapGuide, <a href="http://fdo.osgeo.org/">FDO</a>, <a href="http://pocoproject.org/">POCO</a>, <a href="http://code.google.com/p/google-ctemplate/">CTemplate</a>, and <a href="http://code.google.com/p/libkml/">libkml</a>, the MapGuide REST framework is very simple and powerful.&#160; With absolutely no programming, a site administrator can build out customised HTML and KML representations of their data, and enable access to default <a href="http://geojson.org/">GeoJSON</a> and FDO-based XML representations.&#160; Pair these representations with static HTML pages that expose &quot;service metadata&quot;, and you have data that is easily crawlable by search engine spiders, and easily understood by anyone wanting to access the data for other applications.&#160; Enough talk; let&#8217;s go over some examples from the City of Nanaimo&#8217;s live web site.</p>
<p><strong>Data URI</strong>:&#160; <a href="http://maps.nanaimo.ca/data/">http://maps.nanaimo.ca/data/</a>&#160;</p>
<p>This is where all of the City&#8217;s RESTful GeoData will be exposed.&#160; Currently, there is a single resource type exposed for Property information, but more is on the way and will be interlinked when it makes sense.&#160; The index page for this directory is a static HTML page pointing to various features of the Property resource type.</p>
<p><strong>Property Resources</strong>:&#160; <a href="http://maps.nanaimo.ca/data/property/">http://maps.nanaimo.ca/data/property/</a>&#160; </p>
<p>This currently displays a page that allows users to search by one of three attributes by HTML forms, and contains links to <a href="http://www.opensearch.org/">OpenSearch</a> (with <a href="http://www.opensearch.org/Specifications/OpenSearch/Extensions/Geo/1.0/Draft_1">draft Geo</a>) documents that define some of the other search and representation capabilities.</p>
<p>OpenSearch link:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span>
  <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;search&quot;</span>
  <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;application/opensearchdescription+xml&quot;</span>
  <span style="color: #ff0000">title</span><span style="color: #0000ff">=&quot;Properties by Street&quot;</span>
  <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;<a href="http://maps.nanaimo.ca/data/property/search_by_street.xml">/data/property/search_by_street.xml</a>&quot;</span>
<span style="color: #0000ff">&gt;</span></pre>
</div>
<p>As well, there is a link to a <a href="http://maps.nanaimo.ca/data/property/index_street.html">Street Index</a> which acts as a form of sitemap, providing web crawlers with an equal-length trip to every property in the City.</p>
<p><strong>Example Property HTML Representation</strong>:&#160; <a href="http://maps.nanaimo.ca/data/property/123170.html">http://maps.nanaimo.ca/data/property/123170.html</a></p>
<p>As much as this looks like a regular web page, it is cram-packed with features that make it distinguishable as a geospatial resource.&#160; Most visibly, it displays an image of the property&#8217;s shape in context, and provides a link to the KML representation of that property.&#160; Digging a little bit deeper, the page header contains links to alternate representations:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span>
  <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;alternate&quot;</span>
  <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;application/vnd.google-earth.kml+xml&quot;</span>
  <span style="color: #ff0000">title</span><span style="color: #0000ff">=&quot;KML representation of 2143 AARON WAY&quot;</span>
  <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;<a href="http://maps.nanaimo.ca/data/property/123170.kml">http://maps.nanaimo.ca/data/property/123170.kml</a>&quot;</span> <span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span>
  <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;alternate&quot;</span>
  <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;application/json&quot;</span>
  <span style="color: #ff0000">title</span><span style="color: #0000ff">=&quot;GeoJSON representation of 2143 AARON WAY&quot;</span>
  <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;<a href="http://maps.nanaimo.ca/data/property/123170.json">http://maps.nanaimo.ca/data/property/123170.json</a>&quot;</span> <span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">link</span>
  <span style="color: #ff0000">rel</span><span style="color: #0000ff">=&quot;alternate&quot;</span>
  <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;text/xml&quot;</span>
  <span style="color: #ff0000">title</span><span style="color: #0000ff">=&quot;XML representation of 2143 AARON WAY&quot;</span>
  <span style="color: #ff0000">href</span><span style="color: #0000ff">=&quot;<a href="http://maps.nanaimo.ca/data/property/123170.xml">http://maps.nanaimo.ca/data/property/123170.xml</a>&quot;</span> <span style="color: #0000ff">&gt;</span></pre>
</div>
<p>and some simple geotags:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;ICBM&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;49.18882, -123.9785&quot;</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;geo.region&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;CA-BC&quot;</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;geo.placename&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;Nanaimo&quot;</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;</span><span style="color: #800000">meta</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">=&quot;geo.position&quot;</span> <span style="color: #ff0000">content</span><span style="color: #0000ff">=&quot;49.18882;-123.9785&quot;</span><span style="color: #0000ff">&gt;</span> </pre>
</div>
<p>Finally, within the page content itself, you will find both <a href="http://microformats.org/wiki/adr">adr</a> and <a href="http://microformats.org/wiki/geo">geo</a> <a href="http://microformats.org/">microformats</a>.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #0000ff">&lt;</span><span style="color: #800000">div</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;adr&quot;</span><span style="color: #0000ff">&gt;</span>
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;extended-address&quot;</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;street-address&quot;</span><span style="color: #0000ff">&gt;</span>2143 AARON WAY<span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>,
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;locality&quot;</span><span style="color: #0000ff">&gt;</span>NANAIMO<span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>,
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;region&quot;</span><span style="color: #0000ff">&gt;</span>BC<span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;country-name&quot;</span> <span style="color: #ff0000">style</span><span style="color: #0000ff">=&quot;display:none;&quot;</span><span style="color: #0000ff">&gt;</span>CANADA<span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span>

<span style="color: #0000ff">&lt;</span><span style="color: #800000">div</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;geo&quot;</span><span style="color: #0000ff">&gt;</span>
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;latitude&quot;</span><span style="color: #0000ff">&gt;</span>49.18882<span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>,
  <span style="color: #0000ff">&lt;</span><span style="color: #800000">span</span> <span style="color: #ff0000">class</span><span style="color: #0000ff">=&quot;longitude&quot;</span><span style="color: #0000ff">&gt;</span>-123.9785<span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span>
<span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></pre>
</div>
<p><strong>Example Property KML Representation</strong>:&#160; <a href="http://maps.nanaimo.ca/data/property/123170.kml">http://maps.nanaimo.ca/data/property/123170.kml</a></p>
<p>The KML representation uses Atom Author and Link elements to define the publisher of the data, and to store the KML&#8217;s URI and that of its alternate HTML representation.&#160; It also uses a combination of ExtendedData and BalloonStyle entities to separate data from presentation, though I have also included a link to the HTML representation in the Description entity for earlier clients.&#160; Finally, it uses external Style and Schema definitions to reduce the size of the file and to maintain consistency across the site.&#160; I&#8217;d encourage you to view the source of the KML file to see how these elements work together.</p>
<p><strong>Example JSON Representation:</strong>&#160; <a href="http://maps.nanaimo.ca/data/property/123170.json">http://maps.nanaimo.ca/data/property/123170.json</a></p>
<p><strong>Example XML Representation:</strong>&#160; <a href="http://maps.nanaimo.ca/data/property/123170.xml">http://maps.nanaimo.ca/data/property/123170.xml</a></p>
<p><strong>Example PNG Representation:</strong>&#160; <a href="http://maps.nanaimo.ca/data/property/123170.png">http://maps.nanaimo.ca/data/property/123170.png</a> </p>
<p>The native GeoJSON and FDO XML representations are provided by the extension.&#160; No customization is possible, which ensures a consistent implementation from site to site.&#160; The PNG representation is also native (not template), but allows you to specify a MapGuide map definition and a layer for selection.</p>
<p><strong>&quot;Endpoints&quot; (because I&#8217;m not sure what to call them):</strong></p>
<p><a href="http://maps.nanaimo.ca/data/property/index.kml">http://maps.nanaimo.ca/data/property/index.kml</a></p>
<p>This is a static file that allows KML clients to interact with the property information dynamically through View Based Refresh.&#160; Basically, this file tells <a href="http://earth.google.com/">Google Earth</a> to request the .kmz endpoint below using a BBOX element that will be used to return only features in view, or a warning if the viewport is too large.</p>
<p><a href="http://maps.nanaimo.ca/data/property/.html">http://maps.nanaimo.ca/data/property/.html</a></p>
<p><a href="http://maps.nanaimo.ca/data/property/.kmz">http://maps.nanaimo.ca/data/property/.kmz</a></p>
<p><a href="http://maps.nanaimo.ca/data/property/.json">http://maps.nanaimo.ca/data/property/.json</a></p>
<p><a href="http://maps.nanaimo.ca/data/property/.xml">http://maps.nanaimo.ca/data/property/.xml</a></p>
<p>These allow users to perform queries on the data.&#160; There are quite a few variations possible, but they basically support standard FDO filters, bbox, count, and start GET parameters.&#160; There are also some funky parameter patterns that allow for easy searching from HTML forms, in the format: filter_[0-9]_(and|or)_(equal|like|likeleft|likeright|lt|gt)_attributename</p>
<p><a href="http://maps.nanaimo.ca/data/property/.schema">http://maps.nanaimo.ca/data/property/.schema</a></p>
<p>This is a special &quot;endpoint&quot; that allows a smart client to determine the data schema for the XML representations of the feature.</p>
<p><strong>Applications</strong></p>
<p>Now, providing read-only representations of these features is pretty cool on its own, and that is all that the City of Nanaimo is prepared to do at this point.&#160; However, the extension can be configured to allow full RESTful data access:&#160; GET, POST, PUT, DELETE.&#160; Combined with a yet-to-be-released FDO REST provider, users of applications that implement FDO (such as AutoCAD <a href="http://www.autodesk.com/map3d">Map 3D</a>, <a title="Safe Software, makers of FME data transformation" href="http://www.safe.com/">Safe Software</a>&#8216;s <a href="http://www.safe.com/">FME</a>, <a href="http://www.1spatial.com/">1Spatial</a>&#8216;s <a href="http://www.1spatial.com/products/maprelate/index.php">MapRelate</a> and <a href="http://www.1spatial.com/products/radius_studio/index.php">Radius Studio</a>, and MapGuide) will be able to read, write, update, and delete data from this extension the same way as they would from local data stores.&#160; I was experimenting with this against an internal server using Map 3D, and it was pretty cool to be able to edit data directly from a web site.</p>
<p>Applications that implement GeoJSON, such as Safe Software&#8217;s FME can also take advantage of this format to read and (untested) write to the exposed data.</p>
<p><img title="json001" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="259" alt="json001" src="https://www.jasonbirch.com/nodes/wp-content/uploads/2009/01/json001.png" width="578" border="0" /> </p>
<p>The GeoJSON representation has a considerable upside for light-weight mobile data editing, for instance in an <a href="http://openlayers.org/">OpenLayers</a> application running inside Google Chrome (or another Gears-enabled browser) and for minimal-packet data access from mobile phone applications.</p>
<p>All of these are really cool applications from a geospatial professional standpoint, but they don&#8217;t really address the primary goal of the original requirement:&#160; enabling easier access to spatial information by residents.&#160; That&#8217;s OK though, just by making these representations available and well-linked, the search engines will pick them up and do this part of the work for me.&#160; </p>
<p>This site has been active for less than two weeks, and Google is already ranking some of the property reports first in the results for generic searches within British Columbia and specific searches elsewhere.&#160; For instance, when I search from home for &quot;<a href="http://www.google.com/search?q=881+Hunter+St">881 Hunter St</a>&quot; (one of the <a href="http://www.google.com/search?q=site%3Amaps.nanaimo.ca">properties Google has indexed</a>) it comes up as number 1.&#160; When Haris searches from Slovenia, that isn&#8217;t the case, but if he searches for &quot;<a href="http://www.google.com/search?q=881+Hunter+St%2C+nanaimo%2C+bc">881 Hunter St, Nanaimo, BC</a>&quot; then it does.&#160; Most municipalities have high authority for their location name, and this is a great way of taking advantage of that authority to provide a higher level of service to our residents.</p>
<p><strong>Weaknesses</strong></p>
<p>The current implementation has a few issues.&#160; Unfortunately these will require a substantial refactoring to resolve, so we&#8217;re looking at another month or so before we have a public-ready build of the code. Some of these problems are as follows:</p>
<ul>
<li>HTTP status codes are often not correct.&#160; For instance, a search that returns a single feature should redirect to that representation rather than displaying the single feature under the search representation. </li>
<li>Fine control over methods is required, such as enabling/disabling specific methods, requiring SSL, requiring certain group access, etc. </li>
<li>Existing configuration system grew in odd ways as the code was modified, and needs to be de-Frankenstein-ed </li>
<li>More control over URI patterns needs to be extended to users, for instance to allow the creation of -edit representations that return pre-populated HTML forms. </li>
<li>Need revision numbering or data checksum to reduce chance of overlapping writes. </li>
<li>Need parameter/http header overrides for method (to deal with firewalls) and format (to allow selection from HTML forms) </li>
<li>Other miscellaneous issues. </li>
</ul>
<p><strong>Updates</strong></p>
<p>Based on feedback, Haris has enabled JSONP for the .json representations.  Just add the argument _callback to the URI, with the name of your desired function as the value.  e.g.: <a href="http://maps.nanaimo.ca/data/property/.json?filter_1_and_equal_street=ROSSTOWN+ROAD&amp;_callback=rosstown">http://maps.nanaimo.ca/data/property/.json?filter_1_and_equal_street=ROSSTOWN+ROAD&amp;_callback=rosstown</a></p>
</p>
<p><strong>Call for Feedback</strong></p>
<p>If you have a chance to look at the current implementation and see any areas where it could be improved, we&#8217;re really interested in making changes required to meet REST best practices.&#160; We&#8217;ve been trying to pay attention to current guidance, but without a real implementation it has been hard to truly understand what is needed.</p>
<p>Thanks!</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2009/01/31/269/mapguide-rest-extension-feedback-wanted/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Changing selection colour in MapGuide AJAX viewer</title>
		<link>http://www.jasonbirch.com/nodes/2008/12/02/213/changing-selection-colour-in-mapguide-ajax-viewer/</link>
		<comments>http://www.jasonbirch.com/nodes/2008/12/02/213/changing-selection-colour-in-mapguide-ajax-viewer/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 04:51:50 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[MapGuide]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[selection colour]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=213</guid>
		<description><![CDATA[One of the annoyances that people have faced with MapGuide Open Source is that the selection colour was hard-coded in one of the C++ rendering functions. There were a few ways of getting around this without recompiling, but they were all a lot of work. RFC 38 included some code changes that made it possible [...]]]></description>
			<content:encoded><![CDATA[<p>One of the annoyances that people have faced with <a href="http://mapguide.osgeo.org/">MapGuide Open Source</a> is that the selection colour was hard-coded in <a href="http://trac.osgeo.org/mapguide/browser/branches/1.2.x/MgDev/Common/Stylization/GDRenderer.cpp#L1464">one of the C++ rendering functions</a>.  There were a few ways of getting around this without recompiling, but they were all a lot of work.  <a href="http://trac.osgeo.org/mapguide/wiki/MapGuideRfc38">RFC 38</a> included some <a href="http://trac.osgeo.org/mapguide/browser/branches/2.0.x/MgDev/Common/Renderers/GDRenderer.cpp#L1471">code changes</a> that made it possible to modify this value on the fly, but it doesn&#8217;t look like this capability was taken advantage of by the AJAX viewer that was distributed with MGOS 2.0.x.</p>
<p>If you&#8217;re using MapGuide Open Source 2.0 (2.0.2 recommended) and are not happy with the default blue selection colour, you can easily change it on a per-install basis by modifying the mapviewerajax template file.  This is located at:</p>
<blockquote><p>(INSTALLDIR)\WebServerExtensions\www\viewerfiles\ajaxmappane.templ</p></blockquote>
<p>You will need to find the function called RequestMapImage, which includes a line that looks like this:</p>
<p><code><br />
url = webAgent +<br />
 &quot;?OPERATION=GETDYNAMICMAPOVERLAYIMAGE&amp;FORMAT=PNG&amp;VERSION=1.0.0&amp;SESSION=&quot;<br />
+ sessionId + &quot;&amp;MAPNAME=&quot; + encodeComponent(mapName)<br />
+ &quot;&amp;SEQ=&quot; + Math.random();<br />
</code><br />
</p>
<p>You will need to modify this to change the VERSION to 2.0.0, and add the BEHAVIOR and SELECTIONCOLOR parameters:</p>
<p><code><br />
url = webAgent +<br />
 &quot;?OPERATION=GETDYNAMICMAPOVERLAYIMAGE&amp;FORMAT=PNG&amp;VERSION=<strong>2.0.0</strong>&amp;SESSION=&quot;<br />
 + sessionId + &quot;&amp;MAPNAME=&quot; + encodeComponent(mapName)<br />
 + &quot;&amp;SEQ=&quot; + Math.random() <strong>+ &quot;&amp;BEHAVIOR=7&amp;SELECTIONCOLOR=FF5300FF&quot;</strong>;<br />
</code><br />
</p>
<p>Before:</p>
<p><img src="http://www.jasonbirch.com/nodes/wp-content/uploads/2008/12/mapguide_selection_colour_default.png" alt="" title="MapGuide Selection Colour Default" width="400" height="433" class="alignnone size-full wp-image-221" /></p>
<p>After:</p>
<p><img src="http://www.jasonbirch.com/nodes/wp-content/uploads/2008/12/mapguide_selection_colour_modified1.png" alt="" title="MapGuide Selection Colour Modified" class="alignnone size-full wp-image-220" /></p>
<p>The BEHAVIOR parameter is a bitmask that controls what is rendered, and is described in <a href="http://trac.osgeo.org/mapguide/wiki/MapGuideRfc38">RFC 38</a>.  The SELECTIONCOLOR parameter is a hex string in <a href="http://en.wikipedia.org/wiki/RGBA_color_space">RGBA format</a>, or its integer equivalent.  Note for geeks:  the A (opacity) portion of the string is ignored; the server code masks this out of the passed value, and then adds 200 (C8) as the line opacity and 160 (A0) as the fill opacity.</p>
<p>Note, the mapagent call allows you the flexibility to add more complicated behaviour to your viewer, such as changing the selection colour dynamically based on the map name, but I&#8217;ll leave that as an exercise for the reader (mostly because I&#8217;m lazy and use Fusion anyway and wouldn&#8217;t benefit from the work).</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2008/12/02/213/changing-selection-colour-in-mapguide-ajax-viewer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Best practice: write amusing commit messages</title>
		<link>http://www.jasonbirch.com/nodes/2008/09/11/198/best-practice-write-amusing-commit-messages/</link>
		<comments>http://www.jasonbirch.com/nodes/2008/09/11/198/best-practice-write-amusing-commit-messages/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 22:20:09 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[FDO]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[commit]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=198</guid>
		<description><![CDATA[OK, I&#8217;m not sure how much of a best practice this is, but at least it keeps the folks reading your commits via RSS amused, and maybe it will promote more code review. Here are a couple recent examples from the FDO timeline: In this submission, a fix for the patch we add to the [...]]]></description>
			<content:encoded><![CDATA[<p>OK, I&#8217;m not sure how much of a best practice this is, but at least it keeps the folks reading your commits via RSS amused, and maybe it will promote more code review.  Here are a couple recent examples from the <a href="http://trac.osgeo.org/fdo/timeline?from=09%2F11%2F08&#038;daysback=30&#038;changeset=on&#038;update=Update">FDO timeline</a>:</p>
<blockquote><p>In this submission, a fix for the patch we add to the SQL engine. One character is the difference between working code and epic fail&#8230;</p></blockquote>
<blockquote><p>This submission switches the provider to compile against SQLite 3.6.2. Apart from making universe collapse imminent, this comes with a nice performance boost of up to 2x for feature reads. </p></blockquote>
<p>;)</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2008/09/11/198/best-practice-write-amusing-commit-messages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CS-Map in MapGuide: Guess I was wrong</title>
		<link>http://www.jasonbirch.com/nodes/2008/08/07/196/cs-map-in-mapguide-guess-i-was-wrong/</link>
		<comments>http://www.jasonbirch.com/nodes/2008/08/07/196/cs-map-in-mapguide-guess-i-was-wrong/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 04:40:01 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[MapGuide]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[CS-Map]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=196</guid>
		<description><![CDATA[Earlier this week, I mentioned that GDAL might be beating MapGuide as an early adopter of the newly open-sourced CS-Map coordinate transformation library. Well, this evening a new RFC was presented to the MapGuide project steering committee to replace PROJ.4 with CS-Map. Guess I was wrong about the beating part&#8230; but am still very happy [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, I mentioned that <a href="http://www.jasonbirch.com/nodes/2008/08/04/192/cs-map-whats-the-big-deal/">GDAL might be beating MapGuide</a> as an early adopter of the newly open-sourced CS-Map coordinate transformation library.</p>
<p>Well, this evening <a href="http://trac.osgeo.org/mapguide/wiki/MapGuideRfc55">a new RFC</a> was <a href="http://lists.osgeo.org/pipermail/mapguide-internals/2008-August/002640.html">presented</a> to the MapGuide project steering committee to replace PROJ.4 with CS-Map.  Guess I was wrong about the beating part&#8230; but am still very happy about the joining :)</p>
<p>I&#8217;d imagine that this took a bit of work, but Autodesk MapGuide Enterprise has always used CS-Map, so most of the code was probably already sitting there waiting to go.  I&#8217;m a little sad to see PROJ.4 replaced, and have some questions about compatibility with existing installs, but this has always been one of our pain points integrating MapGuide Open Source with other corporate applications (FME, Autodesk Map, etc) that used CS-Map.  It will be great to see this problem go away.</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2008/08/07/196/cs-map-in-mapguide-guess-i-was-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CS-Map: What&#8217;s the big deal?</title>
		<link>http://www.jasonbirch.com/nodes/2008/08/04/192/cs-map-whats-the-big-deal/</link>
		<comments>http://www.jasonbirch.com/nodes/2008/08/04/192/cs-map-whats-the-big-deal/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 21:09:06 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Autodesk]]></category>
		<category><![CDATA[CS-Map]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=192</guid>
		<description><![CDATA[Last year at FOSS4G, Autodesk announced that they had acquired and would be open sourcing the CS-Map coordinate system library. Today, with another press release, they announced that the source code is now available (and there&#8217;s a nice mention of MapGuide Maestro in there too). The press release doesn&#8217;t specify this, but the license selected [...]]]></description>
			<content:encoded><![CDATA[<p>Last year at FOSS4G, <a href="http://pressreleases.autodesk.com/index.php?s=press_releases&#038;item=319%3C%2Ftd%3E">Autodesk announced</a> that they had acquired and would be open sourcing the <a href="http://trac.osgeo.org/csmap/">CS-Map</a> coordinate system library.  Today, with <a href="http://pressreleases.autodesk.com/index.php?s=press_releases&#038;item=446%3C%2Ftd%3E">another press release</a>, they announced that the source code is now available (and there&#8217;s a nice mention of <a href="http://trac.osgeo.org/mapguide/wiki/maestro">MapGuide Maestro</a> in there too).  The press release doesn&#8217;t specify this, but the <a href="http://svn.osgeo.org/metacrs/csmap/trunk/CsMapDev/license.txt">license selected</a> for CS-Map is the extremely liberal <a href="http://www.opensource.org/licenses/bsd-license.php">BSD License</a>.</p>
<p>Why is this significant?  Basically, because coordinate system identification and transformation is critical to almost every geospatial application.  The <a href="http://en.wikipedia.org/wiki/Bus_factor">bus factor</a> on CS projects is generally extremely low, and they require a high degree of specialized knowledge to deliver accurate results.  Having multiple projects out there means that differences in coordinate system handling and metadata can create a barrier to data sharing and interoperability.  Making CS-Map open source allows open collaboration between CS-Map, PROJ.4, and other open source coordinate libraries.  This was recognized in the community quite quickly, and the <a href="http://wiki.osgeo.org/wiki/MetaCRS">MetaCRS</a> project was set up in January to allow open communication and collaboration between these projects.</p>
<p>This collaboration is already bearing fruit.  Between Oracle 9 and Oracle 10, coordinate system handling changed considerably.  Seeing this, <a href="http://www.gdal.org/">GDAL / OGR</a> developers working on an <a href="http://www.gdal.org/ogr/drv_oci.html">Oracle driver</a> <a href="http://lists.osgeo.org/pipermail/metacrs/2008-July/000116.html">posted to the MetaCRS mailing list</a> asking for feedback.  As a result of this conversation, OGR will be <a href="http://lists.osgeo.org/pipermail/metacrs/2008-July/000137.html">calling out to CS-Map</a> to handle Oracle coordinate systems, joining (or maybe even beating) <a href="http://mapguide.osgeo.org/">MapGuide</a> as an early adopter of open source CS-Map.  It is clear that MetaCRS provides great value as a key initiative in open source geospatial, and I wholeheartedly support its <a href="http://lists.osgeo.org/pipermail/metacrs/2008-August/000138.html">imminent application</a> to enter OSGeo&#8217;s incubation process.</p>
<p>For those of you who care, the source code for CS-Map is available on the OSGeo infrastructure.  You can access it through either <a href="http://svn.osgeo.org/metacrs/csmap/trunk/">raw SVN</a>, or in a more human-friendly <a href="http://trac.osgeo.org/csmap/browser/trunk">Trac interface</a>.</p>
<p>Congratulations to Autodesk and Norm Olsen for taking this important step, and to the MetaCRS community for joining together to take advantage of it!</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2008/08/04/192/cs-map-whats-the-big-deal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OSGeo BC Meeting During GeoWeb</title>
		<link>http://www.jasonbirch.com/nodes/2008/06/24/188/osgeo-bc-meeting-during-geoweb/</link>
		<comments>http://www.jasonbirch.com/nodes/2008/06/24/188/osgeo-bc-meeting-during-geoweb/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 17:37:20 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[BC Local Chapter]]></category>
		<category><![CDATA[GeoWeb]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=188</guid>
		<description><![CDATA[Hey, if you&#8217;re coming to GeoWeb in Vancouver later next month, why not get together with the OSGeo BC Local Chapter for a mostly-informal meeting on Tuesday night? Right now, the agenda is pretty basic: a couple technical presentations, brief chapter business, and pizza all at the Sierra Systems offices a few blocks from the [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,  if you&#8217;re coming to <a href="http://www.geowebconference.org/">GeoWeb</a> in Vancouver later next month, why not get together with the OSGeo BC Local Chapter for a <a href="http://wiki.osgeo.org/wiki/British_Columbia_Chapter_Meeting_2008-07-22">mostly-informal meeting</a> on Tuesday night?</p>
<p>Right now, the agenda is pretty basic: a couple technical presentations, brief chapter business, and pizza all at the Sierra Systems offices <a href="http://maps.google.com/maps?f=d&#038;hl=en&#038;geocode=16242459962562867653,49.288632,-123.121980&#038;saddr=580+West+Hastings+Street,+Vancouver,+British+Columbia&#038;daddr=2500-1177+Hastings+Street+West,+Vancouver,+BC+V6E+2K3,+Canada+(Sierra+Systems+Group+Inc)&#038;mra=pe&#038;mrcr=0&#038;sll=49.27711,-123.083527&#038;sspn=0.130807,0.355682&#038;ie=UTF8&#038;ll=49.286829,-123.116333&#038;spn=0.008174,0.02223&#038;z=16">a few blocks</a> from the GeoWeb conference.</p>
<p>If you&#8217;re interested in coming, or possibly presenting, <a href="http://lists.osgeo.org/mailman/listinfo/osgeo-bc">sign up for our mailing list</a> and let us know so that we can handle the vast numbers :)</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2008/06/24/188/osgeo-bc-meeting-during-geoweb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQLite for FDO with Sugar-Free OGR Synchronicity</title>
		<link>http://www.jasonbirch.com/nodes/2008/05/06/184/sqlite-for-fdo-with-sugar-free-ogr/</link>
		<comments>http://www.jasonbirch.com/nodes/2008/05/06/184/sqlite-for-fdo-with-sugar-free-ogr/#comments</comments>
		<pubDate>Tue, 06 May 2008 08:24:39 +0000</pubDate>
		<dc:creator>Jason Birch</dc:creator>
				<category><![CDATA[FDO]]></category>
		<category><![CDATA[Formats]]></category>
		<category><![CDATA[MapGuide]]></category>
		<category><![CDATA[OSGeo]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OGR]]></category>
		<category><![CDATA[Sexy]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://www.jasonbirch.com/nodes/?p=184</guid>
		<description><![CDATA[James&#8217; recent post about the GIS Interchange File reminded me that I&#8217;ve been meaning to discuss some recent activity on the SQLite front in both FDO and OGR. Traian Stanev recently proposed the creation of an SQLite provider for FDO. He was quickly arm-wrestled into supporting something close to OGC&#8217;s Simple Features for SQL specification, [...]]]></description>
			<content:encoded><![CDATA[<p>James&#8217; recent post about the <a href="http://www.spatiallyadjusted.com/2008/05/05/the-gis-interchange-file/">GIS Interchange File</a> reminded me that I&#8217;ve been meaning to discuss some recent activity on the <a href="http://www.sqlite.org/">SQLite</a> front in both <a href="http://fdo.osgeo.org/">FDO</a> and <a href="http://www.gdal.org/ogr/">OGR</a>.</p>
<p>Traian Stanev recently <a href="http://lists.osgeo.org/pipermail/fdo-internals/2008-March/001785.html">proposed</a> the creation of an SQLite provider for FDO.  He was quickly arm-wrestled into supporting something close to OGC&#8217;s <a href="http://www.opengeospatial.org/standards/sfs">Simple Features for SQL</a> specification, and working with Frank Warmerdam hammered out a GIS spec for SQLite that would work for both OGR and FDO.  The beauty is that it&#8217;s a single file and can be read by any of the existing SQLite tools.</p>
<p>Traian completed initial development of the SQLite provider a couple weeks ago and Frank expanded OGR&#8217;s SQLite support to understand this common specification (this work is in the GDAL/OGR trunk for inclusion in the 1.6 release).  These implementations have different strengths.  The FDO provider was written to be blazing fast, features an in-memory spatial index, and writes to the FDO binary format.  The OGR driver was written for maximum portability and allows writing WKT and WKB.  Both implementations will read all three geometry formats and understand the dimension and projection information stored in the OGC-derived metadata tables.</p>
<p>You can download a <a href="http://www.jasonbirch.com/fdosqlite/FdoSQLiteProvider_3.3.0_r4270.zip">totally unofficial build</a> of the FDO provider from my website if you want to try it out with MapGuide 2.0 or maybe even Autodesk Map 3D 2009.  I have successfully tested it in MapGuide with WKT, WKB, and FGF data.  Adding this provider to MapGuide is easy:</p>
<ul>
<li>Drop the three files in the zipfile into your Server/bin/fdo directory</li>
<li>Edit your main providers.xml file to include the SQLite provider using the included XML snippet</li>
<li>Restart MapGuide</li>
</ul>
<p>You will need some data.  Testing can be done with <a href="http://download.osgeo.org/gdal/data/sqlite3/">SQLite files from the OGR sample data directory</a>, but you will eventually want to use your own.  It&#8217;s fairly simple to convert SDF and SHP.  Open up a command window in your Server/bin/fdo directory and type something like:</p>
<p><code>SQLiteConverter.exe&nbsp;c:\src.sdf&nbsp;c:\dest.db</code></p>
<p>When creating a new data connection to this file, the provider only takes one configuration parameter: the full path to the file.  If you run into any bugs, please <a href="http://trac.osgeo.org/fdo/wiki/SubmitTicket">post them on the FDO Trac instance</a>.</p>
<p>OGR users that are tracking the trunk build can also try this out.  With some amazement, I recently found that the enhancements to this driver had already <a href="http://www.gdal.org/ogr/drv_sqlite.html">been documented</a>&#8230;  obviously OGR places a premium on timely docs.  ogr2ogr allows you to do a similar import operation, probably something like (untested):</p>
<p><code>ogr2ogr&nbsp;-f&nbsp;"SQLite"&nbsp;-dsco&nbsp;FORMAT=WKB&nbsp;dest.db&nbsp;src.shp<br />
</code></p>
<p>You can use additional <a href="http://www.gdal.org/ogr/ogr2ogr.html">ogr2ogr</a> arguments to ensure that destination spatial reference and geometry type are written to the metadata tables.</p>
<p>Interestingly enough, a common SQLite GIS specification has been kicked around for quite some time.  Last year it was <a href="http://lists.osgeo.org/pipermail/discuss/2007-November/002707.html">discussed on the OSGeo Discuss mailing list</a>, and more recently further discussion was held <a href="http://www.postgis.org/pipermail/postgis-users/2008-April/019117.html">on the PostGIS mailing list</a> and a <a href="http://sqlitegis.org/wiki/index.php?title=Main_Page">wiki page was set up</a> to collaborate on this idea.  Obviously, there is considerable interest within the community.  My personal hope is that this specification helps the idea of SQLite as a GIS data store take off.</p>
<p>One area where it could be improved is some kind of integration with Alessandro Furieri&#8217;s <a href="http://www.gaia-gis.it/spatialite/">SpatiaLite </a> extension for SQLite that allows common RDBMS GIS functionality in a native SQLite interface.  Unfortunately, neither Frank nor Traian had the cycles to integrate this extension&#8217;s data format into the specification or the code at this point.  Maybe we&#8217;ll get lucky and Alessandro will decide to somehow support this spec, but if not I hope there will be some convergence in the long run.</p>
<p>I know that there was more that I wanted to say, but it&#8217;s getting late and I don&#8217;t even have time to cut the extra gunk out of this post.  Happy SQLiting!</p>
<p>-J</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonbirch.com/nodes/2008/05/06/184/sqlite-for-fdo-with-sugar-free-ogr/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
