All,<br><br>A follow-up to my last email. It's been an epic but I've solved most of the technical hurdles for producing a GeoRSS feed from Pmwiki. I could do with your help on extending PmWiki's 'feed.php' below.<br>
<br>As proof of concept I'm adding two new custom mark-ups to save PTV's representing latitude and longitude for each page. My mark-up in wiki pages is:<br><br>(:latitude 50.1234:)<br>(:longitude -1.23456:)<br><br>
I get PTV's into the system using the following:<br><br>$FmtPV['$Latitude'] = '@$page["latitude"]';<br>
$FmtPV['$Longitude'] = '@$page["longitude"]';<br>
$SaveProperties[] = 'latitude';<br>
$SaveProperties[] = 'longitude';<br>
<br>I add my own custom feed format handled by PmWiki's core 'feed.php' script using (copied from existing rss entry):<br><br>SDVA($FeedFmt['georss']['feed'], .... <--- same as Pm's core rss line [snipped here]<br>
<br>SDVA($FeedFmt['georss']['item'], array(<br> '_start' => "<item>\n",<br> '_end' => "</item>\n",<br> 'title' => '{$Group} / {$Title}',<br>
'link' => '{$PageUrl}',<br> 'description' => '{$Description}',<br> 'geo:lat' => '{$Latitude}',<br> 'geo:long' => '{$Longitude}',<br><b> 'georss:point' => '{$Latitude} {$Longitude}', <------- please look here<br>
</b> 'dc:contributor' => '{$LastModifiedBy}',<br> 'dc:date' => '$ItemISOTime',<br> 'pubDate' => '$ItemRSSTime',<br> 'enclosure' => 'RSSEnclosure'));<br>
<br>I include the above using:<br><br>if ($action == 'georss') include_once("scripts/feeds.php");<br><br>If I draw your attention to the 'georss:point' line which concatenates latitude and longitude, adding a space character in the middle. All this works fine when I have a lat/lng defined in my page. The problem I have is that when a page doesn't have a lat/lng I get the 'georss:point' line in my rss output with the value set to a space. The thing I like about the other 'geo:lat' and 'geo:long' lines is that they are automagically removed from the rss output if the page doesn't contain them.<br>
<br>How can I get this behaviour with the 'georss:point' line above?<br><br>If I can get this solved I'll write it up as a recipe for others to play with.<br><br>Thanks in advance,<br>-Steve.<br><br><div class="gmail_quote">
2009/10/19 <span dir="ltr"><<a href="mailto:stevecrisp@gmail.com">stevecrisp@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Dear Pm community,<br><br>As per title I'm attempting to write a proof of concept PmWiki recipe for geotagging support in PmWiki. I could do with some design advice on my embryonic ideas/ramblings below:<br><br>(1) We want to add geotag to relevant wiki pages. New markup needed (:coord <lat>, <lng>:) e.g. (:coord 52.12345, -1.23456789:). This would create metatags in the resultant html output in keeping with say Wikipedia's ideas here: <br>
<br>+ <a href="http://en.wikipedia.org/wiki/Geotagging" target="_blank">http://en.wikipedia.org/wiki/Geotagging</a><br>+ <a href="http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Geographical_coordinates" target="_blank">http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Geographical_coordinates</a><br>
<br>So we have geotagged page we need to get to the data (from other applications) in various ways; GeoRSS feed, backend database<br><br>(2) For the GeoRSS feed I'm hoping I'll simply reuse one of the existing RSS feeds and convert the output to GeoRSS XML output. Hopefull I'll be able to get this working for Recent Changes for example. GeoRSS is good as many mapping clients consume this. I could also adapt for output of KML also lets not jump before I'm walking!<br>
<br>(3) The end goal for the database backend is we could use PmWiki to display
relevant content to a specified grid reference, and a few quick
geodetic calculations could give me a list of pages with content near
to a specific coordinate. This is a bit like Flikr for photos. I'll start with the SQLite receipe (<a href="http://www.pmwiki.org/wiki/Cookbook/SQLite" target="_blank">http://www.pmwiki.org/wiki/Cookbook/SQLite</a>) as I've used this before with PmWiki. I could add two new columns to the 'pages' table which will extract the latitude and longitude data from my new markup as per (1) above. This will help me perform quick distance calculations at a later time without inspecting the page content. Ideally I'd use either Postgres (PostGIS extensions) or MySQL backend (with geo extensions).<br>
<br>For those that are still reading, I've the following initial questions:<br><br>(a) has this been done before?<br>(b) if not, does the above sound achievable (assuming a few pointers from this community as I uncover issues)?<br>
(c) I assume I'll copy the (:summary:) markup item to create new new (:coord:) markup. Is this good practise?<br>(d) Will a customer RSS feed (read GeoRSS feed) be possible from the content of data available from the recent changes RSS feed? I'll need page title and coord markup within the XML output.<br>
(e) For the database backend, starting with SQLite recipe, can I simply add two columns (lat & lng) and have the new (:coord:) markup be parsed by it?<br><br>Any advice very much welcome.<br>--Steve.<br>
</blockquote></div><br>