how to get the geo data from geo-rss via google ajax feed api
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">
<html xmlns="http://www.w3.org/1999/xhtml">
<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"></script>
<script type="text/javascript">
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed("http://maps.google.com/maps/ms?ie=UTF8&hl=zh-CN&vps=1&jsv=259e&msa=0&output=georss&msid=109685068115364659392.00048b5b630141d82b83a");
feed.load(function(result) {
console.log(result.feed)
});
}
google.setOnLoadCallback(initialize);开发者_如何学Go
</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 ..
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);
}
}
});
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&hl=zh-CN&vps=1&jsv=259e&msa=0&output=georss&msid=109685068115364659392.00048b5b630141d82b83a");
// Calling load sends the request off. It requires a callback function.
feed.load(feedLoaded);
}
google.setOnLoadCallback(OnLoad);
精彩评论