You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Blogger中通过JSON获取位置信息?附现有JSON调用脚本

在Blogger中通过JSON获取位置信息的方法

你之前已经能用JSON脚本抓取带标签帖子的标题、缩略图和日期了,现在要获取位置信息其实不难,咱们来一步步改代码就行:

首先得知道,Blogger帖子的位置信息在JSON Feed里是存在georss$where字段里的,它的层级是:entry.georss$where.gml$Point.gml$pos.$t,这个字段的值是纬度 经度格式的字符串(比如39.9042 116.4074)。

修改你的现有脚本

你可以在原来的循环逻辑里,加入位置信息的提取代码,注意要先判断帖子是否设置了位置,避免报错。下面是修改后的完整示例:

<script type='text/javascript'>
//<![CDATA[
var numposts = 5; // 你要显示的帖子数量
function labelthumbs(json) {
    document.write('<ul id="label_with_thumbs">');
    for (var i = 0; i < numposts; i++) {
        if (i == json.feed.entry.length) break;
        var entry = json.feed.entry[i];
        var posttitle = entry.title.$t;
        
        // 获取帖子链接
        var posturl;
        for (var k = 0; k < entry.link.length; k++) {
            if (entry.link[k].rel == 'alternate') {
                posturl = entry.link[k].href;
                break;
            }
        }
        
        // 获取缩略图(保留你原来的逻辑)
        var postthumb = "";
        if (entry.media$thumbnail) {
            postthumb = entry.media$thumbnail.url;
        }
        
        // 获取日期(保留你原来的逻辑)
        var postdate = entry.published.$t.substring(0, 10);
        
        // 👇 获取位置信息
        var postLocation = "未设置位置";
        if (entry.georss$where) {
            var posStr = entry.georss$where.gml$Point.gml$pos.$t;
            var [lat, lng] = posStr.split(" ");
            postLocation = `纬度: ${lat}, 经度: ${lng}`;
        }
        
        // 渲染帖子项
        document.write(`
            <li>
                <img src="${postthumb}" alt="${posttitle}">
                <h3><a href="${posturl}">${posttitle}</a></h3>
                <p>发布日期: ${postdate}</p>
                <p>位置: ${postLocation}</p>
            </li>
        `);
    }
    document.write('</ul>');
}
//]]>
</script>
<!-- 调用Feed的脚本,替换成你的标签名 -->
<script type='text/javascript' src='/feeds/posts/default/-/你的标签名?alt=json-in-script&callback=labelthumbs&max-results=5'></script>

关键细节说明

  • 判断位置是否存在:不是所有帖子都设置了位置,所以必须用if (entry.georss$where)先判断,不然没有位置的帖子会导致脚本报错。
  • 经纬度分割:gml$pos.$t返回的是空格分隔的字符串,用split(" ")可以把它拆分成单独的纬度和经度值,方便后续使用。
  • Feed URL无需修改:你原来的Feed请求URL已经包含了位置信息,不需要额外添加参数。

如果想把经纬度转换成具体的地址名称,可以用前端地理编码的方法,但这部分需要调用第三方服务,这里就先聚焦在获取原始位置数据的实现上。

内容的提问来源于stack exchange,提问作者Ramez GaIal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:21:28