Geotagging Web Pages and RSS Feeds
For a Web site, several means of geotagging are available. My previous article explained how to embed the site's geographic information in its DNS entry. Other options also allow this information to be placed within a site or each individual page. These are the older ICBM tags and the newer, more generic geo-structure tags.
The ICBM (original acronym is Intercontinental Ballistic Missile) tags derive from a more historical application, as described in the AntiOnline jargon dictionary:
(Also 'missile address') The form used to register a site with the Usenet mapping project, back before the day of pervasive Internet, included a blank for longitude and latitude, preferably to seconds-of-arc accuracy. This was actually used for generating geographically-correct maps of Usenet links on a plotter; however, it became traditional to refer to this as one's 'ICBM address' or 'missile address', and some people include it in their sig block with that name. (A real missile address would include target elevation.)
ICBM tags are limited to latitude and longitude and do not include other regional information, such as city or country. From Matt Croydon's PostNeo, the RFC (request for comment) of the syntax is as follows:
<meta name='ICBM' content="latitude, longitude" />
This tag would be included in your Web page's <head> section.
Another means of embedding geographic metadata is through geo-structure tags. These geo-structure tags can include latitude and longitude information as well as regional information and an extra placename. The placename could contain the specific address of the person or business. Or, it could be useful for providing a location that may not have a specific point but covering a broader region, such as a city or district. The following example is for the Museo Nacional Del Prado, in Madrid, Spain.
<meta name="geo.position" content="40.4157;-3.6947" /> <meta name="geo.region" content="ES-M"> <meta name="geo.placename" content="Paseo del Prado">
I obtained the geo.position information using Multimap, given the address provided on the museum's Web page. The geo.region uses the ISO-3166-1 Country Names and Region Names specifications. For the US and Canada, this is the abbreviation for the state or province; it varies in other countries. All together, the code for my Web site looks like this:
<meta name="DC.title" content="High Earth Orbit" /> <meta name="ICBM" content="42.4266, -83.49307" /> <meta name="geo.position" content="42.4266;-83.49307" /> <meta name="geo.region" content="US-MI"> <meta name="geo.placename" content="Northville">
As mentioned in the introduction, Multimap provides a location service that offers hotels located within the area of the maps you have selected. This service is provided by the Accommodation Search Engine Network. The Web pages on the ASE site employ the use of commented-out tables to hide the geographic information. The Multimap Web service then pulls this information from each of the hotels' Web pages or backend databases. This method is not recommended, however, because it is not standard and is difficult to use for applications and other Web services. An example of this block is shown below:
<!-- <a name="geo"></a><br> <table> <tr class="bg2"> <td class="head2">Geographical Information:</td> </tr> <tr class="bg1"> <td class="text"> <span>Accuracy:</span>Property<br> <span>Lat:</span>39.894337<br> <span>Long:</span>-83.807657<br> <span>TimeZone:</span>Eastern<br> </td> </tr> </table> -->
Besides geotagging a Web site, it is possible to geotag the source of an RSS feed as well as the individual articles. By geotagging each article, your feed can provide entries from various locations. Then, these entries can be displayed on a map where users can read about locations that interest them. Alternatively, by geotagging the source of the feed, a directory or opml file could provide feeds based on user-selected locations.
The Resource Description Framework Interest Group (RDFIG) has published a solidifying standard for the geospatial vocabulary. It includes specifying latitude, longitude and, optionally, altitude. This is similar to the geo tags discussed above, with small syntactic differences. Furthermore, the RDF requires you to specify an XML namespace (xmlns) for the WGS84 geodetic reference datum.
<rdf:RDF > <geo:Point> <geo:lat>55.701</geo:lat> <geo:long>12.552</geo:long> <geo:alt>52.4</geo:alt> </geo:Point> </rdf:RDF>
The ICBM standard discussed above also can be used in tagging an RSS feed. Again, an XML namespace is used to specify the keywords of the file, and the tags are included either in the header or within the item tags. Here is example from the USGS Earthquake feed of events over 2.5 on the Richter scale in the last 7 days:
<rss version="2.0" > <item> <title>M 3.7, Southern Alaska</title> <description>January 02, 2005 03:55:52 GMT</description> <link>http://earthquake.usgs.gov/recenteqsww/Quakes/ak00043775.htm</link> <icbm:latitude>60.4780</icbm:latitude> <icbm:longitude>-152.4355</icbm:longitude> <dc:subject>3</dc:subject> <dc:subject>pasthour</dc:subject> </item>
Finally, some Weblog services may prevent users from adding new tags to RSS feeds. In this case, it is acceptable for some sites and packages to embed the geographic information in <dc:subject> tags, as shown below:
<?xml version="1.0"?> <rss version="2.0" > <channel> <item> <title>Example Title</title> <link>http://site.com/geo</link> <description>Example Description</description> <dc:subject>geo:lat=33.00 geo:long=-44.54</dc:subject> </item> </channel> </rss>
Several Weblog packages already incorporate the ability to specify a geographic location within an entry as well as for the entire Weblog. This geographic information then can be included for users when reading the Weblog through their browsers or through their own aggregators. Each entry, when posted, is assigned either a default location or is given a new location. The following is an example of the geotagged RSS feed generated by Wordpress v1.2:
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" > <channel> <title>High Earth Orbit</title> <link>http://highearthorbit.com</link> <description>LinuxJournal Example</description> <icbm:latitude>42.4266</icbm:latitude> <icbm:longitude>-83.4931</icbm:longitude> <copyright>Copyright 2005</copyright> <pubDate>Wed, 05 Jan 2005 18:54:47 +0000</pubDate> <generator>http://wordpress.org/?v=1.2</generator> <item> <title>Sample Title</title> <link>http://highearthorbit.com/index.php?p=121</link> <pubDate>Wed, 05 Jan 2005 18:54:47 +0000</pubDate> <category>Sample Category</category> <guid>http://highearthorbit.com/index.php?p=121</guid> <description>Sample Description</description> <geo:Point> <geo:lat>42.5021</geo:lat> <geo:long>-83.1454</geo:long> </geo:Point> <icbm:latitude>42.5021</icbm:latitude> <icbm:longitude>-83.1454</icbm:longitude> </item> </channel> </rss>
For more information on other particular Weblogs, check out the Worldkit Documentation.
|Non-Linux FOSS: libnotify, OS X Style||Jun 18, 2013|
|Containers—Not Virtual Machines—Are the Future Cloud||Jun 17, 2013|
|Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer||Jun 12, 2013|
|Weechat, Irssi's Little Brother||Jun 11, 2013|
|One Tail Just Isn't Enough||Jun 07, 2013|
|Introduction to MapReduce with Hadoop on Linux||Jun 05, 2013|
- Containers—Not Virtual Machines—Are the Future Cloud
- Non-Linux FOSS: libnotify, OS X Style
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Linux Systems Administrator
- Validate an E-Mail Address with PHP, the Right Way
- Introduction to MapReduce with Hadoop on Linux
- RSS Feeds
- New Products
- Weechat, Irssi's Little Brother
- Tech Tip: Really Simple HTTP Server with Python
- Poul-Henning Kamp: welcome to
44 min 40 sec ago
- This has already been done
45 min 40 sec ago
- Reply to comment | Linux Journal
1 hour 30 min ago
- Welcome to 1998
2 hours 19 min ago
- notifier shortcomings
2 hours 43 min ago
4 hours 19 min ago
- Android User
4 hours 21 min ago
- Reply to comment | Linux Journal
6 hours 14 min ago
9 hours 4 min ago
- This is a good post. This
14 hours 17 min ago
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?