views:

43

answers:

2

this is my code that has geo-rss from google maps rss:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml"&gt;
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Feed API - Simple Example</title>
    <script type="text/javascript" src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
    <script type="text/javascript">

    google.load("feeds", "1");

    function initialize() {
      var feed = new google.feeds.Feed("http://maps.google.com/maps/ms?ie=UTF8&amp;hl=zh-CN&amp;vps=1&amp;jsv=259e&amp;msa=0&amp;output=georss&amp;msid=109685068115364659392.00048b5b630141d82b83a");

      feed.load(function(result) {
       console.log(result.feed)

      });

    }
    google.setOnLoadCallback(initialize);

    </script>
  </head>
  <body>
    <div id="feed"></div>
  </body>
</html>

and i can't find the geo data on the firebug ,

so what should i do ..

thanks

updated:

the geo data(in the geo-rss) i want to get is like this:

<georss:point>
      39.965015 116.362381
    </georss:point>

and

<gml:LineString>

      <gml:posList>
        39.992191 116.417938
        39.968254 116.466698
        39.939568 116.451591
        39.959045 116.411079
      </gml:posList>
    </gml:LineString>

this can not get using the google ajax api .

so what should i do ..

A: 

From an example in the Google AJAX API Code Playground that works

http://code.google.com/apis/ajax/playground/?exp=feeds#load_feed

/*
*  How to load a feed via the Feeds API.
*/

google.load("feeds", "1");

// Our callback function, for when a feed is loaded.
function feedLoaded(result) {
  if (!result.error) {
    // Grab the container we will put the results into
    var container = document.getElementById("content");
    container.innerHTML = '';

    // Loop through the feeds, putting the titles onto the page.
    // Check out the result object for a list of properties returned in each entry.
    // http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON
    for (var i = 0; i < result.feed.entries.length; i++) {
      var entry = result.feed.entries[i];
      var div = document.createElement("div");
      div.appendChild(document.createTextNode(entry.title));
      container.appendChild(div);
    }
  }
}

function OnLoad() {
  // Create a feed instance that will grab Digg's feed.
  var feed = new google.feeds.Feed("http://maps.google.com/maps/ms?ie=UTF8&amp;hl=zh-CN&amp;vps=1&amp;jsv=259e&amp;msa=0&amp;output=georss&amp;msid=109685068115364659392.00048b5b630141d82b83a");

  // Calling load sends the request off.  It requires a callback function.
  feed.load(feedLoaded);
}

google.setOnLoadCallback(OnLoad);
brickysam26
hi brickysam26, look the updated.
zjm1126
A: 

You need to load the XML feed instead of the JSON feed to be able to get the raw XML feed as it is. With the JSON feed, it removes all but the standard RSS and Atom tags and then translates to JSON.

Set the result format to XML as

var feed = new google.feeds.Feed("...");
feed.setResultFormat(google.feeds.Feed.XML_FORMAT);

Here is a modified load function to print XML namespaced elements such as georss:point and gml:LineString.

feed.load(function(result) {
    var georssNS = "http://www.georss.org/georss";
    var gmlNS = "http://www.opengis.net/gml";
    var items = result.xmlDocument.getElementsByTagName("item");

    for(var i = 0; i < items.length; i++) {
        // get <georss:point>
        var georss = google.feeds.getElementsByTagNameNS(items[i], georssNS, "point")[0];
        if(georss) {
            console.log(georss)
        }
        // get <gml:LineString>
        var lineString = google.feeds.getElementsByTagNameNS(items[i], gmlNS, "LineString")[0];
        if(lineString) {
            console.log(lineString);
        }
    }
});
Anurag