gpt4 book ai didi

api - 如何通过维基百科 API 在一次地理搜索调用中获取更多信息?

转载 作者:行者123 更新时间:2023-12-04 13:54:45 25 4
gpt4 key购买 nike

我正在使用类似于 http://en.wikipedia.org/w/api.php?action=query&list=geosearch&gsradius=10000&gscoord=41.426140|26.099319 的 API 调用.

我返回这样的东西

<?xml version="1.0"?>
<api>
<query>
<geosearch>
<gs pageid="27460829" ns="0" title="Kostilkovo" lat="41.416666666667" lon="26.05" dist="4245.1" primary="" />
<gs pageid="27460781" ns="0" title="Belopolyane" lat="41.45" lon="26.15" dist="4988.7" primary="" />
<gs pageid="27460862" ns="0" title="Siv Kladenets" lat="41.416666666667" lon="26.166666666667" dist="5713.5" primary="" />
<gs pageid="13811116" ns="0" title="Svirachi" lat="41.483333333333" lon="26.116666666667" dist="6521.9" primary="" />
<gs pageid="27460810" ns="0" title="Gorno Lukovo" lat="41.366666666667" lon="26.1" dist="6613.4" primary="" />
<gs pageid="27460799" ns="0" title="Dolno Lukovo" lat="41.366666666667" lon="26.083333333333" dist="6746.2" primary="" />
<gs pageid="27460827" ns="0" title="Kondovo" lat="41.433333333333" lon="26.016666666667" dist="6937" primary="" />
<gs pageid="27460848" ns="0" title="Plevun" lat="41.45" lon="26.016666666667" dist="7383.1" primary="" />
<gs pageid="24179704" ns="0" title="Villa Armira" lat="41.499069444444" lon="26.106263888889" dist="8130" primary="" />
<gs pageid="27460871" ns="0" title="Zhelezari" lat="41.413333333333" lon="25.998333333333" dist="8540.1" primary="" />
</geosearch>
</query>
</api>

但是虽然我实际上是在尝试获取这些页面的一些图片,但需要进行后续调用,例如
  • 获取一些页面图像
    http://en.wikipedia.org/w/api.php?action=query&prop=images&pageids=13843906
  • 然后,获取图像信息
    http://en.wikipedia.org/w/api.php?action=query&titles=File:Alexandru_Ioan_Cuza_Dealul_Patriarhiei.jpg&prop=imageinfo&iiprop=url

  • 好吧,即使这让我得到了我最终需要的东西,它也根本没有效率。

    我想知道这个调用是否有一些参数,或者可能是完全其他的调用,可以在最多 2 个步骤/调用中提供所有这些信息。不过,如果它只是一个,那就太好了。

    最佳答案

    哇,我不知道现在存在 such a feature!但是要回答您的问题,因为它是一个 list 查询,您可能可以将它用作 generator

    让我们试试看:

  • 原始地理搜索查询:http://en.wikipedia.org/w/api.php?action=query&list=geosearch&gsradius=10000&gscoord=41.426140|26.099319
  • 生成器查询以获取匹配页面上的图像:http://en.wikipedia.org/w/api.php?action=query&prop=images&imlimit=max&generator=geosearch&ggsradius=10000&ggscoord=41.426140|26.099319

  • prop=images 查询也可以用作生成器,因此您也可以这样做:
  • 获取页面列表中所有图像的 URL:http://en.wikipedia.org/w/api.php?action=query&prop=imageinfo&iiprop=url&generator=images&gimlimit=max&pageids=13811116|24179704|27460781|27460799|27460810|27460827|27460829|27460848|27460862|27460871

  • 唉,AFAIK 你不能嵌套生成器,所以你不能在一个查询中完成两个步骤。您可以:
  • 获取一个查询中的图像列表,然后使用另一个查询获取 URL,或
  • 从基本地理搜索查询开始以获取页面 ID,然后在另一个查询中获取图像及其 URL。

  • 唉,事实证明,这两个选项都无法为您提供一些您可能想要的信息。如果您使用 list=geosearch 作为生成器,您将无法获得您可能需要的坐标信息,例如希望在 map 上显示结果。另一方面,使用 prop=images 作为生成器会让你错过更重要的事情:在哪些页面上使用哪些图像的知识!

    因此,不幸的是,如果您的目标是在 map 上放置图像,那么您可能必须使用三个单独的查询来完成。至少你仍然可以在一个请求中查询多个页面/图像,所以你不需要超过三个(直到你达到查询限制并且需要使用 continuations )。

    (此外,分三步进行可以让您在第三步之前对图像应用一些过滤。例如,示例查询返回的大多数页面只有相同的三个图像—— Flag of Bulgaria.svgIvaylovgrad Reservoir.jpgOblast Khaskovo.png——所有这些都是通过模板使用,但没有一个看起来真的是代表特定位置的好选择。)

    如果您只是对查找特定位置附近的图像感兴趣,即使它们未在任何特定的维基百科文章中使用,您也可能想尝试直接在 Wikimedia Commons 上使用地理搜索。它似乎没有为您的保加利亚示例坐标返回任何结果,但它在 works just fine 中为 more crowded location

    关于api - 如何通过维基百科 API 在一次地理搜索调用中获取更多信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529853/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com