You are here

function _location_rss_item in Location 7.5

Same name and namespace in other branches
  1. 5.3 location.georss.inc \_location_rss_item()
  2. 6.3 location.georss.inc \_location_rss_item()
  3. 7.3 location.georss.inc \_location_rss_item()

@function Return an array of RSS items for a location.

1 call to _location_rss_item()
location_rss_item in ./location.module

File

./location.georss.inc, line 12
GeoRSS support for Location.

Code

function _location_rss_item($location, $mode = 'simple') {
  $ret = FALSE;
  if (location_has_coordinates($location, TRUE)) {
    switch ($mode) {

      // W3C Basic Geo Vocabulary
      case 'w3c':
        $ret = array(
          'key' => 'geo:Point',
          'namespace' => array(
            'xmlns:geo' => 'http://www.w3.org/2003/01/geo/wgs84_pos#',
          ),
          'value' => array(
            array(
              'key' => 'geo:lat',
              'value' => $location['latitude'],
            ),
            array(
              'key' => 'geo:long',
              'value' => $location['longitude'],
            ),
          ),
        );
        break;

      // Location 1.x-2.x bug compatible.
      // W3C Basic Geo Vocabulary with a misspelled longitude tag.
      case 'w3c_bugcompat':
        $ret = array(
          'key' => 'geo:Point',
          'namespace' => array(
            'xmlns:geo' => 'http://www.w3.org/2003/01/geo/wgs84_pos#',
          ),
          'value' => array(
            array(
              'key' => 'geo:lat',
              'value' => $location['latitude'],
            ),
            array(
              'key' => 'geo:lon',
              'value' => $location['longitude'],
            ),
          ),
        );
        break;

      // GeoRSS-Simple
      case 'simple':
        $ret = array(
          'key' => 'georss:point',
          'namespace' => array(
            'xmlns:georss' => 'http://www.georss.org/georss',
          ),
          'value' => "{$location['latitude']} {$location['longitude']}",
        );
        break;

      //
      case 'gml':
        $ret = array(
          'key' => 'georss:where',
          'namespace' => array(
            'xmlns:georss' => 'http://www.georss.org/georss',
            'xmlns:gml' => 'http://www.opengis.net/gml',
          ),
          'value' => array(
            'gml:Point' => array(
              'gml:pos' => "{$location['latitude']} {$location['longitude']}",
            ),
          ),
        );
        break;
    }
  }
  return $ret;
}