2010-07-24 20 views
0

ceci est mon code qui a géo-rss de google maps rss:comment obtenir les données géographiques de géo-rss via google ajax feed api

<!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); 

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

et je ne peux pas trouver les données géographiques sur la firebug,

que dois-je faire ..

grâce

mise à jour:

les données géographiques (dans la géo-rss) Je veux obtenir est comme ceci:

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

et

<gml:LineString> 

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

cela ne peut pas obtenir l'aide de l'api ajax google.

que dois-je faire ..

Répondre

1

Vous devez charger le flux XML au lieu du JSON flux pour être en mesure d'obtenir le flux XML brut tel qu'il est. Avec le flux JSON, il supprime tous les tags mais les tags RSS et Atom standard, puis traduit en JSON.

Définissez le format de résultat XML comme

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

est ici une fonction de charge modifiée pour imprimer des éléments XML tels que des espaces de noms georss:point et 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); 
     } 
    } 
}); 
0

D'un exemple dans le code API Google AJAX Playground qui fonctionne

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); 
+0

Bonjour brickysam26, regardez la mise à jour. – zjm1126